Space-Status: Unterschied zwischen den Versionen

Aus Stratum 0
Wechseln zu:Navigation, Suche
(Neue Widget-Version)
(SpaceVoice: kaputt.)
(35 dazwischenliegende Versionen von 8 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
{{Projekt
 +
|verantwortlich=[[Benutzer:Daniel Bohrer|Daniel Bohrer]], teilweise auch {{Benutzer|comawill}}
 +
|status=aktiv
 +
|beschreibung=Anzeige/Bereitstellung des Space-Öffnungsstatus
 +
|source=[https://github.com/stratum0/StratumOpenCloseMonitor GitHub]
 +
}}
 +
 
== Idee ==
 
== Idee ==
Da nicht alle Mitglieder einen Schlüssel haben können, wird an diversen Stellen angezeigt, ob der Space gerade offen ist.
+
Da nicht alle Mitglieder einen [[Schlüssel]] haben, wird an diversen Stellen angezeigt, ob der Space gerade offen ist.
 +
 
 +
== Regeln==
 +
Mit der Zeit haben sich [[Tür-Regeln|Benutzungsregeln]] herausgebildet. Bitte immer alles richtig machen.
  
 
== Momentane Situation ==
 
== Momentane Situation ==
Der Status kann im Moment nur per Hand aus dem [[IRC]] über die Befehle <tt>!open</tt>/<tt>!offen</tt> bzw. <tt>!close</tt>/<tt>!zu</tt> gesetzt werden. Die Befehle veranlassen unseren IRC-Bot [[ZombiePoet]], das Topic im IRC-Channel zu setzen (hier ist insbesondere wichtig, dass nach dem ersten und dem zweiten Vorkommen der Zeichenfolge <tt>||</tt> gesucht wird, und alles dazwischen durch den Status ersetzt wird). Die Grafik links in der Sidebar wird entsprechend aktualisiert.
+
Der Status kann im Moment per Hand aus dem [[IRC]] über die Befehle <tt>@auf</tt> bzw. <tt>@zu</tt> (alleine am Anfang einer Zeile) oder [[StratumsphereStatusWidget|Android-App]] gesetzt werden. Die Befehle veranlassen unseren IRC-Bot [[StratumGuardian]], das Topic im IRC-Channel zu setzen (hier ist insbesondere wichtig, dass nach dem ersten und dem zweiten Vorkommen der Zeichenfolge <tt>||</tt> gesucht wird, und alles dazwischen durch den Status ersetzt wird).
  
=== API ===
+
Das aktuelle (manipulationsanfällige) System soll in Zukunft durch einen Hardwareschalter zum Öffnen und Schließen im Space ersetzt werden, siehe [[/Hardware]].
Es gibt eine minimale [[Open/Close-Monitor/API|API]] über HTTP, um die maschinelle Verarbeitung zu erleichtern.
 
  
Für diejenigen, die nur kurz den Öffnungsstatus als Grafik sehen wollen, gibt es eine bookmarkbare Version ohne viel Wiki-Overhead: https://rohieb.name/stratum0/status.html
+
=== Anzeige ===
 +
Der Öffnungsstatus wird menschenlesbar auf 5 Minuten genau an folgenden Stellen angezeigt:
 +
* im Topic des [[IRC]]-Channels
 +
* hier im Wiki links in der Seitenleiste
 +
* <strike>an der Tür oben am Space 1.0 auf einem 3.5"-Display</strike>
 +
* als bookmarkbare Version ohne viel Wiki-Overhead: https://status.stratum0.org/status.html
 +
* als Statistik über die aggregierte Öffnungszeit:
 +
** http://spaceapi-stats.n39.eu/#stratum0 (Hackerspace-übergreifend)
 +
** http://stratum0.wlnbrg.de/stats/stats.html (nur von uns, aber inkl. Highscore)
  
Für die Statistik gibt es ein Archiv der bisherigen offen/zu-Befehle mit Timestamp: https://rohieb.name/stratum0/archive.txt
+
=== API ===
 +
Im Artikel [[Open/Close-Monitor/API]] wird die API beschrieben, über die der Status maschinell ausgelesen werden kann. Für die Statistik gibt es ein Archiv der bisherigen offen/zu-Befehle inkl. Timestamps: https://status.stratum0.org/archive.txt
  
=== Systemdokumentation ===
+
Die hackerspaceübergreifende [http://spaceapi.net SpaceAPI] wird unterstützt.
TODO:  
+
Die entsprechende Endpoint-URL ist https://status.stratum0.org/status.json.
  
Plugin für ZombiePoet ist [https://github.com/rohieb/StratumOpenCloseMonitor hier], das schreibt mod_rewrite-Config für Apache, Apache serviert status.png jeweils mit HTTP-302-Redirect auf closed.png oder open.png.
+
=== SpaceVoice ===
 +
{{Notiz|Diese Funktion ist gerade nicht mehr vorhanden und muss neu implementiert werden.}}
  
== Apps ==
+
Um die reale Welt in der virtuellen Welt abzubilden, bekommen im Space anwesende Entitäten im [[Chat|IRC-Channel]] das Voice-Flag (+v). <s>Das funktioniert auf Basis von {{Wikipedia|Internet Control Message Protocol|ICMP}}-Pings oder {{Wikipedia|mDNS}}-Hostnamen, die alle zwei Minuten im LAN detektiert werden. Um erkannt zu werden, müssen Entitäten eine oder mehrere ihrer MAC-Adressen oder mDNS-Hostnamen an [[Benutzer:Daniel Bohrer|Daniel Bohrer]] melden, der sie dann im System hinzufügt. Die Anwesenheitserkennung per MAC-Adresse basiert auf {{WP|nmap}} und funktioniert allerdings nur mit IPv4 (für IPv6 wäre ein Boradcast-Ping möglich) und nur bei manchen Geräten/manchmal/bei Vollmond (oder Kombinationen davon, more investigation needed), und die Erkennung per mDNS hat wegen langer Standard-Timeouts zur Folge gehabt, dass Entitäten bis zu einer Stunde nach dem Verlassen des Spaces noch Voice haben. Eine Kombination aus mDNS und Ping und eigenen Timeouts hat die Situation verbessert.</s>
=== Android-Widget ===
 
[[Datei:QR_StratumsphereStatusWidgetLatest.png|196px|thumb|right|Link auf die neueste Version]]
 
  
Es gibt ein Android-Widget, das den Öffnungsstatus des Space anzeigt. Das Widget aktualisiert sich stündlich sowie manuell beim Draufklicken und zeigt den Status durch seine Farbe an:
+
=== Systemdokumentation ===
  
* Rot: Space ist zu
+
Auf dem [[Plenum 2012-08-22]] gab es einen kurzen Vortrag über die Funktionsweise mit Beschreibung des aktuellen Stands und Ausblick für die Zukunft.
* Grün: Space ist offen
 
* Grau: Unbekannt (kein Netz, Server down, etc)
 
  
Das Widget kann [http://www.discarded-ideas.org/files/StratumsphereStatusWidget-1.0.3.apk hier] heruntergeladen werden.
+
* [[:Media:Open-close-Monitor 2012-08-06.pdf|Vortragsfolien]]
  
Der obige Link wird aktualisiert sobald es eine neue Version gibt. Der QR-Code rechts enthält einen Link der jeweils auf die [http://www.discarded-ideas.org/files/StratumsphereStatusWidget-latest.apk neueste Version] zeigt. Den [https://github.com/wansti/StratumsphereStatusWidget Source Code] gibt es auf GitHub (Lizenz: GPLv2 oder später).
+
tl;dr: Plugin für IRC-Bot ist [https://github.com/stratum0/StratumOpenCloseMonitor hier], das schreibt nginx-Config, nginx serviert status.png jeweils mit HTTP-302-Redirect auf closed.png oder open.png. Das ganze läuft auf einem Raspberry Pi im Space.
  
-- [[Benutzer:Wansti|Wansti]]
+
== Apps ==
 +
Es gibt mehrere Apps, um den Space-Status anzuzeigen:
 +
* [[StratumsphereStatusWidget]] für Android
 +
* [[StratumsphereTrayIcon]] für Linux, Windows und Mac OS X
 +
* indirekt über die SpaceAPI werden auch entsprechende [https://spacedirectory.org/pages/apps.html Apps] unterstützt.
  
Mit Dank an Silberwoelfin für die Inspiration:
+
== Elektronische Türöffnung ==
 +
Eine elektronische Türöffnung wird im Artikel [[StratumKey]] geplant/umgesetzt.
  
* (Android-)App zum Anzeigen, ob der Space geöffnet ist (Abfrage vom Webserver). Vllt. auch mit Funktion zum öffnen (einloggen im WLAN/Authentifizierung über ssh/...), je nachdem, wie das letztlich realisiert wird. --[[Benutzer:Silberwoelfin|Silberwoelfin]] 10:05, 19. Jan. 2012 (UTC)
+
== To Do ==
 
+
* <s>[[EVENTDISTR]]-Pakete senden</s> done in [https://github.com/stratum0/StratumOpenCloseMonitor/commit/2cf610db37da4c62963b00520352a489e699de4a 2cf610db]
=== Tray-Icon für Desktop-Betriebssysteme ===
+
* Rewrite des SpaceVoice-Teils, vollständig als Daemon/cronjob (im Moment im supybot-Plugin realisiert, hat da eigentlich nichts zu suchen.)
Es gibt auch eine Desktop-Applikation, die den Öffnungsstatus im System-Tray anzeigt und auf Linux und Windows funktionieren sollte.
+
* Aufmachen, wenn mindestens n Entitäten anwesend sind?
* Source: https://github.com/rohieb/StratumsphereTrayIcon
+
* <s>Space-Voice: mDNS hat langen Timeout, wenn Geräte sich nicht explizit abmelden. Möglicherweise zusätzlich pingen und bei fehlendem Ping Geräte aus der Liste werfen</s> done
* Betreuer: {{Benutzer|Daniel Bohrer}}
+
* <s>nmap findet manchmal nicht alle pingbaren MAC-Adressen… Timeout erhöhen? nmap nachbauen für mehr Flexibilität?</s> durch eigene Timeouts und Caches <s>behoben</s> verbessert
 
+
* Rewrite mit Python Twisted für saubere API auch nach innen, mehr Flexibilität und einfachere Wartbarkeit
* Ich habe mir mal erlaubt ein Binary für OS X zu bauen, aber noch dynamisch, man braucht also Qt4.x damit es läuft http://datatomb.de/~doommaster/StratumTrayIcon.zip --[[Benutzer:DooMMasteR|DooMMasteR]] 22:28, 11. Feb. 2012 (CET)
 
* Habe das mal auf github geforkt und ein bischen für Windows und OS X angepasst, pull request pending. Binaries unter http://tinyurl.com/72snocs (statisch gelinkt bzw. als app-bundle, braucht also kein separates Qt). Besteht Bedarf an einem universal binary für OS X? -- [[Benutzer:Bluebrother|Bluebrother]] 13:24, 12. Feb. 2012 (CET)
 
 
 
== Entwurf für eine automatisierte Lösung ==
 
Im einfachsten Fall: ein Atmel (Arduino?) mit Ethernet-Buchse an der Tür, der per Reed-Kontakt oder Taster prüft, ob die Tür verschlossen ist. Falls die Tür auf- oder abgeschlossen wird, wird ein (noch festzulegendes) Signal (HTTP-Request?) an den Webserver geschickt, der entsprechend den Status auf der Homepage aktualisiert. Entsprechend muss Authentifizierung geschehen, damit nicht jeder den Tür-Status auf der Homepage kaputt machen kann...
 
*Evtl. Raspberry Pi? Authentifizierung über ssh am Webserver (per pubkey) mit Skript zum Ändern des Türstatus (o.Ä.), dazu genug GPIOs um Reed-Kontakt und später Motor ansteuern zu können. Außerdem als zentrales Loggingsystem auf SD-Karte verwendbar. Einziges Problem ist das das Board noch nicht verfügbar ist :) --[[Benutzer:Emantor|Emantor]] 06:39, 12. Jan. 2012 (UTC)
 
 
 
* Evtl. [http://www.pollin.de/shop/dt/MTQ5OTgxOTk-/Bausaetze_Module/Bausaetze/Bausatz_AVR_NET_IO.html AVR-Netio], kostet ungelötet als Bausatz mit NIC 20 Euro. Dazu wäre es praktisch das [http://www.ethersex.de/index.php/Main_Page ethersex] darauf läuft. --[[Benutzer:Terminar|Terminar]] 10:11, 19. Jan. 2012 (UTC)
 
 
 
* Vielleicht was per 1-Wire? http://www.1-wire.de/1-Wire/Zubehoer-fuer-1-Wire/OEffnungsmelder-Aufmontage.html
 
  
 
== Ähnliche Systeme ==
 
== Ähnliche Systeme ==
Zeile 57: Zeile 67:
 
* [https://www.das-labor.org/wiki/Status-Bot Status-Bot], Bochum --[[Benutzer:Sensorpixel|Sensorpixel]] 17:54, 13. Jan. 2012 (UTC)
 
* [https://www.das-labor.org/wiki/Status-Bot Status-Bot], Bochum --[[Benutzer:Sensorpixel|Sensorpixel]] 17:54, 13. Jan. 2012 (UTC)
  
== Aussichten ==
+
[[Kategorie:Infrastruktur]]
Falls der Space sich hinreichend entwickelt hat, kann über weitergehende Maßnahmen nachgedacht werden. Im µCCC z.B. wird die Türschließung durch ein [https://wiki.muc.ccc.de/luftschleuse Zugangssystem per SSH] gesteuert.
 
 
 
=== Verbesserung der Klingel ===
 
…wenn wir grad schonmal am Klingelhacken sind. Im Chat kam der Vorschlag nach einer optischen Klingel (Blinken o.ä.). Alternativ, falls alle Spaceinsassen gerade schlafen:
 
 
 
[11:59:51] <rohieb> dann die sofas mit drahtgeflecht versehen und die klingel stromschläge draufgeben lassen?
 
[12:00:04] <tommie-lie> schon besser
 
[12:00:04] <neobechstein> :D
 
[12:00:06] <neobechstein> rohieb: +1
 
 
 
Alternativ wäre zu überlegen, ob man [[ZombiePoet]] beibringt, Klingelevents im IRC zu verkünden. Bzw, wenn an der Tür später eh ein µC/ARM oder ähnliches mit Netzwerk hängt, könnte man dort direkt einen IRC-Bot implementieren ;-) (ZombiePoet läuft ja auf einem externen Server, das würde dann nur noch eine Schicht mehr hinzufügen)
 
 
 
[[Kategorie:Projekte]]
 
[[Kategorie:Space]]
 

Version vom 13. Dezember 2017, 12:50 Uhr

Space-Status
Beschreibung: Anzeige/Bereitstellung des Space-Öffnungsstatus
Kontakt: Daniel Bohrer, teilweise auch comawill
Status: aktiv (Was heißt das?)
Quellcode: GitHub

Idee

Da nicht alle Mitglieder einen Schlüssel haben, wird an diversen Stellen angezeigt, ob der Space gerade offen ist.

Regeln

Mit der Zeit haben sich Benutzungsregeln herausgebildet. Bitte immer alles richtig machen.

Momentane Situation

Der Status kann im Moment per Hand aus dem IRC über die Befehle @auf bzw. @zu (alleine am Anfang einer Zeile) oder Android-App gesetzt werden. Die Befehle veranlassen unseren IRC-Bot StratumGuardian, das Topic im IRC-Channel zu setzen (hier ist insbesondere wichtig, dass nach dem ersten und dem zweiten Vorkommen der Zeichenfolge || gesucht wird, und alles dazwischen durch den Status ersetzt wird).

Das aktuelle (manipulationsanfällige) System soll in Zukunft durch einen Hardwareschalter zum Öffnen und Schließen im Space ersetzt werden, siehe /Hardware.

Anzeige

Der Öffnungsstatus wird menschenlesbar auf 5 Minuten genau an folgenden Stellen angezeigt:

API

Im Artikel Open/Close-Monitor/API wird die API beschrieben, über die der Status maschinell ausgelesen werden kann. Für die Statistik gibt es ein Archiv der bisherigen offen/zu-Befehle inkl. Timestamps: https://status.stratum0.org/archive.txt

Die hackerspaceübergreifende SpaceAPI wird unterstützt. Die entsprechende Endpoint-URL ist https://status.stratum0.org/status.json.

SpaceVoice

Hinweis:
Diese Funktion ist gerade nicht mehr vorhanden und muss neu implementiert werden.

Um die reale Welt in der virtuellen Welt abzubilden, bekommen im Space anwesende Entitäten im IRC-Channel das Voice-Flag (+v). Das funktioniert auf Basis von Wikipedia-W.svgICMP-Pings oder Wikipedia-W.svgmDNS-Hostnamen, die alle zwei Minuten im LAN detektiert werden. Um erkannt zu werden, müssen Entitäten eine oder mehrere ihrer MAC-Adressen oder mDNS-Hostnamen an Daniel Bohrer melden, der sie dann im System hinzufügt. Die Anwesenheitserkennung per MAC-Adresse basiert auf Wikipedia-W.svgnmap und funktioniert allerdings nur mit IPv4 (für IPv6 wäre ein Boradcast-Ping möglich) und nur bei manchen Geräten/manchmal/bei Vollmond (oder Kombinationen davon, more investigation needed), und die Erkennung per mDNS hat wegen langer Standard-Timeouts zur Folge gehabt, dass Entitäten bis zu einer Stunde nach dem Verlassen des Spaces noch Voice haben. Eine Kombination aus mDNS und Ping und eigenen Timeouts hat die Situation verbessert.

Systemdokumentation

Auf dem Plenum 2012-08-22 gab es einen kurzen Vortrag über die Funktionsweise mit Beschreibung des aktuellen Stands und Ausblick für die Zukunft.

tl;dr: Plugin für IRC-Bot ist hier, das schreibt nginx-Config, nginx serviert status.png jeweils mit HTTP-302-Redirect auf closed.png oder open.png. Das ganze läuft auf einem Raspberry Pi im Space.

Apps

Es gibt mehrere Apps, um den Space-Status anzuzeigen:

Elektronische Türöffnung

Eine elektronische Türöffnung wird im Artikel StratumKey geplant/umgesetzt.

To Do

  • EVENTDISTR-Pakete senden done in 2cf610db
  • Rewrite des SpaceVoice-Teils, vollständig als Daemon/cronjob (im Moment im supybot-Plugin realisiert, hat da eigentlich nichts zu suchen.)
  • Aufmachen, wenn mindestens n Entitäten anwesend sind?
  • Space-Voice: mDNS hat langen Timeout, wenn Geräte sich nicht explizit abmelden. Möglicherweise zusätzlich pingen und bei fehlendem Ping Geräte aus der Liste werfen done
  • nmap findet manchmal nicht alle pingbaren MAC-Adressen… Timeout erhöhen? nmap nachbauen für mehr Flexibilität? durch eigene Timeouts und Caches behoben verbessert
  • Rewrite mit Python Twisted für saubere API auch nach innen, mehr Flexibilität und einfachere Wartbarkeit

Ähnliche Systeme