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. Skripten / Logik
  4. JavaScript
  5. E3DC Hauskraftwerk steuern

NEWS

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

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

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

E3DC Hauskraftwerk steuern

Geplant Angeheftet Gesperrt Verschoben JavaScript
3.5k Beiträge 70 Kommentatoren 1.6m Aufrufe 61 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.
  • A ArnoD

    @smartboart

    Ich vermute, das du bei deinen Einstellungen im Script unter "nMinPvLeistungTag_kWh" 10 kWh eingetragen hast bzw. nicht geändert hast.
    Unter diesen Wert geht die autom. Prognoseberechnung nicht, auch wenn die Prognose Proplanta niedriger ist.
    Was mir auffällt ist, dass die Prognose Proplanta bei dir recht gut funktioniert, bei mir sieht es diesen Monat da etwas Schlechter aus.
    1.png

    S Online
    S Online
    stevie77
    schrieb am zuletzt editiert von
    #538

    @ArnoD sagte in E3DC Hauskraftwerk steuern:

    @smartboart

    Ich vermute, das du bei deinen Einstellungen im Script unter "nMinPvLeistungTag_kWh" 10 kWh eingetragen hast bzw. nicht geändert hast.
    Unter diesen Wert geht die autom. Prognoseberechnung nicht, auch wenn die Prognose Proplanta niedriger ist.

    Ähmm, was heißt das denn genau? Ich muss da also 10 eintragen? Bei steht da seit Anbeginn "const nMinPvLeistungTag_kWh = 3"; das ist der niedrigste Wert, den meine PV jemals an einem Tag produziert hat. Die Berechnungen scheinen aber zu funktionieren!? Oder woran merke ich, dass irgendwas nicht funktioniert, wie es sollte? Oder noch anders gefragt: Ist soll da also 10 kWh als kleinsten Wert einstellen oder wie?

    smartboartS 1 Antwort Letzte Antwort
    0
    • A ArnoD

      @smartboart

      Ich vermute, das du bei deinen Einstellungen im Script unter "nMinPvLeistungTag_kWh" 10 kWh eingetragen hast bzw. nicht geändert hast.
      Unter diesen Wert geht die autom. Prognoseberechnung nicht, auch wenn die Prognose Proplanta niedriger ist.
      Was mir auffällt ist, dass die Prognose Proplanta bei dir recht gut funktioniert, bei mir sieht es diesen Monat da etwas Schlechter aus.
      1.png

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

      @ArnoD ja klar natürlich...Hab ich glatt übersehen.. Ja diesen Monat hat es echt gut gepasst...

      smartboartS 1 Antwort Letzte Antwort
      0
      • S stevie77

        @ArnoD sagte in E3DC Hauskraftwerk steuern:

        @smartboart

        Ich vermute, das du bei deinen Einstellungen im Script unter "nMinPvLeistungTag_kWh" 10 kWh eingetragen hast bzw. nicht geändert hast.
        Unter diesen Wert geht die autom. Prognoseberechnung nicht, auch wenn die Prognose Proplanta niedriger ist.

        Ähmm, was heißt das denn genau? Ich muss da also 10 eintragen? Bei steht da seit Anbeginn "const nMinPvLeistungTag_kWh = 3"; das ist der niedrigste Wert, den meine PV jemals an einem Tag produziert hat. Die Berechnungen scheinen aber zu funktionieren!? Oder woran merke ich, dass irgendwas nicht funktioniert, wie es sollte? Oder noch anders gefragt: Ist soll da also 10 kWh als kleinsten Wert einstellen oder wie?

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

        @stevie77 nein hast es schon richtig.. Ich hatte den Wert nie angefasst, weil meine Anlage noch neu war und ich damals beim konfigurieren noch nicht wusste wie die Anlage faehrt...

        S 1 Antwort Letzte Antwort
        0
        • smartboartS smartboart

          @stevie77 nein hast es schon richtig.. Ich hatte den Wert nie angefasst, weil meine Anlage noch neu war und ich damals beim konfigurieren noch nicht wusste wie die Anlage faehrt...

          S Online
          S Online
          stevie77
          schrieb am zuletzt editiert von
          #541

          @smartboart Ach so. Ich hab' gerade auch gemerkt, dass ich mich wieder verlesen und falsch interpretiert hatte. Ich hatte gelesen: "Unter dieseM Wert geht die autom. Prognoseberechnung nicht, auch wenn die Prognose Proplanta niedriger ist." Und für "diesen Wert" hatte ich 10 kWh (aufgrund irgendwelcher angenommenen Restriktionen im Vorhersagedienst) angenommen. Alles gut... :-)

          1 Antwort Letzte Antwort
          0
          • smartboartS smartboart

            @ArnoD ja klar natürlich...Hab ich glatt übersehen.. Ja diesen Monat hat es echt gut gepasst...

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

            @ArnoD was hälst du davon wenn wir noch ein Script basteln welches die autonomiezeit anhand der Batterie Prozent und der entnommenen Leistung berechnet, sobald Leistung der Batterie entzogen wird waere die Anzeige und Berechnung aktiv...
            haette da schon ne Idee wie ich das programmieren würde.... Gerade jetzt wo die Tage kürzer werden und ich zum 1. Mal meine notstrom reserve angekratzt habe hatte ich das mal ausgerechnet... Oder gibt es dazu schon was? Die Zeit würde natürlich mit Entnahme Leistung ständig angepasst....

            smartboartS A 2 Antworten Letzte Antwort
            0
            • smartboartS smartboart

              @ArnoD was hälst du davon wenn wir noch ein Script basteln welches die autonomiezeit anhand der Batterie Prozent und der entnommenen Leistung berechnet, sobald Leistung der Batterie entzogen wird waere die Anzeige und Berechnung aktiv...
              haette da schon ne Idee wie ich das programmieren würde.... Gerade jetzt wo die Tage kürzer werden und ich zum 1. Mal meine notstrom reserve angekratzt habe hatte ich das mal ausgerechnet... Oder gibt es dazu schon was? Die Zeit würde natürlich mit Entnahme Leistung ständig angepasst....

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

              So habs schon fertig...Wer es gerne möchte...

              V0.0.1 Berechnung der E3DC Autonomiezeit der Batterie bei Entladung anhand der Modbusinformationen
              BatSoc und Batterie_Leistung unter Berücksichtigung der Notstromreserve. Für anzeige in Vis..
              -Autonomiezeit in Vis auf Sichtbarkeit bei >0 einstellen damit Diese nur bei Entnahme angezeigt wird.
              -BatSoc in kwh

              hier der Code

              /*
              E3DC dynamische Autonomiezeitberechnung von Smartboard 28.09.2020
              V0.0.1  Dynamische Berechnung der Batterie  Autonomiezeit bei Entladung anhand der Modbusinformationen 
                      BatSoc und Batterie_Leistung unter Berücksichtigung der Notstromreserve.   
                      Für anzeige in Vis..
                      Autonomiezeit in Vis auf Sichtbarkeit bei >0 einstellen damit Diese nur bei Entnahme angezeigt wird.
                      BatSoc in kwh   
              */
              //Konfiguration
              var logging = true;
              var debug = true;
              var Speicher = 13; // kw/h hier die Speichergröße in kwh eintragen
              var Reserve = 10; // % eingestellte Notstromreserve in Prozent bei E3dC oder bei E3DC Control als Ergebnis( HT Sockel / HT off HT On) in kw/h
              var cron1 = 10; // hier die Schedulezeit - Triggerhäufigkeit alle x Sekunde eintragen
              
              const fC = true;
              const Statepfad = 'javascript.' + instance + '.PVAnlage.Autonomie.';
              
              //hier muss nichts geändert werden
              
              //Variable für Cronjob start stop
              var Timer = null;
              //Variable Hilfsmerker
              var Merker = true;
              //Variable zur Berechnung
              var Autonomiezeit = 0;
              
              //Berechnungsgrundlage
              const idBatEntnahme = 'modbus.1.holdingRegisters.40070_Batterie_Leistung'/*Batterie-Leistung in Watt*/;
              const idBatSoc = 'modbus.1.holdingRegisters.40083_Batterie_SOC'/*Batterie-SOC in Prozent*/;
              
              //states to create Ergebnisse
              const idAutonomiezeit = Statepfad + 'Autonomiezeit';   
              const idBatSockWh = Statepfad + 'Batteriekapazitaet';  
              
              //states create
              // Autonomiezeit in Vis auf Sichtbarkeit bei >0 einstellen damit nur Sichtbar bei Entnahme
              createState(idAutonomiezeit, 0, fC, { type: 'number', name: 'Autonomiezeit',role:'value', unit: ' h'});
              createState(idBatSockWh, 0, fC, { type: 'number', name: 'Batteriekapazität',role:'value', unit: ' kWh'});
              
              //Scriptstart
              Berechnung();
              
              // Trigger Berechnung Aktueller Bat Soc in kwh 
              on(idBatSoc, function(dp) {
              Berechnung();
              });
              
              //Berechnung Aktueller Bat Soc in kwh und Wert in State schreiben
              function Berechnung(){    
              var BatSoc = getState(idBatSoc).val;    
              setState(idBatSockWh,Math.round(((Speicher/100) * BatSoc)*100)/100,true);  
              if(logging)log(['Aktuelle Speicherkapazität ist: ', getState(idBatSockWh).val].join(' kWh')); 
              }
              
              // Schedule Berechnung Autonomiezeit starten bei Entnahme
              on(idBatEntnahme, function(dp) {
                  if(dp.state.val < 0 ){
                  if(Merker)schedulestart();
                  Merker = false;
                  if(debug)log('Schedule starten. Aktuelle Entnahmeleistung: ' + dp.state.val +' Watt');
                  }
              });
              
              //Berechnung Autonomiezeit
              function schedulestart(){
              if(logging)log('Funktion Schedulestart aktiv');  
              var cronjob = "*/"+cron1+" * * * * *";  
              Timer = schedule(cronjob, function(){   
              if(debug)log('Schedule cronjob aktiv');       
              var Entnahme = getState (idBatEntnahme).val;
              var BatSockWh = getState (idBatSockWh).val;
              if(Entnahme<0){
              BatSockWh = Math.round(( BatSockWh - (Speicher/100*Reserve))*100/100);
              if(debug)log('aktuelle Gesamtkapazität abzüglich der Notstromreserve ist:  '+ BatSockWh + ' kWh.');
              setTimeout(function(){
              Autonomiezeit = Math.round((((BatSockWh*1000)/(Entnahme*-1)))*100/100);    
              setState(idAutonomiezeit,Autonomiezeit,true);
              if(debug)log('Autonomiezeit neu berechnet auf:  '+ Autonomiezeit + ' h.');
              },100);
              }else{
              //Berechnung stoppen bei Entnahme 0 und Autonomiezeit auf 0 setzen
                      if(Entnahme >=0){
                      clearSchedule(Timer);
                      Merker = true;
                      if(logging)log('Schedule cronjob gestoppt weil keine Entnahme');
                      setState(idAutonomiezeit,0,true);
                          }
                      }   
                  });
              }
              
              
              

              Unbenannt.JPG

              1 Antwort Letzte Antwort
              1
              • smartboartS smartboart

                @ArnoD was hälst du davon wenn wir noch ein Script basteln welches die autonomiezeit anhand der Batterie Prozent und der entnommenen Leistung berechnet, sobald Leistung der Batterie entzogen wird waere die Anzeige und Berechnung aktiv...
                haette da schon ne Idee wie ich das programmieren würde.... Gerade jetzt wo die Tage kürzer werden und ich zum 1. Mal meine notstrom reserve angekratzt habe hatte ich das mal ausgerechnet... Oder gibt es dazu schon was? Die Zeit würde natürlich mit Entnahme Leistung ständig angepasst....

                A Offline
                A Offline
                ArnoD
                schrieb am zuletzt editiert von
                #544

                @smartboart
                Jetzt must du mich erst mal aufklären was die Autonomiezeit ist :grin:
                Ist das die Zeit die ich mit der Batterie ohne Netz überbrücken kann ?

                smartboartS 2 Antworten Letzte Antwort
                0
                • A ArnoD

                  @smartboart
                  Jetzt must du mich erst mal aufklären was die Autonomiezeit ist :grin:
                  Ist das die Zeit die ich mit der Batterie ohne Netz überbrücken kann ?

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

                  @ArnoD Hi, ja genau.
                  Die Autonomiezeit ist eine bekannte Größe aus der Notstrom Branche bzw. aus dem Bereich der hoch verfügbaren Stromversorgung und ist mit der Leistung die wichtigste Größe einer USV Anlage... Usv = Unterbrechungsfreie Strom Versorgung..

                  Es ist die Zeit bei welcher bei Stromausfall die Verbraucher weiter versorgt werden können.. .

                  Auf unsere Anwendung bezogen ist das die Zeit welche zur Verfügung steht um die Verbraucher aus der Batterie zu versorgen ohne das nachgeladen oder vom Netz Strom bezogen wird und eben auch bei Stromausfall.

                  1 Antwort Letzte Antwort
                  1
                  • A ArnoD

                    @smartboart
                    Jetzt must du mich erst mal aufklären was die Autonomiezeit ist :grin:
                    Ist das die Zeit die ich mit der Batterie ohne Netz überbrücken kann ?

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

                    @ArnoD Hab auch das Problem festgestellt, dass bei Prognoseanwahl Änderung ( Proplanta Forcast oder beide die json nicht gleich aktualisiert wird.
                    Konnte das Problem beheben indem ich unter function main() dem makeJson() etzwas Zeit gegeben habe..

                        // Diagramm aktualisieren
                        //makeJson();
                        setTimeout(function(){makeJson();},100);
                    
                    A 1 Antwort Letzte Antwort
                    0
                    • smartboartS smartboart

                      @ArnoD Hab auch das Problem festgestellt, dass bei Prognoseanwahl Änderung ( Proplanta Forcast oder beide die json nicht gleich aktualisiert wird.
                      Konnte das Problem beheben indem ich unter function main() dem makeJson() etzwas Zeit gegeben habe..

                          // Diagramm aktualisieren
                          //makeJson();
                          setTimeout(function(){makeJson();},100);
                      
                      A Offline
                      A Offline
                      ArnoD
                      schrieb am zuletzt editiert von
                      #547

                      @smartboart sagte in E3DC Hauskraftwerk steuern:

                      Konnte das Problem beheben indem ich unter function main() dem makeJson() etzwas Zeit gegeben habe..

                      :+1: Ja , funktioniert.
                      Habe ich so übernommen.

                      Dein Script Autonomiezeit übrigens auch, allerdings habe ich für alle E3DC Modbus Themen ein eigenes Script was ich ja bereits hier schon mal eingestellt hatte.

                      smartboartS 3 Antworten Letzte Antwort
                      0
                      • A ArnoD

                        @smartboart sagte in E3DC Hauskraftwerk steuern:

                        Konnte das Problem beheben indem ich unter function main() dem makeJson() etzwas Zeit gegeben habe..

                        :+1: Ja , funktioniert.
                        Habe ich so übernommen.

                        Dein Script Autonomiezeit übrigens auch, allerdings habe ich für alle E3DC Modbus Themen ein eigenes Script was ich ja bereits hier schon mal eingestellt hatte.

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

                        @ArnoD sagte in E3DC Hauskraftwerk steuern:

                        Dein Script Autonomiezeit übrigens auch, allerdings habe ich für alle E3DC Modbus Themen ein eigenes Script was ich ja bereits hier schon mal eingestellt hatte.

                        Ja gute Idee... Da passt es besser rein... Läuft bei mir auch als eigenes Script... Werde es da aber auch rein packen..

                        1 Antwort Letzte Antwort
                        0
                        • A ArnoD

                          @smartboart sagte in E3DC Hauskraftwerk steuern:

                          Konnte das Problem beheben indem ich unter function main() dem makeJson() etzwas Zeit gegeben habe..

                          :+1: Ja , funktioniert.
                          Habe ich so übernommen.

                          Dein Script Autonomiezeit übrigens auch, allerdings habe ich für alle E3DC Modbus Themen ein eigenes Script was ich ja bereits hier schon mal eingestellt hatte.

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

                          @ArnoD sagte in E3DC Hauskraftwerk steuern:

                          Dein Script Autonomiezeit übrigens auch, allerdings habe ich für alle E3DC Modbus Themen ein eigenes Script was ich ja bereits hier schon mal eingestellt hatte.

                          Hallo Arno,
                          ich habe das Script Autonomiezeit weiter ausgebaut. Falls interesse besteht siehe unten..
                          Änderung:
                          V0.0.2 -Berechnung auf Durchschnittswert der Autonomiezeit erweitert, dadurch wird die Zeitanzeige ruhiger und gibt einen gemittelten
                          Wert wieder, welcher auch aussagekräftiger ist.
                          - Notstromreserve wird nun aus Sript E3DC Control von ArnoD eingelesen. Sowie unterscheidung zur manuellen Eingabe falls in E3DC eine
                          Notstromreserve hinterlegt wurde. Somit bleibt die Autonomie Berechnung automatisch aktuell sollte in E3DC Control etwas angepasst werden.

                          V0.0.3- Autonomiezeit Anzeige in Minuten wenn < 1 Stunde . State Autonomiezeit geändert von type numnber zu string.

                          /*
                          E3DC dynamische Autonomiezeitberechnung von Smartboard 
                          28.09.2020
                          V0.0.1  -Dynamische Berechnung der Batterie  Autonomiezeit bei Entladung anhand der Modbusinformationen 
                                  BatSoc und Batterie_Leistung unter Berücksichtigung der Notstromreserve.   
                                  Für anzeige in Vis..
                                  Autonomiezeit in Vis auf Sichtbarkeit bei >0 einstellen damit Diese nur bei Entnahme angezeigt wird.
                                  BatSoc in kwh   
                          29.09.2020
                          V0.0.2 -Berechnung auf Durchschnittswert der Autonomiezeit erweitert,  dadurch wird die Zeitanzeige ruhiger und gibt einen gemittelten 
                                 Wert wieder, welcher auch aussagekräftiger ist.
                                 - Notstromreserve wird nun aus Sript E3DC Control von ArnoD eingelesen. Sowie unterscheidung zur manuellen Eingabe  falls in E3DC eine 
                                 Notstromreserve hinterlegt wurde. Somit bleibt die Autonomie Berechnung automatisch aktuell sollte in E3DC Control etwas angepasst werden.        
                          30.09.2020
                          V0.0.3- Autonomiezeit Anzeige in Minuten wenn < 1 Stunde . State Autonomiezeit geändert von type numnber zu string.
                          
                          */        
                          
                          //Konfiguration
                          var logging = true;
                          var debug = true;
                          var Speicher = 13; // kw/h hier die Speichergröße in kwh eintragen
                          var E3DCReserve = 0; // % eingestellte Notstromreserve in Prozent bei E3dC. Wenn diese nicht verwendet wird dan 0 eintragen.
                          var cron1 = 10; // hier die Schedulezeit - Triggerhäufigkeit alle x Sekunden für Zeitberechnung eintragen
                          var counter = 2; // Hier die Anzahl der Zeitberechnungen eintragen um einen Durchschnitswert zu ermitteln
                          
                          const fC = true;
                          const Statepfad = 'javascript.' + instance + '.PVAnlage.Autonomie.';
                          
                          //hier muss nichts geändert werden
                          
                          //Variable für Cronjob start stop
                          var Timer = null;
                          //Variable Hilfsmerker
                          var Merker = true;
                          //Variable zur Berechnung der Zeit
                          var Autonomiezeit = 0;
                          //Variable für Berechnung 
                          var Reserve = 0;
                          // Variablen für Durchschnittsberechnung
                          var count = 0;
                          var Summe = 0;
                          
                          
                          //Berechnungsgrundlage
                          const idBatEntnahme = 'modbus.1.holdingRegisters.40070_Batterie_Leistung'/*Batterie-Leistung in Watt*/;
                          const idBatSoc = 'modbus.1.holdingRegisters.40083_Batterie_SOC'/*Batterie-SOC in Prozent*/;
                          const idHTSockel = 'javascript.1.PVAnlage.E3DC-Control.Parameter.HTsockel';
                          const idHTon = 'javascript.1.PVAnlage.E3DC-Control.Parameter.HTon';
                          const idHToff = 'javascript.1.PVAnlage.E3DC-Control.Parameter.HToff'; 
                          
                          
                          //states to create Ergebnisse
                          const idAutonomiezeit = Statepfad + 'Autonomiezeit';   
                          const idBatSockWh = Statepfad + 'Batteriekapazitaet';  
                          
                          //states create
                          // Autonomiezeit in Vis auf Sichtbarkeit bei >0 einstellen damit nur Sichtbar bei Entnahme
                          createState(idAutonomiezeit, null, fC, { type: 'string', name: 'Autonomiezeit',role:'text'});
                          createState(idBatSockWh, 0, fC, { type: 'number', name: 'Batteriekapazität',role:'value', unit: ' kWh'});
                          if(fC && logging)log('force Creation Aktiv States angelegt oder überschrieben');
                          
                          //Scriptstart
                          Berechnung();
                          
                          // Trigger Berechnung Aktueller Bat Soc in kwh 
                          on(idBatSoc, function(dp) {
                          Berechnung();
                          });
                          
                          //Berechnung Aktueller Bat Soc in kwh und Wert in State schreiben
                          function Berechnung(){    
                          var BatSoc = getState(idBatSoc).val;    
                          setState(idBatSockWh,Math.round(((Speicher/100) * BatSoc)*100)/100,true);  
                          if(logging)log('Aktuelle Speicherkapazität ist: '+ getState(idBatSockWh).val+' kWh'); 
                          }
                          
                          // Schedule Berechnung Autonomiezeit starten bei Entnahme
                          on(idBatEntnahme, function(dp) {
                              if(dp.state.val < 0 ){
                              if(Merker)schedulestart();
                              Merker = false;
                              if(debug)log('Aktuelle Entnahmeleistung: ' + dp.state.val +' Watt');
                              }
                          });
                          
                          //Berechnung Autonomiezeit
                          function schedulestart(){
                          if(debug)log('Funktion Schedulestart aktiv');  
                          var cronjob = "*/"+cron1+" * * * * *";  
                          Timer = schedule(cronjob, function(){   
                          if(debug)log('Schedule cronjob aktiv');       
                          var Entnahme = getState (idBatEntnahme).val;
                          var BatSockWh = getState (idBatSockWh).val;
                          var Sockel = getState (idHTSockel).val;
                          var HToff = getState (idHToff).val;
                          var HTon = getState (idHTon).val;
                          if (HTon === HToff && E3DCReserve === 0){
                              Reserve=Sockel;
                              if(debug)log('Die Notstrom Reserve entsprichte der Einstellung in E3DC Control und beträgt: ' + Reserve +' %');
                          }
                          if (E3DCReserve >0){
                              Reserve = E3DCReserve;
                              if(debug)log('Die Notstrom Reserve entspricht der User Konfig Einstellun und beträgt'+ Reserve + ' %');
                          }
                          if (HTon != HToff && E3DCReserve === 0){
                              Reserve=0;
                              if(debug)log('Es wird keine Notstrom Reserve bei der Berechnung berücksichtigt. Wert auf ' + Reserve +' % gesetzt.');
                          }
                          setTimeout(function(){
                          if(Entnahme<0){
                          BatSockWh = ( BatSockWh - (Speicher/100*Reserve));
                          if(debug)log('aktuelle Gesamtkapazität abzüglich der Notstromreserve ist:  '+ BatSockWh + ' kWh.');
                          setTimeout(function(){
                          Autonomiezeit = (((BatSockWh*1000)/(Entnahme*-1)));    
                          //setState(idAutonomiezeit,Autonomiezeit,true);
                          Durchschnitt();
                          if(debug)log('Autonomiezeit neu berechnet auf:  '+ Autonomiezeit + ' h.');
                          },100);
                          }else{
                          //Berechnung stoppen bei Entnahme 0 und Autonomiezeit auf 0 setzen
                                  if(Entnahme >=0){
                                  clearSchedule(Timer);
                                  Merker = true;
                                  if(logging)log('Schedule cronjob gestoppt weil keine Entnahme');
                                  setState(idAutonomiezeit,'0',true);
                                          }
                                      }
                                  },100);   
                              });
                          }
                          
                          // Zaehlem für Durchschnittsberechnung
                          
                          function Durchschnitt(){
                          count ++
                          Summe = Summe + Autonomiezeit;
                          if(debug)log ('Summe: ' + Summe + ' Zaehler: '+count+ ' Addition: + ' + Autonomiezeit);
                          if(count===counter){
                          var Zeit= Summe/count;
                          setTimeout(function(){
                          if(Zeit>=1){    
                          setState(idAutonomiezeit,+ Math.round(Zeit*100)/100 +' h',true);  
                          if(logging)log('Autonomiezeit in h beträgt: '+ Math.round(Zeit*100)/100 + ' h');
                          }
                          if(Zeit<1){       
                          setState(idAutonomiezeit, + Math.round((Zeit*60)*100/100)+' min',true);
                          if(logging)log('Autonomiezeit in min beträgt: '+Math.round((Zeit*60)*100/100) +' min.');
                          
                          }    
                          count=0;
                          Summe=0;
                          if(debug)log('Reset: Count =  '+ count+ ' Summe = ' + Summe);
                              },100);  
                          }
                          }
                          
                          
                          1 Antwort Letzte Antwort
                          0
                          • A ArnoD

                            @smartboart sagte in E3DC Hauskraftwerk steuern:

                            Konnte das Problem beheben indem ich unter function main() dem makeJson() etzwas Zeit gegeben habe..

                            :+1: Ja , funktioniert.
                            Habe ich so übernommen.

                            Dein Script Autonomiezeit übrigens auch, allerdings habe ich für alle E3DC Modbus Themen ein eigenes Script was ich ja bereits hier schon mal eingestellt hatte.

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

                            Kann mir jemand erklaeren warum ich bei folgenden Einstellungen noch einspeise und nicht alles lade?

                            Screenshot_20200930_170459_de.ozerov.fully.jpg

                            Screenshot_20200930_170504_de.ozerov.fully.jpg

                            A 1 Antwort Letzte Antwort
                            0
                            • smartboartS smartboart

                              Kann mir jemand erklaeren warum ich bei folgenden Einstellungen noch einspeise und nicht alles lade?

                              Screenshot_20200930_170459_de.ozerov.fully.jpg

                              Screenshot_20200930_170504_de.ozerov.fully.jpg

                              A Offline
                              A Offline
                              ArnoD
                              schrieb am zuletzt editiert von
                              #551

                              @smartboart
                              Gute Frage, eigentlich sollte alles geladen werden, bis der SoC 90% erreicht.
                              Ausser E3DC-Control läuft nicht mehr oder die e3dc-config.txt wurde nicht geändert oder eingelesen.
                              Hier wäre die LOG-Ausgabe von E3DC-Control interessant.

                              smartboartS 2 Antworten Letzte Antwort
                              0
                              • A ArnoD

                                @smartboart
                                Gute Frage, eigentlich sollte alles geladen werden, bis der SoC 90% erreicht.
                                Ausser E3DC-Control läuft nicht mehr oder die e3dc-config.txt wurde nicht geändert oder eingelesen.
                                Hier wäre die LOG-Ausgabe von E3DC-Control interessant.

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

                                @ArnoD Hi Arno,
                                ja evtl. lief E3DC Control nicht, ist sogar eher wahrscheinlich. ...keine Ahnung....ich war zu dem Zeitpunkt nicht zu Hause um das am Gerät zu kontrollieren....Schaue mal ob ich die logs zu dem zeitpunkt von deinem script finde...Aber die Textdatei wurde sauber beschrieben und eingelesen, da ich es es mehrmals manuell durchgeführt habe. Deshalb helfen die logs eher nicht weiter...

                                Ich habe den Host mal neu gestartet und beobachte weiter..
                                evtl stelle ich mal auf debug...

                                1 Antwort Letzte Antwort
                                0
                                • A ArnoD

                                  @smartboart
                                  Gute Frage, eigentlich sollte alles geladen werden, bis der SoC 90% erreicht.
                                  Ausser E3DC-Control läuft nicht mehr oder die e3dc-config.txt wurde nicht geändert oder eingelesen.
                                  Hier wäre die LOG-Ausgabe von E3DC-Control interessant.

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

                                  @ArnoD Hi Arno, heute das Selbe Verhalten...
                                  Er3DC Control läuft aber, da die anlage reagiert, wenn ich das Programm wechsle.

                                  Muss also an den eingestellten Parametern liegen. Wird bei alles Laden auch mit einer Kurve geladen? Also als Ergebnis aus unterer und oberer Ladekorridor.. Das hatte nämlich nix geändert...

                                  A 1 Antwort Letzte Antwort
                                  0
                                  • A ArnoD

                                    Ich habe dieses Topic eröffnet, um gemeinsam an einer Überschusssteuerung des E3DC Hauskraftwerks in ioBroker zu arbeiten.
                                    Dankeschön an dieser Stelle an Eberhard und sein Programm E3DC-Control, ohne ihn wäre das alles nicht möglich gewesen.
                                    Großes Lob und Danke auch an Uli, der den Adapter e3dc-rscp programmiert hat, über den die Steuerung im ioBroker erst möglich wurde.

                                    Ziel der Steuerung ist:
                                    Mit der Steuerung soll erreicht werden, dass der Batteriespeicher möglichst schonend geladen wird, um die Lebensdauer zu erhöhen.

                                    • Speicher soll nie längere Zeit auf 100 % geladen werden oder auf 0 % entladen werden.
                                    • Möglichst gleichmäßige Ladeleistung beim Laden.
                                    • PV-Überschuss soll gespeichert werden, um nicht in die 70 % Abriegelung zu kommen.
                                    • Bei Überschreitung WR Begrenzung soll Überschuss in die Batterie gespeichert werden.

                                    ioBroker
                                    Es werden folgende Adapter benötigt:

                                    • Javascript (NPM-Module: axios, is-it-bst)
                                    • e3dc-rscp

                                    Für die View Beispiele in VIS werden noch folgende Adapter benötigt:

                                    • vis-hqwidgets
                                    • vis-materialdesign
                                    • vis-timeandweather

                                    Beispiel View zum Importieren und das Skript Charge-Control, sowie eine Anleitung findet ihr auf GitHub:
                                    https://github.com/ArnoD15/iobroker_E3DC

                                    Einstellbare Parameter:
                                    Unload: Wenn der SoC Wert der Batterie > Wert „Unload“ ist, wird der Batteriespeicher mit Beginn Solarproduktion bis Beginn Regelzeitraum, auf SOC Wert Parameter "Unload" entladen. Ist Unload < Ladeschwelle wird bis Ladeschwelle geladen und Unload ignoriert.

                                    Ladeschwelle: Mit Beginn Solarproduktion wird die Batterie mit der maximalen Ladeleistung bis zum Wert Ladeschwelle geladen. Erst wenn der Batterie SOC den Wert Ladeschwelle erreicht, wird mit dem geregelten Laden begonnen. Danach wird bis SOC Wert „Ladeende“ gleichmäßig geladen, mit Ausnahme, wenn die PV-Leistung das Einspeiselimit oder die WR-Maxleistung übersteigt, wird die Ladeleistung um den Wert erhöht, um das Einspeiselimit oder WR-Limit einhalten zu können. Bei unterschreiten von dem Wert Einspeiselimit oder WR-Limit, wird wieder mit neu berechneter Ladeleistung, gleichmäßig bis „Ladeende" geladen. Bei großem Überschuss kann die gleichmäßige Ladeleistung bis auf 0 abgesenkt werden. Parameter "Ladeschwelle" hat Vorrang vor "Unload", d.h. "Unload" wird ignoriert, falls "Ladeschwelle" größer sein sollte als „Unload“.

                                    Ladeende: SoC Wert Speicher, der zum Ende des Regelzeitraums erreicht werden soll.

                                    Ladeende2: SoC Wert Speicher, der zum Ende Sommer Ladeende erreicht werden sollten.

                                    Unterer Ladekorridor: Der „Untere Ladekorridor“ definiert nur den min. Wert, ab dem mit dem Laden der Batterie gestartet wird. Erst wenn die berechnetet Ladeleistung den Wert „unteren Ladekorridor“ übersteigt, wird mit dem Laden der Batterie gestartet.

                                    Offset Regelbeginn Zeit in hh:mm, die von der Astro Zeit "solarNoon" (höchster Sonnenstand) abgezogen wird.

                                    Offset Regelende Zeit in hh:mm, die zu der Astro Zeit "solarNoon" (höchster Sonnenstand) dazu addiert wird.

                                    Offset Ladeende Zeit in hh:mm, die von der Astro Zeit "sunset" (Sonnenuntergang) abgezogen wird.

                                    70c4baad-fc5b-45bb-8c02-45b0b14f89ea-grafik.png
                                    Eigenverbrauch: Der geschätzte Eigenverbrauch pro Tag in kWh. Wird für die Überschussberechnung der Prognose verwendet.

                                    Notstrom min.: Speicherreserve in % bei Wintersonnenwende 21.12

                                    Notstrom Sockel: min. SOC Wert bei Tag-/Nachtgleiche 21.3./21.9.

                                    Berechnung Notstrom: 21.12 (Wintersonnenwende) ist der Bezugs-SoC = Wert „Notstrom min“ und wird bis zum 21.3 (Tag-/Nachtgleiche) auf Wert „Notstrom Sockel“ reduziert und bis zum 20.06 (Sommersonnenwende) um ca. weitere 10% reduziert. Ab dem 20.06 (Sommersonnenwende) steigt der Bezugs-SoC wieder bis zum 21.09 (Tag-/Nachtgleiche) auf den Wert „Notstrom Sockel“ und bis zum 21.12 (Wintersonnenwende) auf den Wert „Notstrom min“. Je Monat ändert sich somit der SoC um ca. +- 3,3%. Mit Notstrom min. und Notstrom Sockel kann man eine Dynamische Notstromreserve vorhalten, Vorteil ist, dass der Speicher nicht alle 3 Wochen entladen wird wie bei der Notstromreserve von E3DC.

                                    Starten wir am 21.12 (Wintersonnenwende) der kürzeste Tag, da wird der Speicher bis auf Notstrom min = 20% entladen.
                                    Ab jetzt werden die Tage immer länger, bis zum 21.3 (Tag-/Nachtgleiche) wo die Tage und Nächte gleich lang sind.
                                    Das bedeutet deine Speicherreserve kann immer geringer werden je länger die Tage sind, da ja mehr PV-Leistung zur Verfügung steht. Es wird somit jeden Monat die Speichergrenze um ca.3,33% reduziert bis zum 21.03 auf den Wert Notstrom Sockel = 10%.

                                    Ab dem 21.03 werden die Tage immer länger bis zum 20.06 (Sommersonnenwende) dem längsten Tag im Jahr.
                                    Es wird also die Speichergrenze weiter jeden Monat um ca. 3,33% reduziert bis zum 20.06 auf 0%,
                                    Ab diesem Zeitpunkt werden die Tage wieder kürzer bis zum 21.9 (Tag-/Nachtgleiche) wo die Tage und Nächte wieder gleich lang sind und die Speicherreserve wird jeden Monat um ca. 3,33% erhöht auf Notstrom Sockel = 10%.
                                    Die Tage werden immer kürzer bis zum 21.12 (Wintersonnenwende) und die Speichergrenze wird weiter jeden Monat um ca. 3,33% erhöht auf den Wert Notstrom min = 20%

                                    Notstrom Sockel ist somit der min. SOC Wert, wenn die Tage und Nächte gleich lang sind, also am 21.3 und 21.09 und
                                    Notstrom min wenn die Tage am kürzesten sind am 21.12 .

                                    Laderegelung:
                                    Mit Beginn Solarproduktion wird die Batterie mit der maximalen Ladeleistung bis zum Wert Ladeschwelle geladen oder bis zum SOC Wert Unload entladen. Erst wenn der Batterie SOC den Wert Ladeschwelle erreicht, wird mit dem geregelten Laden begonnen.

                                    Mit Start Regelzeitraum wird die benötigte Ladeleistung berechnet, um den SOC Ladeende bis zum Ende Regelzeitraum zu erreichen.

                                    Bei Überschreitung der Zeit, Ende Regelzeitraum wird die benötigte Ladeleistung neu berechnet, um den SOC Ladeende2 bis zur Zeit Ladeende zu erreichen.

                                    Wenn die Zeit Ladeende erreicht ist und die Batterie noch nicht den SOC Ladeende2 erreicht hat, wird das Laden mit maximal noch zur Verfügung stehender PV-Leistung freigegeben.

                                    Ausnahme: Wenn die PV-Leistung das Einspeiselimit oder die maximale Wechselrichterleistung übersteigt, wird die Ladeleistung um den Wert erhöht, um das Einspeiselimit oder die maximale Wechselrichterleistung einhalten zu können. Bei Unterschreiten von dem Wert Einspeiselimit oder WR-Limit, wird mit neu berechneter Ladeleistung, gleichmäßig geladen.

                                    S Online
                                    S Online
                                    stevie77
                                    schrieb am zuletzt editiert von
                                    #554

                                    Seid ihr auch betroffen von der starken Kapazitätsreduktion der Batterien seit ein paar Tagen? Erst nach Sonnenuntergang der Sprung des SoC um mind. 5% nach oben und nun sind meine Batterien plötzlich viel kleiner geworden...

                                    Ich hab's eben mal ausgerechnet. Bei momentanem Stand wären meine Batterien nach nur eineinhalb Jahren ein Fall für den Austausch auf Garantie, sie sind momentan deutlich unter der Degradation von 80 % nach 10 Jahren. 13 kWh abzüglich Entladetiefe = 11,7 kWh. 80 % laut Garantie zu akzeptierende Degradation = 9,36 kWh. Ich kann teilweise nur noch 7,7 kWh reinladen. Das schreit nach Austausch! So frech und offensichtlich können sie nicht vorgehen, das muss (hoffentlich) ein Fehler sein...

                                    e6e71203-e92c-4641-acc5-f653d7992516-image.png

                                    smartboartS 1 Antwort Letzte Antwort
                                    0
                                    • S stevie77

                                      Seid ihr auch betroffen von der starken Kapazitätsreduktion der Batterien seit ein paar Tagen? Erst nach Sonnenuntergang der Sprung des SoC um mind. 5% nach oben und nun sind meine Batterien plötzlich viel kleiner geworden...

                                      Ich hab's eben mal ausgerechnet. Bei momentanem Stand wären meine Batterien nach nur eineinhalb Jahren ein Fall für den Austausch auf Garantie, sie sind momentan deutlich unter der Degradation von 80 % nach 10 Jahren. 13 kWh abzüglich Entladetiefe = 11,7 kWh. 80 % laut Garantie zu akzeptierende Degradation = 9,36 kWh. Ich kann teilweise nur noch 7,7 kWh reinladen. Das schreit nach Austausch! So frech und offensichtlich können sie nicht vorgehen, das muss (hoffentlich) ein Fehler sein...

                                      e6e71203-e92c-4641-acc5-f653d7992516-image.png

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

                                      @stevie77 Bei der Batterie Kapazität würde ich eher auf die Entladung achten.
                                      hast 8,24 kwh entnommen und bist bei 40 %.. 8,24 / 60 * 100 sind 13,73 kwh Gesamtkapazität.

                                      Ich gebe dir Recht, die Ladung von 7,69 kwh von 0 auf 100 sieht komisch aus. vlt ein Rechenfehler oder Darstellungsfehler...
                                      Vlt. wird aber auch nur die Ladung von E3DC angezeigt und die restlichen kwh werden von extern geladen....

                                      Fakt ist, Entnehmen kannst offensichtlich die volle Kapazität von 13kw/h..

                                      Rechne doch einfach mal alle deine Werte aus irgendwo müssen die fehlenden kw/h ja herkommen...

                                      S 1 Antwort Letzte Antwort
                                      0
                                      • smartboartS smartboart

                                        @stevie77 Bei der Batterie Kapazität würde ich eher auf die Entladung achten.
                                        hast 8,24 kwh entnommen und bist bei 40 %.. 8,24 / 60 * 100 sind 13,73 kwh Gesamtkapazität.

                                        Ich gebe dir Recht, die Ladung von 7,69 kwh von 0 auf 100 sieht komisch aus. vlt ein Rechenfehler oder Darstellungsfehler...
                                        Vlt. wird aber auch nur die Ladung von E3DC angezeigt und die restlichen kwh werden von extern geladen....

                                        Fakt ist, Entnehmen kannst offensichtlich die volle Kapazität von 13kw/h..

                                        Rechne doch einfach mal alle deine Werte aus irgendwo müssen die fehlenden kw/h ja herkommen...

                                        S Online
                                        S Online
                                        stevie77
                                        schrieb am zuletzt editiert von
                                        #556

                                        @smartboart sagte in E3DC Hauskraftwerk steuern:

                                        Fakt ist, Entnehmen kannst offensichtlich die volle Kapazität von 13kw/h..

                                        Ich versteh' die Rechnung nicht ganz, aber richtig kann sie nicht sein, da ich per se maximal 11,5 kWh aus der Batterie entnehmen kann, schon immer wegen 90 % Entladetiefe. Empirisch konnte ich vor wenigen Monaten noch deutlich mehr (11,4 kWh) in die Batterie laden, so wie man es erwarten konnte:

                                        1cdf6b9f-5d08-4ba4-a7f8-7a8c59d069a9-image.png

                                        Zum Vergleich nochmal jetzt:

                                        2877be0c-5ff0-47fc-a764-76983319626c-image.png

                                        Und gefühlt kam ich da auch viel weiter durch die Nacht. Bei nur minimal niedrigerem Verbrauch im Haus ist auch der Abfall der Kurve viel flacher. Viele andere Nutzer in der Facebook-Gruppe haben dasselbe Problem. Ich glaube da stimmt was nicht...

                                        smartboartS 1 Antwort Letzte Antwort
                                        0
                                        • smartboartS smartboart

                                          @ArnoD Hi Arno, heute das Selbe Verhalten...
                                          Er3DC Control läuft aber, da die anlage reagiert, wenn ich das Programm wechsle.

                                          Muss also an den eingestellten Parametern liegen. Wird bei alles Laden auch mit einer Kurve geladen? Also als Ergebnis aus unterer und oberer Ladekorridor.. Das hatte nämlich nix geändert...

                                          A Offline
                                          A Offline
                                          ArnoD
                                          schrieb am zuletzt editiert von
                                          #557

                                          @smartboart sagte in E3DC Hauskraftwerk steuern:

                                          @ArnoD Hi Arno, heute das Selbe Verhalten...
                                          Er3DC Control läuft aber, da die anlage reagiert, wenn ich das Programm wechsle.

                                          Muss also an den eingestellten Parametern liegen. Wird bei alles Laden auch mit einer Kurve geladen? Also als Ergebnis aus unterer und oberer Ladekorridor.. Das hatte nämlich nix geändert...

                                          Nein, entscheident ist der Parameter "ladeschwelle", bis zu diesem Wert wird sofort mit der gesamten überschüssigen PV-Leistung geladen.Parameter „unload" hat Vorrang vor "ladeschwelle", d.h. "ladeschwelle" wird ignoriert, falls "ladeschwelle" größer sein sollte als „unload“.
                                          Was bei dir ja auch nicht der Fall ist, da hier 100% eingestellt waren und ladeschwelle 90%.

                                          smartboartS 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

                                          744

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          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