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
    15
    1
    2.6k

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

    @cacum sagte in E3DC Hauskraftwerk steuern:

    Habt ihr auch die neue Nachicht im E3DC-System wegen dynamischer Direktvermarktung?

    Wo genau soll diese Nachricht sein?

    bluebeanB Offline
    bluebeanB Offline
    bluebean
    schrieb am zuletzt editiert von bluebean
    #1883

    @arnod
    Die kommt, wenn man sich im S10 Portal oder über die E3DC App anmeldet.
    Es wird zunächst abgefragt, ob Nutzer prinzipiell Interesse haben - auf der Basis soll dann im nächsten Schritt ein konkretes Angebot geschnitten werden gemeinsam mit dem Partner, den E3DC dafür gewonnen hat.

    1 Antwort Letzte Antwort
    0
    • A ArnoD

      @cacum sagte in E3DC Hauskraftwerk steuern:

      Habt ihr auch die neue Nachicht im E3DC-System wegen dynamischer Direktvermarktung?

      Wo genau soll diese Nachricht sein?

      Z Offline
      Z Offline
      Zelkin
      schrieb am zuletzt editiert von Zelkin
      #1884

      @arnod
      Mann, Mann, da hat man mal ein paar Wochen was um die Ohren .... dann verdoppelt sich gefühlt der umfang des Thread .... wow
      Danke dir @ArnoD, dass du meine Idee aufgenommen hast :)
      Die Arbeit die du hier leistest ist einfach unglaublich

      eben alles aktualisiert und läuft

      Danke für die Mühe

      1 Antwort Letzte Antwort
      0
      • A ArnoD

        @cacum sagte in E3DC Hauskraftwerk steuern:

        Habt ihr auch die neue Nachicht im E3DC-System wegen dynamischer Direktvermarktung?

        Wo genau soll diese Nachricht sein?

        Z Offline
        Z Offline
        Zelkin
        schrieb am zuletzt editiert von
        #1885

        @arnod
        Mal ne Frage zum Eigenverbrauch (ist in der Vis Info noch "alt" beschrieben)
        Soll Ich hier nun wirklich den MIN Eigenverbrach zwischen 06:00 und 19:00 Uhr angeben??
        Also sozusagen 13 x meine Grundlast?

        Bisher war meine Angabe ja der Durchschnittsverbrauch vom ganzen Tag

        Sorry wenn die frage schon aufkam ... habs nicht gefunden

        A 1 Antwort Letzte Antwort
        0
        • Z Zelkin

          @arnod
          Mal ne Frage zum Eigenverbrauch (ist in der Vis Info noch "alt" beschrieben)
          Soll Ich hier nun wirklich den MIN Eigenverbrach zwischen 06:00 und 19:00 Uhr angeben??
          Also sozusagen 13 x meine Grundlast?

          Bisher war meine Angabe ja der Durchschnittsverbrauch vom ganzen Tag

          Sorry wenn die frage schon aufkam ... habs nicht gefunden

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

          @zelkin
          Nein, beim Eigenverbrauch ist alles beim alten geblieben.
          Der Durchschnittsverbrauch für die Berechnung der Entladezeit Notstromreserve wird automatisch berechnet und eingetragen, da musst du nichts machen.
          Die einzigen Variablen wo du was eintragen musst, sind 10_minWertPrognose_kWh ab welcher Prognose für den nächsten Tag in kWh die Notstromreserve verwendet werden darf und 10_Offset_sunriseEnd wie viele Minuten nach Sonnenaufgang soll die Notstromreserve noch abdecken bevor die Batterie leer ist.
          Wenn du bei 10_Offset_sunriseEnd z. B. 0 eintragen würdest, dann wird anhand vom berechnetet Durchschnittsverbrauch vom Vortag mit dem Entladen der Notstromreserve gestartet, sodass die Batterie bis zum Sonnenaufgang ausreicht. Wenn du da z. B. 60 einträgst, wird später mit dem Entladen gestartet, sodass die Batterie erst 60 Min. nach Sonnenaufgang leer ist.

          smartboartS 1 Antwort Letzte Antwort
          0
          • A ArnoD

            @zelkin
            Nein, beim Eigenverbrauch ist alles beim alten geblieben.
            Der Durchschnittsverbrauch für die Berechnung der Entladezeit Notstromreserve wird automatisch berechnet und eingetragen, da musst du nichts machen.
            Die einzigen Variablen wo du was eintragen musst, sind 10_minWertPrognose_kWh ab welcher Prognose für den nächsten Tag in kWh die Notstromreserve verwendet werden darf und 10_Offset_sunriseEnd wie viele Minuten nach Sonnenaufgang soll die Notstromreserve noch abdecken bevor die Batterie leer ist.
            Wenn du bei 10_Offset_sunriseEnd z. B. 0 eintragen würdest, dann wird anhand vom berechnetet Durchschnittsverbrauch vom Vortag mit dem Entladen der Notstromreserve gestartet, sodass die Batterie bis zum Sonnenaufgang ausreicht. Wenn du da z. B. 60 einträgst, wird später mit dem Entladen gestartet, sodass die Batterie erst 60 Min. nach Sonnenaufgang leer ist.

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

            @arnod
            Hi Arno ich habe das Script Autonomiezeitberchnung aktualisiert und an die neuen Bedingungen / RSCP Adapter und deinem aktuellen Sript angepasst. Falls du oder andere es noch benutzten kann es hier kopiert werden.

            /*
            E3DC dynamische Autonomiezeitberechnung bis zur eingestellten Reserve
            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.
            03.10.2020
            V0.0.4- debug überarbeitet für Anzeige im Log Adapter
            07.10.2020
            V0.0.6 - Berechnungsfehler, welche -Werte erzeugten wurden behoben.
                     Ausgabe der 1. Autonomiezeitberechnung sofort anzeigen dann wird auf Durchschnittswert umgeschalte
            20.10.2020
            V0.0.7 - Hinweis stevie77 Wirkungsgrad in Berechnung einbeziehen. laut Datenblatt: max. Systemwirkungsgrad inkl. Batterie (%) > 88
            Bei 13 KW 13 / 100 * 88 = 11.44 Bemerkung .Vermutlich kann hier 1 eingetragen werden, da im Verbrauchswert Watt schon die die Verluste inkludiert sind.
            21.10.2020
            V0.0.7 - Hinweis stevie77 Tiefenentladeschutz bei 10 % mit  in Berechnung einbeziehen. 
            V0.0.8 - Berücksichtung Notstrombetrieb: Im Normalbetrieb erfolgt die Autonomierzeitberechnung
                     bis zur Notstromreserve . Im Notstrombetrieb wird die Autonomiezeit nun weiter berechnet 
                     und die Berechnung erfolgt dann bis zur Nettokapazitätsgrenze (Entladeschutz).
                     Die Anzeige in kWh zeigt immer die Nettokapazität bis zum Entladeschutz.
            13.11.2022
            V0.0.9 - Notstromreserve nun aus E3DC-Charge-Control importiert. Lastabwurf ist entfallen
            13.11.2022
            v0.1.0 - Wirkungsgrad und Entladetiefe bei Autonomieberechnung entfernt, da dies zu Fehlberechnungen führt. Die Entnommene Leistung beinhaltet 
                    ja schon die Verluste, somit kann mit dem Brutto gerechnet werden. SOH einbezogen. 
            11.01.2023
            v0.1.1 - Berechnungsformel Autonomiteit geändert. Anderer Rechenweg. 
            */        
            
            //Konfiguration
            var debug = false;
            var SpeicherNetto = 18.525; // kw/h hier die Speichergröße in kwh abzügl der Sicherheitsreserve 5 %
            var cron1 = 6; // hier die Schedulezeit - Triggerhäufigkeit alle x Sekunden für Zeitberechnung eintragen
            var Counter = 10; // Hier die Anzahl der Zeitberechnungen eintragen um einen Durchschnitswert zu ermitteln
            
            const fC = false;
            const Statepfad = 'javascript.' + instance + '.PVAnlage.Autonomie.';
            
            //Variable für Cronjob start stop
            var Timer = null;
            //Variable Hilfsmerker
            var Merker = true;
            //Variablen zur Berechnung der Zeiten
            var Autonomiezeit = 0;// bis Notstromreserve
            // Variablen für Durchschnittsberechnung
            var Count = 0;
            var Summe = 0;
            // Wert gleich anzeigen
            var Anzeige = false;
            // Variable für Bat Soc in kwh abzüglich Notstromreserve
            var BatSockWh = 0;
            var Entnahme = 0;
            var BatSoc = 0;
            var Speicher = 0;
            var Asoc1 = 0;
            var Asoc2 = 0;
            var Asoc = 0;
            
            
            //states to create Ergebnisse
            const idAutonomiezeit = Statepfad + 'Autonomiezeit';   
            const idBatSockWh = Statepfad + 'Batteriekapazitaet';  
            
            //Berechnungsgrundlagen
            
            const idAsoc1 = 'e3dc-rscp.0.BAT.BAT_0.ASOC'/*Alterungszustand*/
            const idAsoc2 = 'e3dc-rscp.0.BAT.BAT_1.ASOC'/*Alterungszustand*/
            
            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 idNotstrombetrieb = 'modbus.1.holdingRegisters.40084_Emergency_Power_Status'/*Emergency-Power Status*/;
            const idE3DCReserve = 'javascript.1.PVAnlage.E3DC-Control.Allgemein.Notstrom_akt'/*aktuell berechnete Notstromreserve*/;
            
            
            //states create
            // Autonomiezeit in Vis auf Sichtbarkeit bei != 0 einstellen damit nur Sichtbar bei Entnahme
            createState(idAutonomiezeit, 0, fC, { type: 'string', name: 'Autonomiezeit',role:'text'});
            createState(idBatSockWh, 0, fC, { type: 'number', name: 'Batteriekapazität',role:'value', unit: ' kWh'});
            if(fC && debug)log('force Creation Aktiv States angelegt oder überschrieben');
            
            //Scriptstart
            setState(idAutonomiezeit, '0' ,true);  
            setTimeout( function(){
            Berechnung();
            },500);
            
            // Trigger Berechnung Aktueller Bat Soc in kwh
            on(idBatSoc, function(dp) { 
            if(debug)log('Batterie E3DC: Trigger BatSoc aktiv. BatSoc beträgt: '+ dp.state.val +' %'); 
            Berechnung();
            });
            
            
            
            //Berechnung Aktueller Bat Soc in kwh und Wert in State schreiben
            function Berechnung(){    
            BatSoc = getState(idBatSoc).val;
            Asoc1 = getState(idAsoc1).val;
            Asoc2 = getState(idAsoc2).val;
            Asoc = (Asoc1+Asoc2)/2;
            Speicher = SpeicherNetto/100*Asoc;
            setState(idBatSockWh,Math.round(((Speicher/100) * BatSoc)*100)/100,true);  
            if(debug)log('Batterie E3DC: Die Aktuell verfügbare 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('Batterie E3DC: Aktuelle Entnahmeleistung: ' + dp.state.val +' Watt');
                }
            });
            
            //Berechnung Autonomiezeit
            function schedulestart(){
            if(debug)log('Batterie E3DC: Funktion Schedulestart aktiv');  
            var cronjob = "*/"+cron1+" * * * * *";  
            Timer = schedule(cronjob, function(){   
            if(debug)log('Batterie E3DC: Schedule cronjob aktiv');       
            Entnahme = getState (idBatEntnahme).val;
            BatSockWh = getState (idBatSockWh).val;
            BatSoc = getState(idBatSoc).val;
            var Reserve = getState(idE3DCReserve).val;
            var Notstrombetrieb = getState(idNotstrombetrieb).val;
            if  (Notstrombetrieb !=2){
            Reserve = 0;
            }
            setTimeout(function(){
            if(Entnahme<0){
            //BatSockWh = Math.round(BatSockWh - (Speicher/100*Reserve*100)/100);
            BatSockWh = BatSockWh/BatSoc*(BatSoc-Reserve);
            if(debug)log('Batterie E3DC: aktuelle Netto Gesamtkapazität abzüglich der Notstromreserve ist:  '+ BatSockWh + ' kWh.');
            setTimeout(function(){
            Autonomiezeit = Math.round(BatSockWh*1000/Entnahme*-1*100)/100;    
            Durchschnitt();
            if(Anzeige === false && Autonomiezeit >0){
            setState(idAutonomiezeit, Autonomiezeit +' h',true);
            Anzeige = true;
            }
            if(debug)log('Batterie E3DC: 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(debug)log('Batterie E3DC: Schedule cronjob gestoppt weil keine Entnahme');
                    setState(idAutonomiezeit,'0',true);
                    Anzeige = false;
                            }
                        }
                    },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(debug)log('Batterie E3DC: Aktuelle Netto Speicherkapazität beträgt: '+ getState(idBatSockWh).val+' kWh, abzüglich der Notstromreserve '+BatSockWh+ ' kWh' );     
            if(Zeit>=1){    
            setState(idAutonomiezeit,+ Math.round(Zeit*100)/100 +' h',true);  
            if(debug)log('Batterie E3DC: Autonomiezeit beträgt: '+ Math.round(Zeit*10)/10 + ' h');
                }
            if(Zeit<1 && Zeit >0){       
            setState(idAutonomiezeit, + Math.round((Zeit*60)*100/100)+' min',true);
            if(debug)log('Batterie E3DC: Autonomiezeit bis Notstromreserve beträgt: '+Math.round((Zeit*60)*100/100) +' min.');
                }
            if(Zeit < 0){
            setState(idAutonomiezeit, '0' ,true);
            if(debug)log('Batterie E3DC: Autonomiezeit beträgt: 0 min.');
                }
            Count=0;
            Summe=0;
            if(debug)log('Batterie E3DC: Reset: Count =  '+ Count+ ' Summe = ' + Summe);
                    },100);  
                }
            }
            
            
            
            A A 2 Antworten Letzte Antwort
            2
            • smartboartS smartboart

              @arnod
              Hi Arno ich habe das Script Autonomiezeitberchnung aktualisiert und an die neuen Bedingungen / RSCP Adapter und deinem aktuellen Sript angepasst. Falls du oder andere es noch benutzten kann es hier kopiert werden.

              /*
              E3DC dynamische Autonomiezeitberechnung bis zur eingestellten Reserve
              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.
              03.10.2020
              V0.0.4- debug überarbeitet für Anzeige im Log Adapter
              07.10.2020
              V0.0.6 - Berechnungsfehler, welche -Werte erzeugten wurden behoben.
                       Ausgabe der 1. Autonomiezeitberechnung sofort anzeigen dann wird auf Durchschnittswert umgeschalte
              20.10.2020
              V0.0.7 - Hinweis stevie77 Wirkungsgrad in Berechnung einbeziehen. laut Datenblatt: max. Systemwirkungsgrad inkl. Batterie (%) > 88
              Bei 13 KW 13 / 100 * 88 = 11.44 Bemerkung .Vermutlich kann hier 1 eingetragen werden, da im Verbrauchswert Watt schon die die Verluste inkludiert sind.
              21.10.2020
              V0.0.7 - Hinweis stevie77 Tiefenentladeschutz bei 10 % mit  in Berechnung einbeziehen. 
              V0.0.8 - Berücksichtung Notstrombetrieb: Im Normalbetrieb erfolgt die Autonomierzeitberechnung
                       bis zur Notstromreserve . Im Notstrombetrieb wird die Autonomiezeit nun weiter berechnet 
                       und die Berechnung erfolgt dann bis zur Nettokapazitätsgrenze (Entladeschutz).
                       Die Anzeige in kWh zeigt immer die Nettokapazität bis zum Entladeschutz.
              13.11.2022
              V0.0.9 - Notstromreserve nun aus E3DC-Charge-Control importiert. Lastabwurf ist entfallen
              13.11.2022
              v0.1.0 - Wirkungsgrad und Entladetiefe bei Autonomieberechnung entfernt, da dies zu Fehlberechnungen führt. Die Entnommene Leistung beinhaltet 
                      ja schon die Verluste, somit kann mit dem Brutto gerechnet werden. SOH einbezogen. 
              11.01.2023
              v0.1.1 - Berechnungsformel Autonomiteit geändert. Anderer Rechenweg. 
              */        
              
              //Konfiguration
              var debug = false;
              var SpeicherNetto = 18.525; // kw/h hier die Speichergröße in kwh abzügl der Sicherheitsreserve 5 %
              var cron1 = 6; // hier die Schedulezeit - Triggerhäufigkeit alle x Sekunden für Zeitberechnung eintragen
              var Counter = 10; // Hier die Anzahl der Zeitberechnungen eintragen um einen Durchschnitswert zu ermitteln
              
              const fC = false;
              const Statepfad = 'javascript.' + instance + '.PVAnlage.Autonomie.';
              
              //Variable für Cronjob start stop
              var Timer = null;
              //Variable Hilfsmerker
              var Merker = true;
              //Variablen zur Berechnung der Zeiten
              var Autonomiezeit = 0;// bis Notstromreserve
              // Variablen für Durchschnittsberechnung
              var Count = 0;
              var Summe = 0;
              // Wert gleich anzeigen
              var Anzeige = false;
              // Variable für Bat Soc in kwh abzüglich Notstromreserve
              var BatSockWh = 0;
              var Entnahme = 0;
              var BatSoc = 0;
              var Speicher = 0;
              var Asoc1 = 0;
              var Asoc2 = 0;
              var Asoc = 0;
              
              
              //states to create Ergebnisse
              const idAutonomiezeit = Statepfad + 'Autonomiezeit';   
              const idBatSockWh = Statepfad + 'Batteriekapazitaet';  
              
              //Berechnungsgrundlagen
              
              const idAsoc1 = 'e3dc-rscp.0.BAT.BAT_0.ASOC'/*Alterungszustand*/
              const idAsoc2 = 'e3dc-rscp.0.BAT.BAT_1.ASOC'/*Alterungszustand*/
              
              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 idNotstrombetrieb = 'modbus.1.holdingRegisters.40084_Emergency_Power_Status'/*Emergency-Power Status*/;
              const idE3DCReserve = 'javascript.1.PVAnlage.E3DC-Control.Allgemein.Notstrom_akt'/*aktuell berechnete Notstromreserve*/;
              
              
              //states create
              // Autonomiezeit in Vis auf Sichtbarkeit bei != 0 einstellen damit nur Sichtbar bei Entnahme
              createState(idAutonomiezeit, 0, fC, { type: 'string', name: 'Autonomiezeit',role:'text'});
              createState(idBatSockWh, 0, fC, { type: 'number', name: 'Batteriekapazität',role:'value', unit: ' kWh'});
              if(fC && debug)log('force Creation Aktiv States angelegt oder überschrieben');
              
              //Scriptstart
              setState(idAutonomiezeit, '0' ,true);  
              setTimeout( function(){
              Berechnung();
              },500);
              
              // Trigger Berechnung Aktueller Bat Soc in kwh
              on(idBatSoc, function(dp) { 
              if(debug)log('Batterie E3DC: Trigger BatSoc aktiv. BatSoc beträgt: '+ dp.state.val +' %'); 
              Berechnung();
              });
              
              
              
              //Berechnung Aktueller Bat Soc in kwh und Wert in State schreiben
              function Berechnung(){    
              BatSoc = getState(idBatSoc).val;
              Asoc1 = getState(idAsoc1).val;
              Asoc2 = getState(idAsoc2).val;
              Asoc = (Asoc1+Asoc2)/2;
              Speicher = SpeicherNetto/100*Asoc;
              setState(idBatSockWh,Math.round(((Speicher/100) * BatSoc)*100)/100,true);  
              if(debug)log('Batterie E3DC: Die Aktuell verfügbare 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('Batterie E3DC: Aktuelle Entnahmeleistung: ' + dp.state.val +' Watt');
                  }
              });
              
              //Berechnung Autonomiezeit
              function schedulestart(){
              if(debug)log('Batterie E3DC: Funktion Schedulestart aktiv');  
              var cronjob = "*/"+cron1+" * * * * *";  
              Timer = schedule(cronjob, function(){   
              if(debug)log('Batterie E3DC: Schedule cronjob aktiv');       
              Entnahme = getState (idBatEntnahme).val;
              BatSockWh = getState (idBatSockWh).val;
              BatSoc = getState(idBatSoc).val;
              var Reserve = getState(idE3DCReserve).val;
              var Notstrombetrieb = getState(idNotstrombetrieb).val;
              if  (Notstrombetrieb !=2){
              Reserve = 0;
              }
              setTimeout(function(){
              if(Entnahme<0){
              //BatSockWh = Math.round(BatSockWh - (Speicher/100*Reserve*100)/100);
              BatSockWh = BatSockWh/BatSoc*(BatSoc-Reserve);
              if(debug)log('Batterie E3DC: aktuelle Netto Gesamtkapazität abzüglich der Notstromreserve ist:  '+ BatSockWh + ' kWh.');
              setTimeout(function(){
              Autonomiezeit = Math.round(BatSockWh*1000/Entnahme*-1*100)/100;    
              Durchschnitt();
              if(Anzeige === false && Autonomiezeit >0){
              setState(idAutonomiezeit, Autonomiezeit +' h',true);
              Anzeige = true;
              }
              if(debug)log('Batterie E3DC: 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(debug)log('Batterie E3DC: Schedule cronjob gestoppt weil keine Entnahme');
                      setState(idAutonomiezeit,'0',true);
                      Anzeige = false;
                              }
                          }
                      },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(debug)log('Batterie E3DC: Aktuelle Netto Speicherkapazität beträgt: '+ getState(idBatSockWh).val+' kWh, abzüglich der Notstromreserve '+BatSockWh+ ' kWh' );     
              if(Zeit>=1){    
              setState(idAutonomiezeit,+ Math.round(Zeit*100)/100 +' h',true);  
              if(debug)log('Batterie E3DC: Autonomiezeit beträgt: '+ Math.round(Zeit*10)/10 + ' h');
                  }
              if(Zeit<1 && Zeit >0){       
              setState(idAutonomiezeit, + Math.round((Zeit*60)*100/100)+' min',true);
              if(debug)log('Batterie E3DC: Autonomiezeit bis Notstromreserve beträgt: '+Math.round((Zeit*60)*100/100) +' min.');
                  }
              if(Zeit < 0){
              setState(idAutonomiezeit, '0' ,true);
              if(debug)log('Batterie E3DC: Autonomiezeit beträgt: 0 min.');
                  }
              Count=0;
              Summe=0;
              if(debug)log('Batterie E3DC: Reset: Count =  '+ Count+ ' Summe = ' + Summe);
                      },100);  
                  }
              }
              
              
              
              A Offline
              A Offline
              ArnoD
              schrieb am zuletzt editiert von
              #1888

              @smartboart
              Super, danke :+1:

              1 Antwort Letzte Antwort
              0
              • smartboartS smartboart

                @arnod
                Hi Arno ich habe das Script Autonomiezeitberchnung aktualisiert und an die neuen Bedingungen / RSCP Adapter und deinem aktuellen Sript angepasst. Falls du oder andere es noch benutzten kann es hier kopiert werden.

                /*
                E3DC dynamische Autonomiezeitberechnung bis zur eingestellten Reserve
                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.
                03.10.2020
                V0.0.4- debug überarbeitet für Anzeige im Log Adapter
                07.10.2020
                V0.0.6 - Berechnungsfehler, welche -Werte erzeugten wurden behoben.
                         Ausgabe der 1. Autonomiezeitberechnung sofort anzeigen dann wird auf Durchschnittswert umgeschalte
                20.10.2020
                V0.0.7 - Hinweis stevie77 Wirkungsgrad in Berechnung einbeziehen. laut Datenblatt: max. Systemwirkungsgrad inkl. Batterie (%) > 88
                Bei 13 KW 13 / 100 * 88 = 11.44 Bemerkung .Vermutlich kann hier 1 eingetragen werden, da im Verbrauchswert Watt schon die die Verluste inkludiert sind.
                21.10.2020
                V0.0.7 - Hinweis stevie77 Tiefenentladeschutz bei 10 % mit  in Berechnung einbeziehen. 
                V0.0.8 - Berücksichtung Notstrombetrieb: Im Normalbetrieb erfolgt die Autonomierzeitberechnung
                         bis zur Notstromreserve . Im Notstrombetrieb wird die Autonomiezeit nun weiter berechnet 
                         und die Berechnung erfolgt dann bis zur Nettokapazitätsgrenze (Entladeschutz).
                         Die Anzeige in kWh zeigt immer die Nettokapazität bis zum Entladeschutz.
                13.11.2022
                V0.0.9 - Notstromreserve nun aus E3DC-Charge-Control importiert. Lastabwurf ist entfallen
                13.11.2022
                v0.1.0 - Wirkungsgrad und Entladetiefe bei Autonomieberechnung entfernt, da dies zu Fehlberechnungen führt. Die Entnommene Leistung beinhaltet 
                        ja schon die Verluste, somit kann mit dem Brutto gerechnet werden. SOH einbezogen. 
                11.01.2023
                v0.1.1 - Berechnungsformel Autonomiteit geändert. Anderer Rechenweg. 
                */        
                
                //Konfiguration
                var debug = false;
                var SpeicherNetto = 18.525; // kw/h hier die Speichergröße in kwh abzügl der Sicherheitsreserve 5 %
                var cron1 = 6; // hier die Schedulezeit - Triggerhäufigkeit alle x Sekunden für Zeitberechnung eintragen
                var Counter = 10; // Hier die Anzahl der Zeitberechnungen eintragen um einen Durchschnitswert zu ermitteln
                
                const fC = false;
                const Statepfad = 'javascript.' + instance + '.PVAnlage.Autonomie.';
                
                //Variable für Cronjob start stop
                var Timer = null;
                //Variable Hilfsmerker
                var Merker = true;
                //Variablen zur Berechnung der Zeiten
                var Autonomiezeit = 0;// bis Notstromreserve
                // Variablen für Durchschnittsberechnung
                var Count = 0;
                var Summe = 0;
                // Wert gleich anzeigen
                var Anzeige = false;
                // Variable für Bat Soc in kwh abzüglich Notstromreserve
                var BatSockWh = 0;
                var Entnahme = 0;
                var BatSoc = 0;
                var Speicher = 0;
                var Asoc1 = 0;
                var Asoc2 = 0;
                var Asoc = 0;
                
                
                //states to create Ergebnisse
                const idAutonomiezeit = Statepfad + 'Autonomiezeit';   
                const idBatSockWh = Statepfad + 'Batteriekapazitaet';  
                
                //Berechnungsgrundlagen
                
                const idAsoc1 = 'e3dc-rscp.0.BAT.BAT_0.ASOC'/*Alterungszustand*/
                const idAsoc2 = 'e3dc-rscp.0.BAT.BAT_1.ASOC'/*Alterungszustand*/
                
                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 idNotstrombetrieb = 'modbus.1.holdingRegisters.40084_Emergency_Power_Status'/*Emergency-Power Status*/;
                const idE3DCReserve = 'javascript.1.PVAnlage.E3DC-Control.Allgemein.Notstrom_akt'/*aktuell berechnete Notstromreserve*/;
                
                
                //states create
                // Autonomiezeit in Vis auf Sichtbarkeit bei != 0 einstellen damit nur Sichtbar bei Entnahme
                createState(idAutonomiezeit, 0, fC, { type: 'string', name: 'Autonomiezeit',role:'text'});
                createState(idBatSockWh, 0, fC, { type: 'number', name: 'Batteriekapazität',role:'value', unit: ' kWh'});
                if(fC && debug)log('force Creation Aktiv States angelegt oder überschrieben');
                
                //Scriptstart
                setState(idAutonomiezeit, '0' ,true);  
                setTimeout( function(){
                Berechnung();
                },500);
                
                // Trigger Berechnung Aktueller Bat Soc in kwh
                on(idBatSoc, function(dp) { 
                if(debug)log('Batterie E3DC: Trigger BatSoc aktiv. BatSoc beträgt: '+ dp.state.val +' %'); 
                Berechnung();
                });
                
                
                
                //Berechnung Aktueller Bat Soc in kwh und Wert in State schreiben
                function Berechnung(){    
                BatSoc = getState(idBatSoc).val;
                Asoc1 = getState(idAsoc1).val;
                Asoc2 = getState(idAsoc2).val;
                Asoc = (Asoc1+Asoc2)/2;
                Speicher = SpeicherNetto/100*Asoc;
                setState(idBatSockWh,Math.round(((Speicher/100) * BatSoc)*100)/100,true);  
                if(debug)log('Batterie E3DC: Die Aktuell verfügbare 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('Batterie E3DC: Aktuelle Entnahmeleistung: ' + dp.state.val +' Watt');
                    }
                });
                
                //Berechnung Autonomiezeit
                function schedulestart(){
                if(debug)log('Batterie E3DC: Funktion Schedulestart aktiv');  
                var cronjob = "*/"+cron1+" * * * * *";  
                Timer = schedule(cronjob, function(){   
                if(debug)log('Batterie E3DC: Schedule cronjob aktiv');       
                Entnahme = getState (idBatEntnahme).val;
                BatSockWh = getState (idBatSockWh).val;
                BatSoc = getState(idBatSoc).val;
                var Reserve = getState(idE3DCReserve).val;
                var Notstrombetrieb = getState(idNotstrombetrieb).val;
                if  (Notstrombetrieb !=2){
                Reserve = 0;
                }
                setTimeout(function(){
                if(Entnahme<0){
                //BatSockWh = Math.round(BatSockWh - (Speicher/100*Reserve*100)/100);
                BatSockWh = BatSockWh/BatSoc*(BatSoc-Reserve);
                if(debug)log('Batterie E3DC: aktuelle Netto Gesamtkapazität abzüglich der Notstromreserve ist:  '+ BatSockWh + ' kWh.');
                setTimeout(function(){
                Autonomiezeit = Math.round(BatSockWh*1000/Entnahme*-1*100)/100;    
                Durchschnitt();
                if(Anzeige === false && Autonomiezeit >0){
                setState(idAutonomiezeit, Autonomiezeit +' h',true);
                Anzeige = true;
                }
                if(debug)log('Batterie E3DC: 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(debug)log('Batterie E3DC: Schedule cronjob gestoppt weil keine Entnahme');
                        setState(idAutonomiezeit,'0',true);
                        Anzeige = false;
                                }
                            }
                        },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(debug)log('Batterie E3DC: Aktuelle Netto Speicherkapazität beträgt: '+ getState(idBatSockWh).val+' kWh, abzüglich der Notstromreserve '+BatSockWh+ ' kWh' );     
                if(Zeit>=1){    
                setState(idAutonomiezeit,+ Math.round(Zeit*100)/100 +' h',true);  
                if(debug)log('Batterie E3DC: Autonomiezeit beträgt: '+ Math.round(Zeit*10)/10 + ' h');
                    }
                if(Zeit<1 && Zeit >0){       
                setState(idAutonomiezeit, + Math.round((Zeit*60)*100/100)+' min',true);
                if(debug)log('Batterie E3DC: Autonomiezeit bis Notstromreserve beträgt: '+Math.round((Zeit*60)*100/100) +' min.');
                    }
                if(Zeit < 0){
                setState(idAutonomiezeit, '0' ,true);
                if(debug)log('Batterie E3DC: Autonomiezeit beträgt: 0 min.');
                    }
                Count=0;
                Summe=0;
                if(debug)log('Batterie E3DC: Reset: Count =  '+ Count+ ' Summe = ' + Summe);
                        },100);  
                    }
                }
                
                
                
                A Offline
                A Offline
                Abyss
                schrieb am zuletzt editiert von
                #1889

                @smartboart
                Danke für das Update des neuen Scriptes.
                @ArnoD
                Danke für das neue Charge-Control und die neue Art der Regelung.
                Klasse Sache!!
                Freue mich schon auf die Möglichkeit der manuellen Speicherladung. ;)

                Nach langer Pause hab ich mich mal wieder drangesetzt um meine Systeme auf den aktuellen Stand zu bringen.
                Bei deinem Autonomie-Script scheitere ich grad an folgender Zeile:
                const idE3DCReserve = 'javascript.0.PVAnlage.E3DC-Control.Allgemein.Notstrom_akt'/aktuell berechnete Notstromreserve/;

                Wo kommt das Objekt her? das gibt es bei mir nicht und wird weder durch Charge-Control noch die Autonomiezeit erstellt?
                Hab ich hier was verpasst?
                Ohne das bekomme ich nur Fehlermeldungen und die Berechnung läuft nicht.

                Danke und Grüße

                H smartboartS 2 Antworten Letzte Antwort
                0
                • A Abyss

                  @smartboart
                  Danke für das Update des neuen Scriptes.
                  @ArnoD
                  Danke für das neue Charge-Control und die neue Art der Regelung.
                  Klasse Sache!!
                  Freue mich schon auf die Möglichkeit der manuellen Speicherladung. ;)

                  Nach langer Pause hab ich mich mal wieder drangesetzt um meine Systeme auf den aktuellen Stand zu bringen.
                  Bei deinem Autonomie-Script scheitere ich grad an folgender Zeile:
                  const idE3DCReserve = 'javascript.0.PVAnlage.E3DC-Control.Allgemein.Notstrom_akt'/aktuell berechnete Notstromreserve/;

                  Wo kommt das Objekt her? das gibt es bei mir nicht und wird weder durch Charge-Control noch die Autonomiezeit erstellt?
                  Hab ich hier was verpasst?
                  Ohne das bekomme ich nur Fehlermeldungen und die Berechnung läuft nicht.

                  Danke und Grüße

                  H Offline
                  H Offline
                  HDAndy
                  schrieb am zuletzt editiert von
                  #1890

                  @abyss
                  Das Objekt legt Charge-Control an und befindet sich bei mir unter: '0_userdata.0.Charge_Control.Allgemein.Notstrom_akt'.

                  Pfad ändern und geht :)

                  A 1 Antwort Letzte Antwort
                  1
                  • A Abyss

                    @smartboart
                    Danke für das Update des neuen Scriptes.
                    @ArnoD
                    Danke für das neue Charge-Control und die neue Art der Regelung.
                    Klasse Sache!!
                    Freue mich schon auf die Möglichkeit der manuellen Speicherladung. ;)

                    Nach langer Pause hab ich mich mal wieder drangesetzt um meine Systeme auf den aktuellen Stand zu bringen.
                    Bei deinem Autonomie-Script scheitere ich grad an folgender Zeile:
                    const idE3DCReserve = 'javascript.0.PVAnlage.E3DC-Control.Allgemein.Notstrom_akt'/aktuell berechnete Notstromreserve/;

                    Wo kommt das Objekt her? das gibt es bei mir nicht und wird weder durch Charge-Control noch die Autonomiezeit erstellt?
                    Hab ich hier was verpasst?
                    Ohne das bekomme ich nur Fehlermeldungen und die Berechnung läuft nicht.

                    Danke und Grüße

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

                    @abyss Ja sorry..eben erst gelesen...arnos Script legt alles unter userdata an..ich habe das bei mir geändert weil ich nie auf userdata umgestellt habe und vergessen darauf hinzuweisen...

                    1 Antwort Letzte Antwort
                    0
                    • H HDAndy

                      @abyss
                      Das Objekt legt Charge-Control an und befindet sich bei mir unter: '0_userdata.0.Charge_Control.Allgemein.Notstrom_akt'.

                      Pfad ändern und geht :)

                      A Offline
                      A Offline
                      Abyss
                      schrieb am zuletzt editiert von
                      #1892

                      @hdandy

                      Danke euch für den Hinweis.
                      Hab alles durchgeklickt aber an der Stelle wohl aktiv überlesen. ;)
                      Jetzt sieht es deutlich besser aus.

                      Danke nochmal!!

                      1 Antwort Letzte Antwort
                      0
                      • A ArnoD

                        Neue Version Charge-Control auf GitHub hochgeladen.
                        Version: 1.1.5
                        Änderungen:

                        • Entladen wird bei Erreichen der Notstromreserve gestoppt und erst bei +1 % Batterie SOC über Notstromreserve SOC wieder freigeben.
                        • Neue Objekt ID 0_userdata.0.Charge_Control.Allgemein.Automatik_Regelung, um die Regelung vom Script in VIS ausschalten zu können. Achtung! Es wird dann auch keine Notstromreserve mehr berücksichtigt und man muss diese, wenn gewünscht, wieder direkt beim E3DC einstellen.
                        • Fehler behoben das die untere Ladeschwelle nicht mehr berücksichtigt wurde
                        A Offline
                        A Offline
                        ArnoD
                        schrieb am zuletzt editiert von
                        #1893

                        Neue Version Charge-Control auf GitHub hochgeladen.
                        Version: 1.1.6
                        Änderungen:

                        • Bei der Abfragezeit der Daten von Solcast, werden die Minuten zufällig berechnet. Solcast Daten werden jetzt zwischen 4:01 Uhr und 4:59 Uhr abgerufen.
                        • Fehler in Funktion CheckPrognose() behoben. Die Variable Notstrom_SOC_Proz wurde hier auf Einstellwert zurückgesetzt.
                        A 1 Antwort Letzte Antwort
                        0
                        • J jans_ios

                          Ich habe leider nach wie vor die Situation, dass meine Wallbox bei dem Modbus-InputRegister "modbus.1.inputRegisters.128_total_kwh" immer eine 0 liefert. Ich vermute mittlerweile die Ursache eher in der Wallbox-Konfiguration, gerade der Bereich "Energy Meter" könnte hier relevant sein. Auch kommt mir der Status "Energy Charge Sequence" auf der Status-Seite komisch vor - da zählt nichts hoch, laut Handbuch soll hier die "Energiemenge, die im aktuellen Ladevorgang bereits geladen wurde" angezeigt werden - bei mir nichts :(

                          Ich habe mal Screenshots aus dem Webinterface meiner Wallbox gemacht. Kann die mal bitte jemand vergleichen mit seinen Settings?
                          Danke!
                          Status.jpg Configuration.jpg Energy Meter.jpg

                          Z Offline
                          Z Offline
                          Zorrokater
                          schrieb am zuletzt editiert von Zorrokater
                          #1894

                          @jans_ios Hi, wie bist Du auf die Website der Wallbox gekommen. Mir fehlt das Kennwort. Kannst Du mir bitte helfen?
                          Liebe Grüße Zorrokater

                          smartboartS 1 Antwort Letzte Antwort
                          0
                          • Z Zorrokater

                            @jans_ios Hi, wie bist Du auf die Website der Wallbox gekommen. Mir fehlt das Kennwort. Kannst Du mir bitte helfen?
                            Liebe Grüße Zorrokater

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

                            @zorrokater probier mal wallbe7213

                            1 Antwort Letzte Antwort
                            0
                            • J Offline
                              J Offline
                              jans_ios
                              schrieb am zuletzt editiert von
                              #1896

                              @ArnoD
                              Ich hatte (bis eben) den Wert "Unload" auf 32% stehen. Das führte heute Nacht und auch in einer vorherigen Nacht dazu, dass der Speicher ab 01:00 Uhr bis auf 32% ins Netz entladen wurde. Ich hatte es eigentlich so verstanden, dass dies erst bei PV-Produktions-Beginn passieren sollte, was ja auch Sinn machen würde - liegt hier ein Fehler vor? Ich schicke Dir mal per PN mein heutiges Log, da kann man das schön sehen.

                              Außerdem: Besteht die Möglichkeit, den hier ins Netz eingespeisten Strom "umzulenken" bspw. zu einem MyPV-Heizstab in der Heizung? Das würde mir mehr bringen in Richtung Eigenverbrauch.

                              Danke!

                              Gruß, Jan

                              A 1 Antwort Letzte Antwort
                              0
                              • J jans_ios

                                @ArnoD
                                Ich hatte (bis eben) den Wert "Unload" auf 32% stehen. Das führte heute Nacht und auch in einer vorherigen Nacht dazu, dass der Speicher ab 01:00 Uhr bis auf 32% ins Netz entladen wurde. Ich hatte es eigentlich so verstanden, dass dies erst bei PV-Produktions-Beginn passieren sollte, was ja auch Sinn machen würde - liegt hier ein Fehler vor? Ich schicke Dir mal per PN mein heutiges Log, da kann man das schön sehen.

                                Außerdem: Besteht die Möglichkeit, den hier ins Netz eingespeisten Strom "umzulenken" bspw. zu einem MyPV-Heizstab in der Heizung? Das würde mir mehr bringen in Richtung Eigenverbrauch.

                                Danke!

                                Gruß, Jan

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

                                @jans_ios
                                Hallo Jan,
                                der Link zum Download funktioniert aktuell nicht, da bekomme ich immer eine Zeitüberschreitung.
                                Ich werde es aber später noch mal versuchen.

                                Gruß Arno

                                J 1 Antwort Letzte Antwort
                                0
                                • A ArnoD

                                  @jans_ios
                                  Hallo Jan,
                                  der Link zum Download funktioniert aktuell nicht, da bekomme ich immer eine Zeitüberschreitung.
                                  Ich werde es aber später noch mal versuchen.

                                  Gruß Arno

                                  J Offline
                                  J Offline
                                  jans_ios
                                  schrieb am zuletzt editiert von
                                  #1898

                                  @arnod
                                  Mist, da habe ich wohl gerade ein kleineres Problem ;) Schön, dass sowas immer dann auftritt, wenn man selbst nicht zuhause ist.
                                  Ich poste hier mal ein paar relevante Zeilen. So beginnt es um 01:00 Uhr:

                                  2023-02-14 01:00:00.243  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" -==== Vor Regelbeginn ====- "}##
                                  2023-02-14 01:00:00.243  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" -==== 1 M_Power: -261 = Math.round(((Unload_SOC_Proz:32 - Batterie_SOC_Proz:46)*Speichergroesse_kWh: 18*10*3600) / (tRegelbeginn:34750 - Zeit_aktuell_UTC_sek:0)) ====- "}##
                                  2023-02-14 01:00:00.290  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung M_Power=-261 "}##
                                  2023-02-14 01:00:00.290  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung PowerGrid =-730"}##
                                  2023-02-14 01:00:00.342  - warn: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":"-==== Batterie entladen Schritt = 1 Set_Power_Mode = 2 entladen Set_Power_Value_W = -730 M_Power = -730 ====-"}##
                                  2023-02-14 01:00:03.006  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" -==== 1 M_Power: -261 = Math.round(((Unload_SOC_Proz:32 - Batterie_SOC_Proz:46)*Speichergroesse_kWh: 18*10*3600) / (tRegelbeginn:34750 - Zeit_aktuell_UTC_sek:3)) ====- "}##
                                  2023-02-14 01:00:03.054  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung M_Power=-261 "}##
                                  2023-02-14 01:00:03.055  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung PowerGrid =-526"}##
                                  2023-02-14 01:00:03.117  - warn: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":"-==== Batterie entladen Schritt = 1 Set_Power_Mode = 2 entladen Set_Power_Value_W = -526 M_Power = -526 ====-"}##
                                  2023-02-14 01:00:06.008  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" -==== 1 M_Power: -261 = Math.round(((Unload_SOC_Proz:32 - Batterie_SOC_Proz:46)*Speichergroesse_kWh: 18*10*3600) / (tRegelbeginn:34750 - Zeit_aktuell_UTC_sek:6)) ====- "}##
                                  2023-02-14 01:00:06.053  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung M_Power=-261 "}##
                                  2023-02-14 01:00:06.054  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung PowerGrid =-927"}##
                                  2023-02-14 01:00:06.068  - warn: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":"-==== Batterie entladen Schritt = 1 Set_Power_Mode = 2 entladen Set_Power_Value_W = -927 M_Power = -927 ====-"}##
                                  2023-02-14 01:00:09.072  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" -==== 1 M_Power: -261 = Math.round(((Unload_SOC_Proz:32 - Batterie_SOC_Proz:46)*Speichergroesse_kWh: 18*10*3600) / (tRegelbeginn:34750 - Zeit_aktuell_UTC_sek:9)) ====- "}##
                                  2023-02-14 01:00:09.157  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung M_Power=-261 "}##
                                  2023-02-14 01:00:09.157  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung PowerGrid =-509"}##
                                  2023-02-14 01:00:09.222  - warn: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":"-==== Batterie entladen Schritt = 1 Set_Power_Mode = 2 entladen Set_Power_Value_W = -509 M_Power = -509 ====-"}##
                                  
                                  

                                  Und so endet es dann um 03:47 Uhr:

                                  2023-02-14 03:47:12.050  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung M_Power=-26 "}##
                                  2023-02-14 03:47:12.050  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung PowerGrid =-508"}##
                                  2023-02-14 03:47:15.009  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" -==== 1 M_Power: -26 = Math.round(((Unload_SOC_Proz:32 - Batterie_SOC_Proz:33)*Speichergroesse_kWh: 18*10*3600) / (tRegelbeginn:34750 - Zeit_aktuell_UTC_sek:10035)) ====- "}##
                                  2023-02-14 03:47:15.055  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung M_Power=-26 "}##
                                  2023-02-14 03:47:15.056  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung PowerGrid =-519"}##
                                  2023-02-14 03:47:18.012  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" -==== Laderegelung wird gestoppt ====- "}##
                                  2023-02-14 03:47:18.058  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" -==== Regelung E3DC überlassen. Schritt = 1 SET_POWER_MODE = 0 normal ====- "}##
                                  2023-02-14 03:47:21.010  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" -==== Laderegelung wird gestoppt ====- "}##
                                  
                                  A 1 Antwort Letzte Antwort
                                  0
                                  • J jans_ios

                                    @arnod
                                    Mist, da habe ich wohl gerade ein kleineres Problem ;) Schön, dass sowas immer dann auftritt, wenn man selbst nicht zuhause ist.
                                    Ich poste hier mal ein paar relevante Zeilen. So beginnt es um 01:00 Uhr:

                                    2023-02-14 01:00:00.243  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" -==== Vor Regelbeginn ====- "}##
                                    2023-02-14 01:00:00.243  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" -==== 1 M_Power: -261 = Math.round(((Unload_SOC_Proz:32 - Batterie_SOC_Proz:46)*Speichergroesse_kWh: 18*10*3600) / (tRegelbeginn:34750 - Zeit_aktuell_UTC_sek:0)) ====- "}##
                                    2023-02-14 01:00:00.290  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung M_Power=-261 "}##
                                    2023-02-14 01:00:00.290  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung PowerGrid =-730"}##
                                    2023-02-14 01:00:00.342  - warn: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":"-==== Batterie entladen Schritt = 1 Set_Power_Mode = 2 entladen Set_Power_Value_W = -730 M_Power = -730 ====-"}##
                                    2023-02-14 01:00:03.006  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" -==== 1 M_Power: -261 = Math.round(((Unload_SOC_Proz:32 - Batterie_SOC_Proz:46)*Speichergroesse_kWh: 18*10*3600) / (tRegelbeginn:34750 - Zeit_aktuell_UTC_sek:3)) ====- "}##
                                    2023-02-14 01:00:03.054  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung M_Power=-261 "}##
                                    2023-02-14 01:00:03.055  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung PowerGrid =-526"}##
                                    2023-02-14 01:00:03.117  - warn: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":"-==== Batterie entladen Schritt = 1 Set_Power_Mode = 2 entladen Set_Power_Value_W = -526 M_Power = -526 ====-"}##
                                    2023-02-14 01:00:06.008  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" -==== 1 M_Power: -261 = Math.round(((Unload_SOC_Proz:32 - Batterie_SOC_Proz:46)*Speichergroesse_kWh: 18*10*3600) / (tRegelbeginn:34750 - Zeit_aktuell_UTC_sek:6)) ====- "}##
                                    2023-02-14 01:00:06.053  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung M_Power=-261 "}##
                                    2023-02-14 01:00:06.054  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung PowerGrid =-927"}##
                                    2023-02-14 01:00:06.068  - warn: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":"-==== Batterie entladen Schritt = 1 Set_Power_Mode = 2 entladen Set_Power_Value_W = -927 M_Power = -927 ====-"}##
                                    2023-02-14 01:00:09.072  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" -==== 1 M_Power: -261 = Math.round(((Unload_SOC_Proz:32 - Batterie_SOC_Proz:46)*Speichergroesse_kWh: 18*10*3600) / (tRegelbeginn:34750 - Zeit_aktuell_UTC_sek:9)) ====- "}##
                                    2023-02-14 01:00:09.157  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung M_Power=-261 "}##
                                    2023-02-14 01:00:09.157  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung PowerGrid =-509"}##
                                    2023-02-14 01:00:09.222  - warn: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":"-==== Batterie entladen Schritt = 1 Set_Power_Mode = 2 entladen Set_Power_Value_W = -509 M_Power = -509 ====-"}##
                                    
                                    

                                    Und so endet es dann um 03:47 Uhr:

                                    2023-02-14 03:47:12.050  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung M_Power=-26 "}##
                                    2023-02-14 03:47:12.050  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung PowerGrid =-508"}##
                                    2023-02-14 03:47:15.009  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" -==== 1 M_Power: -26 = Math.round(((Unload_SOC_Proz:32 - Batterie_SOC_Proz:33)*Speichergroesse_kWh: 18*10*3600) / (tRegelbeginn:34750 - Zeit_aktuell_UTC_sek:10035)) ====- "}##
                                    2023-02-14 03:47:15.055  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung M_Power=-26 "}##
                                    2023-02-14 03:47:15.056  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" Entladeleistung PowerGrid =-519"}##
                                    2023-02-14 03:47:18.012  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" -==== Laderegelung wird gestoppt ====- "}##
                                    2023-02-14 03:47:18.058  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" -==== Regelung E3DC überlassen. Schritt = 1 SET_POWER_MODE = 0 normal ====- "}##
                                    2023-02-14 03:47:21.010  - info: javascript.0 (197) script.js.Eigene_Skripte.Energie.Charge_Control: ##{"from":"Charge-Control", "message":" -==== Laderegelung wird gestoppt ====- "}##
                                    
                                    A Offline
                                    A Offline
                                    ArnoD
                                    schrieb am zuletzt editiert von
                                    #1899

                                    @jans_ios

                                    Welche Version vom Script hast du im Einsatz?
                                    Der Fehler ist eigentlich, dass die Lade-\Entladefreigabe nicht deaktiviert wurde, warum auch immer.
                                    Das sollte eigentlich mit der aktuellen Version nicht mehr passieren.

                                    Ich schaue mir das mal genauer an, ob ich da was übersehen habe.

                                    Gruß Arno

                                    J 1 Antwort Letzte Antwort
                                    0
                                    • A ArnoD

                                      @jans_ios

                                      Welche Version vom Script hast du im Einsatz?
                                      Der Fehler ist eigentlich, dass die Lade-\Entladefreigabe nicht deaktiviert wurde, warum auch immer.
                                      Das sollte eigentlich mit der aktuellen Version nicht mehr passieren.

                                      Ich schaue mir das mal genauer an, ob ich da was übersehen habe.

                                      Gruß Arno

                                      J Offline
                                      J Offline
                                      jans_ios
                                      schrieb am zuletzt editiert von
                                      #1900

                                      @arnod
                                      Ich habe die aktuelle 1.1.6 im Einsatz

                                      A 2 Antworten Letzte Antwort
                                      0
                                      • J jans_ios

                                        @arnod
                                        Ich habe die aktuelle 1.1.6 im Einsatz

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

                                        @jans_ios
                                        Was ist bei dir aktuell für ein Notstrom SoC eingestellt?

                                        1 Antwort Letzte Antwort
                                        0
                                        • A ArnoD

                                          Neue Version Charge-Control auf GitHub hochgeladen.
                                          Version: 1.1.6
                                          Änderungen:

                                          • Bei der Abfragezeit der Daten von Solcast, werden die Minuten zufällig berechnet. Solcast Daten werden jetzt zwischen 4:01 Uhr und 4:59 Uhr abgerufen.
                                          • Fehler in Funktion CheckPrognose() behoben. Die Variable Notstrom_SOC_Proz wurde hier auf Einstellwert zurückgesetzt.
                                          A Offline
                                          A Offline
                                          ArnoD
                                          schrieb am zuletzt editiert von
                                          #1902

                                          Neue Version Charge-Control auf GitHub hochgeladen.
                                          Version: 1.1.7
                                          Änderungen:

                                          • Fehler in behoben, dass auf Unload SoC entladen wurde, obwohl noch keine PV-Leistung vorhanden war.
                                          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

                                          699

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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