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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Modbus Master und Slave

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Modbus Master und Slave

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
17 Beiträge 4 Kommentatoren 1.6k Aufrufe 2 Watching
  • Ä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.
  • B bitwicht

    Hallo zusammen.

    Im Netzwerk sind folgende Komponenten:
    Wechselrichter, iobroker, Solarlog

    Ziel wäre es, dass sowohl der iobroker als auch der Solarlog die Daten vom Wechselrichter abruft.
    Wenn nur der iobroker ODER der Solarlog "an" sind geht es, sobald beide "an" sind geht es nicht mehr.

    Meine Vermutung: der iobroker und der Solarlog laufen als Mater.

    Dürfen im Modbus zwei Master vorkommen?

    Wenn das nicht geht, gibt es die Möglichkeit das der iobroker die Daten empfängt und 1:1 wieder zur Verfügung stellt. Dann könnte der Solarlog diese vielleicht am iobroker abrufen? Der Solarlog ist leider eine Blackbox (keinerlei Einstellung möglich). Es gibt nur eine Wechselrichtererkennung die auf TCP 502 läuft (im Class-C Netz).

    Ich hoffe ich konnte mein Problem verständlich beschreiben.

    Grüße
    Bit.

    Ralla66R Offline
    Ralla66R Offline
    Ralla66
    Most Active
    schrieb am zuletzt editiert von
    #2

    @bitwicht sagte in Modbus Master und Slave:

    Ich hoffe ich konnte mein Problem verständlich beschreiben

    eher weniger,
    da ja Bus System können mehrere Teilnehmer angeschlossen sein.

    1 Antwort Letzte Antwort
    0
    • B bitwicht

      Hallo zusammen.

      Im Netzwerk sind folgende Komponenten:
      Wechselrichter, iobroker, Solarlog

      Ziel wäre es, dass sowohl der iobroker als auch der Solarlog die Daten vom Wechselrichter abruft.
      Wenn nur der iobroker ODER der Solarlog "an" sind geht es, sobald beide "an" sind geht es nicht mehr.

      Meine Vermutung: der iobroker und der Solarlog laufen als Mater.

      Dürfen im Modbus zwei Master vorkommen?

      Wenn das nicht geht, gibt es die Möglichkeit das der iobroker die Daten empfängt und 1:1 wieder zur Verfügung stellt. Dann könnte der Solarlog diese vielleicht am iobroker abrufen? Der Solarlog ist leider eine Blackbox (keinerlei Einstellung möglich). Es gibt nur eine Wechselrichtererkennung die auf TCP 502 läuft (im Class-C Netz).

      Ich hoffe ich konnte mein Problem verständlich beschreiben.

      Grüße
      Bit.

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #3

      @bitwicht sagte in Modbus Master und Slave:

      Meine Vermutung: der iobroker und der Solarlog laufen als Mater.
      Dürfen im Modbus zwei Master vorkommen?

      Vermutung hilft nicht weiter!

      ich hab bei Modbus auch immer Probleme die ganzen Begrifflichkeiten

      • Master
      • Slave
      • Client
      • Server
        richtig zuzuordnen.

      Wenn das Energymeter ein Client ist, können iob und Solarlog meines Wissens beide als Master Daten abrufen

      kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      Ralla66R 1 Antwort Letzte Antwort
      0
      • HomoranH Homoran

        @bitwicht sagte in Modbus Master und Slave:

        Meine Vermutung: der iobroker und der Solarlog laufen als Mater.
        Dürfen im Modbus zwei Master vorkommen?

        Vermutung hilft nicht weiter!

        ich hab bei Modbus auch immer Probleme die ganzen Begrifflichkeiten

        • Master
        • Slave
        • Client
        • Server
          richtig zuzuordnen.

        Wenn das Energymeter ein Client ist, können iob und Solarlog meines Wissens beide als Master Daten abrufen

        Ralla66R Offline
        Ralla66R Offline
        Ralla66
        Most Active
        schrieb am zuletzt editiert von
        #4

        @homoran

        sind das nicht einfach Teilnehmer am Bus wobei jeder eine eigene ID hat.
        Jeder kann senden oder empfangen ?

        HomoranH 1 Antwort Letzte Antwort
        0
        • B Offline
          B Offline
          bitwicht
          schrieb am zuletzt editiert von bitwicht
          #5

          @Ralla66
          @Homoran

          Das Problem ist, das ich in keiner Anleitung lesen kann wie sich die Geräte verhalten.

          In den Spezifikationen vom Modbus TCP steht, dass mehrere Master im Bus sein können.

          Der iobroker Modbus Adapter läuft auf: TCP, Master und als Partner ID ist der WR (Solaredge) eingegeben.

          Ich vermute der Solaredge ist ein Slave.
          Ich vermute der Solarlog ist ein Master.

          Sobald der Solarlog und iobroker "an" sind, erhält der Solarlog Daten aber der iobroker rennt in einen Timeout ...

          Ralla66R GlasfaserG 2 Antworten Letzte Antwort
          0
          • B bitwicht

            @Ralla66
            @Homoran

            Das Problem ist, das ich in keiner Anleitung lesen kann wie sich die Geräte verhalten.

            In den Spezifikationen vom Modbus TCP steht, dass mehrere Master im Bus sein können.

            Der iobroker Modbus Adapter läuft auf: TCP, Master und als Partner ID ist der WR (Solaredge) eingegeben.

            Ich vermute der Solaredge ist ein Slave.
            Ich vermute der Solarlog ist ein Master.

            Sobald der Solarlog und iobroker "an" sind, erhält der Solarlog Daten aber der iobroker rennt in einen Timeout ...

            Ralla66R Offline
            Ralla66R Offline
            Ralla66
            Most Active
            schrieb am zuletzt editiert von
            #6

            @bitwicht

            ok, da isses, TCP gekasper, da kann ich nicht helfen.

            sorry

            1 Antwort Letzte Antwort
            0
            • Ralla66R Ralla66

              @homoran

              sind das nicht einfach Teilnehmer am Bus wobei jeder eine eigene ID hat.
              Jeder kann senden oder empfangen ?

              HomoranH Nicht stören
              HomoranH Nicht stören
              Homoran
              Global Moderator Administrators
              schrieb am zuletzt editiert von
              #7

              @ralla66 sagte in Modbus Master und Slave:

              sind das nicht einfach Teilnehmer am Bus wobei jeder eine eigene ID hat.

              frag mich nicht.
              Soweit ich das verstanden habe fordert ein Master die clients auf Daten zu schicken (poll) oder schreibt Daten auf/in den Clients.
              Die Clients z.B. Stromzähler bleiben immer passiv.

              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

              1 Antwort Letzte Antwort
              0
              • B bitwicht

                @Ralla66
                @Homoran

                Das Problem ist, das ich in keiner Anleitung lesen kann wie sich die Geräte verhalten.

                In den Spezifikationen vom Modbus TCP steht, dass mehrere Master im Bus sein können.

                Der iobroker Modbus Adapter läuft auf: TCP, Master und als Partner ID ist der WR (Solaredge) eingegeben.

                Ich vermute der Solaredge ist ein Slave.
                Ich vermute der Solarlog ist ein Master.

                Sobald der Solarlog und iobroker "an" sind, erhält der Solarlog Daten aber der iobroker rennt in einen Timeout ...

                GlasfaserG Offline
                GlasfaserG Offline
                Glasfaser
                schrieb am zuletzt editiert von
                #8

                @bitwicht sagte in Modbus Master und Slave:

                Sobald der Solarlog und iobroker "an" sind, erhält der Solarlog Daten aber der iobroker rennt in einen Timeout ...

                Richtig ... denn Solaredge über TCP läßt nur eine Verbindung zu .

                So habe ich es :

                Per TCP auf den SolarEdge:

                damit ich per Modbus ioBroker es auslesen kann

                Dann per Modbus TCP IP Adapter auf den Bus RS485 vom SolareEdge

                habe ich EVCC daran angebunden

                Deine Lösung wäre :

                Per Modbus Proxy

                https://forum.iobroker.net/post/1099145

                Also Proxy Modbus auf die SolarEdge

                dann Solarlog und ioBroker nehmen dann den Modbus Proxy

                Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                1 Antwort Letzte Antwort
                1
                • B Offline
                  B Offline
                  bitwicht
                  schrieb am zuletzt editiert von
                  #9

                  @Glasfaser

                  Danke für die Antwort.
                  So ganz habe ich es noch nicht verstanden.

                  Ich habe zwei SE WR und kann daher die RS485 nicht verwenden da bei einem WR beide RS485 belegt sind und ich somit nur einen anbinden könnte.

                  Der Solarlog ist ja hard-coded auf Port 502 eingestellt.
                  Heißt der Modbus-Proxy müsste die SE WR zb: auf Port 1502 abfragen und die Daten auf Port 502 für Solarlog und 503 für iobroker bereitstellen?

                  lg Bit

                  GlasfaserG 1 Antwort Letzte Antwort
                  0
                  • B bitwicht

                    @Glasfaser

                    Danke für die Antwort.
                    So ganz habe ich es noch nicht verstanden.

                    Ich habe zwei SE WR und kann daher die RS485 nicht verwenden da bei einem WR beide RS485 belegt sind und ich somit nur einen anbinden könnte.

                    Der Solarlog ist ja hard-coded auf Port 502 eingestellt.
                    Heißt der Modbus-Proxy müsste die SE WR zb: auf Port 1502 abfragen und die Daten auf Port 502 für Solarlog und 503 für iobroker bereitstellen?

                    lg Bit

                    GlasfaserG Offline
                    GlasfaserG Offline
                    Glasfaser
                    schrieb am zuletzt editiert von
                    #10

                    @bitwicht sagte in Modbus Master und Slave:

                    Heißt der Modbus-Proxy müsste die SE WR zb: auf Port 1502 abfragen und die Daten auf Port 502 für Solarlog und 503 für iobroker bereitstellen?

                    Fast richtig

                    ... der Modbus Proxy fragt den WR auf Port 1502 ab ,
                    dann Solarlog und ioBroker auf die Modbus Proxy IP und 1502 einstellen , dieser läßt dann auch mehere Clients zu .

                    Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                    1 Antwort Letzte Antwort
                    0
                    • B Offline
                      B Offline
                      bitwicht
                      schrieb am zuletzt editiert von
                      #11

                      @Glasfaser

                      Ich habe das kurz getestet aber bekomme einen Fehler wenn ich den Port auf 502 öffnen möchte (mit Port 9000 würde es gehen). Hast du eine Idee?

                      pi@raspberrypi:~/.local/bin $ ./modbus-proxy -b tcp://192.168.0.11:502 --modbus tcp://192.168.0.123:1502
                      2024-01-01 15:24:41,936     INFO modbus-proxy: Starting...
                      Traceback (most recent call last):
                        File "/home/pi/.local/bin/./modbus-proxy", line 8, in <module>
                          sys.exit(main())
                        File "/home/pi/.local/lib/python3.9/site-packages/modbus_proxy.py", line 343, in main
                          asyncio.run(run())
                        File "/usr/lib/python3.9/asyncio/runners.py", line 44, in run
                          return loop.run_until_complete(main)
                        File "/usr/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
                          return future.result()
                        File "/home/pi/.local/lib/python3.9/site-packages/modbus_proxy.py", line 338, in run
                          await run_bridges(bridges, ready=ready)
                        File "/home/pi/.local/lib/python3.9/site-packages/modbus_proxy.py", line 327, in run_bridges
                          await start_bridges(bridges)
                        File "/home/pi/.local/lib/python3.9/site-packages/modbus_proxy.py", line 320, in start_bridges
                          await asyncio.gather(*coros)
                        File "/home/pi/.local/lib/python3.9/site-packages/modbus_proxy.py", line 188, in start
                          self.server = await asyncio.start_server(
                        File "/usr/lib/python3.9/asyncio/streams.py", line 94, in start_server
                          return await loop.create_server(factory, host, port, **kwds)
                        File "/usr/lib/python3.9/asyncio/base_events.py", line 1494, in create_server
                          raise OSError(err.errno, 'error while attempting '
                      PermissionError: [Errno 13] error while attempting to bind on address ('192.168.0.11', 502): permission denied
                      
                      
                      GlasfaserG 1 Antwort Letzte Antwort
                      0
                      • B bitwicht

                        @Glasfaser

                        Ich habe das kurz getestet aber bekomme einen Fehler wenn ich den Port auf 502 öffnen möchte (mit Port 9000 würde es gehen). Hast du eine Idee?

                        pi@raspberrypi:~/.local/bin $ ./modbus-proxy -b tcp://192.168.0.11:502 --modbus tcp://192.168.0.123:1502
                        2024-01-01 15:24:41,936     INFO modbus-proxy: Starting...
                        Traceback (most recent call last):
                          File "/home/pi/.local/bin/./modbus-proxy", line 8, in <module>
                            sys.exit(main())
                          File "/home/pi/.local/lib/python3.9/site-packages/modbus_proxy.py", line 343, in main
                            asyncio.run(run())
                          File "/usr/lib/python3.9/asyncio/runners.py", line 44, in run
                            return loop.run_until_complete(main)
                          File "/usr/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
                            return future.result()
                          File "/home/pi/.local/lib/python3.9/site-packages/modbus_proxy.py", line 338, in run
                            await run_bridges(bridges, ready=ready)
                          File "/home/pi/.local/lib/python3.9/site-packages/modbus_proxy.py", line 327, in run_bridges
                            await start_bridges(bridges)
                          File "/home/pi/.local/lib/python3.9/site-packages/modbus_proxy.py", line 320, in start_bridges
                            await asyncio.gather(*coros)
                          File "/home/pi/.local/lib/python3.9/site-packages/modbus_proxy.py", line 188, in start
                            self.server = await asyncio.start_server(
                          File "/usr/lib/python3.9/asyncio/streams.py", line 94, in start_server
                            return await loop.create_server(factory, host, port, **kwds)
                          File "/usr/lib/python3.9/asyncio/base_events.py", line 1494, in create_server
                            raise OSError(err.errno, 'error while attempting '
                        PermissionError: [Errno 13] error while attempting to bind on address ('192.168.0.11', 502): permission denied
                        
                        
                        GlasfaserG Offline
                        GlasfaserG Offline
                        Glasfaser
                        schrieb am zuletzt editiert von
                        #12

                        @bitwicht

                        Ich habe es so ... hinbekommen

                        Docker holt die Daten von Port 4196 von meinem Master
                        (Waveshare Industrial Serial Server RS485 to RJ45 Ethernet TCP/IP to Serial )
                        wo ich zwei Modbus Zähler angeschlossen habe .

                        7e701097-3492-403d-b6c2-1c967ab34c00-grafik.png

                        Einstellung yml Datei

                        devices:
                        - modbus:
                            url: 192.168.178.41:4196
                          listen:
                            bind: 0:4196
                        

                        so in ioBroker :

                        b2c40e5b-f25c-4127-af4a-dd8bcc4abb7f-grafik.png

                        und so in EVCC

                        # - name: my_charger_meter
                           type: template
                           template: eastron
                           usage: charge    
                            # RS485 via TCP/IP (Modbus RTU)
                           modbus: tcpip
                           id: 2
                           host: 192.168.178.11 # Hostname
                           port: 5020 # Port
                        

                        Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                        1 Antwort Letzte Antwort
                        0
                        • B Offline
                          B Offline
                          bitwicht
                          schrieb am zuletzt editiert von
                          #13

                          @Glasfaser

                          Der Port 4196 oder 9000 würde sich starten lassen

                          pi@raspberrypi:~/.local/bin $ ./modbus-proxy -b tcp://0:4196 --modbus tcp://192.168.0.123:1502
                          2024-01-01 15:42:06,788     INFO modbus-proxy: Starting...
                          2024-01-01 15:42:06,796     INFO modbus-proxy.ModBus(192.168.0.123:1502): Ready to accept requests on 0:4196
                          

                          Problem ist, das der Solarlog "hart" auf 502 hört und man den Portnicht ändern kann.

                          Ich muss als den Proxy unter 502 starten wo er den Fehler schmeißt :-(

                          GlasfaserG 1 Antwort Letzte Antwort
                          0
                          • B bitwicht

                            @Glasfaser

                            Der Port 4196 oder 9000 würde sich starten lassen

                            pi@raspberrypi:~/.local/bin $ ./modbus-proxy -b tcp://0:4196 --modbus tcp://192.168.0.123:1502
                            2024-01-01 15:42:06,788     INFO modbus-proxy: Starting...
                            2024-01-01 15:42:06,796     INFO modbus-proxy.ModBus(192.168.0.123:1502): Ready to accept requests on 0:4196
                            

                            Problem ist, das der Solarlog "hart" auf 502 hört und man den Portnicht ändern kann.

                            Ich muss als den Proxy unter 502 starten wo er den Fehler schmeißt :-(

                            GlasfaserG Offline
                            GlasfaserG Offline
                            Glasfaser
                            schrieb am zuletzt editiert von Glasfaser
                            #14

                            @bitwicht

                            Das Problem ist ...
                            ich kenne es von meiner Wetterstation die ich auch eingebunden habe auf Port 9999
                            , da <1025 die Ports Rechte brauchen

                            https://forum.iobroker.net/post/361563

                            Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                            1 Antwort Letzte Antwort
                            0
                            • B Offline
                              B Offline
                              bitwicht
                              schrieb am zuletzt editiert von
                              #15

                              @Glasfaser

                              mit sudo könnte ich es auch testen, aber bekomme ich wieder einen Fehler:

                              Mache ich da mit sudo was falsch?

                              pi@raspberrypi:~/.local/bin $ sudo ./modbus-proxy -b tcp://192.168.0.11:502 --modbus tcp://192.168.0.123:1502
                              Traceback (most recent call last):
                              File "/home/pi/.local/bin/./modbus-proxy", line 5, in <module>
                              from modbus_proxy import main
                              ModuleNotFoundError: No module named 'modbus_proxy'

                              GlasfaserG 1 Antwort Letzte Antwort
                              0
                              • B bitwicht

                                @Glasfaser

                                mit sudo könnte ich es auch testen, aber bekomme ich wieder einen Fehler:

                                Mache ich da mit sudo was falsch?

                                pi@raspberrypi:~/.local/bin $ sudo ./modbus-proxy -b tcp://192.168.0.11:502 --modbus tcp://192.168.0.123:1502
                                Traceback (most recent call last):
                                File "/home/pi/.local/bin/./modbus-proxy", line 5, in <module>
                                from modbus_proxy import main
                                ModuleNotFoundError: No module named 'modbus_proxy'

                                GlasfaserG Offline
                                GlasfaserG Offline
                                Glasfaser
                                schrieb am zuletzt editiert von Glasfaser
                                #16

                                @bitwicht

                                Es liegt an den Ports , nicht an dem Sudo Befehl zum ausführen .

                                Suche gerade im INet ... aber wie du schon schreibts hart auf Port 502 eingestellt

                                Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                                1 Antwort Letzte Antwort
                                0
                                • B Offline
                                  B Offline
                                  bitwicht
                                  schrieb am zuletzt editiert von
                                  #17

                                  @Glasfaser

                                  ah, ich dachte vielleicht darf nur sudo den Port nutzen.
                                  Anscheinend sind im Script oder woher auch immer einige Ports ausgeschlossen.

                                  Muss ich einen anderen Weg suchen.
                                  Ich wollte in erster Linie den Solarlog FTP Export nutzen.

                                  Da ich die Daten eigentlich im iobroker habe, müsste ich die FTP Daten mit dem iobroker zusammenbauen (wenn ich wüsste wie das geht).

                                  1 Antwort Letzte Antwort
                                  0
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate
                                  FAQ Cloud / IOT
                                  HowTo: Node.js-Update
                                  HowTo: Backup/Restore
                                  Downloads
                                  BLOG

                                  288

                                  Online

                                  32.7k

                                  Benutzer

                                  82.4k

                                  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