Eine Fenster-Offen-Erkennung kann in einem Smart Home auf vielerlei Weise verwendet werden. Beispiele sind
- die sichere Erkennung offener Fenster für Heizungs-Thermostate,
- in einem Programm als zyklische Erinnerung, dass unter einer gewissen Temperatur noch ein Fenster geschlossen werden muss,
- als Alarmierung, wenn der Briefkasten zur Befüllung geöffnet wurde,
- als simple Alarmanlage,
- als Alarmierung, falls die Tiefkühlschrank-Tür offen gelassen wurde,
- …
Ich hatte bisher an Fenstern und Außentüren 433MHz-Sensoren verbaut. Anfangs habe ich den Fensterzustand per FHEM in eine CCU*-Variable geschrieben. Nach einigen Jahren wurden diese Sensoren jedoch immer unzuverlässiger, die Frequenz wich immer mehr von dem ab, was mein SIGNALduino sinnvoll empfangen konnte. In Kalibrierungen wollte ich keine Zeit stecken, zumal einige auch komplett ausfielen. Ein weiterer Kritikpunkt war, dass die Sensoren den Batteriezustand nicht übermittelt haben, sie gingen irgendwann einfach nicht mehr.
Glücklicherweise fand ich zu diesem Zeitpunkt die ZigBee-Sensoren von Aqara, welche ich mit dem bereits für die HUE-Leuchtmittel eingesetzten ZigBee-Stick empfangen konnte. So ersetzte ich nach und nach die alten Fenstersensoren und übermittelte den Fensterstatus per MQTT an das NodeRED auf der CCU. Mittlerweile betreibe ich einen zweiten ZigBee-Stick direkt an der CCU. Wie genau, zeigt nachfolgendes Beispiel.
Inhalt
Voraussetzungen
- Du benötigst für diese Anleitung ein eingerichtetes RedMatic. Wie eine Einrichtung vonstatten gehen kann, erfährst Du im Beitrag RedMatic auf der RaspberryMatic installieren.
- Weiterhin einen ZigBee-Stick, beispielsweise den Slaesh-Stick. Wie dieser in RedMatic eingerichtet wird, siehst du im Artikel RedMatic: Zigbee-Nodes installieren.
- Und zu guter Letzt noch den ZigBee-Fenstersensor*. Der für dieses Beispiel verwendete Sensor wird im nächsten Abschnitt erwähnt.
- Optional ist noch die MQTT-Einrichtung, um den Wert an andere Systeme zu übermitteln. Auch hierfür gibt es einen Beitrag, und zwar MQTT-Server auf der RaspberryMatic.
Aqara Fenster- und Türsensor
Der ZigBee-Sensor Aqara MCCGQ11LM eignet sich aufgrund seiner geringen Größe, gefälligen Designs und vor allem geringen Preises gut als Fenster-Sensor. Er übermittelt zudem den Batteriestatus, so dass man rechtzeitig die Zelle wechseln kann.
Der Nachfolger MCCGQ14LM wird mit der zigbee2mqtt-Version 1.22.1 nun auch unterstützt. Dein ZigBee-Stick benötigt eine dazu passende aktuelle Z-Stack-Firmware ab 20210708.
Kopplung an ein Raumthermostat
Die Kopplung des ZigBee-Sensors an ein HmIP-Thermostat ist simpel. Von den per ZigBee-Node ausgelesenen Daten interessiert uns hier nur das, was unterhalb von „data.onOff“ des Clusters „genOnOff“ steht. Alles andere wird vom Subflow „aqara value“ herausgefiltert (der Sensor sendet auch Statusdaten, die den Kontakt-Zustand nicht enthalten). Für die weitere Verarbeitung wird der Wert (0=geschlossen, 1=offen) in einen booleschen Wert transformiert. Damit lässt er sich
- in der WebUI darstellen,
- in den WINDOW-Datenpunkt eines Thermostats übertragen sowie
- optional an einen MQTT-Server senden
Nach dem Import des Beispielflows musst Du noch die Konfigurationen für Deine CCU* sowie MQTT und ZigBee eintragen (wird an den Nodes mit einem roten Dreieck markiert).
Ich habe aktuell Probleme, wenn ich den WINDOW-Datenpunkt so wie oben beschrieben programmatisch anspreche. Es kommt dann öfter zu einem Timeout. Eine Lösung habe ich leider noch nicht gefunden, aber einen Workaround, den ich Dir im Artikel „Fehler beim Setzen des Fensterstatus im Wandthermostat“ beschrieben habe.
Update
- 02.03.2022: Hinweis auf Fehler beim Setzen des Status hinzugefügt
- 22.12.2021: Hinweis zur ZigBee-Firmware für den neuen Aqara-Sensor hinzugefügt
- 08.04.2021: Verlagerung des Node-RED-Flows zu github, Voraussetzungen hinzugefügt, Bild aktualisiert
- 13.02.2021: Überarbeitung Beschreibung