Ich habe mich erst seit kurzem mit dem Thema HA beschäftigt und möchte eine konkrete Anwendung bauen. Es geht um einen Inaktivitätsmelder für Senioren. Ein Sensor ist an der Kühlschrank-Tür angebracht. Es soll überprüft werden, ob die Tür innerhalb einer Zeitspanne (z.B. 12 Stunden) geöffnet wurde. Wenn ja, dann ist alles ok und der Timer soll restartet werden. Wenn nein, dann soll Alarm ausgelöst werden (Push, SMS, E-Mail).
Hardware habe ich bereits (HA Green, Switchbot contact sensor + Hub mini). Jetzt würde ich Hilfe brauchen, wie man so eine Automation baut. Kann mir jemand detailliert skizzieren, wie das geht? Also welche Trigger mit welchen Parametern sowie welche dazugehörigen Bedingungen und Aktionen mit Parametern in der richtigen Reihenfolge man definieren muss.
description: ""
mode: single
triggers:
- trigger: state
entity_id:
- binary_sensor.kuehlschranktuer
from:
- "off"
to:
- "on"
conditions: []
actions:
- action: timer.start
metadata: {}
target:
entity_id: timer.timer_fuer_inaktivitatsmelder
data:
duration:
hours: 12
minutes: 0
seconds: 0
- action: notify.notify
metadata: {}
data:
message: Seit 12 keine Aktivität mehr erkannt
title: Inaktivität erkannt
data:
push:
sound:
name: default
critical: 1
volume: 1
- action: persistent_notification.create
data:
message: Seit 12 keine Aktivität mehr erkannt
title: Inaktivität erkannt
Ausprobiert habe ich es aber nicht.
Wenn Du eine Email verwenden willst, musst Du eine SMTP Konfiguration in die configuration.yaml einfügen. Nimm dieses Beispiel und passe es für Dich an.
Als Aktion dann notify.email verwenden.
Einen Helfer Timer zu erstellen ist klar. Aber welche konkreten Schritte muss ich setzen, um den von dir beschriebenen Yaml-Code zu erzeugen? (sorry, ich bin noch ein Dummy, was Automatisierung betrifft :=)
Die Automation kann so nicht funktionieren. Denn dort wird gar nicht auf das Ende des Timers gewartet (Idle), d.h. direkt nach Timerstart würden die Nachrichten gesendet.
mMn muss auf das Idle reagiert werden, also ungefähr so:
description: ""
mode: single
triggers:
- trigger: state
entity_id:
- binary_sensor.kuehlschranktur
from:
- "on"
to:
- "off"
id: timer starten
- trigger: state
entity_id:
- timer.inaktiv
from:
- active
to:
- idle
id: timer abgelaufen
conditions: []
actions:
- choose:
- conditions:
- condition: trigger
id:
- timer starten
sequence:
- action: timer.start
metadata: {}
target:
entity_id: timer.inaktiv
data: {}
- conditions:
- condition: trigger
id:
- timer abgelaufen
sequence:
- action: notify.mobile_app_phone
metadata: {}
data:
title: Warnung
message: inaktiv
@weberfel den Code einfach kopieren und in eine neue leere Automation mit STRG + V einfügen. Danach die Entitäten anpassen.
Schon klar, wie man den Code in eine leere automation.yaml einfügt. Ich wollte aber lernen, wie man ihn erzeugt. Also wie muss der Trigger und die Aktion(en) definiert werden, um den Code zu generieren?
Ich habe jetzt beide Versionen getestet, wobei ich den Timer auf 1 Minute gesetzt habe und die Aktion bei Inaktivität durch notify.gmx_email (ist ausgetestet) ersetzt.
Version ohne Helfer (von rstuck): es wird sofort eine E-Mail geschrieben
Version mit Timer (von maxe): es wird gar keine E-Mail geschrieben