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. Alfen Wallbox - Modbus mit Float und INT64

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Alfen Wallbox - Modbus mit Float und INT64

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      A1uca2d last edited by

      Hallo Leute,

      ich habe gemäß der Anleitung von haus-automatisierung.com (Link) versucht meine Alfen Wallbox mit Node-Red auszulesen.
      Den Großteil bekomme ich auch hin. Aber mit den FLOAT und bigint64 habe ich Probleme.

      So sieht es in Node-Red aus:
      1662fff3-45c2-408b-8b45-7e0fa7e4b9db-image.png

      Das ist die Konfiguration für die (Uptime) Buffer-Parser-Node:
      7615f574-d5c5-440b-af5a-249097beb3ea-image.png

      Das wäre die Einstellung gemäß Hersteller für die Adressen:
      be85c5b9-b066-4289-8358-72053a6c4558-image.png

      Das wäre der zugehörige Fehler-Log:

      node-red.0
      2023-04-29 14:00:28.321	error	29 Apr 14:00:28 - [error] [buffer-parser:93f8fd036c26bcc2] RangeError: The value of "offset" is out of range. It must be >= 0 and <= 0. Received 4 at new NodeError (node:internal/errors:387:5) at boundsError (node:internal/buffer:86:9) at Buffer.readFloatBackwards [as readFloatBE] (node:internal/buffer:518:5) at dataGetter (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:378:31) at itemReader (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:337:30) at parser (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:475:25) at bufferParserNode._inputCallback (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:761:31) at /opt/iobroker/node_modules/@node-red/runtime/lib/nodes/Node.js:210:26 at Object.trigger (/opt/iobroker/node_modules/@node-red/util/lib/hooks.js:166:13) at bufferParserNode.Node._emitInput (/opt/iobroker/node_modules/@node-red/runtime/lib/nodes/Node.js:202:11)
      
      node-red.0
      2023-04-29 14:00:28.196	error	29 Apr 14:00:28 - [error] [buffer-parser:36b6db928c80dde6] RangeError: The value of "offset" is out of range. It must be >= 0 and <= 0. Received 4 at new NodeError (node:internal/errors:387:5) at boundsError (node:internal/buffer:86:9) at Buffer.readFloatBackwards [as readFloatBE] (node:internal/buffer:518:5) at dataGetter (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:378:31) at itemReader (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:337:30) at parser (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:475:25) at bufferParserNode._inputCallback (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:761:31) at /opt/iobroker/node_modules/@node-red/runtime/lib/nodes/Node.js:210:26 at Object.trigger (/opt/iobroker/node_modules/@node-red/util/lib/hooks.js:166:13) at bufferParserNode.Node._emitInput (/opt/iobroker/node_modules/@node-red/runtime/lib/nodes/Node.js:202:11)
      
      node-red.0
      2023-04-29 14:00:28.071	error	29 Apr 14:00:28 - [error] [buffer-parser:a71b61da88b72f57] RangeError: The value of "offset" is out of range. It must be >= 0 and <= 0. Received 8 at new NodeError (node:internal/errors:387:5) at boundsError (node:internal/buffer:86:9) at Buffer.readBigUInt64BE (node:internal/buffer:117:5) at dataGetter (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:378:31) at itemReader (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:337:30) at parser (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:467:25) at bufferParserNode._inputCallback (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:761:31) at /opt/iobroker/node_modules/@node-red/runtime/lib/nodes/Node.js:210:26 at Object.trigger (/opt/iobroker/node_modules/@node-red/util/lib/hooks.js:166:13) at bufferParserNode.Node._emitInput (/opt/iobroker/node_modules/@node-red/runtime/lib/nodes/Node.js:202:11)
      
      node-red.0
      2023-04-29 14:00:23.801	warn	29 Apr 14:00:23 - [warn] [modbus-client:Wallbox-Slave200] Client -> fsm connected after state init Get More About It By Logging TCP@192.168.1.106:502 default Unit-Id: 1
      
      node-red.0
      2023-04-29 14:00:21.899	error	29 Apr 14:00:21 - [error] [modbus-getter:100] Error: Client Not Ready To Read At State init at Object.<anonymous> (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-modbus/modbus/maps/modbus-client.js:472:15) at Object.emit (node:events:513:28) at Object.origMsgInput [as emit] (/opt/iobroker/node_modules/@node-red/runtime/lib/nodes/Node.js:188:20) at Object._inputCallback (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-modbus/modbus/maps/modbus-getter.js:104:13) at /opt/iobroker/node_modules/@node-red/runtime/lib/nodes/Node.js:210:26 at Object.trigger (/opt/iobroker/node_modules/@node-red/util/lib/hooks.js:166:13) at Object.Node._emitInput (/opt/iobroker/node_modules/@node-red/runtime/lib/nodes/Node.js:202:11) at Object.Node.emit (/opt/iobroker/node_modules/@node-red/runtime/lib/nodes/Node.js:186:25) at Object.Node.receive (/opt/iobroker/node_modules/@node-red/runtime/lib/nodes/Node.js:485:10) at Immediate._onImmediate (/opt/iobroker/node_modules/@node-red/runtime/lib/flows/Flow.js:831:52)
      
      node-red.0
      2023-04-29 14:00:21.799	warn	29 Apr 14:00:21 - [warn] [modbus-client:Wallbox-Slave200] Client -> fsm init in 2000 ms TCP@192.168.1.106:502 default Unit-Id: 1
      
      node-red.0
      2023-04-29 14:00:21.799	warn	29 Apr 14:00:21 - [warn] [modbus-client:Wallbox-Slave200] Client -> fsm init state after new TCP@192.168.1.106:502 default Unit-Id: 1
      

      Hat jemand eine Idee, wo mein Fehler liegt?
      Danke euch

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

        @a1uca2d Na sieht so aus, als ob der offset falsch ist. Dir wird wohl nichts anderes übrig bleiben und mit debug nodes Deinen buffer zu untersuchen.

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

          @mickym Wie stelle ich das den an (den Buffer weiter zu untersuchen)?
          Ich dachte, dass ich mit dem Log (in ersten Post) bereits alle Daten habe, die es zu Sammeln gibt.

          Was ich nicht verstehe ist, dass es bei dem Tutorial mit einem Offset von 0 Funktioniert. Ich habe mittlerweile von 0-8 alles durch und es geht nicht.
          Habe ich ggf. den Datentyp falsch angegeben? Ich habe bigUInt64 be (und Float be), die "original" Datentypen aus der Bedienungsanleitung finde ich in Node-Red nicht.

          Bild aus dem Tutorial:
          c2f1737e-c07e-4abc-bd2a-f19629b0a59c-image.png

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

            @a1uca2d Also int16(be), nur der vorletzte ist ein längerer, wobei ein unint64 8 Bytes und nicht 4 Bytes sind. Diese Längenangaben schauen mir nach Words und nicht nach Bytes aus. Ein 16bit Integer umfasst 2 Bytes und nicht 1. Mach eine debug node hinter die modus node und vor die parser node und lies den Puffer aus, den Du da rein jagst. Normalerweise gibst du gar keine Längen ein, weil die parser node selbst weiß wie lange die Datentypen sind. Ich würde also immer Länge 1 eintragen und Offset 0 eintragen

            Anhand des Logs im iobroker siehst du doch welche nodes eine Fehler schmeißen. Wenn ich Dir da wirklich helfen soll, dann musst du halt zeitnah das machen und den Flow untersuchen und die Daten hier posten. Ich selbst habe die Daten nicht und kein Modbus

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

              @mickym Hier wäre nun mein Ergebnis. Hoffe das hilft

              4fad9d81-ebc3-4a5a-82d2-de6566497829-image.png

              
              node-red.0
              2023-05-15 14:03:55.068	info	15 May 12:03:55 - [info] [debug:debug 3] [ 16945, 0 ]
              
              node-red.0
              2023-05-15 14:03:55.068	error	15 May 12:03:55 - [error] [buffer-parser:93f8fd036c26bcc2] RangeError: The value of "offset" is out of range. It must be >= 0 and <= 0. Received 2 at new NodeError (node:internal/errors:387:5) at boundsError (node:internal/buffer:86:9) at Buffer.readFloatBackwards [as readFloatBE] (node:internal/buffer:518:5) at dataGetter (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:378:31) at itemReader (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:337:30) at parser (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:475:25) at bufferParserNode._inputCallback (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:761:31) at /opt/iobroker/node_modules/@node-red/runtime/lib/nodes/Node.js:210:26 at Object.trigger (/opt/iobroker/node_modules/@node-red/util/lib/hooks.js:166:13) at bufferParserNode.Node._emitInput (/opt/iobroker/node_modules/@node-red/runtime/lib/nodes/Node.js:202:11)
              
              node-red.0
              2023-05-15 14:03:54.944	info	15 May 12:03:54 - [info] [debug:debug 2] [ 16896, 0 ]
              
              node-red.0
              2023-05-15 14:03:54.943	error	15 May 12:03:54 - [error] [buffer-parser:36b6db928c80dde6] RangeError: The value of "offset" is out of range. It must be >= 0 and <= 0. Received 2 at new NodeError (node:internal/errors:387:5) at boundsError (node:internal/buffer:86:9) at Buffer.readFloatBackwards [as readFloatBE] (node:internal/buffer:518:5) at dataGetter (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:378:31) at itemReader (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:337:30) at parser (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:475:25) at bufferParserNode._inputCallback (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:761:31) at /opt/iobroker/node_modules/@node-red/runtime/lib/nodes/Node.js:210:26 at Object.trigger (/opt/iobroker/node_modules/@node-red/util/lib/hooks.js:166:13) at bufferParserNode.Node._emitInput (/opt/iobroker/node_modules/@node-red/runtime/lib/nodes/Node.js:202:11)
              
              node-red.0
              2023-05-15 14:03:54.819	info	15 May 12:03:54 - [info] [debug:debug 1] [ 0, 0, 1235, 24269 ]
              
              node-red.0
              2023-05-15 14:03:54.818	error	15 May 12:03:54 - [error] [buffer-parser:a71b61da88b72f57] RangeError: The value of "offset" is out of range. It must be >= 0 and <= 0. Received 8 at new NodeError (node:internal/errors:387:5) at boundsError (node:internal/buffer:86:9) at Buffer.readBigUInt64BE (node:internal/buffer:117:5) at dataGetter (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:378:31) at itemReader (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:337:30) at parser (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:467:25) at bufferParserNode._inputCallback (/opt/iobroker/iobroker-data/node-red/node_modules/node-red-contrib-buffer-parser/buffer-parser.js:761:31) at /opt/iobroker/node_modules/@node-red/runtime/lib/nodes/Node.js:210:26 at Object.trigger (/opt/iobroker/node_modules/@node-red/util/lib/hooks.js:166:13) at bufferParserNode.Node._emitInput (/opt/iobroker/node_modules/@node-red/runtime/lib/nodes/Node.js:202:11)
              
              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @A1uca2d last edited by mickym

                @a1uca2d sagte in Alfen Wallbox - Modbus mit Float und INT64:

                So also das sind 16bit Integer Arrays und mE funktionieren die. War zwar bissi mühsam, dass aus deinem Log zusammenzusuchen:

                efa13aad-f67b-4eeb-8cf9-2b0e592c9013-image.png

                Oben das dürfte die Uptime in ms sein. (also ca. 22 Std. wenn ich das richtig lese).
                dann die Anzahl der Stations = 32
                und dann die Temperatur = 44,25°C

                Hier mal zum Import:

                [
                   {
                       "id": "122d62e77fa33d92",
                       "type": "inject",
                       "z": "de1f56bf49f15fbc",
                       "name": "array debug 1",
                       "props": [
                           {
                               "p": "payload"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "",
                       "payload": " [0, 0, 1235, 24269]",
                       "payloadType": "json",
                       "x": 230,
                       "y": 560,
                       "wires": [
                           [
                               "fc87ba318c7e35ed",
                               "1ebf26978d56dd37"
                           ]
                       ]
                   },
                   {
                       "id": "4b9d38a92eae13b4",
                       "type": "inject",
                       "z": "de1f56bf49f15fbc",
                       "name": "array debug 2",
                       "props": [
                           {
                               "p": "payload"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "",
                       "payload": " [16896, 0 ]",
                       "payloadType": "json",
                       "x": 230,
                       "y": 660,
                       "wires": [
                           [
                               "28e3c4c23e6348c5",
                               "da579efb7dbd55ad"
                           ]
                       ]
                   },
                   {
                       "id": "fb6aecc2aa756bfd",
                       "type": "inject",
                       "z": "de1f56bf49f15fbc",
                       "name": "array debug 3",
                       "props": [
                           {
                               "p": "payload"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "",
                       "payload": "[16945, 0]",
                       "payloadType": "json",
                       "x": 230,
                       "y": 760,
                       "wires": [
                           [
                               "c083106012321733",
                               "fd677db83963a938"
                           ]
                       ]
                   },
                   {
                       "id": "fc87ba318c7e35ed",
                       "type": "buffer-parser",
                       "z": "de1f56bf49f15fbc",
                       "name": "",
                       "data": "payload",
                       "dataType": "msg",
                       "specification": "spec",
                       "specificationType": "ui",
                       "items": [
                           {
                               "type": "biguint64be",
                               "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": false,
                       "setTopic": true,
                       "outputs": 1,
                       "x": 470,
                       "y": 560,
                       "wires": [
                           [
                               "4673cfc3cfaa9299"
                           ]
                       ]
                   },
                   {
                       "id": "28e3c4c23e6348c5",
                       "type": "buffer-parser",
                       "z": "de1f56bf49f15fbc",
                       "name": "",
                       "data": "payload",
                       "dataType": "msg",
                       "specification": "spec",
                       "specificationType": "ui",
                       "items": [
                           {
                               "type": "floatbe",
                               "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": false,
                       "setTopic": true,
                       "outputs": 1,
                       "x": 470,
                       "y": 660,
                       "wires": [
                           [
                               "0f511e29902e423c"
                           ]
                       ]
                   },
                   {
                       "id": "c083106012321733",
                       "type": "buffer-parser",
                       "z": "de1f56bf49f15fbc",
                       "name": "",
                       "data": "payload",
                       "dataType": "msg",
                       "specification": "spec",
                       "specificationType": "ui",
                       "items": [
                           {
                               "type": "floatbe",
                               "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": false,
                       "setTopic": true,
                       "outputs": 1,
                       "x": 470,
                       "y": 760,
                       "wires": [
                           [
                               "99b56bdd5d8158fa"
                           ]
                       ]
                   },
                   {
                       "id": "0f511e29902e423c",
                       "type": "debug",
                       "z": "de1f56bf49f15fbc",
                       "name": "float(be) -Station Active Max Current",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 750,
                       "y": 660,
                       "wires": []
                   },
                   {
                       "id": "99b56bdd5d8158fa",
                       "type": "debug",
                       "z": "de1f56bf49f15fbc",
                       "name": "float(be) - Temperature",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 700,
                       "y": 760,
                       "wires": []
                   },
                   {
                       "id": "4673cfc3cfaa9299",
                       "type": "debug",
                       "z": "de1f56bf49f15fbc",
                       "name": "buguint64(be) - Uptime",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 700,
                       "y": 560,
                       "wires": []
                   },
                   {
                       "id": "1ebf26978d56dd37",
                       "type": "debug",
                       "z": "de1f56bf49f15fbc",
                       "name": "array debug 1",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 480,
                       "y": 520,
                       "wires": []
                   },
                   {
                       "id": "da579efb7dbd55ad",
                       "type": "debug",
                       "z": "de1f56bf49f15fbc",
                       "name": "array debug 2",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 480,
                       "y": 620,
                       "wires": []
                   },
                   {
                       "id": "fd677db83963a938",
                       "type": "debug",
                       "z": "de1f56bf49f15fbc",
                       "name": "array debug 3",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 480,
                       "y": 720,
                       "wires": []
                   }
                ]
                

                Keine Ahnung was Du da eingegeben hast. Wie gesagt nichts mit Offset oder Längen rumspielen.

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

                  @mickym Damit habe ich es verstanden. bei dem uInt64 muss ich bei dem Buffer parser die länge 1 angeben und nicht länge 4.
                  Danke dir für die Hilfe. Nun läuft es.

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

                    @a1uca2d Die Länge wie ein Wert abgebildet wird, weiß der Parser doch selbst durch den Datentyp. 😉 - Die Länge 4 in der Beschreibung gibt nur die Menge der Int16 Werte an, die so ein bigInt hat.

                    Die 4 zeigen also nur [ 0, 0, 1235, 24269 ] die Anzahl der Integerwerte, die eingehen. Bei der Länge von 4 und bigint64 - würde der Parser als 16 Int16- Werte erwarten.

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    567
                    Online

                    31.7k
                    Users

                    79.7k
                    Topics

                    1.3m
                    Posts

                    communication node-red
                    2
                    8
                    570
                    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