Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. 2 Hexzahlen zusammenführen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.8k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.4k

2 Hexzahlen zusammenführen

Scheduled Pinned Locked Moved Node-Red
10 Posts 4 Posters 868 Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Offline
    B Offline
    Broker Tester
    wrote on last edited by
    #1

    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

    SokomotoS mickymM 2 Replies Last reply
    0
    • B Broker Tester

      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

      SokomotoS Offline
      SokomotoS Offline
      Sokomoto
      wrote on last edited by
      #2

      @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
      0
      • SokomotoS Sokomoto

        @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 Offline
        B Offline
        Broker Tester
        wrote on last edited by
        #3

        @sokomoto

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

        OliverIOO 1 Reply Last reply
        0
        • B Broker Tester

          @sokomoto

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

          OliverIOO Offline
          OliverIOO Offline
          OliverIO
          wrote on last edited by OliverIO
          #4

          @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

          Meine Adapter und Widgets
          TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
          Links im Profil

          B 1 Reply Last reply
          1
          • OliverIOO 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 Offline
            B Offline
            Broker Tester
            wrote on last edited by
            #5

            @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
            0
            • OliverIOO Offline
              OliverIOO Offline
              OliverIO
              wrote on last edited by OliverIO
              #6

              @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.

              Meine Adapter und Widgets
              TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
              Links im Profil

              B 1 Reply Last reply
              1
              • OliverIOO 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 Offline
                B Offline
                Broker Tester
                wrote on last edited by
                #7

                @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

                OliverIOO 1 Reply Last reply
                0
                • B Broker Tester

                  @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

                  OliverIOO Offline
                  OliverIOO Offline
                  OliverIO
                  wrote on last edited by OliverIO
                  #8

                  @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 :)

                  Meine Adapter und Widgets
                  TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                  Links im Profil

                  1 Reply Last reply
                  1
                  • B Broker Tester

                    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

                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    wrote on last edited by mickym
                    #9

                    @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?

                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                    B 1 Reply Last reply
                    1
                    • mickymM 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 Offline
                      B Offline
                      Broker Tester
                      wrote on last edited by
                      #10

                      @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: :clap:

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      573

                      Online

                      32.4k

                      Users

                      81.5k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe