Hallo Foren-Gemeinde
Ich habe ein Raspberry Pi mit dem entsprechenden Enocean-Modul. Angebunden sind vier Hoppe Fensterkontakte die den Status auf, gekippt und zu darstellen.
Aktuell parse ich intervallmäßig die FEHM-Webseite mit meinem Gira HomeServer nach diesen Informationen und setze darüber die Gruppenadressen in meinem KNX-System. Das funktioniert auch ganz gut.
Was mich stört ist, dass ich die Seite alle 30 Sekunden aktiv prüfen muss. So lange dauert es dann auch maximal bis eine Statusänderung von der Logik auf dem Homeserver weiterverarbeitet wird.
Ich würde gerne aktiv den Status bei Änderung via Netcat an den HomeServer senden.
Dazu habe ich bereits folgendes für die 99_util zusammengesucht:
sub send2HomeServer
{
my $room = "$_[0]";
my $state = "$_[1]";
system("echo Raum:$room Status:$state | nc 192.168.1.4 7016 & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null");
}
Ich übergebe quasi Raum und Status.
Aber wie kann ich nun diese Funktion bei Statusänderung aufrufen?
Das übersteigt leider mein FHEM wissen. Ich hoffe ihr könnt mir hier helfen.
Gruß
Ukatz
Zitat von: ukatz am 30 August 2016, 19:11:55
Aber wie kann ich nun diese Funktion bei Statusänderung aufrufen?
Ukatz
hi Ukatz
notify oder doif
http://fhem.de/commandref_DE.html#notify
http://fhem.de/commandref_DE.html#DOIF
immi
Und noch etwas:
system("echo Raum:$room Status:$state | nc 192.168.1.4 7016 & pid=$! sleep 1 kill $pid 2>/dev/null >/dev/null");
Da fehlen doch bestimmt ","?? und nc kennt auch einen "timeout", aus der man-page:
-w timeout
Connections which cannot be established or are idle timeout after
timeout seconds. The -w flag has no effect on the -l option,
i.e. nc will listen forever for a connection, with or without the
-w flag. The default is no timeout.