Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. ioBroker Allgemein
  4. Growatt Wechselrichter über Modbus auslesen - gelöst -

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.6k

Growatt Wechselrichter über Modbus auslesen - gelöst -

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
229 Beiträge 29 Kommentatoren 98.6k Aufrufe 23 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • smartboartS smartboart

    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();
    });
    
    WiednitzW Offline
    WiednitzW Offline
    Wiednitz
    schrieb am zuletzt editiert von
    #111

    @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 Antwort Letzte Antwort
    0
    • WiednitzW Wiednitz

      @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...

      smartboartS Offline
      smartboartS Offline
      smartboart
      schrieb am zuletzt editiert von
      #112

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

      WiednitzW 1 Antwort Letzte Antwort
      0
      • smartboartS smartboart

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

        WiednitzW Offline
        WiednitzW Offline
        Wiednitz
        schrieb am zuletzt editiert von
        #113

        @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 Antwort Letzte Antwort
        0
        • WiednitzW Offline
          WiednitzW Offline
          Wiednitz
          schrieb am zuletzt editiert von
          #114

          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 Antwort Letzte Antwort
          0
          • smartboartS Offline
            smartboartS Offline
            smartboart
            schrieb am zuletzt editiert von
            #115

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

            WiednitzW 1 Antwort Letzte Antwort
            0
            • smartboartS smartboart

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

              WiednitzW Offline
              WiednitzW Offline
              Wiednitz
              schrieb am zuletzt editiert von
              #116

              @smartboart

              Ja schon klar, wollte mein Problem nur bildlich darstellen :)

              Danke erstmal...

              smartboartS 1 Antwort Letzte Antwort
              0
              • WiednitzW Wiednitz

                @smartboart

                Ja schon klar, wollte mein Problem nur bildlich darstellen :)

                Danke erstmal...

                smartboartS Offline
                smartboartS Offline
                smartboart
                schrieb am zuletzt editiert von smartboart
                #117

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

                siehe unten

                1 Antwort Letzte Antwort
                0
                • smartboartS Offline
                  smartboartS Offline
                  smartboart
                  schrieb am zuletzt editiert von smartboart
                  #118
                  //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();
                  });
                  
                  
                  smartboartS 1 Antwort Letzte Antwort
                  0
                  • smartboartS 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();
                    });
                    
                    
                    smartboartS Offline
                    smartboartS Offline
                    smartboart
                    schrieb am zuletzt editiert von
                    #119

                    @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

                    WiednitzW 1 Antwort Letzte Antwort
                    0
                    • smartboartS smartboart

                      @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

                      WiednitzW Offline
                      WiednitzW Offline
                      Wiednitz
                      schrieb am zuletzt editiert von Wiednitz
                      #120

                      @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

                      smartboartS 1 Antwort Letzte Antwort
                      0
                      • WiednitzW 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

                        smartboartS Offline
                        smartboartS Offline
                        smartboart
                        schrieb am zuletzt editiert von
                        #121

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

                        WiednitzW 1 Antwort Letzte Antwort
                        0
                        • smartboartS smartboart

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

                          WiednitzW Offline
                          WiednitzW Offline
                          Wiednitz
                          schrieb am zuletzt editiert von
                          #122

                          @smartboart

                          ja hab version 2 genommen

                          smartboartS 1 Antwort Letzte Antwort
                          0
                          • WiednitzW Wiednitz

                            @smartboart

                            ja hab version 2 genommen

                            smartboartS Offline
                            smartboartS Offline
                            smartboart
                            schrieb am zuletzt editiert von smartboart
                            #123

                            @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...

                            WiednitzW 1 Antwort Letzte Antwort
                            0
                            • smartboartS 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...

                              WiednitzW Offline
                              WiednitzW Offline
                              Wiednitz
                              schrieb am zuletzt editiert von
                              #124

                              @smartboart

                              Jo werde es dann nochmal kopieren.

                              Da haben wir ja die gleiche IPcam 👍

                              1 Antwort Letzte Antwort
                              0
                              • smartboartS Offline
                                smartboartS Offline
                                smartboart
                                schrieb am zuletzt editiert von
                                #125

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

                                1 Antwort Letzte Antwort
                                0
                                • smartboartS Offline
                                  smartboartS Offline
                                  smartboart
                                  schrieb am zuletzt editiert von
                                  #126

                                  @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...

                                  WiednitzW 1 Antwort Letzte Antwort
                                  0
                                  • smartboartS smartboart

                                    @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...

                                    WiednitzW Offline
                                    WiednitzW Offline
                                    Wiednitz
                                    schrieb am zuletzt editiert von Wiednitz
                                    #127

                                    @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 Antwort Letzte Antwort
                                    0
                                    • SMSS Offline
                                      SMSS Offline
                                      SMS
                                      schrieb am zuletzt editiert von
                                      #128

                                      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

                                      WiednitzW 1 Antwort Letzte Antwort
                                      0
                                      • SMSS SMS

                                        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

                                        WiednitzW Offline
                                        WiednitzW Offline
                                        Wiednitz
                                        schrieb am zuletzt editiert von Wiednitz
                                        #129

                                        @SMS

                                        Na im Modbus Adapter einfach seriell wählen, 9600 Baud 8n1, richtigen Comport auswählen, Register eintragen.

                                        1 Antwort Letzte Antwort
                                        0
                                        • SMSS Offline
                                          SMSS Offline
                                          SMS
                                          schrieb am zuletzt editiert von
                                          #130

                                          OK, werd ich mal versuchen. Könntest das mit dem Register eintragen etwas näher erklären?

                                          WiednitzW 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

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

                                          303

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe