Smart Room
Unser FSR Raum ist mit vielen Sensoren ausgestattet die für den Einen sehr sinnfrei erscheinen, für Andere allerdings den Alltag an unserer Universität verbessert.
Die erste Idee war eine Anzeige zu kreieren die anzeigt wie frisch der Kaffee ist, den es bei uns im Raum frei für alle Studenten der Fakultät gibt. Da unser Raum nur von wenigen FSR Mitgliedern geöffnet werden kann war die Idee eine weitere Anzeige zu erstellen welche anzeigt ob der Raum offen oder geschlossen ist. Diese wird mit einem Bewegungsmelder realisiert, welche für viele auch aussieht wie eine Überwachsungskamera. Allerdings liefert dieser nur einen Boolean Wert ob eine Bewegung im Raum erkannt wurde oder nicht. Abschließend kamen noch zwei Fenstersensoren dazu für unsere Fenster welche den Smart Room komplettieren.
Unten findet ihr die Informationen zu den Sensoren. Zudem gibt es noch ein paar unnötige Statistiken, womit man sich mal vom Lernen ablenken kann. Auch gibt es eine REST API welche alle aktuellen Werte der Sensoren ausgibt, mit der ihr euch gerne Scripte bauen könnt.
(Un-)nötige Statistiken
REST API
Wie wir mitbekommen haben bauen sich unsere Studenten gerne eigene Scripten mit den Werten aus unserem Smart Room. Deswegen haben wir eine einfache API gebaut in dem ihr alle Attribute entnehmen könnt.
Dafür gibt es einen Aufruf in dem ihr alle Attribute als Response erhaltet im JSON Format.
GET /smart-room/?apiUnten seht ihr ein Beispiel wie die Response beim Aufruf aussieht.
Der Bewegungsmelder gibt ein logisches true
aus falls Bewegung erkannt wurde.
Die Fenster geben ein true
aus falls das Fenster geschlossen ist.
Das Kaffee Attribut wird immer true
sein, anhand des Timestamps erkennt man wann der Kaffee fertig war.
{
"leftWindow": {
"state": true,
"timestamp": "2020-09-01 23:15:48"
},
"rightWindow": {
"state": false,
"timestamp": "2020-09-01 23:16:01"
},
"motionSensor": {
"state": true,
"timestamp": "2020-09-01 23:16:15"
},
"coffee": {
"state": true,
"timestamp": "2020-09-01 23:16:56"
}
}
Unten seht ihr ein Beispiel wie unsere API mit curl aufgerufen wird.