Node-Red - Some guidance much appreciated

Ok so Day 2 of Node Red, so on the steep part of the curve :slight_smile:

I have got NR up and running and have it working with HE .

Primarily working on the Heating System

So have this below to detect when ANY Thermostat is calling for Heat and turn on the boiler.

See below for an export (Not sure how to put this export in post - sorry if wrong)

So if ANY of the Thermostats goes to heating the boiler turns on.

QUESTION

In Node Red how do I get it to TURN OFF BOILER when ALL the Thermostats are showing idle?

Any input ideas - clues very much appreciated.

[
{
    "id": "9383dd8c4d34f669",
    "type": "tab",
    "label": "Turn On Off Boiler",
    "disabled": false,
    "info": "Interim Flow to detect when heating is called for in HE and turn on the Boiler",
    "env": []
},
{
    "id": "d87e7d5e03bbf6f4",
    "type": "switch",
    "z": "9383dd8c4d34f669",
    "name": "",
    "property": "payload.value",
    "propertyType": "msg",
    "rules": [
        {
            "t": "eq",
            "v": "heating",
            "vt": "str"
        },
        {
            "t": "eq",
            "v": "idle",
            "vt": "str"
        },
        {
            "t": "else"
        }
    ],
    "checkall": "true",
    "repair": false,
    "outputs": 3,
    "x": 670,
    "y": 540,
    "wires": [
        [
            "775c084b941ebd8d"
        ],
        [],
        []
    ]
},
{
    "id": "775c084b941ebd8d",
    "type": "hubitat command",
    "z": "9383dd8c4d34f669",
    "deviceLabel": "ZW006",
    "name": "Radiator Boiler",
    "server": "76f91883bed98728",
    "deviceId": "422",
    "command": "on",
    "commandArgs": "",
    "x": 900,
    "y": 520,
    "wires": [
        [
            "6abc0f046064224a"
        ]
    ]
},
{
    "id": "6abc0f046064224a",
    "type": "debug",
    "z": "9383dd8c4d34f669",
    "name": "heat detected",
    "active": true,
    "tosidebar": true,
    "console": false,
    "tostatus": false,
    "complete": "payload",
    "targetType": "msg",
    "statusVal": "",
    "statusType": "auto",
    "x": 1120,
    "y": 520,
    "wires": []
},
{
    "id": "e82ea9344efa129a",
    "type": "hubitat device",
    "z": "9383dd8c4d34f669",
    "deviceLabel": "Thermostat Controller Bathroom",
    "name": "",
    "server": "76f91883bed98728",
    "deviceId": "865",
    "attribute": "thermostatOperatingState",
    "sendEvent": true,
    "x": 350,
    "y": 380,
    "wires": [
        [
            "d87e7d5e03bbf6f4"
        ]
    ]
},
{
    "id": "4684922b64e44dda",
    "type": "hubitat device",
    "z": "9383dd8c4d34f669",
    "deviceLabel": "Thermostat Controller Guest Bedroom",
    "name": "",
    "server": "76f91883bed98728",
    "deviceId": "814",
    "attribute": "thermostatOperatingState",
    "sendEvent": true,
    "x": 330,
    "y": 425.7142857142857,
    "wires": [
        [
            "d87e7d5e03bbf6f4"
        ]
    ]
},
{
    "id": "515f191ea950f377",
    "type": "hubitat device",
    "z": "9383dd8c4d34f669",
    "deviceLabel": "Thermostat Controller Guest Ensuite",
    "name": "",
    "server": "76f91883bed98728",
    "deviceId": "866",
    "attribute": "thermostatOperatingState",
    "sendEvent": true,
    "x": 330,
    "y": 471.42857142857144,
    "wires": [
        [
            "d87e7d5e03bbf6f4"
        ]
    ]
},
{
    "id": "27f3d173900d8cb3",
    "type": "hubitat device",
    "z": "9383dd8c4d34f669",
    "deviceLabel": "Thermostat Controller Kitchen",
    "name": "",
    "server": "76f91883bed98728",
    "deviceId": "869",
    "attribute": "thermostatOperatingState",
    "sendEvent": true,
    "x": 350,
    "y": 517.1428571428571,
    "wires": [
        [
            "d87e7d5e03bbf6f4"
        ]
    ]
},
{
    "id": "358705e1b8481de8",
    "type": "hubitat device",
    "z": "9383dd8c4d34f669",
    "deviceLabel": "Thermostat Controller Landing",
    "name": "",
    "server": "76f91883bed98728",
    "deviceId": "874",
    "attribute": "thermostatOperatingState",
    "sendEvent": true,
    "x": 350,
    "y": 562.8571428571428,
    "wires": [
        [
            "d87e7d5e03bbf6f4"
        ]
    ]
},
{
    "id": "272b2be6de6a46b4",
    "type": "hubitat device",
    "z": "9383dd8c4d34f669",
    "deviceLabel": "Thermostat Controller Lounge Back",
    "name": "",
    "server": "76f91883bed98728",
    "deviceId": "870",
    "attribute": "thermostatOperatingState",
    "sendEvent": true,
    "x": 340,
    "y": 608.5714285714284,
    "wires": [
        [
            "d87e7d5e03bbf6f4"
        ]
    ]
},
{
    "id": "979ebce6c012ee14",
    "type": "hubitat device",
    "z": "9383dd8c4d34f669",
    "deviceLabel": "Thermostat Controller Master Bed",
    "name": "",
    "server": "76f91883bed98728",
    "deviceId": "867",
    "attribute": "thermostatOperatingState",
    "sendEvent": true,
    "x": 340,
    "y": 654.2857142857141,
    "wires": [
        [
            "d87e7d5e03bbf6f4"
        ]
    ]
},
{
    "id": "d86bad211bedf718",
    "type": "hubitat device",
    "z": "9383dd8c4d34f669",
    "deviceLabel": "Thermostat Controller Molly",
    "name": "",
    "server": "76f91883bed98728",
    "deviceId": "868",
    "attribute": "thermostatOperatingState",
    "sendEvent": true,
    "x": 360,
    "y": 700,
    "wires": [
        [
            "d87e7d5e03bbf6f4"
        ]
    ]
},
{
    "id": "a67776542bbf69d6",
    "type": "hubitat device",
    "z": "9383dd8c4d34f669",
    "deviceLabel": "Office/Spare Temperature SRT",
    "name": "",
    "server": "76f91883bed98728",
    "deviceId": "577",
    "attribute": "thermostatOperatingState",
    "sendEvent": true,
    "x": 350,
    "y": 760,
    "wires": [
        [
            "d87e7d5e03bbf6f4"
        ]
    ]
},
{
    "id": "76f91883bed98728",
    "type": "hubitat config",
    "name": "HE Heating",
    "usetls": false,
    "host": "10.10.10.7",
    "port": "8080",
    "appId": "1162",
    "nodeRedServer": "http://192.168.1.36:1880",
    "webhookPath": "/hubitat/webhook",
    "autoRefresh": true,
    "useWebsocket": false,
    "colorEnabled": false,
    "color": "#ace043"
}

]

It looks like node-red-contrib-boolean-logic-ultimate could be useful here.

And use Devices -> Switches with a True False output -> Boolean logic Ultimate -> 'Idle" AND to turn off and 'heat' OR to turn on

Will see if that works

Ha figured it out

I am sure there is more elegant way to do this but this does work

This still needs some work, managed to get it working with two thermostats struggling with 8, even after resetting it to 8.

A WIP…..