> ## Documentation Index
> Fetch the complete documentation index at: https://docs.neuro-tech.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Concentrators

> Expose and manage many devices through a tree of data sources and nodes

A concentrator is a “thing of things”: one XMPP identity representing many physical or virtual nodes organized into data-source trees.

## Discovery operations

Clients can:

* query capabilities;
* list all, root, or child data sources;
* test whether a node exists;
* get one or many nodes;
* list root/child/ancestor nodes and inheritance;
* localize node parameters and messages.

Use paged or hierarchical traversal. `getAllNodes` can be inappropriate for a large industrial deployment.

## Node management

When supported, the interface exposes editable parameters, common parameters across nodes, addable node types, new-node creation, deletion, and move up/down operations.

Before editing, request the form/schema for the exact node type. Optimistic updates should include the version or timestamp returned by the concentrator where available.

## Commands and queries

Nodes can expose commands. A command can be immediate, parameterized, or a long-running query with progress and abort operations. Treat query IDs as scoped to the concentrator and authenticated account.

## Events

Subscribe to structural events:

```text theme={null}
nodeAdded
nodeUpdated
nodeStatusChanged
nodeRemoved
nodeMovedUp
nodeMovedDown
```

Reconcile from the server after reconnect because an event stream can have gaps.

## Troubleshooting sniffers

The concentrator interface can register a remote sniffer for a node where permitted. Captures can contain device data and credentials; require an operator privilege, limit duration, and record who enabled it.

## Stable client cache

Key cached nodes by full extended address. Store display name, node type, capabilities, status, and last update separately. A move changes tree position, not necessarily node identity.
