Ok, I managed to solve that through setting up a periodic poll-state in node-red. I’ve set the minimum flow temperature to a low value (15) which only gets enabled through vacation mode (temp -21), so now my degree-minutes wont count down when the buffer is above 30 degrees. I dont block it when the compressor is already running (heating up beyond 30). Here is the code if someone has a similar issue. [{"id":"80663d69.e80e6","type":"tab","label":"Nibe","disabled":false,"info":""},{"id":"814c9bde.b28e28","type":"api-call-service","z":"80663d69.e80e6","name":"block compressor","server":"c5159c1e.fc6a5","version":1,"debugenabled":false,"service_domain":"nibe","service":"set_smarthome_mode","entityId":"","data":"{\"system\":\"85568\",\"mode\":\"VACATION\"}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":850,"y":320,"wires":[[]]},{"id":"44ba552e.08277c","type":"api-call-service","z":"80663d69.e80e6","name":"normal operation","server":"c5159c1e.fc6a5","version":1,"debugenabled":false,"service_domain":"nibe","service":"set_smarthome_mode","entityId":"","data":"{\"system\":\"85568\",\"mode\":\"DEFAULT_OPERATION\"}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":850,"y":400,"wires":[[]]},{"id":"ab16d86b.aba988","type":"poll-state","z":"80663d69.e80e6","name":"Compressor RPM","server":"c5159c1e.fc6a5","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"updateinterval":"30","updateIntervalUnits":"minutes","outputinitially":true,"outputonchanged":false,"entity_id":"sensor.nibe_85568_41002","state_type":"num","halt_if":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"x":130,"y":320,"wires":[["19e900e0.43396f"]]},{"id":"bac43897.e528c8","type":"poll-state","z":"80663d69.e80e6","name":"Buffer temperature","server":"c5159c1e.fc6a5","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"updateinterval":"30","updateIntervalUnits":"minutes","outputinitially":true,"outputonchanged":false,"entity_id":"sensor.nibe_85568_40152","state_type":"num","halt_if":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"x":130,"y":400,"wires":[["19e900e0.43396f"]]},{"id":"19e900e0.43396f","type":"join","z":"80663d69.e80e6","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":330,"y":360,"wires":[["b215bc60.7107a"]]},{"id":"b215bc60.7107a","type":"function","z":"80663d69.e80e6","name":"Test","func":"if (msg.payload['sensor.nibe_85568_41002'] === 0 && msg.payload['sensor.nibe_85568_40152'] > 30 ) {\n msg.payload = \"BLOCK\";\n} else {\n msg.payload = \"ON\";\n}\nreturn msg;","outputs":1,"noerr":0,"x":490,"y":360,"wires":[["863279dc.fbd578"]]},{"id":"863279dc.fbd578","type":"switch","z":"80663d69.e80e6","name":"","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"BLOCK","vt":"str"},{"t":"eq","v":"ON","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":650,"y":360,"wires":[["814c9bde.b28e28"],["44ba552e.08277c"]]},{"id":"c5159c1e.fc6a5","type":"server","z":"","name":"Home Assistant","addon":true}]