Pinpad v1/Raumstatus: Unterschied zwischen den Versionen

Aus RaumZeitLabor Wiki
Wechseln zu: Navigation, Suche
K (Debugging)
K (Debugging)
Zeile 52: Zeile 52:
 
<pre>
 
<pre>
 
cd /root; screen -dmS status ./tuerstatusd.pl
 
cd /root; screen -dmS status ./tuerstatusd.pl
 +
</pre>
 +
 +
Die Ausgabe vom tuerstatusd.pl sollte folgendermaßen aussehen:
 +
 +
<pre>
 +
11/25/2013 01:32:32 AM - requested status
 +
11/25/2013 01:32:32 AM - got data
 +
11/25/2013 01:32:32 AM - payload = $VAR1 = 'SRAW ';
 +
11/25/2013 01:32:32 AM - raw status bytes = 0, 0, 2, 0
 +
11/25/2013 01:32:32 AM - got data
 +
11/25/2013 01:32:32 AM - payload = $VAR1 = 'STAT lock';
 +
11/25/2013 01:32:32 AM - received status: lock
 +
11/25/2013 01:32:32 AM - new status: 0
 +
11/25/2013 01:32:32 AM - pushing to jail
 +
11/25/2013 01:32:32 AM - updating in rrd
 +
11/25/2013 01:32:32 AM - got data
 +
11/25/2013 01:32:32 AM - payload = $VAR1 = "X \x{84}\x{cf}Y";
 +
11/25/2013 01:32:33 AM - reply from server: $VAR1 = '{"update":"ok"}';
 
</pre>
 
</pre>
  

Version vom 25. November 2013, 02:32 Uhr

     
Raumstatus

Release status: stable [box doku]

Status-maemo-widget.png
Beschreibung RZL offen?
Autor(en)  sECuRE
Verantwortliche(r)  Else

Nutzung

Ob der Raum gerade offen ist (sprich ob die Tür geöffnet ist) wird jede Minute ermittelt und im Web zur Verfügung gestellt. Somit sollte niemand vor verschlossener Tür stehen, wenn er Lust hat, spontan ins RaumZeitLabor zu kommen. Der Status kann entweder via Web (auf http://www.raumzeitlabor.de (oben rechts)), IRC oder via Widget auf deinem Mobiltelefon abgerufen werden.

IRC

In den Räumen #oqlt und #raumzeitlabor (hackint) kann der Status via !!raum abgefragt werden. Zusätzlich können über '!weristda' die anwesenden RaumZeitLaboranten ausgegeben werden. Voraussetzung hierfür ist, dass diese in der BenutzerDB die MAC-Adressen ihrer Netzwerkadapter hinterlegt haben. Mit !stream wird der aktuell über den MPD abgespielte Musiktitel angezeigt.

Mobile Webapp

http://status.raumzeitlabor.de/mobile.php (iPhone optimiert)

Es gibt auch ein Android-Widget.

Web 2.0 Zeugs

Der Status wird auf der Webseite angezeigt: [1] (rechts oben). Ein Graph mit der Wochenstatistik ist unter [2] verfügbar.

Der Status wird auch auf Identi.ca und auf Twitter veröffentlicht. Der Account lautet bei beiden Netzwerken RaumZeitStatus

RSS

Identi.ca hat einen öffentlichen RSS-Feed über welchen der Status auch ohne Identi.ca Account abgefragt werden kann. Den Feed gibts unter http://identi.ca/api/statuses/user_timeline/191025.rss


Funktionsweise

Funktionsweise

Die Scripts in firebox/ holen vom Etherrape den Raumstatus und mithilfe der Leases-Datei des DHCP-Servers und eines Broadcast-Pings die im Netz befindlichen Geräte, protokollieren beides jeweils in einer RRD-Datei und laden anschließend einen generierten Graphen sowie full.json und simple.txt via WebDAV auf status.raumzeitlabor.de.

Debugging

  • Raumstatus auf ? oder orange? Auf der firebox folgendes starten (oder in dem infra-screen abschießen und neu starten):
cd /root; screen -dmS status ./tuerstatusd.pl

Die Ausgabe vom tuerstatusd.pl sollte folgendermaßen aussehen:

11/25/2013 01:32:32 AM - requested status
11/25/2013 01:32:32 AM - got data
11/25/2013 01:32:32 AM - payload = $VAR1 = 'SRAW ';
11/25/2013 01:32:32 AM - raw status bytes = 0, 0, 2, 0
11/25/2013 01:32:32 AM - got data
11/25/2013 01:32:32 AM - payload = $VAR1 = 'STAT lock';
11/25/2013 01:32:32 AM - received status: lock
11/25/2013 01:32:32 AM - new status: 0
11/25/2013 01:32:32 AM - pushing to jail
11/25/2013 01:32:32 AM - updating in rrd
11/25/2013 01:32:32 AM - got data
11/25/2013 01:32:32 AM - payload = $VAR1 = "X \x{84}\x{cf}Y";
11/25/2013 01:32:33 AM - reply from server: $VAR1 = '{"update":"ok"}';
  • Keine Mitglieder werden angezeigt?
while true; do ./unifi-check.pl; sleep 10; done

Links für Entwickler (API)

Quelltext

Mobile Devices

Social Networks/Web 2.0

Setup

  • RRD-Datenbanken erstellen:
rrdtool create status-tuer.rrd -s 60 DS:tuer:GAUGE:120:U:U RRA:LAST:0:1:10080
rrdtool create status-geraete.rrd -s 60 DS:geraete:GAUGE:120:U:U RRA:LAST:0:1:10080
  • MySQL-Datenbank einrichten:
CREATE TABLE leases (
  `ip` varchar(39) NOT NULL,
  `mac` varchar(17) NOT NULL,
  `ipv4_reachable` tinyint(1) NOT NULL,
  `ipv6_reachable` tinyint(1) NOT NULL,
  `hostname` text,
   PRIMARY KEY  (`ip`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
  • davconfig.pm und sqlconfig.pm befüllen
  • Etherrape anschließen
  • raumstatus-meta.sh als Cronjob einrichten
  • WebDAV einrichten:
<Location /update/>
  Dav On
  AuthType Digest
  AuthName "update"
  AuthDigestDomain /update/ http://status.raumzeitlabor.de/update/
  AuthDigestProvider file
  AuthUserFile /data/www/status.raumzeitlabor.de/conf/digest-update
  Require valid-user
</Location>
  • status-unreachable.pl als Cronjob einrichten

Technische Doku

Auf dem Patchpanel ist der Kontakt an Blau-weiß/Blau (aufgelegt auf Pin 4-5) angeschlossen. Die restlichen Adern sind nicht belegt.


Beteiligte/Danksagungen

  • sECuRE
  • AlexanderB (Türmodifikation)
  • silsha (ursprünglicher Code)
  • Unicorn (Android-Widget)
  • Scytale (Zeitweises Hosting)
  • rami (XMPP-Bot)
  • Danke an alle Tester/Nutzer!