Node-Red
 
Description:
Node-RED is an open-source visual programming tool designed for wiring together hardware devices, APIs, and online services in new and interesting ways. It provides a browser-based flow editor that allows users to create flows by dragging and dropping nodes onto a canvas and connecting them together. Each node represents a specific function or service, and flows are created by connecting the output of one node to the input of another.
Note: When I got started with Home Assistant, Node-RED was the go-to automation platform, and Home Assistant was more like the coordinating state machine. Today, Home Assistant has done a lot to improve automation support natively, and it is now probably more common for people to stick with Home Assistant for all their automations. I may get there someday, but I’m unlikely to do so anytime soon.
Quick Links:
- Main: https://nodered.org/
- Github: https://github.com/node-red/node-red
- Release History: https://github.com/node-red/node-red/releases
 
- Documentation: https://nodered.org/docs/
- Steve’s Node-Red Guide: https://stevesnoderedguide.com/ - (good for getting started)
Setup/Config:
- I have it setup running in Docker
- Official quick start: https://nodered.org/docs/getting-started/docker
- Better => search user docker compose configs on github for examples
 
 
- Official quick start: https://nodered.org/docs/getting-started/docker
Useful Palettes:
- 
What is a Palette?: https://nodered.org/docs/user-guide/editor/palette/ => think “plug-in” - Home Assistant Websocket - essential if you are planning to use NR with Home Assistant
- Schedex - scheduler node for suncalc and time-based events.
- Eztimer - like schedex. simpler to use for certain use cases
- Time Range Switch - node to create time range brackets
- Weekday - node to determine weekdays
- Holiday - node to determine holidays
 These are pallets available for Amazon Alexa, but probably not worth the time at this point without more clarity from Amazon on platform direction and a resourgence in developer interest… 
Node-RED Example
Two flow examples for regulating a skylight. The window is regulated by internal & external temperatures and the shade by the sun’s position (azimuth & elevation).
 
Want to know more about Flow-based Programming (FBP)?
- Wiki Entry: https://en.wikipedia.org/wiki/Flow-based_programming
- Good post by J. Paul Rodker Morrison
- HN Discussion: https://news.ycombinator.com/item?id=25848542
 
- FBP for JavaScript: https://noflojs.org/