BusDiagram GitHub Download

Examples

#Control several outputs

A four-key push-button and a four-output switching actuator each use one individual address. Key 1 turns L1 and L2 on; Key 2 turns them off. Key 3 and Key 4 do the same for L1 through L4. Channels 1 and 2 listen to both group addresses, while channels 3 and 4 listen only to 1/1/2. One telegram can control several outputs. Key 1 and Key 2 share an address on the same device, so the local object state also follows their commands.

<bus-diagram>
<script type="application/json">
{
  "formatVersion": 2,
  "title": "Control multiple outputs",
  "description": "A four-key push-button and a four-output switching actuator each use one individual address. Key 1 (on) and Key 2 (off) control L1 and L2; Key 3 (on) and Key 4 (off) control L1 through L4. One telegram can operate several outputs.",
  "lines": [{ "address": "1.1", "name": "Example line" }],
  "groupAddresses": [
    { "address": "1/1/1", "name": "L1–L2 lighting", "dpt": "1.001" },
    { "address": "1/1/2", "name": "L1–L4 lighting", "dpt": "1.001" }
  ],
  "devices": [
    {
      "id": "pushButton",
      "name": "Push-button",
      "address": "1.1.1",
      "kind": "pushButton",
      "behavior": "pushButton/v1",
      "description": "A four-key push-button: one device, one individual address, and one group object per key.",
      "objects": [
        {
          "id": "key1",
          "name": "Key 1",
          "ga": "1/1/1",
          "dpt": "1.001",
          "port": "input",
          "flags": { "W": true, "T": true }
        },
        {
          "id": "key2",
          "name": "Key 2",
          "ga": "1/1/1",
          "dpt": "1.001",
          "port": "input",
          "flags": { "W": true, "T": true }
        },
        {
          "id": "key3",
          "name": "Key 3",
          "ga": "1/1/2",
          "dpt": "1.001",
          "port": "input",
          "flags": { "W": true, "T": true }
        },
        {
          "id": "key4",
          "name": "Key 4",
          "ga": "1/1/2",
          "dpt": "1.001",
          "port": "input",
          "flags": { "W": true, "T": true }
        }
      ],
      "buttons": [
        { "id": "button-0", "label": "Key 1", "press": { "object": "key1", "value": 1 } },
        { "id": "button-1", "label": "Key 2", "press": { "object": "key2", "value": 0 } },
        { "id": "button-2", "label": "Key 3", "press": { "object": "key3", "value": 1 } },
        { "id": "button-3", "label": "Key 4", "press": { "object": "key4", "value": 0 } }
      ]
    },
    {
      "id": "switchActuator",
      "name": "Four-output switching actuator",
      "address": "1.1.2",
      "kind": "switchActuator",
      "behavior": "switchActuator/v1",
      "description": "One four-channel switching actuator. Channels 1 and 2 listen to both group addresses; channels 3 and 4 listen only to 1/1/2.",
      "objects": [
        {
          "id": "c1",
          "name": "Channel 1",
          "ga": ["1/1/1", "1/1/2"],
          "dpt": "1.001",
          "port": "switch",
          "channel": "s1",
          "flags": { "W": true, "T": false }
        },
        {
          "id": "c2",
          "name": "Channel 2",
          "ga": ["1/1/1", "1/1/2"],
          "dpt": "1.001",
          "port": "switch",
          "channel": "s2",
          "flags": { "W": true, "T": false }
        },
        {
          "id": "c3",
          "name": "Channel 3",
          "ga": "1/1/2",
          "dpt": "1.001",
          "port": "switch",
          "channel": "s3",
          "flags": { "W": true, "T": false }
        },
        {
          "id": "c4",
          "name": "Channel 4",
          "ga": "1/1/2",
          "dpt": "1.001",
          "port": "switch",
          "channel": "s4",
          "flags": { "W": true, "T": false }
        }
      ],
      "channels": [
        { "id": "s1", "label": "L1", "equipment": { "type": "lamp" } },
        { "id": "s2", "label": "L2", "equipment": { "type": "lamp" } },
        { "id": "s3", "label": "L3", "equipment": { "type": "lamp" } },
        { "id": "s4", "label": "L4", "equipment": { "type": "lamp" } }
      ]
    }
  ],
  "options": { "speed": 1, "filterTables": false }
}
</script>
</bus-diagram>