With help from @Mikefila I was able to automate the radiator thermostats in individual rooms to adapt to presence, time and so on. (Node-Red: Help with radiator automation - #9 by Mikefila)
Now, I’d like to also trigger the relay of the gas boiler if one room is below it’s set temperature.
At the moment, this only works with the generic thermostat which triggers based on the living rooms temperature. Therefore, at the moment, it might happen that other rooms are cold and wont be heated since the gas boiler is not running.
Did anyone implement something like this yet?
For now, I only set up something which calculates the difference between set and current temperature and then provides an “on” or “off” which should then be used to trigger the relay of the gas boiler:
[{"id":"f3a2cc92cc861295","type":"tab","label":"Thermostat","disabled":false,"info":""},{"id":"7e2862f898a49014","type":"poll-state","z":"f3a2cc92cc861295","name":"Get Current Temperature Living Room","server":"aadbde09.d5ab3","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"updateinterval":"10","updateIntervalUnits":"seconds","outputinitially":false,"outputonchanged":false,"entity_id":"sensor.ble_temperature_a4c13843b90c","state_type":"num","halt_if":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"x":1280,"y":1080,"wires":[["b3bea274edc91fe0"]]},{"id":"b2aa81bdefdd0cf7","type":"poll-state","z":"f3a2cc92cc861295","name":"","server":"aadbde09.d5ab3","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"updateinterval":"10","updateIntervalUnits":"seconds","outputinitially":false,"outputonchanged":false,"entity_id":"climate.temperatur_wohnzimmer","state_type":"num","halt_if":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"x":1280,"y":1180,"wires":[["072d1257d551c1ac"]]},{"id":"072d1257d551c1ac","type":"change","z":"f3a2cc92cc861295","name":"","rules":[{"t":"move","p":"data.attributes.temperature","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1660,"y":1180,"wires":[["b3bea274edc91fe0"]]},{"id":"b3bea274edc91fe0","type":"join","z":"f3a2cc92cc861295","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":1630,"y":1040,"wires":[["b18eb933cd32c155"]]},{"id":"b18eb933cd32c155","type":"function","z":"f3a2cc92cc861295","name":"Diff Living Room","func":"msg.topic = \"diff\"\nmsg.payload = msg.payload[\"sensor.ble_temperature_a4c13843b90c\"] - msg.payload[\"climate.temperatur_wohnzimmer\"]\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1920,"y":1080,"wires":[["02c5d80834f5aab8"]]},{"id":"f73863987e9cf712","type":"poll-state","z":"f3a2cc92cc861295","name":"Get Current Temperature Sleeping Room","server":"aadbde09.d5ab3","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"updateinterval":"10","updateIntervalUnits":"seconds","outputinitially":false,"outputonchanged":false,"entity_id":"sensor.schlafzimmer_temperatur","state_type":"num","halt_if":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"x":1280,"y":1420,"wires":[["372d79823d278971"]]},{"id":"a68f977224249ff0","type":"poll-state","z":"f3a2cc92cc861295","name":"","server":"aadbde09.d5ab3","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"updateinterval":"10","updateIntervalUnits":"seconds","outputinitially":false,"outputonchanged":false,"entity_id":"climate.heizkorper_schlafzimmer_heating_1","state_type":"num","halt_if":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"x":1310,"y":1520,"wires":[["09f0fa1ef910e33b"]]},{"id":"09f0fa1ef910e33b","type":"change","z":"f3a2cc92cc861295","name":"","rules":[{"t":"move","p":"data.attributes.temperature","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1720,"y":1520,"wires":[["372d79823d278971"]]},{"id":"372d79823d278971","type":"join","z":"f3a2cc92cc861295","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":1620,"y":1380,"wires":[["542142ec549ad37c"]]},{"id":"542142ec549ad37c","type":"function","z":"f3a2cc92cc861295","name":"Diff Sleeping Room","func":"msg.topic = \"diff\"\nmsg.payload = msg.payload[\"sensor.schlafzimmer_temperatur\"] - msg.payload[\"climate.heizkorper_schlafzimmer_heating_1\"]\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1870,"y":1420,"wires":[["02c5d80834f5aab8"]]},{"id":"2b68eda9462e7eeb","type":"rbe","z":"f3a2cc92cc861295","name":"","func":"rbe","gap":"","start":"","inout":"out","septopics":true,"property":"payload","topi":"topic","x":2390,"y":1280,"wires":[[]]},{"id":"5299401afd040e9f","type":"change","z":"f3a2cc92cc861295","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"on","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":2190,"y":1260,"wires":[["2b68eda9462e7eeb","a1cffe3b70db6594"]]},{"id":"02c5d80834f5aab8","type":"switch","z":"f3a2cc92cc861295","name":"","property":"payload","propertyType":"msg","rules":[{"t":"gt","v":"0","vt":"num"},{"t":"lte","v":"0","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":2000,"y":1280,"wires":[["5299401afd040e9f"],["931e6c4a7ad9d2eb"]]},{"id":"931e6c4a7ad9d2eb","type":"change","z":"f3a2cc92cc861295","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"off","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":2190,"y":1300,"wires":[["2b68eda9462e7eeb","223dcbda80e4bb92"]]},{"id":"a1cffe3b70db6594","type":"debug","z":"f3a2cc92cc861295","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":2440,"y":1200,"wires":[]},{"id":"223dcbda80e4bb92","type":"debug","z":"f3a2cc92cc861295","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":2460,"y":1380,"wires":[]},{"id":"aadbde09.d5ab3","type":"server","name":"Home Assistant","version":1,"legacy":false,"addon":false,"rejectUnauthorizedCerts":false,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]
Would you either
., override the generic thermostats target sensor and the target temperature to keep all other settings like min runtime and so on or
., just trigger the relay from node-red including some additional safety settings?
The problem I face at the moment is on how to have the relay turned on / the boiler running as long as the individual rooms send an “on” command and especially what happens if two or more separate rooms send different target temps / how to prioritize them.
Thanks