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.
    • 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
                                • Eisbaeeer
                                  Eisbaeeer Developer @Eisbaeeer last edited by Eisbaeeer

                                  Aktuell findet ihr hier alle Register mit richtigen Einstellungen.

                                  https://github.com/Eisbaeeer/sungrow

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

                                    @eisbaeeer
                                    Ich habe bisher nur die Input Register verwendet um Daten auszulesen. Jetzt würde ich gern via iobroker die Ladung des Kfz starten bzw den Ladevorgang beenden (statt sich in der isolarcloud anzumelden und dort dann über Anlage > Ladegerät > laden starten/beenden den Vorgang zu starten/beenden).

                                    Ich will nicht den Ladetyp ändern (ist auf Eco ohne Netzbezug in der isolarcloud eingestellt) oder andere settings ändern, nur Start oder Stop auslösen.

                                    Ist das mit den Holding Registern möglich und wenn ja, welches Register muss ich dafür wie genau setzen?

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

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

                                      Ist das mit den Holding Registern möglich und wenn ja, welches Register muss ich dafür wie genau setzen?

                                      Ja, das ist möglich. Dazu musst du das Register 21211 setzen.
                                      e25f9647-3e35-49bc-a0cb-a7aa24637e10-image.png

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

                                        @eisbaeeer
                                        Hmm, das habe ich jetzt so (so einfach das scheint) erstmal nicht hinbekommen.

                                        1. Ich habe nur dieses eine Register (21211) in die Holding Register aufgenommen, nicht alle Zeilen
                                        2. Ich habe mir in vis1 mit dem universal Element aus "vis-invetwo" einen type=switch gebaut, der den Wert von "modbus.1.holdingRegisters.21211_START_STOP_CHARGING" auf 1 setzt um das Laden zu starten und dann wieder auf 0, um das Laden zu stoppen.
                                        3. das Widget ist nur sichtbar, wenn die Wallbox den Status "bereit" hat
                                        4. leider passiert auf Knopfdruck "nichts"

                                        Als ich die Ladung über die iSolarCloud gestartet habe, ist der WB Status sauber auf 3 (Charging) gewechselt, das Holding Register bliebt unverändert.

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

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

                                          das Holding Register bliebt unverändert.

                                          liest du das Register auch aus?

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

                                          Ich habe mir in vis1 mit dem universal Element aus "vis-invetwo

                                          schreibt das Widget bestätigt oder unbestätigt?

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

                                            @homoran
                                            Nein, ich lese es nicht auch aus (das wird sehr wahrscheinlich der Grund sein, dass der Wert dauerhaft der gleiche ist, es sei denn ich ändere es über das Widget).

                                            Zurückschreiben bestätigt könnte tatsächlich der Grund sein, warum es nicht geht - ich finde aber im Widget selbst keine Möglichkeit, bestätigt zurückzuschreiben.
                                            Hier mal der Code des Widgets zum Selbstausprobieren (ist aus dem vis-inventwo):

                                            [{"tpl":"i-vis-universal","data":{"g_fixed":false,"g_visibility":true,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"not consist","visibility-val":"1||6","visibility-groups-action":"hide","iUniversalWidgetType":"Switch","iValueType":"value","iValueComparison":"equal","iStateResponseTime":"0","iStateResetValueTime":"0","iNavWait":"100","iHttpType":"iSend","iPopUpBackground":"#666666","iPopUpPreventClickOutside":"","iPopUpShowTitle":"true","iPopUpTitle":"","iPopUpTitleColor":"#ffffff","iPopUpCloseBtnColor":"#dc2e2e","iPopUpWidth":"800px","iPopUpHeight":"500px","iPopUpHeightTitle":"50","iPopUpTitleSize":"28","iPopUpPosition":"center","iPopUpPositionX":"0","iPopUpPositionY":"0","iPopUpCloseAfterSeconds":"0","iPopUpCornerRadiusUL":"12","iPopUpCornerRadiusUR":"0","iPopUpCornerRadiusLR":"12","iPopUpCornerRadiusLL":"0","iPopUpShadowXOffset":"2","iPopUpShadowYOffset":"2","iPopUpShadowBlur":"2","iPopUpShadowSpread":"1","iPopUpShadowColor":"#111111","iButtonCol":"#03c04a","iButtonActive":"#dd0000","iButtonColHover":"","iOpacityBack":"1","iCornerRadiusUL":"12","iCornerRadiusUR":"0","iCornerRadiusLR":"12","iCornerRadiusLL":"0","iContentFlexDirection":"horizontal","iContentVertAlign":"iSpace-between","iContentOrder":"orderImgText","iOpacityCtn":"1","iContentType":"image","iTextColor":"#ffffff","iTextColorActive":"#ffffff","iTextSize":"12","iTextAlign":"iCenter","iTextDecoration":"none","iTextSpaceTop":"0","iTextSpaceBottom":"0","iTextSpaceLeft":"5","iTextSpaceRight":"0","iIconSize":"50","iImgAlign":"iCenter","iImgSpaceTop":"0","iImgSpaceBottom":"0","iImgSpaceLeft":"0","iImgSpaceRight":"0","iImgRotation":"0","iImgBlinkFalse":"0","iImgBlinkTrue":"0","iImgColorFalse":"#ffffff","iImgColorTrue":"#ffffff","iImgClockFace":"01","iImgClockHands":"01","iImgClockShowBorder":"1","iImgColorClockFace":"#ffffff","iImgColorHands":"#ffffff","iImgColorHandSecond":"#ff0000","iClockShowSeconds":"","iClockTimezone":"Europe/Berlin","iHtmlTextFieldFalse":"","iHtmlTextFieldTrue":"","iShadowXOffset":"2","iShadowYOffset":"2","iShadowBlur":"2","iShadowSpread":"1","iShadowColor":"#111111","iShadowColorActive":"#111111","iShadowColorHover":"","iShadowInnerXOffset":"0","iShadowInnerYOffset":"0","iShadowInnerBlur":"0","iShadowInnerSpread":"0","iShadowInnerColor":"#111111","iShadowInnerColorActive":"#111111","iShadowInnerColorHover":"","iShadowTextXOffset":"0","iShadowTextYOffset":"0","iShadowTextBlur":"0","iShadowTextColor":"#111111","iShadowTextColorActive":"#111111","iBorderSize":"0","iBorderStyle":"none","iBorderColor":"#ffffff","iBorderColorActive":"#ffffff","iBorderColorHover":"","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"iValueFalse":"0","iValueTrue":"1","iTextFalse":"Laden starten","iTextTrue":"Laden stoppen","iImageFalse":"/vis-icontwo/Cars/e-car.png","iFlipImage":false,"oid":"modbus.1.holdingRegisters.21211_START_STOP_CHARGING","value":"0","iImageTrue":"/vis-icontwo/Cars/e-car.png","visibility-oid":"modbus.1.inputRegisters.21316_Charging_Status"},"style":{"left":"380px","top":"340px","height":"60px","z-index":"10"},"widgetSet":"vis-inventwo"}]
                                            
                                            Homoran 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

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

                                            1.0k
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

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