Well, like Walter, I started years ago with a single Pi that became two Pi's and then I started migrating to a 3rd. About then I decided that the Pi's we too complex and replaced them with an old Lenovo laptop with Debian. Didn't bother replacing the drive though since I'm not doing anything that needs any drive performance.
Along the way, I've slowly evolved my understanding of Node-RED, Node.js, JavaScript, IoT, MQTT, InfluxDB, HTML, CSS and doubtless a few other things.
So every now and then, I'll look at a flow and think of a simpler way of doing it and work towards that - which might be quick or might take some time if I need to change underlying data structures. I'll often have things running in parallel for a while.
But for me, the big changes tend to come when I look at my flows and decide that I can't be bothered to make changes because everything is a mess. At that point, I'll stand up a new, clean instance of Node-RED and start to move functions over while cleaning them up.
Because I'm familiar with JavaScript, the other thing I'll tend to do is collapse multiple nodes into a single function node where that makes sense.
Actually, I do make use of them a lot. Typically, I've ended up with MQTT topic hierarchies that I also have as a global var. That way, I always have instant access as well as subscriptions for change events . If the context variable functions had change events on them I wouldn't need MQTT anywhere near as much and one day I really will get round to writing a suitable plugin!
Actually, I hardly even need to use SubFlows. But I do make a lot of use of link nodes which can not only greatly simplify the visuals of your flows but also let you minimise the number of repeat nodes. For example, I will typically have 2 MQTT-out nodes on a tab - one set to retain and one not. They have link-in nodes attached and are used by all flows on that tab. Not much efficiency gain probably but it really helps where you later decide that you want to include some standard metadata with your mqtt outputs because you now only have to do them in 1 place on each tab. I generally try to avoid link nodes across tabs as that can get a little confusing. But I always try to name my links anyway.
Yes, totally agree. And agree that Grafana is better than Node-RED for most historical dashboards.
I also use Telegraf to grab system monitoring information from the server and from other devices such as Wi-Fi APs and routers. I output from Telegraf to both InfluxDB and to MQTT so I have both instance and event data via MQTT as well as historic monitoring via Grafana.
Yes, possibly the easiest bot tools and has really good performance and reasonable security/privacy.
Agree. I don't often use this but it is a good way to add simple, Internet connected controls without having to faff with secure proxies or VPN's.
I back up Node-RED 7xdaily/5xweekly/12xmonthly simply to local folders. My NAS takes backups from the server. I've never bothered to back up InfluxDB as I don't really need that data, I'd just start from scratch if I lost it.
Personally, I wouldn't try to use remote NAS folders for config and userDir live use as that complicates things and adds something else that could go wrong. The NAS is perfectly capable of backing up the server folders and files.
Absolutely, this is a really nice tweak. I use my routers DHCP settings to fix IP addresses for known MAC addresses and I give things recognisable (to me) names. I also maintain a table of addresses (IP and MAC) which I can add descriptions and other data to via a uibuilder page. That table is also updated by a BASH script that runs periodically using nmap. That way, I know anything that has ever connected to my network and can map known devices and when they were last active.
The other nice tweak is to implement a local DNS that uses "hairpin DNS". This lets you use an external domain name internally. That, in turn, lets you implement TLS using Let's Encrypt certificates. It stops your browser from whinging at you that you are using "insecure" web pages.
Yes, either your router's VPN capability if you can be bothered to set it up. Or NGROK or Cloudflare Teams (their zero-trust service).