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.

#home-assistant #blueprint #varme #ikea #mill #automation
17. maj 2026
Vindue Åbner, Varmen Stopper — Et Blueprint til Hvert Rum

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.

IKEA MYGGBETT sensor monteret på Louises vindue

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.