Skip to content
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Tester
  4. Test Adapter Growatt v3.3.1

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.8k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.0k

Test Adapter Growatt v3.3.1

Scheduled Pinned Locked Moved Tester
adaptergrowattpv-anlageshinesolartesttester
808 Posts 72 Posters 355.0k Views 63 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • W Wildbill

    @moonsorrox Bin mir gar nicht sicher, ob Du die Daten des Jahresertrags direkt auf der Growatt-Seite findest. Ich sehe da auch nur maximal den Monatsertrag und dann Total, aber nicht für das gesamte Jahr.
    Für derartige Auswertungen würde ich Dir aber eh den Sourceanalytix-Adapter empfehlen. Natürlich nicht nur für den Growatt, sondern für Zähler sämtlicher Art. Damit lässt sich sowas viel besser und granularer auswerten und Du bekommst auch Montas- und Wochendaten im Verlauf, so dass Du die gesamte Vergangenheit jederzeit sehen kannst.

    Gruss, Jürgen

    M Offline
    M Offline
    moonsorrox
    wrote on last edited by
    #193

    @wildbill
    naja ich sehe bei Growatt eingeloggt schon die Jahre, also die 3 Jahre 2020, 2021, 2022 bis jetzt August jetzt als Balkendiagram, aber im ioBroker gibt es diesen Wert eben nicht.

    1 Reply Last reply
    0
    • PLCHome 0P PLCHome 0

      @wildbill Zwischen 3 und 4 trennen auch manche DSL-Router, vielleicht kommt die Meldung bei dir daher.

      W Online
      W Online
      Wildbill
      wrote on last edited by
      #194

      @plchome-0 Da der Adapter heute mal wieder einen Haufen Fehler schmeisst, habe ich mal direkt server.growatt.com aufgerufen. Abgesehen davon, dass die Bedienung auf der Site gerade sehr sehr langsam war, zeigte mir der Browser (Safari) dort soeben auch einen Serverfehler 500 an. Also scheint es doch am Server direkt zu liegen. Warum da wohl manche (wie ich) mehr betroffen sind und andere anscheinend nicht (oder nicht so sehr), ist mir zwar unklar, aber damit muss ich wohl leben.

      Gruss, Jürgen

      M 1 Reply Last reply
      0
      • W Wildbill

        @plchome-0 Da der Adapter heute mal wieder einen Haufen Fehler schmeisst, habe ich mal direkt server.growatt.com aufgerufen. Abgesehen davon, dass die Bedienung auf der Site gerade sehr sehr langsam war, zeigte mir der Browser (Safari) dort soeben auch einen Serverfehler 500 an. Also scheint es doch am Server direkt zu liegen. Warum da wohl manche (wie ich) mehr betroffen sind und andere anscheinend nicht (oder nicht so sehr), ist mir zwar unklar, aber damit muss ich wohl leben.

        Gruss, Jürgen

        M Offline
        M Offline
        moonsorrox
        wrote on last edited by moonsorrox
        #195

        @wildbill
        ja ich habe es schon bemerkt das einige viele Fehler haben, andere eben nicht - ich habe aktuell keine Fehler
        Habe grad mal geschaut, aber ein Fehler habe auch gehabt
        2022-08-26 14:14:59.812 error Growatt exception: AxiosError: Request failed with status code 502

        W S 2 Replies Last reply
        0
        • M moonsorrox

          @wildbill
          ja ich habe es schon bemerkt das einige viele Fehler haben, andere eben nicht - ich habe aktuell keine Fehler
          Habe grad mal geschaut, aber ein Fehler habe auch gehabt
          2022-08-26 14:14:59.812 error Growatt exception: AxiosError: Request failed with status code 502

          W Online
          W Online
          Wildbill
          wrote on last edited by
          #196

          @moonsorrox Wenn ich schaue, welche Objekte sich im Gowatt-Adapter auswählen lassen, so sehe ich da auch nur eMonth und eTotal. Von Jahren ist da nix, also kommt das wohl auch nicht mit. Aber wie gesagt, mit dem sourceanalytix hast Du alls (und mehr) was Du brauchst.

          Gruss, Jürgen

          1 Reply Last reply
          0
          • M moonsorrox

            @wildbill
            ja ich habe es schon bemerkt das einige viele Fehler haben, andere eben nicht - ich habe aktuell keine Fehler
            Habe grad mal geschaut, aber ein Fehler habe auch gehabt
            2022-08-26 14:14:59.812 error Growatt exception: AxiosError: Request failed with status code 502

            S Online
            S Online
            Solardach
            wrote on last edited by
            #197

            @moonsorrox

            Hier der gleiche Fehler seit Update auf ADMIN v6.2.17

            Growatt exception: AxiosError: Request failed with status code 588

            W 1 Reply Last reply
            0
            • S Solardach

              @moonsorrox

              Hier der gleiche Fehler seit Update auf ADMIN v6.2.17

              Growatt exception: AxiosError: Request failed with status code 588

              W Offline
              W Offline
              warp735
              wrote on last edited by
              #198

              @solardach
              Hab den Fehler auch 😞
              Sicher das es seit dem Update ist? Ich meine, bei mir lief es erst noch.

              S 1 Reply Last reply
              0
              • T Offline
                T Offline
                Thorben
                wrote on last edited by
                #199

                Bei mir kommt es seit gestern auch zum gleichen fehler...
                Growatt exception: AxiosError: Request failed with status code 588

                G 1 Reply Last reply
                0
                • T Thorben

                  Bei mir kommt es seit gestern auch zum gleichen fehler...
                  Growatt exception: AxiosError: Request failed with status code 588

                  G Offline
                  G Offline
                  Garf
                  wrote on last edited by
                  #200

                  Bei mir auch. Werte kommen wenn nur sporadisch. Und ich habe kein Update ausführen lassen. Macht nicht wirklich Freude diese Anmeldeprobleme. Parallel lese ich über M-Bus den Stromzähler aus. Allerdings passiert dies nur über Button auf Anforderung. So ist es im Moment blöd, weil man sieht keine aktuellen Werte mehr auf dem Dashboard. Anmelden über Konto bei Growatt läuft bei mir allerdings völlig problemlos ab. Ich sehe die Grafik und die Werte.

                  1 Reply Last reply
                  0
                  • W warp735

                    @solardach
                    Hab den Fehler auch 😞
                    Sicher das es seit dem Update ist? Ich meine, bei mir lief es erst noch.

                    S Online
                    S Online
                    Solardach
                    wrote on last edited by
                    #201

                    @warp735

                    Nicht sicher, kann sich auch zufällig überschnitten haben.

                    1 Reply Last reply
                    0
                    • J Offline
                      J Offline
                      jaridian
                      wrote on last edited by
                      #202

                      Ich habe mal eine Verständisfrage und hoffe auf eine Antwort.
                      Wieso bleibt der Adapter bei dem US Server grün und bei dem China Server wird er seit kurzem gelb?
                      Vor allem, gibt es da eine Lösung ohne nach den US Server umziehen zu müssen?
                      Da der US Server die Daten nicht übernimmt, fängt man da quasi wieder von Null an und das möchte ich nicht.

                      W 1 Reply Last reply
                      0
                      • J jaridian

                        Ich habe mal eine Verständisfrage und hoffe auf eine Antwort.
                        Wieso bleibt der Adapter bei dem US Server grün und bei dem China Server wird er seit kurzem gelb?
                        Vor allem, gibt es da eine Lösung ohne nach den US Server umziehen zu müssen?
                        Da der US Server die Daten nicht übernimmt, fängt man da quasi wieder von Null an und das möchte ich nicht.

                        W Offline
                        W Offline
                        warp735
                        wrote on last edited by
                        #203

                        @jaridian sagte in Test Adapter Growatt v1.0.0:

                        fängt man da quasi wieder von Null an und das möchte ich nicht.

                        Ich auch nicht.... seit Tagen die Charts verhagelt 😞
                        Da muss unbedingt ne lokale Lösung her. Mittels Cloud läuft das ja keine 2 Wochen am Stück zuverlässig.

                        W 1 Reply Last reply
                        0
                        • W warp735

                          @jaridian sagte in Test Adapter Growatt v1.0.0:

                          fängt man da quasi wieder von Null an und das möchte ich nicht.

                          Ich auch nicht.... seit Tagen die Charts verhagelt 😞
                          Da muss unbedingt ne lokale Lösung her. Mittels Cloud läuft das ja keine 2 Wochen am Stück zuverlässig.

                          W Online
                          W Online
                          Wildbill
                          wrote on last edited by
                          #204

                          @warp735 Die lokale Lösung existiert. Nennt sich Grott und ist HIER bei Github zu finden. Ist quasi wie eine MITM-Attacke. Der Grott-Server empfängt direkt vom Growatt-WR und schickt die Daten lokal an einen MQTT-Server und parallel an den Growatt-Server. Somit hat man die Daten direkt lokal und bei Bedarf auch in China. Das lässt sich auch abstellen.
                          Ich habe den Umzug heute erfolgreich vollzogen. Die Daten kommen schön im Minutentakt per MQTT-Json. Das Log bleibt ruhig, seit ich den Growatt-Adapter beendet habe. Und im Forum gab es eine Anleitung, wie man eine bestehende Sourceanalytix-Struktur auf einen anderen Datenpunkt umzieht. Einzig in der Influx-DB fehlen jetzt die Daten der Vergangenheit. Aber die Gelegenheit hab ich gleich genutzt und eine passende Struktur unter userdata.0 erzeugt, so dass bei künftigen Anpassungen alle Daten erhalten bleiben.

                          Gruss, Jürgen

                          W 1 Reply Last reply
                          1
                          • W Wildbill

                            @warp735 Die lokale Lösung existiert. Nennt sich Grott und ist HIER bei Github zu finden. Ist quasi wie eine MITM-Attacke. Der Grott-Server empfängt direkt vom Growatt-WR und schickt die Daten lokal an einen MQTT-Server und parallel an den Growatt-Server. Somit hat man die Daten direkt lokal und bei Bedarf auch in China. Das lässt sich auch abstellen.
                            Ich habe den Umzug heute erfolgreich vollzogen. Die Daten kommen schön im Minutentakt per MQTT-Json. Das Log bleibt ruhig, seit ich den Growatt-Adapter beendet habe. Und im Forum gab es eine Anleitung, wie man eine bestehende Sourceanalytix-Struktur auf einen anderen Datenpunkt umzieht. Einzig in der Influx-DB fehlen jetzt die Daten der Vergangenheit. Aber die Gelegenheit hab ich gleich genutzt und eine passende Struktur unter userdata.0 erzeugt, so dass bei künftigen Anpassungen alle Daten erhalten bleiben.

                            Gruss, Jürgen

                            W Offline
                            W Offline
                            warp735
                            wrote on last edited by
                            #205

                            @wildbill
                            Cool 👍
                            Hast das als Docker irgendwo laufen oder wie?

                            W 1 Reply Last reply
                            0
                            • W warp735

                              @wildbill
                              Cool 👍
                              Hast das als Docker irgendwo laufen oder wie?

                              W Online
                              W Online
                              Wildbill
                              wrote on last edited by
                              #206

                              @warp735 Läuft bei mir als LXC unter Proxmox. Aktuelles Debian-Template.

                              Gruss, Jürgen

                              W 2 Replies Last reply
                              0
                              • W Wildbill

                                @warp735 Läuft bei mir als LXC unter Proxmox. Aktuelles Debian-Template.

                                Gruss, Jürgen

                                W Offline
                                W Offline
                                warp735
                                wrote on last edited by
                                #207

                                @wildbill
                                Super, schau ich mir mal an

                                1 Reply Last reply
                                0
                                • W Wildbill

                                  @warp735 Läuft bei mir als LXC unter Proxmox. Aktuelles Debian-Template.

                                  Gruss, Jürgen

                                  W Offline
                                  W Offline
                                  warp735
                                  wrote on last edited by
                                  #208

                                  @wildbill

                                  Bei mir muss das Ganze unter unraid laufen. Was muss ich denn alles übergeben? So richtig schlau werd ich aus den Dokus nicht 😞

                                  IP vom mqtt Server/ioBroker?
                                  Muss ich am Growatt auch was umstellen?
                                  Nach welcher Anleitung bist du vorgegangen?

                                  W 1 Reply Last reply
                                  0
                                  • W warp735

                                    @wildbill

                                    Bei mir muss das Ganze unter unraid laufen. Was muss ich denn alles übergeben? So richtig schlau werd ich aus den Dokus nicht 😞

                                    IP vom mqtt Server/ioBroker?
                                    Muss ich am Growatt auch was umstellen?
                                    Nach welcher Anleitung bist du vorgegangen?

                                    W Online
                                    W Online
                                    Wildbill
                                    wrote on last edited by
                                    #209

                                    @warp735 Wegen unraid kann ich Dir nicht sagen, was Du da beachten musst. Anleitung zum Installieren von grott ist DIESE HIER.

                                    Eigentlich ganz simpel:

                                    • VM, LXC, Raspi oder was auch immer mit System nach Wahl aufsetzen (ich hab Debian 11).
                                    • Schauen, dass Python3 installiert ist (Debian bringt das schon mit).
                                    • grott mit git clone runterladen und die grott.ini anpassen (z.B. IP und Port des MQTT-Broker oder MQTT-Adapter von iobroker)
                                    • Evtl. service einrichten, damit grott beim Booten automatisch startet

                                    Am Growatt musst Du natürlich auch umstellen. Dort musst Du dann die IP von DEINEM Grott-Server eintragen. Das kannst Du auch direkt via server.growatt.com machen. Steht HIER beschrieben. Oder eben direkt auf Deinem Shinestick in dessen WLAN einloggen und da ändern. Einfach bei IP die IP des grott-Server (lokale IP) eintragen.
                                    Anschließend kommt dann ein JSON-String in iobroker unter mqtt.0 an, den man dann per Script oder Node red in einzelne Datenpunkte zerpflücken kann, die man eben möchte.

                                    Gruss, Jürgen

                                    W 1 Reply Last reply
                                    1
                                    • W Wildbill

                                      @warp735 Wegen unraid kann ich Dir nicht sagen, was Du da beachten musst. Anleitung zum Installieren von grott ist DIESE HIER.

                                      Eigentlich ganz simpel:

                                      • VM, LXC, Raspi oder was auch immer mit System nach Wahl aufsetzen (ich hab Debian 11).
                                      • Schauen, dass Python3 installiert ist (Debian bringt das schon mit).
                                      • grott mit git clone runterladen und die grott.ini anpassen (z.B. IP und Port des MQTT-Broker oder MQTT-Adapter von iobroker)
                                      • Evtl. service einrichten, damit grott beim Booten automatisch startet

                                      Am Growatt musst Du natürlich auch umstellen. Dort musst Du dann die IP von DEINEM Grott-Server eintragen. Das kannst Du auch direkt via server.growatt.com machen. Steht HIER beschrieben. Oder eben direkt auf Deinem Shinestick in dessen WLAN einloggen und da ändern. Einfach bei IP die IP des grott-Server (lokale IP) eintragen.
                                      Anschließend kommt dann ein JSON-String in iobroker unter mqtt.0 an, den man dann per Script oder Node red in einzelne Datenpunkte zerpflücken kann, die man eben möchte.

                                      Gruss, Jürgen

                                      W Offline
                                      W Offline
                                      warp735
                                      wrote on last edited by
                                      #210

                                      @wildbill
                                      Super, danke dir erstmal. Muss mal schauen wie ich das einrichte. Aktuell hab ich den Growatt nicht im "sicheren" Netz (will ich auch nicht haben)
                                      Aber liest sich ganz vielversprechend das Ganze 👍

                                      Schade das sich der Adapterentwickler hier auch nicht mehr meldet. Das Growatt Portal an sich funktioniert ja reibungslos. Nur der Adapter nicht.

                                      W 1 Reply Last reply
                                      0
                                      • W warp735

                                        @wildbill
                                        Super, danke dir erstmal. Muss mal schauen wie ich das einrichte. Aktuell hab ich den Growatt nicht im "sicheren" Netz (will ich auch nicht haben)
                                        Aber liest sich ganz vielversprechend das Ganze 👍

                                        Schade das sich der Adapterentwickler hier auch nicht mehr meldet. Das Growatt Portal an sich funktioniert ja reibungslos. Nur der Adapter nicht.

                                        W Online
                                        W Online
                                        Wildbill
                                        wrote on last edited by Wildbill
                                        #211

                                        @warp735 Ich glaube (oder vermute), dass @PLCHome-0 hier gar nicht so viel ändern kann. Ich habe die letzten Tage öfter parallel die Site server.growatt.com offen gehabt um zu vergleichen und bekam da auch oft genug Fehlermeldungen beim Anklicken der verschiedenen Zeiträume und auch mal so zwischendurch. Fehler 588 wurde auch da im Browser öfter angezeigt. Scheint also doch schon der Server zu zicken.
                                        Du könntest auch auf den US-Server wechseln. Weiter oben hatte @mane ja geschrieben, dass es bei ihm stabiler läuft. Nur ist halt die Historie bei Growatt direkt weg, da man sich da komplett neu anmelden muss. Auf den Shinestick musst Du da aber auch zugreifen und die IP bzw. den Server ändern.
                                        Von grott gibt es im Übrigen auch einen fertigen Docker-Container. Ist hier beschrieben. Vielleicht fällt Dir das damit leichter? Aber auch da musst Du im Stick die IP anpassen, darum kommst Du nicht herum. 😊
                                        Und natürlich muss der Stick dann so ins WLAN, dass er und Dein MQTT-broker (iobroker) sich gegenseitig sehen können. Ohne geht lokal halt nicht.

                                        Gruss, Jürgen

                                        EDIT: Für grott gibt es auch eine Version, die komplett auf den Growatt-Server verzichtet und alles lokal handelt. Da braucht der Stick also keine Internetverbindung mehr. HIER steht was dazu.

                                        EDIT2: Für den, der es braucht, hier noch das Script, um aus dem MQTT-JSON Datenpunkte unter userdata.0 zu befüllen:

                                        
                                        
                                        //MQTT Json to Objekt
                                        
                                         
                                        
                                        // var setzen
                                        
                                         
                                        
                                        // Create States
                                        
                                        //createState('0_userdata.0.Solaranlage.XGD3A293M6.time', 0,{type: 'number',name: 'time', read: true,write: true,role: 'value.time'})
                                        //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvstatus', 0,{type: 'number',name: 'pvstatus', read: true,write: true,role: 'value'})
                                        //createState('0_userdata.0.Solaranlage.XGD3A293M6.pv1watt', 0,{type: 'number',name: 'pv1watt', read: true,write: true,role: 'value'})
                                        //createState('0_userdata.0.Solaranlage.XGD3A293M6.pv1voltage', 0,{type: 'number',name: 'pv1voltage', read: true,write: true,role: 'value'})
                                        //createState('0_userdata.0.Solaranlage.XGD3A293M6.pv1current', 0,{type: 'number',name: 'pv1current', read: true,write: true,role: 'value'})
                                        //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvpowerin', 0,{type: 'number',name: 'pvpowerin', read: true,write: true,role: 'value'})
                                        //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvpowerout', 0,{type: 'number',name: 'pvpowerout', read: true,write: true,role: 'value'})
                                        //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvfrequentie', 0,{type: 'number',name: 'pvfrequentie', read: true,write: true,role: 'value'})
                                        //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvgridvoltage', 0,{type: 'number',name: 'pvgridvoltage', read: true,write: true,role: 'value'})
                                        //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvgridcurrent', 0,{type: 'number',name: 'pvgridcurrent', read: true,write: true,role: 'value'})
                                        //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvgridpower', 0,{type: 'number',name: 'pvgridpower', read: true,write: true,role: 'value'})
                                        //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvenergytoday', 0,{type: 'number',name: 'pvenergytoday', read: true,write: true,role: 'value'})
                                        //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvenergytotal', 0,{type: 'number',name: 'pvenergytotal', read: true,write: true,role: 'value'})
                                        //createState('0_userdata.0.Solaranlage.XGD3A293M6.epvtotal', 0,{type: 'number',name: 'epvtotal', read: true,write: true,role: 'value'})
                                        //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvtemperature', 0,{type: 'number',name: 'pvtemperature', read: true,write: true,role: 'value'})
                                        //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvipmtemperature', 0,{type: 'number',name: 'pvipmtemperature', read: true,write: true,role: 'value'})
                                        //createState('0_userdata.0.Solaranlage.XGD3A293M6.totworktime', 0,{type: 'number',name: 'totworktime', read: true,write: true,role: 'value'})
                                        
                                        
                                         
                                        
                                        // Script beginning
                                        
                                        on({id: "mqtt.0.energy.growatt"/*Growatt*/, change: "any"}, function (obj) {
                                        
                                         
                                        
                                           //variabele erstellen 
                                        
                                        	
                                            //    var time;
                                        		var pvstatus;
                                        		var pv1watt;
                                        		var pv1voltage;
                                        		var pv1current;
                                        		var pvpowerin;
                                        		var pvpowerout;
                                        		var pvfrequentie;
                                        		var pvgridvoltage;
                                        		var pvgridcurrent;
                                        		var pvgridpower;
                                        		var pvenergytoday;
                                        		var pvenergytotal;
                                        		var epvtotal;
                                        		var pvtemperature;
                                        		var pvipmtemperature;
                                        		var totworktime;
                                        		
                                        
                                               
                                        
                                           //der try ist wichtig das der adapter nicht abschmiert bei einem fehler, hiermit pasen wird die json in ein object
                                        
                                           try {obj = JSON.parse(getState("mqtt.0.energy.growatt"/*Growatt*/).val);
                                        
                                           } catch (e) {
                                        
                                                   console.error('Cannot parse: ' + getState("mqtt.0.energy.growatt"/*Growatt*/).val);
                                        
                                                   return;
                                        
                                            }
                                        
                                            //hier schreien wir die daten des json strings in die variabelen, links die variable und rechts der name im json. obj bedeuten halt lese den wert nach :
                                        
                                        
                                           //time = obj.values.time;
                                           pvstatus = obj.values.pvstatus;
                                           pv1watt = parseFloat((obj.values.pv1watt)) /10;
                                           pv1voltage = parseFloat((obj.values.pv1voltage)) /10;
                                           pv1current = parseFloat((obj.values.pv1current)) /10;
                                           pvpowerin = parseFloat((obj.values.pvpowerin)) /10;
                                           pvpowerout = parseFloat((obj.values.pvpowerout)) /10;
                                           pvfrequentie = parseFloat((obj.values.pvfrequentie)) /100;
                                           pvgridvoltage = parseFloat((obj.values.pvgridvoltage)) /10;
                                           pvgridcurrent = parseFloat((obj.values.pvgridcurrent)) /10;
                                           pvgridpower = parseFloat((obj.values.pvgridpower)) /10;
                                           pvenergytoday = parseFloat((obj.values.pvenergytoday)) /10;
                                           pvenergytotal = parseFloat((obj.values.pvenergytotal)) /10;
                                           epvtotal = parseFloat((obj.values.epvtotal)) /10;
                                           pvtemperature = parseFloat((obj.values.pvtemperature)) /10;
                                           pvipmtemperature = parseFloat((obj.values.pvipmtemperature)) /10;
                                           totworktime = obj.values.totworktime;
                                        
                                        
                                        
                                        //
                                        
                                         
                                        
                                        //setState('0_userdata.0.Solaranlage.XGD3A293M6.time', (time),true);
                                        setState('0_userdata.0.Solaranlage.XGD3A293M6.pvstatus', (pvstatus),true);
                                        setState('0_userdata.0.Solaranlage.XGD3A293M6.pv1watt', (pv1watt),true);
                                        setState('0_userdata.0.Solaranlage.XGD3A293M6.pv1voltage', (pv1voltage),true);
                                        setState('0_userdata.0.Solaranlage.XGD3A293M6.pv1current', (pv1current),true);
                                        setState('0_userdata.0.Solaranlage.XGD3A293M6.pvpowerin', (pvpowerin),true);
                                        setState('0_userdata.0.Solaranlage.XGD3A293M6.pvpowerout', (pvpowerout),true);
                                        setState('0_userdata.0.Solaranlage.XGD3A293M6.pvfrequentie', (pvfrequentie),true);
                                        setState('0_userdata.0.Solaranlage.XGD3A293M6.pvgridvoltage', (pvgridvoltage),true);
                                        setState('0_userdata.0.Solaranlage.XGD3A293M6.pvgridcurrent', (pvgridcurrent),true);
                                        setState('0_userdata.0.Solaranlage.XGD3A293M6.pvgridpower', (pvgridpower),true);
                                        setState('0_userdata.0.Solaranlage.XGD3A293M6.pvenergytoday', (pvenergytoday),true);
                                        setState('0_userdata.0.Solaranlage.XGD3A293M6.pvenergytotal', (pvenergytotal),true);
                                        setState('0_userdata.0.Solaranlage.XGD3A293M6.epvtotal', (epvtotal),true);
                                        setState('0_userdata.0.Solaranlage.XGD3A293M6.pvtemperature', (pvtemperature),true);
                                        setState('0_userdata.0.Solaranlage.XGD3A293M6.pvipmtemperature', (pvipmtemperature),true);
                                        setState('0_userdata.0.Solaranlage.XGD3A293M6.totworktime', (totworktime),true);
                                        
                                        
                                        
                                        
                                        });
                                        
                                        

                                        0_userdata.0.Solaranlage.XGD3A293M6 kann beliebig angepasst werden. Zum Anlegen der Datenpunkte einmalig ganz oben vor den createState jeweils die // entfernen. Pfade zu mqtt und userdata dann jeweils anpassen.

                                        EditEDIT: Um den Datenpunkt time zu befüllen fehlt noch ein kleines Script. Kann man auch in das obige unten mit anhängen:

                                        on({id: [].concat(['mqtt.0.energy.growatt']), change: "ne"}, async function (obj) {
                                          var value = obj.state.val;
                                          var oldValue = obj.oldState.val;
                                          setState("0_userdata.0.Solaranlage.XGD3A293M6.time"/*time*/, (obj.state ? obj.state.ts : ""), true);
                                        });
                                        
                                        B PLCHome 0P 2 Replies Last reply
                                        1
                                        • W Wildbill

                                          @warp735 Ich glaube (oder vermute), dass @PLCHome-0 hier gar nicht so viel ändern kann. Ich habe die letzten Tage öfter parallel die Site server.growatt.com offen gehabt um zu vergleichen und bekam da auch oft genug Fehlermeldungen beim Anklicken der verschiedenen Zeiträume und auch mal so zwischendurch. Fehler 588 wurde auch da im Browser öfter angezeigt. Scheint also doch schon der Server zu zicken.
                                          Du könntest auch auf den US-Server wechseln. Weiter oben hatte @mane ja geschrieben, dass es bei ihm stabiler läuft. Nur ist halt die Historie bei Growatt direkt weg, da man sich da komplett neu anmelden muss. Auf den Shinestick musst Du da aber auch zugreifen und die IP bzw. den Server ändern.
                                          Von grott gibt es im Übrigen auch einen fertigen Docker-Container. Ist hier beschrieben. Vielleicht fällt Dir das damit leichter? Aber auch da musst Du im Stick die IP anpassen, darum kommst Du nicht herum. 😊
                                          Und natürlich muss der Stick dann so ins WLAN, dass er und Dein MQTT-broker (iobroker) sich gegenseitig sehen können. Ohne geht lokal halt nicht.

                                          Gruss, Jürgen

                                          EDIT: Für grott gibt es auch eine Version, die komplett auf den Growatt-Server verzichtet und alles lokal handelt. Da braucht der Stick also keine Internetverbindung mehr. HIER steht was dazu.

                                          EDIT2: Für den, der es braucht, hier noch das Script, um aus dem MQTT-JSON Datenpunkte unter userdata.0 zu befüllen:

                                          
                                          
                                          //MQTT Json to Objekt
                                          
                                           
                                          
                                          // var setzen
                                          
                                           
                                          
                                          // Create States
                                          
                                          //createState('0_userdata.0.Solaranlage.XGD3A293M6.time', 0,{type: 'number',name: 'time', read: true,write: true,role: 'value.time'})
                                          //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvstatus', 0,{type: 'number',name: 'pvstatus', read: true,write: true,role: 'value'})
                                          //createState('0_userdata.0.Solaranlage.XGD3A293M6.pv1watt', 0,{type: 'number',name: 'pv1watt', read: true,write: true,role: 'value'})
                                          //createState('0_userdata.0.Solaranlage.XGD3A293M6.pv1voltage', 0,{type: 'number',name: 'pv1voltage', read: true,write: true,role: 'value'})
                                          //createState('0_userdata.0.Solaranlage.XGD3A293M6.pv1current', 0,{type: 'number',name: 'pv1current', read: true,write: true,role: 'value'})
                                          //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvpowerin', 0,{type: 'number',name: 'pvpowerin', read: true,write: true,role: 'value'})
                                          //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvpowerout', 0,{type: 'number',name: 'pvpowerout', read: true,write: true,role: 'value'})
                                          //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvfrequentie', 0,{type: 'number',name: 'pvfrequentie', read: true,write: true,role: 'value'})
                                          //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvgridvoltage', 0,{type: 'number',name: 'pvgridvoltage', read: true,write: true,role: 'value'})
                                          //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvgridcurrent', 0,{type: 'number',name: 'pvgridcurrent', read: true,write: true,role: 'value'})
                                          //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvgridpower', 0,{type: 'number',name: 'pvgridpower', read: true,write: true,role: 'value'})
                                          //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvenergytoday', 0,{type: 'number',name: 'pvenergytoday', read: true,write: true,role: 'value'})
                                          //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvenergytotal', 0,{type: 'number',name: 'pvenergytotal', read: true,write: true,role: 'value'})
                                          //createState('0_userdata.0.Solaranlage.XGD3A293M6.epvtotal', 0,{type: 'number',name: 'epvtotal', read: true,write: true,role: 'value'})
                                          //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvtemperature', 0,{type: 'number',name: 'pvtemperature', read: true,write: true,role: 'value'})
                                          //createState('0_userdata.0.Solaranlage.XGD3A293M6.pvipmtemperature', 0,{type: 'number',name: 'pvipmtemperature', read: true,write: true,role: 'value'})
                                          //createState('0_userdata.0.Solaranlage.XGD3A293M6.totworktime', 0,{type: 'number',name: 'totworktime', read: true,write: true,role: 'value'})
                                          
                                          
                                           
                                          
                                          // Script beginning
                                          
                                          on({id: "mqtt.0.energy.growatt"/*Growatt*/, change: "any"}, function (obj) {
                                          
                                           
                                          
                                             //variabele erstellen 
                                          
                                          	
                                              //    var time;
                                          		var pvstatus;
                                          		var pv1watt;
                                          		var pv1voltage;
                                          		var pv1current;
                                          		var pvpowerin;
                                          		var pvpowerout;
                                          		var pvfrequentie;
                                          		var pvgridvoltage;
                                          		var pvgridcurrent;
                                          		var pvgridpower;
                                          		var pvenergytoday;
                                          		var pvenergytotal;
                                          		var epvtotal;
                                          		var pvtemperature;
                                          		var pvipmtemperature;
                                          		var totworktime;
                                          		
                                          
                                                 
                                          
                                             //der try ist wichtig das der adapter nicht abschmiert bei einem fehler, hiermit pasen wird die json in ein object
                                          
                                             try {obj = JSON.parse(getState("mqtt.0.energy.growatt"/*Growatt*/).val);
                                          
                                             } catch (e) {
                                          
                                                     console.error('Cannot parse: ' + getState("mqtt.0.energy.growatt"/*Growatt*/).val);
                                          
                                                     return;
                                          
                                              }
                                          
                                              //hier schreien wir die daten des json strings in die variabelen, links die variable und rechts der name im json. obj bedeuten halt lese den wert nach :
                                          
                                          
                                             //time = obj.values.time;
                                             pvstatus = obj.values.pvstatus;
                                             pv1watt = parseFloat((obj.values.pv1watt)) /10;
                                             pv1voltage = parseFloat((obj.values.pv1voltage)) /10;
                                             pv1current = parseFloat((obj.values.pv1current)) /10;
                                             pvpowerin = parseFloat((obj.values.pvpowerin)) /10;
                                             pvpowerout = parseFloat((obj.values.pvpowerout)) /10;
                                             pvfrequentie = parseFloat((obj.values.pvfrequentie)) /100;
                                             pvgridvoltage = parseFloat((obj.values.pvgridvoltage)) /10;
                                             pvgridcurrent = parseFloat((obj.values.pvgridcurrent)) /10;
                                             pvgridpower = parseFloat((obj.values.pvgridpower)) /10;
                                             pvenergytoday = parseFloat((obj.values.pvenergytoday)) /10;
                                             pvenergytotal = parseFloat((obj.values.pvenergytotal)) /10;
                                             epvtotal = parseFloat((obj.values.epvtotal)) /10;
                                             pvtemperature = parseFloat((obj.values.pvtemperature)) /10;
                                             pvipmtemperature = parseFloat((obj.values.pvipmtemperature)) /10;
                                             totworktime = obj.values.totworktime;
                                          
                                          
                                          
                                          //
                                          
                                           
                                          
                                          //setState('0_userdata.0.Solaranlage.XGD3A293M6.time', (time),true);
                                          setState('0_userdata.0.Solaranlage.XGD3A293M6.pvstatus', (pvstatus),true);
                                          setState('0_userdata.0.Solaranlage.XGD3A293M6.pv1watt', (pv1watt),true);
                                          setState('0_userdata.0.Solaranlage.XGD3A293M6.pv1voltage', (pv1voltage),true);
                                          setState('0_userdata.0.Solaranlage.XGD3A293M6.pv1current', (pv1current),true);
                                          setState('0_userdata.0.Solaranlage.XGD3A293M6.pvpowerin', (pvpowerin),true);
                                          setState('0_userdata.0.Solaranlage.XGD3A293M6.pvpowerout', (pvpowerout),true);
                                          setState('0_userdata.0.Solaranlage.XGD3A293M6.pvfrequentie', (pvfrequentie),true);
                                          setState('0_userdata.0.Solaranlage.XGD3A293M6.pvgridvoltage', (pvgridvoltage),true);
                                          setState('0_userdata.0.Solaranlage.XGD3A293M6.pvgridcurrent', (pvgridcurrent),true);
                                          setState('0_userdata.0.Solaranlage.XGD3A293M6.pvgridpower', (pvgridpower),true);
                                          setState('0_userdata.0.Solaranlage.XGD3A293M6.pvenergytoday', (pvenergytoday),true);
                                          setState('0_userdata.0.Solaranlage.XGD3A293M6.pvenergytotal', (pvenergytotal),true);
                                          setState('0_userdata.0.Solaranlage.XGD3A293M6.epvtotal', (epvtotal),true);
                                          setState('0_userdata.0.Solaranlage.XGD3A293M6.pvtemperature', (pvtemperature),true);
                                          setState('0_userdata.0.Solaranlage.XGD3A293M6.pvipmtemperature', (pvipmtemperature),true);
                                          setState('0_userdata.0.Solaranlage.XGD3A293M6.totworktime', (totworktime),true);
                                          
                                          
                                          
                                          
                                          });
                                          
                                          

                                          0_userdata.0.Solaranlage.XGD3A293M6 kann beliebig angepasst werden. Zum Anlegen der Datenpunkte einmalig ganz oben vor den createState jeweils die // entfernen. Pfade zu mqtt und userdata dann jeweils anpassen.

                                          EditEDIT: Um den Datenpunkt time zu befüllen fehlt noch ein kleines Script. Kann man auch in das obige unten mit anhängen:

                                          on({id: [].concat(['mqtt.0.energy.growatt']), change: "ne"}, async function (obj) {
                                            var value = obj.state.val;
                                            var oldValue = obj.oldState.val;
                                            setState("0_userdata.0.Solaranlage.XGD3A293M6.time"/*time*/, (obj.state ? obj.state.ts : ""), true);
                                          });
                                          
                                          B Offline
                                          B Offline
                                          bassface
                                          wrote on last edited by
                                          #212

                                          @wildbill
                                          Herzlichen Dank für deine Ausführungen und das Skript 😊 🤗

                                          Hab nun Grott als Docker im Proxy-Modus laufen 👍

                                          Funktionierte eigentlich direkt und ohne Probleme.
                                          MQTT-Adapter installiert, Docker eingerichtet, IP der Servers auf dem Stick geändert - Fertig

                                          ioBroker hat die Daten nun direkt und Grott meldet auch brav an Growatt weiter...

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          612

                                          Online

                                          32.4k

                                          Users

                                          81.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe