Just transitioning our home hesting system from a Gas Boiler to an Electric Heat Pump and using this as an opportunity to redo all my code into Node Red and Tasmota and away from Arduinos that i used to use for Temperature Gathering and Relay control.
Our house is heated by a hydronic system - where we heat a 5000 Litre tank of water and that is then used to pump through our concrete slab and walls (we do not use any radiators) - so the inertia is quite large.
I do have Zone control where i can turn on an off certain sections of the house in the event that i overshoot the temperatures in a specific area of the house - but i also need to implement a general off function for the main circulating pump in the event that multiple areas of the house overheat.
This is where i am coming unstuck at the moment.
Essentially i want to listen to an incoming MQTT topic and if the value is over a certain threshold - then turn the pump off for 30 minutes - at the end of 30 minutes then turn the pump back on.
I have tried using a series of Global Variables to reflect the states of the Pump and the fact that the house is in overheat - but am going around in circles where i come of out from the Pump Off loop after 30 minutes, then turn the pump back on, but immediately on the next cycle turn the pump back off again because i am still in overheat.
It is not a variable speed pump so i can not ramp it up and down - it is either on or off.
Anyone got a custom node or Sub routine that they use for this sort of thing that i could study ?