The Button node creates a button in Home Assistant that can be added to a dashboard. It restricts button presses to once every 2 hours. When pressed, it saves the current temperature, decreases it by 2 degrees, and after 90 minutes, restores the temperature to its original value.
[{"id":"dda8df1fec89dc7b","type":"ha-button","z":"9a79489c7caa0be9","name":"","version":0,"debugenabled":false,"outputs":1,"entityConfig":"","outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"topic","propertyType":"msg","value":"","valueType":"triggerId"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"x":158,"y":224,"wires":[["ebe740cb1f52f9e5"]]},{"id":"12a8ae236033c050","type":"api-call-service","z":"9a79489c7caa0be9","name":"set temp to current temp - 2","server":"","version":7,"debugenabled":false,"action":"climate.set_temperature","floorId":[],"areaId":[],"deviceId":[],"entityId":["climate.hvac"],"labelId":[],"data":"{\"temperature\": temp - 2 }","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","blockInputOverrides":true,"domain":"climate","service":"set_temperature","x":744,"y":224,"wires":[["08a32bfdf28c4450"]]},{"id":"08a32bfdf28c4450","type":"delay","z":"9a79489c7caa0be9","name":"","pauseType":"delay","timeout":"90","timeoutUnits":"minutes","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":954,"y":224,"wires":[["229868d42c5a7643"]]},{"id":"ebe740cb1f52f9e5","type":"delay","z":"9a79489c7caa0be9","name":"2 hour cooldown","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"2","rateUnits":"hour","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":true,"allowrate":false,"outputs":1,"x":314,"y":224,"wires":[["ed0e608eb1174a65"]]},{"id":"ed0e608eb1174a65","type":"api-current-state","z":"9a79489c7caa0be9","name":"save current temp","server":"","version":3,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","entity_id":"climate.hvac","state_type":"str","blockInputOverrides":true,"outputProperties":[{"property":"temp","propertyType":"msg","value":"$number($entity().attributes.temperature)","valueType":"jsonata"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":518,"y":224,"wires":[["12a8ae236033c050"]]},{"id":"229868d42c5a7643","type":"api-call-service","z":"9a79489c7caa0be9","name":"reset temp","server":"","version":7,"debugenabled":false,"action":"climate.set_temperature","floorId":[],"areaId":[],"deviceId":[],"entityId":["climate.hvac"],"labelId":[],"data":"{\"temperature\": temp }","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","blockInputOverrides":true,"domain":"climate","service":"set_temperature","x":1114,"y":224,"wires":[[]]}]