A little bit of background: I have an MVHR unit installed in the house, and I have a need to control and monitor some of its functions. I have a simple Python-based web server on a RasPi Zero that enables me to remotely control one of the main functions (via Automation pHAT), but want to do something more.
I came across Node-RED a couple of days ago, and have already installed it on a spare RasPi Zero to play with. It looks like it will do everything I need, and more. What I want to understand is how best to deploy this for my project.
My initial thought is to install Node-RED on a single server (along with a Mosquitto Broker), but I get the impression that this would restrict configuration to that server, i.e. the flows would only run on that server (albeit that they could be exported).
My second thought is to install Node-RED on the server, but also to install Node-RED on every client that needs more local intelligence. Each client would be self-contained, responding to input messages and generating output messages as necessary. Am I correct, or is this overkill? I'm not adverse to writing software to do this, but it seems Node-RED provides everything I need already.
As an example, the client that interfaces with the MVHR will monitor temperature and flow rate for both air and water. Locally, I might want to configure some intelligence to control a low pressure hot water pump and generate alarms. Remotely, I might want to respond to generate a button press event that will result in the local change of status of the air exchange. i.e. separating the concerns of the internal control of the MVHR from the external control.
Am I overthinking this? Some advice and guidance would really be appreciated.