Ankündigung

Einklappen
Keine Ankündigung bisher.

LBS 19000278 - UDP (Multicast)

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

    #61
    Zitat von jonofe Beitrag anzeigen
    Ich habe es so bei mir ausprobiert und es funktioniert. Seltsam.
    Mit meinen Optionen ohne fork?


    Zitat von jonofe Beitrag anzeigen
    rpm -Uvh socat-1.7.3.0-1.el6.x86_64.rpm
    aber was ist dann anders/neu?


    Zitat von jonofe Beitrag anzeigen
    Dann wirds natürlich schwierig. Wie bekommst du denn bei deinem socat Befehl die Quelle heraus?
    socket_recvfrom($socket, $data, $v4, 0, $sendip, $sendport); liefert in $sendport die IP des Senders

    Kommentar


      #62
      Zitat von Winni Beitrag anzeigen
      Mit meinen Optionen ohne fork?
      nein mit meinen.

      Zitat von Winni Beitrag anzeigen
      aber was ist dann anders/neu?
      Dann funktioniert das fork.

      Zitat von Winni Beitrag anzeigen
      socket_recvfrom($socket, $data, $v4, 0, $sendip, $sendport); liefert in $sendport die IP des Senders
      Okay, aber das wäre dann nur mit einer PHP Version >=5.4???

      Kommentar


        #63
        Zitat von jonofe Beitrag anzeigen
        Okay, aber das wäre dann nur mit einer PHP Version >=5.4???
        Nein das funktioniert auch unter der EDOMI-php-Version.

        Das fork ist auch bei deiner Version nicht möglich:
        [root@edomi tmp]# socat - udp-datagram:239.255.255.250:1900,fork,ip-add-membership=239.255.255.250:eth0,bindtodevice=eth0
        2016/10/10 16:09:14 socat[28485] E parseopts(): option "fork" not supported with this address type

        Kommentar


          #64
          Das fork funktioniert in deiner Adresskombination nicht. Es funktioniert wohl nur in der Konstallation wie ich es beschrieben habe. Aber da kannst du nicht die Zuordnung zur Quelladress machen. Dann weiss ich auch nicht weiter ...

          Kommentar


            #65
            Hab mir gerade noch mal die man-page von socat angeschaut.

            Man kann socat sagen, welche Quell IP-Adressen berücksichtigt werden sollen:

            Code:
            /usr/bin/socat UDP4-RECVFROM:9050,reuseaddr,fork,range=[COLOR=#FF0000][B]192.168.0.1[/B][/COLOR]/32,ip-add-membership=234.6.6.6:eth0 udp-sendto:localhost:12345
            /usr/bin/socat UDP4-RECVFROM:9050,reuseaddr,fork,range=[COLOR=#FF0000][B]192.168.0.2[/B][/COLOR]/32,ip-add-membership=234.6.6.6:eth0 udp-sendto:localhost:12346
            /usr/bin/socat UDP4-RECVFROM:9050,reuseaddr,fork,range=[COLOR=#FF0000][B]192.168.0.3[/B][/COLOR]/32,ip-add-membership=234.6.6.6:eth0 udp-sendto:localhost:12347
            Das Rote sind dann die IP Adressen deines Readers. Und in Edomi nimmst du 3 UDP Listener. Je einen mit den Ports 12345, 12346, 12347 auf E2. Alle haben dieselbe IP 127.0.0.1 auf E3. Die socat Prozesse können dann eigentlich wie oben beschrieben in der /etc/rc.local eingetragen werden.

            Wenns jetzt nicht geht, dann bin ich mit meinem Latein am Ende.

            Kommentar


              #66
              Hallo,

              rechtzeitig vor Beginn der Badesaison habe ich mir einen kleinen drahtlosen Sensor für die Wassertemperatur auf Basis eines ESP8266 WIFI Moduls gebastelt. Das Modul sendet Daten per UDP an Edomi. Die IP wird vom DHCP dynamisch zugewiesen.

              Eigentlich sollte der LBS doch alle Daten ausgeben, wenn die Liste der gültigen IP Adressen an Eingang E3 leer ist. Das funktioniert leider nicht, im Log steht folgendes:
              2017-04-11 12:43:13 231270 12383 1 pool;20.12
              2017-04-11 12:43:13 232415 12383 1 Verworfen 192.168.1.7 != Array pool;20.12
              2017-04-11 12:43:13 233068 12383 1 381 wartet
              Wenn ich die IP an E3 manuell eintrage funktioniert es. Habe ich etwas übersehen oder ist hier ein Bug im LBS?

              Grüße,

              Andreas

              Kommentar


                #67
                Hallo Andreas,
                ich kann Dir leider dazu nichts sagen, habe aber interesse an Deinem Projekt und würde mich freuen, wenn Du ein paar Details dazu nennen könntest (Hardware, Quellen, länge der Funkstrecke,..)

                Danke und Grüße
                Lio

                Kommentar


                  #68
                  Hallo Lio,

                  gerne, ich habe gestern noch einen Workaround von Winni erhalten und kann jetzt testen.

                  Ich habe 2 Varianten mit unterschiedlichen ESP Modulen. Eines für Low Power Batteriebetrieb (Stromaufnahme im uA Bereich, wacht nur alle 10min auf und sendet den Temperaturwert) und eines für Netzbetrieb. Programmiert wird über die Arduino IDE und ich habe einen 1-Wire Hülsenfühler angeschlossen. Ich muss noch ein bißchen testen, aber dann kann ich ein Tutorial schreiben.

                  LG Andreas

                  Kommentar


                    #69
                    Hallo Andreas,
                    möchte mich demnächst an das Thema ran machen, hast du schon Erkenntnisse sammeln können?
                    Welche Komponenten hast du im Einsatz?
                    Danke und Grüße
                    Lio
                    ​​

                    Kommentar


                      #70
                      Hi Winni,

                      ich habe deinen UDP Baustein im Einsatz und ein Problem beim Empfang eines JSONs:
                      Ich nutze UDP um mit meiner Wallbox zu kommunizieren. Dabei scheint irgendwo etwas vom empfangenen JSON-Telegramm verloren zu gehen. Bei Befehlen an die Wallbox, die nur mit einem kürzeren JSON String antworten, klappt alles. Nur bei demjenigen, der am längsten ist, geht der letzte Teil verloren:

                      Bildschirmfoto 2018-10-24 um 20.16.58.png

                      Hier fehlen noch einige Key-Value-Pairs, der JSON scheint abgeschnitten zu werden. Zuerst dachte ich, dass es am Ausgang des Bausteins liegt, weil dieser direkt mit dem JSON-Decoder verknüpft ist, doch auch der Umweg über ein iKO brachte keine Abhilfe.

                      Jemand eine Idee, was ich hier noch tun könnte?
                      Angehängte Dateien
                      Gruß,
                      Matthias

                      Kommentar


                        #71
                        Wie lang ist das JSON denn? In Edomi gibts eine Beschränkung von 10.000 Zeichen für iKOs.

                        Kommentar


                          #72
                          Das kann ich ausschließen, es sollten 22 key-value-paires sein, selbst in Maximalausprägung wären das nicht mal 1000 Zeichen.
                          Gruß,
                          Matthias

                          Kommentar


                            #73
                            Keiner eine Idee, was ich noch versuchen könnte?
                            Gruß,
                            Matthias

                            Kommentar


                              #74
                              Wenn ich mir den LBS so anschaue, dann gibt es dort den Eingang maxLength. Bei dir steht da 255 ... Den Rest überlasse ich dir

                              Steht doch auch in der Hilfe: Eingang 4 gibt die maximale Datenlänge an, die empfangen wird

                              Kommentar


                                #75
                                Oh Mann - Lesen bildet! Danke für den Schubs Andre!
                                Lag natürlich daran, dass im Baustein "maxLenght" und nicht "maxLength" steht.
                                Gruß,
                                Matthias

                                Kommentar

                                Lädt...
                                X