BusDiagram GitHub Download

Examples

#Venetian blind

A venetian blind uses one motor for two things: it first turns the slats, then moves the blind. Going down, the slats close before the blind starts to descend; going up, they open before it rises.

The actuator has no sensor: it estimates the position and the slat angle from its configured travel and slat rotation times, and reports them on 2/1/5 and 2/1/6 after each stop. Select the actuator to compare the estimate with the actual blind.

<bus-diagram>
<script type="application/json">
{
  "formatVersion": 2,
  "title": "Venetian blind: travel and slat angle",
  "description": "A long press moves the blind; the motor first turns the slats (closed when going down, open when going up), then moves the blind. A short press at rest turns the slats by one step, and a short press during a movement stops it. The numeric fields send a position and a slat angle (DPT 5.001: 0 % open, 100 % closed). The actuator estimates both from its configured times and reports them after each stop.",
  "lines": [{ "address": "1.1", "name": "Office" }],
  "groupAddresses": [
    { "address": "2/1/1", "name": "Blind movement", "dpt": "1.008" },
    { "address": "2/1/2", "name": "Blind stop / slat step", "dpt": "1.007" },
    { "address": "2/1/3", "name": "Blind position", "dpt": "5.001" },
    { "address": "2/1/4", "name": "Slat angle", "dpt": "5.001" },
    { "address": "2/1/5", "name": "Blind position status", "dpt": "5.001" },
    { "address": "2/1/6", "name": "Slat angle status", "dpt": "5.001" }
  ],
  "devices": [
    {
      "id": "pushButton",
      "name": "Blind push-button",
      "address": "1.1.1",
      "kind": "pushButton",
      "behavior": "pushButton/v1",
      "objects": [
        {
          "id": "move",
          "name": "Movement",
          "ga": "2/1/1",
          "dpt": "1.008",
          "port": "input",
          "flags": { "W": false, "T": true }
        },
        {
          "id": "stop",
          "name": "Stop / slat step",
          "ga": "2/1/2",
          "dpt": "1.007",
          "port": "input",
          "flags": { "W": false, "T": true }
        },
        {
          "id": "pos",
          "name": "Position",
          "ga": "2/1/3",
          "dpt": "5.001",
          "port": "input",
          "flags": { "W": false, "T": true }
        },
        {
          "id": "slat",
          "name": "Slat angle",
          "ga": "2/1/4",
          "dpt": "5.001",
          "port": "input",
          "flags": { "W": false, "T": true }
        }
      ],
      "buttons": [
        {
          "id": "key1",
          "label": "Key 1 · Up",
          "icon": "up",
          "short": { "object": "stop", "value": 0 },
          "long": { "object": "move", "value": 0 }
        },
        {
          "id": "key2",
          "label": "Key 2 · Down",
          "icon": "down",
          "short": { "object": "stop", "value": 1 },
          "long": { "object": "move", "value": 1 }
        }
      ],
      "inputs": [
        {
          "id": "pos",
          "type": "number",
          "label": "Position (%)",
          "object": "pos",
          "min": 0,
          "max": 100,
          "step": 10
        },
        {
          "id": "slat",
          "type": "number",
          "label": "Slats (%)",
          "object": "slat",
          "min": 0,
          "max": 100,
          "step": 10
        }
      ]
    },
    {
      "id": "blindActuator",
      "name": "Blind actuator",
      "address": "1.1.2",
      "kind": "shutterActuator",
      "behavior": "shutterActuator/v1",
      "objects": [
        {
          "id": "move",
          "name": "Movement",
          "ga": "2/1/1",
          "dpt": "1.008",
          "port": "move",
          "channel": "b1",
          "flags": { "W": true, "T": false }
        },
        {
          "id": "stop",
          "name": "Stop / slat step",
          "ga": "2/1/2",
          "dpt": "1.007",
          "port": "stopStep",
          "channel": "b1",
          "flags": { "W": true, "T": false }
        },
        {
          "id": "pos",
          "name": "Position",
          "ga": "2/1/3",
          "dpt": "5.001",
          "port": "positionCommand",
          "channel": "b1",
          "flags": { "W": true, "T": false }
        },
        {
          "id": "slat",
          "name": "Slat angle",
          "ga": "2/1/4",
          "dpt": "5.001",
          "port": "slatCommand",
          "channel": "b1",
          "flags": { "W": true, "T": false }
        },
        {
          "id": "posStatus",
          "name": "Position status",
          "ga": "2/1/5",
          "dpt": "5.001",
          "port": "positionStatus",
          "channel": "b1",
          "flags": { "W": false, "T": true }
        },
        {
          "id": "slatStatus",
          "name": "Slat angle status",
          "ga": "2/1/6",
          "dpt": "5.001",
          "port": "slatStatus",
          "channel": "b1",
          "flags": { "W": false, "T": true }
        }
      ],
      "channels": [
        {
          "id": "b1",
          "label": "Blind B1",
          "parameters": { "estimatedTravelTimeMs": 20000, "slatTravelMs": 2000 },
          "equipment": {
            "type": "shutter",
            "view": "venetianBlind",
            "parameters": { "actualTravelTimeMs": 20000, "slatTravelMs": 2000 }
          }
        }
      ]
    }
  ],
  "options": { "speed": 1, "filterTables": false }
}
</script>
</bus-diagram>