Skip to content
Try for free

ThingsBoard Cloud

Choose your data region

Your data stays in the region you choose, for residency and compliance. No credit card required.

Rather run it yourself? Install on your own servers

Push to Edge

Use this node on a cloud instance to selectively push data to one or more ThingsBoard Edge instances — for example, distributing firmware configuration updates only to edges that need them, or synchronising alarms to the relevant edge for local processing.

  • Attributes scope — required. Default attribute scope for attribute-related messages (SERVER_SCOPE, CLIENT_SCOPE, or SHARED_SCOPE). Can be overridden per message by including a scope key in the message metadata.
Message type Message type
POST_TELEMETRY_REQUEST ALARM
POST_ATTRIBUTES_REQUEST ALARM_ACK
ATTRIBUTES_UPDATED ALARM_CLEAR
ATTRIBUTES_DELETED CONNECT_EVENT
TIMESERIES_UPDATED DISCONNECT_EVENT
TO_SERVER_RPC_REQUEST ACTIVITY_EVENT / INACTIVITY_EVENT
  1. Verify that the message type is supported. If not, route via Failure.
  2. Build an edge event from the message.
  3. If the originator is an EDGE entity: push the event to that specific edge.
  4. If the originator is another entity type: find all edges the entity is assigned to and push the event to each. If the entity is not assigned to any edge, acknowledge the message and finish without further action.
  5. Route via Success.
Connection Condition
Success Edge event(s) written to persistent storage. Outgoing message is unchanged.
Failure Unsupported message type or unexpected error.

Example 1 — Push device telemetry to assigned edges

Section titled “Example 1 — Push device telemetry to assigned edges”

Originator: DEVICE assigned to two Edge instances | Type: POST_TELEMETRY_REQUEST.

{
"temperature": 22.5,
"humidity": 65.3
}
{
"scope": "SERVER_SCOPE"
}

Result: edge events queued for both assigned edges; they will retrieve and process the telemetry. Routes via Success.

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "TbMsgPushToEdgeNodeConfiguration",
"type": "object",
"required": ["scope"],
"additionalProperties": false,
"properties": {
"scope": {
"type": "string",
"enum": ["SERVER_SCOPE", "CLIENT_SCOPE", "SHARED_SCOPE"],
"description": "Default attribute scope for attribute-related messages."
}
}
}