Installation

Der Sensor ist ein Reed Schalter, das heißt es gibt einem Magneten, der am Fenster befestigt wird, und ein Sensor, der an der Wand / am Fensterrand fest gemacht wird. Man kann den Schalter im Prinzip direkt an den Raspberry Pi anschließen, aber zur Sicherheit ist aktuell noch ein 2,2kOhm widerstand dazwischen, um einen Kurzschluss zu vermeiden, falls man mal aus Versehen den entsprechenden Pin als Output setzen würde.

Auslesen

Angeschlossen ist die eine Seite auf GND, die andere an BCM Pin 26 (Physischer Pin 37). Der Pin wird als Pull-Up konfiguriert, das heißt wenn der Kontakt offen ist (Fenster offen), ließt man eine 1, und wenn der Kontakt zu ist eine 0. Der Code dazu, der das an den smart-home-server überträgt liegt in sensors/window und ist auf dem Raspi als User-level Service eingerichtet. Das heißt man kann ihn starten/stoppen mit:

systemctl --user start/stop window-sensor

Die Service Datei liegt in ~/.config/systemd/user/window-sensor.service.

Daten

Der Sensor schreibt in den Kanal fenster folgendes Objekt:

{
    offen: true / false / null
}
null bedeutet, dass noch nicht bekannt ist, ob des Fenster offen, oder der Kontakt einfach nicht am Raspi verbunden ist. Nur wenn der Kontakt zu ist, kann man sicher davon ausgehen, dass was verbunden ist. Das heißt falls man den window-sensor service neustartet, während das Fenster offen ist, muss man es einmal schließen, damit da true oder false steht.