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.