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.
    • S
      Scusi @RalfEngelberth last edited by

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

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

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

      @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
      

      Hier noch eine Erweiterung meiner Anfrage.
      Lokaler Port
      Screenshot 2025-04-15 070009.jpg

      Hy mach mal nur der Schalter für 502 ein die anderen aus. Hat bei mir funktioniert.

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

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

        Hab den Port 519 ausgeschaltet. Alls neu gestartet.
        Leider kein Erfolg.
        Ich bekomme keine Verbindung zur Wallbox.
        Hier nochmal die Einstellungen der Instanz 2
        Eigentlich die Selbe wie Instanz 1 nur die ID ist 3 und nicht 1
        Screenshot 2025-04-16 192819.jpg

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

          @eisbaeeer Ich habe deine Anleitung gelesen.
          Nur nochmal ob ich alles richtig verstanden habe.
          Ich habe den WinetS über WLAN mit der IP 192.168.1.234 und über LAN mit der IP 192.168.1.235 verbunden.
          Zusätzlich noch den Internen LAN mit IP 192.168.1.235 belegt.
          Du schreibst, dass beide (WLAN und LAN) gehen müssten.
          Ich habe mir einen Modbus Analyser installiert und den Modbus abgefragt.
          Mit der IP 192.168.233 (LAN) und der Adresse 13011 bekomme ich von der Wallbox (ID1) eine Rückmeldung. siehe Bild.
          Verwende ich aber die IP 192.168.1.234 (WLAN) oder IP 192.168.1.235 (Intern. LAN) habe ich keine positive Rückmeldung.
          Von der Wallbox bekomme ich mit der Adresse 21261 weder mit der IP ...233 , 234 oder ...235 keine Rückmeldung.
          Demnach ist der Fehler doch in den Einstellung von WinetS zu suchen.
          Aber wo?
          Screenshot 2025-04-17 063553.jpg

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

            @ralfengelberth

            Verstehe ich das richtig?

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

            Ich habe den WinetS über WLAN mit der IP 192.168.1.234 und über LAN mit der IP 192.168.1.235 verbunden.
            Zusätzlich noch den Internen LAN mit IP 192.168.1.235 belegt.

            Dein WinetS hat aber schon eine andere IP als dein Wechselrichter? Jede Schnittstelle muss eine eigene IP-Adresse haben. Z.B.:
            WinetS = 192.168.1.234 (Wifi) ODER WinetS = 192.168.1.234 (LAN)
            Wechselrichter = 192.168.1.235

            Dann zwei Adapter anlegen. Einer ruft den WinetS ab, einer den Wechselrichter.

            Meine Einstellungen am WinetS:
            252c78c3-deae-4762-ae58-084e6d6037c0-image.png

            ebc4a44e-c5b7-491c-a5cc-7f7b96746c40-image.png

            ec863540-ba52-4f31-bf5a-1de42eb8c406-image.png

            9468a2a9-9619-4bd0-be9e-7b377eab97fa-image.png

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

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

              Dein WinetS hat aber schon eine andere IP als dein Wechselrichter? Jede Schnittstelle muss eine eigene IP-Adresse haben. Z.B.:
              WinetS = 192.168.1.234 (Wifi)

              Verstehe ich nicht.
              Jede Schnittstelle hat doch eine eigene IP bei mir.
              Oder verstehe ich das falsch?

              S 1 Reply Last reply Reply Quote 0
              • S
                Scusi @RalfEngelberth last edited by

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

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

                Dein WinetS hat aber schon eine andere IP als dein Wechselrichter? Jede Schnittstelle muss eine eigene IP-Adresse haben. Z.B.:
                WinetS = 192.168.1.234 (Wifi)

                Verstehe ich nicht.
                Jede Schnittstelle hat doch eine eigene IP bei mir.
                Oder verstehe ich das falsch?

                Wenn du die IP-Adresse vom WinetS im Brower eingibst müsstest du auf den lokalen Zugriff des WR kommen. Wenn das funktioniert müsst auch der Modbus funktionieren. Hast du auch im Lokalen Zugriff unter Modbus (502) die SSL-Verschlüsselung ausgeschaltet, danach ging es bei mir.

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

                  @scusi
                  @eisbaeeer
                  Ich habe mal versucht etwas Licht in den vielen IP-Adressen zu bringen.
                  Hier ein Schaubild meiner Daten.
                  Ich bekomme immer noch keine Verbindung zur Wallbox
                  Screenshot 2025-04-20 083118.jpg

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

                    @ralfengelberth
                    Dein WR hat die IP .233, dein Winet-S hat die .234 - ich habe ein vergleichbares Setup.

                    Den WR fragt die Modbus-Instanz 0 über seine IP Adresse mit Port 502 als Master mit ID 1 ab.
                    Die WB frage ich über die IP des Winet-S mit Port 502 als Master mit ID 2 ab (ID 1 ist bei mir der WR).

                    Evtl. deinstallier die Instanz 1 nochmal, stop den iobroker und installiert ihn neu, so ging es bei mir nach einigen Hin und Her.

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

                      @ralfengelberth
                      Vielen Dank für das Bild. Das sagt einfach mal was aus. Und schon ist der Fehler gefunden..

                      Trag hier (Screenshot unten) mal die IP vom LAN vom WinetS. Dann sollte das gehen.
                      Modbus-Adapter 1 --> LAN vom WR mit der ID:1
                      Modbus-Adapter 2 --> LAN vom Winet-S mit der ID:3
                      Du kannst natürlich auch das WLAN vom Winet-S nutzen. Meine Erfahrung ist aber, dass der LAN-Port stabiler ist.

                      15991cb1-4d0a-457a-b1d9-f6714788f39b-image.png

                      R 1 Reply Last reply Reply Quote 0
                      • R
                        Rummelpunz last edited by Rummelpunz

                        Hallo zusammen!
                        Keine Ahnung, ob das Thema mit den unplausibel hohen Werten noch aktuell ist, aber ich habe das mal unter dem verlinkten issue beantwortet. Das Problem ist die Vertauschung von Low-Word und High-Word bei einem 32bit Wert. Schaut mal in den issue, da steht auch ein Beispiel.

                        Andere Frage:
                        @Eisbaeeer: Wie sicher bist Du mit der Liste der Register? Ich meine, bei den meisten kommen ja durchaus sinnvolle Wert raus, aber mit dem WorkMode (Adresse 21262) habe ich ein Problem. Nach der Liste soll es da nur 0=Network, 2=PnP und 6=EMS geben. Wenn ich das Register auslese, bekomme ich als Antwort aber 0xA0 (160dez) angezeigt, ein Wert, mit dem ich nicht wirklich etwas anfangen kann. Sieht mehr nach einem Max-Strom (16A) aus.

                        Ich lese die Daten mit einem Modbus-Tool (Modbusmonitor) vom Android Handy aus, da muss ich dann die Adressen in Deiner Liste zwar um 1 anpassen, aber wie gesagt: sonst passt alles, was ich bisher angeschaut hatte.

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

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

                          @ralfengelberth
                          Vielen Dank für das Bild. Das sagt einfach mal was aus. Und schon ist der Fehler gefunden..

                          Trag hier (Screenshot unten) mal die IP vom LAN vom WinetS. Dann sollte das gehen.
                          Modbus-Adapter 1 --> LAN vom WR mit der ID:1
                          Modbus-Adapter 2 --> LAN vom Winet-S mit der ID:3
                          Du kannst natürlich auch das WLAN vom Winet-S nutzen. Meine Erfahrung ist aber, dass der LAN-Port stabiler ist.

                          15991cb1-4d0a-457a-b1d9-f6714788f39b-image.png

                          Vielen Dank
                          Es hat funktioniert
                          Echt super
                          Danke an alle

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

                            @eisbaeeer Ich habe doch noch eine Frage.
                            Hast du ein aktuelles Widges zum steuern der Wallbox sowie die benötigten Register?

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

                              @ralfengelberth
                              Du musst dazu die Holding Register des Wechselrichters ab 33540 beschreiben.
                              Du findest diese hier: https://github.com/Eisbaeeer/sungrow/blob/main/Hybrid_SHXXRT_Holding-Register.tsv

                              Ein Widget gibt es nicht, das musst du dir zusammenbauen.

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

                                @eisbaeeer
                                So, seit dieser Woche habe ich mein Auto und bin froh, jetzt auch die Werte der Wallbox auszulesen.
                                Allerdings finde ich viele Werte tatsächlich sehr irritierend:

                                • modbus.1.inputRegisters.21299_Total_Energy hat den Wert 200212480 Wh ... ich habe laut iSolarCloud gerade mal rund 3 kW geladen
                                • modbus.1.inputRegisters.21307_Charging_Power hat gerade eben den Wert 275644416 W
                                • modbus.1.inputRegisters.21309_Charging_Engery hat gerade eben den Wert 25886720 Wh
                                • Start und End Time (modbus.1.inputRegisters.21317_Charge_Start_Time bzw. 21319) sind im UnixTimestamp Format, wenn ich das umrechne kommen bei mir Werte aus dem Jahr 2075 raus (aktuell: 3340003340)

                                Wie kommen diese Zahlen zu Stande bzw. wie rechnet ihr sie in saubere Werte um?

                                S R 2 Replies Last reply Reply Quote 0
                                • S
                                  Scusi @Maddm last edited by

                                  @maddm Hallo, stell doch mal die die 3 Register 21299, 21307 und 21309 auf unsigned 32 bit (Big Endian word swap) um, das hat bei mir geholfen.
                                  Die Zeit habeichauch noch nicht herrausgefunden wie man die umwandelt und in der Vis darstellt.
                                  Vlt. kann ein anderer uns helfen.

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

                                    @maddm Ich habe das unter diesem GitHub-Issue beschrieben:
                                    https://github.com/shcshc76/sungrow/issues/3

                                    Das Problem ist, dass bei eine. 32bit Wert das Low-Word (also die Bits 0 bis 15) zuerst gesendet werden. Das muss bei der Umrechnung beachtet werden, dann passen die Werte.

                                    Sag Bescheid, wenn Du bei Github nicht sn den issue kommst, dann erkläre ich es hier nochmal genauer.

                                    aleks-83 created this issue in shcshc76/sungrow

                                    open Zu hohe Werte aus dem Register #3

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

                                      @rummelpunz Ja, soweit verstanden - da hat der Tipp von @Scusi geholfen: einfach die "Typen" der 3 genannten Werte ändern, dann passen die Werte direkt.

                                      Was mich tatsächlich mehr irritiert sind die komplett wilden Werte der Timestamps (Start und Ende)... die Zahlen werden im Laufe eines Nachmittags so groß, dass man im Jahr 2100 rauskommt, dann fangen sie wieder sehr niedrig an, dass man im Jahr 1970 rauskommt.

                                      Hat das bisher niemanden hier im Thread gestört bzw. hat da jemand ne Lösung für, evtl. reicht es ja auch einfach an den "Typen" der Register zu drehen?!

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

                                        @maddm Da gilt im Prinzip das Gleiche. Der Wert ist im Unix-Timecode-Format und zählt die Sekubden ab 01.01.1970. Funfact am Rande: ich hab heute mal spaßeshalber einen dieser Werte umgerechnet, dafür gibt's im Netz diverse Converter, auch online, wo nan einfach den 32-Bit-Wert als (Dezimal-)Zahl einträgt und dann das Datum umgerechnet bekommt.
                                        Hat bei mir gepasst. Aber eben auch da: Low-Word first!

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

                                          @rummelpunz
                                          Ok, bestens - auch hier hats geholfen, die beiden Register für Start und Ende auf den Type "Big Endian (Word Swap)" umzustellen --> @Scusi.

                                          Letzte Thematik dazu: der Zeitstempel ist geht "eine Stunde vor" --> wenn ich um 12:00 Uhr deutscher Zeit lade, ist der Zeitstempel in 21317_Charge_Start_Time schon 13:00 Uhr 😠

                                          Ist nicht wirklich schlimm, ich setze mir eigene Start- und Ende-Variablen immer dann wenn der Ladestatus auf "Charging" bzw. "Charging ended" springt.

                                          
                                          /*
                                              wenn sich der Changing_Status der WB ändert wird geprüft ob der Ladevorgang beginnt oder endet
                                              falls ja, wird Ladestart bzw. Ladeende mit dem aktuellen Zeitstempel gespeichert
                                          */
                                          
                                          on({id: "modbus.1.inputRegisters.21316_Charging_Status", change: 'any'}, function (obj) {
                                          
                                              var dNow = formatDate(new Date(), "hh:mm:ss"),
                                                  sState = getState("modbus.1.inputRegisters.21316_Charging_Status").val;
                                          
                                              console.log("Wallbox, Ladestatus hat gewechselt: "+sState)
                                          /* 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 */
                                              switch (sState) {
                                                  case 3:
                                                      setState("0_userdata.0.Wallbox.Ladung_Start", dNow);
                                                      setState("0_userdata.0.Wallbox.Ladung_Ende", "");
                                                      console.log('Wallbox: Ladevorgang gestartet um '+dNow);
                                                  break;
                                          
                                                  case 6:
                                                      setState("0_userdata.0.Wallbox.Ladung_Ende", dNow);     
                                                      console.log('Wallbox: Ladevorgang beendet um '+dNow);
                                                  break;
                                          
                                                  default:
                                                      console.log('Wallbox: default case, status '+sState);
                                                  break;
                                              }
                                          });
                                          
                                          1 Reply Last reply Reply Quote 0
                                          • Eisbaeeer
                                            Eisbaeeer Developer @Rummelpunz last edited by

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

                                            @maddm Ich habe das unter diesem GitHub-Issue beschrieben:
                                            https://github.com/shcshc76/sungrow/issues/3

                                            Das Problem ist, dass bei eine. 32bit Wert das Low-Word (also die Bits 0 bis 15) zuerst gesendet werden. Das muss bei der Umrechnung beachtet werden, dann passen die Werte.

                                            Sag Bescheid, wenn Du bei Github nicht sn den issue kommst, dann erkläre ich es hier nochmal genauer.

                                            Ich habe eben meine Register Wörter gedreht und auch bei mir passen jetzt die Werte und die Zeit-Stempel. Danke für´s Forschen. Ich werde das in meinem Github Repo für die Register anpassen und einen Pull-Request stellen.

                                            Eisbaeeer 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

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

                                            887
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            15
                                            87
                                            7708
                                            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