Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Sungrow Wallbox AC011E-01 erfolgreich mit Modbus eingebunden

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Sungrow Wallbox AC011E-01 erfolgreich mit Modbus eingebunden

    This topic has been deleted. Only users with topic management privileges can see it.
    • Eisbaeeer
      Eisbaeeer Developer @MichBeck last edited by Eisbaeeer

      @michbeck sagte in Sungrow Wallbox AC011E-01 erfolgreich mit Modbus eingebunden:

      @michbeck said in Sungrow Wallbox AC011E-01 erfolgreich mit Modbus eingebunden:

      @Eisbaeeer Sorry ich habe da nochmal eine Frage, da ich das mit der Viso nicht auf die Kette bekomme.

      @Eisbaeeer Kannst du mir da eventuell noch einen Denkanstoß geben. Ich verstehe die Werte nicht.

      Also ich habe meine Messwerte wie folgt errechnet:

      var idObjektePower    = ["modbus.1.inputRegisters.21301_Charging_Voltage_R","modbus.1.inputRegisters.21303_Charging_Voltage_S","modbus.1.inputRegisters.21305_Charging_Voltage_T","modbus.1.inputRegisters.21302_Charging_Current_R","modbus.1.inputRegisters.21304_Charging_Current_S","modbus.1.inputRegisters.21306_Charging_Current_T"];
      
      on(idObjektePower, function (obj) {
          var voltageR = getState("modbus.1.inputRegisters.21301_Charging_Voltage_R").val;
          var currentR = getState("modbus.1.inputRegisters.21302_Charging_Current_R").val;
          var voltageS = getState("modbus.1.inputRegisters.21303_Charging_Voltage_S").val;
          var currentS = getState("modbus.1.inputRegisters.21304_Charging_Current_S").val;
          var voltageT = getState("modbus.1.inputRegisters.21305_Charging_Voltage_T").val;
          var currentT = getState("modbus.1.inputRegisters.21306_Charging_Current_T").val;
          setState("pv.wallbox.chargepower",(((voltageR*0.1)*(currentR*0.1)+(voltageS*0.1)*(currentS*0.1)+(voltageT*0.1)*(currentT*0.1))));
          //console.log('Ladeleistung: ' + getState("pv.wallbox.chargepower").val);  
      });
      

      Das hat bei mir soweit gepasst. Leider weigert sich der Sungrow Support, mir die Modbus-Register mitzuteilen. 😞

      Ich hab es dann aufgegeben, nachdem sie mich hingehalten haben und erst behauptet haben, es gäbe keine Modbus Register in Sungrow Produkten.
      Dann hab ich eine Anleitung bekommen, wie man die Wallbox als Insel konfiguriert, usw. Zum Schluss haben sie mir die Excel Dateien gesendet, die ich schon hatte. Da fehlen aber die Modbus Register vom Energiemanager des SHXXRT.
      Hab keinen Bock mehr und mir reichen die Modbus Register, die ich jetzt habe. Damit kann ich derzeit alles steuern, was ich brauche. Ich hoffe du kannst mit den Berechnungen was anfangen bzw. für dich nutzen?
      Gruß Lars

      1 Reply Last reply Reply Quote 0
      • M
        mkraus81 last edited by Homoran

        Hi,

        ich bin neu bei ioBroker... aber eigentlich nicht so ganz doof.
        Aber die Wallbox bekomme ich nicht ausgelesen...
        weder per eigener Modbus Instanz noch in der Instanz für den SH10 Wechselrichter mit DeviceId 2 im Eingangsregister

        Es werden zwar jeweils die "Objekte" angelegt ABER keine aktuellen Werte für die Wallbox

        Wenn ich mit der Modbus Instanz für den SH10 und DeviceId 2 im Eingangsregister arbeite, erhalte ich auch folgenden Fehler im Protokoll

        modbus.0
        2024-07-28 14:27:18.242	info	Disconnected from slave 192.168.178.130
        modbus.0
        2024-07-28 14:27:17.243	warn	[2] Poll error count: 1 code: {"err":"timeout","timeout":5000}
        modbus.0
        2024-07-28 14:27:17.242	error	Client in error state.
        modbus.0
        2024-07-28 14:27:17.242	error	Request timed out.
        modbus.0
        2024-07-28 14:27:17.241	warn	Error: undefined
        modbus.0
        2024-07-28 12:27:12.119	info	Connected to slave 192.168.178.130
        

        bei der eigenen Modbus-Instanz gibt es nur folgende Einträge im Protokoll
        die IP für die Modbox-Instanz ist die LAN-ID vom Dongle

        modbus.3
        2024-07-28 14:30:26.334	info	Connected to slave 192.168.178.133
        modbus.3
        2024-07-28 14:30:25.912	info	starting. Version 6.2.3 in /opt/iobroker/node_modules/iobroker.modbus, node: v20.16.0, js-controller: 5.0.19
        modbus.3
        2024-07-28 12:30:22.076	info	terminating
        modbus.3
        2024-07-28 12:30:21.573	info	Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason
        modbus.3
        2024-07-28 12:30:21.572	info	terminating
        modbus.3
        2024-07-28 12:30:21.570	info	Got terminate signal TERMINATE_YOURSELF
        

        Was mache ich falsch?

        MOD-EDIT: Code in code-tags gesetzt!

        M 1 Reply Last reply Reply Quote 0
        • M
          mkraus81 @mkraus81 last edited by

          ich habe die Instanz für die Wallbox nochmal gelöscht und neu angelegt
          nun geht es... mit einer extra instanz

          aber sollte es nicht auch mit der DeviceId in der Instanz vom SH-Wechselrichter gehen? oder funktioniert das nur beim Akku (ich habe keinen)

          Eisbaeeer 1 Reply Last reply Reply Quote 0
          • Eisbaeeer
            Eisbaeeer Developer @mkraus81 last edited by

            @mkraus81 Es geht nur mit einer eigenen Instanz über die IP des WinetS.

            1 Reply Last reply Reply Quote 1
            • H
              Hetti @Eisbaeeer last edited by

              @eisbaeeer :
              Super Sache mit den Laderegistern am Wechselrichter, hatte mich an der Wallbox schon totgesucht 😉
              Hinweis, den Register 33549 habe ich mal getestet und einen anderen Zustand vorgefunden:
              = 85 > PV-Überschussladen ohne Netzbezug
              = 170 > PV-Überschussladen MIT Netzbezug

              werde weitere Register testen. Was die Wallbox heute nicht kann - das Überschussladen starten wenn das Auto angeschlossen wird bzw. den Ladevorgang fortsetzen wenn er wegen zu wenig PV-Leistung unterbrochen wurde. Dazu gibt es im photovoltaik Forum einen schönen Ansatz.
              Sungrow Wallbox AC011E-01 über Modbus steuern

              Gruß
              Hubertus

              1 Reply Last reply Reply Quote 1
              • D
                DrB 0 last edited by

                Hallo zusammen,

                Danke erstmal für die tolle Arbeit und das Teilen!

                Bei mir steht demnächst eine Erweiterung meiner PV-Anlage an.
                Aktuell habe ich 20,8 KWp mit einem SH10RT, einem SG10RT und einer SBR096 (Batterie).

                Diese Anlage wird wie folgt ergänzt/ersetzt:
                Der SG10RT wird durch einen SH10RT plus zusätzlicher SBR096 ersetzt, sodass dann zwei SH10RT im Parallelbetrieb mit je einer Batterie laufen wird.

                Zusätzlich kommt die Sungrow Wallbox dazu.
                Jetzt kommt der Knackpunkt.

                Dadurch, dass die zwei SH10RT (je mit Batterie) im Parallelbetrieb die RS458 Schnittstelle belegen werden, kann die Wallbox nicht am WR betrieben werden.
                Das heißt sie muss Standalone laufen. Dennoch möchte ich natürlich Überschussladen inkl. Phasenumschaltung nutzen. Bislang lese ich die WRs und Batterie bereits via modbus aus. Aktuell läuft das über die openWB, die dann alle Werte per mqtt an die weiteren Smarthome-Geräte (Loxone, iobroker, NodeRed, evcc(testweise)) verteilt. Dieser Umweg ist ja notwendig, da die WRs Probleme haben mit Zugriffen von mehreren Clients.

                Nun meine Frage: Kann die Wallbox Standalone eingerichtet werden und dann mit einem RS458 to TCP/IP Wandler über ein „Smarthome-Gerät“ wie iobroker, Loxone, NodeRed (zur Not auch evcc) o.ä. gesteuert werden?

                Bleiben dann die Modbus Register gleich, wie bei der Variante wo WR und Wallbox miteinander verbunden sind?

                Danke und VG
                Francesco

                Eisbaeeer 1 Reply Last reply Reply Quote 0
                • Eisbaeeer
                  Eisbaeeer Developer @DrB 0 last edited by Eisbaeeer

                  @drb-0 sagte in Sungrow Wallbox AC011E-01 erfolgreich mit Modbus eingebunden:

                  Bleiben dann die Modbus Register gleich, wie bei der Variante wo WR und Wallbox miteinander verbunden sind?

                  Laut Datenblatt von Sungrow bleiben die Register gleich. Im SH10RT ist eben zusätzlich der Energiemanager enthalten, der das Überschussladen bzw. allgemein die verschiedenen Modis regelt und auch das Einstellen über die iSolarcloud zulässt. Das entfällt dann natürlich hier.

                  Wobei so wie ich das verstanden habe schon ab dem Moment entfällt, bei dem mehre Geräte (zweiter Akku, Wechselrichter, etc.) am Modbus hängen. Du könntest also, auch wenn du wolltest, die Wallbox nicht am SH10RT anbinden.
                  Die Funktion des Energiemanagers muss dann ein anderes System übernehmen und die Wallbox entsprechend ansteuern.

                  1 Reply Last reply Reply Quote 0
                  • A
                    aleks-83 last edited by aleks-83

                    Hi @Eisbaeeer, erst mal vielen Dank für das Teilen deiner Register.
                    Das bringt mir eine lang ersehnte Funktion in mein Zuhause 🙂

                    Allerdings, habe ich, wie @MichBeck ebenfalls die Frage nach den hohen Werten.

                    068e54eb-cf12-4ecc-af91-805f30f56701-2024-12-30 21-39-35@2x.png

                    Nach dem ausgelesenen Register sollte meine WB insgesamt 2.853.241 kWh geladen haben. Laut iSolarCloud sollten es aber nur 6.072kWh sein.
                    576b4850-d0c2-4fea-8658-5c7fd30fed70-2024-12-30 21-49-30@2x.png

                    Gleiches gilt für die Ladeleistung.
                    Aktuell lädt mein Fahrzeug mit 2,6kW vor sich hin.
                    e7c24c49-2fed-455a-9832-8d0959101b90-2024-12-30 21-51-54@2x.png
                    Das Register meldet aber 172.687 kW

                    Insgesamt sind alle "Power" Werte in Watt zu hoch meiner Meinung nach.
                    Habe ich ein Register Fehler?
                    Ich habe das Register von dir direkt importiert.

                    Eisbaeeer 1 Reply Last reply Reply Quote 0
                    • Eisbaeeer
                      Eisbaeeer Developer @aleks-83 last edited by

                      @aleks-83 Hallo zusammen
                      Ich hatte jetzt noch nicht die Zeit, den Fehler zu suchen. Ich denke die Einheit stimmt nicht.
                      Die Ladeleistung muss jedoch über die einzelnen Phasen und Spannung berechnet werden.
                      Ich habe mir dazu ein Java-Script gebaut.

                      var idObjektePower    = ["modbus.1.inputRegisters.21301_Charging_Voltage_R","modbus.1.inputRegisters.21303_Charging_Voltage_S","modbus.1.inputRegisters.21305_Charging_Voltage_T","modbus.1.inputRegisters.21302_Charging_Current_R","modbus.1.inputRegisters.21304_Charging_Current_S","modbus.1.inputRegisters.21306_Charging_Current_T"];
                      
                      on(idObjektePower, function (obj) {
                          var voltageR = getState("modbus.1.inputRegisters.21301_Charging_Voltage_R").val;
                          var currentR = getState("modbus.1.inputRegisters.21302_Charging_Current_R").val;
                          var voltageS = getState("modbus.1.inputRegisters.21303_Charging_Voltage_S").val;
                          var currentS = getState("modbus.1.inputRegisters.21304_Charging_Current_S").val;
                          var voltageT = getState("modbus.1.inputRegisters.21305_Charging_Voltage_T").val;
                          var currentT = getState("modbus.1.inputRegisters.21306_Charging_Current_T").val;
                          setState("pv.wallbox.chargepower",(((voltageR*0.1)*(currentR*0.1)+(voltageS*0.1)*(currentS*0.1)+(voltageT*0.1)*(currentT*0.1))));
                          //console.log('Ladeleistung: ' + getState("pv.wallbox.chargepower").val);  
                      });
                      

                      Die gesamte Lademenge und Menge der letzten Ladung habe ich bis jetzt nicht benutzt. Die Register sind aus verschiedenen Foren zusammengesucht und können natürlich auch Fehler enthalten.
                      Ich würde aber darum bitten, falls hier Fehler gefunden werden, diese als Issue unter folgendem Github zu hinterlegen, damit das korrigiert wird:
                      https://github.com/shcshc76/sungrow
                      Das würde dann allen helfen.
                      Grüße Lars

                      A forandy1a A 4 Replies Last reply Reply Quote 1
                      • A
                        aleks-83 @Eisbaeeer last edited by

                        @eisbaeeer
                        Danke für die Antwort und deine Mühe.

                        Ich habe ein Issue erstellt.
                        https://github.com/shcshc76/sungrow/issues/3

                        aleks-83 created this issue in shcshc76/sungrow

                        open Zu hohe Werte aus dem Register #3

                        1 Reply Last reply Reply Quote 1
                        • forandy1a
                          forandy1a @Eisbaeeer last edited by

                          @eisbaeeer für den Vehicle SoC gibt es kein Register?

                          1 Reply Last reply Reply Quote 0
                          • forandy1a
                            forandy1a @Eisbaeeer last edited by

                            @eisbaeeer gibt es ein Register für Vehicle SoC?

                            1 Reply Last reply Reply Quote 0
                            • A
                              ahnungsloshoffnungsvoll @Eisbaeeer last edited by

                              @eisbaeeer
                              vielen Dank für dein Script,
                              ich habe es für mich etwas umgeschrieben, aber es will nicht so richtig funktionieren. Apropos, ich habe von Programmieren keine Ahnung. Was ich versucht habe Modus in manuell erzeugtes Objekt zu speichern:

                              var Ladeleistung;
                              
                              // Diese Funktion berechnet und speichert die Ladeleistung
                              async function etwas_tun(Ladeleistung) {
                                  // Array mit den Modbus-Objekten für Spannung und Strom
                                  var idObjektePower = [
                                      "modbus.1.inputRegisters.21301_Charging_Voltage_R",
                                      "modbus.1.inputRegisters.21303_Charging_Voltage_S",
                                      "modbus.1.inputRegisters.21305_Charging_Voltage_T",
                                      "modbus.1.inputRegisters.21302_Charging_Current_R",
                                      "modbus.1.inputRegisters.21304_Charging_Current_S",
                                      "modbus.1.inputRegisters.21306_Charging_Current_T"
                                  ];
                              
                                  // Event-Listener für Änderungen an den Modbus-Objekten
                                  on(idObjektePower, function (obj) {
                                      // Abrufen der aktuellen Spannungs- und Stromwerte
                                      var voltageR = getState("modbus.1.inputRegisters.21301_Charging_Voltage_R").val;
                                      var currentR = getState("modbus.1.inputRegisters.21302_Charging_Current_R").val;
                                      var voltageS = getState("modbus.1.inputRegisters.21303_Charging_Voltage_S").val;
                                      var currentS = getState("modbus.1.inputRegisters.21304_Charging_Current_S").val;
                                      var voltageT = getState("modbus.1.inputRegisters.21305_Charging_Voltage_T").val;
                                      var currentT = getState("modbus.1.inputRegisters.21306_Charging_Current_T").val;
                              
                                      // Berechnung der Ladeleistung
                                      var ladeleistung = (((voltageR * 0.1) * (currentR * 0.1)) +
                                                         ((voltageS * 0.1) * (currentS * 0.1)) +
                                                         ((voltageT * 0.1) * (currentT * 0.1)));
                              
                                      // Speichern der Ladeleistung
                                      try {
                                          setState("0_userdata.0.Wallbox.Ladeleistung_konvertiert", {
                                              val: ladeleistung,
                                              ack: true
                                          });
                                          console.log('Ladeleistung erfolgreich gespeichert:', ladeleistung);
                                      } catch (error) {
                                          console.error('Fehler beim Speichern der Ladeleistung:', error);
                                      }
                                  });
                              }
                              

                              Objekt:

                              {
                                "common": {
                                  "name": "Ladeleistung_konvertiert",
                                  "desc": "Manuell erzeugt",
                                  "role": "state",
                                  "type": "number",
                                  "read": true,
                                  "write": true,
                                  "def": 0
                                },
                                "type": "state",
                                "native": {},
                                "from": "system.adapter.admin.0",
                                "user": "system.user.admin",
                                "ts": 1741793781930,
                                "_id": "0_userdata.0.Wallbox.Ladeleistung_konvertiert",
                                "acl": {
                                  "object": 1636,
                                  "state": 1636,
                                  "owner": "system.user.admin",
                                  "ownerGroup": "system.group.administrator"
                                }
                              }
                              

                              Da es nicht funktioniert gibt es einen Denkfehler, hast jemand einen Tipp, wo ich den finden kann?
                              Vielen Dank im Voraus.

                              Eisbaeeer 1 Reply Last reply Reply Quote 0
                              • Eisbaeeer
                                Eisbaeeer Developer @ahnungsloshoffnungsvoll last edited by Eisbaeeer

                                @ahnungsloshoffnungsvoll sagte in Sungrow Wallbox AC011E-01 erfolgreich mit Modbus eingebunden:

                                Da es nicht funktioniert gibt es einen Denkfehler, hast jemand einen Tipp, wo ich den finden kann?
                                Vielen Dank im Voraus.

                                Hast du nur die Codeschnipsel benutzt? Dann wird das nicht funktionieren.
                                Die Objekte müssen erst angelegt werden, damit sie auch geschrieben werden können.

                                Bevor du das hier machst:

                                // Speichern der Ladeleistung
                                        try {
                                            setState("0_userdata.0.Wallbox.Ladeleistung_konvertiert", {
                                                val: ladeleistung,
                                                ack: true
                                            });
                                

                                Musst du das Objekt vorher anlegen:

                                createState('pv.wallbox.chargepower', 0);               // aktuelle Ladeleistung
                                
                                on(idObjektePower, function (obj) {
                                    var voltageR = getState("modbus.1.inputRegisters.21301_Charging_Voltage_R").val;
                                    var currentR = getState("modbus.1.inputRegisters.21302_Charging_Current_R").val;
                                    var voltageS = getState("modbus.1.inputRegisters.21303_Charging_Voltage_S").val;
                                    var currentS = getState("modbus.1.inputRegisters.21304_Charging_Current_S").val;
                                    var voltageT = getState("modbus.1.inputRegisters.21305_Charging_Voltage_T").val;
                                    var currentT = getState("modbus.1.inputRegisters.21306_Charging_Current_T").val;
                                    setState("pv.wallbox.chargepower",(((voltageR*0.1)*(currentR*0.1)+(voltageS*0.1)*(currentS*0.1)+(voltageT*0.1)*(currentT*0.1))));
                                });
                                

                                Damit der Trigger funktioniert, muss noch der Auslöser definiert werden. Sonst weiss das Script nicht, auf welches Objekt es auslösen soll:

                                var idObjektePower    = ["modbus.1.inputRegisters.21301_Charging_Voltage_R","modbus.1.inputRegisters.21303_Charging_Voltage_S","modbus.1.inputRegisters.21305_Charging_Voltage_T","modbus.1.inputRegisters.21302_Charging_Current_R","modbus.1.inputRegisters.21304_Charging_Current_S","modbus.1.inputRegisters.21306_Charging_Current_T"];
                                

                                Das hier sollte laufen:

                                setState("pv.wallbox.chargepower", 0);                  // Wert beim starten auf 0 setzen
                                
                                var idObjektePower    = ["modbus.1.inputRegisters.21301_Charging_Voltage_R","modbus.1.inputRegisters.21303_Charging_Voltage_S","modbus.1.inputRegisters.21305_Charging_Voltage_T","modbus.1.inputRegisters.21302_Charging_Current_R","modbus.1.inputRegisters.21304_Charging_Current_S","modbus.1.inputRegisters.21306_Charging_Current_T"];
                                
                                on(idObjektePower, function (obj) {
                                    var voltageR = getState("modbus.1.inputRegisters.21301_Charging_Voltage_R").val;
                                    var currentR = getState("modbus.1.inputRegisters.21302_Charging_Current_R").val;
                                    var voltageS = getState("modbus.1.inputRegisters.21303_Charging_Voltage_S").val;
                                    var currentS = getState("modbus.1.inputRegisters.21304_Charging_Current_S").val;
                                    var voltageT = getState("modbus.1.inputRegisters.21305_Charging_Voltage_T").val;
                                    var currentT = getState("modbus.1.inputRegisters.21306_Charging_Current_T").val;
                                    setState("pv.wallbox.chargepower",(((voltageR*0.1)*(currentR*0.1)+(voltageS*0.1)*(currentS*0.1)+(voltageT*0.1)*(currentT*0.1))));
                                    //console.log('Ladeleistung: ' + getState("pv.wallbox.chargepower").val);  
                                });
                                
                                M 1 Reply Last reply Reply Quote 0
                                • M
                                  Maddm @Eisbaeeer last edited by Maddm

                                  @eisbaeeer
                                  Re: Sungrow Wallbox AC011E-01 erfolgreich mit Modbus eingebunden

                                  Ich bin durch die Suche auf diesen Thread gekommen und freue mich sehr da drüber: ich habe seit 2 Jahren einen SH8.0RT Hybrid WR in Betrieb, den ich seither auch per Modbus auslese. Seit kurzem habe ich auch die WB AC011E von Sungrow und möchte die Daten dort auch abgreifen. Sie ist per RS-485 mit dem WR verbunden.

                                  Ich hab die Verbindung jetzt hinbekommen, wundere mich aber dass die angelegten Objekte unterhalb der Modbus.1. Instanz alle die Präfix "NaN" tragen, da muss doch eigentlich die 5-stellige Registernummer stehen?
                                  Bildschirmfoto 2025-04-09 um 09.01.29.png

                                  Bildschirmfoto 2025-04-09 um 09.02.30.png

                                  Edit: die fehlerhaften Namen werden anscheinend durch den Haken "Alias benutzen", das war true. Setze ich es auf false, werden gar keine Objekte mehr angelegt, aber das Log ist voller Fehler:
                                  Bildschirmfoto 2025-04-09 um 09.13.50.png

                                  Ich vermute, dass meine Settings in den beiden Instanzen falsch / unsauber sind
                                  Mein Setup von Modbus Instanz 0 (WR):
                                  Bildschirmfoto 2025-04-09 um 09.12.24.png

                                  Mein Setup von Modbus Instanz 1 (WB):
                                  Bildschirmfoto 2025-04-09 um 09.12.15.png

                                  M 1 Reply Last reply Reply Quote 0
                                  • M
                                    Maddm @Maddm last edited by

                                    Nochmal ein Nachtrag zu meinem vorher geschilderten Fehler mit der zweiten Modbus Instanz:

                                    • wenn ich die Instanz 1 (für die WB) MIT dem Haken "Alias benutzen" starte, bekomme ich alle Objekte angelegt, aber jedes Objekt mit dem NaN-Präfix im Namen.
                                    • starte ich die Instanz ohne "Alias benutzen", wird das Log mit folgenden Fehler geflutet:
                                    2025-04-10 08:20:12.593	error	Invalid inputRegisters address: -8801
                                    modbus.1
                                    2025-04-10 08:20:12.593	error	Invalid inputRegisters address: -8740
                                    modbus.1
                                    2025-04-10 08:20:12.592	error	Invalid inputRegisters address: -8739
                                    modbus.1
                                    2025-04-10 08:20:12.592	error	Invalid inputRegisters address: -8734
                                    modbus.1
                                    2025-04-10 08:20:12.592	error	Invalid inputRegisters address: -8702
                                    modbus.1
                                    2025-04-10 08:20:12.592	error	Invalid inputRegisters address: -8700
                                    modbus.1
                                    2025-04-10 08:20:12.592	error	Invalid inputRegisters address: -8699
                                    modbus.1
                                    2025-04-10 08:20:12.592	error	Invalid inputRegisters address: -8698
                                    modbus.1
                                    2025-04-10 08:20:12.592	error	Invalid inputRegisters address: -8697
                                    modbus.1
                                    2025-04-10 08:20:12.592	error	Invalid inputRegisters address: -8696
                                    modbus.1
                                    2025-04-10 08:20:12.591	error	Invalid inputRegisters address: -8695
                                    modbus.1
                                    2025-04-10 08:20:12.591	error	Invalid inputRegisters address: -8694
                                    modbus.1
                                    2025-04-10 08:20:12.591	error	Invalid inputRegisters address: -8692
                                    modbus.1
                                    2025-04-10 08:20:12.591	error	Invalid inputRegisters address: -8688
                                    modbus.1
                                    2025-04-10 08:20:12.591	error	Invalid inputRegisters address: -8686
                                    modbus.1
                                    2025-04-10 08:20:12.591	error	Invalid inputRegisters address: -8685
                                    modbus.1
                                    2025-04-10 08:20:12.591	error	Invalid inputRegisters address: -8684
                                    modbus.1
                                    2025-04-10 08:20:12.590	error	Invalid inputRegisters address: -8682
                                    

                                    Die Input Register Einträge habe ich allerdings 1:1 von @Eisbaeeer übernommen, die Holding Register Einträge habe ich nicht übernommen, da ich erstmal nur auslesen will.

                                    Eisbaeeer 1 Reply Last reply Reply Quote 0
                                    • Eisbaeeer
                                      Eisbaeeer Developer @Maddm last edited by

                                      @maddm Deine Einstellungen stimmen erstmal mit meinen überein.
                                      Über welchen Adapter liest du die Daten. Wichtig, die SH08RT Modbus Daten musst du am Wechselrichter lesen (Ethernet port des Wechselrichters). Nur der WR gibt die Daten aus.
                                      Die Daten von der Wallbox über den Stick.
                                      Bei mir hat also jede Instanz eine eigene IP. Einmal die Wechselrichter IP und die andere Instanz die des Sticks. Sonst funktioniert das ganze nicht. Bei deinen Einstellungen liest du beide Geräte vermutlich über den Stick?
                                      Grüße Lars

                                      M R 2 Replies Last reply Reply Quote 0
                                      • M
                                        Maddm @Eisbaeeer last edited by

                                        @eisbaeeer said in Sungrow Wallbox AC011E-01 erfolgreich mit Modbus eingebunden:

                                        Bei deinen Einstellungen liest du beide Geräte vermutlich über den Stick?

                                        Die IP, die ich seit rund 2 Jahren mit modbus Instanz 0 auslese ist die des Wechselrichters (der ist per LAN Kabel mit dem Heimnetz verbunden), die Einstellungen dazu sind im vorvorherigen Post zu sehen.

                                        Ich hatte tatsächlich diese IP auch genutzt, um die Wallbox auszulesen (s. meine Einstellungen im Screenshot oben), da hast Du jetzt gesagt: die Wallbox MUSS über die IP des WiNet-S ausgelesen werden, das ist die .49 (darüber erreiche ich auch das Webinterface mit dem Login).

                                        Aber auch damit komme ich nicht wirklich weiter:

                                        • wenn ich den Haken "Aliases benutzen" nicht setze, bekomme ich kein Objekt unter inputRegisters der Instanz 1 angelegt, zusätzlich gibts die Fehlermeldungen, die ich schon gepostet habe
                                        • setze ich den Haken "Aliases benutzen", legt er alle Input Register an, allerdings ohne die Registernummer sondern nur mit NaN-als Präfix.

                                        Was mir tatsächlich nicht ganz klar ist:
                                        ich habe 2 Instanzen von modbus installiert und beide gehen auf unterschiedliche IP Adressen, jeweils auf den Port 502.

                                        • Instanz 0 liest die IP des WR und dort die ID 1
                                        • Instanz 1 liest die IP des Winet-S und dort die ID 2 (weil dort die WB zu erreichen ist)
                                          Muss ich dann in den Instanzen jeweils den Haken bei "mehrere Geräte IDs" setzen oder nicht?

                                        Aktuell ist mir nicht ganz klar, wo ich in den Settings noch was falsch mache, vielleicht kannst Du mal Deine Verbindungseinstellungen der beiden Instanzen posten (gern vollständig, also incl. der ganzen Timeouts etc).

                                        M 1 Reply Last reply Reply Quote 0
                                        • M
                                          Maddm @Maddm last edited by Maddm

                                          @Eisbaeeer
                                          Absolut unverständlich:
                                          ich hab heute die Instanz 1 nochmal deinstalliert, die restlichen Objekte/Knoten entfernt, den iobroker neu gestartet, die Instanz 1 neu installiert, konfiguriert und... es geht.

                                          Kann ich nicht wirklich verstehen, aber es geht: ich kann alle Daten der WB auslesen 💪 Mangels Auto ist das aktuell ausser der Seriennummer tatsächlich alles 0, aber immerhin.

                                          Ich plane, meine Daten (wie auch bei den PV Daten) in JSON Objekten abzulegen (ich habe z.B. eins mit einem Array, dass eine JSON Struktur pro Tag enthält), um daraus einfache tabellarische Übersichten zu machen (Datum, Ladung ins Auto, € gespart usw...)
                                          Mal schauen, welche Register dafür die richtigen sind, das wird sich aber durch ausprobieren finden lassen.

                                          Evtl. kann mir schonmal jemand vorab ein Fragezeichen nehmen:
                                          der Working Mode soll gemäß "Label" 0, 2 oder 6 sein... bei mir steht als Wert 160... ist das normal?
                                          Ich habe den Lademodus EMS an der Wallbox hinterlegt (AP an der Wallbox starten und dann direkt mit einem Handy verbinden auf der 192.168.4.1)
                                          Bildschirmfoto 2025-04-11 um 14.40.57.png

                                          Danke für diesen Thread, war in Summe dann doch sehr hilfreich.

                                          1 Reply Last reply Reply Quote 0
                                          • R
                                            RalfEngelberth @Eisbaeeer last edited by

                                            @eisbaeeer Hallo, ich lese momentan meinen Wechselrichter über die IP 192.168.233 Port 502 ID 1 den modbus aus.
                                            Das funktioniert auch prima.
                                            Ich möchte aber auch meine Sungrow Wallbox AC011E-01 auslesen.
                                            Bekomme aber keine Verbindung.
                                            Für die Wallbox verwende ich auch die IP 192.168.1.133 Port 502 ID 3.
                                            Screenshot 2025-04-14 205953.jpg
                                            Hier ein paar Daten zur Info:
                                            Das Ladegerät und der Wechslrichter sind über RS485 verbunden.
                                            Am Umrichter habe ich den WiNet-S an IP 192.168.1.234 und 235
                                            Sowie ein Netzwerkkabel mit der IP 192.168.1.233
                                            Der Umrichter hat die ID1 und die Wallbox die ID3
                                            Den Modbus des Umrichter mit der IP 192.168.1.233 kann ich mit der ID1 auch über z.B. IoBroker auslesen.
                                            Zum Modbus des Ladegerätes bekomme ich aber keine Verbindung. Weder über die IP .233 noch IP.234 oder IP.235 sowie ID3
                                            Was mache ich falsch?
                                            Hier noch die Register Input

                                            _address	name	description	unit	type	len	factor	offset	formula	role	room	cw	isScale
                                            21200	Serial_Number	Seriennummer		string	20	1	0		value		false	false
                                            21261	Rated voltage	Ausgangsspannung	V	uint16be	1	1	0		value		false	false
                                            21262	Work_MODE	Working Mode | 0=Network 2=PnP 6=EMS		uint16be	1	1	0		value		false	false
                                            21267	Charger_Status	Status Ladestation | 0=Disable 1=Enable		uint16be	1	1	0		value		false	false
                                            21299	Total_Energy	Ladeleistung total	Wh	uint32be	2	1	0		value		false	false
                                            21301	Charging_Voltage_R	Ladespannung_R | 0.1V	V	uint16be	1	1	0		value		false	false
                                            21302	Charging_Current_R	Ladestrom_R | 0.1A	A	uint16be	1	1	0		value		false	false
                                            21303	Charging_Voltage_S	Ladespannung_S | 0.1V	V	uint16be	1	1	0		value		false	false
                                            21304	Charging_Current_S	Ladestrom_S | 0.1A	A	uint16be	1	1	0		value		false	false
                                            21305	Charging_Voltage_T	Ladespannung_T | 0.1V	V	uint16be	1	1	0		value		false	false
                                            21306	Charging_Current_T	Ladestrom_T | 0.1A	A	uint16be	1	1	0		value		false	false
                                            21307	Charging_Power	Ladeenergie aktueller Ladevorgang 	W	uint32be	2	1	0		value		false	false
                                            21309	Charging_Engery	Ladeenergie seit Start des Ladevorgangs	Wh	uint32be	2	1	0		value		false	false
                                            21313	Start_Mode	Ladestart Modus | 1=EMS 2=CARD		uint16be	1	1	0		value		false	false
                                            21315	Power_Regulation	Leistungsregelung | 0=forbidden 1=allowed		uint16be	1	1	0		value		false	false
                                            21316	Charging_Status	Status Wallbox | 1=Idle 2=Standby 3=Charching 4=Charching suspended (Wallbox) 5=Charching suspended (Vehicle) 6=Charching complete 7=Reserved 8=Disabled 9=Fault		uint16be	1	1	0		value		false	false
                                            21317	Charge_Start_Time	Ladestart | Unix-time-stamp		uint32be	2	1	0		value		false	false
                                            21319	Charge_End_Time	Ladeende | Unix-time-stamp		uint32be	2	1	0		value		false	false
                                            

                                            Hier noch die Register Holding

                                            _address	name	description	unit	type	len	factor	offset	formula	role	room	poll	wp	cw	isScale
                                            21200	Total_Energy	Bisher geladene Gesamtleistung	wh	uint32be	2	1			state		true	true	false	false
                                            21202	SetOutI	Ausgangsstrom | 0,1A | 6A-63A	A	uint16be	1	1			state		true	true	false	false
                                            21203	PhaseSwitch	PhaseSwitch | 0=3ph 1=1ph		uint16be	1	1			state		true	true	false	false
                                            21210	Charger_Enable	Charger Enable |  0=disable 1=enable		uint16be	1	1			state		true	true	false	false
                                            21211	START_STOP_CHARGING	Ladung Starten | Stoppen 0=Start 1=Stop		uint16be	1	1			state		true	true	false	false
                                            21212	Total_Energy	Total_Energy	Wh	uint32be	2	1			state		true	true	false	false
                                            21224	Year	Year		uint16be	1	1			state		true	true	false	false
                                            21225	Month	Month		uint16be	1	1			state		true	true	false	false
                                            21226	Day	Day		uint16be	1	1			state		true	true	false	false
                                            21227	Hour	Hour		uint16be	1	1			state		true	true	false	false
                                            21228	Minute	Minute		uint16be	1	1			state		true	true	false	false
                                            21229	Second	Second		uint16be	1	1			state		true	true	false	false
                                            21230	Dev_Address	Bus Adresse | deafult 248		uint16be	1	1			state		true	true	false	false
                                            21231	Enery_per_Km	Energie pro Km		uint16be	1	1			state		true	true	false	false
                                            
                                            S 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

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

                                            1.1k
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            15
                                            87
                                            7704
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo