Infrastruktur

Door

Projekte Türstatus, Grafana-Dashboard und spaceapi.json

Netzwerk
IPv4172.23.195.36
IPv62a01:367:ff1f:100::36
Hostnamedoor
Stromverbrauch
max5W
normal~2W

Türstatus

Hinten im Gruppenraum befindet sich auf dem rechten Lautsprecher, gut versteckt hinter der UFO-Glasfaserlampe, ein Stück Holz mit einem überdimensionierten Schalter. Dieser setzt den Türstatus, welcher beispielsweise oben rechts auf der Webseite zu sehen ist. Ferner auch über folgende Wege:

Die Aktualisierung des Türstatus und der spaceapi.json nimmt ein Python-Skript vor, das bei Betätigung des Schalters den Status aktualisiert. Dieses Skript wird durch die systemd-Unit spaceapi.service verwaltet.

Dank der Kompatibilität zur SpaceAPI lassen sich der Status der Tür sowie allgemeine Informationen zum [hsmr] auch mit diversen Anwendungen für die SpaceAPI abfragen.

Details

System

Der Raspberry Pi läuft mit der Minimalversion von Raspbian GNU/Linux 9. In /root/.ssh/ liegen die SSH-Schlüssel um dieses Wiki von wega.reis.asia lokal via sshfs zu mounten.

/etc/fstab

Bitte einloggen.

/etc/dhcpcd.conf

 # No SLAAC plz
 # slaac private

 interface wlan0
 static ip_address=172.23.195.36/24
 static ip6_address=2a01:367:ff1f:100::36/64
 static routers=172.23.195.1
 static domain_name_servers=172.23.195.1 2a01:367:ff1f:100::1

spaceapi-Skript

Wegen /etc/systemd/system/spaceapi.service wird beim Systemstart /usr/bin/spaceapi.py --file /mnt/wega/spaceapi.json --wiki /mnt/wega/wiki.d/Site.SiteNav aufgerufen, wobei diese Pfade in /etc/conf.d/spaceapi stehen. Zum Neustarten nach Crash hilft systemctl restart spaceapi. Hardware debugging per gpio readall. Das Script erfüllt 2 Dinge:

  • Status des Schalters über Interrupt erfassen (und beim Start des Programms) und den Status als JSON in Topic "door" des MQTT Brokers auf b2s.hsmr.cc schreiben
  • Subscribed auf das Topic "door" in o.g. MQTT Broker und ändert bei Updates entsprechend spaceapi und Webseite

remote update script

Da der Türstatus über einen MQTT-Broker läuft, kann man auch von außerhalb der Räumlichkeiten den Status ändern (bspw. weil man vergessen hat den Schalter bei verlassen umzulegen). Dafür gibt es folgendes Script (einloggen um Link zu sehen):

Dieses Script basiert auf Python 3 und paho-mqtt, was mittels pip install paho-mqtt nachinstalliert werden kann.

drehtuer, MQTT-InfluxDB-Bridge

Der drehtuer.service sorgt dafür, dass bei jeder MQTT-Nachricht der door der enstprechende Zustand in eine InfluxDB geschrieben wird. Grafisch lässt sich dies z.B. im Grafana betrachten. Der Code befindet sich auf GitHub.

Sonntag, 2021-09-19

  • Sowohl Wikiseite wie auch Debian aktualisiert

Montag, 2020-03-02

  • MQTT an InfluxDB angebunden

Sonntag, 2019-11-03

  • Türstatus läuft jetzt über MQTT über b2s.
  • Für den aktuellen Zustand und live-updates: Subscribe topic "door" auf b2s.hsmr.cc

Dienstag, 2019-01-01

  • Neuen Türstatus mit neuem Pi gebaut.
  • Der ehemalige FLTI*-Schalter wird nun für den Öffnungsstatus genutzt: 0 heißt geschlossen, I heißt auf.

Sonntag, 2018-11-25

  • /home/wiki/webs/hsmr_cc/docs/wiki.d/Site.SiteNav von Hand auf unbesetzt gesetzt. Hardware abgebaut?
  • Sehr händisch auf Umzug gesetzt, da abgebaut.

Freitag, 2016-02-26

  • Von angebrochenem Schalter noch mehr abgebrochen damit er nicht mehr klemmt.

Donnerstag, 2016-02-18

  • Kabelbruch, also alles umgebaut. Schalter kontaktiert jetzt wenn Tür abgeschlossen ist.

Donnerstag, 2016-01-21

  • Nächsten FLTI*-Termin berechnen und mit ausgeben.

In der grauen Vorzeit

Im alten Space sah die Verkabelung mal so aus und war direkt mit dem Türschloss verbunden.