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

                        916
                        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