Space-Status: Unterschied zwischen den Versionen
K (äh. Da gings ja garnicht um ein Spacegate. *mehr Kaffee hol und anderen Absatz verschieb*) |
(Wir haben keine Corona-Regeln mehr) |
||
(35 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Projekt | {{Projekt | ||
− | |verantwortlich=[[Benutzer:Daniel Bohrer|Daniel Bohrer]] | + | |verantwortlich=[[Benutzer:Daniel Bohrer|Daniel Bohrer]], teilweise auch {{Benutzer|comawill}} |
|status=aktiv | |status=aktiv | ||
|beschreibung=Anzeige/Bereitstellung des Space-Öffnungsstatus | |beschreibung=Anzeige/Bereitstellung des Space-Öffnungsstatus | ||
+ | |source=[https://github.com/stratum0/StratumOpenCloseMonitor GitHub] | ||
}} | }} | ||
== Idee == | == Idee == | ||
− | Da nicht alle Mitglieder einen Schlüssel haben | + | 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 | + | 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). |
+ | |||
+ | 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: | ||
+ | * 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: | ||
+ | ** <s>http://spaceapi-stats.n39.eu/#stratum0 (Hackerspace-übergreifend)</s> (down? [[Benutzer:Daniel Bohrer|Daniel Bohrer]] 16:35, 17. Aug. 2020 (CEST)) | ||
+ | ** https://spaceapi.vanheusden.com/show.php?id=Stratum+0 (Heatmaps, Hackerspace-übergreifend) | ||
+ | ** http://stratum0.wlnbrg.de/stats/stats.html (nur von uns, aber inkl. Highscore) | ||
=== API === | === 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 [http://spaceapi.io SpaceAPI] wird unterstützt. | ||
+ | Die entsprechende Endpoint-URL ist https://status.stratum0.org/status.json. | ||
− | + | === SpaceVoice === | |
+ | {{Notiz|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 [[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> | |
=== Systemdokumentation === | === Systemdokumentation === | ||
− | |||
− | Plugin für | + | 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. |
+ | |||
+ | * [[:Media:Open-close-Monitor 2012-08-06.pdf|Vortragsfolien]] | ||
+ | |||
+ | 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. | ||
== Apps == | == Apps == | ||
Zeile 27: | Zeile 51: | ||
* [[StratumsphereStatusWidget]] für Android | * [[StratumsphereStatusWidget]] für Android | ||
* [[StratumsphereTrayIcon]] für Linux, Windows und Mac OS X | * [[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. | ||
− | == | + | == Elektronische Türöffnung == |
− | + | Eine elektronische Türöffnung wird im Artikel [[StratumKey]] geplant/umgesetzt. | |
− | * | + | == To Do == |
− | + | * <s>[[EVENTDISTR]]-Pakete senden</s> done in [https://github.com/stratum0/StratumOpenCloseMonitor/commit/2cf610db37da4c62963b00520352a489e699de4a 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? | |
− | * | + | * <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 |
− | + | * <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 | |
− | |||
== Ähnliche Systeme == | == Ähnliche Systeme == |
Aktuelle Version vom 10. Juli 2023, 18:38 Uhr
Space-Status | |
---|---|
Beschreibung: | Anzeige/Bereitstellung des Space-Öffnungsstatus |
Kontakt: | Daniel Bohrer, teilweise auch comawill |
Status: | aktiv (Was heißt das?) |
Quellcode: | GitHub |
Inhaltsverzeichnis
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:
- im Topic des IRC-Channels
- hier im Wiki links in der Seitenleiste
an der Tür oben am Space 1.0 auf einem 3.5"-Display- 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)(down? Daniel Bohrer 16:35, 17. Aug. 2020 (CEST))- https://spaceapi.vanheusden.com/show.php?id=Stratum+0 (Heatmaps, Hackerspace-übergreifend)
- http://stratum0.wlnbrg.de/stats/stats.html (nur von uns, aber inkl. Highscore)
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
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 ICMP-Pings oder 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 Daniel Bohrer melden, der sie dann im System hinzufügt. Die Anwesenheitserkennung per MAC-Adresse basiert auf 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.
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:
- StratumsphereStatusWidget für Android
- StratumsphereTrayIcon für Linux, Windows und Mac OS X
- indirekt über die SpaceAPI werden auch entsprechende Apps unterstützt.
Elektronische Türöffnung
Eine elektronische Türöffnung wird im Artikel StratumKey geplant/umgesetzt.
To Do
EVENTDISTR-Pakete sendendone 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 werfendonenmap findet manchmal nicht alle pingbaren MAC-Adressen… Timeout erhöhen? nmap nachbauen für mehr Flexibilität?durch eigene Timeouts und Cachesbehobenverbessert- Rewrite mit Python Twisted für saubere API auch nach innen, mehr Flexibilität und einfachere Wartbarkeit
Ähnliche Systeme
- Der shack open/close monitor aus Stuttgart
- Status-Bot, Bochum --Sensorpixel 17:54, 13. Jan. 2012 (UTC)