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.
    • C
      ChrisChros @ArnoD last edited by ChrisChros

      @arnod So gestern war alles gut und heute schon wieder viel zu viel gezählt worden.
      Ich habe keine Änderungen zu gestern vorgenommen, der Raspberry oder das Skript wurden nicht neu gestartet.
      Ich lasse jetzt das Objekt "0_userdata.0.E3DC-Control.Allgemein.IstPvErtragLM0_kWh" in die History schreiben, eventuell kann man das was erkennen.

      Skript: 127,50 kWh
      E3DC: 62,71 kWh

      Durch das zu viel zählen stellt das Skript automatisch auf Einstellung 1 um wodurch natürlich der Akku auf 100% SOC geladen wird, was er ja eigentlich nicht sollte.

      UPDATE:
      17:03 = 126,57 kWh
      17:33 = 132,16 kWh

      also irgendwie wird da falsch gezählt. Kann mir nicht vorstellen das ich mit meiner 16,16 kWp Anlage am späten Nachmittag innerhalb einer halben Stunde 5,5 kWh produziere.

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

        @chrischros
        Welche Version hast du bei dir am Laufen?

        Ist bei dir am Ende vom Skript bereits diese Funktion vorhanden?

        //Bei Scriptende alle Timer löschen
        onStop(function () { 
                clearSchedule(Timer0);
                clearSchedule(Timer1);
                clearSchedule(Timer2);
        }, 100);
        
        

        Prüf mal bitte ob der State 0_userdata.0.E3DC-Control.Allgemein.IstPvErtragLM0_kWh wirklich nur jede Minute aktualisiert wird.
        Wenn das häufiger passiert, stimmt bei dir was mit dem Timer nicht.

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

          @arnod habe das Skript in der version 4.2.0 am laufen und darin ist die oben genannte Funktion schon enthalten.
          Laut den History-Daten wir jede Minute 2 mal Werte geschrieben.
          Bildschirmfoto 2022-07-25 um 19.23.24.png

          Welche Admin Version hast du am laufen?

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

            @chrischros
            Dann wurde der Timer0 zweimal gestartet.
            Stoppe mal das Skript und warte eine Minute, bevor du es wieder startest.
            Dann prüfe wieder, ob der State jede Minute aktualisiert wird.

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

              @ChrisChros
              Admin 6.2.4

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

                @arnod nach dem Neustart des Skripts wird nur noch einmal pro Minute ein Wert geschrieben.

                Von der Admin-Version sind wir schon mal identisch, daran sollte es nicht liegen.

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

                  @chrischros
                  Das Problem sind die Timer, die nicht sauber bei Skript Abbruch beendet werden.
                  Dachte eigentlich das Problem gelöst zu haben mit der letzten Änderung, ist aber anscheinend nicht so.
                  Wenn man etwas wartet, bevor das Script wieder gestartet wird, werden auch die Timer beendet, warum das aber so ist konnte ich noch nicht herausfinden.

                  Eventuell hilf beim Skript Start noch mal mit clearSchedule(Timer0); die Timer zu beenden, falls das beim Beenden vom Skript nicht funktioniert hat.

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

                    @arnod ich lass mal das Objekt weiter in die History schreiben, eventuell kann ich dann nachvollziehen wann der Timer wieder falsch läuft.

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

                      Habe eine neue Version Charge-Control auf GitHub hochgeladen.
                      Version: 1.0.8
                      Änderungen:
                      Wenn die Notstromreserve erreicht ist, wird auch DISCHARGE_START_POWER, MAX_CHARGE_POWER und MAX_DISCHARGE_POWER auf 0 gesetzt, damit der WR in den Standby-Modus wechselt und die Batterie nicht weiter entladen wird.
                      Aktualisierung des State SET_POWER_VALUE auf 5 sek. reduziert und kleinere Fehler behoben.

                      Habe das 8 Stunden getestet, ohne das sich die Batterie weiter entladen hat, müsste somit funktionieren.

                      58160a22-4d4d-426b-be1c-acb46bbfcc38-grafik.png

                      stiwy18 A 2 Replies Last reply Reply Quote 1
                      • A
                        ArnoD last edited by

                        @chrischros

                        Versuch mal diesen code vor den Funktion Bereich im Script einzufügen, sodass dieser beim Start vom Script durchlaufen wird:

                        const list = getSchedules(false);
                        list.forEach(schedule => log('-==== Schedule war noch aktiv und wurde beendet ===-'+JSON.stringify(schedule),'warn'));
                        list.forEach(schedule => clearSchedule(schedule));
                        

                        Sollte beim Start vom Script ein Timer noch aktiv sein, wird eine Warnmeldung im LOG ausgegeben und der Timer beendet.
                        Wenn es funktioniert, kannst du folgende Zeile

                        list.forEach(schedule => log('-==== Schedule war noch aktiv und wurde beendet ===-'+JSON.stringify(schedule),'warn'));
                        

                        wieder löschen, wenn die Warnmeldung im LOG nicht angezeigt werden soll.

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

                          @arnod
                          Und schon wieder etwas megaschnell eingebaut. Vielen Dank!

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

                            @arnod wäre das so richtig?

                            //***************************************************************************************************
                            //**************************************** Function Bereich *****************************************
                            //***************************************************************************************************
                            
                            const list = getSchedules(false);
                            list.forEach(schedule => log('-==== Schedule war noch aktiv und wurde beendet ===-'+JSON.stringify(schedule),'warn'));
                            list.forEach(schedule => clearSchedule(schedule));
                            
                            async function main()
                            {
                                //Prognosen in kWh umrechen
                                await Prognosen_Berechnen();
                                // Diagramm aktualisieren
                                await makeJson();
                                // Einstellungen 1-5 je nach Überschuss PV Leistung Wetterprognose und Bewölkung anwählen 
                                Einstellung(await Ueberschuss_Prozent());
                            
                            }
                            
                            1 Reply Last reply Reply Quote 0
                            • A
                              ArnoD last edited by

                              @chrischros
                              Ja, ist so in Ordnung.

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

                                @arnod
                                Bin echt begeistert 👏
                                Das Script läuft super .... echt erstaunlich, dass man sowas nicht annähernd innerhalb des E3DC Systems bekommt

                                Weil ihr es grad von den Leistungsmessern habt, bei mir im modbus wird der Leistungsmesser_6 L1 bis L3 verwendet, nicht 0!
                                Muss Ich hier im Script noch was anpassen bzw. wenn sich das je nach Installation ändert, kannst du hierfür ne Variable einbauen?

                                Derzeit verwende Ich 1.0.7

                                Ein seltsames Verhalten ist mir noch in Bezug auf den Effizienzwert aufgefallen!
                                Den hab Ich mitte Monat geändert
                                Das script scheint aber immer wieder den alten wert herangezogen zu haben:
                                Screenshot 2022-07-28 071046.jpg

                                anders kann Ich mir die Proplanta Prognose sonst nicht erklären!

                                Im Moment scheint er sich eingependelt zu haben, mich wundert hierbei nur das hin und her.
                                Es hat sich auch so verhalten, dass beim Neustart des scripts die in Zukunft liegenden Tage korrekt angezeigt wurden (z.B. um den 20. rum) und irgendwann wieder nach oben gesprungen sind

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

                                  @zelkin sagte in E3DC Hauskraftwerk steuern:

                                  Weil ihr es grad von den Leistungsmessern habt, bei mir im modbus wird der Leistungsmesser_6 L1 bis L3 verwendet, nicht 0!
                                  Muss Ich hier im Script noch was anpassen bzw. wenn sich das je nach Installation ändert, kannst du hierfür ne Variable einbauen?

                                  Nein, du musst nichts ändern.
                                  Das Script verwendet die ID modbus.0.holdingRegisters.40068_PV_Leistung und modbus.0.holdingRegisters.40076_Zusaetzliche_Einspeiser_Leistung, um die PV-Leistung zu berechnen.

                                  Ein seltsames Verhalten ist mir noch in Bezug auf den Effizienzwert aufgefallen!
                                  Den hab Ich mitte Monat geändert

                                  Welchen Wert meinst du da? Die Einstellung, mit welcher Prognose gerechnet werden soll?

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

                                    @zelkin

                                    In deiner View fehlt die Object ID zu den State, für welche Tage die Prognose Proplante abgerufen wurde:
                                    5b83aef4-6759-4898-8939-febc6798aac3-grafik.png

                                    Sollte so aussehen:
                                    e371fdb6-3999-49d0-a65c-2dae19df3c39-grafik.png

                                    Die Object ID ist 0_userdata.0.Charge_Control.Proplanta.Datum_Tag_0 bis 3

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

                                      @arnod

                                      Prognose ist nachgetragen ... die "null" sind mir noch gar nicht aufgefallen 🙃

                                      Es ging um den effizienzwert der Paneele

                                      const nWirkungsgradModule = 21.1;                 // Wirkungsgrad / Effizienzgrad der Solarmodule in % bezogen auf die Globalstrahlung (aktuelle Module haben max. 24 %)
                                      

                                      Den hatte Ich anfangs Fälschlicherweise auf 98% weil Ich den Wert Falsch verstanden hatte

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

                                        @zelkin
                                        Wenn der Wert jetzt richtig eingetragen ist, wird auch nur dieser verwendet, da der Alte nirgends gespeichert ist.
                                        Was steht den im LOG für einen Prognosewert Proplanta ?

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

                                          @arnod
                                          in welchem log sollte Ich das jetzt checken??

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

                                            @zelkin
                                            Im LOG iobroker vom 24 und 25.07.2022, dort sollte folgende Ausgabe auftauchen:

                                            2022-07-28 02:10:00.187 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: ******************* Es wird die Globalstrahlung von Proplanta abgerufen *******************
                                            2022-07-28 02:10:01.069 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Rueckmeldung InterrogateProplanta XHR.Status= 200
                                            2022-07-28 02:10:01.343 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Näste Aktualisierung Wetterdaten =10:00 Uhr
                                            2022-07-28 02:10:01.406 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Prognose Solcast in kWh = 93.71
                                            2022-07-28 02:10:01.407 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Prognose Solcast 90 Perzentil in kWh = 96
                                            2022-07-28 02:10:01.407 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Prognose Proplanta in kWh = 97.236
                                            2022-07-28 02:10:01.407 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Prognose_kWh nach Abzug Korrekturfaktor = 93.71
                                            2022-07-28 02:10:01.407 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Bereits produzierte PV-Leistung = 0
                                            2022-07-28 02:10:01.464 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Prognose_kWh_heute für Berechnung = 93.71
                                            2022-07-28 02:10:04.997 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: BatterieProzent(wert)=47.89999999999999
                                            2022-07-28 02:10:04.997 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Eigenverbrauch Tag = 27
                                            2022-07-28 02:10:04.997 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: AktSpeicherSoC in % = 43
                                            2022-07-28 02:10:04.998 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Ueberschuss in kWh 47.89999999999999 = (Prognose kWh 93.71 - Berechneter Eigenverbrauch 27) - FreieKapBatterie_kWh 18.81
                                            2022-07-28 02:10:04.998 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Ueberschuss in Prozent = 100
                                            2022-07-28 02:10:05.044 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Bewölkungsgrad 12 Uhr Proplanta 12.5
                                            2022-07-28 02:10:05.045 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Bewölkungsgrad 15 Uhr Proplanta 12.5
                                            2022-07-28 02:10:05.045 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Einstellung 2 aktiv EinstellungAnwahl=1
                                            2022-07-28 02:10:05.500 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: RB UTC = 8:19
                                            2022-07-28 02:10:05.501 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: RE UTC = 13:5
                                            2022-07-28 02:10:05.501 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: LE UTC = 15:41
                                            2022-07-28 02:10:05.501 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Trigger manuelle Programmvorwahl
                                            2022-07-28 02:10:05.620 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Prognose Solcast in kWh = 93.71
                                            2022-07-28 02:10:05.621 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Prognose Solcast 90 Perzentil in kWh = 96
                                            2022-07-28 02:10:05.621 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Prognose Proplanta in kWh = 97.236
                                            2022-07-28 02:10:05.621 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Prognose_kWh nach Abzug Korrekturfaktor = 93.71
                                            2022-07-28 02:10:05.621 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Bereits produzierte PV-Leistung = 0
                                            2022-07-28 02:10:05.683 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Prognose_kWh_heute für Berechnung = 93.71
                                            2022-07-28 02:10:06.264 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: BatterieProzent(wert)=47.89999999999999
                                            2022-07-28 02:10:06.264 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Eigenverbrauch Tag = 27
                                            2022-07-28 02:10:06.264 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: AktSpeicherSoC in % = 43
                                            2022-07-28 02:10:06.264 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Ueberschuss in kWh 47.89999999999999 = (Prognose kWh 93.71 - Berechneter Eigenverbrauch 27) - FreieKapBatterie_kWh 18.81
                                            2022-07-28 02:10:06.264 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Ueberschuss in Prozent = 100
                                            2022-07-28 02:10:06.318 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Bewölkungsgrad 12 Uhr Proplanta 12.5
                                            2022-07-28 02:10:06.318 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Bewölkungsgrad 15 Uhr Proplanta 12.5
                                            2022-07-28 02:10:06.318 - info: javascript.1 (27664) script.js.Charge-Control.Charge_Control: Einstellung 2 aktiv EinstellungAnwahl=2
                                            
                                            Z 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            698
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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