Examples
#Room-by-room heating
This example heats two rooms in different ways:
- Living room: a PI thermostat sends a DPT 5.001 control value on 3/0/1 to a heating actuator. The actuator applies PWM to a thermoelectric valve. Temperature travels as DPT 9.001 on 3/4/1; open a telegram's details to inspect its two-byte value.
- Bedroom: two-point control sends a one-bit command on 3/0/2 to a switching actuator.
Try these interactions:
- Open the living-room window in the Rooms panel. The contact sends 1 on 3/3/1; the thermostat enters frost protection at 7 °C and closes the valve. The room then cools.
- In the USB interface panel, write 3 (economy mode) to the central-mode address 3/2/0. Both setpoints fall by 4 K. Press the living-room thermostat's Presence key to restore comfort mode.
- Set the living-room thermostat to 22.5 °C and watch its current setpoint on 3/4/2.
- Lower the outside temperature and observe the valve opening further to maintain the setpoint.
<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>{
"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 }
}