My Favourite Software
You can find the rest of the list here:
Node-RED
Node-RED is the Swiss-Army knife of home automation and programming.
Using a drag and drop interface in your browser, you add, delete and edit “Nodes” to build up your program. Nodes are functional blocks of pre-built code that you can use in your “flows”. Each Node has a specific job, such as receiving an HTTP request, receiving an MQTT message, detecting an open door, making decisions, changing parameters or injecting information.

The simple example above has one “flow” labelled “Flow 1”. Flows are the equivalent of a program, and Node-RED can contain multiple flows.
In the screen capture above, you see a node titled “[get]/hello.” This node receives a web page request from a browser for the page “hello.” Once a request has been received, the request is passed to the “template” node, where presumably some HTML is generated. Once that HTML is ready, it’s passed to the “HTTP” node, which returns a webpage to the browser.
No matter how complex your flow is, the pattern is always the same
- An event triggers a flow to execute. Either a new HTTP request or MQTT message, a timer expires etc. In this case, a new HTTP request comes into [get]/hello.
- Process the Event. Using the standard Nodes, or ones you installed or wrote, you can process the event and make some decisions. In this case, we’re simply adding HTML to the request.
- Act on the event. Often events require a response. For example, requesting a webpage needs a webpage to be produced and sent back to the browser.
Node-RED is expandable through its community of plug-in developers.
Cost
Node-RED is free.
Conclusion
Do yourself a favour – if you need any monitoring or automation, give Node-RED a look. With its plug-in base, you can receive events from hundreds of sources, including IFTTT.com, HTTP, MQTT, Timers, Email, Date and more.
With the included Nodes, you can whip up a response to those events and, if required, write your own custom Javascript (under Node.js) to handle events or process data.
And, when you’re all done with the event, you can choose to send email notifications, send out control messages over MQTT, HTTP or one of the hundreds of other destinations.
It really is the Swiss-Army knife of home automation, and I love it!