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. Einsteigerfragen
  4. Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter

Geplant Angeheftet Gesperrt Verschoben Einsteigerfragen
187 Beiträge 20 Kommentatoren 25.1k Aufrufe 16 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.
  • spicerS spicer

    Hier, um meine "unschuld" zu beweisen ^^

    grafik.png

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

    @spicer sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

    Hier, um meine "unschuld" zu beweisen ^^

    dann hast du den Filter im log wahrscheinlich auf Info

    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 -

    spicerS 1 Antwort Letzte Antwort
    0
    • Thomas BraunT Thomas Braun

      @spicer sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

      node: v20.20.0

      iob nodejs-update
      

      dringend ausführen.

      spicerS Online
      spicerS Online
      spicer
      schrieb am zuletzt editiert von
      #166

      @Thomas-Braun sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

      @spicer sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

      node: v20.20.0

      iob nodejs-update
      

      dringend ausführen.

      Nothing to do - Your installation is using the correct paths.
      
      You are missing the nodesource.list or
      you want to change your current nodejs version: v20.20.0 ?
      

      Ist den v20 veraltet?

      Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine davon in einer Katastrophe endet oder sonstwie unerwünschte Konsequenzen nach sich zieht, dann wird es jemand genau so machen. Alles, was schiefgehen kann, wird auch schiefgehen.
      (Murphys Gesetz)

      Thomas BraunT 1 Antwort Letzte Antwort
      0
      • HomoranH Homoran

        @spicer sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

        Hier, um meine "unschuld" zu beweisen ^^

        dann hast du den Filter im log wahrscheinlich auf Info

        spicerS Online
        spicerS Online
        spicer
        schrieb am zuletzt editiert von
        #167

        @Homoran sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

        @spicer sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

        Hier, um meine "unschuld" zu beweisen ^^

        dann hast du den Filter im log wahrscheinlich auf Info

        	
        Zeit
        	
        	
        modbus.0
        	2026-02-04 21:13:58.778	info	Disconnected from slave 192.168.1.101
        modbus.0
        	2026-02-04 21:13:58.777	debug	Closing client on purpose.
        modbus.0
        	2026-02-04 21:13:57.777	debug	Cleaning up request fifo.
        modbus.0
        	2026-02-04 21:13:57.777	debug	Clearing timeout of the current request.
        modbus.0
        	2026-02-04 21:13:57.776	debug	Socket closed with error
        modbus.0
        	2026-02-04 21:13:51.738	debug	Sending pdu to the socket.
        modbus.0
        	2026-02-04 21:13:51.737	debug	[DevID_1/holdingRegs] Poll address 1156 - 1 registers
        modbus.0
        	2026-02-04 21:13:51.737	debug	[DevID_1] Poll start ---------------------
        modbus.0
        	2026-02-04 21:13:51.735	info	Connected to slave
        modbus.0
        	2026-02-04 21:13:26.697	info	Disconnected from slave 192.168.1.101
        modbus.0
        	2026-02-04 21:13:26.695	debug	Closing client on purpose.
        modbus.0
        	2026-02-04 21:13:25.693	debug	Cleaning up request fifo.
        modbus.0
        	2026-02-04 21:13:25.693	debug	Clearing timeout of the current request.
        modbus.0
        	2026-02-04 21:13:25.692	debug	Socket closed with error
        modbus.0
        	2026-02-04 21:13:19.660	debug	Sending pdu to the socket.
        modbus.0
        	2026-02-04 21:13:19.657	debug	[DevID_1/holdingRegs] Poll address 1156 - 1 registers
        modbus.0
        	2026-02-04 21:13:19.656	debug	Initialization of scale factors done!
        modbus.0
        	2026-02-04 21:13:19.653	debug	[DevID_1] Poll start ---------------------
        modbus.0
        	2026-02-04 21:13:19.652	info	Connected to slave
        modbus.0
        	2026-02-04 21:13:19.340	debug	Add holdingRegisters._1540Voltage_Bat1: {"_id":"holdingRegisters._1540Voltage_Bat1","type":"state","common":{"name":"","role":"value","type":"number","read":true,"write":true,"def":0,"unit":"V"},"native":{"regType":"holdingRegs","address":1540,"deviceId":1,"type":"uint16be","len":1,"offset":0,"factor":0.1,"poll":true}}
        modbus.0
        	2026-02-04 21:13:19.339	debug	Add holdingRegisters._Frequency_Grid: {"_id":"holdingRegisters._Frequency_Grid","type":"state","common":{"name":"","role":"value","type":"number","read":true,"write":true,"def":0,"unit":"Hz"},"native":{"regType":"holdingRegs","address":1156,"deviceId":1,"type":"uint16be","len":1,"offset":0,"factor":0.01,"poll":true}}
        modbus.0
        	2026-02-04 21:13:19.339	debug	Initialize Objects for holdingRegs: [{"_address":1156,"name":"Frequency_Grid","description":"","unit":"Hz","type":"uint16be","len":1,"factor":0.01,"offset":0,"formula":"","role":"value","room":"","poll":true,"wp":"","cw":"","isScale":"","address":1156,"deviceId":1,"id":"holdingRegisters._Frequency_Grid"},{"_address":1540,"name":"1540Voltage_Bat1","description":"","unit":"V","type":"uint16be","len":1,"factor":0.1,"offset":0,"formula":"","role":"value","room":"","poll":true,"wp":"","cw":"","isScale":"","address":1540,"deviceId":1,"id":"holdingRegisters._1540Voltage_Bat1"}]
        modbus.0
        	2026-02-04 21:13:19.338	debug	Initialize Objects for inputRegs: []
        modbus.0
        	2026-02-04 21:13:19.338	debug	Initialize Objects for coils: []
        modbus.0
        	2026-02-04 21:13:19.337	debug	Initialize Objects for disInputs: []
        modbus.0
        	2026-02-04 21:13:19.121	info	starting. Version 6.3.2 in /opt/iobroker/node_modules/iobroker.modbus, node: v20.20.0, js-controller: 7.0.7
        modbus.0
        	2026-02-04 21:13:18.693	debug	Plugin sentry Initialize Plugin (enabled=true)
        

        Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine davon in einer Katastrophe endet oder sonstwie unerwünschte Konsequenzen nach sich zieht, dann wird es jemand genau so machen. Alles, was schiefgehen kann, wird auch schiefgehen.
        (Murphys Gesetz)

        HomoranH 1 Antwort Letzte Antwort
        0
        • spicerS spicer

          @Thomas-Braun sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

          @spicer sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

          node: v20.20.0

          iob nodejs-update
          

          dringend ausführen.

          Nothing to do - Your installation is using the correct paths.
          
          You are missing the nodesource.list or
          you want to change your current nodejs version: v20.20.0 ?
          

          Ist den v20 veraltet?

          Thomas BraunT Online
          Thomas BraunT Online
          Thomas Braun
          Most Active
          schrieb am zuletzt editiert von Thomas Braun
          #168

          @spicer sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

          Ist den v20 veraltet?

          Ja. 22 ist schon geraume Zeit die Empfehlung und nodejs 20 wird in ein paar Wochen das 'End-of-Life' erreichen.
          Es ist dringend an der Zeit den Gaul zu wechseln.

          you want to change your current nodejs version: v20.20.0 ?

          Ja, willst du.

          Linux-Werkzeugkasten:
          https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
          NodeJS Fixer Skript:
          https://forum.iobroker.net/topic/68035/iob-node-fix-skript
          iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

          1 Antwort Letzte Antwort
          0
          • spicerS spicer

            @Homoran sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

            @spicer sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

            Hier, um meine "unschuld" zu beweisen ^^

            dann hast du den Filter im log wahrscheinlich auf Info

            	
            Zeit
            	
            	
            modbus.0
            	2026-02-04 21:13:58.778	info	Disconnected from slave 192.168.1.101
            modbus.0
            	2026-02-04 21:13:58.777	debug	Closing client on purpose.
            modbus.0
            	2026-02-04 21:13:57.777	debug	Cleaning up request fifo.
            modbus.0
            	2026-02-04 21:13:57.777	debug	Clearing timeout of the current request.
            modbus.0
            	2026-02-04 21:13:57.776	debug	Socket closed with error
            modbus.0
            	2026-02-04 21:13:51.738	debug	Sending pdu to the socket.
            modbus.0
            	2026-02-04 21:13:51.737	debug	[DevID_1/holdingRegs] Poll address 1156 - 1 registers
            modbus.0
            	2026-02-04 21:13:51.737	debug	[DevID_1] Poll start ---------------------
            modbus.0
            	2026-02-04 21:13:51.735	info	Connected to slave
            modbus.0
            	2026-02-04 21:13:26.697	info	Disconnected from slave 192.168.1.101
            modbus.0
            	2026-02-04 21:13:26.695	debug	Closing client on purpose.
            modbus.0
            	2026-02-04 21:13:25.693	debug	Cleaning up request fifo.
            modbus.0
            	2026-02-04 21:13:25.693	debug	Clearing timeout of the current request.
            modbus.0
            	2026-02-04 21:13:25.692	debug	Socket closed with error
            modbus.0
            	2026-02-04 21:13:19.660	debug	Sending pdu to the socket.
            modbus.0
            	2026-02-04 21:13:19.657	debug	[DevID_1/holdingRegs] Poll address 1156 - 1 registers
            modbus.0
            	2026-02-04 21:13:19.656	debug	Initialization of scale factors done!
            modbus.0
            	2026-02-04 21:13:19.653	debug	[DevID_1] Poll start ---------------------
            modbus.0
            	2026-02-04 21:13:19.652	info	Connected to slave
            modbus.0
            	2026-02-04 21:13:19.340	debug	Add holdingRegisters._1540Voltage_Bat1: {"_id":"holdingRegisters._1540Voltage_Bat1","type":"state","common":{"name":"","role":"value","type":"number","read":true,"write":true,"def":0,"unit":"V"},"native":{"regType":"holdingRegs","address":1540,"deviceId":1,"type":"uint16be","len":1,"offset":0,"factor":0.1,"poll":true}}
            modbus.0
            	2026-02-04 21:13:19.339	debug	Add holdingRegisters._Frequency_Grid: {"_id":"holdingRegisters._Frequency_Grid","type":"state","common":{"name":"","role":"value","type":"number","read":true,"write":true,"def":0,"unit":"Hz"},"native":{"regType":"holdingRegs","address":1156,"deviceId":1,"type":"uint16be","len":1,"offset":0,"factor":0.01,"poll":true}}
            modbus.0
            	2026-02-04 21:13:19.339	debug	Initialize Objects for holdingRegs: [{"_address":1156,"name":"Frequency_Grid","description":"","unit":"Hz","type":"uint16be","len":1,"factor":0.01,"offset":0,"formula":"","role":"value","room":"","poll":true,"wp":"","cw":"","isScale":"","address":1156,"deviceId":1,"id":"holdingRegisters._Frequency_Grid"},{"_address":1540,"name":"1540Voltage_Bat1","description":"","unit":"V","type":"uint16be","len":1,"factor":0.1,"offset":0,"formula":"","role":"value","room":"","poll":true,"wp":"","cw":"","isScale":"","address":1540,"deviceId":1,"id":"holdingRegisters._1540Voltage_Bat1"}]
            modbus.0
            	2026-02-04 21:13:19.338	debug	Initialize Objects for inputRegs: []
            modbus.0
            	2026-02-04 21:13:19.338	debug	Initialize Objects for coils: []
            modbus.0
            	2026-02-04 21:13:19.337	debug	Initialize Objects for disInputs: []
            modbus.0
            	2026-02-04 21:13:19.121	info	starting. Version 6.3.2 in /opt/iobroker/node_modules/iobroker.modbus, node: v20.20.0, js-controller: 7.0.7
            modbus.0
            	2026-02-04 21:13:18.693	debug	Plugin sentry Initialize Plugin (enabled=true)
            
            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von
            #169

            @spicer sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

            "regType":"holdingRegs","address":1156,

            das ist jetzt ok

            das hier

            @spicer sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

            Socket closed with error

            aber nicht.
            deswegen der dauernde Neustart

            das Problem kann/wird am rs485toEth liegen.
            Damit kenne ich mich aber nicht aus

            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
            • spicerS spicer

              @WilliK sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

              @spicer hast du diese Einstellungen mal komplett übernommen und ausprobiert, du hast in deinen Screenshots einiges anders eingestellt. https://forum.iobroker.net/post/974683

              Mein Waveshare hat nicht die gleiche Eingabemaske.

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

              @spicer sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

              Mein Waveshare hat nicht die gleiche Eingabemaske.

              aber wahrscheinlich vergleichbare Felder.

              So hast du bei iob RTUoverTCP strhen,@willik nur TCP, da sein waveshare ein tcp server ist.

              Hast du das mal verglichen/getestet?

              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 -

              spicerS 1 Antwort Letzte Antwort
              0
              • HomoranH Homoran

                @spicer sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

                Mein Waveshare hat nicht die gleiche Eingabemaske.

                aber wahrscheinlich vergleichbare Felder.

                So hast du bei iob RTUoverTCP strhen,@willik nur TCP, da sein waveshare ein tcp server ist.

                Hast du das mal verglichen/getestet?

                spicerS Online
                spicerS Online
                spicer
                schrieb am zuletzt editiert von spicer
                #171

                @Homoran sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

                @spicer sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

                Mein Waveshare hat nicht die gleiche Eingabemaske.

                aber wahrscheinlich vergleichbare Felder.

                So hast du bei iob RTUoverTCP strhen,@willik nur TCP, da sein waveshare ein tcp server ist.

                Hast du das mal verglichen/getestet?

                Du bist mein Held. Mit TCP klappt es.
                Mann, über seit 1 Jahr :D

                Ich vermute, dass auch der Kabelwechsel heute etwas gebracht hat. Habe ein abgeschirmtes eingebaut. Standard bei Auslieferung war ein gewöhnliches TD 12x0.75.

                Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine davon in einer Katastrophe endet oder sonstwie unerwünschte Konsequenzen nach sich zieht, dann wird es jemand genau so machen. Alles, was schiefgehen kann, wird auch schiefgehen.
                (Murphys Gesetz)

                1 Antwort Letzte Antwort
                0
                • spicerS Online
                  spicerS Online
                  spicer
                  schrieb am zuletzt editiert von
                  #172

                  Welcher Parameter ist das Total für Battery Power und SOC?
                  Ich sehe in der xls Tabelle nur Parameter für Bat1, Bat2 usw.
                  Ich habe 4 Batterien dran.

                  Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine davon in einer Katastrophe endet oder sonstwie unerwünschte Konsequenzen nach sich zieht, dann wird es jemand genau so machen. Alles, was schiefgehen kann, wird auch schiefgehen.
                  (Murphys Gesetz)

                  1 Antwort Letzte Antwort
                  0
                  • R Online
                    R Online
                    RISSN
                    schrieb am zuletzt editiert von
                    #173

                    Warum nimmst du nicht einen Stick? Die Sticks für den Sofar mit LAN können auch Modbus, nutze ich so schon ein Jahr, geht super und die Daten gehen auch gleich in die App

                    1 Antwort Letzte Antwort
                    0
                    • spicerS Online
                      spicerS Online
                      spicer
                      schrieb am zuletzt editiert von
                      #174

                      Hab ich auch gehört, dass der lan Stick das kann. Wäre die nächste Variante gewesen, wenn das mit der rs485 nicht geklappt hätte.

                      Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine davon in einer Katastrophe endet oder sonstwie unerwünschte Konsequenzen nach sich zieht, dann wird es jemand genau so machen. Alles, was schiefgehen kann, wird auch schiefgehen.
                      (Murphys Gesetz)

                      1 Antwort Letzte Antwort
                      0
                      • spicerS Online
                        spicerS Online
                        spicer
                        schrieb am zuletzt editiert von spicer
                        #175

                        Habe nun ein anderes Problem.
                        Nach 1-2h kommt ein "Socket closed with error". Dann geht nichts mehr.
                        Siehe Log ab 18:22:55

                        2026-02-05 18:22:43.831  - debug: modbus.0 (914062) [DevID_1] Poll start ---------------------
                        2026-02-05 18:22:43.832  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                        2026-02-05 18:22:43.899  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1157 DONE
                        2026-02-05 18:22:44.150  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1160 - 1 registers
                        2026-02-05 18:22:44.209  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1160 DONE
                        2026-02-05 18:22:44.459  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1476 - 1 registers
                        2026-02-05 18:22:44.519  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1476 DONE
                        2026-02-05 18:22:44.770  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1542 - 1 registers
                        2026-02-05 18:22:44.829  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1542 DONE
                        2026-02-05 18:22:45.080  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1544 - 1 registers
                        2026-02-05 18:22:45.139  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1544 DONE
                        2026-02-05 18:22:45.389  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1668 - 2 registers
                        2026-02-05 18:22:45.469  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1668 DONE
                        2026-02-05 18:22:49.101  - debug: modbus.0 (914062) [DevID_1] Poll start ---------------------
                        2026-02-05 18:22:49.102  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                        2026-02-05 18:22:49.159  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1157 DONE
                        2026-02-05 18:22:49.161  - debug: modbus.0 (914062) [DevID_1] Poll start ---------------------
                        2026-02-05 18:22:49.161  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                        2026-02-05 18:22:49.219  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1157 DONE
                        2026-02-05 18:22:49.221  - debug: modbus.0 (914062) [DevID_1] Poll start ---------------------
                        2026-02-05 18:22:49.221  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                        2026-02-05 18:22:49.279  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1157 DONE
                        2026-02-05 18:22:49.281  - debug: modbus.0 (914062) [DevID_1] Poll start ---------------------
                        2026-02-05 18:22:49.281  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                        2026-02-05 18:22:49.352  - debug: modbus.0 (914062) [DevID_1] Poll start ---------------------
                        2026-02-05 18:22:49.352  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                        2026-02-05 18:22:49.410  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1160 - 1 registers
                        2026-02-05 18:22:49.470  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1160 - 1 registers
                        2026-02-05 18:22:49.530  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1160 - 1 registers
                        2026-02-05 18:22:51.023  - debug: modbus.0 (914062) [DevID_1] Poll start ---------------------
                        2026-02-05 18:22:51.023  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                        2026-02-05 18:22:55.300  - debug: modbus.0 (914062) Socket closed with error
                        2026-02-05 18:22:55.300  - debug: modbus.0 (914062) Clearing timeout of the current request.
                        2026-02-05 18:22:55.300  - debug: modbus.0 (914062) Cleaning up request fifo.
                        2026-02-05 18:22:56.302  - debug: modbus.0 (914062) Closing client on purpose.
                        2026-02-05 18:22:56.303  - info: modbus.0 (914062) Disconnected from slave 192.168.88.101
                        2026-02-05 18:23:03.307  - info: modbus.0 (914062) Connected to slave 192.168.88.101
                        2026-02-05 18:23:03.307  - debug: modbus.0 (914062) [DevID_1] Poll start ---------------------
                        2026-02-05 18:23:03.307  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                        2026-02-05 18:23:09.341  - debug: modbus.0 (914062) Socket closed with error
                        2026-02-05 18:23:09.341  - debug: modbus.0 (914062) Clearing timeout of the current request.
                        2026-02-05 18:23:09.341  - debug: modbus.0 (914062) Cleaning up request fifo.
                        2026-02-05 18:23:10.341  - debug: modbus.0 (914062) Closing client on purpose.
                        2026-02-05 18:23:10.341  - info: modbus.0 (914062) Disconnected from slave 192.168.88.101
                        2026-02-05 18:23:17.345  - info: modbus.0 (914062) Connected to slave 192.168.88.101
                        2026-02-05 18:23:17.345  - debug: modbus.0 (914062) [DevID_1] Poll start ---------------------
                        2026-02-05 18:23:17.345  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                        2026-02-05 18:23:23.371  - debug: modbus.0 (914062) Socket closed with error
                        2026-02-05 18:23:23.371  - debug: modbus.0 (914062) Clearing timeout of the current request.
                        2026-02-05 18:23:23.371  - debug: modbus.0 (914062) Cleaning up request fifo.
                        2026-02-05 18:23:24.372  - debug: modbus.0 (914062) Closing client on purpose.
                        2026-02-05 18:23:24.373  - info: modbus.0 (914062) Disconnected from slave 192.168.88.101
                        2026-02-05 18:23:31.375  - info: modbus.0 (914062) Connected to slave 192.168.88.101
                        2026-02-05 18:23:31.376  - debug: modbus.0 (914062) [DevID_1] Poll start ---------------------
                        2026-02-05 18:23:31.376  - debug: modbus.0 (914062) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                        2026-02-05 18:23:37.401  - debug: modbus.0 (914062) Socket closed with error
                        2026-02-05 18:23:37.402  - debug: modbus.0 (914062) Clearing timeout of the current request.
                        2026-02-05 18:23:37.402  - debug: modbus.0 (914062) Cleaning up request fifo.
                        2026-02-05 18:23:38.402  - debug: modbus.0 (914062) Closing client on purpose.
                        2026-02-05 18:23:38.402  - info: modbus.0 (914062) Disconnected from slave 192.168.88.101
                        

                        Wenn ich den modbus Adapter neu starte, läuft's wieder.

                        Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine davon in einer Katastrophe endet oder sonstwie unerwünschte Konsequenzen nach sich zieht, dann wird es jemand genau so machen. Alles, was schiefgehen kann, wird auch schiefgehen.
                        (Murphys Gesetz)

                        1 Antwort Letzte Antwort
                        0
                        • spicerS Online
                          spicerS Online
                          spicer
                          schrieb am zuletzt editiert von spicer
                          #176

                          Ergänzend fällt mir auf, dass der immer mit einem "Socket closed with error" abschliesst.

                          modbus.0
                          	2026-02-05 19:19:38.941	info	Disconnected from slave 192.168.88.101
                          modbus.0
                          	2026-02-05 19:19:38.940	debug	Closing client on purpose.
                          modbus.0
                          	2026-02-05 19:19:37.940	debug	Cleaning up request fifo.
                          modbus.0
                          	2026-02-05 19:19:37.939	debug	Clearing timeout of the current request.
                          modbus.0
                          	2026-02-05 19:19:37.939	debug	Socket closed with error
                          modbus.0
                          	2026-02-05 19:19:31.988	debug	[DevID_1/holdingRegs] Poll address 1668 DONE
                          modbus.0
                          	2026-02-05 19:19:31.919	debug	[DevID_1/holdingRegs] Poll address 1668 - 2 registers
                          modbus.0
                          	2026-02-05 19:19:31.668	debug	[DevID_1/holdingRegs] Poll address 1544 DONE
                          modbus.0
                          	2026-02-05 19:19:31.609	debug	[DevID_1/holdingRegs] Poll address 1544 - 1 registers
                          modbus.0
                          	2026-02-05 19:19:31.358	debug	[DevID_1/holdingRegs] Poll address 1542 DONE
                          modbus.0
                          	2026-02-05 19:19:31.299	debug	[DevID_1/holdingRegs] Poll address 1542 - 1 registers
                          modbus.0
                          	2026-02-05 19:19:31.048	debug	[DevID_1/holdingRegs] Poll address 1476 DONE
                          modbus.0
                          	2026-02-05 19:19:30.988	debug	[DevID_1/holdingRegs] Poll address 1476 - 1 registers
                          modbus.0
                          	2026-02-05 19:19:30.738	debug	[DevID_1/holdingRegs] Poll address 1160 DONE
                          modbus.0
                          	2026-02-05 19:19:30.679	debug	[DevID_1/holdingRegs] Poll address 1160 - 1 registers
                          modbus.0
                          	2026-02-05 19:19:30.428	debug	[DevID_1/holdingRegs] Poll address 1157 DONE
                          modbus.0
                          	2026-02-05 19:19:30.364	debug	[DevID_1/holdingRegs] Poll address 1157 - 1 registers
                          modbus.0
                          	2026-02-05 19:19:30.364	debug	[DevID_1] Poll start ---------------------
                          

                          Einstellungen:

                          8b8ff11c-e77d-4e59-8a74-f064bff9d633-grafik.png

                          Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine davon in einer Katastrophe endet oder sonstwie unerwünschte Konsequenzen nach sich zieht, dann wird es jemand genau so machen. Alles, was schiefgehen kann, wird auch schiefgehen.
                          (Murphys Gesetz)

                          1 Antwort Letzte Antwort
                          0
                          • spicerS Online
                            spicerS Online
                            spicer
                            schrieb am zuletzt editiert von spicer
                            #177

                            Schon wieder. Adapter lief ca 3-4h.
                            Man siehe den Log ab 2026-02-06 03:59:39.013.
                            Da stirbt die Übertragung langsam bis ab 2026-02-06 03:59:56.664 nix mehr kommt.
                            Wie bereits gesagt, funktioniert alles wieder nach einem Adapter neustart.

                            2026-02-06 03:59:02.830  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                            2026-02-06 03:59:02.831  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                            2026-02-06 03:59:02.831  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                            2026-02-06 03:59:02.897  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 DONE
                            2026-02-06 03:59:03.148  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1160 - 1 registers
                            2026-02-06 03:59:03.207  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1160 DONE
                            2026-02-06 03:59:03.458  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1476 - 1 registers
                            2026-02-06 03:59:03.517  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1476 DONE
                            2026-02-06 03:59:03.768  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1542 - 1 registers
                            2026-02-06 03:59:03.827  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1542 DONE
                            2026-02-06 03:59:04.078  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1544 - 1 registers
                            2026-02-06 03:59:04.138  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1544 DONE
                            2026-02-06 03:59:04.388  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1668 - 2 registers
                            2026-02-06 03:59:04.477  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1668 DONE
                            2026-02-06 03:59:10.408  - debug: modbus.0 (919438) Socket closed with error
                            2026-02-06 03:59:10.408  - debug: modbus.0 (919438) Clearing timeout of the current request.
                            2026-02-06 03:59:10.408  - debug: modbus.0 (919438) Cleaning up request fifo.
                            2026-02-06 03:59:11.409  - debug: modbus.0 (919438) Closing client on purpose.
                            2026-02-06 03:59:11.410  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                            2026-02-06 03:59:21.412  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                            2026-02-06 03:59:21.413  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                            2026-02-06 03:59:21.413  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                            2026-02-06 03:59:21.478  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 DONE
                            2026-02-06 03:59:21.729  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1160 - 1 registers
                            2026-02-06 03:59:21.788  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1160 DONE
                            2026-02-06 03:59:22.039  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1476 - 1 registers
                            2026-02-06 03:59:22.098  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1476 DONE
                            2026-02-06 03:59:22.349  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1542 - 1 registers
                            2026-02-06 03:59:22.408  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1542 DONE
                            2026-02-06 03:59:22.659  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1544 - 1 registers
                            2026-02-06 03:59:22.738  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1544 DONE
                            2026-02-06 03:59:22.989  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1668 - 2 registers
                            2026-02-06 03:59:23.048  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1668 DONE
                            2026-02-06 03:59:28.009  - debug: modbus.0 (919438) Socket closed with error
                            2026-02-06 03:59:28.009  - debug: modbus.0 (919438) Clearing timeout of the current request.
                            2026-02-06 03:59:28.009  - debug: modbus.0 (919438) Cleaning up request fifo.
                            2026-02-06 03:59:29.011  - debug: modbus.0 (919438) Closing client on purpose.
                            2026-02-06 03:59:29.011  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                            2026-02-06 03:59:39.013  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                            2026-02-06 03:59:39.014  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                            2026-02-06 03:59:39.014  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                            2026-02-06 03:59:39.079  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 DONE
                            2026-02-06 03:59:39.330  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1160 - 1 registers
                            2026-02-06 03:59:39.389  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1160 DONE
                            2026-02-06 03:59:39.639  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1476 - 1 registers
                            2026-02-06 03:59:45.659  - debug: modbus.0 (919438) Socket closed with error
                            2026-02-06 03:59:45.660  - debug: modbus.0 (919438) Clearing timeout of the current request.
                            2026-02-06 03:59:45.660  - debug: modbus.0 (919438) Cleaning up request fifo.
                            2026-02-06 03:59:46.660  - debug: modbus.0 (919438) Closing client on purpose.
                            2026-02-06 03:59:46.661  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                            2026-02-06 03:59:56.664  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                            2026-02-06 03:59:56.664  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                            2026-02-06 03:59:56.665  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                            2026-02-06 04:00:02.690  - debug: modbus.0 (919438) Socket closed with error
                            2026-02-06 04:00:02.690  - debug: modbus.0 (919438) Clearing timeout of the current request.
                            2026-02-06 04:00:02.690  - debug: modbus.0 (919438) Cleaning up request fifo.
                            2026-02-06 04:00:03.692  - debug: modbus.0 (919438) Closing client on purpose.
                            2026-02-06 04:00:03.692  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                            2026-02-06 04:00:13.696  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                            2026-02-06 04:00:13.696  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                            2026-02-06 04:00:13.696  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                            2026-02-06 04:00:19.720  - debug: modbus.0 (919438) Socket closed with error
                            2026-02-06 04:00:19.720  - debug: modbus.0 (919438) Clearing timeout of the current request.
                            2026-02-06 04:00:19.720  - debug: modbus.0 (919438) Cleaning up request fifo.
                            2026-02-06 04:00:20.721  - debug: modbus.0 (919438) Closing client on purpose.
                            2026-02-06 04:00:20.722  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                            2026-02-06 04:00:30.725  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                            2026-02-06 04:00:30.726  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                            2026-02-06 04:00:30.726  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                            2026-02-06 04:00:36.751  - debug: modbus.0 (919438) Socket closed with error
                            2026-02-06 04:00:36.751  - debug: modbus.0 (919438) Clearing timeout of the current request.
                            2026-02-06 04:00:36.751  - debug: modbus.0 (919438) Cleaning up request fifo.
                            2026-02-06 04:00:37.752  - debug: modbus.0 (919438) Closing client on purpose.
                            2026-02-06 04:00:37.753  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                            2026-02-06 04:00:47.756  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                            2026-02-06 04:00:47.757  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                            2026-02-06 04:00:47.757  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                            2026-02-06 04:00:53.781  - debug: modbus.0 (919438) Socket closed with error
                            2026-02-06 04:00:53.782  - debug: modbus.0 (919438) Clearing timeout of the current request.
                            2026-02-06 04:00:53.782  - debug: modbus.0 (919438) Cleaning up request fifo.
                            2026-02-06 04:00:54.782  - debug: modbus.0 (919438) Closing client on purpose.
                            2026-02-06 04:00:54.783  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                            2026-02-06 04:01:04.785  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                            2026-02-06 04:01:04.786  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                            2026-02-06 04:01:04.786  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                            2026-02-06 04:01:10.812  - debug: modbus.0 (919438) Socket closed with error
                            2026-02-06 04:01:10.812  - debug: modbus.0 (919438) Clearing timeout of the current request.
                            2026-02-06 04:01:10.813  - debug: modbus.0 (919438) Cleaning up request fifo.
                            2026-02-06 04:01:11.812  - debug: modbus.0 (919438) Closing client on purpose.
                            2026-02-06 04:01:11.813  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                            2026-02-06 04:01:21.815  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                            2026-02-06 04:01:21.816  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                            2026-02-06 04:01:21.816  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                            2026-02-06 04:01:27.843  - debug: modbus.0 (919438) Socket closed with error
                            2026-02-06 04:01:27.843  - debug: modbus.0 (919438) Clearing timeout of the current request.
                            2026-02-06 04:01:27.843  - debug: modbus.0 (919438) Cleaning up request fifo.
                            2026-02-06 04:01:28.845  - debug: modbus.0 (919438) Closing client on purpose.
                            2026-02-06 04:01:28.845  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                            

                            Konfiguration:

                            grafik.png

                            grafik.png

                            grafik.png

                            Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine davon in einer Katastrophe endet oder sonstwie unerwünschte Konsequenzen nach sich zieht, dann wird es jemand genau so machen. Alles, was schiefgehen kann, wird auch schiefgehen.
                            (Murphys Gesetz)

                            HomoranH 1 Antwort Letzte Antwort
                            0
                            • spicerS spicer

                              Schon wieder. Adapter lief ca 3-4h.
                              Man siehe den Log ab 2026-02-06 03:59:39.013.
                              Da stirbt die Übertragung langsam bis ab 2026-02-06 03:59:56.664 nix mehr kommt.
                              Wie bereits gesagt, funktioniert alles wieder nach einem Adapter neustart.

                              2026-02-06 03:59:02.830  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                              2026-02-06 03:59:02.831  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                              2026-02-06 03:59:02.831  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                              2026-02-06 03:59:02.897  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 DONE
                              2026-02-06 03:59:03.148  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1160 - 1 registers
                              2026-02-06 03:59:03.207  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1160 DONE
                              2026-02-06 03:59:03.458  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1476 - 1 registers
                              2026-02-06 03:59:03.517  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1476 DONE
                              2026-02-06 03:59:03.768  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1542 - 1 registers
                              2026-02-06 03:59:03.827  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1542 DONE
                              2026-02-06 03:59:04.078  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1544 - 1 registers
                              2026-02-06 03:59:04.138  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1544 DONE
                              2026-02-06 03:59:04.388  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1668 - 2 registers
                              2026-02-06 03:59:04.477  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1668 DONE
                              2026-02-06 03:59:10.408  - debug: modbus.0 (919438) Socket closed with error
                              2026-02-06 03:59:10.408  - debug: modbus.0 (919438) Clearing timeout of the current request.
                              2026-02-06 03:59:10.408  - debug: modbus.0 (919438) Cleaning up request fifo.
                              2026-02-06 03:59:11.409  - debug: modbus.0 (919438) Closing client on purpose.
                              2026-02-06 03:59:11.410  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                              2026-02-06 03:59:21.412  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                              2026-02-06 03:59:21.413  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                              2026-02-06 03:59:21.413  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                              2026-02-06 03:59:21.478  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 DONE
                              2026-02-06 03:59:21.729  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1160 - 1 registers
                              2026-02-06 03:59:21.788  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1160 DONE
                              2026-02-06 03:59:22.039  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1476 - 1 registers
                              2026-02-06 03:59:22.098  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1476 DONE
                              2026-02-06 03:59:22.349  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1542 - 1 registers
                              2026-02-06 03:59:22.408  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1542 DONE
                              2026-02-06 03:59:22.659  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1544 - 1 registers
                              2026-02-06 03:59:22.738  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1544 DONE
                              2026-02-06 03:59:22.989  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1668 - 2 registers
                              2026-02-06 03:59:23.048  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1668 DONE
                              2026-02-06 03:59:28.009  - debug: modbus.0 (919438) Socket closed with error
                              2026-02-06 03:59:28.009  - debug: modbus.0 (919438) Clearing timeout of the current request.
                              2026-02-06 03:59:28.009  - debug: modbus.0 (919438) Cleaning up request fifo.
                              2026-02-06 03:59:29.011  - debug: modbus.0 (919438) Closing client on purpose.
                              2026-02-06 03:59:29.011  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                              2026-02-06 03:59:39.013  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                              2026-02-06 03:59:39.014  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                              2026-02-06 03:59:39.014  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                              2026-02-06 03:59:39.079  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 DONE
                              2026-02-06 03:59:39.330  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1160 - 1 registers
                              2026-02-06 03:59:39.389  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1160 DONE
                              2026-02-06 03:59:39.639  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1476 - 1 registers
                              2026-02-06 03:59:45.659  - debug: modbus.0 (919438) Socket closed with error
                              2026-02-06 03:59:45.660  - debug: modbus.0 (919438) Clearing timeout of the current request.
                              2026-02-06 03:59:45.660  - debug: modbus.0 (919438) Cleaning up request fifo.
                              2026-02-06 03:59:46.660  - debug: modbus.0 (919438) Closing client on purpose.
                              2026-02-06 03:59:46.661  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                              2026-02-06 03:59:56.664  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                              2026-02-06 03:59:56.664  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                              2026-02-06 03:59:56.665  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                              2026-02-06 04:00:02.690  - debug: modbus.0 (919438) Socket closed with error
                              2026-02-06 04:00:02.690  - debug: modbus.0 (919438) Clearing timeout of the current request.
                              2026-02-06 04:00:02.690  - debug: modbus.0 (919438) Cleaning up request fifo.
                              2026-02-06 04:00:03.692  - debug: modbus.0 (919438) Closing client on purpose.
                              2026-02-06 04:00:03.692  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                              2026-02-06 04:00:13.696  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                              2026-02-06 04:00:13.696  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                              2026-02-06 04:00:13.696  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                              2026-02-06 04:00:19.720  - debug: modbus.0 (919438) Socket closed with error
                              2026-02-06 04:00:19.720  - debug: modbus.0 (919438) Clearing timeout of the current request.
                              2026-02-06 04:00:19.720  - debug: modbus.0 (919438) Cleaning up request fifo.
                              2026-02-06 04:00:20.721  - debug: modbus.0 (919438) Closing client on purpose.
                              2026-02-06 04:00:20.722  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                              2026-02-06 04:00:30.725  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                              2026-02-06 04:00:30.726  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                              2026-02-06 04:00:30.726  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                              2026-02-06 04:00:36.751  - debug: modbus.0 (919438) Socket closed with error
                              2026-02-06 04:00:36.751  - debug: modbus.0 (919438) Clearing timeout of the current request.
                              2026-02-06 04:00:36.751  - debug: modbus.0 (919438) Cleaning up request fifo.
                              2026-02-06 04:00:37.752  - debug: modbus.0 (919438) Closing client on purpose.
                              2026-02-06 04:00:37.753  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                              2026-02-06 04:00:47.756  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                              2026-02-06 04:00:47.757  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                              2026-02-06 04:00:47.757  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                              2026-02-06 04:00:53.781  - debug: modbus.0 (919438) Socket closed with error
                              2026-02-06 04:00:53.782  - debug: modbus.0 (919438) Clearing timeout of the current request.
                              2026-02-06 04:00:53.782  - debug: modbus.0 (919438) Cleaning up request fifo.
                              2026-02-06 04:00:54.782  - debug: modbus.0 (919438) Closing client on purpose.
                              2026-02-06 04:00:54.783  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                              2026-02-06 04:01:04.785  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                              2026-02-06 04:01:04.786  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                              2026-02-06 04:01:04.786  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                              2026-02-06 04:01:10.812  - debug: modbus.0 (919438) Socket closed with error
                              2026-02-06 04:01:10.812  - debug: modbus.0 (919438) Clearing timeout of the current request.
                              2026-02-06 04:01:10.813  - debug: modbus.0 (919438) Cleaning up request fifo.
                              2026-02-06 04:01:11.812  - debug: modbus.0 (919438) Closing client on purpose.
                              2026-02-06 04:01:11.813  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                              2026-02-06 04:01:21.815  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                              2026-02-06 04:01:21.816  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                              2026-02-06 04:01:21.816  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                              2026-02-06 04:01:27.843  - debug: modbus.0 (919438) Socket closed with error
                              2026-02-06 04:01:27.843  - debug: modbus.0 (919438) Clearing timeout of the current request.
                              2026-02-06 04:01:27.843  - debug: modbus.0 (919438) Cleaning up request fifo.
                              2026-02-06 04:01:28.845  - debug: modbus.0 (919438) Closing client on purpose.
                              2026-02-06 04:01:28.845  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                              

                              Konfiguration:

                              grafik.png

                              grafik.png

                              grafik.png

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

                              @spicer sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

                              Da stirbt die Übertragung langsam bis ab 2026-02-06 03:59:56.664 nix mehr kommt.

                              was startet bei dir um 04:00?

                              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
                              • spicerS Online
                                spicerS Online
                                spicer
                                schrieb am zuletzt editiert von spicer
                                #179

                                Laut Log nichts zur Fraglichen Zeit.
                                Die gelesenen Register nehmen schon vor sofarcloud und weathersense ab.

                                2026-02-06 03:59:39.013  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                                2026-02-06 03:59:39.014  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                                2026-02-06 03:59:39.014  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                                2026-02-06 03:59:39.079  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 DONE
                                2026-02-06 03:59:39.330  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1160 - 1 registers
                                2026-02-06 03:59:39.389  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1160 DONE
                                2026-02-06 03:59:39.639  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1476 - 1 registers
                                2026-02-06 03:59:45.659  - debug: modbus.0 (919438) Socket closed with error
                                2026-02-06 03:59:45.660  - debug: modbus.0 (919438) Clearing timeout of the current request.
                                2026-02-06 03:59:45.660  - debug: modbus.0 (919438) Cleaning up request fifo.
                                2026-02-06 03:59:46.660  - debug: modbus.0 (919438) Closing client on purpose.
                                2026-02-06 03:59:46.661  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                                2026-02-06 03:59:56.664  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                                2026-02-06 03:59:56.664  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                                2026-02-06 03:59:56.665  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                                2026-02-06 04:00:02.690  - debug: modbus.0 (919438) Socket closed with error
                                2026-02-06 04:00:02.690  - debug: modbus.0 (919438) Clearing timeout of the current request.
                                2026-02-06 04:00:02.690  - debug: modbus.0 (919438) Cleaning up request fifo.
                                2026-02-06 04:00:03.692  - debug: modbus.0 (919438) Closing client on purpose.
                                2026-02-06 04:00:03.692  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                                2026-02-06 04:00:07.029  - info: host.iobroker instance system.adapter.weathersense.0 in version "4.2.1" started with pid 933290
                                2026-02-06 04:00:09.479  - info: weathersense.0 (933290) starting. Version 4.2.1 in /opt/iobroker/node_modules/iobroker.weathersense, node: v22.22.0, js-controller: 7.0.7
                                2026-02-06 04:00:09.509  - info: weathersense.0 (933290) Start cloud query after 20 Seconds...
                                2026-02-06 04:00:13.696  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                                2026-02-06 04:00:13.696  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                                2026-02-06 04:00:13.696  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                                2026-02-06 04:00:19.720  - debug: modbus.0 (919438) Socket closed with error
                                2026-02-06 04:00:19.720  - debug: modbus.0 (919438) Clearing timeout of the current request.
                                2026-02-06 04:00:19.720  - debug: modbus.0 (919438) Cleaning up request fifo.
                                2026-02-06 04:00:20.721  - debug: modbus.0 (919438) Closing client on purpose.
                                2026-02-06 04:00:20.722  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                                2026-02-06 04:00:29.030  - info: host.iobroker instance system.adapter.sofarcloud.0 in version "3.3.0" started with pid 933306
                                2026-02-06 04:00:30.725  - info: modbus.0 (919438) Connected to slave 192.168.88.101
                                2026-02-06 04:00:30.726  - debug: modbus.0 (919438) [DevID_1] Poll start ---------------------
                                2026-02-06 04:00:30.726  - debug: modbus.0 (919438) [DevID_1/holdingRegs] Poll address 1157 - 1 registers
                                2026-02-06 04:00:31.877  - info: sofarcloud.0 (933306) starting. Version 3.3.0 in /opt/iobroker/node_modules/iobroker.sofarcloud, node: v22.22.0, js-controller: 7.0.7
                                2026-02-06 04:00:32.002  - info: sofarcloud.0 (933306) Start cloud query after 112 seconds...
                                2026-02-06 04:00:32.413  - info: weathersense.0 (933290) Terminated (NO_ERROR): Everything done. Going to terminate till next schedule
                                2026-02-06 04:00:32.952  - info: host.iobroker instance system.adapter.weathersense.0 having pid 933290 terminated with code 0 (NO_ERROR)
                                2026-02-06 04:00:36.751  - debug: modbus.0 (919438) Socket closed with error
                                2026-02-06 04:00:36.751  - debug: modbus.0 (919438) Clearing timeout of the current request.
                                2026-02-06 04:00:36.751  - debug: modbus.0 (919438) Cleaning up request fifo.
                                2026-02-06 04:00:37.752  - debug: modbus.0 (919438) Closing client on purpose.
                                2026-02-06 04:00:37.753  - info: modbus.0 (919438) Disconnected from slave 192.168.88.101
                                

                                Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine davon in einer Katastrophe endet oder sonstwie unerwünschte Konsequenzen nach sich zieht, dann wird es jemand genau so machen. Alles, was schiefgehen kann, wird auch schiefgehen.
                                (Murphys Gesetz)

                                1 Antwort Letzte Antwort
                                0
                                • spicerS Online
                                  spicerS Online
                                  spicer
                                  schrieb am zuletzt editiert von
                                  #180

                                  Aber ist schon auffällig, dass es immer um die gleiche Zeit passiert.
                                  Kann ich iwie den Adapter immer um 4:01 neu starten?

                                  Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine davon in einer Katastrophe endet oder sonstwie unerwünschte Konsequenzen nach sich zieht, dann wird es jemand genau so machen. Alles, was schiefgehen kann, wird auch schiefgehen.
                                  (Murphys Gesetz)

                                  1 Antwort Letzte Antwort
                                  0
                                  • spicerS Online
                                    spicerS Online
                                    spicer
                                    schrieb am zuletzt editiert von spicer
                                    #181

                                    Jetzt hat es um 2026-02-06 16:04:24.546 angefangen. Nach nur ein paar Minuten!

                                    Mir gefällt das "Socket closed with error" jedesmal nicht.
                                    Das könnte doch irgend etwas füllen bis zum Crash.
                                    Sauber ist das auf jeden Fall nicht.

                                    Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine davon in einer Katastrophe endet oder sonstwie unerwünschte Konsequenzen nach sich zieht, dann wird es jemand genau so machen. Alles, was schiefgehen kann, wird auch schiefgehen.
                                    (Murphys Gesetz)

                                    1 Antwort Letzte Antwort
                                    0
                                    • R Online
                                      R Online
                                      RISSN
                                      schrieb zuletzt editiert von
                                      #182

                                      https://www.solarvie.at/en-eu/products/sofarsolar-ethernet-dongle-lse-3

                                      kaufe dir einfach dieses Teil und du hast Ruhe, 55 Euro kostet weniger als die Nerven die du lassen musst. Vor allem hast du es gleich auch noch in der App

                                      1 Antwort Letzte Antwort
                                      0
                                      • spicerS Online
                                        spicerS Online
                                        spicer
                                        schrieb zuletzt editiert von spicer
                                        #183

                                        Habe mir eine eigene Lösung geschrieben, welche ich euch nicht vorenthalten möchte.
                                        Habe in einem LXC, welcher für diverse Skripte zuständig ist, folgendes Python Script drauf gemacht plus eine config.yaml .
                                        Dies sendet die Sofar-Daten per MQTT an den ioBroker.

                                        /opt/modbus-mqtt/modbus_tcp_rtu.py

                                        #!/usr/bin/env python3
                                        
                                        import socket
                                        import struct
                                        import time
                                        import yaml
                                        import logging
                                        import paho.mqtt.client as mqtt
                                        import os
                                        
                                        CONFIG_FILE = "/opt/modbus-mqtt/config.yaml"
                                        LOG_FILE = "/var/log/modbus-mqtt.log"
                                        
                                        logging.basicConfig(
                                            filename=LOG_FILE,
                                            level=logging.INFO,
                                            format="%(asctime)s [%(levelname)s] %(message)s"
                                        )
                                        
                                        logging.info("Starting modbus-mqtt with config from disk")
                                        
                                        try:
                                            with open(CONFIG_FILE, "r") as f:
                                                cfg = yaml.safe_load(f)
                                        except Exception as e:
                                            logging.error(f"Failed to load config: {e}")
                                            exit(1)
                                        
                                        last_mtime = os.path.getmtime(CONFIG_FILE)
                                        
                                        MODBUS_HOST = cfg["modbus"]["host"]
                                        MODBUS_PORT = cfg["modbus"]["port"]
                                        UNIT_ID = cfg["modbus"]["unit_id"]
                                        
                                        MQTT_HOST = cfg["mqtt"]["host"]
                                        MQTT_PORT = cfg["mqtt"]["port"]
                                        BASE_TOPIC = cfg["mqtt"]["base_topic"]
                                        
                                        POLL_INTERVAL = cfg["poll_interval"]
                                        REGISTERS = cfg["registers"]
                                        
                                        mqttc = mqtt.Client(client_id="modbus_mqtt_bridge", clean_session=True)
                                        mqttc.username_pw_set(cfg["mqtt"]["username"], cfg["mqtt"]["password"])
                                        mqttc.connect(MQTT_HOST, MQTT_PORT)
                                        mqttc.loop_start()
                                        
                                        # ---------------------------------------------------------
                                        # CRC16 Modbus
                                        # ---------------------------------------------------------
                                        
                                        def crc16(data):
                                            crc = 0xFFFF
                                            for pos in data:
                                                crc ^= pos
                                                for _ in range(8):
                                                    if crc & 1:
                                                        crc = (crc >> 1) ^ 0xA001
                                                    else:
                                                        crc >>= 1
                                            return crc.to_bytes(2, byteorder="little")
                                        
                                        # ---------------------------------------------------------
                                        # RTU‑Frame senden über TCP
                                        # ---------------------------------------------------------
                                        
                                        def read_holding_registers_rtu_tcp(unit, address, count):
                                            # Build RTU frame: [unit][function][addr_hi][addr_lo][count_hi][count_lo][crc_lo][crc_hi]
                                            frame = bytearray()
                                            frame.append(unit)
                                            frame.append(0x03)  # Function code: Read Holding Registers
                                            frame += struct.pack(">HH", address, count)
                                            frame += crc16(frame)
                                        
                                            # TCP socket
                                            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                                            s.settimeout(2)
                                            s.connect((MODBUS_HOST, MODBUS_PORT))
                                            s.send(frame)
                                        
                                            # Response
                                            response = s.recv(256)
                                            s.close()
                                        
                                            # Validate minimum length
                                            if len(response) < 5:
                                                raise Exception("Invalid response length")
                                        
                                            # Validate CRC
                                            data = response[:-2]
                                            crc_received = response[-2:]
                                            crc_calc = crc16(data)
                                            if crc_received != crc_calc:
                                                raise Exception("CRC mismatch")
                                        
                                            # Byte count
                                            byte_count = response[2]
                                            if byte_count != count * 2:
                                                raise Exception("Unexpected byte count")
                                        
                                            # Extract registers
                                            registers = []
                                            for i in range(count):
                                                hi = response[3 + i*2]
                                                lo = response[4 + i*2]
                                                registers.append((hi << 8) | lo)
                                        
                                            return registers
                                        
                                        # ---------------------------------------------------------
                                        # Poll‑Loop
                                        # ---------------------------------------------------------
                                        
                                        while True:
                                            # Auto‑Reload wenn config.yaml geändert wurde
                                            current_mtime = os.path.getmtime(CONFIG_FILE)
                                            if current_mtime != last_mtime:
                                                logging.info("Config changed, restarting...")
                                                mqttc.loop_stop()
                                                exit(0)
                                        
                                            for reg in REGISTERS:
                                                addr = reg["addr"]
                                                reg_type = reg["type"]
                                                factor = reg["factor"]
                                                length = 2 if reg_type == "uint32" else 1
                                        
                                                try:
                                                    regs = read_holding_registers_rtu_tcp(UNIT_ID, addr, length)
                                        
                                                    if reg_type == "int16":
                                                        value = struct.unpack(">h", struct.pack(">H", regs[0]))[0]
                                                    elif reg_type == "uint16":
                                                        value = regs[0]
                                                    elif reg_type == "uint32":
                                                        value = (regs[0] << 16) | regs[1]
                                                    else:
                                                        continue
                                        
                                                    value *= factor
                                        
                                                    topic = f"{BASE_TOPIC}/register/{addr}"
                                                    mqttc.publish(topic, value)
                                                    #logging.info(f"Published {topic} = {value}")
                                        
                                                except Exception as e:
                                                    logging.error(f"Error reading register {addr}: {e}")
                                        
                                                time.sleep(0.2)
                                        
                                            time.sleep(POLL_INTERVAL)
                                        
                                        

                                        /opt/modbus-mqtt/config.yaml

                                        modbus:
                                          host: "192.168.88.101"
                                          port: 8899
                                          unit_id: 1
                                        
                                        mqtt:
                                          host: "192.168.1.251"
                                          port: 1883
                                          base_topic: "modbus/inverter"
                                          username: "mqtt_user"
                                          password: "mqtt_passwort"
                                        
                                        poll_interval: 20
                                        
                                        registers:
                                          - addr: 1199
                                            name: "ActivePower_Load_Sys"
                                            type: "uint16"
                                            factor: 0.01
                                        
                                          - addr: 1160
                                            name: "ActivePower_PCC_Total"
                                            type: "int16"
                                            factor: 0.01
                                        
                                          - addr: 1476
                                            name: "Power_PV_Total"
                                            type: "uint16"
                                            factor: 0.1
                                        
                                          - addr: 1542
                                            name: "Power_Bat1"
                                            type: "int16"
                                            factor: 0.01
                                        
                                          - addr: 1544
                                            name: "SOC_Bat1"
                                            type: "uint16"
                                            factor: 1
                                        
                                          - addr: 1668
                                            name: "PV_Generation_Today"
                                            type: "uint32"
                                            factor: 0.01
                                        
                                        

                                        Beim Waveshare musste ich auf "Transparent" (anstelle von "modbus TCP <=> modbus RTU") stellen.
                                        In der config seht ihr auch, dass LXCs und der Waveshare nicht im gleichen Netzwerk sind. WAN von 192.168.88.0 (MikroTik Router) hängt am Netz 192.168.1.0 (Fritzbox). Da hab ich eine Route definiert, damit man vom einen ins andere Netz zugreifen kann.
                                        Die IPs, Ports, Usernames und Passwörter müsst ihr natürlich auf eure Gegebenheiten anpassen.

                                        In der /etc/systemd/system/modbus-mqtt.service

                                        [Unit]
                                        Description=Modbus RTU over TCP to MQTT Gateway
                                        After=network-online.target
                                        Wants=network-online.target
                                        
                                        [Service]
                                        Type=simple
                                        User=root
                                        WorkingDirectory=/opt/modbus-mqtt
                                        ExecStart=/usr/bin/env python3 /opt/modbus-mqtt/modbus_tcp_rtu.py
                                        Restart=always
                                        RestartSec=5
                                        Environment=PYTHONUNBUFFERED=1
                                        
                                        [Install]
                                        WantedBy=multi-user.target
                                        

                                        Wenn alles fertig ist, eingeben:

                                        sudo systemctl daemon-reload
                                        sudo systemctl enable modbus-mqtt.service
                                        sudo systemctl start modbus-mqtt.service
                                        

                                        Die Daten werden nun per MQTT an den ioBroker gesendet.
                                        Der Datenpunkt sieht dann etwa so aus:

                                        mqtt.0.modbus.inverter.register.{Registeradresse}

                                        c231d92c-1d69-4e52-a206-48dfd9e63cf5-grafik.png

                                        Wenn es mehrere Möglichkeiten gibt, eine Aufgabe zu erledigen, und eine davon in einer Katastrophe endet oder sonstwie unerwünschte Konsequenzen nach sich zieht, dann wird es jemand genau so machen. Alles, was schiefgehen kann, wird auch schiefgehen.
                                        (Murphys Gesetz)

                                        HomoranH 1 Antwort Letzte Antwort
                                        0
                                        • spicerS spicer

                                          Habe mir eine eigene Lösung geschrieben, welche ich euch nicht vorenthalten möchte.
                                          Habe in einem LXC, welcher für diverse Skripte zuständig ist, folgendes Python Script drauf gemacht plus eine config.yaml .
                                          Dies sendet die Sofar-Daten per MQTT an den ioBroker.

                                          /opt/modbus-mqtt/modbus_tcp_rtu.py

                                          #!/usr/bin/env python3
                                          
                                          import socket
                                          import struct
                                          import time
                                          import yaml
                                          import logging
                                          import paho.mqtt.client as mqtt
                                          import os
                                          
                                          CONFIG_FILE = "/opt/modbus-mqtt/config.yaml"
                                          LOG_FILE = "/var/log/modbus-mqtt.log"
                                          
                                          logging.basicConfig(
                                              filename=LOG_FILE,
                                              level=logging.INFO,
                                              format="%(asctime)s [%(levelname)s] %(message)s"
                                          )
                                          
                                          logging.info("Starting modbus-mqtt with config from disk")
                                          
                                          try:
                                              with open(CONFIG_FILE, "r") as f:
                                                  cfg = yaml.safe_load(f)
                                          except Exception as e:
                                              logging.error(f"Failed to load config: {e}")
                                              exit(1)
                                          
                                          last_mtime = os.path.getmtime(CONFIG_FILE)
                                          
                                          MODBUS_HOST = cfg["modbus"]["host"]
                                          MODBUS_PORT = cfg["modbus"]["port"]
                                          UNIT_ID = cfg["modbus"]["unit_id"]
                                          
                                          MQTT_HOST = cfg["mqtt"]["host"]
                                          MQTT_PORT = cfg["mqtt"]["port"]
                                          BASE_TOPIC = cfg["mqtt"]["base_topic"]
                                          
                                          POLL_INTERVAL = cfg["poll_interval"]
                                          REGISTERS = cfg["registers"]
                                          
                                          mqttc = mqtt.Client(client_id="modbus_mqtt_bridge", clean_session=True)
                                          mqttc.username_pw_set(cfg["mqtt"]["username"], cfg["mqtt"]["password"])
                                          mqttc.connect(MQTT_HOST, MQTT_PORT)
                                          mqttc.loop_start()
                                          
                                          # ---------------------------------------------------------
                                          # CRC16 Modbus
                                          # ---------------------------------------------------------
                                          
                                          def crc16(data):
                                              crc = 0xFFFF
                                              for pos in data:
                                                  crc ^= pos
                                                  for _ in range(8):
                                                      if crc & 1:
                                                          crc = (crc >> 1) ^ 0xA001
                                                      else:
                                                          crc >>= 1
                                              return crc.to_bytes(2, byteorder="little")
                                          
                                          # ---------------------------------------------------------
                                          # RTU‑Frame senden über TCP
                                          # ---------------------------------------------------------
                                          
                                          def read_holding_registers_rtu_tcp(unit, address, count):
                                              # Build RTU frame: [unit][function][addr_hi][addr_lo][count_hi][count_lo][crc_lo][crc_hi]
                                              frame = bytearray()
                                              frame.append(unit)
                                              frame.append(0x03)  # Function code: Read Holding Registers
                                              frame += struct.pack(">HH", address, count)
                                              frame += crc16(frame)
                                          
                                              # TCP socket
                                              s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
                                              s.settimeout(2)
                                              s.connect((MODBUS_HOST, MODBUS_PORT))
                                              s.send(frame)
                                          
                                              # Response
                                              response = s.recv(256)
                                              s.close()
                                          
                                              # Validate minimum length
                                              if len(response) < 5:
                                                  raise Exception("Invalid response length")
                                          
                                              # Validate CRC
                                              data = response[:-2]
                                              crc_received = response[-2:]
                                              crc_calc = crc16(data)
                                              if crc_received != crc_calc:
                                                  raise Exception("CRC mismatch")
                                          
                                              # Byte count
                                              byte_count = response[2]
                                              if byte_count != count * 2:
                                                  raise Exception("Unexpected byte count")
                                          
                                              # Extract registers
                                              registers = []
                                              for i in range(count):
                                                  hi = response[3 + i*2]
                                                  lo = response[4 + i*2]
                                                  registers.append((hi << 8) | lo)
                                          
                                              return registers
                                          
                                          # ---------------------------------------------------------
                                          # Poll‑Loop
                                          # ---------------------------------------------------------
                                          
                                          while True:
                                              # Auto‑Reload wenn config.yaml geändert wurde
                                              current_mtime = os.path.getmtime(CONFIG_FILE)
                                              if current_mtime != last_mtime:
                                                  logging.info("Config changed, restarting...")
                                                  mqttc.loop_stop()
                                                  exit(0)
                                          
                                              for reg in REGISTERS:
                                                  addr = reg["addr"]
                                                  reg_type = reg["type"]
                                                  factor = reg["factor"]
                                                  length = 2 if reg_type == "uint32" else 1
                                          
                                                  try:
                                                      regs = read_holding_registers_rtu_tcp(UNIT_ID, addr, length)
                                          
                                                      if reg_type == "int16":
                                                          value = struct.unpack(">h", struct.pack(">H", regs[0]))[0]
                                                      elif reg_type == "uint16":
                                                          value = regs[0]
                                                      elif reg_type == "uint32":
                                                          value = (regs[0] << 16) | regs[1]
                                                      else:
                                                          continue
                                          
                                                      value *= factor
                                          
                                                      topic = f"{BASE_TOPIC}/register/{addr}"
                                                      mqttc.publish(topic, value)
                                                      #logging.info(f"Published {topic} = {value}")
                                          
                                                  except Exception as e:
                                                      logging.error(f"Error reading register {addr}: {e}")
                                          
                                                  time.sleep(0.2)
                                          
                                              time.sleep(POLL_INTERVAL)
                                          
                                          

                                          /opt/modbus-mqtt/config.yaml

                                          modbus:
                                            host: "192.168.88.101"
                                            port: 8899
                                            unit_id: 1
                                          
                                          mqtt:
                                            host: "192.168.1.251"
                                            port: 1883
                                            base_topic: "modbus/inverter"
                                            username: "mqtt_user"
                                            password: "mqtt_passwort"
                                          
                                          poll_interval: 20
                                          
                                          registers:
                                            - addr: 1199
                                              name: "ActivePower_Load_Sys"
                                              type: "uint16"
                                              factor: 0.01
                                          
                                            - addr: 1160
                                              name: "ActivePower_PCC_Total"
                                              type: "int16"
                                              factor: 0.01
                                          
                                            - addr: 1476
                                              name: "Power_PV_Total"
                                              type: "uint16"
                                              factor: 0.1
                                          
                                            - addr: 1542
                                              name: "Power_Bat1"
                                              type: "int16"
                                              factor: 0.01
                                          
                                            - addr: 1544
                                              name: "SOC_Bat1"
                                              type: "uint16"
                                              factor: 1
                                          
                                            - addr: 1668
                                              name: "PV_Generation_Today"
                                              type: "uint32"
                                              factor: 0.01
                                          
                                          

                                          Beim Waveshare musste ich auf "Transparent" (anstelle von "modbus TCP <=> modbus RTU") stellen.
                                          In der config seht ihr auch, dass LXCs und der Waveshare nicht im gleichen Netzwerk sind. WAN von 192.168.88.0 (MikroTik Router) hängt am Netz 192.168.1.0 (Fritzbox). Da hab ich eine Route definiert, damit man vom einen ins andere Netz zugreifen kann.
                                          Die IPs, Ports, Usernames und Passwörter müsst ihr natürlich auf eure Gegebenheiten anpassen.

                                          In der /etc/systemd/system/modbus-mqtt.service

                                          [Unit]
                                          Description=Modbus RTU over TCP to MQTT Gateway
                                          After=network-online.target
                                          Wants=network-online.target
                                          
                                          [Service]
                                          Type=simple
                                          User=root
                                          WorkingDirectory=/opt/modbus-mqtt
                                          ExecStart=/usr/bin/env python3 /opt/modbus-mqtt/modbus_tcp_rtu.py
                                          Restart=always
                                          RestartSec=5
                                          Environment=PYTHONUNBUFFERED=1
                                          
                                          [Install]
                                          WantedBy=multi-user.target
                                          

                                          Wenn alles fertig ist, eingeben:

                                          sudo systemctl daemon-reload
                                          sudo systemctl enable modbus-mqtt.service
                                          sudo systemctl start modbus-mqtt.service
                                          

                                          Die Daten werden nun per MQTT an den ioBroker gesendet.
                                          Der Datenpunkt sieht dann etwa so aus:

                                          mqtt.0.modbus.inverter.register.{Registeradresse}

                                          c231d92c-1d69-4e52-a206-48dfd9e63cf5-grafik.png

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

                                          @spicer sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

                                          Beim Waveshare musste ich auf "Transparent" (anstelle von "modbus TCP <=> modbus RTU") stellen.

                                          das ist, warum mir ein solcher Konverter zu komplex ist.
                                          Dann noch bei gleichem Hersteller unterschiedliche Einstellungen braucht....

                                          @spicer sagte in Sofar Solar HYD10 KTL Wechselrichter an modbus Adapter:

                                          dass LXCs und der Waveshare nicht im gleichen Netzwerk sind.

                                          davon war bisher keine Rede

                                          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 -

                                          spicerS 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

                                          758

                                          Online

                                          32.6k

                                          Benutzer

                                          82.2k

                                          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