Sure, I’ve tried to strip out the main parts as I have a lot more being fed into my heating than just this. But the below flow should get the basic setup in place.
Essentially, use an inject node every minute to get the current heating preset and pass that through a switch node.
- If no preset - Pass through to the schedule and turn heating on/off respectively
- If boost mode set - Turn on heating for predefined time and then turn off and reset the preset
- If away mode on - Monitor for when temperature drops below threshold, turn on heating for desired time. I then loop through this flow until the house is occupied again (which turns off away mode)
[{"id":"f5ff055b.61df98","type":"inject","z":"354731be.59f46e","name":"Every minute","topic":"","payload":"","payloadType":"date","repeat":"60","crontab":"","once":true,"onceDelay":"10","x":120,"y":960,"wires":[["f394965.3c31768"]]},{"id":"f394965.3c31768","type":"api-current-state","z":"354731be.59f46e","name":"Get heating preset","server":"294865fc.a5524a","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"climate.heating","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":310,"y":960,"wires":[["21fc15b7.524dba"]]},{"id":"21fc15b7.524dba","type":"switch","z":"354731be.59f46e","name":"Heating mode","property":"data.attributes.preset_mode","propertyType":"msg","rules":[{"t":"null"},{"t":"eq","v":"boost","vt":"str"},{"t":"eq","v":"away","vt":"str"}],"checkall":"true","repair":false,"outputs":3,"x":500,"y":960,"wires":[["73a736bb.5152c8"],["56dc2edb.98cf8"],["1d14c6b1.76f709"]]},{"id":"73a736bb.5152c8","type":"light-scheduler-filter","z":"354731be.59f46e","settings":"","events":"[{\"start\":{\"dow\":1,\"mod\":375},\"end\":{\"dow\":1,\"mod\":495}},{\"start\":{\"dow\":2,\"mod\":375},\"end\":{\"dow\":2,\"mod\":495}},{\"start\":{\"dow\":3,\"mod\":375},\"end\":{\"dow\":3,\"mod\":495}},{\"start\":{\"dow\":4,\"mod\":375},\"end\":{\"dow\":4,\"mod\":495}},{\"start\":{\"dow\":5,\"mod\":375},\"end\":{\"dow\":5,\"mod\":495}},{\"start\":{\"dow\":6,\"mod\":375},\"end\":{\"dow\":6,\"mod\":495}},{\"start\":{\"dow\":0,\"mod\":375},\"end\":{\"dow\":0,\"mod\":495}},{\"start\":{\"dow\":1,\"mod\":990},\"end\":{\"dow\":1,\"mod\":1230}},{\"start\":{\"dow\":2,\"mod\":990},\"end\":{\"dow\":2,\"mod\":1230}},{\"start\":{\"dow\":3,\"mod\":990},\"end\":{\"dow\":3,\"mod\":1230}},{\"start\":{\"dow\":4,\"mod\":990},\"end\":{\"dow\":4,\"mod\":1230}},{\"start\":{\"dow\":5,\"mod\":990},\"end\":{\"dow\":5,\"mod\":1230}},{\"start\":{\"dow\":6,\"mod\":990},\"end\":{\"dow\":6,\"mod\":1230}},{\"start\":{\"dow\":0,\"mod\":990},\"end\":{\"dow\":0,\"mod\":1230}}]","name":"Schedule","onlyWhenDark":true,"scheduleRndMax":0,"sunElevationThreshold":6,"sunShowElevationInStatus":false,"x":700,"y":880,"wires":[["695afa76.9a8594"],["c37439b3.507bf8"]]},{"id":"695afa76.9a8594","type":"api-current-state","z":"354731be.59f46e","name":"Heating is off","server":"294865fc.a5524a","version":1,"outputs":2,"halt_if":"off","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"climate.heating","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":850,"y":860,"wires":[["36407f2.bbe158"],[]]},{"id":"c37439b3.507bf8","type":"api-current-state","z":"354731be.59f46e","name":"Heating is on","server":"294865fc.a5524a","version":1,"outputs":2,"halt_if":"heat","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"climate.heating","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":850,"y":900,"wires":[["38cfe126.8a1f9e"],[]]},{"id":"38cfe126.8a1f9e","type":"api-call-service","z":"354731be.59f46e","name":"Turn off heating","server":"294865fc.a5524a","version":1,"service_domain":"climate","service":"set_hvac_mode","entityId":"climate.heating","data":"{\"hvac_mode\":\"off\"}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1020,"y":900,"wires":[[]]},{"id":"36407f2.bbe158","type":"api-call-service","z":"354731be.59f46e","name":"Turn on heating","server":"294865fc.a5524a","version":1,"debugenabled":false,"service_domain":"climate","service":"set_hvac_mode","entityId":"climate.heating","data":"{\"hvac_mode\":\"heat\"}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1020,"y":860,"wires":[[]]},{"id":"56dc2edb.98cf8","type":"api-call-service","z":"354731be.59f46e","name":"Set heating mode","server":"294865fc.a5524a","version":1,"debugenabled":false,"service_domain":"climate","service":"set_hvac_mode","entityId":"climate.heating","data":"{\"hvac_mode\":\"heat\"}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":730,"y":960,"wires":[["a23b89ef.64d888"]]},{"id":"a23b89ef.64d888","type":"stoptimer","z":"354731be.59f46e","duration":"43","units":"Minute","payloadtype":"num","payloadval":"0","name":"","x":920,"y":960,"wires":[["e7656827.1e0528"],[]]},{"id":"e7656827.1e0528","type":"api-call-service","z":"354731be.59f46e","name":"Reset preset","server":"294865fc.a5524a","version":1,"service_domain":"climate","service":"set_preset_mode","entityId":"climate.heating","data":"{\"preset_mode\":\"none\"}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1090,"y":960,"wires":[["38cfe126.8a1f9e"]]},{"id":"1d14c6b1.76f709","type":"ha-wait-until","z":"354731be.59f46e","name":"Low temperature","server":"294865fc.a5524a","outputs":1,"entityId":"sensor.xiaomi_temperature","property":"state","comparator":"lte","value":"16","valueType":"num","timeout":0,"timeoutUnits":"seconds","entityLocation":"","entityLocationType":"none","checkCurrentState":true,"blockInputOverrides":true,"x":710,"y":1020,"wires":[["110751d7.dbfd9e"]]},{"id":"110751d7.dbfd9e","type":"api-call-service","z":"354731be.59f46e","name":"Set heating mode","server":"294865fc.a5524a","version":1,"debugenabled":false,"service_domain":"climate","service":"set_hvac_mode","entityId":"climate.heating","data":"{\"hvac_mode\":\"heat\"}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":910,"y":1020,"wires":[["12f7a63e.b576fa"]]},{"id":"12f7a63e.b576fa","type":"stoptimer","z":"354731be.59f46e","duration":"43","units":"Minute","payloadtype":"num","payloadval":"0","name":"","x":1100,"y":1020,"wires":[["3d8f201.4c2f2e"],[]]},{"id":"3d8f201.4c2f2e","type":"api-call-service","z":"354731be.59f46e","name":"Turn off heating","server":"294865fc.a5524a","version":1,"service_domain":"climate","service":"set_hvac_mode","entityId":"climate.heating","data":"{\"hvac_mode\":\"off\"}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1280,"y":1020,"wires":[["1d14c6b1.76f709"]]},{"id":"294865fc.a5524a","type":"server","z":"","name":"Home Assistant","legacy":false,"hassio":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true}]