Mit Home Assistant und entsprechenden Sensoren ist es super einfach die Fenster zu Hause zu überwachen. Wir haben beispielsweise Fenster im Keller die wir zum Lüften immer wieder mal öffnen und dann vergessen (da sie im Keller sind). Der Keller wird dann schon durchgelüftet und einen Tag später stellen wir fest, dass die Fenster ja noch offen sind. Also schnell ein paar ZigBee-Fenstersensoren installiert und mit Zigbee2MQTT gepaired und schon können die Fenster überwacht werden.
Du nutzt noch kein Zigbee2MQTT in HA? Dann schau Mal hier vorbei, du wirst es ziemlich sicher lieben 😉
Nun bedarf es noch guter Automatisierungen um das Ganze auch wirklich smart zu machen. Ich würde gerne von HA eine Push-Benachrichtigung auf mein Handy erhalten, wenn ein Fenster für 30 Minuten geöffnet ist. Sobald das Fenster gewchlossen wird, soll diese Push-Benachrichtigung aber auch wieder verschwinden. Auf dem Handy bleiben dann nur die Push-Benachrichtigung von tatsächlich noch offenen Fenstern.
Du bist zu faul zum Lesen? Hier gibt’s das Ganze auch als Video für dich:
Passende ZigBee-Sensoren zur Überwachung deiner Fenster und Türen (beide nutze ich seit Jahren):
Du magst Home Assistant? Dann abonniere kostenlos meine Beiträge mit Tipps, Tricks und Anleitungen rund um Home Assistant:
Follow Home Assistant
Garantiert kein Spam, keine Werbung und immer mit Abmelde-Link, solltest du es dir anders überlegen!
Früher (ich nutze HA seit 2018) hätte ich für jeden Sensor (also jedes Fenster) zwei Automatisierungen angelegt:
1. Sende eine Push-Benachrichtigung für Fenster X, wenn Fenster X für 30 Minuten geöffnet ist
2. Entferne die Push-Benachrichtigung für Fenster X, wenn Fenster X wieder geschlossen wurde.
Und das für jedes Fenster. Bei uns im Keller haben wir 3 überwachte Fenster, weshalb ich 6 Automatisierungen anlegen müsste. Kann man machen, aber mit HA geht das natürlich schlanker und smarter:
Eine universelle Automatisierung für alle zu überwachenden Fenster die die Push-Benachrichtigung versendet und eine weitere universelle Automatisierung um beim Schließen eines dieser Fenster die jeweilige Push-Benachrichtigung wieder zu entfernen! Also in meinem Fall 2 Automatisierungen statt 6!
Wichtig ist hierbei einzig, dass du in beiden Automatisierungen als Trigger die gleichen Fenster nutzt. Den YAML-Code der 1. Automatisierung findest du hier:
alias: Kellerfenster-Benachrichtigung description: "" trigger: - type: opened platform: device device_id: fe8da7b17f12cfd4704a4c877844703e entity_id: 4b80eb770628ddd211d23bae5bb65c7d domain: binary_sensor for: hours: 0 minutes: 30 seconds: 0 - type: opened platform: device device_id: ca7072e45504c096264730f07c862042 entity_id: 363b48f2b8f2df4dcc2fee8d0daba6bb domain: binary_sensor for: hours: 0 minutes: 30 seconds: 0 - type: opened platform: device device_id: 7209f777d1c1b53f35852f432239b11e entity_id: a71d7adabb77a17859f2a836b2938612 domain: binary_sensor for: hours: 0 minutes: 30 seconds: 0 condition: [] action: - service: notify.ALL_DEVICES data: title: Fenster offen! message: >- {{ trigger.to_state.attributes.friendly_name }} ist seit >30 Minuten offen! data: tag: kellefenster-{{ trigger.to_state.attributes.friendly_name }} mode: single
Du musst hier natürlich die Entitäten deiner Sensoren anpassen und die korrekte Entität für die Push-Benachrichtigung angeben. Beim zweiten Code für das Widerrufen der Push-Benachrichtigung sieht es dann ähnlich aus:
alias: Benachrichtigung-Keller-Revoke description: "" trigger: - type: not_opened platform: device device_id: fe8da7b17f12cfd4704a4c877844703e entity_id: 4b80eb770628ddd211d23bae5bb65c7d domain: binary_sensor - type: not_opened platform: device device_id: ca7072e45504c096264730f07c862042 entity_id: 363b48f2b8f2df4dcc2fee8d0daba6bb domain: binary_sensor - type: not_opened platform: device device_id: 7209f777d1c1b53f35852f432239b11e entity_id: a71d7adabb77a17859f2a836b2938612 domain: binary_sensor condition: [] action: - service: notify.ALL_DEVICES data: message: clear_notification data: tag: kellefenster-{{trigger.to_state.attributes.friendly_name}} mode: single
In beiden Automatisierungen nutzen wir {{ trigger.to_state.attributes.friendly_name }} um zu ermitteln, welche Entität (konkret dessen leserlicher Name) die Automatisierung ausgelöst hat. Diesen nutzen wir dann, um der Push-Benachrichtigung hiermit einen eindeutigen Namen „zu bauen“: tag: kellefenster-{{trigger.to_state.attributes.friendly_name}} Somit können wir beim Schließen des Fensters dessen Push-Benachrichtigung direkt ansprechen und somit diese Push-Benachrichtigung widerrufen.
Mit diesen beiden universellen Automatisierungen überwache ich die drei Fenster im Keller. Ist eines der Fenster für 30 Minuten geöffnet, erhalten ich auf mein Handy eine Push-Benachrichtigung. Wird das Fenster geschlossen, verschwindet genau diese Push-Benachrichtigung automatisch wieder von meinem Handy.
Ich habe folgendes Setup:Ein Fujitsu Futro S740 ThinClient mit einem Intel J4105-Prozessor, auf dem Proxmox läuft. Innerhalb von Proxmox betreibe ich eine Home Assistant-VM sowie LXC-Container für MQTT und Zigbee2MQTT. Diese laufen nicht als Add-ons in Home Assistant, sondern unabhängig davon.Der Grund für diese Trennung ist, dass Home Assistant regelmäßig neu gestartet wird, was zu Problemen führte, wenn MQTT und Zigbee2MQTT ebenfalls integriert waren. Seitdem MQTT und Zigbee2MQTT getrennt von Home Assistant betrieben werden und ich Zigbee2MQTT nicht jedes Mal neu starten muss, läuft das System stabil.Ich habe 30 Zigbee-Geräte, die alle mit Batterien betrieben werden, abgesehen von einer Zigbee-Steckdose (Tuya TS011F_plug_1). Diese Steckdose fungiert bei mir auch als Teil des Mesh-Netzwerks.Der Fujitsu Futro S740, auf dem Home Assistant läuft, ist per LAN-Kabel mit der FritzBox verbunden. Die Entfernung zwischen beiden beträgt nur etwa 50 cm.Der ZigStar UZG (Modell UZG-01) ist mit einem PoE-Netzteiladapter (48 V) verbunden, der wiederum über ein LAN-Kabel an die FritzBox angeschlossen ist. Der Abstand zwischen dem Netzteiladapter und der FritzBox beträgt etwa 20 cm.Ich plane, den Zigbee-Koordinator (ZigStar UZG, Modell UZG-01) mit einem längeren LAN-Kabel an einen anderen Standort zu versetzen, etwa 3 Meter entfernt. Vielleicht verbessert das die Signalstärke.Was ist deine Empfehlung dazu? Was könnte ich noch tun, um einen ähnlich guten LQI-Wert (Link Quality Indicator) wie bei dir zu erreichen?Darf ich auch erfahren, was das für 25 Zigbee-Geräte sind, die im Dauerbetrieb mit Strom versorgt werden und das gesamte Netzwerk deutlich stabilisieren?Vielen Dank und liebe Grüße,Acem
@acem Mein HA läuft 24/7 durch. Der letzte Neustart war beim Umzug auf den Pi 5. Was hattest du vorher denn für Probleme, die durch den regelmäßigen Reboot „behoben“ wurden (behoben wurden sie ja anscheinend nicht, sondern vielmehr heilt der Reboot das Problem).
Ich hatte, wenn ich Home Assistant mal neu starten musste, immer wieder das Problem, dass ich mich nicht mit Zigbee2mqtt verbinden konnte. Deshalb lasse ich jetzt Home Assistant zusammen mit Zigbee2mqtt und MQTT getrennt laufen. Das heißt, wenn ich Home Assistant neu starten muss, laufen meine Instanzen wie Zigbee2mqtt und MQTT weiter.Ich habe im Einsatz: 1x den Tuya Zigbee Smart Stecker 20A und 2x Osram Zigbee Steckdosen.Leider kann ich nicht sagen, dass diese mein Zigbee-Mesh-Netzwerk verstärkt haben.Zu den Aqara Zwischensteckern, die du hier erwähnst: Sind das etwa diese hier?Wenn das wirklich etwas bringt, werde ich sie mir kaufen, weil ich sonst nicht weiß, wie ich mein Zigbee-Netzwerk verstärken kann.
@acem Also die genannten Geräte sollten das Netzwerk schon verstärken, sofern diese nicht zu weit vom Koordinator entfernt sind. Aber ja, einen solchen Zwischenstecker nutze ich auch.
Hallo Olli,
ich habe mir dein Video angesehen:„Universelle smarte Fensterüberwachung mit Home Assistant – nur 2 Automatisierungen für alle Fenster!“
Im Abschnitt von Minute 1:18 bis 2:23 habe ich bei deinen Zigbee2MQTT-Einstellungen bemerkt, dass alle deine Geräte eine LQI (Link Quality Indicator) von 240 bis 255 haben.Ich wollte fragen, wie du es geschafft hast, so eine gute Empfangsqualität zu erreichen und welche Geräte bzw. Hardware du dafür verwendest.
Mein Zigbee-Coordinator, den ich für Zigbee2MQTT nutze, ist das Zigstar UZG Model UZG-01. Bei mir liegen die LQI-Werte zwischen 29 und 153. Der Wert von 153 wird beispielsweise vom Aqara-Rauchmelder im Flur erreicht, der nur etwa 3 Meter entfernt vom Coordinator steht.
Ich würde mich sehr über eine Antwort freuen.
Vielen Dank und liebe GrüßeAcem
@acem Hi Acem,
das ist aktuell tatsächlich nur ein alter ConBee 2. Zwischen Pi und ZigBee-Stick habe ich aber ein ca. 3 Meter langes USB-Verlängerungskabel, da es von HA nachgewiesene Probleme für die Kombination aus USB 3 und ZigBee-Koordinatoren gibt, die durch das Verlängerungskabel geheilt werden.
Dann habe ich 25 mit Dauer-Strom betriebene ZigBee-Geräte, welche das gesamte Netzwerk deutlich stabilisieren.
Meine schlechteste LQI ist aktuell 184 und das Netzwerk erstreckt sich über 4 Etagen mit aktuell 54 Geräten.
Ich hoffe das hilft dir?
VG
Olli
Hm, es sah so einfach aus, doch ich scheitere bereits an der ersten Automation
Nachdem ich rausgefunden habe, dass ich zuerst die ALL_DEVICES gruppe noch konfigurieren muss, bekomme ich nun die Meldungen (Im Trace)
„`
Executed: July 20, 2024 at 9:29:58 AM
Error: Error rendering data template: UndefinedError: ‚dict object‘ has no attribute ‚to_state‘
Executed: July 20, 2024 at 9:32:27 AM
Error: Error rendering data template: UndefinedError: ‚dict object‘ has no attribute ‚from_state‘
„`
Hier das ganze YAML.
„`
alias: FensterNotification_EG_an
description: „“
trigger:
– type: opened
platform: device
device_id: b7e9b016e7e689d34b255118ca606c0f
entity_id: c4c6a502bbf8f2841ddccffb6a603a6e
domain: binary_sensor
for:
hours: 0
minutes: 0
seconds: 30
– type: opened
platform: device
device_id: 08ddb79ddfdfcd626ce5961e6ad6fa57
entity_id: ccc615984179d641fd39818396311cd7
domain: binary_sensor
for:
hours: 0
minutes: 0
seconds: 30
condition: []
action:
– service: notify.all_devices
data:
title: Fenster offen!
message: „{{ trigger.to_state.attributes.friendly_name }} ist seit >30 Minuten offen!“
data:
tag: kellefenster-{{ trigger.to_state.attributes.friendly_name }}
mode: single
„`
Was könnte falsch sein?
Kann es sein, dass du die Automatisierung manuell auslöst, also über das UI und „Ausführen“? Die Fehlermeldung spricht dafür. Das geht in diesem Fall nicht, da aufWerte/Daten der Auslöser zurückgegriffen wird, die es dann ja nicht gibt.
Teste mal ohne manuelles auslösen, sondern durch öffnen eines relevanten Fensters bspw.
Hi Olli,
danke für deine schnelle Antwort.
Der Hinweis mit dem manuellen Auslösen war wichtig, aber nicht das einzige Problem. Ich hab mir (wegen den Temperaturen will ich grade nicht wirklich ein Fenster auf machen 😀 ) einen Behelf mit einem „Helper“ Toggle Switch gebaut. Mit dem kann man Öffnen und Schließen (wichtig für das revoken der Notification, mit einem Button hab ich das nicht hinbekommen) simulieren.
Ich hab irgendwie nicht so ganz verstanden wann und wieso meine Automation nicht speicherbar ist wenn man Eigenschaften im YAML Editor editiert.
Meine Lösung sieht jetzt so aus, dass die Notification Nachricht anscheinend zwingend in Quotes stehen muss, sonst speichert er das gar nicht.
Ansonsten habe ich das jetzt über einige Iterationen hinbekommen. Ichhabe noch für jedes Geschoss einen „Master switch“ mit dem ich die Notifications ausschalten kann.
Eine kleine Schwierigkeit ist noch: ich habe zwei Arten von Homematic Fenster Sensoren verbaut, optische und mechanische. Letztere haben kein „Open“ Event wie die optischen, sondern drei Zustände: Geschlossen, Gekippt, Geöffnet. Daher muss man zwei trigger für „Offen“ (Open + Tilted) in die Automation machen – und statt Device dann Entity->State.
Eigtl, wollte ich noch eine Wiederholung der Notification implementieren. Bis ich dein Video gesehen habe, wusste ich gar nicht, dass ich an die Apps Notifications schicken kann und hatte das per XMPP gemacht. Mal schauen, sollte sich aber über einen Building Block in den Actions irgendwie regeln lassen, wenn ich das wirklich brauche.
Werde es jetzt erst mal ausgiebig testen, vielen Dank nochmal 🙂
Die Wiederholung ist vermutlich am einfachsten, wenn du statt einer Notification einen Alert nutzt: https://www.home-assistant.io/integrations/alert/
Alerts kannst du auch mit einem Tag versehen und somit revoken/ansprechen.
Wenn Bedarf besteht, kann ich ein Beispiel erstellen.
Vielen Dank. Schaue ich mir mal an!
Hallo, bei mit geht das notify.ALL_DEVICES nicht, ich kann den service auch in den Entwickler tools nicht finden?
Gruß Reinhard
Hi Reinhard,
mein Fehler, da ich das nicht explizit erwähnt habe! Ich nutze dafür eine Notify-Group, welche die Geräte unter dem Namen ALL_DEVICES bündelt. Bei mir sieht das dann in der configuration.yaml wie folgt aus:
Du musst das natürlich um deine Endgeräte anpassen, die die HA-App installiert haben. Und hier konkret die Notify-Services „suchen“, also für die erste Zeile der Auflistung lautet der Dienst bei mir notify.mobile_app_pixel_8_pro (hierüber würde nur das eine Handy die Benachrichtigung erhalten). Am einfachsten findest du das unter Entwicklerwerkzeuge -> Dienste und da dann ins Dropdown „notify“ eingeben und schauen was kommt.
Sonst gerne noch mal melden, sollte das nicht hilfreich/verständlich sein!
VG
Olli