Status Fensterkontakt via Netcat senden

Begonnen von ukatz, 30 August 2016, 19:11:55

Vorheriges Thema - Nächstes Thema

ukatz

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

immi


Wernieman

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.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html