Automatisierung von Fensterbenachrichtigungen mit Home Assistant
Einleitung
Die Automatisierung von Smart-Home-Geräten ist ein zentraler Aspekt der modernen Heimtechnologie. In diesem Artikel wird erläutert, wie man eine Automatisierung in Home Assistant erstellt, die Benachrichtigungen sendet, wenn Fenster geöffnet sind. Dies ist besonders nützlich, um sicherzustellen, dass Fenster nicht versehentlich offen gelassen werden, was zu Energieverlust und Sicherheitsrisiken führen kann.
Problem
Ein Benutzer hat Schwierigkeiten mit einer Automatisierung, die auf den Status eines Fensters reagiert. Die Automatisierung sollte eine Benachrichtigung senden, wenn ein Fenster länger als 15 oder 20 Minuten geöffnet ist. Der Benutzer erhält jedoch keine Meldung, wenn die Trigger für die Zustandsänderung des Fensters konfiguriert sind.
Lösung
Das Problem liegt in der Verwendung von zwei Triggern, die beide auf denselben Zustand reagieren. Da der erste Trigger (15 Minuten) immer vor dem zweiten Trigger (20 Minuten) ausgelöst wird, ist der zweite Trigger überflüssig. Um die Automatisierung zu optimieren, sollte nur der Trigger für 15 Minuten verwendet werden. Zudem ist die Verwendung einer Bedingung für die Trigger nicht notwendig, da die Trigger bereits die erforderlichen Zustände definieren.
Hier ist die optimierte Automatisierung:
alias: Test
description: ""
triggers:
- trigger: state
entity_id:
- binary_sensor.binarsensor_fenster_gruppe
to: "on"
for:
hours: 0
minutes: 15
seconds: 0
from: "off"
conditions:
- condition: time
after: "09:00:00"
before: "23:30:00"
- condition: numeric_state
entity_id: sensor.eg_aussen_modul_temperatur
below: 12
actions:
- action: conversation.process
metadata: {}
data:
agent_id: conversation.chatgpt_2
text: >-
Es ist noch {{ expand('binary_sensor.binarsensor_fenster_gruppe') |
selectattr('state', 'eq', 'on') | map(attribute='name') | list | join
(', ') }} offen. Halte deine Antwort kurz und knackig ohne Emojis. Sei
abwechslungsreich. Informationen, die du für deinen Text verwenden
kannst: >- Aktuelle Uhrzeit von ist {{now()}}. XXX is
{{states('person.1')}} and XXX is {{states('person.2')}} and XXX is
{{states('person.3')}}.
response_variable: response_fenster
- data:
message: "{{response_fenster.response.speech.plain.speech}}"
title: Nachricht vom Fenster
data:
type: announce
target:
- media_player.badezimmer
action: notify.alexa_media
mode: single
Schritte zur Umsetzung
1. Öffne die Konfigurationsdatei für Automatisierungen in Home Assistant.
2. Ersetze den bestehenden Automatisierungscode durch den optimierten Code.
3. Speichere die Änderungen und lade die Automatisierungen neu.
4. Teste die Automatisierung, indem du das Fenster öffnest und wartest, ob die Benachrichtigung nach 15 Minuten erscheint.
Hintergrundwissen
In Home Assistant können Automatisierungen durch Trigger, Bedingungen und Aktionen definiert werden. Trigger sind Ereignisse, die die Automatisierung auslösen, während Bedingungen sicherstellen, dass die Automatisierung nur unter bestimmten Umständen ausgeführt wird. Aktionen sind die Schritte, die ausgeführt werden, wenn die Automatisierung ausgelöst wird.
Typische Fehler sind:
- Mehrere Trigger, die sich gegenseitig überflüssig machen.
- Falsche Entitäts-IDs, die dazu führen, dass die Automatisierung nicht funktioniert.
- Fehlende oder falsche Bedingungen, die die Ausführung der Automatisierung verhindern.
Zusätzliche Infos
Funktion | Erklärung |
---|---|
`trigger: state` | Definiert einen Trigger, der auf den Zustand einer Entität reagiert. |
`entity_id` | Gibt die Entität an, die überwacht wird (z.B. Fenster-Sensor). |
`to: "on"` | Der Zustand, auf den der Trigger reagiert (z.B. Fenster geöffnet). |
`for` | Gibt an, wie lange der Zustand bestehen muss, bevor die Automatisierung ausgelöst wird. |
`condition: time` | Stellt sicher, dass die Automatisierung nur zu bestimmten Zeiten aktiv ist. |
`action: conversation.process` | Führt eine Konversation mit einem KI-Agenten durch, um eine Nachricht zu generieren. |
`notify.alexa_media` | Sendet eine Benachrichtigung an ein Alexa-Gerät. |
Hinweise & Best Practices
- Verwende klare und eindeutige Entitäts-IDs, um Verwirrung zu vermeiden.
- Teste Automatisierungen gründlich, um sicherzustellen, dass sie wie gewünscht funktionieren.
- Halte Automatisierungen einfach und vermeide unnötige Komplexität, um die Wartbarkeit zu erhöhen.
- Dokumentiere Änderungen an Automatisierungen, um zukünftige Anpassungen zu erleichtern.