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 goes Matter ... Matter Adapter in Stable

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    E3DC Hauskraftwerk steuern

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

      @tbsjah

      Das ist gut und auch wieder schlecht, da es bei dir dann ein anderes Problem ist.
      Da hilft nur mal das ganze zu loggen, um zu sehen, was da passiert.
      Kannst du bitte mal const LogAusgabeSteuerung = true setzen und mir schicken oder hier einstellen, wenn es wieder passiert.

      Ist es immer die maximale Entladeleistung, die auf 65W eingestellt ist oder auch die maximale Ladeleistung?

      L TbsJah 2 Replies Last reply Reply Quote 1
      • L
        Letty @ArnoD last edited by Letty

        @ArnoD
        Hallo ArnoD Vielen Dank für deine mühe und Zeit.

        edit Fehler gefunden Skript war nicht im Common Ordner.

        Vielen Dank und Grüße,
        Armin

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

          @arnod said in E3DC Hauskraftwerk steuern:

          ja, da hat sich was geändert. Solcast hat die Vorschau von 6 Tagen auf 3 Tege reduziert.
          Mal schauen, wie lange das überhaupt noch kostenlos ist.

          @ArnoD
          Hi ArnoD,
          ich habe mal geschaut. Bist Du sicher, dass nicht längere Zeiten abgefragt werden können?
          Auf der Doku-Seite der Solcast-API steht, dass das Default-Zeitfenster 48h beträgt. Durch Anhängen des "hours"-Parameters an die URL beim Aufruf läßt sich das aber offenbar auf bis zu 336h erhöhen. Hier haben das offenbar auch einige mit Erfolgt getestet.

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

            @bluebean said in E3DC Hauskraftwerk steuern:

            @ArnoD
            ...Durch Anhängen des "hours"-Parameters an die URL beim Aufruf läßt sich das aber offenbar auf bis zu 336h erhöhen. Hier haben das offenbar auch einige mit Erfolgt getestet.

            Habe jetzt mal im Skript den Aufruf in Zeile 1248 geändert auf

            xhr2.open("GET",'https://api.solcast.com.au/rooftop_sites/'+Resource_Id_Dach[DachFl]+'/forecasts?format=json&api_key='+SolcastAPI_key+'&hours=168', true);
            

            und bekomme damit Prognosedaten bis zum 27.10. 🙂

            Prognose3.jpg

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

              @bluebean
              Das ist ja super 🙂
              Hatte mir die API nicht noch mal angesehen, sondern nur die Webseite, wo die Dachflächen eingetragen werden und dort ist es auch auf drei Tage reduziert worden.
              Werde das heute ändern und dann die neue Version hochladen.
              Danke für die Information.

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

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

                • URL korrigiert, sodass die Prognose wieder für 7 Tage von Solcast abgerufen wird. Danke an @bluebean für den Tipp.
                smartboart 2 Replies Last reply Reply Quote 1
                • smartboart
                  smartboart @ArnoD last edited by smartboart

                  @arnod Hi Arno,
                  hab mir mal die Zeit genommen auf den neusten stand zu gehen. Bei mir lief bis eben noch E3Dc-Control mit Forecast..
                  Mal gespannt wie sie sich dein Update bei mir verhält.

                  2 Anmerkungen:

                  Fehlt hier nicht die Automatikabfrage oder habe ich es woanders übersehen?

                  // Einstellungen 1-5 je nach Überschuss PV Leistung Wetterprognose und Bewölkung anwählen 
                  async function Einstellung(UeberschussPrognoseProzent)
                  {
                      let Bedeckungsgrad12,Bedeckungsgrad15;
                      EinstellungAnwahl =  (await getStateAsync(sID_EinstellungAnwahl)).val   
                      AutomatikAnwahl = (await getStateAsync(sID_Automatik)).val;    
                      if (UeberschussPrognoseProzent== null){
                        log('-==== Überschuss PV-Leistung konnte nicht berechnet werden. Ueberschuss='+UeberschussPrognoseProzent+' ====-','error');  
                        return  
                      }
                  

                  Und die Scriptteile haben ihren eigenen trigger, weshalb der Aufruf bei Scriptstart und aktivem Shedule zu Doppelzählungen gefürt hat. Wahscheinlich hast du die deshalb zusätzlich mit clear shedule timer
                  bei scriptstart und ende stoppen wollen. denke das ist beim scriptstart nicht nötig

                  async function ScriptStart()
                  {
                      await CreateState();
                      log('-==== Jetzt sind alle States abgearbeitet Charge-Control Version 1.0.24 ====-');
                      AutomatikAnwahl = getState(sID_Automatik).val;
                      PrognoseAnwahl = getState(sID_PrognoseAnwahl).val;
                      setState(sID_Anwahl_MEZ_MESZ, dst());  
                      ZeitAnwahl_MEZ_MESZ = getState(sID_Anwahl_MEZ_MESZ).val
                      EinstellungAnwahl = getState(sID_EinstellungAnwahl).val
                      //Wh_Leistungsmesser0();                                              // Leistungsmesser PV Leistung E3DC starten
                      //Wh_Leistungsmesser1();                                              // Leistungsmesser PV Leistung zusätzliche Einspeiser starten
                      //Wh_Leistungsmesser2();                                              // Leistungsmesser Überschussleistung starten
                      // Wetterdaten beim Programmstart aktualisieren und Timer starten.
                      await Speichergroesse()                                             // aktuell verfügbare Batterie Speichergröße berechnen
                      if (Solcast) {await SheduleSolcast(SolcastDachflaechen);}           // Wetterdaten Solcast abrufen
                      await UTC_Dezimal_to_MEZ();                                         // UTC Zeiten in MEZ umrechnen
                      await MEZ_Regelzeiten();                                            // RE,RB und Ladeende berechnen
                      await Notstromreserve();                                            // Eingestellte Notstromreserve berechnen
                      await PrognosedatenAbrufen();                                       // Wetterdaten Proplanta abrufen danach wird main() augerufen
                      Start = false;
                  }   
                  

                  Und sicher der state?

                  const sID_PARAM_EP_RESERVE_W = 'e3dc-rscp.0.EP.PARAM_0.PARAM_EP_RESERVE_W'                          // Eingestellte Notstrom Reserve E3DC
                  

                  und nicht der?

                  const sID_PARAM_EP_RESERVE_W = 'e3dc-rscp.0.EP.PARAM_0.PARAM_EP_RESERVE'/*Notstrom-Reserve*/;       // Eingestellte Notstrom Reserve E3DC
                  
                  
                  A 1 Reply Last reply Reply Quote 0
                  • smartboart
                    smartboart @ArnoD last edited by smartboart

                    @arnod hi nochmal...mich würde interessieren welche poll Zeiten du beim RSCP Adapter eingestellt hast..Speziel solche die in deinem Script Verwendung finden.
                    Meine habe ich ziemlich hoch gewählt..

                    Danke... Auch für dein Scripten...

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

                      Hallo smartboart, lange nichts mehr gehört von dir 🙂

                      @smartboart sagte in E3DC Hauskraftwerk steuern:

                      Fehlt hier nicht die Automatikabfrage oder habe ich es woanders übersehen?

                      Die Automatik Anwahl Abfrage kommt weiter unten in der Funktion, da ich die Überschussberechnung auch machen, wenn auf manuell eingestellt ist. Diesen Wert kann man dann auch in anderen Scripte verwenden. Das ist eine Vorbereitung auf meine Luftwärmepumpe, die ich noch nicht habe.

                      Und die Scriptteile haben ihren eigenen trigger, weshalb der Aufruf bei Scriptstart und aktivem Shedule zu Doppelzählungen gefürt hat.

                      Da hast du recht, müsste ohne funktionieren. Mir fällt auch kein Grund ein, warum ich das hier noch mal aufrufe.🤔

                      Und sicher der state?

                      const sID_PARAM_EP_RESERVE_W = 'e3dc-rscp.0.EP.PARAM_0.PARAM_EP_RESERVE_W' // Eingestellte Notstrom Reserve E3DC
                      
                      

                      Das macht hier keinen Unterschied, der eine ist in % und der andere in W, falls ich den Wert noch woanders im Script benötige ist mir da W lieber.

                      mich würde interessieren welche poll Zeiten du beim RSCP Adapter eingestellt hast..Speziel solche die in deinem Script Verwendung finden.

                      Die was ich im Script benötige, habe ich auf S eingestellt und S auf 3 sek.

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

                        @arnod hi super ...danke für die schnelle elle Rückmeldung..

                        Ja ich war lange Zeit offline...Hatte im garten ein größeres poolprpjekt..war deswegen mit den Baumaßnahmen der selbstgebauten Steuerung und der Integration in iob mehr als ausgelastet..

                        Irgendwie sind wir gleich geschaltet..warte auch schon seit nem jahr auf meine Luft wasser wärmepumpe...wird auch wieder interessant..ebus...Integration und pvready modul..
                        Schön das du schon wieder daran arbeitest.. scheinst in allen grossen Projekten ein paar Monate vorlauf zu haben...😁

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

                          @smartboart

                          @smartboart sagte in E3DC Hauskraftwerk steuern:

                          Ja ich war lange Zeit offline...Hatte im garten ein größeres poolprpjekt..war deswegen mit den Baumaßnahmen der selbstgebauten Steuerung und der Integration in iob mehr als ausgelastet..

                          Das hört sich ja interessant an, mein Poolprojekt ist schon sechs Jahre her. Hast du Elektrolyse und automatische PH Regulierung ? Da würde es ja so viel zum Steuern geben. 🙂

                          Irgendwie sind wir gleich geschaltet..warte auch schon seit nem jahr auf meine Luft wasser wärmepumpe...wird auch wieder interessant..ebus...Integration und pvready modul..

                          Dann wirst du diese wahrscheinlich vor mir bekommen, ich habe diese erst dieses Jahr im April bestellt und muss voraussichtlich bis nächstes Jahr April auf die Lieferung noch warten. Aber freue mich schon auf das Projekt. 🙂

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

                            @arnod ja ich rechne jede Woche mit der Montage der Heizung.hab aber noch 800l Öl und nen Kaminofen also is noch keine Panik nötig...

                            Screenshot_20221022-114949_Fully Kiosk Browser.jpg
                            20220403_173932.jpg 20220724_001853.jpg 20220722_220004.jpg
                            20211222_164205.jpg IMG-20220420-WA0004.jpeg

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

                              so genug...hier gehts ja um E3DC-Charge-Control...und nicht um pools...

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

                                @smartboart
                                Das sieht ja mega aus.
                                Was ist eigentlich das hier:
                                b317e9aa-ef0b-4a69-ab2a-21aa3ddb6f69-grafik.png

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

                                  @arnod Das ist ne UV Desinfektion...Über Sinnhaftigkeit kann man aber streiten...

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

                                    @arnod said in E3DC Hauskraftwerk steuern:

                                    Da hilft nur mal das ganze zu loggen, um zu sehen, was da passiert.

                                    Ursache ist, dass der Wert -3000W gesetzt wird. Muss aber bei mir +3000W sein
                                    Daher werden dann die "Standard" 65W gesetzt
                                    Bei dem letzten Wert hatte ich über E3DC wieder auf 3000 gesetzt

                                    faa9f736-19b7-4470-b2e5-573c47b69c4d-image.png

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

                                      @tbsjah
                                      Wo kommt bei dir der Wert -3000 her.
                                      Das Script verwendet zu Einschalten der Lade/Entladeleistung e3dc-rscp.0.EMS.SYS_SPECS.maxBatChargePower
                                      um die Ladeleistung wieder auf den maximal Wert zu setzen und e3dc-rscp.0.EMS.SYS_SPECS.maxBatDischargPower um die Entladeleistung auf den maximal Wert zu setzen.
                                      Beide sind im e3dc-rscp Adapter positive Werte.

                                      Um die Lade und Entladeleistung auszuschalten, wird einfach 0 gesetzt.
                                      Verwendest du das aktuelle Script unverändert oder kopierst du manuell nur die Änderungen?

                                      Es gibt nur eine Stelle im Script ab Zeile 291, wo die Lade/Entladeleistung eingestellt wird, bitte prüf mal, ob diese bei dir so aussieht:

                                      if (Notstrom_Status == 1 || Notstrom_Status == 4 || Batterie_SOC_Proz > Notstrom_SOC_Proz || (PV_Leistung_E3DC_W > 100 && new Date() < getAstroDate("sunset")) ){
                                              // Laden/Endladen einschalten
                                              if(Akk_max_Discharge_Power_W == 0 || Akk_max_Charge_Power_W == 0){
                                                  await setStateAsync(sID_Max_Discharge_Power_W, Bat_Discharge_Limit_W)
                                                  await setStateAsync(sID_DISCHARGE_START_POWER, startDischargeDefault)
                                                  await setStateAsync(sID_Max_Charge_Power_W, maximumLadeleistung_W)
                                                  Notstrom_SOC_Proz = (await getStateAsync(sID_Notstrom_akt)).val
                                                  log('-==== Laden/Entladen der Batterie ist eingeschaltet ====-')
                                              }
                                          }else if(Batterie_SOC_Proz <= Notstrom_SOC_Proz && (new Date() > getAstroDate("sunset") || new Date() < getAstroDate("sunrise"))){
                                              // Laden/Endladen ausschalten nur wenn Notstrom SOC erreicht wurde und PV-Leistung = 0 W
                                              if((Akk_max_Discharge_Power_W != 0 || Akk_max_Charge_Power_W != 0) && Batterie_SOC_Proz !=0){
                                                  await setStateAsync(sID_DISCHARGE_START_POWER, 0)
                                                  await setStateAsync(sID_Max_Discharge_Power_W, 0)
                                                  await setStateAsync(sID_Max_Charge_Power_W, 0)
                                                  // Notstrom SOC um 1% erhöhen, da die Batterieladung nach ausschalten wieder ansteigen kann.
                                                  ++Notstrom_SOC_Proz
                                                  log('-==== Notstrom Reserve erreicht, Laden/Entladen der Batterie ist ausgeschaltet ====-')
                                              }
                                          }     
                                      

                                      Danach bitte Zeile 140 und 141 prüfen, sollte so aussehen:

                                      let maximumLadeleistung_W = getState(sID_Bat_Charge_Limit).val;                 // Maximal mögliche Batterie Ladeleistung
                                      let Bat_Discharge_Limit_W = getState(sID_Bat_Discharge_Limit).val;              // Maximal mögliche Batterie Entladeleistung
                                      
                                      
                                      

                                      und zum Schluss Zeile 46 und 47 prüfen, sollte so aussehen:

                                      const sID_Bat_Discharge_Limit = 'e3dc-rscp.0.EMS.SYS_SPECS.maxBatDischargPower'                     // Batterie Entladelimit
                                      const sID_Bat_Charge_Limit = 'e3dc-rscp.0.EMS.SYS_SPECS.maxBatChargePower'                          // Batterie Ladelimit
                                      
                                      

                                      sID_Bat_Discharge_Limit war in einer anderen Version mal ein negativer Wert, ist in der aktuellen Version ein positiver Wert. Vermute, dass du da beim Kopieren nicht alles mitkopiert hast.

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

                                        @zelkin sagte in E3DC Hauskraftwerk steuern:

                                        Idee:
                                        Ich weiß nicht mit was für einem Aufwand das verbunden ist, aber die Idee springt in meinem Hirn schon seit Ich das ding habe herum:
                                        Umstellung der Notstromreserve von einem Statischen Wert, auf einen Dynamischen:
                                        als einstellbare Größe gibt man die gewünschte Ausfallzeit an oder man lässt es auf Automatisch laufen
                                        Bei Anwahl Ausfallzeit:
                                        Perfekte Variante: Ermittlung des Grundverbrauchs in dem man den Durchschnittswert der letzten Woche bei nacht wenn der Verbrauch Konstant liegt ermittelt
                                        nicht so Perfekte Variante: man gibt den Grundverbrauch als feste Größe Vor
                                        Anhand von Sunset, bzw. PVForecast oder Proplanta oder ...... wird ermittelt ab wann wieder mit Strom zu rechnen ist oder es wird bis zur Produktion vom Dach einfach die Reserve vorgehalten
                                        Vorteil gegenüber jetzt: Bezugsgröße realistischer für einen selbst, da man z.B. 1h Notstrom vorhalten möchte, bei der Perfekten Variante wird außerdem dynamisch angepasst was für einen Grundverbrauch man hat
                                        Bei Anwahl Automatik:
                                        Anhand von Sunset, bzw. PVForecast oder Proplanta oder ...... wird ermittelt ab wann wieder mit Strom zu rechnen ist
                                        Die Differenz zwischen jetzt und diesem Zeitpunkt ergibt die Notstrom Reserve vorhalte zeit (z.B. 8h)
                                        Alle 15 oder 30 min wird der Wert neu berechnet unter Einbezug des aktuellen batteriefüllstands
                                        Anhand des Grundverbrauchs (Ermittlung siehe oben hier z.B. 500W) und der Vorhaltezeit ergibt sich z.B. um 23 UHr eine Notstromreserve von 8 * 500W= 4000W (bei einer verwendbaren Kapazität von 10kw also 40%
                                        2h Später sind es noch 6 * 500W = 3000W = 30% .........
                                        Ziel hierbei wäre, dass man Theoretisch die Gesamt Nacht abdecken kann
                                        Wenn der Tatsächliche Batterie Wert unter dem errechneten liegt wird aus dem netz entnommen bis der Wert wieder über dem Sollwert liegt

                                        Umso länger ich über deine Idee nachdenke, umso einleuchtender wird sie, gerade jetzt wo nicht immer genug Leistung vom Dach kommt. 🤔 🙂
                                        Mal schauen wie man das umsetzen kann.

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

                                          @zelkin sagte in E3DC Hauskraftwerk steuern:

                                          Aber meinst es wäre ne Idee die eigenen daten am Anfang des Skript mal in 0_userdata.0.XXXXXXX variablen zu packen??
                                          Weniger Übertragungsfehler (ja, iss nur copy&paste) und Updates / Versionswechsel gehen locker easy von der Hand

                                          Und das werde ich auch mal testen, ob es einfacher ist 😉

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

                                            @arnod @arnod ich habe nochmal ne Frage...
                                            zu diesem Bereich...
                                            Bei mir kommt es ständig zu Logausgabe Ladesteuerung gestoppt.

                                            Muss dann mit der Zahl 500 spielen oder....wo kommt die 500 her...hast du die ermittelt weil es bei dir passt?
                                            Dann gehört die in den User Konfig bereich oder...

                                                        //Prüfen ob berechnete Ladeleistung M_Power zu Netzbezug führt
                                                        if(M_Power >= 0){   
                                                            let PowerGrid = PV_Leistung_Summe_W -(Power_Home_W + M_Power)
                                                            if(PowerGrid < 500 && M_Power != maximumLadeleistung_W){// Führt zu Netzbezug, Steuerung ausschalten
                                                                M_Power = maximumLadeleistung_W
                                                                if(LogAusgabeSteuerung){log(' E3DC-Charge-Control: -==== Ladesteuerung gestoppt ====-','warn');}
                                                            }  
                                            
                                            smartboart A 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            776
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            70
                                            3276
                                            1149725
                                            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