Jan-Lukas Else

Thoughts of an IT expert

(Smart Home) Automation with Node-RED

Published on in ✍️ Posts
Short link: https://b.jlel.se/s/4fd

Yesterday I expanded the memory in my home and code server to 16 GB and wondered what I could do with all the resources this server provides me. So I looked around a bit and came across an open source program called Node-RED. Especially in the context of Smart Home and Home Assistant, I’ve heard about it a few times, but never looked into this software in more detail.

Basically, Node-RED is something similar to IFTTT, Zapier, or Beehive and n8n, which I had mentioned on the blog before. For those tools, I had sometimes found minor use cases, but ultimately not much use.

But now that I’m also into smart home - today I ordered some smart plugs -, I thought I should try Node-RED as well, after all Node-RED offers direct integration with Home Assistant and thus allows to automate the smart home. Among many other things…

The installation was pretty simple using Docker: create a service in docker-compose.yml, start it, done.

Then I installed the package node-red-contrib-home-assistant-websocket, which provides integration with Home Assistant. This can then be used to retrieve and change the states of the entities in Home Assistant, run services, etc.

The operation of Node-RED is similar to Scratch, which we used to learn programming at school. There are nodes that can be connected to form programs or flows. Programming without having to write code, so to speak. You can then configure the individual nodes to customize the actions to be executed.

What I particularly like about this visual way of programming is that you can extend, adapt and change existing flows quite easily. In addition, you already have access to a large selection of existing nodes created by the community, which allows you to create a flow that reads the sensor values from Home Assistant and then sends them via Telegram in just a few clicks. And if you do need something special, there’s always the option to run JavaScript in a function node.

I have mainly created two flows so far. One flow allows me to query the temperature in my apartment and outside via a Telegram bot. It also sends an update every three hours between 6am and 6pm. The other flow allows me to query and change the status of the Wi-Fi (on or off) via Telegram. I can also switch the guest Wi-Fi in this way. The flows look like this (sorry for the German descriptions):

In addition, I have created a third flow - for testing - which replies me with a QR code of the text I send in a command:

What I would like to set up again is something my father had tinkered with and programmed back in the day. Using a Telegram bot, you could query if the dryer in the basement was still working and get a notification when it was done.

The simplest option would be a socket sensor that measures how much power is currently being drawn from the socket. However, the available ready-made options for this somehow seems to be quite small. Another possibility would be to tinker something myself with ESPHome, but for that I first have to get closer to the whole chip and sensor matter. I just don’t feel like soldering that much.

Tags: , , , , ,

Jan-Lukas Else
Interactions & Comments