Lichtsteuerung

From chaospott wiki
Jump to: navigation, search
       
Raumsteuerung

Release status: obsolete [box doku]

Chaospott logo.svg
Description Raumsteuerung für das OG.
Author(s)  Nomoketo
Last Version  1.0
Platform  Raspbery Pi

UPDATE 23.04.2016: Die Steuerung befindet sich nicht in Benutzung, andere Dinge sind in Arbeit.

Die Clubraumsteuerung ist noch recht neu und ermöglicht die Steuerung diverser Geräte im Space. Mehr Geräte und intelligentes Verhalten werden folgen.

Die Raumsteuerung kann einfach im Browser unter http://10.42.1.73 aufgerufen werden.

Hardware[edit]

Die Raumsteuerung läuft aktuell auf einem Raspberry Pi, der im Bällebad auf dem Tisch steht. In Zukunft wird er an einer weniger angreifbaren Position untergebracht sein.

Die Ansteuerung der bisher unterstützten Geräte erfolgt durch Funksteckdosen. Weitere andere Techniken (für LEDs und IR-steuerbare Geräte) werden folgen.

Die Raumsteuerung selbst auf dem Pi ist ein auf der tornado-Bibliothek basierender Webserver in Python 3. Die Ansteuerung der Funksteckdosen geschieht über ein Sendemodul, das über die GPIO angeschlossen ist und von raspberry-remote bedient wird.

Intelligentes Verhalten[edit]

Beim Öffnen der Tür werden einige Geräte automatisch eingeschaltet.

Beim Schließen der Tür werden alle Geräte automatisch ausgeschaltet. in Zukunft ist auch die Überprüfung der Fenster sowie einige andere Dinge geplant.

API[edit]

Die Raumsteuerung hat eine umfangreiche API, welche via HTTP zu erreichen ist.

Pfad Beschreibung
/list Gibt ein JSON-Objekt aller vorhandenen Geräte zurück. (mehr dazu weiter unten)
/on/name Schaltet das Gerät ein.
/off/name Schaltet das Gerät aus.
/toggle/name Schaltet das Gerät um. (aus→ein bzw. ein→aus)
/get/name Gibt den aktuellen Status des Geräts zurück.
/info/name Gibt alle Informationen zu diesem Gerät, inklusive dem aktuellen Status, zurück.
/presets Gibt ein JSON-Objekt aller vorhandenen Presets zurück.
/preset/name Wendet dieses Preset an.
/shutdown Schaltet alle Geräte aus.
/ws Echtzeit-Websocket-API (auch Port 80). Sendet eine JSON-Liste [name, status], wenn sich der Status eines Gerätes ändert.

HTTP-Statuscodes[edit]

Folgende HTTP-Statuscodes werden von der API unterstützt:

Statuscode Bedeutung
400 Der Befehl wurde erkannt aber die Verwendung ist falsch.
404 Dieser Befehl oder dieses Gerät/Preset ist nicht bekannt.
405 Dieser Befehl wird von diesem Gerät nicht unterstützt.

Gerätedaten[edit]

Folgende Eigenschaften kann ein Gerät haben (zurückgegeben von /info/ und /list):

Name Erklärung
x X-Position auf der Karte (int)
y Y-Position auf der Karte (int)
type Gerätetyp. (str, mehr Informationen weiter unten)
image Bildtyp des Geräts. (str, optional je nach Gerätetyp)
method Weg, über den dieses Gerät technisch angeschlossen ist (optional, mehr Informationen weiter unten)
value Aktueller Status des geräts. (Datentyp unterschiedlich je nach Gerätetyp)

Gerätetypen[edit]

Typ Erklärung Datentyp Bildtypen
toggle Ein Gerät, dass ein- und ausgeschaltet werden kann. bool light,
bool Ein Gerät, dass einen bool-Zustand hat, der aber nicht über die API geändert werden kann. bool door,

Anschlusstypen[edit]

Typ Erklärung
wireless Funksteckdose