Docs

Virtual Communication Units

Register physical machines as virtual_communication_unit endpoints and report their TeamSets

A Virtual Communication Unit (VCU) is an agrirouter endpoint that represents a physical machine: a tractor, an implement, or an ISOBUS-connected unit. In the current API each machine is its own full endpoint of type virtual_communication_unit, registered in an end user's agrirouter account via its own PUT /endpoints/{externalId} call. Every VCU has its own external ID, capabilities, subscriptions, and feed, and is addressable as a distinct source and destination when the end user configures routes.

For where VCUs fit in the ecosystem, see Ecosystem: virtual_communication_unit.

Before you start

VCUs follow the same lifecycle as every other endpoint in the current API. Before you register a VCU on behalf of an end user, the application must already be authorized for that user's agrirouter account, and the external ID you are about to use must not yet exist in that tenant.

In earlier versions of agrirouter, a telemetry platform registered a single "concentrator" endpoint and attached VCUs underneath it through a shared connection. That model is gone. In the current API each VCU is its own endpoint, created directly, with no parent platform endpoint required. A cloud_software endpoint for the platform itself is only needed if the platform participates in data exchange as a distinct party, for example by receiving aggregated fleet data.

Register a VCU

Create a VCU with the standard endpoint creation call:

PUT /endpoints/{externalId}

Set endpoint_type to virtual_communication_unit in the request body. The externalId is your own stable identifier for the machine, for example a serial number, an internal fleet ID, or a URN such as urn:yourcompany:vcu:tractor-1234. Every VCU needs its own external ID, unique within the tenant.

The request body has the same shape as for any other endpoint. See PUT /endpoints/{externalId} for the full reference and Endpoint Management for the full lifecycle.

Capabilities and subscriptions

Each VCU declares its own capabilities and subscriptions, independent of any other endpoint in the account. For most VCUs the declaration covers EFDI telemetry and ISOBUS task data:

DirectionTypical message types
Sendiso:11783:-10:device_description:protobuf, iso:11783:-10:time_log:protobuf
Receiveiso:11783:-10:taskdata:zip

See Message Types for the full catalogue, and the individual message-type pages for payload details.

Every PUT /endpoints/{externalId} replaces the endpoint's entire configuration. Always send the complete set of capabilities and subscriptions on each update to avoid silently losing parts of the declaration.

Report TeamSets with Device Descriptions

Every VCU should publish an EFDI Device Description reporting the machines and implements currently attached to it. A Device Description is identified by a TeamSet context ID, which receivers use to correlate device descriptions, time logs, and task data that belong to the same on-machine setup.

Carry the TeamSet context ID in the x-agrirouter-teamset-context-id request header on POST /messages. See TeamSet Context ID for the full contract, including how the identifier relates to x-agrirouter-context-id and when to generate a new one.

Send a Device Description:

  • Immediately after the VCU endpoint is created.
  • Whenever the machine configuration changes, for example when an implement is attached or a device is replaced.
  • Periodically to confirm the machine is still active, typically at an interval between once per hour and once per day.

Send and receive as a VCU

Messages sent on behalf of a VCU use that VCU's own endpoint ID in the x-agrirouter-endpoint-id header. Each VCU has its own feed and its own events stream on GET /events, and there is no shared connection between a VCU and any other endpoint. A cloud-hosted application managing a fleet acts as each VCU in turn, setting the appropriate x-agrirouter-endpoint-id per request.

See Sending & Receiving for the full messaging flow, and Messaging for the conceptual model.

VCU Lifecycle

ActionHow
CreatePUT /endpoints/{externalId} with endpoint_type: "virtual_communication_unit".
UpdateAnother PUT /endpoints/{externalId} to the same external ID, with the new complete set of capabilities and subscriptions.
DeleteDELETE /endpoints/{externalId}, or the end user removes the endpoint from the agrirouter UI.

Communication Units (CUs) are physical hardware devices, such as ISOBUS terminals or telemetry boxes, that connect to agrirouter through the legacy API. They are not the same as VCUs and are not an endpoint type in the current API. Hardware manufacturers building a physical device should follow the Communication Unit integration guide. For a mapping between legacy and current terminology, see Migrating from the Legacy API.

API Reference

VCUs share the current API with every other endpoint type. Try the operations a fleet platform exercises per machine in the API playground:

Create or update endpoint1 min Send one or several messages1 min Receive events1 min Delete endpoint1 min

Next Steps

On this page