X-Git-Url: https://git.rohieb.name/stratum0-wiki.git/blobdiff_plain/922c4b672eed3e00d0e45adf7ec77b434afbf831..e2a685994360aa7eec48208aabadbbc64df84cfd:/Doorbell_Extender.mw?ds=sidebyside diff --git a/Doorbell_Extender.mw b/Doorbell_Extender.mw index 2ab94cc0a..d7e4eedac 100644 --- a/Doorbell_Extender.mw +++ b/Doorbell_Extender.mw @@ -13,7 +13,7 @@ Zusätzlich scheint es sinnvoll nicht nur die Information einer Türklingel, son * Passiert auf einer der beiden Leitungen ein Event, wird dieses per IP Broadcast über Ethernet Broadcast und ein UDP auf einem lustigen Port ins LAN geblasen. * Dort können beliebige Slaves mithören und das anzeigen. * Im Frickelraum gibt es dann ein weiteres netIO, dass auf diese Broadcasts wartet und diese, wenn sie eintreten, visualisiert. -* Ist es möglich einen befehl in der art von "leuchte 30 sec." zu geben? --[[Benutzer:Matthis|Matthis]] 15:15, 18. Okt. 2012 (CEST) +* Ist es möglich einen Befehl in der Art von "leuchte 30 sec." zu geben? --[[Benutzer:Matthis|Matthis]] 15:15, 18. Okt. 2012 (CEST) ** Ja, ist möglich. Das Quell-Gerät sagt nur: Das Event ist passiert. Wie die anderen Geräte reagieren, kann auf denen jeweils festlegen. Eine Zeit ist dabei auf jeden Fall schon vorgesehen. --[[Benutzer:Chrissi^|Chrissi^]] 15:28, 18. Okt. 2012 (CEST) == Systemarchitektur == @@ -26,7 +26,7 @@ Auf Client-netIOs können Events im LAN lokale Aktionen zugeordnet werden. Solch === UDP-Pakete === :''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: +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: ;= Den Feldern kommt dabei folgende Bedeutung zu: * '''Proto ID''': String, der das genaue verwendete Protokoll beschreibt. Zunächst ist nur der String "''EVENTDISTRv1''" erlaubt! @@ -64,13 +64,20 @@ Der Datenteil des UDP-Paketes darf eine maximale Länge von 100 Byte nicht über == 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]] + +Datei:2012-10-23 19.56.12.jpg|Geschlossene Klingel-Box +Datei:2012-10-23 19.56.32.jpg|Geöffnete Klingel-Box +Datei:2012-10-23 19.57.59.jpg|netIO im Flur + -== Demonstrator-Anwendung == +== 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.178.255 +* 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] @@ -82,7 +89,7 @@ import time stop_command = b"EVENTDISTRv1;DoorUnten=RISING" start_command = b"EVENTDISTRv1;DoorUnten=FALLING" -ip = "192.168.178.255" +ip = "192.168.179.255" port = 31337 s = sock.socket(sock.AF_INET, sock.SOCK_DGRAM) @@ -92,3 +99,6 @@ time.sleep(3) s.sendto(stop_command,(ip,port)) s.close() + + +[[Kategorie:Infrastruktur]]