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:
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:
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:
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:
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 🙂