+todo-liste
[stratum0-wiki.git] / Doorbell_Extender.mw
index f92c2aa..67e26e6 100644 (file)
@@ -1,4 +1,4 @@
-{{Projekt|verantwortlich=Matthis|status=aktiv|beschreibung=Verlängerung der Türklingel, sowie des Türöffners in den Frickelraum|bild=|bildbeschreibung=|interessenten=[[Benutzer:Chrissi^|Chrissi^]]|source=[http://svn.tinyhost.de/stratum0/doorbell/ svn.tinyhost.de]|lizenz=netIO Firmware: GNU GPL|download=|version=}}
+{{Projekt|verantwortlich=Matthis|status=aktiv|beschreibung=Verlängerung der Türklingel, sowie des Türöffners in den Frickelraum, geht aber gerade nicht richtig|bild=|bildbeschreibung=|interessenten=[[Benutzer:Chrissi^|Chrissi^]]|source=[http://svn.tinyhost.de/stratum0/doorbell/ svn.tinyhost.de]|lizenz=netIO Firmware: GNU GPL|download=|version=}}
 
 == Ziel: ==
 Oft sitzt man gemütlich im Frickelraum und hängt seinen Problemen nach. Und dann passiert es: ''Es klingelt, aber niemand bekommt es mit.''
@@ -24,7 +24,9 @@ Das sendende netIO überwacht die digitalen Eingänge 1 .. 4. Tritt an einem die
 Auf Client-netIOs können Events im LAN lokale Aktionen zugeordnet werden. Solche Aktionen können das toggeln eines Ausgangs, das Ein- oder Ausschalten eines Ausgangs, sowie das zeitgesteuerte Aktiveren eines Ausgangs sein.
 
 === UDP-Pakete: ===
-Doorbell-Extender Ereignisse werden per UDP als IP-Broadcast (Broadcast des lokalen Netzes) auf Port 1337 (''wir sind in einem Hackerspace; welcher Port auch sonst!) übertragen. Der Datenteil der Pakete hat dabei einen fixen Aufbau:
+:''siehe: [[EVENTDISTR]]''
+
+Doorbell-Extender Ereignisse werden per UDP als IP-Broadcast (Broadcast des lokalen Netzes) auf Port 31337 (''wir sind in einem Hackerspace; welcher Port auch sonst!) übertragen. Der Datenteil der Pakete hat dabei einen fixen Aufbau:
  <Proto ID>;<Event name>=<Event type>
 Den Feldern kommt dabei folgende Bedeutung zu:
 * '''Proto ID''': String, der das genaue verwendete Protokoll beschreibt. Zunächst ist nur der String "''EVENTDISTRv1''" erlaubt!
@@ -40,9 +42,14 @@ Der Datenteil des UDP-Paketes darf eine maximale Länge von 100 Byte nicht über
 [x] netIO kann Events senden. <br>
 [x] netIO kann Events emfpangen. <br>
 [x] Es gibt eine elektrische Schnittstelle, so dass ein netIO mitbekommt, wenn es klingelt. <br>
-[ ] Netzwerkanbindung im Flur (z.B. über WLAN auf LAN Brücke) <br>
-[ ] Eine Lampe für das empfangene netIO <br>
-[ ] Eine elektrische Schnittstelle zwischen netIO und Lampe <br>
+[x] Netzwerkanbindung im Flur (z.B. über WLAN auf LAN Brücke) <br>
+[x] <s>Eine Lampe für das empfangene netIO </s> Eine akustische Klingel zum Klingeln.<br>
+[x] Eine elektrische Schnittstelle zwischen netIO und Lampe <br>
+[x] Es soll aus dem Frickelraum möglich sein, den Türöffner zu betätigen.<br>
+--> [x] Einsetzen eines Tasters im Frickelraum incl. absetzen des entsprechenden Events <br>
+--> [x] Entgegennehmen des Events an der Tür und Weitergabe an den Türöffner. (Wahrscheinlich am Einfachsten parallel zum bestehenden Handy-Türöffner ^^)<br>
+[x] Es wurde gewünscht die Klingel etwas leiser bzw. weniger störend zu machen. <br>
+[ ] Eventuell sollte man die Klingellautstärke an die Raumlautstärke anpassen. <br>
 
 == Ereignisse und Reaktionen ==
 
@@ -51,6 +58,37 @@ Der Datenteil des UDP-Paketes darf eine maximale Länge von 100 Byte nicht über
 ** Auf netIO an der Tür. Wird gesendet, so lang geklingelt wird. (RISING und FALLING)
 
 
-=== Reaktionen ====
+=== Reaktionen ===
 * '''DingDong'''
 ** Auf netIO mit Lampe im Frickelraum. Ein Ausgang wird für 20 Sekunden eingeschaltet.
+
+
+== Fotos ==
+[[Datei:2012-10-23 19.56.12.jpg|thumb|Geschlossene Klingel-Box]]
+[[Datei:2012-10-23 19.56.32.jpg|thumb|Geöffnete Klingel-Box]]
+[[Datei:2012-10-23 19.57.59.jpg|thumb|netIO im Flur]]
+
+== Demonstrator-Anwendung ==
+Java-Klasse, mit der UDP-Events gesendet und empfangen werden können.
+* Broadcast für den Space: 192.168.178.255
+* Events: siehe weiter oben
+
+Verfügbar im [http://svn.tinyhost.de/stratum0/doorbell/trunk/UDP_SEND_workspace_%28Java%29/UDP-Send/src/doorbell/ SVN]
+
+=== kleines Python-Skript um die Tür unten zu öffnen ===
+<pre>
+import socket as sock
+import time
+
+stop_command = b"EVENTDISTRv1;DoorUnten=RISING"
+start_command = b"EVENTDISTRv1;DoorUnten=FALLING"
+ip = "192.168.178.255"
+port = 31337
+
+s = sock.socket(sock.AF_INET, sock.SOCK_DGRAM)
+s.setsockopt(sock.SOL_SOCKET,sock.SO_BROADCAST,1)
+s.sendto(start_command,(ip,port))
+time.sleep(3)
+s.sendto(stop_command,(ip,port))
+s.close()
+</pre>
This page took 0.022479 seconds and 4 git commands to generate.