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.
Configuration
Section titled “Configuration”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).
Mode 2 — Originator is the entity group
Section titled “Mode 2 — Originator is the entity group”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.
Message processing algorithm
Section titled “Message processing algorithm”- Determine the target entity group:
- Mode 1: use the configured group.
- Mode 2: check that the originator is an
ENTITY_GROUP; if not, route viaFailure.
- Fetch all member entities of the target group.
- If the group is empty or not found, route via
Failure. - For each member entity, create a copy of the original message with the member as the new originator.
- Enqueue all created messages via
Success. Acknowledge the original message once all are enqueued.
Output connections
Section titled “Output connections”| Connection | Condition |
|---|---|
Success | One message per group member emitted. |
Failure | Group is empty or not found; originator is not an ENTITY_GROUP in mode 2; or unexpected error. |
Examples
Section titled “Examples”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.
JSON schema
Section titled “JSON schema”{ "$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" } } } }}