I have Linux clients (Debian, Raspbian) and I want to turn their screen on and off from OH rule (maybe later shutdown, restart and other things can useful). How is this possible with the easiest approach?
I saw the there is a script for Windows to work as an MQTT client. Are there any similar thing for Linux? Or should I do it with the exec binding? If yes, how? The clients are in the same network, but every client is a seperate client, so it has to be done through network.
I do this to control my little fleet of raspberry piās around the house.
My solution is MQTT running on the openhab pi then install node-red on the other computers. With just a bit of node-red you can take any MQTT message and convert it to a command line exec command.
Could run basically any command-line code you like, I use it for curl, āsudo rebootā, and playing audio on remote piās.
Iām trying to go for a unified way in IoT and lots of my switches, etc use MQTT, so it will be great if almost everything can use the same protocol/message control.
Step 1:
Install node red on the āremoteā computer. Use instructions for windows, linux, mac, debian, raspberry pi - you name it from nodered.org.
Step 2:
Put an MQTT node and an exec node together. Youāll have to do a bit of configuring on the MQTT node - double click it to enter the IP address, authentication, etc. Default settings on the exec node should work for simple commands but you may have to tinker with the exec node configuration to get it just right. Looks like this:
Step 3:
Any string sent to that topic will be run in the command line.
Step 4:
Profit?
I have another command line program (atvremote) that I use this way with a bit more code to watch the output of the exec node (runs in spawn mode) - then while the CLI program is running I get push updates from the apple TV to send back to openhab for all sorts of fun. More on that by special request.
(obviously this is a very simple example - you can add change nodes and switch nodes and javascript functions to your heartās content. Iāll leave it to you to go through the node-red documentation but needless to say itās a great tool)
I just clicked on your profile and saw you also use HomeKitā¦
If you come to like node red, it has a homekit bridge node that has now become my go-to for all devices homekit. I have my light switches, dimmers, outlets, curtains, fans, and sprinklers all linked between openhab and homekit with node red. It works MUCH better than anything Iāve ever tried with openhabās homekit functionality.
As a bonus - all of these items show as their proper device type in homekit! I used to call my window a āswitchāā¦
Iām happy to share my setup, feel free to flag me in another topic if youād like to see any of it.
Thanks, this seems really cool! I have had several problems with HomeKit (you can see it in my profile, I was the one who started the āNo responseā error). However it now works okay, all devices are light switches. I donāt have any specific devices yet (like roller shutter), but it would be great to have specific device types.
So you expose your items to Node-RED and that takes care of HomeKit?
Itās a more complicated setup than your exec node above. The āflowā in node red goes like this:
-Starts with an openhab node (locally or on local network)
-Goes to a javascript function node to ātranslateā commands from openhab terms to homekit homes
-Goes into a homekit node
-Next is another function to ātranslateā from homekit back to openhab
-Finally goes back to openhab (in the case you command an item from homekit)
Then youāll add a homekit bridge on your home app pointed at node red and be running. My bridge has about 50 devices right now (oh I forgot my smoke detector earlier! Itās wired to a pi GPIO pin). Iāve had no errors or issues with this setup in the past few months.
I went to this setup because I had issues with my dimmers sending ādouble commandsā which is another common complaint of the openhab/homekit integration.
Honestly node red has made many of my rules much easier for me to set up. I still have tons of rules and items in openhab - but node red is becoming my choice more and more oftenā¦
Thank you. Then back to node red controll. If i have a ads1115 that gets anolg from sensors can i also do it this way aswell.to send the info to openHAB?
If itās plugged into a pi then yes thereās a node-red plugin for it (under āmanage palletā).
If itās connected to something that runs MQTT (publish the ADS1115 data to MQTT) then again, yes - just pull the data off MQTT topics and send it into OpenHAB.
I donāt have that hardware but it appears to be supported in node-red.
If you have time, Iām more interested in the HomeKit flow you have How you can choose which elements are should be exposed to HomeKit, how you transform the item from openHab into HomeKit, you you deploy inputs from HomeKit to openHab, etcā¦
Ps.: I have already installed the OH and HomeKit extension for Node-RED, I will migrate everything if I have time (thus I will have more item, because I can include things which I was unable before). You have this flow for every item you have exposed to HomeKit or can you make it āgeneralā for similar items?
Youāre hooked. I like it. Iāll to put together some examples for you.
The way homekit works is you connect a bridge to your phone then add devices in node red that all point to that bridge. Similar to how your mqtt nodes point to your mqtt broker.
Give me a bit, I need to add comments to some code. Iāll pick one of each item type I have - should be a good addition to the forums.