Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Modbus Master und Slave

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    Modbus Master und Slave

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

      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.

      Ralla66 Homoran 2 Replies Last reply Reply Quote 0
      • Ralla66
        Ralla66 Most Active @bitwicht last edited by

        @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 Reply Last reply Reply Quote 0
        • Homoran
          Homoran Global Moderator Administrators @bitwicht last edited by

          @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

          Ralla66 1 Reply Last reply Reply Quote 0
          • Ralla66
            Ralla66 Most Active @Homoran last edited by

            @homoran

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

            Homoran 1 Reply Last reply Reply Quote 0
            • B
              bitwicht last edited by 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 ...

              Ralla66 Glasfaser 2 Replies Last reply Reply Quote 0
              • Ralla66
                Ralla66 Most Active @bitwicht last edited by

                @bitwicht

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

                sorry

                1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @Ralla66 last edited by

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

                  1 Reply Last reply Reply Quote 0
                  • Glasfaser
                    Glasfaser @bitwicht last edited by

                    @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

                    1 Reply Last reply Reply Quote 1
                    • B
                      bitwicht last edited by

                      @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

                      Glasfaser 1 Reply Last reply Reply Quote 0
                      • Glasfaser
                        Glasfaser @bitwicht last edited by

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

                        1 Reply Last reply Reply Quote 0
                        • B
                          bitwicht last edited by

                          @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
                          
                          
                          Glasfaser 1 Reply Last reply Reply Quote 0
                          • Glasfaser
                            Glasfaser @bitwicht last edited by

                            @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
                            
                            1 Reply Last reply Reply Quote 0
                            • B
                              bitwicht last edited by

                              @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 😞

                              Glasfaser 1 Reply Last reply Reply Quote 0
                              • Glasfaser
                                Glasfaser @bitwicht last edited by Glasfaser

                                @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

                                1 Reply Last reply Reply Quote 0
                                • B
                                  bitwicht last edited by

                                  @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'

                                  Glasfaser 1 Reply Last reply Reply Quote 0
                                  • Glasfaser
                                    Glasfaser @bitwicht last edited by Glasfaser

                                    @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

                                    1 Reply Last reply Reply Quote 0
                                    • B
                                      bitwicht last edited by

                                      @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 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post

                                      Support us

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

                                      621
                                      Online

                                      32.0k
                                      Users

                                      80.5k
                                      Topics

                                      1.3m
                                      Posts

                                      4
                                      17
                                      1185
                                      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