Some hardware links on this page are affiliate links. As an Amazon Associate I earn from qualifying purchases. We may earn a commission if you buy through them, at no extra cost to you. See the affiliate disclosure.
A mini-split remote and a wall switch disagree unless something keeps them in step. This blueprint uses one switch per room. On means heat at a comfort setpoint. Off, or nobody in the room for a set number of minutes, puts the climate entity back where it was, or turns it off. If someone changes the mode from the heat pump’s own remote, the switch follows that change and does not overwrite the setpoint a second time.
One automation, one switch, one busy helper, and one snapshot id per room. Copy the helper package and change the names before you add a second room.
A setpoint that moves with the forecast, rather than a switch, is adaptive comfort setpoint. Pausing heat because a window is open is window-open climate pause. A thermostat that already blends a TRV and a room sensor is versatile thermostat. This one is the switch.
What problem it solves
You want a single control that means “heat this room,” that gives the room back when you are done or when it is empty, and that does not fight the remote.
How it works
The switch is an input_boolean or any switch. The climate entity is the heat pump or mini-split. Occupancy is a binary_sensor that stays on while the room is in use. The busy helper is how the automation ignores the state changes it just caused.
- Switch on —
scene.createsnapshots the climate entity under the scene id you set (pack defaultroom_heat_snapshot, which isscene.room_heat_snapshot). Then the HVAC mode is set toheatand the temperature to the comfort setpoint (pack default 21 °C). - Switch off — if When heat should stop is
restore,scene.turn_onputs the mode and setpoint back. If it isoff, the climate entity is turned off. A restore before the first snapshot is skipped instead of failing the automation. - Empty room — the occupancy sensor
offfor N minutes (pack default 20) runs the same stop path, and then turns the switch off so the switch matches the room. - Remote or app — a climate state change while the busy helper is off only moves the switch. Heat turns the switch on. Any other mode turns it off. It does not write the comfort setpoint again, so a temperature you set on the remote stays.
- Busy — the helper is on for about two seconds around each of those writes. The automation is
mode: single, so a state change caused by the run itself is dropped instead of looping.
The scene id must be a slug: letters, numbers, underscores. A second room needs a second id or the two snapshots overwrite each other.
Snippet
The package creates the two helpers the defaults point at. The blueprint inputs are the rest.
input_boolean:
room_heat:
name: Room heat
room_heat_busy:
name: Room heat busy
Setup outline
- Copy
helpers/room_heat_switch_sync.yamlintoconfig/packages/and include that folder from the existinghomeassistant:block. Do not add a secondhomeassistant:key. Restart, and confirminput_boolean.room_heatandinput_boolean.room_heat_busy. - Import the blueprint from
blueprints/automation/. Reload blueprints. - Create an automation. Pick the climate entity. Pick an occupancy sensor that is
onwhen the room is occupied. If you have no sensor yet, create an input boolean, turn it on, and select that so the empty-room path never fires until you want it. - Leave the snapshot id, the busy helper, and the switch on the pack defaults for the first room. Set the comfort temperature in the unit your climate entity uses.
- Turn the switch on. The climate entity should go to heat at that setpoint. Turn it off. The previous mode should return if you left the behavior on
restore. - Change the mode from the heat pump app. The switch should follow, and the setpoint should stay where the app put it.
Troubleshooting
- The switch and the heat pump chase each other. The busy helper is missing, or a second automation also writes this climate entity. This blueprint only drops its own follow-up while
room_heat_busyis on. - Off does nothing the first time. Restore needs a snapshot from an earlier On. Until then the scene does not exist and the turn-on is ignored. Turn the switch on once, then off.
- A second room restores the first room’s scene. Both automations use
room_heat_snapshot. Duplicate the helpers and set a new snapshot id. - Empty never fires. The occupancy sensor is still
on, or it never had a clearofffor the full delay. A sensor that flaps will keep restarting that timer. - Heat turns on but the setpoint does not change. The climate entity rejects
climate.set_temperaturein the mode it is in, or it expectstarget_temp_high/target_temp_lowinstead oftemperature. Check the automation trace for that action. - The remote turns the switch off and heat comes back. Something else is turning the switch on. This blueprint does not turn the switch on except when the climate state is already
heat.
Credits
The idea of a per-room heat switch that stays aligned with the heat pump is discussed around maiertech/homeassistant. This blueprint is original: one snapshot, one busy helper, and an occupancy timeout. It does not replace the heat pump’s integration.