Door
Türstatus, Grafana und spaceapi.json
Netzwerk | |
---|---|
IPv4 | 172.23.195.36 |
IPv6 | 2a01:367:ff1f:100::36 |
Hostname | door |
Switch | PowerConnect2716 |
Port | 4 |
Dose | VT3 20 |
Stromverbrauch | |
max | 5W |
normal | ~2W |
Türstatus
Die Aktualisierung des Türstatus und der spaceapi.json nimmt ein Python-Skript (Ultra-Krebs) vor, das bei Betätigung des (ehemaligen FLTI*-) Switches den Status aktualisiert. Dieses Skript wird durch den systemd-unit spaceapi.service verwaltet. Dank der Kompatibilität zur Space API lassen sich der Status der Tür sowie allgemeine Informationen zum [hsmr] auch mit diversen Anwendungen für die Space API abfragen und auswerten.
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
Pulseaudio
Via USB ist eine externe Soundkarte mit dem Pi verbunden, über welche dann via PulseAudio over network Musik abgespielt werden kann.
$ sudo apt-get install pulseaudio pulseaudio-module-zeroconf $ cat /etc/pulse/default.pa # Änderungen sind: load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;172.23.195.0/24 auth-anonymous=1 load-module module-zeroconf-publish # … # Siehe pacmd list-sinks | grep -e 'name:' -e 'index:' set-default-sink alsa_output.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00.analog-stereo
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 aufb2s.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.
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.