Den Feldern kommt dabei folgende Bedeutung zu:
* '''Proto ID''': String, der das genaue verwendete Protokoll beschreibt. Zunächst ist nur der String "''EVENTDISTRv1''" erlaubt!
* '''Event name''': Name des Events. Maximal 10 Zeichen.
* '''Event type''': Der Typ des Events. Gibt an, was genau Auslöser des Events war. Erlaubte Eigenschaften sind:
** ''RISING''
** ''FALLING''
Der Datenteil des UDP-Paketes darf eine maximale Länge von 100 Byte nicht überschreiten!
[[Datei:Beispiel UDP-Paket.jpg|thumb|Beispielhaftes UDP-Paket]]
== Fortschritt ==
[x] netIO kann Events senden.
[x] netIO kann Events emfpangen.
[x] Es gibt eine elektrische Schnittstelle, so dass ein netIO mitbekommt, wenn es klingelt.
[x] Netzwerkanbindung im Flur (z.B. über WLAN auf LAN Brücke)
[x] Eine Lampe für das empfangene netIO Eine akustische Klingel zum Klingeln.
[x] Eine elektrische Schnittstelle zwischen netIO und Lampe
[x] Es soll aus dem Frickelraum möglich sein, den Türöffner zu betätigen.
--> [x] Einsetzen eines Tasters im Frickelraum incl. absetzen des entsprechenden Events
--> [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 ^^)
[x] Es wurde gewünscht die Klingel etwas leiser bzw. weniger störend zu machen.
[ ] Eventuell sollte man die Klingellautstärke an die Raumlautstärke anpassen.
== Ereignisse und Reaktionen ==
=== Ereignisse ===
* '''DingDong'''
** Auf netIO an der Tür. Wird gesendet, so lang geklingelt wird. (RISING und FALLING)
=== 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]]
== Anwendungen ==
=== pyEventdistr ===
[https://github.com/stratum0/pyEventdistr pyEventdistr] hat die Skripte s0ring, um Klingelgeräusche zu erzeugen (use reasonably!), und s0open, um die Tür unten zu öffnen.
=== Java-Implementierung ===
Java-Klasse, mit der UDP-Events gesendet und empfangen werden können.
* Broadcast für den Space: 192.168.179.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 ===
import socket as sock
import time
stop_command = b"EVENTDISTRv1;DoorUnten=RISING"
start_command = b"EVENTDISTRv1;DoorUnten=FALLING"
ip = "192.168.179.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()
[[Kategorie:Infrastruktur]]