I was developing a solution with multiple flows (eleven) on a Raspberry Pi 4 and reached a point with the visual editor was going out to lunch for extended periods of time. So I restarted node red in safe mode and exported each flow individually.
I then deleted all the flows and re-imported the first one that had a GUI and the UI web page would not display and the environment was still sluggish.
So I totally recreated the environment from scratch to start over again. Verified that the visual editor and UI web page was functional.
I then started importing my individual flows and was soon back to the point of the response time being very slow.
So I recreate the environment again and start to import my flows again, concentrating on the oldest most mature flows.
I was importing the individual flows as new flows each time. I noticed that each flow had to have a MQTT node reconfigured. After getting in two flows that used MQTT I noticed that each flow would oscillate between connected and disconnected for the MQTT nodes in the visual editor.
I then visited the hamburger and configuration nodes to see that there was multiples for mqtt-broker, so I deleted the extra configuration.
This causes the flow that the used the configuration to report an error on the MQTT nodes and have the mqtt host selection removed.
I then configured these nodes to point to the same broker configuration and redeployed.
This did not fix the oscillate between connected and disconnect problem.
Here are the flows that demonstrate the problem.
Hydronic heating GUI
[{"id":"2c8971dd.fc375e","type":"tab","label":"Hydronic heating GUI","disabled":false,"info":""},{"id":"ab0159b0.a0e0a8","type":"comment","z":"2c8971dd.fc375e","name":"Hydronic Dashboard Web Page","info":"","x":150,"y":20,"wires":[]},{"id":"9008b70f.f97fd8","type":"function","z":"2c8971dd.fc375e","name":"true/false on/off Conversion to Boolean","func":"if (msg.topic.includes(\"/relay\"))\n{\n cmd = msg.payload.toLowerCase();\n if (cmd === \"on\")\n {\n msg.payload = true;\n return msg;\n }\n if (cmd === \"true\")\n {\n msg.payload = true;\n return msg;\n }\n if (cmd === \"false\")\n {\n msg.payload = false;\n return msg;\n }\n if (cmd === \"off\")\n {\n msg.payload = false;\n return msg;\n }\n}\nreturn null;","outputs":1,"noerr":0,"x":190,"y":300,"wires":[["8540177d.0e88a8"]]},{"id":"8540177d.0e88a8","type":"switch","z":"2c8971dd.fc375e","name":"Switch router","property":"topic","propertyType":"msg","rules":[{"t":"cont","v":"Zone1/relay","vt":"str"},{"t":"cont","v":"Zone2/relay","vt":"str"},{"t":"cont","v":"Zone3/relay","vt":"str"},{"t":"cont","v":"Zone4/relay","vt":"str"},{"t":"cont","v":"Zone5/relay","vt":"str"},{"t":"cont","v":"Zone6/relay","vt":"str"},{"t":"cont","v":"Stir/relay","vt":"str"},{"t":"cont","v":"Burner/relay","vt":"str"},{"t":"cont","v":"Engine/relay","vt":"str"},{"t":"cont","v":"Generator/relay","vt":"str"},{"t":"cont","v":"BurnerValve/relay","vt":"str"}],"checkall":"true","repair":false,"outputs":11,"x":250,"y":680,"wires":[["d5c4cb96.1e14a8"],["bf61fbe2.98bc28"],["bc7da947.542bd8"],["3a932964.e07136"],["f06a5391.a173"],["9761ad60.f869c"],["52bc70c8.019f9"],["35288b24.f503a4"],["abab7885.4607a8"],["f25b6b35.f45e18"],["4718b4cd.a4550c"]],"info":"Switch node to router MQQT messages to the appropiate relay pin\n"},{"id":"cf8c35b5.b9b248","type":"link in","z":"2c8971dd.fc375e","name":"","links":["d0b11d35.29843"],"x":495,"y":80,"wires":[["d5c4cb96.1e14a8"]]},{"id":"d0b11d35.29843","type":"link out","z":"2c8971dd.fc375e","name":"","links":["cf8c35b5.b9b248"],"x":615,"y":80,"wires":[]},{"id":"d5c4cb96.1e14a8","type":"ui_switch","z":"2c8971dd.fc375e","name":"Bedroom Manual Control","label":"Bedroom","tooltip":"Zone pump and fan control for Bedroom","group":"f774edbd.a2dde","order":1,"width":0,"height":0,"passthru":false,"decouple":"true","topic":"hydronic/Zone1/relay","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":540,"y":20,"wires":[["d0b11d35.29843","55c44c41.b9cb34"]]},{"id":"722530ef.2fa45","type":"link in","z":"2c8971dd.fc375e","name":"","links":["3c68e337.d62e5c"],"x":475,"y":200,"wires":[["bf61fbe2.98bc28"]]},{"id":"3c68e337.d62e5c","type":"link out","z":"2c8971dd.fc375e","name":"","links":["722530ef.2fa45"],"x":615,"y":200,"wires":[]},{"id":"bf61fbe2.98bc28","type":"ui_switch","z":"2c8971dd.fc375e","name":"Bathroom Manual Control","label":"Bathroom","tooltip":"Zone pump and fan control for Bathroom","group":"f774edbd.a2dde","order":2,"width":0,"height":0,"passthru":false,"decouple":"true","topic":"hydronic/Zone2/relay","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":540,"y":140,"wires":[["3c68e337.d62e5c","55c44c41.b9cb34"]]},{"id":"1cf1bd40.d4d6c3","type":"link in","z":"2c8971dd.fc375e","name":"","links":["3044f42.25ac50c"],"x":475,"y":320,"wires":[["bc7da947.542bd8"]]},{"id":"3044f42.25ac50c","type":"link out","z":"2c8971dd.fc375e","name":"","links":["1cf1bd40.d4d6c3"],"x":615,"y":320,"wires":[]},{"id":"bc7da947.542bd8","type":"ui_switch","z":"2c8971dd.fc375e","name":"Kitchen Manual Control","label":"Kitchen","tooltip":"","group":"f774edbd.a2dde","order":3,"width":0,"height":0,"passthru":false,"decouple":"true","topic":"hydronic/Zone3/relay","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":540,"y":260,"wires":[["3044f42.25ac50c","55c44c41.b9cb34"]]},{"id":"16a22554.a0975b","type":"link in","z":"2c8971dd.fc375e","name":"","links":["9e3cca6a.27e958"],"x":475,"y":440,"wires":[["3a932964.e07136"]]},{"id":"9e3cca6a.27e958","type":"link out","z":"2c8971dd.fc375e","name":"","links":["16a22554.a0975b"],"x":555,"y":440,"wires":[]},{"id":"3a932964.e07136","type":"ui_switch","z":"2c8971dd.fc375e","name":"Living Room Manual Control","label":"Living Room","tooltip":"Zone pump and fan control for Living Room","group":"f774edbd.a2dde","order":4,"width":0,"height":0,"passthru":false,"decouple":"true","topic":"hydronic/Zone4/relay","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":550,"y":380,"wires":[["9e3cca6a.27e958","55c44c41.b9cb34"]]},{"id":"9c5c5072.4b65f","type":"link in","z":"2c8971dd.fc375e","name":"","links":["ad4a1617.5d2e68"],"x":1055,"y":200,"wires":[["52bc70c8.019f9"]]},{"id":"ad4a1617.5d2e68","type":"link out","z":"2c8971dd.fc375e","name":"","links":["9c5c5072.4b65f"],"x":1135,"y":200,"wires":[]},{"id":"52bc70c8.019f9","type":"ui_switch","z":"2c8971dd.fc375e","name":"Hydronic Stir pump Manual Control","label":"Hydronic Stir pump","tooltip":"Hydronic Stir pump for glycol circulation","group":"f774edbd.a2dde","order":5,"width":0,"height":0,"passthru":false,"decouple":"true","topic":"hydronic/Stir/relay","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":1150,"y":140,"wires":[["ad4a1617.5d2e68","55c44c41.b9cb34"]]},{"id":"b2110a9c.1c1638","type":"link in","z":"2c8971dd.fc375e","name":"","links":["5bc2df77.83e7c"],"x":1075,"y":480,"wires":[["abab7885.4607a8"]]},{"id":"5bc2df77.83e7c","type":"link out","z":"2c8971dd.fc375e","name":"","links":["b2110a9c.1c1638"],"x":1195,"y":480,"wires":[]},{"id":"abab7885.4607a8","type":"ui_switch","z":"2c8971dd.fc375e","name":"Engine Preheat Manual Control","label":"Engine Preheat","tooltip":"Engine Preheat pump","group":"f774edbd.a2dde","order":9,"width":0,"height":0,"passthru":false,"decouple":"true","topic":"hydronic/Engine/relay","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":1140,"y":420,"wires":[["5bc2df77.83e7c","55c44c41.b9cb34"]]},{"id":"68170731.959aa8","type":"link in","z":"2c8971dd.fc375e","name":"","links":["17f79902.19ce27"],"x":1075,"y":620,"wires":[["f25b6b35.f45e18"]]},{"id":"17f79902.19ce27","type":"link out","z":"2c8971dd.fc375e","name":"","links":["68170731.959aa8"],"x":1195,"y":620,"wires":[]},{"id":"f25b6b35.f45e18","type":"ui_switch","z":"2c8971dd.fc375e","name":"Generator Preheat Manual Control","label":"Generator Preheat","tooltip":"Generator Preheat pump","group":"f774edbd.a2dde","order":10,"width":0,"height":0,"passthru":false,"decouple":"true","topic":"hydronic/Generator/relay","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":1150,"y":560,"wires":[["55c44c41.b9cb34","17f79902.19ce27"]]},{"id":"eb93641c.943618","type":"link in","z":"2c8971dd.fc375e","name":"","links":["4caeaaab.80a404"],"x":1035,"y":320,"wires":[["35288b24.f503a4"]]},{"id":"4caeaaab.80a404","type":"link out","z":"2c8971dd.fc375e","name":"","links":["eb93641c.943618"],"x":1135,"y":320,"wires":[]},{"id":"35288b24.f503a4","type":"ui_switch","z":"2c8971dd.fc375e","name":"Diesel Boiler Manual Control","label":"Diesel Boiler","tooltip":"Diesel Boiler for glycol heating","group":"f774edbd.a2dde","order":6,"width":0,"height":0,"passthru":false,"decouple":"true","topic":"hydronic/Burner/relay","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":1130,"y":280,"wires":[["4caeaaab.80a404","55c44c41.b9cb34"]]},{"id":"de8ca34e.36ef7","type":"link in","z":"2c8971dd.fc375e","name":"","links":["e62e021b.2e912"],"x":435,"y":560,"wires":[["f06a5391.a173"]]},{"id":"e62e021b.2e912","type":"link out","z":"2c8971dd.fc375e","name":"","links":["de8ca34e.36ef7"],"x":615,"y":560,"wires":[]},{"id":"f06a5391.a173","type":"ui_switch","z":"2c8971dd.fc375e","name":"Forward bays Manual Control","label":"Forward bays","tooltip":"Zone pump and fan control for Forward bays","group":"f774edbd.a2dde","order":7,"width":0,"height":0,"passthru":false,"decouple":"true","topic":"hydronic/Zone5/relay","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":560,"y":500,"wires":[["e62e021b.2e912","55c44c41.b9cb34"]]},{"id":"6f2204f3.5d9abc","type":"link in","z":"2c8971dd.fc375e","name":"","links":["48045faf.508a8"],"x":1015,"y":80,"wires":[["9761ad60.f869c"]]},{"id":"48045faf.508a8","type":"link out","z":"2c8971dd.fc375e","name":"","links":["6f2204f3.5d9abc"],"x":1195,"y":80,"wires":[]},{"id":"9761ad60.f869c","type":"ui_switch","z":"2c8971dd.fc375e","name":"Rear Bays Manual Control","label":"Rear Bays","tooltip":"Zone pump and fan control for Rear Bays","group":"f774edbd.a2dde","order":8,"width":0,"height":0,"passthru":false,"decouple":"true","topic":"hydronic/Zone6/relay","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":1130,"y":20,"wires":[["48045faf.508a8","55c44c41.b9cb34"]]},{"id":"e2221c7a.ace02","type":"mqtt in","z":"2c8971dd.fc375e","name":"MQTT Hydronic Heating hydronic/#","topic":"hydronic/#","qos":"2","datatype":"auto","broker":"7e5d3078.0d6f1","x":160,"y":160,"wires":[["9008b70f.f97fd8"]]},{"id":"55c44c41.b9cb34","type":"mqtt out","z":"2c8971dd.fc375e","name":"MQTT Hydronic Heating","topic":"","qos":"2","retain":"true","broker":"7e5d3078.0d6f1","x":1670,"y":300,"wires":[]},{"id":"4718b4cd.a4550c","type":"ui_switch","z":"2c8971dd.fc375e","name":"Diesel Boiler Valve Manual Control","label":"Diesel Boiler Diversion Valve","tooltip":"Diesel Boiler Diversion Valve for glycol heating","group":"f774edbd.a2dde","order":6,"width":0,"height":0,"passthru":false,"decouple":"true","topic":"hydronic/BurnerValve/relay","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":1150,"y":700,"wires":[["3a62197e.3db946","55c44c41.b9cb34"]]},{"id":"c3c6e258.4764d","type":"link in","z":"2c8971dd.fc375e","name":"","links":["3a62197e.3db946"],"x":1035,"y":740,"wires":[["4718b4cd.a4550c"]]},{"id":"3a62197e.3db946","type":"link out","z":"2c8971dd.fc375e","name":"","links":["c3c6e258.4764d"],"x":1135,"y":740,"wires":[]},{"id":"f774edbd.a2dde","type":"ui_group","z":"","name":"Manual Control","tab":"74343ae5.9cb4b4","order":1,"disp":true,"width":"6","collapse":false},{"id":"7e5d3078.0d6f1","type":"mqtt-broker","z":"","name":"Mosquitto","broker":"127.0.0.1","port":"1883","clientid":"NodeRed On Pi","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"74343ae5.9cb4b4","type":"ui_tab","z":"","name":"Hydronic Heating","icon":"dashboard","order":2,"disabled":false,"hidden":false}]
Hydronic Heating Relays
[{"id":"b67332d2.6d629","type":"tab","label":"Hydronic Heating Relays","disabled":false,"info":"# Hydronic Heating Relay Control Flow\n\nThis flow manages the interactions between the MQTT broker and implements the required functionality.\n\nDesign objectives:\n\n - MQTT Centric in that all state information and events are persisted or orginated from MQTT\n - Allow manual over-ride of the activation of zones.\n - React to MQTT requests from other sources like HomeAssistant, Alexia or other flows.\n\n"},{"id":"40bae63c.d364c8","type":"mqtt in","z":"b67332d2.6d629","name":"MQTT Hydronic Heating","topic":"hydronic/#","qos":"2","datatype":"auto","broker":"7e5d3078.0d6f1","x":130,"y":80,"wires":[["cfe9b032.6e859","bccd213b.9d51e"]]},{"id":"9e2a424a.27a35","type":"comment","z":"b67332d2.6d629","name":"Hydronic Relay Control","info":"# Hydronic Heating Control Relays\n\nThe house raspberry pi located in the plumbing/electrical bay has numerous relays to control the functionality of Hydronic heating system.\n\nThere are six heating zones for:\n\n - Zone 1: Bedroom heater pump and fan\n - Zone 2: Bathroom heater pump and fan\n - Zone 3: Kitchen heater pump and fan\n - Zone 4: Living room heater pump.\n - Zone 5: Forward two bays freeze protection pump and fans\n - Zone 6: Rear two bays freeze protection pump and fans\n\nThere are three additional pumps for:\n\n - Stir/Circulation pump to even out temperature between the two heat storage tanks and provide hot coolant flow for the heat exchanger that provides hot water.\n - Pump for Engine preheating and thermosiphon heat recovery\n - Pump for Generator preheating and thermosiphon heat recovery\n - \n\nThere is an additional relay functionality to:\n\n - Turn on the diesel boiler\n - Control electric ball valve to force flow through the diesel boiler when it is on, bypass when off\n\nNote this last functionality is implemented with one control signal from the Raspberry Pi, driving three SPDT relays.\n\nFor the basic heart of the hydronic system there are three temperature sensors for:\n\n - hydronic tank output\n - engine heater circuit coolant\n - generator heater circuit coolant\n\nThe last two sensors are used the preheating and the thermosiphon heat recovery functionality.\n\n","x":120,"y":40,"wires":[]},{"id":"bbbbecca.9a93b","type":"switch","z":"b67332d2.6d629","name":"Switch Control Relays","property":"topic","propertyType":"msg","rules":[{"t":"cont","v":"Zone1/relay","vt":"str"},{"t":"cont","v":"Zone2/relay","vt":"str"},{"t":"cont","v":"Zone3/relay","vt":"str"},{"t":"cont","v":"Zone4/relay","vt":"str"},{"t":"cont","v":"Zone5/relay","vt":"str"},{"t":"cont","v":"Zone6/relay","vt":"str"},{"t":"cont","v":"Stir/relay","vt":"str"},{"t":"cont","v":"Burner/relay","vt":"str"},{"t":"cont","v":"Engine/relay","vt":"str"},{"t":"cont","v":"Generator/relay","vt":"str"},{"t":"cont","v":"BurnerValve/relay","vt":"str"}],"checkall":"true","repair":false,"outputs":11,"x":900,"y":180,"wires":[["e0a6998a.8da538"],["708cb457.b34c8c"],["13d54f08.ea8051"],["cfea9b59.96b8a8"],["be1fcec4.82c99"],["b0f32382.5baa7"],["860ab312.46a76"],["d3a339ca.e1c0c8"],["387f62dc.75065e"],["ee898e0a.bcb86"],["9cbc8327.4d84f"]],"info":"Switch node to router MQQT messages to the appropiate relay pin\n"},{"id":"e0a6998a.8da538","type":"rpi-gpio out","z":"b67332d2.6d629","name":"Zone 1 GPIO17","pin":"11","set":true,"level":"1","freq":"","out":"out","x":1340,"y":20,"wires":[]},{"id":"708cb457.b34c8c","type":"rpi-gpio out","z":"b67332d2.6d629","name":"Zone 2 GPIO27","pin":"13","set":true,"level":"1","freq":"","out":"out","x":1340,"y":80,"wires":[]},{"id":"13d54f08.ea8051","type":"rpi-gpio out","z":"b67332d2.6d629","name":"Zone 3 GPIO22","pin":"15","set":true,"level":"1","freq":"","out":"out","x":1340,"y":140,"wires":[]},{"id":"cfea9b59.96b8a8","type":"rpi-gpio out","z":"b67332d2.6d629","name":"Zone 4 GPIO10","pin":"19","set":true,"level":"1","freq":"","out":"out","x":1340,"y":200,"wires":[]},{"id":"be1fcec4.82c99","type":"rpi-gpio out","z":"b67332d2.6d629","name":"Zone 5 GPIO09","pin":"21","set":true,"level":"1","freq":"","out":"out","x":1340,"y":260,"wires":[]},{"id":"b0f32382.5baa7","type":"rpi-gpio out","z":"b67332d2.6d629","name":"Zone 6 GPIO11","pin":"23","set":true,"level":"1","freq":"","out":"out","x":1340,"y":320,"wires":[]},{"id":"860ab312.46a76","type":"rpi-gpio out","z":"b67332d2.6d629","name":"Hydronic Stir Pump GPIO05","pin":"29","set":true,"level":"1","freq":"","out":"out","x":1380,"y":380,"wires":[]},{"id":"d3a339ca.e1c0c8","type":"rpi-gpio out","z":"b67332d2.6d629","name":"Hydronic Burner GPIO19","pin":"35","set":true,"level":"1","freq":"","out":"out","x":1370,"y":440,"wires":[]},{"id":"387f62dc.75065e","type":"rpi-gpio out","z":"b67332d2.6d629","name":"Engine Preheat GPIO31","pin":"31","set":true,"level":"1","freq":"","out":"out","x":1370,"y":500,"wires":[]},{"id":"ee898e0a.bcb86","type":"rpi-gpio out","z":"b67332d2.6d629","name":"Generator preheat GPIO13","pin":"33","set":true,"level":"1","freq":"","out":"out","x":1380,"y":560,"wires":[]},{"id":"cfe9b032.6e859","type":"debug","z":"b67332d2.6d629","name":"MQTT message in","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":410,"y":40,"wires":[]},{"id":"bccd213b.9d51e","type":"function","z":"b67332d2.6d629","name":"true/false on/off Conversion to 0/1 for Active Low Relays","func":"if (msg.topic.includes(\"/relay\"))\n{\n if (msg.payload === true)\n {\n msg.payload = \"0\";\n return msg;\n }\n if (msg.payload === false)\n {\n msg.payload = \"1\";\n return msg;\n }\n cmd = msg.payload.toLowerCase();\n if (cmd === \"true\")\n {\n msg.payload = \"0\";\n return msg;\n }\n if (cmd === \"on\")\n {\n msg.payload = \"0\";\n return msg;\n }\n if (cmd === \"false\")\n {\n msg.payload = \"1\";\n return msg;\n }\n if (cmd === \"off\")\n {\n msg.payload = \"1\";\n return msg;\n }\n}\nreturn null;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":550,"y":180,"wires":[["bbbbecca.9a93b"]]},{"id":"5364b3c9.b20b6c","type":"mqtt out","z":"b67332d2.6d629","name":"MQTT Hydronic Heating","topic":"","qos":"2","retain":"true","broker":"7e5d3078.0d6f1","x":690,"y":720,"wires":[]},{"id":"22896649.30ab9a","type":"inject","z":"b67332d2.6d629","name":"Zone 1 on","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/Zone1/relay","payload":"true","payloadType":"bool","x":100,"y":140,"wires":[["5364b3c9.b20b6c"]]},{"id":"2ba3ce7.ace8f32","type":"inject","z":"b67332d2.6d629","name":"Zone 1 off","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/Zone1/relay","payload":"false","payloadType":"bool","x":100,"y":180,"wires":[["5364b3c9.b20b6c"]]},{"id":"c5e3abcb.dbdf48","type":"inject","z":"b67332d2.6d629","name":"Zone 2 on","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/Zone2/relay","payload":"true","payloadType":"str","x":100,"y":220,"wires":[["5364b3c9.b20b6c"]]},{"id":"40c21d0f.f71154","type":"inject","z":"b67332d2.6d629","name":"Zone 2 off","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/Zone2/relay","payload":"false","payloadType":"bool","x":100,"y":260,"wires":[["5364b3c9.b20b6c"]]},{"id":"9d9cae31.dd183","type":"inject","z":"b67332d2.6d629","name":"Zone 3 on","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/Zone3/relay","payload":"true","payloadType":"bool","x":100,"y":300,"wires":[["5364b3c9.b20b6c"]]},{"id":"c8b7562c.0a5fd8","type":"inject","z":"b67332d2.6d629","name":"Zone 3 off","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/Zone3/relay","payload":"false","payloadType":"bool","x":100,"y":340,"wires":[["5364b3c9.b20b6c"]]},{"id":"30dd86cc.bbcb5a","type":"inject","z":"b67332d2.6d629","name":"Stir on","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/Stir/relay","payload":"true","payloadType":"bool","x":90,"y":620,"wires":[["5364b3c9.b20b6c"]]},{"id":"262675bd.738c4a","type":"inject","z":"b67332d2.6d629","name":"Stir off","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/Stir/relay","payload":"false","payloadType":"bool","x":90,"y":660,"wires":[["5364b3c9.b20b6c"]]},{"id":"a501bb68.4f8508","type":"inject","z":"b67332d2.6d629","name":"Burner on","props":[{"p":"payload","v":"true","vt":"bool"},{"p":"topic","v":"hydronic/Burner/relay","vt":"string"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/Burner/relay","payload":"true","payloadType":"bool","x":100,"y":700,"wires":[["5364b3c9.b20b6c"]]},{"id":"b8697a76.e580a8","type":"inject","z":"b67332d2.6d629","name":"Burner off","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/Burner/relay","payload":"false","payloadType":"bool","x":100,"y":740,"wires":[["5364b3c9.b20b6c"]]},{"id":"24d43474.5523bc","type":"inject","z":"b67332d2.6d629","name":"Engine Preheat on","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/Engine/relay","payload":"true","payloadType":"bool","x":130,"y":780,"wires":[["5364b3c9.b20b6c"]]},{"id":"cf081ca7.9b31c","type":"inject","z":"b67332d2.6d629","name":"Engine Preheat off","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/Engine/relay","payload":"false","payloadType":"bool","x":130,"y":820,"wires":[["5364b3c9.b20b6c"]]},{"id":"1c17fbf0.7b35c4","type":"inject","z":"b67332d2.6d629","name":"Generator Preheat on","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/Generator/relay","payload":"true","payloadType":"bool","x":140,"y":860,"wires":[["5364b3c9.b20b6c"]]},{"id":"3adfba2.613cc46","type":"inject","z":"b67332d2.6d629","name":"Generator Preheat off","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/Generator/relay","payload":"false","payloadType":"bool","x":140,"y":900,"wires":[["5364b3c9.b20b6c"]]},{"id":"cc5847a7.f83818","type":"inject","z":"b67332d2.6d629","name":"Zone 4 on","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/Zone4/relay","payload":"true","payloadType":"bool","x":100,"y":380,"wires":[["5364b3c9.b20b6c"]]},{"id":"13959db9.acf742","type":"inject","z":"b67332d2.6d629","name":"Zone 4 off","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/Zone4/relay","payload":"false","payloadType":"bool","x":100,"y":420,"wires":[["5364b3c9.b20b6c"]]},{"id":"7c0cb748.05f8b8","type":"inject","z":"b67332d2.6d629","name":"Zone 5 on","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/Zone5/relay","payload":"true","payloadType":"str","x":100,"y":460,"wires":[["5364b3c9.b20b6c"]]},{"id":"72f1843b.5e409c","type":"inject","z":"b67332d2.6d629","name":"Zone 5 off","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/Zone5/relay","payload":"false","payloadType":"bool","x":100,"y":500,"wires":[["5364b3c9.b20b6c"]]},{"id":"7a1258ea.64c788","type":"inject","z":"b67332d2.6d629","name":"Zone 6 on","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/Zone6/relay","payload":"true","payloadType":"bool","x":100,"y":540,"wires":[["5364b3c9.b20b6c"]]},{"id":"a4f30958.7cb0b8","type":"inject","z":"b67332d2.6d629","name":"Zone 6 off","repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/Zone6/relay","payload":"false","payloadType":"bool","x":100,"y":580,"wires":[["5364b3c9.b20b6c"]]},{"id":"c6b5b014.3fb75","type":"inject","z":"b67332d2.6d629","name":"Burner Valve on","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/BurnerValve/relay","payload":"true","payloadType":"bool","x":120,"y":940,"wires":[["5364b3c9.b20b6c"]]},{"id":"be824d72.037bd","type":"inject","z":"b67332d2.6d629","name":"Burner Valve off","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"hydronic/BurnerValve/relay","payload":"false","payloadType":"bool","x":120,"y":980,"wires":[["5364b3c9.b20b6c"]]},{"id":"9cbc8327.4d84f","type":"rpi-gpio out","z":"b67332d2.6d629","name":"Hydronic BurnerValve GPIO 7","pin":"26","set":true,"level":"1","freq":"","out":"out","x":1390,"y":620,"wires":[]},{"id":"7e5d3078.0d6f1","type":"mqtt-broker","z":"","name":"Mosquitto","broker":"127.0.0.1","port":"1883","clientid":"NodeRed On Pi","usetls":false,"compatmode":false,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""}]
The MQTT server is on the same host and access at 127.0.0.1 with login credentials.
The node red environment has the dashboard and RPI nodes installed.
I also tested with a separate node red installation that wasn't on a raspberry. Other then having to delete the rpi nodes in the second flow after import. I saw the same problem.