Skip to content
Stand with Ukraine flag

Duplicate to Group

Use this node to broadcast a message to every member of a specific entity group — for example, sending a setTargetTemperature command to all devices in the Thermostats Floor 1 group, or propagating a reboot command to all sensors in a group when the message originator is itself an entity group.

The node operates in two modes:

Mode 1 — Specific entity group (default)

Section titled “Mode 1 — Specific entity group (default)”

Entity group is message originator is disabled. Configure:

  • Owner — the tenant or customer that owns the target group.
  • Type — the entity type of entities in the group (e.g., Device, Asset).
  • Select entity group — the specific group to broadcast to (referenced by UUID).

Entity group is message originator is enabled. The incoming message originator must be an ENTITY_GROUP. If it is any other entity type, the message routes via Failure.

  1. Determine the target entity group:
    • Mode 1: use the configured group.
    • Mode 2: check that the originator is an ENTITY_GROUP; if not, route via Failure.
  2. Fetch all member entities of the target group.
  3. If the group is empty or not found, route via Failure.
  4. For each member entity, create a copy of the original message with the member as the new originator.
  5. Enqueue all created messages via Success. Acknowledge the original message once all are enqueued.
ConnectionCondition
SuccessOne message per group member emitted.
FailureGroup is empty or not found; originator is not an ENTITY_GROUP in mode 2; or unexpected error.

Example 1 — Broadcast to a specific device group

Section titled “Example 1 — Broadcast to a specific device group”

Incoming data: { "targetTemperature": 100 }

{
"entityGroupIsMessageOriginator": false,
"entityGroupId": {
"entityType": "ENTITY_GROUP",
"id": "a1b2c3d4-e5f6-7890-1234-567890abcdef"
}
}

State: group Thermostats Floor 1 contains Thermostat A and Thermostat B.

Result: two output messages — one originating from Thermostat A, one from Thermostat B, both with { "targetTemperature": 100 }.


Example 2 — Originator is the entity group

Section titled “Example 2 — Originator is the entity group”

Originator: entity group All sensors | Data: { "command": "reboot" }

{ "entityGroupIsMessageOriginator": true }

State: group contains Sensor A and Sensor B.

Result: two output messages — one originating from Sensor A, one from Sensor B.

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "TbDuplicateMsgToGroupNodeConfiguration",
"type": "object",
"required": ["entityGroupIsMessageOriginator"],
"additionalProperties": false,
"properties": {
"entityGroupIsMessageOriginator": { "type": "boolean" },
"entityGroupId": {
"type": "object",
"additionalProperties": false,
"properties": {
"entityType": { "const": "ENTITY_GROUP" },
"id": { "type": "string", "format": "uuid" }
}
}
}
}