AutomatiseringJulekalender 2022

HA Jule-tip #15: Notifikation om åbne døre og vinduer

Dagens jule-tip handler om at få Home Assistant til at sende en besked, hvis en eller flere døre eller vinduer er efterladt åbne, når den sidste person har forladt hjemmet.

Det kræver naturligvis, at der er sat sensorer på døre og vinduer, som er integreret i HA. Jeg bruger selv Aqara sensorer i min løsning.

Derudover har jeg i eksemplet lavet en gruppe med de personer, som ikke må være hjemme. Det kunne f.eks. være de voksne i husstanden. Gruppen bruges som udløser i vores automatisering.

Som betingelse for automatiseringen skal vi kontrollere, om der er døre eller vinduer, der stadig er åbne. Dette kan gøres ved hjælp af en skabelon, der tæller antallet af åbne døre eller vinduer. Derefter testes det om totalen er større end nul. Der kan eksempelvis laves en optælling af alle enheder, der har en specifik device_class. Jeg har opening som device_class for alle mine dør og vindues sensorer og det kan bruges i skabelonen.

Som handling vælger vi at sende en notifikation med navnene på eventuelle åbne døre eller vinduer. Dette kan gøres ved hjælp af et servicekald til notify.notify-tjenesten. Som besked kan vi bruge en skabelon, som indeholder en liste over navnene på de åbne døre eller vinduer. Navnene på døre og vinduer kan hentes ved igen at bruge device_class. Der laves en samlet kommasepareret liste over alle åbne døre og vinduer. Dette indsættes som besked i vores notifikation.

Den samlede automatisering ser således ud:

alias: Send notifikation hvis der er åbne døre eller vinuder, når sidste person forlader hjemmet
description: "Send notifikation hvis der er åbne døre eller vinuder, når sidste person forlader hjemmet"
trigger:
  - platform: state
    entity_id: group.alle_personer
    to: not_home
condition:
  - condition: template
    value_template: >-
      {{ states.binary_sensor | selectattr('state', 'eq', 'on') |
      selectattr('attributes.device_class', 'eq', 'opening') |
      map(attribute='entity_id') | list | count > 0}}
action:
  - service: notify.notify
    data:
      data: {}
      message: >-
        Følgende døre eller vinduer er åbne: {{ states.binary_sensor |
        selectattr('state', 'eq', 'on') | selectattr('attributes.device_class',
        'eq', 'opening') | map(attribute='attributes.friendly_name') | list |
        join(', ') }}
      title: Døre eller vinduer er åbne!

Og resultatet er følgende notifikation:

Eksempel på notifikation om åben dør
Eksempel på notifikation om åben dør

Beklager, men jeg har snydt…

Jeg kan desværre ikke tage hele æren for ovenstående automatisering. Den er nemlig lavet til dels ved hjælp af kunstig intelligens.

Jeg har bedt den nye AI tjeneste ChatGPT om at lave et forslag til en automatisering med en kort tekstbeskrivelse som eneste input:

Forslag til automatisering udarbejdet af ChatGPT
Forslag til automatisering udarbejdet af ChatGPT

Det er ChatGPT faktisk lykkedes meget godt med. Men det kunne være rart at få navne på de åbne døre og vinduer med i beskeden. Så det bad jeg efterfølgende om at få med:

Tilrettet forslag til automatisering fra ChatGPT
Tilrettet forslag til automatisering fra ChatGPT

Resultatet er meget tæt på den automatisering, som jeg har vist ovenfor. Jeg har dog bl.a. ændret sproget, da ChatGPT (endnu) ikke forstår eller skriver dansk. Jeg har også ændret i skabelonerne, så de bruger device_class i stedet for at man selv skal vedligeholde grupper med sensorer.

Men det bedste er næsten, at ChatGPT også præsenterer vejledning i hvordan automatiseringen fungerer:

Vejledende tekst fra ChatGPT
Hjælpetekst fra ChatGPT

Så næste gang, du ikke kan få en automatisering til at virke, ved du nu, hvor du kan få kvalificeret hjælp…

Jeg bad i øvrigt også om at få lidt hjælp til at skrive dette indlæg, når jeg nu var i gang 🙂

Hvor nyttigt var dette indlæg?

Gennemsnitlig bedømmelse 5 / 5. Bedømmelser: 1

Ingen stemmer indtil videre! Vær den første til at bedømme dette indlæg.

Jeg beklager, at dette indlæg ikke var nyttigt for dig!

Hvordan kan indlægget forbedres?

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *