Unterstützung UDP Befehlserkennung

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Deepflash
    Extension Master
    • 08.06.2021
    • 193

    #1

    Unterstützung UDP Befehlserkennung

    Hallo zusammen,

    ich bin mal wieder am rätseln über die UDP Befehlserkennung.
    Ich erhalte vom Raspi folgendes: 02 00 cb 00 01 00 00 02 8a 08 00 18 80 19 00 00 00 0d
    Klicke auf die Grafik für eine vergrößerte Ansicht  Name: grafik.png Ansichten: 0 Größe: 87,9 KB ID: 384036
    Daraus würde ich nun gerne nach 8a 08 00 das Byte haben wollen (die 18) - das ist ein Hex Wert und brauchen würde ich ihn schlussendlich in dezimal.
    Außerdem die 19 nach der darauffolgenden 80.
    In manchen Botschaften ist das 8a 08 00 nichts drin, das soll dann ignoriert werden.

    \8a 08 00\v
    oder auch \8a 08 00\x
    --> das funktioniert im Command recognition tool, in Loxone allerdings kommt da nichts
    dasselbe gilt für \8a 08 00\s6\v
    oder auch \8a 08 00\s6\x
    oder \8A\\x08\\x00\\x\h

    Kann mir da jemand helfen?

    Gruß
    Zuletzt geändert von Deepflash; 23.03.2023, 22:30.
  • Christian Fenzl
    Lebende Foren Legende
    • 31.08.2015
    • 11234

    #2
    Funktionieren müsste
    \8a\08\00\1
    Das liefert den Dezimalwert des Bytes nach 8a0800, also 18h=24.
    Weil das nur Hexwerte sind, musst du nach den Hexwerten (nicht Strings) suchen.

    lg, Christian
    Zuletzt geändert von Christian Fenzl; 24.03.2023, 05:41.
    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

    Kommentar

    • Deepflash
      Extension Master
      • 08.06.2021
      • 193

      #3
      edit 2:

      Lösung für den Wert nach 8a 08 00:
      \x8a\x08\x00\1
      Lösung für die Werte danach: \x8a\x08\x00\s1\1
      --> liefert die 80
      \x8a\x08\x00\s2\1
      --> liefert das Byte nach der 80
      Zuletzt geändert von Deepflash; 24.03.2023, 15:43.

      Kommentar

      • Christian Fenzl
        Lebende Foren Legende
        • 31.08.2015
        • 11234

        #4
        Perfekt! Das x ist dann Pflicht und nicht der Platzhalter für den Hexwert. Ist in der Doku nicht ganz eindeutig.
        Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

        Kommentar

        • hauwech
          Dumb Home'r
          • 03.07.2024
          • 23

          #5
          Hallo zusammen,
          ich hole den Beitrag nochmal aus der Versenkung, die Überschrift paßt perfekt zu meinem Problem. Da muß man wohl keinen neuen Thread aufmachen.
          Ich habe heute meinen MiniServer Go bekommen, bin also ganz frisch im Thema Loxone.
          Ich habe die Befehlserkennung noch nicht gerafft. Ich versuche, Daten aus fhem zu übernehmen, um sie in Loxone weiter zu verarbeiten. Ich bekomme aus fhem mittels UDP folgendes mit drei Werten gesendet:
          Code:
          Strom: 1736.3769328 6102.57954254 -391.99
          Ich versuche nun, die drei Werte in einem Virtuellen_UDP_Eingang_Befehl zu separieren, kriege aber immer nur den ersten Wert zurück. Das Command Recognition Tool in LoxBerry habe ich probiert, komme aber mit der Notation nicht weiter. Wie müßte ich denn die Befehlserkennung notieren, daß ich die drei Werte ausgelesen bekomme? Und mit welchem Baustein sollte man die getrennten Werte weiterverarbeiten?

          Vielen Dank und Gruß
          Roland

          Kommentar

          • Deepflash
            Extension Master
            • 08.06.2021
            • 193

            #6
            also zunächst einmal bräuchtest du dann 3 Befehlserkennungsbausteine.
            Der erste Wert sollte einfach sein: \i:\i\v
            Damit sucht er den Doppelpunkt und pastet den Wert danach, in dem Fall die 1736...
            Die darauffolgenden werden etwas schwieriger weil nicht eindeutig trennbar und zudem sicher auch noch schwankend in der Länge.
            Also würde ich das wie folgend machen: \i:\i\s5\i\b\i\v
            --> suche Doppelpunkt, Springe 5 nach vorne, suche \b = Blank, paste
            Ist der letzte Wert immer negativ?
            Dann \i-\i\v

            Kommentar

            • hauwech
              Dumb Home'r
              • 03.07.2024
              • 23

              #7
              Vielen Dank für schnelle Hilfe.
              Dann ist es wahrscheinlich schlauer, 3 getrennte UDP Datagramme an Loxone zu schicken. Ich hatte in meintechblog.de gelesen, daß das so gehen sollte:
              UDP_Msg(“192.168.178.76” , “7000” , “$device: $measuredTemp $humidity $alive $battery $desiredTemp $controlMode $dewpoint $actuator”)

              Das heißt, dass “measured-temp”, also die gemessene Temperatur, der erste Wert in der UDP-Nachricht ist, “humidity”, also die Luftfeuchtigkeit, der zweite Wert, usw. Diese Reihenfolge ist ausschlaggebend für die “Befehlserkennung” in Loxone. Wie gezeigt, wird also der erste Wert des Devices “Sz.Temp” in Loxone wie folgt erkannt: “Sz.Temp: \v”. Der zweite Wert würde dann wie folgt erkannt werden: “Sz.Temp: \# \v” usw…
              Das habe ich ums Verrecken nicht hingekriegt.

              Gruß Roland

              Kommentar


              • Deepflash
                Deepflash kommentierte
                Kommentar bearbeiten
                wieso? Die 3 Befehlserkennungsbausteine kannst du doch so einrichten oder klappt das nicht?
                schau dir doch im Befehlserkennungsbaustein mal die Beispiele an, dort steht das mit Raute auch beschrieben.
                Zuletzt geändert von Deepflash; 04.07.2024, 15:49.
            • Christian Fenzl
              Lebende Foren Legende
              • 31.08.2015
              • 11234

              #8
              Nach Länge würde ich hier nichts machen, sondern nur auf die Leerzeichen, etwa
              Strom:\i \i\v
              Strom:\i \i\i \i\v
              Strom:\i \i\i \i\i \i\v
              Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

              Kommentar

              • hauwech
                Dumb Home'r
                • 03.07.2024
                • 23

                #9
                Vielen Dank!
                mit drei separaten Virtuellen_UDP_Eingang_Befehlen und den drei Regex'en von Christian funktionierts wie ich wollte.

                Gruß Roland

                Kommentar

                • He.Slar
                  Smart Home'r
                  • 19.03.2018
                  • 44

                  #10
                  Hallo zusammen,
                  das Problem von Deepflash habe ich aktuell auch. Der Screenshot vom Anfang sieht genau wie bei mir aus.
                  Nur gibt es bei mir die Schwierigkeit, dass es keine Konstanten in dem String gibt, die ich als Suchkriterium nutzen kann.
                  Ich habe aber eine Komplette Beschreibung des Strings (1200 Byte).
                  Eine feste Zeichenfolge überspringen mit \s123 funktioniert ja auch nicht, weil die Zeichen unterschiedlich lang sind. Das würde nur bei einer Suche im nackten Hex-String funktionieren.

                  Kann man irgendwie Bitweise springen oder gibt es eine Möglichkeit eine Suche nach z.B. "" oder "x" zu vervielfachen, wie beim \s123
                  Also einen \ix\i z.B. 123-mal zu suchen, dass man am richtigen Byte ankommt?

                  \ix\i \ix\i\ix\i\ix\i\ix\i\ix\i\ix\i\ix\i\ix\i\ix\i\ix\i \ix\i\ix\i..... ist bei 1200 Bytes für mich keine Option.

                  Es kommt bei dem ganzen noch dazu, dass immer vier Bytes einen Wert ergeben, aber das funktioniert über \4\3\2\1, das habe ich für das erste Byte schon gelöst.
                  Zuletzt geändert von He.Slar; 14.08.2024, 16:41.
                  1xMS Gen1, 1xExtension, 1-Wire Ext, ioBroker (Raspberry 4)
                  Sensorik und Aktorik größtenteils MDT (KNX TP),
                  Mähroboter Kress (über ioBroker angebunden)
                  Heidelberg Wallbox Energy Control (Modbus RTU),
                  Phasenumschaltung als Ablaufsteuerung in Loxone realisiert,
                  PV (Fronius Symo GEN24) mit Speicher BYD HVS 7.7,
                  Tesla Model Y und Renault ZOE als Stromverwerter,
                  Erster Versuchsaufbau mit MS und KNX in 2015, Hausbau 2016/17, Fertigstellung der Haustechnik im Spätherbst 2075

                  Kommentar

                  • Christian Fenzl
                    Lebende Foren Legende
                    • 31.08.2015
                    • 11234

                    #11
                    Wenn es keine Trennzeichen gibt, müssen die Bytes an festen Stellen sitzen. Dann muss das Überspringen mit \s auch funktionieren.

                    Ohne Beispiel ist das aber ein Ratespiel, wenn nicht mal du sicher bist, wie das Datenmodell aussieht.

                    lg Christian
                    Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

                    Kommentar

                    • He.Slar
                      Smart Home'r
                      • 19.03.2018
                      • 44

                      #12
                      [QUOTE=Deepflash;n384035]
                      Klicke auf die Grafik für eine vergrößerte Ansicht Name: grafik.png Ansichten: 0 Größe: 87,9 KB ID: 384036

                      Hallo Christian,

                      meine Daten sehen exakt so aus wie im ersten Beitrag dieses Threads.
                      In Hex sind alle Werte gleich lang, da könnte ich mit \s123 an die richtige Stelle hüpfen.
                      In Text variiert die Länge. Es gibt vor jedem Byte ein "\x" . Das würde aber mit dem Suchbefehl \ix\i bedeuten, dass ich den bis zu 1200 mal hintereinanderschreiben muss.

                      Kann man die Daten auch in Hex suchen?
                      Oder kann man Suchkriterien mit Multiplikator schreiben, dass diese x-mal wiederholt werden?

                      Danke für Eure Hilfe.
                      Zuletzt geändert von He.Slar; 14.08.2024, 22:38.
                      1xMS Gen1, 1xExtension, 1-Wire Ext, ioBroker (Raspberry 4)
                      Sensorik und Aktorik größtenteils MDT (KNX TP),
                      Mähroboter Kress (über ioBroker angebunden)
                      Heidelberg Wallbox Energy Control (Modbus RTU),
                      Phasenumschaltung als Ablaufsteuerung in Loxone realisiert,
                      PV (Fronius Symo GEN24) mit Speicher BYD HVS 7.7,
                      Tesla Model Y und Renault ZOE als Stromverwerter,
                      Erster Versuchsaufbau mit MS und KNX in 2015, Hausbau 2016/17, Fertigstellung der Haustechnik im Spätherbst 2075

                      Kommentar

                      • romildo
                        Lebende Foren Legende
                        • 25.08.2015
                        • 5144

                        #13
                        Sofern ich das jetzt richtig interpretiere, beginnt jede Zeile mit \x02\x00. Danach kommt ein fortlaufender Hexwert z. B \xC8 dann \xC9 gefolgt von \xCA
                        Wenn das immer so ist, könnte man zuerst nach dieser Zeichenfolge suchen und im Anschluss dann mit einigen\ix\i an die gewünschte Stelle springen.

                        Beispiel Befehlserkennung:
                        Code:
                        \\x02\\x00\\xCA\\\ix\i\ix\i\ix\i\ix\i\ix\i\ix\i\h
                        Würde den Dezimalwert 138 anzeigen, was dem Hexwert 8A von Zeile 3 aus Bild in Post #12 entspricht.

                        Eine andere Suchmöglichkeit sehe ich zur Zeit leider nicht.
                        Wenn das nicht geht, wäre ein Programmbaustein mit PicoC vielleicht noch eine Variante.
                        lg Romildo

                        Kommentar

                        • He.Slar
                          Smart Home'r
                          • 19.03.2018
                          • 44

                          #14
                          Hallo Christian und romildo,
                          danke für Eure Antworten. Wie ich schon befürchtet habe, läuft das auf einen sehr langen Suchstring hinaus,

                          \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \ix\i \4\3\2\1

                          ;-)
                          1xMS Gen1, 1xExtension, 1-Wire Ext, ioBroker (Raspberry 4)
                          Sensorik und Aktorik größtenteils MDT (KNX TP),
                          Mähroboter Kress (über ioBroker angebunden)
                          Heidelberg Wallbox Energy Control (Modbus RTU),
                          Phasenumschaltung als Ablaufsteuerung in Loxone realisiert,
                          PV (Fronius Symo GEN24) mit Speicher BYD HVS 7.7,
                          Tesla Model Y und Renault ZOE als Stromverwerter,
                          Erster Versuchsaufbau mit MS und KNX in 2015, Hausbau 2016/17, Fertigstellung der Haustechnik im Spätherbst 2075

                          Kommentar


                          • romildo
                            romildo kommentierte
                            Kommentar bearbeiten
                            Dann kann aber Bild #12 nichts mit der Realität zu tun haben, oder mein Vorschlag in #13 war nicht verständlich genug
                        • He.Slar
                          Smart Home'r
                          • 19.03.2018
                          • 44

                          #15
                          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 105
Größe: 112,1 KB
ID: 439314Es gibt in diesem Datenpaket nur Nutzdaten, die sich alle ändern können, somit kann ich nach nichts suchen.
                          Ein reines Springen mit \ix\i\ix\i\ix\i.........\4\3\2\1 funktioniert komischerweise nicht.
                          Das hätte ich mittlerweile mit der Funktion WIEDERHOLEN in Excel gelöst.


                          Klicke auf die Grafik für eine vergrößerte Ansicht

Name: image.png
Ansichten: 89
Größe: 103,7 KB
ID: 439315
                          1xMS Gen1, 1xExtension, 1-Wire Ext, ioBroker (Raspberry 4)
                          Sensorik und Aktorik größtenteils MDT (KNX TP),
                          Mähroboter Kress (über ioBroker angebunden)
                          Heidelberg Wallbox Energy Control (Modbus RTU),
                          Phasenumschaltung als Ablaufsteuerung in Loxone realisiert,
                          PV (Fronius Symo GEN24) mit Speicher BYD HVS 7.7,
                          Tesla Model Y und Renault ZOE als Stromverwerter,
                          Erster Versuchsaufbau mit MS und KNX in 2015, Hausbau 2016/17, Fertigstellung der Haustechnik im Spätherbst 2075

                          Kommentar

                          Lädt...