Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. 2 Hexzahlen zusammenführen

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    2 Hexzahlen zusammenführen

    This topic has been deleted. Only users with topic management privileges can see it.
    • B
      Broker Tester last edited by

      Hallo...

      habe folgendes Problem und stehe auf dem Schlauch.

      Ich bekomme einen Stream über die serielle Schnittstelle nach diesen Vorgaben:

      7638953f-b54e-4591-8f45-ea13c3cf2ce3-grafik.png

      Habe den Stream jetzt schon aufgeteilt:

      978624c4-3b2b-48f7-a496-15a9ccb06544-grafik.png
      aa276d3f-ab63-4ba8-a63b-f31e5379c74a-grafik.png

      Wie kann ich am Dümmsten die Werte für Pos0 und Pos1 zusammenrechnen? Einfach multiplizieren geht ja bei Nullwerten nicht. Dachte mir eine Bitaddition, aber da bräuchte ich mal einen Tip.....

      Danke euch schon mal

      Sokomoto mickym 2 Replies Last reply Reply Quote 0
      • Sokomoto
        Sokomoto @Broker Tester last edited by

        @broker-tester sagte in 2 Hexzahlen zusammenführen:

        Einfach multiplizieren geht ja bei Nullwerten nicht.

        Das ist eine gewagte Aussage. Im node Terminal kommt folgendes Ergebnis bei einer Hex Berechnung raus:

        > x=0x0*0x0
        0
        > x=0x0/0x0
        NaN
        >
        

        Gut bei der Division motzt er. 👍😊

        tschuess

        B 1 Reply Last reply Reply Quote 0
        • B
          Broker Tester @Sokomoto last edited by

          @sokomoto

          Ok. Ich habe hex ja schon in dezimal umgewandelt und da ist die Multiplikation mit 0 ja 0.

          OliverIO 1 Reply Last reply Reply Quote 0
          • OliverIO
            OliverIO @Broker Tester last edited by OliverIO

            @broker-tester
            was mathematisch auch vollkommen richtig ist.

            da wir nicht wissen was in pos0 und pos1 für datn enthalten sind.
            was würdest du dir den als Ergebnis wünschen, wenn in beiden 0 drin steht?
            oder in einem 1 und im anderen 2?
            das Ergebnis von Addition/Multiplikation/etc hängt nicht von der Darstellung einer Zahl in einem Zahlsystem ab (10er/Dezimalsystem, 16er/Hexadezimal, 8er/Oktal,2er/Binär) ZUurückgerechnet bspw nach Dezimal kommt auch immer das gleiche Ergebnis raus

            Ergebnis bei 1 + 2

            Binär 1+10=11
            Oktal 1+2=3
            Hex 1+2=3
            Dez 1+2=3

            Ergebnis bei 1+10 (Dezimal)
            Binär 1+1010=1011
            Oktal 1+12=13
            Hex 1+A=B
            Dez 1+10=11

            B 1 Reply Last reply Reply Quote 1
            • B
              Broker Tester @OliverIO last edited by

              @oliverio

              Also... es kommt eine Position an, die in 2 hex Werte getrennt wurde. Dabei kann max 0xff und 0xff und min 0x00 und 0x00 ankommen. Diese muss ich wieder zusammenrechnen. Wenn ich dec255 *dec0 rechne, stimmt es ja nicht.

              1 Reply Last reply Reply Quote 0
              • OliverIO
                OliverIO last edited by OliverIO

                @broker-tester

                ah ok, du bekommst ein 16bit wert in 2 einzelnen bytes zurück.
                ein wert ist das high byte und das andere ist das low byte.

                die rechnung lautet dann wie folgt:

                High byte * 256 + low byte
                

                welches das high byte ist musst du aus der beschreibung herausfinden, da beide reihenfolgen möglich sind (HiLo und LoHi)
                denke daran 0x00 bis 0xff sind 256 zustände (1-255 und die 0 kommt auch noch dazu)

                Nachtrag: und wenn du uns mit vollständigen Informationen gefüttert hättest, dann wäre der Weg die Beschreibung zur Vestamatic zu finden nicht so schwer gewesen.
                Übrigens
                LSB steht für Least Significant Byte und MSB für Most Significant Byte. Die Übersetzung nach High und Low überlasse ich dir, ansonsten nochmal fragen.

                B 1 Reply Last reply Reply Quote 1
                • B
                  Broker Tester @OliverIO last edited by

                  @oliverio

                  Respekt, dass du auf Vestamatic gekommen bist...
                  Gibt's hier schon Fragen dazu?

                  Ich werde das mal versuchen morgen und mich bei Fragen wieder melden... danke

                  OliverIO 1 Reply Last reply Reply Quote 0
                  • OliverIO
                    OliverIO @Broker Tester last edited by OliverIO

                    @broker-tester
                    ja das geniale Tool nennt sich google und ich habe
                    die ersten 4 dieser Bezeichnungen dort eingetippt
                    d951ce3c-fb5c-4245-95ae-c8d5f83eafc3-image.png
                    und dann kam ein PDF mit genau der Beschreibung.
                    aber erst nach dem ich dir das mit High und Low Byte geschrieben habe 🙂

                    1 Reply Last reply Reply Quote 1
                    • mickym
                      mickym Most Active @Broker Tester last edited by mickym

                      @broker-tester Ich empfehle Dir die Buffer-Node, damit machs Du Dir das Leben einfacher.

                      https://flows.nodered.org/node/node-red-contrib-buffer-parser

                      Dadurch dass Du die Werte auch in einem Objekt hast, kannst Du mit diesen auch rechnen . Es kann auch alle Arten von 8,16,32 mit LE oder BE Notation behandeln.

                      0a147151-e57c-408e-9930-75ccc25986d5-image.png

                      So ist das einfach - 2 Bytes als uint Integer zu interpretieren:
                      le = low dann high byte
                      be = high dann low byte

                      4ab94603-2b84-46e4-a8b3-e265cecef4bc-image.png

                      Es emfiehlt sich generell die Eigenschaften in einem Objekt mitzuführen oder ist es der einzige Zweck die Werte in DP zu schreiben?

                      B 1 Reply Last reply Reply Quote 1
                      • B
                        Broker Tester @mickym last edited by

                        @mickym

                        Vielen Dank.. Das ist das, was ich gesucht habe....

                        Habe mir alles händisch programmiert, aber es geht ja einfacher...fdf4f6d8-8b74-4e66-944b-53391abeb3f0-grafik.png

                        Hier das erste Ergebnis. Muss noch weiter probieren und mich weiter in NODE einarbeiten..

                        edb27ae3-3b37-4f2c-adc2-7fa54fec31c9-grafik.png

                        Danke 👍 👏

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        1.0k
                        Online

                        31.7k
                        Users

                        79.8k
                        Topics

                        1.3m
                        Posts

                        4
                        10
                        520
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo