Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. E3DC Hauskraftwerk steuern

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    E3DC Hauskraftwerk steuern

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

      @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 Reply Last reply Reply Quote 0
      • smartboart
        smartboart @ArnoD last edited by

        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 Reply Last reply Reply Quote 0
        • A
          ArnoD @smartboart last edited by

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

          smartboart 2 Replies Last reply Reply Quote 0
          • smartboart
            smartboart @ArnoD last edited by smartboart

            @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 Reply Last reply Reply Quote 0
            • smartboart
              smartboart @ArnoD last edited by

              @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 Reply Last reply Reply Quote 0
              • S
                stevie77 @ArnoD last edited by

                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

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

                  @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 Reply Last reply Reply Quote 0
                  • S
                    stevie77 @smartboart last edited by

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

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

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

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

                        @stevie77 sagte in E3DC Hauskraftwerk steuern:

                        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

                        Nun ja die Rechnung stimmt schon...

                        in dem Rechenbeispiel hast du 8,24 kwh aus der Baterrie entnommen und bist bei 40 %..
                        Nach Adam Riese hast du 60 % Entnommen.
                        Also 8,24 = 60 %
                        40% hast du noch drinne.
                        40% Entsprechen 5,49kwh
                        Zusammen sind das 13,73kwh.

                        Die Rechnung ist simpler 3 Satz.

                        Anders gefragt.
                        8,24 entspricht 60% Wieviel ist 100%?
                        Rechenweg:
                        8,24 / 60 * 100 sind 13,73 kwh Gesamtkapazität.

                        S smartboart 3 Replies Last reply Reply Quote 0
                        • smartboart
                          smartboart @ArnoD last edited by smartboart

                          @ArnoD sagte in E3DC Hauskraftwerk steuern:

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

                          Ja ok..
                          dann ist das Verhalten meiner Anlage in dem beschriebenen Fall falsch.. Da E3DC Control mit der Anlage spricht, also Kommunikation da ist und auch Werte eingelesen und geschrieben werden. ( Habe ich anhand) der txt config Datei life überprüft und bei Änderungen dieser config Datei auch eine Reaktion von E3DC folgt, ist alle ok.
                          Ausser das Verhalten..

                          Was kann falsch sein? die config Datei?
                          siehe hier...kannst du die mal mit deiner vergleichen?
                          e3dc.config.txt

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

                            @smartboart sagte in E3DC Hauskraftwerk steuern:

                            Nun ja die Rechnung stimmt schon...

                            in dem Rechenbeispiel hast du 8,24 kwh aus der Baterrie entnommen und bist bei 40 %..
                            Nach Adam Riese hast du 60 % Entnommen.
                            Also 8,24 = 60 %
                            40% hast du noch drinne.
                            40% Entsprechen 5,49kwh
                            Zusammen sind das 13,73kwh.

                            Dann hat E3/DC das Perpetuum mobile erfunden?! 😉 Ich lade 7,7 kWh rein und entnehme 13,7 kWh? Eine wundersame Energievermehrung um 6 kWh pro Ladezyklus - da wundert mich, dass E3/DC nicht schon längst Weltmarktführer ist. 😉 Sorry, ich kann zur Zeit nicht anders als sarkastisch beim Thema E3/DC zu reagieren - mir ist echt die Lust daran vergangen. 😧
                            13,7 kWh verfügbare Gesamtkapazität kann schon deswegen nicht richtig sein, weil ich bei Entladetiefe 90 % auch rein rechnerisch nie mehr als 11,7 kWh verfügbare Gesamtkapazität habe. Irgendwas ist da faul...

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

                              @smartboart Ich probier' mich auch mal am Dreisatz... 🙂

                              56703f1f-376c-42f2-978d-c585e7c25dba-image.png

                              Heute habe ich von 40 % runter 3,49 kWh entladen.
                              40% = 3,49 kWh
                              1% = 87,25 Wh
                              100% = 8,725 Wh

                              Ich kann also nur 8,725 kWh aus der Batterie ziehen. Das sagt dann doch aus, dass meine verfügbare Kapazität nur noch 8,7 kWh beträgt. Passte dann ungefähr zu den 8 kWh die ich noch reinladen kann. Sollten aber halt 11,7 kWh verfügbare Kapazität sein...

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

                                @stevie77 ja die Rechnung ist richtig, aber berüksichtigt eben keine Verluste...
                                Und das mit der Ladung habe ich ja ebenfalls als merkwürdig bezeichnet. Da hatte ich die Vermutung dass das die Ladeenergie von E3DC ist . Du hast noch ne externe Quelle. Evtl wurde die Differenz aus Dieser bezogen. Das musst du halt mal E3DC fragen wie die die Ladeleistung berechnen.

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

                                  @ArnoD Vergiss es, nach dem Update von E3DC haben sich wohl meine smart Einstellungen im Portal verändert. Hätte ich auch vorher mal schauen können...

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

                                    @stevie77 und das du aus einer 13 kwh Batterie keine volle13kwh nutzen kannst ist auch klar...da sind ne Menge Verluste auf dem Weg aus der Batterie DC über den Wechselrichter nach AC bis zu deinen Verbrauchen.
                                    Bei 300 Watt Hausverbrauch sind es bei mir 100 Watt Verluste...Angezeigt wird 400Watt...Unsere beiden Anlagen sind ähnlich was die Leistung anbelangt, auch der Verbrauch...Die Anlage ist einfach overpowert für uns...Aber mir ist das egal, weil ich auf die Notstromfunktion wert lege und nicht auf die effizienz...Ich denke wenn du volle 16 kwP auf dem Dach hast und mal 1 kw im Schnitt Hauslast hast mit ner Dicken Batterie, arbeitet die Anlage effizienter...

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

                                      @smartboart sagte in E3DC Hauskraftwerk steuern:

                                      @ArnoD Vergiss es, nach dem Update von E3DC haben sich wohl meine smart Einstellungen im Portal verändert. Hätte ich auch vorher mal schauen können...

                                      Also mit deiner e3dc.config.txt ist alles in ordnung.
                                      Die smart Einstellungen sollten das ladeverhalten von E3DC-Control eigentlich nicht beeinflussen.

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

                                        @ArnoD ok, stand aber auf 3000 und das war auch das maximum was geladen wurde...großer Zufall?
                                        Es gibt ein update von E3DC Control von Eba ...6 Tage alt und im Zusammenhang mit der WalBox.... Hast du doch oder? Schon installiert?

                                        A 2 Replies Last reply Reply Quote 0
                                        • A
                                          ArnoD @smartboart last edited by

                                          @smartboart
                                          Ja, gestern.
                                          Bin gerade dabei das Script anzupassen.
                                          Muss mich noch in das Thema Wallbox einarbeiten, stehe da noch auf dem Schlauch wie die Steuerung mit E3DC-Control funktioniert.

                                          smartboart 2 Replies Last reply Reply Quote 0
                                          • A
                                            ArnoD @smartboart last edited by ArnoD

                                            @smartboart sagte in E3DC Hauskraftwerk steuern:

                                            ok, stand aber auf 3000 und das war auch das maximum was geladen wurde...großer Zufall?

                                            Das wird normalerweise von E3DC-Control dynamisch eingestellt, vermute das die letzte Einstellung 3000 war.
                                            Was aber auch komisch ist da eigentlich immer der max. Wert eingestellt ist, wenn E3DC-Control nicht gerade regelt.

                                            smartboart 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            681
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            70
                                            3331
                                            1362567
                                            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