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 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
                        • smartboart
                          smartboart @smartboart last edited by

                          @Wiednitz was hast da für ne Kamera? kann ich ja auch für meine benutzen...Steuer meine aber über das onvif Protokoll...Mal probieren ob das bei mir auch tut...Hab untere anderem ne Foscam FI9928P - Full HD Outdoor Kamera

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

                            @smartboart

                            Großes Danke für das Script, läuft erstmal. Wenn ich die Kamera jetzt wo anders positioniere, dann nimmt sie die korrekte Position bei Start des Scriptes ein. Mal sehen ob morgen Früh dann die Position 1(0) eingenommen wird.

                            Ich habe eine Wanscam HW0045. Soll in etwa baugleich mit Foscam 9928 sein, das "hi3510" in meiner Request URL steht für den Chip, der in den Kameras verbaut ist. Das ganze Cgi Zeug war bei meiner Cam nicht dokumentiert, alles durch probieren herausgefunden. Ebenfalls funktionieren bei mir auch Cgi Kommandos von FDT, hier im speziellen "setimageattr" und "setldcattr". Letzteres vermindert mit Wert 511 den Fischaugeneffekt.
                            Bei Angabe der PTZ mit CGI muss immer -1 angegeben werden. Ich speichere zum Beispiel in tinycam PTZ 1, muss aber bei CGI Request 0 angeben.

                            Foscam CGI

                            FDT CGI

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

                              @Wiednitz hab vor parr minuten noch was geändert....schau malob du die aktuelle hast

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

                                @smartboart

                                ja hab version 2 genommen

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

                                  @Wiednitz ja wenn die v0.02 im skript steht ist aktuell..

                                  Nachtrag..V0.03 noch die beiden Variablen Tag / Nacht oben entfernt und die Trigger nach unten gepackt...

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

                                    @smartboart

                                    Jo werde es dann nochmal kopieren.

                                    Da haben wir ja die gleiche IPcam 👍

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

                                      hier gehts mit Foscam weiter.... wegen off Topic
                                      https://forum.iobroker.net/topic/27255/ipcam-fi9928p-position-nach-astro-http-request

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

                                        @Wiednitz
                                        sag mal um auf Growatt zurück zu kommen. Wo liegt denn gerade dein Ertrag in diesen Tagen?
                                        Oder hast mal ne Verlaufskurve Leistung für mich? Würde gerne mal vergleichen, was meine absolut ungünstig positionierten Panels im Vergleich zu gut ausgerichteten so machen. Aktuell habe ich nur 3 Strings aktiv, weil mir noch 2 Sperrdioden fehlen, welche im Zulauf sind...

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

                                          @smartboart

                                          Kannst Du damit was anfangen ? Bei dem trüben Wetter ist der Ertrag pro Tag auch meist bei 0,? kwh.

                                          November

                                          capture_001_02122019_183535.jpg

                                          Oktober

                                          capture_002_02122019_183810.jpg

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

                                            Hi
                                            Mal ne Frage:
                                            Kann ich mit einen RS232 -> USB Adapter schon die Daten empfangen und in iobroker verwenden? Falls ja, was muss ich wo einstelle bzw. installieren?
                                            Danke

                                            Wiednitz 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

                                            731
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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