The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
{{Project | {{Project | ||
|name=Lichtsteuerung | |name=Lichtsteuerung | ||
|description= | |description=blinkenlichten | ||
|project category=Hardware | |project category=Hardware | ||
|image=dorfmap.png | |image=dorfmap.png | ||
|status= | |status=beta | ||
|people= | |people=derf | ||
|source=https://github.com/ | |source=https://github.com/derf/dorfmap{{!}}github | ||
}} | }} | ||
Benutze <tt>Beleuchtung</tt> mit <tt>Hackspace</tt>. | |||
== | == Hardware == | ||
[[File:Optokopplerboard1.png|Optokoppler|200x200px|framed|right]] | |||
[[File:Chaosdoorlicht.png|Außenbeleuchtung|200x200px|framed|right]] | |||
Kernstück des Ganzen ist aktuell {{H|feedback}}, ein Raspberry Pi. Jeder GPIO-Pin schaltet einen Verbraucher. Schaltsignale kommen mit 3V3 (maximale Last 3mA ja Pin) aus {{H|feedback}} und schalten über Optokoppler + Transistor 12V (werden vom Türnetzteil abgegriffen). Die 12V gehen über diverse Kabel zu den jeweiligen Verbrauchen und schalten sie entweder direkt (bei Kleinverbrauchern in der Schleuse) oder über 230V-Relais. | |||
=== avrshift === | |||
Es gibt nur eine begrenzte Zahl an GPIO-Pins, die teilweise auch für andere Dinge gebraucht werden. Da auch normale Schieberegister schon vier Inputpins brauchen, wird ein AVR mit zwei Eingabepins als Software-Schieberegister verwendet. Die [https://github.com/derf/dorfmap/tree/master/avrshift Firmware] und [https://github.com/derf/dorfmap/tree/master/avrshiftd Software] zum ansteuern liegen jeweils auf Github. Das Protokoll ist an I²C angelehnt und sieht folgendermaßen aus: | |||
{| class="wikitable" | |||
! CLOCK !! DATA !! Aktion | |||
|- | |||
| ↑ || <tt>X</tt> || Bit <tt>X</tt> von rechts (als Least Significant Bit) ins Register schieben | |||
|- | |||
| ↓ || 1 || Aktuelle Registerwerte auf Ausgänge übernehmen | |||
|- | |||
| ↓ || 0 || ''Keine'' | |||
|} | |||
== Software == | == Software == | ||
* [https://github.com/ | * [https://github.com/derf/dorfmap dorfmap] | ||
* [https://github.com/chaosdorf/ | * [https://github.com/chaosdorf/outdoor-light-control outdoor-light-control] | ||
=== Automatik === | === 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 [https://github.com/chaosdorf/ | 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/chaosdorf/outdoor-light-control/blob/master/bin/is_sundown berechnet]. Per [https://github.com/chaosdorf/outdoor-light-control/blob/master/etc/cron cronjob] wird alle 6 Minuten überprüft, ob Nacht ist oder nicht, und entsprechend die Beleuchtung geschaltet. | ||
=== Manuell === | === Manuell === | ||
Grundlage ist ein [https://github.com/ | 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. | ||
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 43: | Line 50: | ||
=== API === | === API === | ||
Es existiert eine ( | Es existiert eine API, unterstützt wird sowohl ein einfaches Textformat (z.B. für Shellskripte) als auch JSON. Für Textformat <tt>.txt</tt> an Anfragen anhängen (oder <tt>curl -H 'Accept: text/plain'</tt> benutzen), für JSON entsprechend <tt>.json</tt> bzw. <tt>application/json</tt>. | ||
{| class="wikitable" | {| class="wikitable" | ||
! Request | ! Request !! Aktion !! Rückgabe | ||
! | |||
! Aktion | |||
|- | |- | ||
| | | <tt>/get/'''id'''</tt> || Keine || Aktueller Status des Verbrauchers (1 == an, 0 == aus, -1 == unbekannt) | ||
|- | |- | ||
| | | <tt>/off/'''id'''</tt> || Schaltet Verbraucher aus || Beliebig | ||
| | |||
|- | |- | ||
| | | <tt>/on/'''id'''</tt> || Schaltet Verbraucher an || Beliebig | ||
| | |||
|- | |- | ||
| | | <tt>/list/readables</tt> || Keine || Liste aller Verbraucher mit auslesbarem Status | ||
| | |||
| | |||
|- | |- | ||
| | | <tt>/list/writables</tt> || Keine || Liste aller Verbraucher mit schreibbarem Status | ||
| | |||
| | |||
|- | |- | ||
| | | <tt>/shutdown</tt> || Setzt Raum in Shutdownmodus (s.u.) || Beliebig | ||
| | |||
| | |||
|- | |- | ||
| | | <tt>/toggle/'''id'''</tt> || Schaltet Verbraucher von An → Aus bzw. Aus → An | ||
| | |||
| | |||
|- | |- | ||
| | | <tt>/unshutdown</tt> || Setzt Raum in Nicht-Shutdownmodus (s.u.) || Beliebig | ||
| | |||
| | |||
| | |||
| | |||
|- | |- | ||
|} | |} | ||
== Angeschlossene Geräte == | == Angeschlossene Geräte == | ||
{| class="wikitable" | {| class="wikitable" | ||
! Gerät !! Steuerung | ! Gerät !! Steuerung | ||
|- | |- | ||
| Außenbeleuchtung (Röhre über Tür) || Automatik: Nicht Shutdown && Nacht | | Außenbeleuchtung (Röhre über Tür) || Automatik: Nicht Shutdown && Nacht | ||
|- | |- | ||
| LEDS im Schaufenster || Automatik: Nacht (+ | | LEDS im Schaufenster || Automatik: Nacht (+90 Minuten Dämmerung) | ||
|- | |- | ||
| LED-Leiste über Chaosdorflogo, Schleuse || Automatik: Nicht Shutdown && Nacht (+90 Minuten Dämmerung) | | LED-Leiste über Chaosdorflogo, Schleuse || Automatik: Nicht Shutdown && Nacht (+90 Minuten Dämmerung) | ||
|- | |- | ||
| | | Blassblaue LED-Röhre, Hackcenter || Manuell | ||
|- | |- | ||
| | | Lampe im eMac-Gehäuse, Hackcenter || Manuell | ||
|- | |- | ||
| | | LED-Leuchten-Reihe, Hackcenter || Manuell | ||
|- | |- | ||
| | | Blauer LED-Streifen, Hackcenter || Manuell | ||
|} | |} | ||
Was weiterhin angezeigt wird: | Was weiterhin angezeigt wird: | ||
* Drucker (readonly, per ping, alle 5 Minuten aktualisiert) | |||
* WLAN-APs (readonly, per ping, alle 5 Minuten aktualisiert) | * WLAN-APs (readonly, per ping, alle 5 Minuten aktualisiert) | ||
* Server | * Server (readonly, per ping, alle 5 Minuten aktualisiert) | ||
* Türstatus (readonly, alle 5 Minuten aktualisiert) | |||
== Shutdown-Konzept == | == Shutdown-Konzept == | ||
Per Default (z.B. nach einem Stromausfall) befindet sich das Dorf im Shutdown. | |||
Per Default (z.B. nach einem Stromausfall) befindet sich das Dorf im Shutdown | |||
=== Shutdown einschalten === | === Shutdown einschalten === | ||
* Klick auf | * Klick auf Shutdown in [http://dorfmap/ dorfmap] | ||
* Beleuchtung im Hackcenter geht sofort aus | |||
* Beleuchtung in der Schleuse (Logo und über der Tür) geht nach 1 bis 6 Minuten 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 | * Beleuchtung im Schaufenster leuchtet weiterhin, falls Nacht ist | ||
=== Shutdown ausschalten | === Shutdown ausschalten === | ||
* Klick auf | * Klick auf Unshutdown oder irgendeine steuerbare Lampe in [http://dorfmap/ dorfmap] | ||
* Falls eine Lampe angeklickt wurde, wird diese eingeschaltet | * 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 | * 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 | ||