Projekt:SpaceStatus
Projekt:SpaceStatus | |
Betreuer*In | noqqe |
Jahr | 2016 |
Läuft auf | heimat.intern.k4cg.org |
URL | https://github.com/k4cg/spacestatus |
SpaceStatus ist ein kleines Python Skript, welches Daten aus dem Netzwerk sammelt.
Sensoren
Licht, Sound, Temperatur
Die ehemaligen Sensoren von organic-entropy.org wurden unterhalb von Host:scotty.intern.k4cg.org angebracht und an diesen angeschlossen.
Die Sensoren liefern Daten über folgendes:
- Temperatur (schon wieder...)
- Licht Intensität (i.e. Helligkeit)
- Geräusch Pegel (KEIN Aufnahmegerät)
- Accelerometer (pretty much useless, weil an die Wand gehängt)
Auch diese Sensoren werden von Heimat eingesammel
Temperatursensor von Wajib
Der Temperatursensor ist auch auf Scotty installiert.
Unter /root/tempi
liegt das compilte Binary.
Der Source Code ist von https://www.poempelfox.de/ds1820tousb/ds1820tousb-v1.03-221211.tar.gz
User:Wajib hat die Hardware und Software zusammengebaut.
Der Daemon wird beim Starten von Scotty via supervisor
gestartet.
conifg-file "/etc/supervisor/conf.d/tempi.conf": [program:tempi] directory=/root/tempi command=/root/tempi/hostsoftware daemon 00000740df6e:31337:%%T autostart=true autorestart=true startsecs=10 user=root stdout_logfile=/root/tempi/logs/tempi.log stdout_logfile_maxbytes=1MB stdout_logfile_backups=10 stdout_capture_maxbytes=1MB stderr_logfile=/root/tempi/logs/tempi.log stderr_logfile_maxbytes=1MB stderr_logfile_backups=10 stderr_capture_maxbytes=1MB environment = HOME="/root/", USER="root"
Der Aufruf sieht wie folgt aus:
/root/tempi/hostsoftware daemon 00000740df6e:31337:%T
Collector
Im Moment macht die heimat alle 5 Minuten einen ARP Request auf das VLAN 88 und schaut, wie viele Mac Adressen zu sehen sind. Von den Mac Adressen die gefunden werden, werden Hosts herausgestrichen, die immer da sind. So wie die Heimat, Raspberry PI oder die Philips Hue Bridge. Diese Liste wird direkt im Source gepflegt. Siehe Repo.
Alle gesammelten Informationen landen in einem Python Dictionary. Die
JSON Document
Zum Beispiel
{ "date": "2018-02-20T10:50:03.736701", "hosts": [], "hservierer": { "date_GMT": "2018-02-20T09:47:52.000000", "door": "closed", "humidity": "37.54", "tempDoor": "16.24" }, "light": null, "online": 0, "sound": 0.0, "temp": 16.75 }
cron
*/5 * * * * /usr/local/bin/python2.7 /usr/local/bin/spacestatus/spacestatus.py
Schnittstellen
Schnittstelle zum IRC
Damit die Rezeptionistin diese Informationen abholen kann, läuft auf Heimat auch ein kleiner Webserver (OpenHTTPD), der das JSON File ausliefert. Gesichert ist der Zugriff mit IP Limitierung und htaccess.
Das Plugin in Rezeptionistin verbindet sich also auf dem Webserver der Heimat, holt das json File ab und gibt die Informationen im IRC Channel wieder.
Schnittstelle zu graphs.k4cg.org
Damit wir auch ein bisschen Zucker auf die Augen bekommen wird das oben genannte JSON File auch von https://github.com/k4cg/sensor-fetcher/ genutzt um die Daten in eine schönen Grafana Graphen zu laden.
Siehe auch Projekt:graphs.k4cg.org
Schnittstelle zu Wiki
Das Wiki holt sich den door-status (linker roter/grüner Kasten) ebenfalls aus diesem JSON File ab und stellt dann dem Besucher der Webseite dar ob die CG im Moment offen oder geschlossen ist.
Misc
ICH WILL LIVEDATEN
Ich auch. In der Realtiät stellt sich aber heraus das das instabile Internet und die nicht statische v4 IP, die unfähigkeit von Libraries von mediawiki, BRICKD und die Unfähigkeit von Hardware Herstellern wie Philips Hue es nicht auf die Reihe bekommen eine IPv6 Anbindung sicherzustellen.
All diese Probleme haben seit Mitte 2016 immer wieder für Frust und Ausfälle gesorgt, wesegen wir jetzt ein einheitliches Format des Datenaustauschs mithilfe des HTTP+JSON auf der Heimat geschaffen haben.
All das führt natürlich dazu das die Daten nichtmehr komplett Live sind sondern mit 5 Minuten delay in Projekt:graphs.k4cg.org und im IRC auftauchen