Vindue Åbner, Varmen Stopper — Et Blueprint til Hvert Rum
Hvordan jeg automatiserede radiatoren i Louises værelse til at slukke når vinduet åbnes og tænde igen når det lukkes — bygget som et Blueprint så næste rum tager 30 sekunder at tilføje.
Radiatoren i Louises værelse kørte for fuld varme med vinduet åbent. Hun er snart tyve — at huske at lukke vinduet er ikke noget der sker konsekvent. Jeg lagde mærke til at vinduet havde stået åbent i en time, varmen på, udetemperatur på cirka 4°C. Det er penge ud af vinduet — bogstaveligt talt — og det ville blive ved med at ske.
Løsningen var en vinduessensor og én Home Assistant-automation. Den ekstra time jeg brugte var på at bygge den som et Blueprint, så næste gang det samme mønster dukker op i et andet rum, tager det 30 sekunder, ikke en hel eftermiddag.
Hardware: IKEA vinduessensor + Mill-radiator
En IKEA MYGGBETT dør/vinduessensor på Louises vindue (binary_sensor.myggbett_door_window_sensor_door). Radiatoren er en første-generations Mill-enhed — climate.louise — som kun understøtter to modes: heat og off. Jeg har den samme første-gen model på mit kontor.
Soveværelset og køkkenet kører nyere Mill-radiatorer med flere HVAC-modes. Blueprint’et håndterer dem alle — det gemmer den præcise tilstand før slukning og gendanner den præcist når vinduet lukkes, uanset hvilken mode eller temperatur radiatoren stod på.
Stuen har en Daikin varmepumpe styret af Tado — en anden integration med sine egne modes. Den får sin egen tilgang.
Mill har en indbygget åbent-vindue-detektion, men den virker ved at registrere temperaturfald — langsom til at reagere og overser korte åbninger fuldstændigt. MYGGBETT-sensoren er øjeblikkelig og præcis.

Byg Home Assistant Blueprint’et
I stedet for at hardkode Louises entities byggede jeg logikken som et Blueprint på /config/blueprints/automation/homeassistant/window_heating_control.yaml. Inputfelterne tager en vinduessensor, en climate-entity og en konfigurerbar forsinkelse:
blueprint:
name: "Vindue → Varme slukker"
domain: automation
input:
window_sensor:
selector:
entity:
domain: binary_sensor
device_class: window
climate_entity:
selector:
entity:
domain: climate
delay_minutes:
default: 1
selector:
number:
min: 0
max: 10
unit_of_measurement: min
Automation-instansen for Louises værelse er tre linjer:
- alias: "Vindue → Varme: Louises værelse"
use_blueprint:
path: homeassistant/window_heating_control.yaml
input:
window_sensor: binary_sensor.myggbett_door_window_sensor_door
climate_entity: climate.louise
delay_minutes: 1
Gem og gendan tilstand
Blueprint’et slukker ikke bare radiatoren — det gemmer den præcise tilstand først via en dynamisk scene:
- action: scene.create
data:
scene_id: "{{ this.entity_id | replace('automation.', '') }}"
snapshot_entities:
- !input climate_entity
- action: climate.set_hvac_mode
target:
entity_id: !input climate_entity
data:
hvac_mode: "off"
Scene-ID’et udledes af automationens eget entity ID — unikt per instans, ingen manuel navngivning nødvendig. Når vinduet lukkes, gendanner Blueprint’et præcis den gemte scene:
- action: scene.turn_on
target:
entity_id: "scene.{{ this.entity_id | replace('automation.', '') }}"
continue_on_error: true
Det betyder at den gendanner hvad radiatoren lavede — 18°C, 22°C, allerede slukket — ikke bare en hardkodet heat-mode. continue_on_error: true håndterer det tilfælde hvor vinduet lukkes inden automationen nogensinde er kørt (ingen snapshot eksisterer endnu).
1-minuts forsinkelsen
for: minutes: !input delay_minutes på åbnet-triggeren er det der gør det praktisk. Når vinduet åbnes starter HA en intern nedtælling. Hvis vinduet lukkes inden minuttet er gået, annulleres triggeren — automationen kører slet ikke. En hurtig udluftning slukker ikke varmen.
mode: restart håndterer kanttilfældet hvor en lukning-trigger ankommer mens en åbnet-trigger stadig tæller ned. Lukning-triggeren vinder øjeblikkeligt og tænder varmen igen — ingen kø, ingen race condition.
Notifikationer
Når varmen slukker sker to ting: en push-notifikation sendes til alle enheder via notify.alle_enheder, og en stemmebesked afspilles på køkkenhøjtaleren:
- action: notify.alle_enheder
data:
title: "Vindue åbent 🪟"
message: "Louises vindue har stået åbent i 1 minut — varmen er slukket"
- action: tts.cloud_say
target:
entity_id: media_player.hojtaler_kokken
data:
message: "Louises vindue er åbent. Varmen er slukket."
language: da-DK
Dashboard-kortet
AlertTicker-kortet (custom:alert-ticker-card) finder vinduessensorer automatisk via device_class: window — ingen manuel entity-liste, så det dækker sensorer der tilføjes senere:
type: custom:alert-ticker-card
show_when_clear: true
clear_message: "Alle vinduer lukket — varme aktiv"
alerts:
- device_class: window
state: "on"
message: "{name} er åbent — varme kan være deaktiveret"
theme: window
priority: 2
Når alle vinduer er lukket viser kortet et grønt “alt OK” slide. Når et er åbent skifter det til en animeret alert med sensorens friendly name i beskeden.
Genbruge Blueprint’et i andre rum
Indstillinger → Automationer → Opret → Fra Blueprint → vælg “Vindue → Varme slukker” → vælg sensor og radiator → gem. Ingen ny kode. Det er hele pointen med at bygge det som et Blueprint fra starten frem for en hardkodet automation.
Kontoret får sensor næste — samme første-gen Mill, samme Blueprint, identisk konfiguration. Soveværelsets og køkkenets Mill-radiatorer virker også, når de får vinduessensorer. Daikinaggregatet i stuen er en anden sag: Tado styrer den og skal have sin egen logik når den tid kommer.