BusDiagram GitHub Download

Examples

#Room-by-room heating

This example heats two rooms in different ways:

Try these interactions:

<bus-diagram>
<script type="application/json">
{
  "formatVersion": 2,
  "title": "Room-by-room heating control",
  "description": "Two rooms are heated. In the living room, a PI thermostat sends a DPT 5.001 control value to a heating actuator, which drives a thermoelectric valve with PWM. The bedroom uses two-point (one-bit) control through a switching actuator. Open the living-room window in the Rooms panel: the contact switches the thermostat to frost protection. Write central mode 3/2/0 (DPT 20.102) from the USB interface panel; the thermostat Presence key restores comfort mode.",
  "lines": [{ "address": "1.1", "name": "Heating example" }],
  "rooms": [
    { "id": "livingRoom", "name": "Living room", "temperatureC": 18 },
    { "id": "bedroom", "name": "Bedroom", "temperatureC": 17 }
  ],
  "groupAddresses": [
    { "address": "3/0/1", "name": "Living-room heating control", "dpt": "5.001" },
    { "address": "3/0/2", "name": "Bedroom heating control", "dpt": "1.001" },
    { "address": "3/1/1", "name": "Living-room base setpoint", "dpt": "9.001" },
    { "address": "3/2/0", "name": "Central mode", "dpt": "20.102" },
    { "address": "3/2/1", "name": "Living-room presence", "dpt": "1.018" },
    { "address": "3/3/1", "name": "Living-room window", "dpt": "1.019" },
    { "address": "3/4/1", "name": "Living-room temperature", "dpt": "9.001" },
    { "address": "3/4/2", "name": "Living-room current setpoint", "dpt": "9.001" },
    { "address": "3/4/3", "name": "Living-room current mode", "dpt": "20.102" },
    { "address": "3/4/4", "name": "Living-room valve status", "dpt": "5.001" },
    { "address": "3/4/5", "name": "Bedroom temperature", "dpt": "9.001" }
  ],
  "devices": [
    {
      "id": "usbInterface",
      "name": "USB interface",
      "address": "1.1.255",
      "kind": "interface",
      "behavior": "usbInterface/v1",
      "objects": []
    },
    {
      "id": "livingThermostat",
      "name": "Living-room thermostat",
      "address": "1.1.1",
      "kind": "thermostat",
      "behavior": "roomThermostat/v1",
      "room": "livingRoom",
      "objects": [
        {
          "id": "temp",
          "name": "Measured temperature",
          "ga": "3/4/1",
          "dpt": "9.001",
          "port": "actualTemp",
          "flags": { "W": false, "T": true }
        },
        {
          "id": "base",
          "name": "Base setpoint",
          "ga": "3/1/1",
          "dpt": "9.001",
          "port": "baseSetpoint",
          "flags": { "W": true, "T": false }
        },
        {
          "id": "mode",
          "name": "Mode (preset)",
          "ga": "3/2/0",
          "dpt": "20.102",
          "port": "hvacMode",
          "flags": { "W": true, "T": false }
        },
        {
          "id": "presence",
          "name": "Presence",
          "ga": "3/2/1",
          "dpt": "1.018",
          "port": "presence",
          "flags": { "W": true, "T": true }
        },
        {
          "id": "win",
          "name": "Window",
          "ga": "3/3/1",
          "dpt": "1.019",
          "port": "window",
          "flags": { "W": true, "T": false }
        },
        {
          "id": "sp",
          "name": "Current setpoint",
          "ga": "3/4/2",
          "dpt": "9.001",
          "port": "setpointStatus",
          "flags": { "W": false, "T": true }
        },
        {
          "id": "ms",
          "name": "Current mode",
          "ga": "3/4/3",
          "dpt": "20.102",
          "port": "hvacModeStatus",
          "flags": { "W": false, "T": true }
        },
        {
          "id": "val",
          "name": "Heating control",
          "ga": "3/0/1",
          "dpt": "5.001",
          "port": "heatingValue",
          "flags": { "W": false, "T": true }
        }
      ],
      "buttons": [
        {
          "id": "presence",
          "label": "Presence",
          "icon": "presence",
          "press": { "object": "presence", "value": "toggle" },
          "led": "presence"
        }
      ],
      "inputs": [
        {
          "id": "setpoint",
          "type": "number",
          "label": "Setpoint °C",
          "object": "base",
          "min": 15,
          "max": 28,
          "step": 0.5
        }
      ]
    },
    {
      "id": "windowContact",
      "name": "Living-room window contact",
      "address": "1.1.2",
      "kind": "binaryInput",
      "behavior": "windowContact/v1",
      "room": "livingRoom",
      "objects": [
        {
          "id": "c",
          "name": "Living-room window",
          "ga": "3/3/1",
          "dpt": "1.019",
          "port": "contact",
          "flags": { "W": false, "T": true }
        }
      ]
    },
    {
      "id": "heatingActuator",
      "name": "Heating actuator",
      "address": "1.1.3",
      "kind": "heatingActuator",
      "behavior": "heatingActuator/v1",
      "objects": [
        {
          "id": "v1",
          "name": "H1 control value",
          "ga": "3/0/1",
          "dpt": "5.001",
          "port": "value",
          "channel": "h1",
          "flags": { "W": true, "T": false }
        },
        {
          "id": "s1",
          "name": "H1 control status",
          "ga": "3/4/4",
          "dpt": "5.001",
          "port": "valueStatus",
          "channel": "h1",
          "flags": { "W": false, "T": true }
        }
      ],
      "channels": [
        {
          "id": "h1",
          "label": "H1 living room",
          "equipment": { "type": "radiator", "room": "livingRoom" }
        }
      ]
    },
    {
      "id": "bedroomThermostat",
      "name": "Bedroom thermostat",
      "address": "1.1.4",
      "kind": "thermostat",
      "behavior": "roomThermostat/v1",
      "parameters": { "controlType": "twoPoint", "comfortC": 19 },
      "room": "bedroom",
      "objects": [
        {
          "id": "temp",
          "name": "Measured temperature",
          "ga": "3/4/5",
          "dpt": "9.001",
          "port": "actualTemp",
          "flags": { "W": false, "T": true }
        },
        {
          "id": "mode",
          "name": "Mode (preset)",
          "ga": "3/2/0",
          "dpt": "20.102",
          "port": "hvacMode",
          "flags": { "W": true, "T": false }
        },
        {
          "id": "sw",
          "name": "One-bit heating control",
          "ga": "3/0/2",
          "dpt": "1.001",
          "port": "heatingSwitch",
          "flags": { "W": false, "T": true }
        }
      ]
    },
    {
      "id": "switchActuator",
      "name": "Switching actuator",
      "address": "1.1.5",
      "kind": "switchActuator",
      "behavior": "switchActuator/v1",
      "objects": [
        {
          "id": "a",
          "name": "Bedroom radiator",
          "ga": "3/0/2",
          "dpt": "1.001",
          "port": "switch",
          "channel": "a",
          "flags": { "W": true, "T": false }
        }
      ],
      "channels": [
        {
          "id": "a",
          "label": "Bedroom actuator",
          "equipment": { "type": "radiator", "room": "bedroom", "parameters": { "powerK": 20 } }
        }
      ]
    }
  ],
  "options": { "speed": 1, "filterTables": false }
}
</script>
</bus-diagram>