Ankündigung

Einklappen

Nicht vergessen: Das KNX-UF-Symposium by eib-tech in München am 3. November 2017!

Mehr anzeigen
Weniger anzeigen

Hilfe mit UDP

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Hilfe mit UDP

    Hallo zusammen!

    Ich komme irgendwie nicht mehr weiter.
    Hintergrund: Ich möchte wenn es klingelt mein Visu-Tablet mittels tasker aufwecken, einen Gong abspielen etc.
    Umgekehrt möchte ich vom Tablet über UDP ebenfalls ans WG "antworten".

    Ich habe mich dem denon plugin auf github angelehnt.
    1) Am WG eine Socketverbindung eingerichtet, siehe Screenshot 1
    2) plugin soweit abgespeckt, dass nur eine Verbindung geöffnet wird und ein Telegramm abgesetzt wird (zu testzwecke zyklisch bei jedem Aufruf).

    Soweit funktioniert das plugin auch und ich sehe am Tablet in der UDP Sender/Receiver App die Nachricht.

    Was aber nicht klappt, ist das empfangen einer UDP Nachricht am WG.
    Sende ich ein UDP-Telegramm an die IP des WG mit Port 9761, wird zwar das Plugin über das socket-subscribe aufgerufen, das Plugin läuft aber dann in einen Timeout des den wiregated Prozesses!!! => Screenshot 2

    Ich muss gestehen, dass mit die Parameter des Sockets nicht klar sind (habe ich vom denon plugin kopiert), allerdings habe ich 2x udp-connect gewählt.

    Hat jemand eine Idee / ein paar Tips?

    Danke
    Robert

    Hier noch das Plugin:

    Code:
    my $Klingel_ga = "5/x/x";           # Binaereingang Status DPT1
    
    my $socknum = 119; # Eindeutige Nummer des Sockets +1
    my $send_ip = "192.168.1.5"; # Sendeport (UDP, siehe in Socket-Einstellungen)
    my $send_port = "9760"; # Sendeport (UDP, siehe in Socket-Einstellungen)
    my $recv_ip = "192.168.1.101"; # Empfangsport (UDP, siehe in Socket-Einstellungen)
    my $recv_port = "9761"; # Empfangsport (UDP, siehe in Socket-Einstellungen)
    
    ######################
    ##ENDE Einstellungen##
    ######################
    
    $plugin_info{$plugname.'_cycle'} = 60;
    # Zyklischer Aufruf nach restart und alle 600 sek.
    
    if (!$socket[$socknum]) { # socket erstellen
            $socket[$socknum] = IO::Socket::INET->new(LocalPort => $recv_port,
                                      Proto => "udp",
                                      LocalAddr => $recv_ip,
                                      PeerPort  => $send_port,
                                      PeerAddr  => $send_ip,
                                      ReuseAddr => 1
                                       )
        or return ("open of $recv_ip : $recv_port failed: $!");
    
        $socksel->add($socket[$socknum]); # add socket to select
    
        $plugin_socket_subscribe{$socket[$socknum]} = $plugname; # subscribe plugin
        return "opened Socket $socknum";
    }
    my $command = "TestWG_Zyklisch";
    syswrite($socket[$socknum], $command);
    
    return;
    Angehängte Dateien
    Zuletzt geändert von Robert_Mini; 12.09.2017, 21:38.
Lädt...
X