Navigation

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

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    E3DC Hauskraftwerk steuern

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

      @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

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

        @ArnoD wenn du erweiters wäre 5 dachflächen sehr nett. Ich hab 5 verschiedene Ausrichtung en

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

          @michael74 sagte in E3DC Hauskraftwerk steuern:

          @goelectric hatte mein Script auf 5 Dachflächen erweitert sind mehrere Bereiche die erweitert werden müssen. Könnte die Änderungen dir zukommen lassen, oder hier hochladen.

          Hast du wirklich 5 Dachflächen mit unterschiedlicher Ausrichtung und Neigung ??

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

            @stevie77 sagte in E3DC Hauskraftwerk steuern:

            @michael74 sagte in E3DC Hauskraftwerk steuern:

            @goelectric hatte mein Script auf 5 Dachflächen erweitert sind mehrere Bereiche die erweitert werden müssen. Könnte die Änderungen dir zukommen lassen, oder hier hochladen.

            Könnte mich auch interessieren. Ich habe ja auch 4 Dachflächen; ich habe halt die beiden Süd-Flächen mit unterschiedlichen Winkeln zusammengefasst und dann Ost-West mit den Werten von West, da Ost nur 5 Module sind. Die Frage ist halt, ob man durch genauere Dachflächenwerte so viel gewinnt, weil die Prognosen ja sowieso eher ungenau sind?

            Ich denke eher nicht.
            So ungenau wie die Prognosen zum Teil sind wird sich das nicht auswirken, aber an mir soll es ja nicht scheitern 🙂

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

              @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?! 😄

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            754
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            70
                                            3331
                                            1363128
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo