Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. Growatt Wechselrichter über Modbus auslesen - gelöst -

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Growatt Wechselrichter über Modbus auslesen - gelöst -

    This topic has been deleted. Only users with topic management privileges can see it.
    • smartboart
      smartboart @Wiednitz last edited by

      @Wiednitz ja, aber meine panels liegen alle flach auf dem Flachdach und ersetzten quasi die Dachpappe. Beide Dächer sind voll verschattet und haben zu unterschiedlichen Tageszeiten nur Sonne . Keine Neigung. Nach Sonnenstandsberechnung ist immer nur ein drittel aktiv und das nur zu einem geringen Prozentsatz. Die Panels habe ich günstig von einem Solarpark erworben und haben auch nicht mehr volle Leistung... Wie gesagt it ein Lernprojekt. Habe alles berechnet und werde dann in der Praxis sehen ob die Berechnungen stimmen.

      smartboart 1 Reply Last reply Reply Quote 0
      • smartboart
        smartboart @smartboart last edited by smartboart

        jeder Strang ist einzeln abgesichert und Sperrdioden verhindern Hotpots bzw. Rückstrom in verschattete Anlagenteile. Über Schütze können bei Bearf strings zu oder weggeschaltet werden. Deshalb die States in IO Broker.... Und die einzige Größe die einen Inverter grillt ist die Spannung. Was er kann zieht er halt an Leistung. Die zulässige Spannung wird nicht überschritten. Ist halt ne Studie....für die in zukunft geplante Anlage .

        Wiednitz 1 Reply Last reply Reply Quote 0
        • Wiednitz
          Wiednitz @smartboart last edited by

          @smartboart

          Aha flach und beschattet, da ist es verständlich. Meine kann ich manuell dem Sonnenstand nachführen. Und die richtige Anlage hat dann einen besseren Standort ?

          Das nur die Spannung der Anlage schaden kann ist bekannt, allerdings wird der Inverter bei Volllast auch gut warm, an die 40 Grad. Da ist die Frage, wie die Komponenten altern. Sperrdioden sollen heutige Panels ja schon integriert haben, wie ich gelesen habe !?

          smartboart 1 Reply Last reply Reply Quote 0
          • smartboart
            smartboart @Wiednitz last edited by smartboart

            @Wiednitz Bypassdioden haben die drinne....Sperrdioden? weiß ich nicht...meine jedenfalls nicht...sind aber auch schon Altere...

            Nachführung it cool!

            Ja die Richtige kommt auf Satteldach...Hat ne ideale Ausrichtung und Neigung...

            Wiednitz 1 Reply Last reply Reply Quote 0
            • Wiednitz
              Wiednitz @smartboart last edited by

              @smartboart

              Nagut kann sein, ich verwechsle die Diodenart. Hab mal bei Sonne mit der Hand so ein Feld auf einem Panel abgedeckt, da ist die Leistung 100 Watt abgefallen......

              smartboart 1 Reply Last reply Reply Quote 0
              • smartboart
                smartboart @Wiednitz last edited by

                @Wiednitz Ja dafür sind die Bypassdioden, dass dann trotzdem noch was aus dem string kommt. Wären die nicht drinne, wäre der ganze String weg.

                Wiednitz 1 Reply Last reply Reply Quote 0
                • Wiednitz
                  Wiednitz @smartboart last edited by

                  @smartboart

                  Naja bei 4 Panels hab ich ja nur einen String ^^

                  smartboart 1 Reply Last reply Reply Quote 0
                  • smartboart
                    smartboart @Wiednitz last edited by smartboart

                    @Wiednitz dann brauchst auch keine sperrdiode...1 String ist bei dem inverter aber auch ideal, hat ja auch nur einen MPP Tracker.

                    Wiednitz 1 Reply Last reply Reply Quote 0
                    • Wiednitz
                      Wiednitz @smartboart last edited by Wiednitz

                      @smartboart

                      Mal Off topic Growatt, du scheinst ja wesentlich mehr Ahnung zu haben, was Scripte angeht. Ich versuche meiner IPcam je nach Tageszeit verschiedene Positionen zuzuweisen. Das versuche ich per Astrozeit. Jedoch scheint das hinter "sonst" nicht ausgeführt zu werden. Wo ist der Fehler ? Hab mein Blockly mal als Javascript eingefügt....

                      var Intervall;
                      
                      
                      Intervall = setInterval(function () {
                        if (compareTime(getAstroDate("sunset", undefined, 0), getAstroDate("sunrise", undefined, 0), "not between", null)) {
                          try {
                            require("request")('http://192.168.10.68/cgi-bin/hi3510/preset.cgi?-act=goto&-number=0?usr=xxx&pwd=xxx').on("error", function (e) {console.error(e);});
                          } catch (e) { console.error(e); }
                        } else {
                          try {
                            require("request")('http://192.168.10.68/cgi-bin/hi3510/preset.cgi?-act=goto&-number=5?usr=xxx&pwd=xxx').on("error", function (e) {console.error(e);});
                          } catch (e) { console.error(e); }
                        }
                      }, 60000);
                      
                      
                      smartboart 1 Reply Last reply Reply Quote 0
                      • smartboart
                        smartboart @Wiednitz last edited by

                        @Wiednitz
                        Also von Blockly habe ich keine Ahnung. Was Javascript aus dem Blockly macht sieht für mich auch eher Merkwürdig aus. Ich bastle morgen morgen mal nen javascript zusammen wie ich es programmieren würde.
                        Die http Request an sich funktionieren aber oder?

                        Wiednitz 1 Reply Last reply Reply Quote 0
                        • smartboart
                          smartboart last edited by

                          hab mal das Growatt Skript um die Amotisierung angepasst und kleine Änderungen eingebaut.

                          /* Skript berechnet Tagesersparnis / Ertrag , Gesamtersparnis / Ertrag sowie die
                          Gesamtlaufzeit*/
                          
                          // Anlegen der States für Vis
                          createState('javascript.0.Messwerte.PV_Huette.Ertrag_Heute',{read: true,write: true,desc: "Errsparnis PV Anlage Heute",type: "number",def:0, unit: "EUR"});
                          createState('javascript.0.Messwerte.PV_Huette.Ertrag_Gesamt',{read: true,write: true,desc: "Ersparnis PV Anlage Gesamt",type: "number",def:0, unit: "EUR"});
                          createState('javascript.0.Messwerte.PV_Huette.Laufzeit',{read: true,write: true,desc: "Betriebsstundenzähler",type: "number",def:0, unit: "h"});
                          createState('javascript.0.Messwerte.PV_Huette.Amotisierung',{read: true,write: true,desc: "Amotisierung Anschaffungskosten",type: "number",def:0, unit: "EUR"});
                          
                          
                          //Variablen
                          var logging = false; // true = log aktivieren / false = log deaktivieren
                          var Ersparnis = 0.31; //Strompreis für  kw/h in € hier eintragen
                          var Anschaffungskosten = 3,50; // hier Anschaffungskosten eintragen
                          
                          //Konstante
                          const idErtragHeute = 'modbus.1.inputRegisters.30028Erzeugte_Leistung heute'/*Erzeugte Leistung heute*/;
                          const idErtragGesamt = 'modbus.1.inputRegisters.30030Erzeugte_Leistung gesamt'/*Erzeugte Leistung gesamt*/;
                          
                          const idErsparnisHeute = 'javascript.0.Messwerte.PV_Huette.Ertrag_Heute';   
                          const idErsparnisGesamt = 'javascript.0.Messwerte.PV_Huette.Ertrag_Gesamt'; 
                          
                          const idLaufzeitLow = 'modbus.1.inputRegisters.30032Laufzeit_low'/*Laufzeit gesamt*/;
                          const idLaufzeitHigh = 'modbus.1.inputRegisters.30031Laufzeit_high'/*Laufzeit gesamt*/;
                          const idLaufzeit = 'javascript.0.Messwerte.PV_Huette.Laufzeit';
                          
                          const idRestkosten = 'javascript.0.Messwerte.PV_Huette.Amotisierung';
                          
                          // Funktion Restkosten Berechnen
                          function BerechnenRestkosten() {
                          var Ersparnis = getState(idErsparnisGesamt).val;
                          if(Ersparnis>0){
                          setState(idRestkosten,Anschaffungskosten-Ersparnis,true);
                          if(logging)log("Restkosten Wechselrichter berechnet"); 
                              }
                          }
                          
                          //Funktion Laufzeit berechnen
                          function BerechnenLaufzeit() {
                          var High = getState(idLaufzeitHigh).val;
                          var Low = getState(idLaufzeitLow).val;
                          if(Low>0 || High>0){
                          setState(idLaufzeit,High*18.203+Low/3600,true)
                          if(logging)log("Gesamtlaufzeit Wechselrichter berechnet"); 
                              }
                          }
                          
                          
                          //Funktion Ertrag in € heute berechnen
                          function BerechnenHeute() {
                          var ErtragHeute = getState(idErtragHeute).val;  
                          if(ErtragHeute>0){
                          setState(idErsparnisHeute,ErtragHeute*Ersparnis,true);
                          if(logging)log("Tagesstrom Ertrag berechnet"); 
                              }
                          }
                          
                          // Funktion Ertrag in € Gesamt berechnen
                          function BerechnenTotal(){
                          var ErtragGesamt = getState(idErtragGesamt).val;
                          if(ErtragGesamt>0){
                          setState(idErsparnisGesamt,ErtragGesamt*Ersparnis,true);
                          if(logging)log(" Gesamtstrom Ertrag  berechnet ");
                              }
                          }
                          
                          // Scriptstart
                          BerechnenHeute();
                          BerechnenTotal();
                          BerechnenLaufzeit();
                          BerechnenRestkosten();
                          
                          // Trigger Berechnen Ertrag in € heute
                          on(idErtragHeute, function(obj) {
                              if(logging)log(" Trigger Ertrag Heute Ersparnis berchnen ");
                              BerechnenHeute();
                          });
                          
                          // Trigger Berechnen Ertrag in € Gesamt und Amotisierung
                          on(idErtragGesamt, function(obj) {
                              if(logging)log(" Trigger Ertrag Gesamt Ersparnis berchnen ");
                              BerechnenTotal();
                              BerechnenRestkosten();
                          });
                          
                          // Trigger High zum Berechnen Laufzeit gesamt
                          on(idLaufzeitHigh, function(obj) {
                              if(logging)log(" Trigger High Laufzeit berchnen ");
                              BerechnenLaufzeit();
                          });
                          
                          // Trigger Low zum Berechnen Laufzeit gesamt
                          on(idLaufzeitLow, function(obj) {
                              if(logging)log(" Trigger Low Laufzeit berchnen ");
                              BerechnenLaufzeit();
                          });
                          
                          Wiednitz 1 Reply Last reply Reply Quote 0
                          • Wiednitz
                            Wiednitz @smartboart last edited by

                            @smartboart

                            ja die Steuerung per http Request funktioniert. Wenn ich die Position jetzt manuell verändere, wird bei Neustart des Scripts der erste Request ausgeführt. Eigentlich müsste ja der zweite Request ausgeführt werden....

                            Großen Danke im Voraus...

                            smartboart 1 Reply Last reply Reply Quote 0
                            • Wiednitz
                              Wiednitz @smartboart last edited by

                              @smartboart

                              Dein Script werde ich mal an meine Datenpunkte anpassen und ins VIS einfügen. So langsam ist mein Bildschirm aber voll. Vor einem Jahr wollte ich eigentlich nur meinen Torantrieb smart machen....

                              1 Reply Last reply Reply Quote 0
                              • smartboart
                                smartboart @Wiednitz last edited by

                                @Wiednitz Also wills bei Neustart prüfen welcher Astro aktiv ist? Kein Ding hab ich im Bad mit der Ambientbeleuchtung auch so gemacht...

                                Wiednitz 1 Reply Last reply Reply Quote 0
                                • Wiednitz
                                  Wiednitz @smartboart last edited by

                                  @smartboart

                                  Nein das Script soll immer laufen und täglich bei Tag PTZ Position 1 (0) einnehmen und bei Nacht Position 6 (5) .

                                  Mit dem Neustart wollte ich nur den Request überprüfen und ob das Script überhaupt etwas bewirkt....

                                  1 Reply Last reply Reply Quote 0
                                  • Wiednitz
                                    Wiednitz last edited by

                                    capture_001_01122019_193822.jpg

                                    Hab jetzt mal die Rquest vertauscht. Der erste Request wird ausgeführt obwohl jetzt der zweite dran wäre !? Oder hab ich hier einen Denkfehler !?

                                    1 Reply Last reply Reply Quote 0
                                    • smartboart
                                      smartboart last edited by

                                      ich hab mit dem bildchen schieben nix am hut....ich programiere dir nen javascript...

                                      Wiednitz 1 Reply Last reply Reply Quote 0
                                      • Wiednitz
                                        Wiednitz @smartboart last edited by

                                        @smartboart

                                        Ja schon klar, wollte mein Problem nur bildlich darstellen 🙂

                                        Danke erstmal...

                                        smartboart 1 Reply Last reply Reply Quote 0
                                        • smartboart
                                          smartboart @Wiednitz last edited by smartboart

                                          @Wiednitz
                                          hier mal der 1. schuss....schau mal ob ich die links richtig zugeordnet habe.

                                          siehe unten

                                          1 Reply Last reply Reply Quote 0
                                          • smartboart
                                            smartboart last edited by smartboart

                                            //Skript Kameraposition anfahren nach Astro smartboart 01.12.2019 V0.03
                                            // states für Vis Kamerapos zur Kontrolle der Skriptlogig und als Merker zum speichern der Tageszeit
                                            // Beim Anlegen der States Tag oder Nacht entsprechend der Tageszeit gleich festlegen... / def: true oder false
                                            createState ('javascript.0.Kamera.Tagesposition', {def: 'false', type: 'boolean', name: 'Kameraposition Tag'});
                                            createState ('javascript.0.Kamera.Nachtposition', {def: 'true', type: 'boolean', name: 'Kameraposition Nacht'});
                                            
                                            // Konstante
                                            const idPosTag = 'javascript.0.Kamera.Tagesposition';
                                            const idPosNacht = 'javascript.0.Kamera.Nachtposition';
                                            
                                            // Variable logging aktivieren deaktivieren
                                            var logging = true;
                                            
                                            // Funktionslogik Sonnenaufgang
                                            function Sonnenaufgang(){
                                            request('http://192.168.10.68/cgi-bin/hi3510/preset.cgi?-act=goto&-number=0?usr=xxxxx&pwd=xxxx'), function (error, response){
                                            if (logging)log('Kamera angesteuert für Position Sonnenaufgang ');
                                            setState(idPosTag,true,true);
                                            setState(idPosNacht,false,true);
                                            }
                                            }
                                            
                                            // Funktionslogik Sonnenuntergang
                                            function Sonnenuntergang(){
                                            request('http://192.168.10.68/cgi-bin/hi3510/preset.cgi?-act=goto&-number=5?usr=xxxxxx&pwd=xxxxx'), function (error, response){
                                            if (logging)log('Kamera angesteuert für Position Sonnenuntergang ');
                                            setState(idPosTag,false,true);
                                            setState(idPosNacht,true,true);
                                            }
                                            }
                                            
                                            // Skriptstart
                                            Scriptstart();
                                            
                                            // Funktion Skriptstart
                                            function Scriptstart(){
                                            var Tag = getState(idPosTag);
                                            var Nacht = getState(idPosNacht);
                                            if (Tag) {
                                            Sonnenaufgang();
                                            if (logging)log('Skriptstart Tagprogramm');
                                            }else{
                                            Sonnenuntergang();
                                            if (logging)log('Skriptstart Nachtprogramm');
                                                }
                                            }
                                            
                                            // Trigger Sonnenaufgang
                                            schedule({astro: "sunrise"}, function () {//Sonnenaufgang
                                            Sonnenaufgang();
                                            });
                                            
                                            // Trigger Sonnenuntergang
                                            schedule({astro: "sunset"}, function () {//Sonnenuntergang
                                            Sonnenuntergang();
                                            });
                                            
                                            
                                            smartboart 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

                                            780
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            29
                                            227
                                            80779
                                            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