Archiv:Lichtsteuerung: Difference between revisions

From Chaosdorf Wiki
m (→‎Angeschlossene Geräte: Verstärker, manuell + Link zur Verstärkerschaltung)
(foo. ich muss hier mal dinge neuschreiben...)
Line 8: Line 8:
|source=https://github.com/derf/dorfmap{{!}}github
|source=https://github.com/derf/dorfmap{{!}}github
}}
}}
Benutze <tt>Beleuchtung</tt> mit <tt>Hackspace</tt>.
Lampen, Blinkenlights und weitere Geräte, fernsteuerbar per Automatik, Website und Android-App.


== Hardware ==
== Hardware ==
Line 15: Line 15:
[[File:Chaosdoorlicht.png|Außenbeleuchtung|200x200px|framed|right]]
[[File:Chaosdoorlicht.png|Außenbeleuchtung|200x200px|framed|right]]


Kernstück des Ganzen ist aktuell {{H|feedback}}, ein Raspberry Pi. Die Verbraucher werden teilweise direkt über GPIO-Pins (Optokoppler + Transistor) geschaltet, überwiegend aber über an {{H|feedback}} und {{H|donationprint}} per [[SI2C]] angeschlossene Microcontroller.
Kerstück des Ganzen sind [[SI2C]]-Instanzen an {{H|feedback}} und {{H|donationprint}}. Daran hängen die Steuer-AVRs der jeweiligen Geräte und tun (wenn sie mit der richtigen Adresse angesprochen werden) Dinge.


Die Schaltspannung ist 12V und geht etweder direkt zu Kleinverbrauchern oder zu 230V-Relais.
Einige Verbraucher werden noch direkt über GPIO-Pins (Optokoppler + Transistor) geschaltet, das ist aber Legacy und wird abgebaut.
 
Die Schaltspannung der Schieberegister ist 12V und geht wahlweise direkt zum Kleinverbraucher oder zu einem 230V-Relais.


== Software ==
== Software ==
Line 27: Line 29:


Die Außenbeleuchtung wird automatisch nach der aktuellen Tageszeit geschaltet. Benutzt wird dazu die Perl-Library Astro::Sunrise, die anhand unserer Koordinaten und dem aktuellen Datum recht akkurate Zeiten für Sonnenauf- und -untergang [https://github.com/derf/dorfmap-deb/blob/master/bin/is_sundown berechnet]. Per [https://github.com/derf/dorfmap-deb/blob/master/debian/dorfmap-deb.cron.d cronjob] wird alle 6 Minuten überprüft, ob Nacht ist oder nicht, und entsprechend die Beleuchtung geschaltet.
Die Außenbeleuchtung wird automatisch nach der aktuellen Tageszeit geschaltet. Benutzt wird dazu die Perl-Library Astro::Sunrise, die anhand unserer Koordinaten und dem aktuellen Datum recht akkurate Zeiten für Sonnenauf- und -untergang [https://github.com/derf/dorfmap-deb/blob/master/bin/is_sundown berechnet]. Per [https://github.com/derf/dorfmap-deb/blob/master/debian/dorfmap-deb.cron.d cronjob] wird alle 6 Minuten überprüft, ob Nacht ist oder nicht, und entsprechend die Beleuchtung geschaltet.
Der [[HP2100]] und die [[Windowgarden]]-Pumpe werden nach 20 Minuten automatisch abgeschaltet.


=== Manuell ===
=== Manuell ===


Grundlage ist ein [https://github.com/derf/dorfmap/blob/master/public/map.png Grundriss] des Clubraums. Aus einer [https://github.com/derf/dorfmap/blob/master/coordinates Koordinatendatei] wird ausgelesen, wo welche Lampe ist, und abhängig von ihrem Status ein entsprechendes Symbol angezeigt. Automatisch gesteuerte Lampen sind read-only, alle anderen können durch einen Klick aufs Symbol getoggelt werden.
Grundlage ist ein [https://github.com/derf/dorfmap/blob/master/public/map.png Grundriss] des Clubraums. Aus einer [https://github.com/derf/dorfmap/blob/master/coordinates Koordinatendatei] wird ausgelesen, wo welche Lampe ist, und abhängig von ihrem Status ein entsprechendes Symbol angezeigt. Bei automatisch gesteuerten Lampen wird die Automatik gesteuert, alle anderen können durch einen Klick aufs Symbol getoggelt werden.


Weil die Karte eh schon da ist, wird außerdem der Status von einigen Servern / Embedded Hosts, unseren WLAN-APs und den Druckern angezeigt. Der ist sinnvollerweise auch read-only, die Hosts werden einfach angepingt. Eingeschaltete Hosts sind grün, ausgeschaltete grau oder rot.
Weil die Karte eh schon da ist, wird außerdem der Status von einigen Servern / Embedded Hosts, unseren WLAN-APs und den Druckern angezeigt. Der ist sinnvollerweise auch read-only, die Hosts werden einfach angepingt. Eingeschaltete Hosts sind grün, ausgeschaltete grau oder rot.
Line 81: Line 85:
|-
|-
| Weißer LED-Strahler, Lounge || Manuell
| Weißer LED-Strahler, Lounge || Manuell
|-
| Grüner LED-Strahler, Lounge || Manuell
|-
| Luft-/Wasserpumpe [[Windowgarden]], Lounge || Manuell an, automatisch nach 20 Minuten aus
|-
|-
| Kaltweiße LED-Platte, Treppe || Manuell
| Kaltweiße LED-Platte, Treppe || Manuell
|-
| 4x7Segment-Anzeige, Lounge || Automatik: Uhrzeit
|-
|-
| [[Printer/HP2100]] || Manuell an, automatisch nach 20 Minuten aus
| [[Printer/HP2100]] || Manuell an, automatisch nach 20 Minuten aus

Revision as of 23:27, 3 August 2013

Lichtsteuerung stable
Dorfmap.png
Verbraucher per Webinterface steuern
Beteiligt derf
Quelltext github

Lampen, Blinkenlights und weitere Geräte, fernsteuerbar per Automatik, Website und Android-App.

Hardware

Optokoppler
Außenbeleuchtung

Kerstück des Ganzen sind SI2C-Instanzen an feedback und donationprint. Daran hängen die Steuer-AVRs der jeweiligen Geräte und tun (wenn sie mit der richtigen Adresse angesprochen werden) Dinge.

Einige Verbraucher werden noch direkt über GPIO-Pins (Optokoppler + Transistor) geschaltet, das ist aber Legacy und wird abgebaut.

Die Schaltspannung der Schieberegister ist 12V und geht wahlweise direkt zum Kleinverbraucher oder zu einem 230V-Relais.

Software

Automatik

Die Außenbeleuchtung wird automatisch nach der aktuellen Tageszeit geschaltet. Benutzt wird dazu die Perl-Library Astro::Sunrise, die anhand unserer Koordinaten und dem aktuellen Datum recht akkurate Zeiten für Sonnenauf- und -untergang berechnet. Per cronjob wird alle 6 Minuten überprüft, ob Nacht ist oder nicht, und entsprechend die Beleuchtung geschaltet.

Der HP2100 und die Windowgarden-Pumpe werden nach 20 Minuten automatisch abgeschaltet.

Manuell

Grundlage ist ein Grundriss des Clubraums. Aus einer Koordinatendatei wird ausgelesen, wo welche Lampe ist, und abhängig von ihrem Status ein entsprechendes Symbol angezeigt. Bei automatisch gesteuerten Lampen wird die Automatik gesteuert, alle anderen können durch einen Klick aufs Symbol getoggelt werden.

Weil die Karte eh schon da ist, wird außerdem der Status von einigen Servern / Embedded Hosts, unseren WLAN-APs und den Druckern angezeigt. Der ist sinnvollerweise auch read-only, die Hosts werden einfach angepingt. Eingeschaltete Hosts sind grün, ausgeschaltete grau oder rot.

Es gibt eine Reihe von Shortcuts, die mehrere Aktionen zusammenfassen. "Shutdown" schaltet z.B. alle Lampen aus und den Raumstatus auf nicht-öffentlich, "Putzen" sorgt für viel Licht, etc.

API

Es existiert eine API, unterstützt wird sowohl ein einfaches Textformat (z.B. für Shellskripte) als auch JSON. Für Textformat .txt an Anfragen anhängen (oder curl -H 'Accept: text/plain' benutzen), für JSON entsprechend .json bzw. application/json.

/get kann auch PNGs liefern, sie entsprechen den in der Übersicht sichtbaren.

Request Aktion Rückgabe
/get/id Keine Aktueller Status des Verbrauchers (1 == an, 0 == aus, -1 == unbekannt)
/off/id Schaltet Verbraucher aus Beliebig
/on/id Schaltet Verbraucher an Beliebig
/list/all Keine Liste aller Verbraucher mit Name, Typ, Status, Lesbar, Schreibbar
/list/readables Keine Liste aller Verbraucher mit auslesbarem Status
/list/writables Keine Liste aller Verbraucher mit schreibbarem Status
/shutdown Setzt Raum in Shutdownmodus (s.u.) Beliebig
/toggle/id Schaltet Verbraucher von An → Aus bzw. Aus → An Beliebig
/unshutdown Setzt Raum in Nicht-Shutdownmodus (s.u.) Beliebig

Angeschlossene Geräte

Die genaue Zuordnung zwischen Kabel / GPIO-Pin und Gerät ist auf donationprint und feedback dokumentiert.

Gerät Steuerung
Außenbeleuchtung (Röhre über Tür) Automatik: Nicht Shutdown && Nacht
LEDS im Schaufenster Automatik: Nacht (+90 Minuten Dämmerung)
LED-Leiste über Chaosdorflogo, Schleuse Automatik: Nicht Shutdown && Nacht (+90 Minuten Dämmerung)
RGB-LED-Leiste, Lounge Manuell: Blinkencontrol
Weißer LED-Strahler, Lounge Manuell
Grüner LED-Strahler, Lounge Manuell
Luft-/Wasserpumpe Windowgarden, Lounge Manuell an, automatisch nach 20 Minuten aus
Kaltweiße LED-Platte, Treppe Manuell
4x7Segment-Anzeige, Lounge Automatik: Uhrzeit
Printer/HP2100 Manuell an, automatisch nach 20 Minuten aus
Blassblaue LED-Röhre, Hackcenter Manuell
Lampe im eMac-Gehäuse, Hackcenter Manuell
LED-Leuchten-Reihe, Hackcenter Manuell
Blauer LED-Streifen, Hackcenter Manuell
Warmweiße LED-Spots, Hackcenter Manuell
Helle weiße Doppelröhre, Hackcenter Manuell
Verstärker, Serverraum Manuell: Verstärkerschaltung

Die Automatik der Außenbeleuchtung lässt sich durch klick auf die Lampe an / aus schalten. Ausschalten passiert sofort, Einschalten dauert 1 bis 6 Minuten. Im Gegensatz zu anderen Aktionen ändert das auch nichts am Dorf-Shutdownstatus. Im Webinterface steht "A" für Automatik, "X" für keine Automatik.

Was weiterhin angezeigt wird:

  • Drucker (readonly, per ping, alle 5 Minuten aktualisiert)
  • WLAN-APs (readonly, per ping, alle 5 Minuten aktualisiert)
  • Server (readonly, per ping, alle 5 Minuten aktualisiert)
  • Türstatus (readonly, alle 5 Minuten aktualisiert)

Shutdown-Konzept

Per Default (z.B. nach einem Stromausfall) befindet sich das Dorf im Shutdown.

Shutdown einschalten

  • Klick auf Shutdown in dorfmap oder dreisekündiges Drücken des schwarzen Tasters am Spendenterminal (bis die grüne LED ausgeht)
  • Beleuchtung im Hackcenter geht sofort aus
  • Beleuchtung in der Schleuse (Logo und über der Tür) geht nach 1 bis 6 Minuten aus
  • Beleuchtung im Schaufenster leuchtet weiterhin, falls Nacht ist

Shutdown ausschalten

  • Klick auf Unshutdown oder irgendeine steuerbare Lampe in dorfmap oder dreisekündiges Drücken des schwarzen Tasters am Spendenterminal (bis die grüne LED angeht)
  • Falls eine Lampe angeklickt wurde, wird diese eingeschaltet
  • Beleuchtung in der Schleuse (Logo und über der Tür) geht nach 1 bis 6 Minuten an, falls Nacht ist; alternativ sobald die Sonne untergegangen ist