UDP Port horchen blockiert FHEM

Begonnen von groeg, 29 Januar 2015, 20:28:49

Vorheriges Thema - Nächstes Thema

groeg

Hi,

ich habe mir für mein Projekt eine IRTrans Wlan Modul zugelegt. Das Gerät ist spitze. Ich kann Befehle über FHEM absetzten und das klappt auch.
Ich möchte aber auch ein IR Signal in FHEM auswerten können.
Bis jetzt habe ich versucht ein IO::SOCKET::INET zu öffnen. Leider wird dadurch FHEM komplett blockiert.
Ich suche eine möglichkeit ein UDP-Port dauerhaft im Hintergrund abzuhören und bei einen Datenempfang die empfangene Zeile auszuwerten.
Leider bin ich auch nicht ganz so fit in Perl.

Die Module mit einen TCP Socket habe ich mir schon mal angesehen. Da wird die Verbindung hergestellt. Daten abgefragt und wieder geschlossen.
Ich müsste aber für den IRTrans dauerhaft horchen auf einen eingehenden Befehl.

Vieleicht hat von euch schon jemand ein Script gebastelt wo das funktioniert?
Oder Tips wie ich das lösen kann.

justme1968

es gibt alle möglichem module bei denen die verbindung offen gehalten wird.

z.b. telnet, mailcheck, harmony, ...

das prinzip ist immer gleich. du musst das geöffnete socket in der selectlist registrieren. etwas so:      $hash->{FD}    = $conn->fileno();
      $hash->{CD}    = $conn;         # sysread / close won't work on fileno
      $selectlist{$name} = $hash;


die fhem event loop ruft dann die ReadFn deines modus auf sobald daten da sind. ohne das irgendetwas blockiert.

gruss
andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

groeg

hmmm

Ok habe mir die Module mal kurz angeschaut.
Werde darauf mal aufbauen und versuchen was zu basteln. (copy/paste Programmierung  :-\)

Danke.
Gruß Georg