My node-red + HomeKit + OpenHAB setup

Just hit “deploy” in nodered. See discussion above explaining “deploy all” vs “deploy modified flows”. Also HomeKit in node red has a few bugs, if it’s acting funny try:

sudo systemctl restart nodered.service

There should be plenty of ways to accomplish this, I don’t know your hardware setup so I can’t give specifics. If I understand right, you’re new to both openhab and nodered - I would recommend looking through openhab documentation about items, rules and bindings. If you want to do it on the nodered side you can check out the delay and trigger nodes.

A couple of examples - I use the expire binding for a switch that I only ever want “on” for 1 second. I use tasmota software to send “pulses” to a couple of relays attached to an esp8266. I’m sure there is no shortage of ways to accomplish a pulse button press on many pieces of hardware.

This is in your configuration node for homekit. Normally hidden, check in your hamburger menu (top right) to show configuration nodes.

Thanks for the tips

Questions:

  • You have an example of a timed light, it turns on and after 1 minute it goes out
    In node-red I failed in the rules of openhab yes

  • I used a Door node for Homekit, it works. Is there a parameter code (Characteristic Properties) to disable the notification without manually deactivating the ios app?

  • In node-red can you define the rooms that are broadcast in the app Home?

Thank you

After a reboot I no longer have the hap homekit on ios
I tried to delete Home on ios to create it but nothing, ios does not find.
I tried to restart the node-red servos but nothing.

sudo systemctl restart nodered.service

Welcome to Node-RED
===================

19 Nov 13:39:16 - [info] Node-RED version: v0.19.5
19 Nov 13:39:16 - [info] Node.js  version: v8.12.0
19 Nov 13:39:16 - [info] Linux 4.14.79-v7+ arm LE
19 Nov 13:39:17 - [info] Loading palette nodes
19 Nov 13:39:21 - [info] Settings file  : /home/openhabian/.node-red/settings.js
19 Nov 13:39:21 - [info] Context store  : 'default' [module=memory]
19 Nov 13:39:21 - [info] User directory : /home/openhabian/.node-red
19 Nov 13:39:21 - [warn] Projects disabled : editorTheme.projects.enabled=false
19 Nov 13:39:21 - [info] Flows file     : /home/openhabian/.node-red/flows_openHABianPi.json
19 Nov 13:39:21 - [info] Server now running at http://127.0.0.1:1880/
19 Nov 13:39:21 - [warn]

---------------------------------------------------------------------
Your flow credentials file is encrypted using a system-generated key.

If the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.

You should set your own key using the 'credentialSecret' option in
your settings file. Node-RED will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.
---------------------------------------------------------------------

19 Nov 13:39:21 - [info] Starting flows
19 Nov 13:39:21 - [info] [openhab2-controller:Openhab] {"id":"c289d816.ca63a8","type":"openhab2-controller","z":"","name":"Openhab","protocol":"http","host":"localhost","port":"8080","path":"","username":"","password":"","_users":["9fde074c.779ea8","4f5ed617.c7efc8","696ea511.41f1dc","f0ed7363.ba51a","b92ad4a2.fee898","39ce4a43.52b2f6","3d89a64b.5aa31a","3a7b866e.15615a","7313525b.7fc0cc","b5f07847.1e3e68","3b85aacf.27aa56","f568eaff.48f2c8","7cd2b1b4.e4b15","b248573.2cd67a8","3a30013a.3abf1e","c2534b95.2677a8"]}
19 Nov 13:39:21 - [info] Started flows
  EventedHTTPServer Server listening on port 9124 +0ms
19 Nov 13:39:26 - [info] [openhab2-controller:Openhab] getStateOfItems : config = {"id":"c289d816.ca63a8","type":"openhab2-controller","z":"","name":"Openhab","protocol":"http","host":"localhost","port":"8080","path":"","username":"","password":"","_users":["9fde074c.779ea8","4f5ed617.c7efc8","696ea511.41f1dc","f0ed7363.ba51a","b92ad4a2.fee898","39ce4a43.52b2f6","3d89a64b.5aa31a","3a7b866e.15615a","7313525b.7fc0cc","b5f07847.1e3e68","3b85aacf.27aa56","f568eaff.48f2c8","7cd2b1b4.e4b15","b248573.2cd67a8","3a30013a.3abf1e","c2534b95.2677a8"]}
19 Nov 13:39:49 - [info] Stopping flows
19 Nov 13:39:49 - [info] [openhab2-controller:Openhab] close
19 Nov 13:39:49 - [info] [openhab2-in:Cucina] close
19 Nov 13:39:49 - [info] [openhab2-out:Cucina] close
19 Nov 13:39:49 - [info] [openhab2-in:Tapparella Sala] close
19 Nov 13:39:49 - [info] [openhab2-out:Tapparella Sala] close
19 Nov 13:39:49 - [info] [openhab2-in:Entrata] close
19 Nov 13:39:49 - [info] [openhab2-out:Entrata] close
19 Nov 13:39:49 - [info] [openhab2-in:Sala] close
19 Nov 13:39:49 - [info] [openhab2-out:Sala] close
19 Nov 13:39:49 - [info] [openhab2-out:Prova] close
19 Nov 13:39:49 - [info] [openhab2-in:Prova] close
19 Nov 13:39:49 - [info] [openhab2-out:Cancelletto] close
19 Nov 13:39:49 - [info] [openhab2-in:Cancelletto] close
19 Nov 13:39:49 - [info] [openhab2-out:Cancello] close
19 Nov 13:39:49 - [info] [openhab2-in:Cancello] close
19 Nov 13:39:49 - [info] [openhab2-out:Garage] close
19 Nov 13:39:49 - [info] [openhab2-in:Garage] close
19 Nov 13:39:49 - [info] Stopped flows
19 Nov 13:39:49 - [info] Starting flows
19 Nov 13:39:49 - [info] [openhab2-controller:Openhab] {"id":"c289d816.ca63a8","type":"openhab2-controller","z":"","name":"Openhab","protocol":"http","host":"localhost","port":"8080","path":"","username":"","password":"","_users":["9fde074c.779ea8","4f5ed617.c7efc8","696ea511.41f1dc","f0ed7363.ba51a","b92ad4a2.fee898","39ce4a43.52b2f6","3d89a64b.5aa31a","3a7b866e.15615a","7313525b.7fc0cc","b5f07847.1e3e68","3b85aacf.27aa56","f568eaff.48f2c8","7cd2b1b4.e4b15","b248573.2cd67a8","3a30013a.3abf1e","c2534b95.2677a8"]}
19 Nov 13:39:49 - [info] Started flows
19 Nov 13:39:49 - [red] Uncaught Exception:
19 Nov 13:39:49 - Error: listen EADDRINUSE :::9124
    at Server.setupListenHandle [as _listen2] (net.js:1360:14)
    at listenInCluster (net.js:1401:12)
    at Server.listen (net.js:1485:7)
    at EventedHTTPServer.listen (/home/openhabian/.node-red/node_modules/hap-nodejs/lib/util/eventedhttp.js:60:19)
    at HAPServer.listen (/home/openhabian/.node-red/node_modules/hap-nodejs/lib/HAPServer.js:158:20)
    at Accessory.publish (/home/openhabian/.node-red/node_modules/hap-nodejs/lib/Accessory.js:607:16)
    at new HAPServiceNode (/home/openhabian/.node-red/node_modules/node-red-contrib-homekit/homekit.js:79:17)
    at createNode (/usr/lib/node_modules/node-red/red/runtime/nodes/flows/Flow.js:305:18)
    at Flow.start (/usr/lib/node_modules/node-red/red/runtime/nodes/flows/Flow.js:89:35)
    at start (/usr/lib/node_modules/node-red/red/runtime/nodes/flows/index.js:328:29)

Some idea

The port specified for HomeKit is in use. Try using a different port.

I solved the problem like this:

  • deleted all the flow
  • destroy
  • built-in node-red-contrib-homekit-bridged
  • installed node-red-contrib-homekit-bridged
  • imported flow

I set port 9124
Or better not to set any door?

Mine is set to automatic (no port specified). It can cause problems like this. If not specified, Node-RED will add a port which is not in use (dynamic port).

@rkrisi

Thanks for the suggestion, I immediately remove the door
Do you have any suggestions for my post 41?

I would just do this in an openHab rule. You mean when you turn on via a switch, it should turn off after 1 min? If yes, create a proxy switch, expose it to HomeKit and create a rule like this in openHab:

rule "Turn on auto lamp"
when
     Item HomeKit_ProxyLight changed to ON
then
      your_light.sendCommand(ON)
end

If you don’t know how to turn off a light after a specified time, look for the Expire binding. If you do it like this, you also have to send a command ON to the timer.

I can’t really understand this. Also I’m not using the Door node because it is for motorized doors. Do you have a motorized door, or you just want to view the state on a Contact sensor?

I don’t think you can specify or view (take actions) from the Rooms specified in Home app. It just a view in iOS, which seems internal for me.

Yes motorized door

If it’s there then when you press the Home icon in the app (left top) there is a sensor section where you can turn ON/OFF notifications for each sensor.

Yes in Home iOs seen …
I was wondering if there was a code in node-red to disable the notifications …

No - notifications are only changeable in homekit. I have to disable mine on my phone, iPad, and computer separately.

This is much easier with the openhab expire binding. Just search paper UI bindings for expire and add it.
Expire binding

Could probably also accomplish this with a trigger node in nodered.

No again this is a homekit setting.

Hi Garrett!

So after your advice on my other thread, I’ve been digging around node-red.
Still trying to get my head around it, but what you’ve posted here really helps, so thank you!

In you final comments you mention using Homekit’s presence detection to report back to OpenHAB, that’s really interesting, but I’ve been unable to figure out how to do it.
Also trying to use the “Break:Homekit” tip to see what’s available but I’m doing something wrong. Can you elaborate on these, or post some code?

Thank you!

For this one I have “dummy switches” in my homekit setup. I have one for myself and one for if anyone is home the HOMEKIT rules are like this set as follows:

  • When the first person gets home → turn “anyone home” on
  • When the last person leaves → turn “anyone home” off
  • When Garrett gets home → turn “Garrett Home” on
  • When Garrett leaves → turn “Garrett Home” off

These are linked to switches in openhab which I then use to check rules with “if” statements. if garrettHome.state == "ON".

For your other question, I think you’re missing some quotes. The input into the homekit node needs to be "word":"word" - you put quotes around the whole thing - the : needs to be between the two sets of quotes. There should be an error in the debug tab of nodered explaining available options.

Hi,
is it possible to have a Homekit “Switch” ( Stand alone ) for e.g triggering a timer?
06

Tried this and get the following error every time i tab on the switch-icon in Homekit
52

I don’t know how bigtimer works. But yes you can have a homekit switch to turn on/off nodered things.

Like always, you need to change the payload from homekit which looks like {“on”:true} and {“on”:false} to whatever bigtimer is looking for.

I have one for “haunted house” mode - which is my vacation mode that turns on and off random switches all day.

First of all, thank you so much @crxporter for sharing your knowledge. I’ve previously made several attempts at implementing an openHAB <-> nodeRED <-> HomeKit setup without success. After reviewing your work, I’ve successfully set up numerous switch items, several dimmers, and a ceiling fan (speed control) with relatively little effort. My wife was thrilled when she woke up and opened the Home app on her iPhone.

Once I’ve cleaned up code a bit and created a few more types (security system, valves, and speakers), I’ll share my own examples on this thread.

However, I’m struggling with getting an integration with my NEST. I reviewed the post referenced further up, but to be honest I’m having a hard time understanding everything going on, between the different language for the items and the presence of more than one thermostat.

Here’s my code currently. I’ve made a lot of tweaks and changes but haven’t been able to get it working at all.

[
    {
        "id": "33ee521d.95a026",
        "type": "openhab2-in",
        "z": "a676c014.1c3c68",
        "name": "",
        "controller": "b71fea36.e2bda",
        "itemname": "A_HVAC_NEST_Temp",
        "x": 120,
        "y": 40,
        "wires": [
            [
                "e8152221.207ca8"
            ],
            []
        ]
    },
    {
        "id": "78ac93f4.cdaa5c",
        "type": "openhab2-in",
        "z": "a676c014.1c3c68",
        "name": "",
        "controller": "b71fea36.e2bda",
        "itemname": "A_HVAC_NEST_SP",
        "x": 110,
        "y": 100,
        "wires": [
            [
                "712fb31b.0e5714"
            ],
            []
        ]
    },
    {
        "id": "f553e239.92af5",
        "type": "openhab2-in",
        "z": "a676c014.1c3c68",
        "name": "",
        "controller": "b71fea36.e2bda",
        "itemname": "A_HVAC_NEST_Mode",
        "x": 120,
        "y": 160,
        "wires": [
            [
                "b053f10b.ed14e"
            ],
            []
        ]
    },
    {
        "id": "c36f071d.b1406",
        "type": "homekit-service",
        "z": "a676c014.1c3c68",
        "bridge": "467c262f.9839",
        "name": "NEST",
        "serviceName": "Thermostat",
        "manufacturer": "Default Manufacturer",
        "model": "Default Model",
        "serialNo": "Default Serial Number",
        "characteristicProperties": "{}",
        "x": 670,
        "y": 160,
        "wires": [
            []
        ]
    },
    {
        "id": "b053f10b.ed14e",
        "type": "function",
        "z": "a676c014.1c3c68",
        "name": "OH to HK",
        "func": "if (msg.payload == \"HEAT\") {\n    msg.payload = {\n        \"CurrentHeatingCoolingState\": \"heating\"\n    };\n} else if (msg.payload == \"COOL\") {\n    msg.payload = {\n        \"CurrentHeatingCoolingState\": \"cooling\"\n    };\n} else if (msg.payload == \"OFF\") {\n    msg.payload = {\n        \"CurrentHeatingCoolingState\": \"off\"\n    };\n}\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 320,
        "y": 160,
        "wires": [
            [
                "c36f071d.b1406"
            ]
        ]
    },
    {
        "id": "712fb31b.0e5714",
        "type": "function",
        "z": "a676c014.1c3c68",
        "name": "OH to HK",
        "func": "var input = msg.payload;\n\nmsg.payload = {\n    \"TargetTemerature\": input,\n        };\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 320,
        "y": 100,
        "wires": [
            [
                "c36f071d.b1406"
            ]
        ]
    },
    {
        "id": "e8152221.207ca8",
        "type": "function",
        "z": "a676c014.1c3c68",
        "name": "OH to HK",
        "func": "var input = msg.payload;\n\nmsg.payload = {\n    \"CurrentTemerature\": input,\n        };\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 320,
        "y": 40,
        "wires": [
            [
                "c36f071d.b1406"
            ]
        ]
    },
    {
        "id": "8265253d.9b7e18",
        "type": "openhab2-in",
        "z": "a676c014.1c3c68",
        "name": "",
        "controller": "b71fea36.e2bda",
        "itemname": "A_HVAC_NEST_State",
        "x": 120,
        "y": 220,
        "wires": [
            [
                "33fcd577.1b7d8a"
            ],
            []
        ]
    },
    {
        "id": "33fcd577.1b7d8a",
        "type": "function",
        "z": "a676c014.1c3c68",
        "name": "OH to HK",
        "func": "if (msg.payload == \"HEATING\") {\n    msg.payload = {\n        \"CurrentHeatingCoolingState\": 1\n    };\n} else if (msg.payload == \"COOLING\") {\n    msg.payload = {\n        \"CurrentHeatingCoolingState\": 2\n    };\n} else if (msg.payload == \"OFF\") {\n    msg.payload = {\n        \"CurrentHeatingCoolingState\": 0\n    };\n    \n}\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 320,
        "y": 220,
        "wires": [
            [
                "c36f071d.b1406"
            ]
        ]
    },
    {
        "id": "9e33a1dd.41c99",
        "type": "inject",
        "z": "a676c014.1c3c68",
        "name": "",
        "topic": "",
        "payload": "{\"Break\":\"HomeKit\"}",
        "payloadType": "json",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 590,
        "y": 40,
        "wires": [
            [
                "c36f071d.b1406"
            ]
        ]
    },
    {
        "id": "b71fea36.e2bda",
        "type": "openhab2-controller",
        "z": "",
        "name": "openHAB Archon",
        "protocol": "http",
        "host": "192.168.1.80",
        "port": "8080",
        "path": "",
        "username": "",
        "password": ""
    },
    {
        "id": "467c262f.9839",
        "type": "homekit-bridge",
        "z": "",
        "bridgeName": "node-RED",
        "pinCode": "111-11-111",
        "port": "",
        "manufacturer": "Default Manufacturer",
        "model": "Default Model",
        "serialNo": "Default Serial Number"
    }
]

Screenshot%20at%202018-12-15%2010-54-20

Obviously, at this point I’m only trying to get data from openHAB to HomeKit; once that’s working reliably I’ll add the return to openHAB logic as well. I did this to avoid actually turning my thermostat on and off all night while I troubleshoot.

Does anyone have any suggestions for me?

Edit:
openHAB (2.4M8) and nodeRED are running in Docker containers on an Ubuntu 18.04 server.

I’m glad I could help! I’m interested in your security system and valves - these are things that don’t seem to have been explored much at this point.

On to your NEST - I don’t have one of these so I can’t be a TON of help but I have suggestions on how to go into your troubleshooting. First will be to add debugs on everything. If you hover over the output in the debug pane - the debug node it came from will “light up” with a red dashed border so you can see what’s happening. This is so important because it breaks everything down and you can see which parts are working and which aren’t.

I looked at your setup and my first thought is I bet your temperature state and setpoints are in the format of “66.0° F” and you’re sending on to HomeKit like that. HomeKit wants just a number 0 through 100 in 0.1 increments in degrees celsius. (I looked it up in Apple’s HomeKit Accessory Protocol document, let me know in PM if you want a copy :hushed:)

You’ll need to do more maths for that one to work.

The HomeKit Protocol document is EXTREMELY helpful. Once you know what you can send “into” homekit you just search that to see what format things are.

As for the mode setting, it seems to me like your NEST_State should work (output of the function OH to HK 4 looks good). But there may be some other disconnect.

I made a new version of your nodes with a nice collection of debug nodes. A good one to watch is Debug9 - if anything shows up in that one it means the HomeKit item is accepting your changes.

[
    {
        "id": "ef8712b5.09cef8",
        "type": "debug",
        "z": "98730e47.019298",
        "name": "Debug1",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "x": 340,
        "y": 220,
        "wires": []
    },
    {
        "id": "5c888732.2decd8",
        "type": "openhab2-in",
        "z": "98730e47.019298",
        "name": "",
        "controller": "72ae56dd.4e7628",
        "itemname": "A_HVAC_NEST_Temp",
        "x": 140,
        "y": 160,
        "wires": [
            [
                "754d2615.a29928",
                "ef8712b5.09cef8"
            ],
            []
        ]
    },
    {
        "id": "754d2615.a29928",
        "type": "function",
        "z": "98730e47.019298",
        "name": "OH to HK 1",
        "func": "var input = msg.payload;\n\nmsg.payload = {\n    \"CurrentTemerature\": input,\n        };\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 450,
        "y": 160,
        "wires": [
            [
                "167cad32.ec0f6b",
                "206b78c7.3b3fb"
            ]
        ]
    },
    {
        "id": "167cad32.ec0f6b",
        "type": "homekit-service",
        "z": "98730e47.019298",
        "bridge": "96b48eda.5d5498",
        "name": "NEST",
        "serviceName": "Thermostat",
        "manufacturer": "Default Manufacturer",
        "model": "Default Model",
        "serialNo": "Default Serial Number",
        "characteristicProperties": "{}",
        "x": 870,
        "y": 340,
        "wires": [
            [
                "2e31c716.007f28"
            ]
        ]
    },
    {
        "id": "206b78c7.3b3fb",
        "type": "debug",
        "z": "98730e47.019298",
        "name": "Debug5",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "x": 620,
        "y": 200,
        "wires": []
    },
    {
        "id": "3c005bc9.ac0ec4",
        "type": "function",
        "z": "98730e47.019298",
        "name": "OH to HK 3",
        "func": "if (msg.payload == \"HEAT\") {\n    msg.payload = {\n        \"CurrentHeatingCoolingState\": \"heating\"\n    };\n} else if (msg.payload == \"COOL\") {\n    msg.payload = {\n        \"CurrentHeatingCoolingState\": \"cooling\"\n    };\n} else if (msg.payload == \"OFF\") {\n    msg.payload = {\n        \"CurrentHeatingCoolingState\": \"off\"\n    };\n}\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 450,
        "y": 360,
        "wires": [
            [
                "167cad32.ec0f6b",
                "764d3608.4df2e8"
            ]
        ]
    },
    {
        "id": "83849fb3.ad7848",
        "type": "function",
        "z": "98730e47.019298",
        "name": "OH to HK 2",
        "func": "var input = msg.payload;\n\nmsg.payload = {\n    \"TargetTemerature\": input,\n        };\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 450,
        "y": 260,
        "wires": [
            [
                "167cad32.ec0f6b",
                "24fbcd78.4ef962"
            ]
        ]
    },
    {
        "id": "cae80c0f.65ac6",
        "type": "function",
        "z": "98730e47.019298",
        "name": "OH to HK 4",
        "func": "if (msg.payload == \"HEATING\") {\n    msg.payload = {\n        \"CurrentHeatingCoolingState\": 1\n    };\n} else if (msg.payload == \"COOLING\") {\n    msg.payload = {\n        \"CurrentHeatingCoolingState\": 2\n    };\n} else if (msg.payload == \"OFF\") {\n    msg.payload = {\n        \"CurrentHeatingCoolingState\": 0\n    };\n    \n}\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "x": 450,
        "y": 460,
        "wires": [
            [
                "167cad32.ec0f6b",
                "97e9ffa4.ca311"
            ]
        ]
    },
    {
        "id": "4114d757.70e33",
        "type": "inject",
        "z": "98730e47.019298",
        "name": "",
        "topic": "",
        "payload": "{\"Break\":\"HomeKit\"}",
        "payloadType": "json",
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "x": 710,
        "y": 100,
        "wires": [
            [
                "167cad32.ec0f6b"
            ]
        ]
    },
    {
        "id": "2e31c716.007f28",
        "type": "debug",
        "z": "98730e47.019298",
        "name": "Debug9",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "x": 1060,
        "y": 400,
        "wires": []
    },
    {
        "id": "a9a7a3bd.73709",
        "type": "openhab2-in",
        "z": "98730e47.019298",
        "name": "",
        "controller": "72ae56dd.4e7628",
        "itemname": "A_HVAC_NEST_Mode",
        "x": 140,
        "y": 360,
        "wires": [
            [
                "3c005bc9.ac0ec4",
                "aa4abc1c.5e5bf8"
            ],
            []
        ]
    },
    {
        "id": "764d3608.4df2e8",
        "type": "debug",
        "z": "98730e47.019298",
        "name": "Debug7",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "x": 620,
        "y": 400,
        "wires": []
    },
    {
        "id": "7cab863b.f69c",
        "type": "openhab2-in",
        "z": "98730e47.019298",
        "name": "",
        "controller": "72ae56dd.4e7628",
        "itemname": "A_HVAC_NEST_SP",
        "x": 130,
        "y": 260,
        "wires": [
            [
                "83849fb3.ad7848",
                "a56f1c2a.8c0ad"
            ],
            []
        ]
    },
    {
        "id": "24fbcd78.4ef962",
        "type": "debug",
        "z": "98730e47.019298",
        "name": "Debug6",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "x": 620,
        "y": 300,
        "wires": []
    },
    {
        "id": "35d19b57.12d994",
        "type": "openhab2-in",
        "z": "98730e47.019298",
        "name": "",
        "controller": "72ae56dd.4e7628",
        "itemname": "A_HVAC_NEST_State",
        "x": 140,
        "y": 460,
        "wires": [
            [
                "cae80c0f.65ac6",
                "2f79fc07.5526ec"
            ],
            []
        ]
    },
    {
        "id": "97e9ffa4.ca311",
        "type": "debug",
        "z": "98730e47.019298",
        "name": "Debug8",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "x": 620,
        "y": 500,
        "wires": []
    },
    {
        "id": "aa4abc1c.5e5bf8",
        "type": "debug",
        "z": "98730e47.019298",
        "name": "Debug3",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "x": 340,
        "y": 400,
        "wires": []
    },
    {
        "id": "a56f1c2a.8c0ad",
        "type": "debug",
        "z": "98730e47.019298",
        "name": "Debug2",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "x": 340,
        "y": 300,
        "wires": []
    },
    {
        "id": "2f79fc07.5526ec",
        "type": "debug",
        "z": "98730e47.019298",
        "name": "Debug4",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "payload",
        "x": 360,
        "y": 500,
        "wires": []
    },
    {
        "id": "72ae56dd.4e7628",
        "type": "openhab2-controller",
        "z": "",
        "name": "openHAB Archon",
        "protocol": "http",
        "host": "192.168.1.80",
        "port": "8080",
        "path": "",
        "username": "",
        "password": ""
    },
    {
        "id": "96b48eda.5d5498",
        "type": "homekit-bridge",
        "z": "",
        "bridgeName": "node-RED",
        "pinCode": "111-11-111",
        "port": "",
        "manufacturer": "Default Manufacturer",
        "model": "Default Model",
        "serialNo": "Default Serial Number"
    }
]
1 Like

Thank you very much for the tips. I’ll grind this later today!