Projekt:SpaceStatus: Unterschied zwischen den Versionen

Aus k4cg.org
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 6: Zeile 6:
}}
}}


SpaceStatus ist ein kleines Python Skript, welches Daten aus dem Netzwerk sammelt.  
Dieses Projekt beschreibt die Situation der Daten die wir in der K4CG sammeln.
 
* Wir '''erheben''' Daten mittels '''Sensoren'''
* Wir '''sammeln''' die erhobenen Daten mittels '''Collector'''
* Wir '''werten Daten aus''' mittels der '''Schnittstellen'''
 
Alle Stichwörter sind unten genau erklärt um '''neue''' Sensoren und Schnittstellen für Mitglieder zu ermöglichen und zu vereinfachen.
 
 
= Topologie =
 


= Sensoren =
= Sensoren =


== door-status ==
Eine Liste aller Sensoren die wir in der CG haben und betreiben.
 
== Sensor door-status ==


Im Projekt [[Projekt:door-status|door-status]] wurde ein Sensor am Türschloss angebracht die es uns erlaubt abzufragen, ob gerade abgesperrt oder offen ist.
Im Projekt [[Projekt:door-status|door-status]] wurde ein Sensor am Türschloss angebracht die es uns erlaubt abzufragen, ob gerade abgesperrt oder offen ist.
Details bitte hieraus entnehmen.  
Details bitte hieraus entnehmen.  


== The famous "Tennisschläger" ==
== Sensor The famous "Tennisschläger" ==


Die ehemaligen Sensoren von [https://organic-entropy.org organic-entropy.org] wurden unterhalb von [[Host:scotty.intern.k4cg.org]] angebracht und an diesen angeschlossen.
Die ehemaligen Sensoren von [https://organic-entropy.org organic-entropy.org] wurden unterhalb von [[Host:scotty.intern.k4cg.org]] angebracht und an diesen angeschlossen.
Zeile 28: Zeile 40:
Auch diese Sensoren werden von Heimat eingesammel
Auch diese Sensoren werden von Heimat eingesammel


 
== Sensor Temperatur von Wajib ==
== Temperatursensor von Wajib ==


'''Derzeit inaktiv'''
'''Derzeit inaktiv'''
Zeile 71: Zeile 82:
= Collector =
= Collector =


Im Moment macht die [[Host:heimat.intern.k4cg.org|heimat]] alle 5 Minuten einen ARP Request auf das VLAN 88 und schaut, wie viele Mac Adressen zu sehen sind.
Im Moment führt die [[Host:heimat.intern.k4cg.org|heimat]] alle 5 Minuten das spacestatus.py Script auf und sammelt damit die Daten aller Sensoren ein.  
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.
Siehe Repo.
Diese Liste wird direkt im Source gepflegt. Siehe Repo.


Alle gesammelten Informationen landen in einem Python Dictionary. Die  
Alle gesammelten Informationen landen in einem Python Dictionary. Die in ein File als JSON persistiert werden und mittels des httpd Webservers zur Verfügung gestellt werden.


== JSON Document ==
== JSON Document ==
Zeile 97: Zeile 107:
}
}
</pre>
</pre>


== cron ==
== cron ==
Zeile 105: Zeile 114:
= Schnittstellen =  
= Schnittstellen =  


== Schnittstelle zum IRC ==
== Schnittstelle IRC ==


Damit die Rezeptionistin diese Informationen abholen kann, läuft auf Heimat auch ein kleiner Webserver (OpenHTTPD), der das JSON File ausliefert.
Damit die Rezeptionistin diese Informationen abholen kann, läuft auf Heimat auch ein kleiner Webserver (OpenHTTPD), der das JSON File ausliefert.
Zeile 112: Zeile 121:
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.
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 ==
== Schnittstelle 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
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
Zeile 119: Zeile 128:
Siehe auch [[Projekt:graphs.k4cg.org]]
Siehe auch [[Projekt:graphs.k4cg.org]]


== Schnittstelle zu Wiki ==
== Schnittstelle 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.  
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.  

Version vom 20. Februar 2018, 11:12 Uhr

Projekt:SpaceStatus
Betreuer*In noqqe
Jahr 2016
Läuft auf heimat.intern.k4cg.org
URL https://github.com/k4cg/spacestatus

Dieses Projekt beschreibt die Situation der Daten die wir in der K4CG sammeln.

  • Wir erheben Daten mittels Sensoren
  • Wir sammeln die erhobenen Daten mittels Collector
  • Wir werten Daten aus mittels der Schnittstellen

Alle Stichwörter sind unten genau erklärt um neue Sensoren und Schnittstellen für Mitglieder zu ermöglichen und zu vereinfachen.


Topologie

Sensoren

Eine Liste aller Sensoren die wir in der CG haben und betreiben.

Sensor door-status

Im Projekt door-status wurde ein Sensor am Türschloss angebracht die es uns erlaubt abzufragen, ob gerade abgesperrt oder offen ist. Details bitte hieraus entnehmen.

Sensor The famous "Tennisschläger"

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

Sensor Temperatur von Wajib

Derzeit inaktiv

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 führt die heimat alle 5 Minuten das spacestatus.py Script auf und sammelt damit die Daten aller Sensoren ein. Siehe Repo.

Alle gesammelten Informationen landen in einem Python Dictionary. Die in ein File als JSON persistiert werden und mittels des httpd Webservers zur Verfügung gestellt werden.

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 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 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 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