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. NodeRed BufferParser

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    NodeRed BufferParser

    This topic has been deleted. Only users with topic management privileges can see it.
    • Alexander_1990
      Alexander_1990 @mickym last edited by

      @mickym hm wirklich sehr merkwürdig... habe deinen Code importiert... und den Buffer Parser wie er war an meinen Modbus Read angehängt und wieder selber Fehler. Verstehe ich nicht ganz...

      Habe jetzt aber mal den Buffer Parser des anderen kopiert und jetzt wird mir der richtige Wert angezeigt. Muss ich nicht verstehen.

      aber weshalb der Buffer Parser mit bayload.buffer ist komisch.

      der Inject unterscheidet sich nicht zu meinem.

      21.11.2023, 07:38:01node: debug 19
      polling : msg.payload : Object
      object
      data: array[1]
      0: 1
      buffer: buffer[2]
      0: 0x0
      1: 0x1

      21.11.2023, 07:39:09node: debug
      msg.payload : Object
      object
      data: array[1]
      0: 0
      buffer: buffer[2]
      0: 0x0
      1: 0x0

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @Alexander_1990 last edited by

        @alexander_1990 Na ja - dann exportiere Deinen Flow halt aber bitte in CodeTags - mit der Inject Node und der Buffer Node, mit der der Fehler auftritt - wenn man es nicht nachvollziehen kann, ist das halt schwierig.

        Bitte allen Code immer in CodeTags einbinden.

        Code-Tags.gif

        Alexander_1990 1 Reply Last reply Reply Quote 0
        • Alexander_1990
          Alexander_1990 @mickym last edited by

          [
              {
                  "id": "307694db7ef6d14c",
                  "type": "tab",
                  "label": "Flow 2",
                  "disabled": false,
                  "info": "",
                  "env": []
              },
              {
                  "id": "bc4618129e3c331d",
                  "type": "inject",
                  "z": "307694db7ef6d14c",
                  "name": "",
                  "props": [
                      {
                          "p": "payload.data",
                          "v": "[0]",
                          "vt": "json"
                      },
                      {
                          "p": "payload.buffer",
                          "v": "[0,0]",
                          "vt": "bin"
                      }
                  ],
                  "repeat": "",
                  "crontab": "",
                  "once": false,
                  "onceDelay": 0.1,
                  "topic": "",
                  "x": 170,
                  "y": 260,
                  "wires": [
                      [
                          "425b8349b94cc69a",
                          "424cc1ab750aaba6",
                          "5333f300f58fcf84"
                      ]
                  ]
              },
              {
                  "id": "5333f300f58fcf84",
                  "type": "debug",
                  "z": "307694db7ef6d14c",
                  "name": "debug",
                  "active": true,
                  "tosidebar": true,
                  "console": false,
                  "tostatus": false,
                  "complete": "payload",
                  "targetType": "msg",
                  "statusVal": "",
                  "statusType": "auto",
                  "x": 510,
                  "y": 140,
                  "wires": []
              },
              {
                  "id": "425b8349b94cc69a",
                  "type": "buffer-parser",
                  "z": "307694db7ef6d14c",
                  "name": "",
                  "data": "payload.buffer",
                  "dataType": "msg",
                  "specification": "spec",
                  "specificationType": "ui",
                  "items": [
                      {
                          "type": "int16le",
                          "name": "item1",
                          "offset": 0,
                          "length": 1,
                          "offsetbit": 0,
                          "scale": "1",
                          "mask": ""
                      }
                  ],
                  "swap1": "",
                  "swap2": "",
                  "swap3": "",
                  "swap1Type": "swap",
                  "swap2Type": "swap",
                  "swap3Type": "swap",
                  "msgProperty": "payload",
                  "msgPropertyType": "str",
                  "resultType": "keyvalue",
                  "resultTypeType": "return",
                  "multipleResult": false,
                  "fanOutMultipleResult": false,
                  "setTopic": true,
                  "outputs": 1,
                  "x": 350,
                  "y": 260,
                  "wires": [
                      []
                  ]
              },
              {
                  "id": "424cc1ab750aaba6",
                  "type": "debug",
                  "z": "307694db7ef6d14c",
                  "name": "input",
                  "active": true,
                  "tosidebar": true,
                  "console": false,
                  "tostatus": false,
                  "complete": "payload",
                  "targetType": "msg",
                  "statusVal": "",
                  "statusType": "auto",
                  "x": 310,
                  "y": 200,
                  "wires": []
              },
              {
                  "id": "e410ba0907d6488b",
                  "type": "modbus-read",
                  "z": "307694db7ef6d14c",
                  "name": "IDM Verdichter 1",
                  "topic": "",
                  "showStatusActivities": true,
                  "logIOActivities": false,
                  "showErrors": true,
                  "showWarnings": true,
                  "unitid": "1",
                  "dataType": "InputRegister",
                  "adr": "1509",
                  "quantity": "1",
                  "rate": "1",
                  "rateUnit": "m",
                  "delayOnStart": false,
                  "startDelayTime": "",
                  "server": "e7c103762c33db8f",
                  "useIOFile": false,
                  "ioFile": "",
                  "useIOForPayload": false,
                  "emptyMsgOnFail": true,
                  "x": 140,
                  "y": 400,
                  "wires": [
                      [
                          "cfbcb681ae4e8015"
                      ],
                      [
                          "e678b3f79fb4fda9"
                      ]
                  ]
              },
              {
                  "id": "853b1b3ad998b1c2",
                  "type": "ha-sensor",
                  "z": "307694db7ef6d14c",
                  "name": "IDM Verdichter 1 Status",
                  "entityConfig": "92370e09c49793eb",
                  "version": 0,
                  "state": "payload",
                  "stateType": "msg",
                  "attributes": [],
                  "inputOverride": "allow",
                  "outputProperties": [],
                  "x": 930,
                  "y": 400,
                  "wires": [
                      []
                  ]
              },
              {
                  "id": "e678b3f79fb4fda9",
                  "type": "debug",
                  "z": "307694db7ef6d14c",
                  "name": "debug 20",
                  "active": true,
                  "tosidebar": true,
                  "console": false,
                  "tostatus": false,
                  "complete": "payload",
                  "targetType": "msg",
                  "statusVal": "",
                  "statusType": "auto",
                  "x": 340,
                  "y": 440,
                  "wires": []
              },
              {
                  "id": "cfbcb681ae4e8015",
                  "type": "buffer-parser",
                  "z": "307694db7ef6d14c",
                  "name": "",
                  "data": "payload",
                  "dataType": "msg",
                  "specification": "spec",
                  "specificationType": "ui",
                  "items": [
                      {
                          "type": "int16be",
                          "name": "item1",
                          "offset": 0,
                          "length": 1,
                          "offsetbit": 0,
                          "scale": "1",
                          "mask": ""
                      }
                  ],
                  "swap1": "",
                  "swap2": "",
                  "swap3": "",
                  "swap1Type": "swap",
                  "swap2Type": "swap",
                  "swap3Type": "swap",
                  "msgProperty": "payload",
                  "msgPropertyType": "str",
                  "resultType": "value",
                  "resultTypeType": "return",
                  "multipleResult": true,
                  "fanOutMultipleResult": true,
                  "setTopic": true,
                  "outputs": 1,
                  "x": 530,
                  "y": 400,
                  "wires": [
                      [
                          "853b1b3ad998b1c2"
                      ]
                  ]
              },
              {
                  "id": "935b553623270170",
                  "type": "modbus-read",
                  "z": "307694db7ef6d14c",
                  "name": "IDM Verdichter 1",
                  "topic": "",
                  "showStatusActivities": true,
                  "logIOActivities": false,
                  "showErrors": true,
                  "showWarnings": true,
                  "unitid": "1",
                  "dataType": "InputRegister",
                  "adr": "1509",
                  "quantity": "1",
                  "rate": "1",
                  "rateUnit": "m",
                  "delayOnStart": false,
                  "startDelayTime": "",
                  "server": "e7c103762c33db8f",
                  "useIOFile": false,
                  "ioFile": "",
                  "useIOForPayload": false,
                  "emptyMsgOnFail": true,
                  "x": 140,
                  "y": 560,
                  "wires": [
                      [
                          "664603dab06e7c36"
                      ],
                      []
                  ]
              },
              {
                  "id": "664603dab06e7c36",
                  "type": "buffer-parser",
                  "z": "307694db7ef6d14c",
                  "name": "",
                  "data": "payload.buffer",
                  "dataType": "msg",
                  "specification": "spec",
                  "specificationType": "ui",
                  "items": [
                      {
                          "type": "int16le",
                          "name": "item1",
                          "offset": 0,
                          "length": 1,
                          "offsetbit": 0,
                          "scale": "1",
                          "mask": ""
                      }
                  ],
                  "swap1": "",
                  "swap2": "",
                  "swap3": "",
                  "swap1Type": "swap",
                  "swap2Type": "swap",
                  "swap3Type": "swap",
                  "msgProperty": "payload",
                  "msgPropertyType": "str",
                  "resultType": "keyvalue",
                  "resultTypeType": "return",
                  "multipleResult": false,
                  "fanOutMultipleResult": false,
                  "setTopic": true,
                  "outputs": 1,
                  "x": 530,
                  "y": 560,
                  "wires": [
                      [
                          "73d11eaf5c5b3662"
                      ]
                  ]
              },
              {
                  "id": "73d11eaf5c5b3662",
                  "type": "ha-sensor",
                  "z": "307694db7ef6d14c",
                  "name": "IDM Verdichter 1 Status",
                  "entityConfig": "92370e09c49793eb",
                  "version": 0,
                  "state": "payload",
                  "stateType": "msg",
                  "attributes": [],
                  "inputOverride": "allow",
                  "outputProperties": [],
                  "x": 930,
                  "y": 560,
                  "wires": [
                      []
                  ]
              },
              {
                  "id": "e7c103762c33db8f",
                  "type": "modbus-client",
                  "name": "IDM-Wärmepumpe",
                  "clienttype": "tcp",
                  "bufferCommands": true,
                  "stateLogEnabled": false,
                  "queueLogEnabled": false,
                  "failureLogEnabled": true,
                  "tcpHost": "192.168.188.25",
                  "tcpPort": "502",
                  "tcpType": "DEFAULT",
                  "serialPort": "/dev/ttyUSB",
                  "serialType": "RTU-BUFFERD",
                  "serialBaudrate": "9600",
                  "serialDatabits": "8",
                  "serialStopbits": "1",
                  "serialParity": "none",
                  "serialConnectionDelay": "100",
                  "serialAsciiResponseStartDelimiter": "0x3A",
                  "unit_id": "1",
                  "commandDelay": "1",
                  "clientTimeout": "2000",
                  "reconnectOnTimeout": true,
                  "reconnectTimeout": "3000",
                  "parallelUnitIdsAllowed": true,
                  "showWarnings": true,
                  "showLogs": true
              },
              {
                  "id": "92370e09c49793eb",
                  "type": "ha-entity-config",
                  "server": "ad1ca830.06e1e8",
                  "deviceConfig": "d0bbe7316be5f16e",
                  "name": "IDM Verdichter 1 Status",
                  "version": "6",
                  "entityType": "sensor",
                  "haConfig": [
                      {
                          "property": "name",
                          "value": "IDM Verdichter 1 Status"
                      },
                      {
                          "property": "icon",
                          "value": ""
                      },
                      {
                          "property": "entity_category",
                          "value": ""
                      },
                      {
                          "property": "entity_picture",
                          "value": ""
                      },
                      {
                          "property": "device_class",
                          "value": ""
                      },
                      {
                          "property": "unit_of_measurement",
                          "value": ""
                      },
                      {
                          "property": "state_class",
                          "value": ""
                      }
                  ],
                  "resend": false,
                  "debugEnabled": false
              },
              {
                  "id": "ad1ca830.06e1e8",
                  "type": "server",
                  "name": "Home Assistant",
                  "addon": true,
                  "rejectUnauthorizedCerts": true,
                  "ha_boolean": "",
                  "connectionDelay": false,
                  "cacheJson": false,
                  "heartbeat": false,
                  "heartbeatInterval": "",
                  "statusSeparator": "",
                  "enableGlobalContextStore": false
              },
              {
                  "id": "d0bbe7316be5f16e",
                  "type": "ha-device-config",
                  "name": "IDM Verdichter 1 Status",
                  "hwVersion": "",
                  "manufacturer": "Node-RED",
                  "model": "",
                  "swVersion": ""
              }
          ]
          
          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @Alexander_1990 last edited by

            @alexander_1990 Nun mit Deinen Hardware Nodes kann ich leider nichts anfangen - da ich weder Modbus noch HomeAssistant habe.

            Das Einzige was Du noch machen kannst, damit man das ggf. nachvollziehen kann - ich denke die untere Buffer-Node ist korrekt, ist dass Du in der Debug 20 Node Dir das komplette Nachrichtenobjekt ausgeben lässt und es hier in CodeTags einstellst, in dem Du Wert über die Schaltfläche Wert kopieren aus dem Debug Fenster in die Zwischenablage kopierst.

            e69d1588-9045-4996-8cab-1c3f25d96d1e-image.png

            Nur so kann man ggf. nachvollziehen, welche Eigenschaft vielleicht stört.

            Wichtig ist das die debug 20 Node noch die Originalnachricht von modbus enthält. Anders kann ich es nicht nachvollziehen.

            Alexander_1990 1 Reply Last reply Reply Quote 0
            • Alexander_1990
              Alexander_1990 @mickym last edited by

              @mickym Hallo Micky sorry für die späte Rückmeldung! Vielen Dank für deine Antwort!

              Also so sieht die Sache aktuell aus!

              Eigentlich müsste es aktuell so sein dass Verdichter 1 der Wert 0 sein müsste und Verdichter 2 der Wert 1

              9b5463a5-9d4e-4154-b311-c6c8ed38759f-image.png

              {"data":[256],"buffer":[1,0]}

              {"data":[1],"buffer":[0,1]}

              deswegen dachte ich dass vll. der zweite Wert aus Buffer der richtige sein könnte?

              aktuell bekomme ich mit meinem Buffer parser aber nur den Wert 256 und 1

              d0e7dccf-4556-4b0a-99ac-7e97552a4124-image.png

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @Alexander_1990 last edited by mickym

                @alexander_1990 nun die Parser node arbeitet doch korrekt. Wenn dich aus dem buffer aber halt nur das 2. Byte interessiert dann musst halt Byte mit einem Offset nehmen und nicht eine int16 Zahl. Ansonsten ist doch klar, dass beide Bytes als eine Zahl interpretiert werden. Ob das so ist kann ich nicht sagen, da musst du in Deiner Dokumentation nachschauen, aber wie gesagt, wenn Du nur das 2. Byte interpretieren willst, dann musst das halt angeben. Kann ja auch sein, dass Byte 1 für den 1. verdichter steht und Byte 2 Förden 2. verdichter. Wenn das auch noch die gleiche Adresse ist, dann würde ich beide Bytes auch nicht als Zahl sondern als Boolean auslesen.

                Alexander_1990 1 Reply Last reply Reply Quote 0
                • Alexander_1990
                  Alexander_1990 @mickym last edited by

                  @mickym Danke Dir für dein schnelles Feedback! ich werde das mal genauer anschauen mit den Zuständen, aber Verdichter 1 wird aus dem Register 1509 und Verdichter 2 aus Register 1510 ausgelesen und ich dachte eben dass nur die Zahl interessiert.

                  Kannst du mir sagen wie ich den buffer parser modifizieren muss um speziell den zweiten Wert aus dem Buffer raus zu kriegen und den als Zahl ausgeben zu lassen?

                  {"data":[256],"buffer":[1,0]}
                  {"data":[1],"buffer":[0,1]}

                  mickym 1 Reply Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @Alexander_1990 last edited by mickym

                    @alexander_1990

                    826bfd73-f76b-4b3f-b9c8-cc4d93a79a1b-image.png

                    7e417421-a90a-4f53-8670-319b3b6a50bf-image.png

                    [
                       {
                           "id": "07d01d518166d7e0",
                           "type": "debug",
                           "z": "0662713ffc076361",
                           "name": "2. Byte",
                           "active": true,
                           "tosidebar": true,
                           "console": false,
                           "tostatus": false,
                           "complete": "payload",
                           "targetType": "msg",
                           "statusVal": "",
                           "statusType": "auto",
                           "x": 880,
                           "y": 2340,
                           "wires": []
                       },
                       {
                           "id": "87c4b8f99c33ef96",
                           "type": "inject",
                           "z": "0662713ffc076361",
                           "name": "[0,1]",
                           "props": [
                               {
                                   "p": "payload"
                               }
                           ],
                           "repeat": "",
                           "crontab": "",
                           "once": false,
                           "onceDelay": 0.1,
                           "topic": "",
                           "payload": "[0,1]",
                           "payloadType": "bin",
                           "x": 470,
                           "y": 2320,
                           "wires": [
                               [
                                   "9a551402f76dec4c"
                               ]
                           ]
                       },
                       {
                           "id": "6164fc2963a01485",
                           "type": "inject",
                           "z": "0662713ffc076361",
                           "name": "[0,0]",
                           "props": [
                               {
                                   "p": "payload"
                               }
                           ],
                           "repeat": "",
                           "crontab": "",
                           "once": false,
                           "onceDelay": 0.1,
                           "topic": "",
                           "payload": "[0,0]",
                           "payloadType": "bin",
                           "x": 470,
                           "y": 2380,
                           "wires": [
                               [
                                   "9a551402f76dec4c"
                               ]
                           ]
                       },
                       {
                           "id": "9a551402f76dec4c",
                           "type": "buffer-parser",
                           "z": "0662713ffc076361",
                           "name": "",
                           "data": "payload",
                           "dataType": "msg",
                           "specification": "spec",
                           "specificationType": "ui",
                           "items": [
                               {
                                   "type": "byte",
                                   "name": "Verdichter",
                                   "offset": 1,
                                   "length": 1,
                                   "offsetbit": 0,
                                   "scale": "1",
                                   "mask": ""
                               }
                           ],
                           "swap1": "",
                           "swap2": "",
                           "swap3": "",
                           "swap1Type": "swap",
                           "swap2Type": "swap",
                           "swap3Type": "swap",
                           "msgProperty": "payload",
                           "msgPropertyType": "str",
                           "resultType": "keyvalue",
                           "resultTypeType": "return",
                           "multipleResult": false,
                           "fanOutMultipleResult": false,
                           "setTopic": true,
                           "outputs": 1,
                           "x": 670,
                           "y": 2340,
                           "wires": [
                               [
                                   "07d01d518166d7e0"
                               ]
                           ]
                       }
                    ]
                    

                    Jede Zahl in einem Buffer entspricht einem Byte (8 bits - 0-255 etc.)

                    Alexander_1990 1 Reply Last reply Reply Quote 0
                    • Alexander_1990
                      Alexander_1990 @mickym last edited by

                      @mickym viielen herzlichen Dank!! bekomme aber nun einen Fehler eine Kleinigkeit passt wohl noch nicht.

                      498216b6-f644-4542-9fff-affd33e962a6-image.png

                      fd7378f4-c3fa-484e-9256-9553accc8ec7-image.png

                      d7878c6b-2f89-4938-96a3-180c1e0355ad-image.png

                      8.1.2024, 17:59:39node: IDM Verdichter 1 Status
                      msg : error
                      "HomeAssistantError: expected bool for dictionary value @ data['state']. Got {'item1': 0}"

                      mickym 1 Reply Last reply Reply Quote 0
                      • mickym
                        mickym Most Active @Alexander_1990 last edited by mickym

                        @alexander_1990

                        Na dann musst Du den Haken setzen, dass Du einzelne Nachrichten haben willst.

                        097e4463-1d55-4f27-98f9-824743a49eeb-image.png

                        und wenn ein Boolean erwartet wird dann kannst Du das auch von Byte auf Boolean umstellen.

                        47b0b322-d9f0-4371-9bb3-77f7f9932227-image.png

                        und nimmst dann bei dem Bool - das Bit 0 des Bytes.

                        Alexander_1990 1 Reply Last reply Reply Quote 1
                        • Alexander_1990
                          Alexander_1990 @mickym last edited by

                          @mickym ich glaube..... es sieht gut aus! kaum zu glauben alle anderen Register habe ich regulär auslesen können nur die Verdichter haben so komische Werte 😄 jedenfalls vielen vielen herzlichen Dank schonmal - hätteich nicht hinbekommen! Ich beobachte das mal noch etwas aber freue mich sehr nun!

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          1.1k
                          Online

                          31.7k
                          Users

                          79.7k
                          Topics

                          1.3m
                          Posts

                          2
                          18
                          1068
                          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