[
  {
    "id": "333759b6af19f33b",
    "type": "group",
    "name": "",
    "style": {
      "stroke": "#999999",
      "stroke-opacity": "1",
      "fill": "none",
      "fill-opacity": "1",
      "label": true,
      "label-position": "nw",
      "color": "#767676"
    },
    "nodes": [
      "16ecc8997e2c5a9f",
      "f0fe739d98963138",
      "f5e0d0f41e2a8f72",
      "26e9f02df1635233",
      "122c90aa2e620e05",
      "7f428b20f9041f6c",
      "fe348a81340e7704",
      "b6cc161c6b1ec85b",
      "aba8ba18198b7512",
      "2eb3f5634732325e",
      "25f37959a31a837f",
      "ab8254b612e07671",
      "3bb3994a4843ff7d",
      "6087e205c4178967",
      "0627a0abf8a4327d",
      "3b4f0a2b38f42845",
      "e4e3fab9316875af",
      "e37578714340ba6d"
    ],
    "x": 1314,
    "y": 4729,
    "w": 1052,
    "h": 332
  },
  {
    "id": "b6cc161c6b1ec85b",
    "type": "debug",
    "g": "333759b6af19f33b",
    "name": "2 · Temperature",
    "active": true,
    "tosidebar": true,
    "console": false,
    "tostatus": false,
    "complete": "true",
    "targetType": "full",
    "statusVal": "",
    "statusType": "auto",
    "x": 2220,
    "y": 4860,
    "wires": []
  },
  {
    "id": "aba8ba18198b7512",
    "type": "debug",
    "g": "333759b6af19f33b",
    "name": "3 · Actual setpoint",
    "active": true,
    "tosidebar": true,
    "console": false,
    "tostatus": false,
    "complete": "true",
    "targetType": "full",
    "statusVal": "",
    "statusType": "auto",
    "x": 2230,
    "y": 4900,
    "wires": []
  },
  {
    "id": "25f37959a31a837f",
    "type": "debug",
    "g": "333759b6af19f33b",
    "name": "5 · Actual mode",
    "active": true,
    "tosidebar": true,
    "console": false,
    "tostatus": false,
    "complete": "true",
    "targetType": "full",
    "statusVal": "",
    "statusType": "auto",
    "x": 2220,
    "y": 4980,
    "wires": []
  },
  {
    "id": "f0fe739d98963138",
    "type": "hypervisu-input-target",
    "g": "333759b6af19f33b",
    "selectedWidget": "5",
    "selectedInput": "Setpoint",
    "displayName": "Input Target",
    "x": 1680,
    "y": 4820,
    "wires": [
      [
        "16ecc8997e2c5a9f"
      ]
    ]
  },
  {
    "id": "16ecc8997e2c5a9f",
    "type": "widget-TemperatureController",
    "g": "333759b6af19f33b",
    "dropdownRoom": "",
    "dropdownCategory": "",
    "dropdownWidget": "",
    "displayName": "Temperature Controller (set device)",
    "x": 1920,
    "y": 4900,
    "wires": [
      [
        "fe348a81340e7704"
      ],
      [
        "b6cc161c6b1ec85b"
      ],
      [
        "aba8ba18198b7512"
      ],
      [
        "2eb3f5634732325e"
      ],
      [
        "25f37959a31a837f"
      ]
    ]
  },
  {
    "id": "f5e0d0f41e2a8f72",
    "type": "hypervisu-input-target",
    "g": "333759b6af19f33b",
    "selectedWidget": "5",
    "selectedInput": "Temperature",
    "displayName": "Input Target",
    "x": 1670,
    "y": 4860,
    "wires": [
      [
        "16ecc8997e2c5a9f"
      ]
    ]
  },
  {
    "id": "26e9f02df1635233",
    "type": "hypervisu-input-target",
    "g": "333759b6af19f33b",
    "selectedWidget": "5",
    "selectedInput": "Actual setpoint",
    "displayName": "Input Target",
    "x": 1660,
    "y": 4900,
    "wires": [
      [
        "16ecc8997e2c5a9f"
      ]
    ]
  },
  {
    "id": "122c90aa2e620e05",
    "type": "hypervisu-input-target",
    "g": "333759b6af19f33b",
    "selectedWidget": "5",
    "selectedInput": "Mode Selection",
    "displayName": "Input Target",
    "x": 1660,
    "y": 4940,
    "wires": [
      [
        "16ecc8997e2c5a9f"
      ]
    ]
  },
  {
    "id": "7f428b20f9041f6c",
    "type": "hypervisu-input-target",
    "g": "333759b6af19f33b",
    "selectedWidget": "5",
    "selectedInput": "Actual mode",
    "displayName": "Input Target",
    "x": 1690,
    "y": 4980,
    "wires": [
      [
        "16ecc8997e2c5a9f"
      ]
    ]
  },
  {
    "id": "fe348a81340e7704",
    "type": "debug",
    "g": "333759b6af19f33b",
    "name": "1 · Setpoint",
    "active": true,
    "tosidebar": true,
    "console": false,
    "tostatus": false,
    "complete": "payload",
    "targetType": "msg",
    "statusVal": "",
    "statusType": "auto",
    "x": 2210,
    "y": 4820,
    "wires": []
  },
  {
    "id": "2eb3f5634732325e",
    "type": "debug",
    "g": "333759b6af19f33b",
    "name": "4 · Mode Selection",
    "active": true,
    "tosidebar": true,
    "console": false,
    "tostatus": false,
    "complete": "payload",
    "targetType": "msg",
    "statusVal": "",
    "statusType": "auto",
    "x": 2230,
    "y": 4940,
    "wires": []
  },
  {
    "id": "ab8254b612e07671",
    "type": "inject",
    "g": "333759b6af19f33b",
    "name": "Temperature 20°C",
    "props": [
      {
        "p": "payload"
      }
    ],
    "repeat": "",
    "crontab": "",
    "once": false,
    "onceDelay": "0",
    "topic": "",
    "payload": "20",
    "payloadType": "num",
    "x": 1450,
    "y": 4820,
    "wires": [
      [
        "f0fe739d98963138"
      ]
    ]
  },
  {
    "id": "3bb3994a4843ff7d",
    "type": "inject",
    "g": "333759b6af19f33b",
    "name": "Temperature 19°C",
    "props": [
      {
        "p": "payload"
      }
    ],
    "repeat": "",
    "crontab": "",
    "once": false,
    "onceDelay": "0",
    "topic": "",
    "payload": "19",
    "payloadType": "num",
    "x": 1450,
    "y": 4860,
    "wires": [
      [
        "f5e0d0f41e2a8f72"
      ]
    ]
  },
  {
    "id": "6087e205c4178967",
    "type": "inject",
    "g": "333759b6af19f33b",
    "name": "Temperature 20°C",
    "props": [
      {
        "p": "payload"
      }
    ],
    "repeat": "",
    "crontab": "",
    "once": false,
    "onceDelay": "0",
    "topic": "",
    "payload": "20",
    "payloadType": "num",
    "x": 1450,
    "y": 4900,
    "wires": [
      [
        "26e9f02df1635233"
      ]
    ]
  },
  {
    "id": "0627a0abf8a4327d",
    "type": "inject",
    "g": "333759b6af19f33b",
    "name": "Mode 1",
    "props": [
      {
        "p": "payload"
      }
    ],
    "repeat": "",
    "crontab": "",
    "once": false,
    "onceDelay": "0",
    "topic": "",
    "payload": "1",
    "payloadType": "num",
    "x": 1410,
    "y": 4940,
    "wires": [
      [
        "122c90aa2e620e05"
      ]
    ]
  },
  {
    "id": "3b4f0a2b38f42845",
    "type": "inject",
    "g": "333759b6af19f33b",
    "name": "Mode 2",
    "props": [
      {
        "p": "payload"
      }
    ],
    "repeat": "",
    "crontab": "",
    "once": false,
    "onceDelay": "0",
    "topic": "",
    "payload": "2",
    "payloadType": "num",
    "x": 1410,
    "y": 4980,
    "wires": [
      [
        "122c90aa2e620e05"
      ]
    ]
  },
  {
    "id": "e4e3fab9316875af",
    "type": "inject",
    "g": "333759b6af19f33b",
    "name": "Mode 3",
    "props": [
      {
        "p": "payload"
      }
    ],
    "repeat": "",
    "crontab": "",
    "once": false,
    "onceDelay": "0",
    "topic": "",
    "payload": "3",
    "payloadType": "num",
    "x": 1410,
    "y": 5020,
    "wires": [
      [
        "7f428b20f9041f6c"
      ]
    ]
  },
  {
    "id": "e37578714340ba6d",
    "type": "comment",
    "g": "333759b6af19f33b",
    "name": "Communication Climate",
    "info": "## Temperature Controller node\nDevice: double-click the device node and choose the device of your installation, then Deploy.\n\n### Input targets\n- `Setpoint` — command, °C (float)\n- `Mode Selection` — command, mode number: 1 = Comfort, 2 = Standby, 3 = Night\n- `Temperature` — feedback, measured temperature °C\n- `Actual setpoint` — feedback, °C\n- `Actual mode` — feedback, mode number\n\n### Outputs\n1. Setpoint · 2. Temperature · 3. Actual setpoint · 4. Mode Selection · 5. Actual mode\n\n### Rules (node-red-cgen-widget-nodes 1.15)\n- `msg.inputTarget` must match a name above exactly (case-sensitive). Use an **Input Target** node to pick it from a list. A message with a missing or unknown target is ignored.\n- A message from the flow is sent to the server and also leaves on the output of the same name.\n- Outputs also fire when the device changes elsewhere: a **command** output when the app, a scenario, an automation or another flow commands it (only when the value changes), a **feedback** output each time the device reports a value.\n- Writing a feedback / status target updates the value HyperVisu shows; nothing is sent to the device. Use it with VIRTUAL devices.",
    "x": 1700,
    "y": 4770,
    "wires": []
  }
]