Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Iobroker <--> NodeRed Docker Modbus

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    333

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    300

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    929

Iobroker <--> NodeRed Docker Modbus

Geplant Angeheftet Gesperrt Verschoben Off Topic
nodereddockermodbus
3 Beiträge 2 Kommentatoren 323 Aufrufe 2 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M Offline
    M Offline
    Malaus
    schrieb am zuletzt editiert von
    #1

    Hallo Zusammen,

    ich möchte gerne ioBroker mit Nodered über Modbus verbinden.
    Alles ist auf einem RPI4, dabei ist ioBroker normal und Nodered unter Docker installiert worden.
    ioBroker ist unter der IP 192.168.2.100 und Nodered unter 192.168.2.130 (macVlan) zu erreichen.

    Innerhalb von Nodered funktioniert alles. Ich kann über Modbus schreiben und lesen.
    Bildschirm­foto 2022-11-19 um 10.43.29.png

    Unter ioBroker habe ich ebenfalls Nodered installiert und die gleichen Komponenten genommen, um das Register zu lesen:
    Bildschirm­foto 2022-11-19 um 10.46.36.png
    Hier erhalte ich eine Fehlermeldung:

    Client -> fsm init state after reconnecting  TCP@192.168.2.130:502 default Unit-Id: 6
    

    Unter Modbus Adapter als Master, kommt diese Meldung:

    On error: {"errno":-113,"code":"EHOSTUNREACH","syscall":"connect","address":"192.168.2.130","port":502}
    

    Wenn ich das richtig verstehe, kann das Gerät ...130 nicht erreicht werden.

    Leider, komme ich hier an meine Grenzen und weiß nicht, was ich einstellen muss, damit sich diese Geräte erreichen.
    Da Nodered unter Docker als MacVlan eingestellt worden ist, müssten ja alle Ports offen sein?

    Hoffe mir kann jemand helfen.

    Hier ist noch der Flow:

    [
        {
            "id": "c32b1b035b30c015",
            "type": "tab",
            "label": "Flow 2",
            "disabled": false,
            "info": "",
            "env": []
        },
        {
            "id": "3f39af9bcc140e8c",
            "type": "modbus-write",
            "z": "c32b1b035b30c015",
            "name": "",
            "showStatusActivities": true,
            "showErrors": true,
            "unitid": "",
            "dataType": "HoldingRegister",
            "adr": "0",
            "quantity": "1",
            "server": "30b6ebc808160e96",
            "emptyMsgOnFail": false,
            "keepMsgProperties": false,
            "x": 500,
            "y": 280,
            "wires": [
                [
                    "7af7161827adc045"
                ],
                [
                    "05f3c7b49256bbfb"
                ]
            ]
        },
        {
            "id": "e3308ae254bd820d",
            "type": "random",
            "z": "c32b1b035b30c015",
            "name": "",
            "low": 1,
            "high": 10,
            "inte": "true",
            "property": "payload",
            "x": 160,
            "y": 280,
            "wires": [
                [
                    "8804ceacf61db760"
                ]
            ]
        },
        {
            "id": "46699a0f8ba6ac80",
            "type": "inject",
            "z": "c32b1b035b30c015",
            "name": "",
            "props": [
                {
                    "p": "payload"
                },
                {
                    "p": "topic",
                    "vt": "str"
                }
            ],
            "repeat": "",
            "crontab": "",
            "once": false,
            "onceDelay": 0.1,
            "topic": "",
            "payload": "",
            "payloadType": "date",
            "x": 160,
            "y": 220,
            "wires": [
                [
                    "e3308ae254bd820d"
                ]
            ]
        },
        {
            "id": "05f3c7b49256bbfb",
            "type": "modbus-response",
            "z": "c32b1b035b30c015",
            "name": "",
            "registerShowMax": 20,
            "x": 710,
            "y": 280,
            "wires": []
        },
        {
            "id": "7af7161827adc045",
            "type": "debug",
            "z": "c32b1b035b30c015",
            "name": "debug 6",
            "active": true,
            "tosidebar": true,
            "console": false,
            "tostatus": false,
            "complete": "false",
            "statusVal": "",
            "statusType": "auto",
            "x": 680,
            "y": 240,
            "wires": []
        },
        {
            "id": "8804ceacf61db760",
            "type": "function",
            "z": "c32b1b035b30c015",
            "name": "Output 1 control",
            "func": "msg.payload = { value: msg.payload, \n'fc': 6, \n'unitid': 1, \n'address': 0 , \n'quantity': 1 } \nreturn msg;",
            "outputs": 1,
            "noerr": 0,
            "initialize": "",
            "finalize": "",
            "libs": [],
            "x": 320,
            "y": 280,
            "wires": [
                [
                    "3f39af9bcc140e8c"
                ]
            ]
        },
        {
            "id": "064a12e96ba1f6d4",
            "type": "modbus-flex-server",
            "z": "c32b1b035b30c015",
            "name": "",
            "logEnabled": true,
            "serverAddress": "192.168.2.130",
            "serverPort": "502",
            "responseDelay": 100,
            "unitId": 1,
            "delayUnit": "ms",
            "coilsBufferSize": 20000,
            "registersBufferSize": 20000,
            "minAddress": 0,
            "splitAddress": 10000,
            "funcGetCoil": "function getFlexCoil(addr, unitID) {\n\tif (unitID === node.unitId && \n\t\taddr >= node.minAddress && \n\t\taddr <= node.splitAddress) { \n\n\t\treturn node.coils.readUInt8(addr * node.bufferFactor) \n\t}  \n}",
            "funcGetDiscreteInput": "function getFlexDiscreteInput(addr, unitID) {\n\taddr += node.splitAddress\n\tif (unitID === node.unitId && \n\t\taddr >= node.splitAddress && \n\t\taddr <= node.splitAddress * 2) { \n\n\t\treturn node.coils.readUInt8(addr * node.bufferFactor) \n\t}  \n}",
            "funcGetInputRegister": "function getFlexInputRegister(addr, unitID) { \n\tif (unitID === node.unitId && \n\t\taddr >= node.minAddress && \n\t\taddr <= node.splitAddress) { \n\n\t\treturn node.registers.readUInt16BE(addr * node.bufferFactor)  \n\t} \n}",
            "funcGetHoldingRegister": "function getFlexHoldingRegsiter(addr, unitID) { \n\taddr += node.splitAddress\n\tif (unitID === node.unitId && \n\t\taddr >= node.splitAddress && \n\t\taddr <= node.splitAddress * 2) { \n\n\t\treturn node.registers.readUInt16BE(addr * node.bufferFactor)  \n\t} \n}",
            "funcSetCoil": "function setFlexCoil(addr, value, unitID) { \n\tif (unitID === node.unitId && \n\t\taddr >= node.minAddress && \n\t\taddr <= node.splitAddress) { \n\n\t\tnode.coils.writeUInt8(value, addr * node.bufferFactor)  \n\t} \n}",
            "funcSetRegister": "function setFlexRegister(addr, value, unitID) { \n\taddr += node.splitAddress\n\tif (unitID === node.unitId && \n\t\taddr >= node.splitAddress && \n\t\taddr <= node.splitAddress * 2) { \n\n\t\tnode.registers.writeUInt16BE(value, addr * node.bufferFactor)  \n\t} \n}",
            "showErrors": true,
            "x": 380,
            "y": 100,
            "wires": [
                [],
                [],
                [],
                [],
                []
            ]
        },
        {
            "id": "3ebc92c2c64ebe19",
            "type": "inject",
            "z": "c32b1b035b30c015",
            "name": "",
            "props": [
                {
                    "p": "payload"
                },
                {
                    "p": "topic",
                    "vt": "str"
                }
            ],
            "repeat": "",
            "crontab": "",
            "once": false,
            "onceDelay": 0.1,
            "topic": "",
            "payload": "",
            "payloadType": "date",
            "x": 160,
            "y": 400,
            "wires": [
                [
                    "f8d19f13feb1fd4c"
                ]
            ]
        },
        {
            "id": "f8d19f13feb1fd4c",
            "type": "modbus-getter",
            "z": "c32b1b035b30c015",
            "name": "",
            "showStatusActivities": true,
            "showErrors": true,
            "logIOActivities": false,
            "unitid": "",
            "dataType": "HoldingRegister",
            "adr": "0",
            "quantity": "1",
            "server": "30b6ebc808160e96",
            "useIOFile": false,
            "ioFile": "",
            "useIOForPayload": false,
            "emptyMsgOnFail": false,
            "keepMsgProperties": false,
            "x": 500,
            "y": 400,
            "wires": [
                [],
                [
                    "6f9a0dcac2cb4296"
                ]
            ]
        },
        {
            "id": "6f9a0dcac2cb4296",
            "type": "modbus-response",
            "z": "c32b1b035b30c015",
            "name": "",
            "registerShowMax": 20,
            "x": 710,
            "y": 400,
            "wires": []
        },
        {
            "id": "30b6ebc808160e96",
            "type": "modbus-client",
            "name": "",
            "clienttype": "tcp",
            "bufferCommands": true,
            "stateLogEnabled": false,
            "queueLogEnabled": false,
            "failureLogEnabled": true,
            "tcpHost": "192.168.2.130",
            "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": 1000,
            "reconnectOnTimeout": true,
            "reconnectTimeout": 2000,
            "parallelUnitIdsAllowed": true
        }
    ]
    
    1 Antwort Letzte Antwort
    0
    • mickymM Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von mickym
      #2

      Ich kenn mich mit dem Modbus nicht aus. Aber kann es sein, dass Du nicht mehrfach auf die gleiche Schnittstelle zugreifen kannst. Mach halt mal Deine Dockerinstallation mit NodeRed (also die funktioniert) komplett inaktiv und schau, ob dann der Connect funktioniert?

      Und dann auch immer nur eines - entweder Adapter oder NodeRed. - Ich kann mir immer schlecht vorstellen, dass man solche Schnittstellen mehrfach nutzen kann ohne das es Konflikte gibt.

      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.

      M 1 Antwort Letzte Antwort
      0
      • mickymM mickym

        Ich kenn mich mit dem Modbus nicht aus. Aber kann es sein, dass Du nicht mehrfach auf die gleiche Schnittstelle zugreifen kannst. Mach halt mal Deine Dockerinstallation mit NodeRed (also die funktioniert) komplett inaktiv und schau, ob dann der Connect funktioniert?

        Und dann auch immer nur eines - entweder Adapter oder NodeRed. - Ich kann mir immer schlecht vorstellen, dass man solche Schnittstellen mehrfach nutzen kann ohne das es Konflikte gibt.

        M Offline
        M Offline
        Malaus
        schrieb am zuletzt editiert von
        #3

        @mickym
        Verbindungen kann man mehrere öffnen, dafür gibts die Device ID.

        Wenn ich unter ioBroker Nodered einen Modbus Server öffne und in das Register 0 einen Wert schreibe, kann ich über iobroker Modbus Adapter & Nodered Container, diesen Wert abrufen.
        In die andere Richtung, also von Nodered Container zu ioBroker funktioniert es leider nicht, Weder MacVlan oder Bridge Mode.
        Hier mal bildlich dargestellt:
        Bildschirm­foto 2022-11-19 um 18.00.43.png

        Meine Vermutung ist, dass da sich irgendwas beißt, weil alles von einem Gerät kommt.
        Mit der Lösung, könnte ich leben. Dennoch würde es mich schon interessieren, wieso die andere Variante nicht funktioniert.

        1 Antwort Letzte Antwort
        0

        Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

        Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

        Mit deinem Input könnte dieser Beitrag noch besser werden 💗

        Registrieren Anmelden
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        485

        Online

        32.8k

        Benutzer

        82.8k

        Themen

        1.3m

        Beiträge
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
        ioBroker Community 2014-2025
        logo
        • Anmelden

        • Du hast noch kein Konto? Registrieren

        • Anmelden oder registrieren, um zu suchen
        • Erster Beitrag
          Letzter Beitrag
        0
        • Home
        • Aktuell
        • Tags
        • Ungelesen 0
        • Kategorien
        • Unreplied
        • Beliebt
        • GitHub
        • Docu
        • Hilfe