Ankündigung

Einklappen
Keine Ankündigung bisher.

- √ - UDP-Versand - Wie gehts?

Einklappen
Dieses Thema ist geschlossen.
X
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [wiregate] - √ - UDP-Versand - Wie gehts?

    Ich denke/hoffe keinen Fehler gemacht zu haben, aber irgendwie will es nicht.

    Anbei meine Konfiguration. In den "Globale Einstellungen" hab ich die 192.168.2.255 als Broadcast für den UDP-Versand angegeben. Port habe ich bei 13001 gelassen.

    In "Sensoren / Werte konfigurieren" sind auch brav die Häkchen für den UDP-Versand gesetzt.

    Mach ich ein
    Code:
    root@wiregate798:~# echo “HELLO” | socat - UDP-DATAGRAM:192.168.2.255:13001,broadcast
    so kommt das auch im Netzwerk an, ich sehe es mit dem UDP-Listener und dem UDP-Port Test Tool in einer VM.

    Leider wird aber keiner meiner aktivierten Werte vom Wiregate gesendet. Sowohl UDP-Listener als auch das Test-Tool schweigen.
    Angehängte Dateien
    Umgezogen? Ja! ... Fertig? Nein!
    Baustelle 2.0 !

    #2
    Hi,
    Must du vielleicht noch einen Sendezyklus bei den Sensoren setzen? Da steht nüscht bei dir drin.
    Viele Grüsse
    Jürgen

    Kommentar


      #3
      Muss auch nicht bzw. bringt auch nichts. Hatte ich schon probiert.
      Umgezogen? Ja! ... Fertig? Nein!
      Baustelle 2.0 !

      Kommentar


        #4
        Also ich hab jetzt im wiregated-ow.pl in Zeile 528 (sub xpl_send) das Logging von 'DEBUG' auf 'INFO' gestellt, die Werte werden demnach angeblich gesendet:

        Code:
        LOGGER('INFO',"xPL: Sending $msgtype $class $device $current $type $name $level");
        Code:
        Aug 15 13:40:28 wiregate798 /usr/sbin/wiregated-ow.pl: INFO - xPL: Sending xpl-stat sensor.basic 28.B1C8AA030000 22.5 temp OG_Schlafzimmer_RT_MS 
        Aug 15 13:40:30 wiregate798 /usr/sbin/wiregated-ow.pl: INFO - xPL: Sending xpl-trig sensor.basic 3A.96280D000000_ch0 HIGH input Kanal 2 
        Aug 15 13:40:30 wiregate798 /usr/sbin/wiregated-ow.pl: INFO - xPL: Sending xpl-trig sensor.basic 3A.96280D000000_ch1 HIGH input Kanal 2 
        Aug 15 13:40:30 wiregate798 /usr/sbin/wiregated-ow.pl: INFO - xPL: Sending xpl-trig sensor.basic 3A.1B320D000000_ch0 HIGH input Kanal 3 
        Aug 15 13:40:30 wiregate798 /usr/sbin/wiregated-ow.pl: INFO - xPL: Sending xpl-trig sensor.basic 3A.1B320D000000_ch1 HIGH input Kanal 3 
        Aug 15 13:40:31 wiregate798 /usr/sbin/wiregated-ow.pl: INFO - xPL: Sending xpl-stat sensor.basic 28.FBFA84030000 23 temp OG_Arbeitszimmer_RT_MS 
        Aug 15 13:40:35 wiregate798 /usr/sbin/wiregated-ow.pl: INFO - xPL: Sending xpl-stat sensor.basic 28.8F2463040000 21.25 temp EG_Esszimmer_RL 
        Aug 15 13:40:38 wiregate798 /usr/sbin/wiregated-ow.pl: INFO - xPL: Sending xpl-stat sensor.basic 28.702923030000 39.75 temp WP_Zirk_RL
        Also ein bisschen weiter oben ins Log geschaut:
        Code:
        Aug 15 13:40:21 wiregate798 /usr/sbin/wiregated-ow.pl: WARN - Can't create UDP socket to send: IO::Socket::INET: connect: Keine Berechtigung)
        Ich (wiregated-ow.pl) darf also keinen UDP-Socket aufbauen !? Und nun? Zeile 502 schlägt also fehl (sub init_udpsock).

        Grüße
        Umgezogen? Ja! ... Fertig? Nein!
        Baustelle 2.0 !

        Kommentar


          #5
          War ein Bug im wiregated-ow.pl. Der Broadcast-Parameter bei IO:SOCKET:INET muss dann mit angegeben werden.

          Ein Patch-File zu erstellen spare ich mir, meist ziehen die Patches ja eh nicht ein. Trotzdem hier der Code, Änderungen sind rot.

          Code:
          [COLOR="Red"]sub check_broadcast{
            my $ip = shift;
            if ($ip =~ m/^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])){3}$/) {
              LOGGER('DEBUG',"UNICAST: $ip");
              return 0;
            } else {
              LOGGER('DEBUG',"BROADCAST: $ip");
              return 1;
              }
          }
          [/COLOR]
          sub init_udpsock {
            if ($wg_config{''}{'udp_ip'} and $wg_config{''}{'udp_port'}) {
               $udp_sock = IO::Socket::INET->new(Proto=>"udp",PeerPort=>$wg_config{''}{'udp_port'},PeerAddr=>$wg_config{''}{'udp_ip'}[COLOR="red"],Broadcast=>check_broadcast($wg_config{''}{'udp_ip'})[/COLOR]) or LOGGER('WARN',"Can't create UDP socket to send: $@)");
              }
          }
          Umgezogen? Ja! ... Fertig? Nein!
          Baustelle 2.0 !

          Kommentar


            #6
            Hi,

            für was braucht man eigentlich diesen udp versand?

            Viele Grüsse
            Jürgen

            Kommentar

            Lädt...
            X