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.6k

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

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

E3DC Hauskraftwerk steuern

Geplant Angeheftet Gesperrt Verschoben JavaScript
3.5k Beiträge 70 Kommentatoren 1.6m Aufrufe 61 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • A ArnoD

    @smartboart sagte in E3DC Hauskraftwerk steuern:

    Hi Arno, wie verhält sich dein neues Update? Noch Batterieaussetzer? Welcher Version hast du?

    Bis jetzt hatte ich keine Batterieaussetzer mehr. Werde das aber noch eine Weile beobachten, da dieser Fehler sehr sporadisch war.
    Ich habe die Version P10_2020_066

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

    @ArnoD sagte in E3DC Hauskraftwerk steuern:

    @smartboart sagte in E3DC Hauskraftwerk steuern:

    Hi Arno, wie verhält sich dein neues Update? Noch Batterieaussetzer? Welcher Version hast du?

    Bis jetzt hatte ich keine Batterieaussetzer mehr. Werde das aber noch eine Weile beobachten, da dieser Fehler sehr sporadisch war.
    Ich habe die Version P10_2020_066

    Habe die gleiche Version... Gestern hatte ich 2 Aussetzer die Nacht hintereinander... Davor auch noch immer mal wieder... Na ja mein Ticket ist ja noch offen..

    1 Antwort Letzte Antwort
    0
    • S stevie77

      @ArnoD sagte in E3DC Hauskraftwerk steuern:

      So ungenau wie die Prognosen zum Teil sind wird sich das nicht auswirken, aber an mir soll es ja nicht scheitern :-)

      Hätte was, zumindest ist der Ansatz genauer und macht Pendanten wie mich glücklich. ;-)
      4 Dachflächen, 5 Dachflächen...die Nutzer werden immer anspruchsvoller?! :-D

      @smartboart Ich hab inzwischen zwei Skripte angelegt, die ziemlich ähnlich sind, um den Hausverbrauch und die Netzeinspeisung zu messen. Das Seltsame ist, dass die Netzeinspeisung sehr exakt ist, wie bei der Erzeugung, aber der Hausverbrauch sehr daneben liegt (11,4 kWh im Portal zu jetzt schon 14,8 kWh an diesem Tag). Die Skripte habe ich mit nem Texteditor verglichen - es fielen mir keine auffälligen Unterschiede auf.
      Ist mir irgendwas entgangen, warum der Hausanschlusswert dafür weniger gut geeignet sein könnte als der Netzeinspeisewert? Zumal der Netzeinspeisewert eigentlich komplizierter war, weil dort nur negative Werte zu zählen sind (und Netzbezug nicht)...

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

      @stevie77 sagte in E3DC Hauskraftwerk steuern:

      Netzeinspeisung sehr exakt ist, wie bei der Erzeugung, aber der Hausverbrauch sehr daneben liegt (11,4 kWh im Portal zu jetzt schon 14,8 kWh an diesem Tag).

      Was sagt der Wert bzw. Unterschied am naechsten Tag... Musst dein Wert mal wegschschreiben um 0 Uhr bevor auf 0 zurueck gesetzt wird und dann am nächsten Tag vergleichen..
      Nach ein paar Tagen lässt sich ein aussagekräftiger Faktor ermitteln.

      Ich könnte mir vorstellen, dass e3dc hier einen Faktor verwendet, welcher die Verlustleistung herausrechnet ( Wirkungsgrad der Anlage ). Nicht alle Werte werden tatsächlich gemessen, es gibt ja nur das eine modbus Messgeraet am Eingang.. . Der Haus Verbrauch wird nicht gemessen..sondern aus Erzeugungsdaten des Wechselrichter und den Messungen des integrierten Modbus Messgeraet errechnet.. Die Erzeugungsdaten in Watt werden von e3dc mit Wechselrichterverlusten angegeben... Das kann ich sagen, weil ich ein messgeraet / Erzeugung hinter dem wechselrichter nachgerüstet habe.

      Ich habe schon früher mein Hausverbrauch geloggt und kenne meine Watt und Ampere Werte... Was e3dc für den Hausverbrauch in Watt anzeigt ist zu hoch...demnach wird auch ein erhöhter Verbrauch mit meiner script Rechnung berechnet..
      Genau aus dem Grund messe ich mit nem eigenen modbus Messgeraet am Wechselrichterausgang und logge und protokolliere damit, um meinen Hausverbrauch zu ermitteln.
      Dieser Leistungswert / Watt Wert des Hausverbrauch von e3dc ist aus dem Grund meiner Meinung nach fuer meine Berechnung so nicht geignet.
      Musst mal beobachten ob sich ein Faktor ermitteln lässt... Schätze mal der errechnete wert x 0.8....
      Wenn du mal ein paar tage die Werte vergleichst lässt sich bestimmt ein genauer Faktor ermitteln.
      E3DC Wert / errechneter Script Wert = 0,77 in deinem oben beschrieben Fall...
      Wenn sich die 0,77 immer einstellt, erweiterst du das script bzw. die Berchnung einfach um das Ergebnis*0.77...
      Der Wirkungsgrad deiner Anlage wäre dann 0.77 oder 77%

      1 Antwort Letzte Antwort
      0
      • A Offline
        A Offline
        ArnoD
        schrieb am zuletzt editiert von
        #534

        Version 0.2.15 hochgeladen.

        Änderungen:
        Version: 0.2.15 Es können jetzt für 5 verschiedene Dachflächen die Prognosewerte von Forecast abgerufen werden.

        Da ich leider keine 5 Dachflächen mit Solarmodulen habe (neid), müssen die testen, die so was haben ;-)
        Mit zwei Dachflächen funktioniert es :-)

        G 1 Antwort Letzte Antwort
        0
        • A ArnoD

          Version 0.2.15 hochgeladen.

          Änderungen:
          Version: 0.2.15 Es können jetzt für 5 verschiedene Dachflächen die Prognosewerte von Forecast abgerufen werden.

          Da ich leider keine 5 Dachflächen mit Solarmodulen habe (neid), müssen die testen, die so was haben ;-)
          Mit zwei Dachflächen funktioniert es :-)

          G Offline
          G Offline
          goelectric
          schrieb am zuletzt editiert von
          #535

          @ArnoD
          Nicht dass der Verdacht aufkommt, da stellt jemand eine Frage und taucht ab! Ich hatte zwischenzeitlich keine Zeit und Gelegenheit das Internet zu beglücken, auch das kann entspannend sein!!
          Für eure Aktivitäten und schnelle Reaktion auf meine Frage möchte ich mich bedanken und hoffe es mit eigenen Beträgen wieder gutzumachen.
          Die 4 Dachflächen haben alle die gleiche Neigung sind nach Süden, Westen und Osten ausgerichtet. Die Südseite besteht aus zwei unterschiedlichen Bauabschnitten mit verschiedenen Abschattungen und somit mit jeweils einem String.
          Die Anlage wird hoffentlich nächste Woche geliefert und in der Folgewoche installiert. Sie besteht aus einem S10 PRO 19,5 kW Speicher, einem Zusatzwechselrichter und der Wallbox Easy-Connect, also etliche Hardware und Software die hoffentlich ewig Zicken macht.

          smartboartS 1 Antwort Letzte Antwort
          0
          • G goelectric

            @ArnoD
            Nicht dass der Verdacht aufkommt, da stellt jemand eine Frage und taucht ab! Ich hatte zwischenzeitlich keine Zeit und Gelegenheit das Internet zu beglücken, auch das kann entspannend sein!!
            Für eure Aktivitäten und schnelle Reaktion auf meine Frage möchte ich mich bedanken und hoffe es mit eigenen Beträgen wieder gutzumachen.
            Die 4 Dachflächen haben alle die gleiche Neigung sind nach Süden, Westen und Osten ausgerichtet. Die Südseite besteht aus zwei unterschiedlichen Bauabschnitten mit verschiedenen Abschattungen und somit mit jeweils einem String.
            Die Anlage wird hoffentlich nächste Woche geliefert und in der Folgewoche installiert. Sie besteht aus einem S10 PRO 19,5 kW Speicher, einem Zusatzwechselrichter und der Wallbox Easy-Connect, also etliche Hardware und Software die hoffentlich ewig Zicken macht.

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

            @ArnoD
            Hallo Arno,

            habe als Prognose nur Proplanta angegeben und hatte heute das 1. mal , das die Prognose Auto von Proplanta abgewichen ist.. Hast dazu ne Idee?

            Unbenannt.JPG

            A 1 Antwort Letzte Antwort
            0
            • smartboartS smartboart

              @ArnoD
              Hallo Arno,

              habe als Prognose nur Proplanta angegeben und hatte heute das 1. mal , das die Prognose Auto von Proplanta abgewichen ist.. Hast dazu ne Idee?

              Unbenannt.JPG

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

              @smartboart

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

              S smartboartS 2 Antworten Letzte Antwort
              0
              • A ArnoD

                @smartboart

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

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

                @ArnoD sagte in E3DC Hauskraftwerk steuern:

                @smartboart

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

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

                smartboartS 1 Antwort Letzte Antwort
                0
                • A ArnoD

                  @smartboart

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

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

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

                  smartboartS 1 Antwort Letzte Antwort
                  0
                  • S stevie77

                    @ArnoD sagte in E3DC Hauskraftwerk steuern:

                    @smartboart

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

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

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

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

                    S 1 Antwort Letzte Antwort
                    0
                    • smartboartS smartboart

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

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

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

                      1 Antwort Letzte Antwort
                      0
                      • smartboartS smartboart

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

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

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

                        smartboartS A 2 Antworten Letzte Antwort
                        0
                        • smartboartS smartboart

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

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

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

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

                          hier der Code

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

                          Unbenannt.JPG

                          1 Antwort Letzte Antwort
                          1
                          • smartboartS smartboart

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

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

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

                            smartboartS 2 Antworten Letzte Antwort
                            0
                            • A ArnoD

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

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

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

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

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

                              1 Antwort Letzte Antwort
                              1
                              • A ArnoD

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

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

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

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

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

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

                                  @smartboart sagte in E3DC Hauskraftwerk steuern:

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

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

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

                                  smartboartS 3 Antworten Letzte Antwort
                                  0
                                  • A ArnoD

                                    @smartboart sagte in E3DC Hauskraftwerk steuern:

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

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

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

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

                                    @ArnoD sagte in E3DC Hauskraftwerk steuern:

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

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

                                    1 Antwort Letzte Antwort
                                    0
                                    • A ArnoD

                                      @smartboart sagte in E3DC Hauskraftwerk steuern:

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

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

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

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

                                      @ArnoD sagte in E3DC Hauskraftwerk steuern:

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

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

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

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

                                        @smartboart sagte in E3DC Hauskraftwerk steuern:

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

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

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

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

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

                                        Screenshot_20200930_170459_de.ozerov.fully.jpg

                                        Screenshot_20200930_170504_de.ozerov.fully.jpg

                                        A 1 Antwort Letzte Antwort
                                        0
                                        • smartboartS smartboart

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

                                          Screenshot_20200930_170459_de.ozerov.fully.jpg

                                          Screenshot_20200930_170504_de.ozerov.fully.jpg

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

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

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          856

                                          Online

                                          32.4k

                                          Benutzer

                                          81.5k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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