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 last edited by

      @jans_ios
      Was mir bei dir aber auffällt, ist das bei den Energy Meter Modbus Adressen unter Energy Total (kWh) nichts übertragen wird und über die Modbus Schnittstelle aber bei mir genau der Zähler in kWh übertragen wird.
      Nach der Bedienungsanleitung von deinem Metering Device würde die Adresse 406 mit 2 Register Energy Counter n1 sein und 462 mit 2 Register 1000 x Energy Counter n1 sein.
      Nach der Logik könntest du mal versuchen unter Energy Total (kWh) die Adresse 406 einzutragen und bei Register 2.
      Aber wie gesagt nur eine Vermutung von mir ohne gewähr.

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

        @smartboart
        Das geht leider nicht, sonst hätte ich das schon gemacht.
        Die Variablen müssen deklariert sein, bevor man diese zu ersten Mal verwendet und das geht nicht, wenn ich dazu die Variable "instanz" z.B schon benötigt.

        Die Änderung mit dem Punkt hätte ich erwähnen müssen und habe ich in der Eile vergessen, sorry.

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

          @arnod Kein Problem.... War ja schnell gefixt...

          hab ich mir fast gedacht...
          müsste beim Scriptstart direkt eingelesen werden und der Rest verzögert...

          Hast Recht wäre nicht sauber...

          1 Reply Last reply Reply Quote 0
          • I
            icke-pp @ArnoD last edited by

            @arnod Ich habe seit etwa 2 Monaten eine E3DC S10 X Compact 14 (nutzbare Batteriekapazität 12,3kWh) laut Datenblatt. Firmware H20_2022_04

            Ich habe mir die Werte die du genannt hast mal angeschaut. Nächster Mist. Ich habe zwar 4 Batteriemodule (Vollausbau) drin aber es werden nur die Werte für alles gemeinsam angezeigt (nur Bat_0, DCB_0), die stimmen aber. Das hatte ich auch mit dem Entwickler des ioBroker E3DC RSCP Adapters besprochen und wir kamen zum Entschluss das die Schnittstellen bei den neuen Modellen wohl geändert aber nicht aktuell dokumentiert wurden (sein ioBroker RSCP Adapter basiert auf einer Doku aus dem Jahr 2016). Daher kann er das nicht fixen (ein anderer hat aber die gleichen Probleme mit der S10 X Compact gemeldet). Ticket bei E3DC habe ich deswegen zwar eröffnet um zu erfahren warum keine DCB_1,DCB_2,DCB_3 im RSCP Report vorhanden ist aber bislang keine Reaktion.

            Bildschirmfoto 2022-11-03 um 09.51.01.png
            Bildschirmfoto 2022-11-03 um 10.01.53.png
            Bildschirmfoto 2022-11-03 um 09.52.05.png

            Ich habe daher im Skript die Werte an den 3 Stellen im Skript mal angepasst aber da stimmt die Berechnung irgendwie nicht mehr (keine Fehlermeldung).
            Bildschirmfoto 2022-11-03 um 10.16.13.png

            " Ueberschuss in kWh 0 = (Prognose kWh 7.191398208411604 - Berechneter Eigenverbrauch 13.512820512820513) - FreieKapBatterie_kWh 10.12"}##

            E3DC_error_nachBatKorrektur.txt

            Sorry. Da brauche ich doch deine Hilfe.

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

              @arnod
              Das werde ich mir demnächst mal genauer anschauen, danke. Gerade musste ich aber Deine Skripte deaktivieren - habe bei E3DC eine Speichererweiterung angefragt und die wollen ein Training etc. auslösen zur Durchmessung meiner bestehenden Batterien. Da möchte ich nicht reinpfuschen 😉 Drückt mal die Daumen, dass ich hochrüsten kann!

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

                @icke-pp sagte in E3DC Hauskraftwerk steuern:

                @arnod Ich habe seit etwa 2 Monaten eine E3DC S10 X Compact 14 (nutzbare Batteriekapazität 12,3kWh) laut Datenblatt. Firmware H20_2022_04

                Ich habe mir die Werte die du genannt hast mal angeschaut. Nächster Mist. Ich habe zwar 4 Batteriemodule (Vollausbau) drin aber es werden nur die Werte für alles gemeinsam angezeigt (nur Bat_0, DCB_0), die stimmen aber. Das hatte ich auch mit dem Entwickler des ioBroker E3DC RSCP Adapters besprochen und wir kamen zum Entschluss das die Schnittstellen bei den neuen Modellen wohl geändert aber nicht aktuell dokumentiert wurden (sein ioBroker RSCP Adapter basiert auf einer Doku aus dem Jahr 2016). Daher kann er das nicht fixen (ein anderer hat aber die gleichen Probleme mit der S10 X Compact gemeldet). Ticket bei E3DC habe ich deswegen zwar eröffnet um zu erfahren warum keine DCB_1,DCB_2,DCB_3 im RSCP Report vorhanden ist aber bislang keine Reaktion.

                Das ist natürlich nicht gut, wenn da E3DC komplett abweicht und keine neue Dokumentation bereitstellt.
                Es wäre gut da ein Ticket aufzugeben, dass die Dokumentation der TAG Liste aktualisiert und die einzelnen Tags dokumentiert werden. Ich habe bereits eins eröffnet und um so mehr das machen desto größer der Druck und Uli würde eine neue Liste helfen seinen Adapter besser anzupassen.

                Die Speichergröße wird in der function Speichergroesse() ab Zeile 980 im Skript berechnet.
                Als workaround würde ich die Speichergröße einfach direkt eintragen ohne Berechnung und Abzug vom ASOC der Batterie, dann musst du das auch nur an einer Stelle ändern. Vermute der Wert ASOC stimmt bei dir dann auch nicht.
                Das sollte dann so aussehen:

                // Verfügbare Speichergröße berechnen
                async function Speichergroesse()
                {
                    //let Kapa_Bat_Wh = (await getStateAsync(sID_installed_Battery_Capacity)).val;
                    //let ASOC_Bat_Pro = (await getStateAsync(sID_BAT0_Alterungszustand)).val;
                    // E3DC verwendet ca. 10% der Batteriekapazität um sicherzustellen das diese nie ganz entladen wird.
                    //Kapa_Bat_Wh = Kapa_Bat_Wh * (Entladetiefe_Pro/100);
                    //Speichergroesse_kWh = round(((Kapa_Bat_Wh/100)*ASOC_Bat_Pro)/1000,0);
                    Speichergroesse_kWh = 12.3;
                    log(`${Logparser1}Speichergroesse_kWh=${Speichergroesse_kWh} ${Logparser2}`)
                
                }
                

                Die Gefahr bei dir ist das noch mehr von E3DC geändert wurde und eine Regelung der Ladeleistung über den e3dc-rscp Adapter auch nicht möglich ist oder nicht so funktioniert wie bei allen anderen.
                Aber das kannst du ja dann mal testen.

                I 1 Reply Last reply Reply Quote 0
                • I
                  icke-pp @ArnoD last edited by

                  @arnod Ich werde dann mal alle Variablen einzeln durchgehen ob dort sinnvolle Werte drin stehen. Der ASoC Wert ist auf jeden Fall sauber drin. Dann mach ich mich mal auf die Reise. Das wird dann aber wahrscheinlich alle neuen E3DC Modelle treffen mit solchen Abweichungen.

                  1 Reply Last reply Reply Quote 0
                  • I
                    icke-pp @ArnoD last edited by

                    @arnod Ich habe dein Skript jetzt noch einmal durchgeschaut damit ich mir ein Bild darüber machen kann wie es genau funktioniert und welche Werte ich für die Berechnung brauche. Ich gehe gerade meine Werte im einzelnen durch damit ich weiß ob ich dein Skript weiterhin nutzen kann. Bis jetzt sieht das gut aus auch mit der neuen Generation der E3DC.
                    Dabei ist mir im Skript in Zeile 1695 aufgefallen das der Wert bei "Timer3" keinen Sinn ergibt da du den Zähler LM2 triggerst. Kann es sein das du dich hier vertan hast und da eigentlich if(!Timer2) ... stehen müsste?

                    // Zaehler LM2
                    on({id: sID_Saved_Power_W, valGt: 0}, function (obj) {
                    if(!Timer3)Wh_Leistungsmesser2();
                    count2 ++
                    Summe2 = Summe2 + obj.state.val;
                    });

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

                      @icke-pp sagte in E3DC Hauskraftwerk steuern:

                      @arnod Ich habe dein Skript jetzt noch einmal durchgeschaut damit ich mir ein Bild darüber machen kann wie es genau funktioniert und welche Werte ich für die Berechnung brauche. Ich gehe gerade meine Werte im einzelnen durch damit ich weiß ob ich dein Skript weiterhin nutzen kann. Bis jetzt sieht das gut aus auch mit der neuen Generation der E3DC.
                      Dabei ist mir im Skript in Zeile 1695 aufgefallen das der Wert bei "Timer3" keinen Sinn ergibt da du den Zähler LM2 triggerst. Kann es sein das du dich hier vertan hast und da eigentlich if(!Timer2) ... stehen müsste?

                      // Zaehler LM2
                      on({id: sID_Saved_Power_W, valGt: 0}, function (obj) {
                      if(!Timer3)Wh_Leistungsmesser2();
                      count2 ++
                      Summe2 = Summe2 + obj.state.val;
                      });

                      Ja, das habe ich bei der letzten Änderung anscheinend übersehen. Danke, werde ich gleich ändern.

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

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

                        • Neue Funktion Notstromreserve verwenden, wenn die Prognose am nächsten Tag über einem einstellbaren Wert liegt. Es wurden zwei neue User und zwei allgemein Parameter erstellt, 10_NotstromEntladen, 10_minWertPrognose_kWh, EigenverbrauchAbend_kWh,EigenverbrauchDurchschnitt_kWh. Mit 10_NotstromEntladen = true wird die Funktion aktiviert und mit 10_minWertPrognose_kWh kann festgelegt werden, ab welcher Prognose in kWh am nächsten Tag die Notstromreserve freigegeben wird. EigenverbrauchAbend_kWh summiert den Eigenverbrauch von 0:00 Uhr bis 8:00 Uhr und unter EigenverbrauchDurchschnitt_kWh wird der berechnete Durchschnittsverbrauch von diesem Zeitraum gespeichert. Wenn der Notstrom SOC erreicht ist und 10_NotstromEntladen= true und die Prognose am nächsten Tag über dem eingestellten Wert in 10_minWertPrognose_kWh liegt, wird anhand vom Durchschnittsverbrauch berechnet, wie lange der Notstrom SOC den Eigenverbrauch abdecken kann. Ab dem Zeitpunkt, wo die Notstromreserve bis zum Sonnenaufgang reicht, wird das Entladen der Batterie freigegeben. Bitte beachten, wenn die Prognose nicht stimmt, kann es vorkommen, dass bei Stromausfall eventuell keine Notstromreserve mehr vorhanden ist. Danke an @zelkin für diese Idee.

                        • Fehler behoben, dass der falsche Timer verwendet wurde. Danke an @icke-pp

                        • LOG Texte optimiert, wenn das Script regelt, werden jetzt Warnungen ausgegeben, um das besser unterscheiden zu können. Natürlich, nur wenn 10_LogAusgabeRegelung = true ist

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

                          Hat eigentlich heute noch jemand das Problem, dass sich das Hauskraftwerk nicht mit dem E3DC Server verbinden kann? (rote Weltkugel in der Anzeige)

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

                            @arnod Ja bei mir das gleiche, auch die App geht sporadisch nicht.

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

                              @stiwy18
                              Ok, Danke.
                              Dann muss ich erstmal keinen Fehler bei mir suchen. 🙂

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

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

                                • Fehler, dass Timer3 um 8:00 nicht beendet wurde behoben.
                                • Zeitpunkt, wie lange die Notstromreserve reichen muss, um 1 Stunde nach Sonnenaufgang verschoben, da bei Sonnenaufgang noch keine ausreichende PV-Leistung vorhanden ist.
                                G smartboart A 3 Replies Last reply Reply Quote 0
                                • G
                                  goelectric @ArnoD last edited by

                                  @arnod
                                  Hallo ArnoD,

                                  ich habe lange Zeit nichts mehr an meiner E3DC-Steuerung gemacht. Dein Script, auch wenn es älter war lief einfach gut. Aber jeder kennt es: verändere nichts wenn es läuft 😉
                                  Ich habe gerade meine Anlage auf den neusten Stand gebracht! Im Charge-Control script erhalte ich ein Fehlermeldung: "Die Objekt-ID ....USER_ANPASSUNGEN.0_LogHistoryPath enthält keinen gültigen Wert". Welche Pfadbeschreibung zu welchem Objekt muss hier eingetragen werden? Ich stehe auf dem Schlauch.
                                  Noch eine kleine Bitte/Frage: Ist es möglich das Wallbox-Script so umzuschrieben, dass auch gleichzeitig zwei Wallboxen betrieben werden können?

                                  Viele Grüße
                                  Lothar

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

                                    @goelectric sagte in E3DC Hauskraftwerk steuern:

                                    Ich habe gerade meine Anlage auf den neusten Stand gebracht! Im Charge-Control script erhalte ich ein Fehlermeldung: "Die Objekt-ID ....USER_ANPASSUNGEN.0_LogHistoryPath enthält keinen gültigen Wert". Welche Pfadbeschreibung zu welchem Objekt muss hier eingetragen werden? Ich stehe auf dem Schlauch.

                                    Dort muss Pfad zur Sicherungsdatei für die History Daten eingetragen werden, z. B. :
                                    /home/iobroker/HistoryPV_Leistung.json

                                    Wichtig ist das der User iobroker Lese und Schreibrechte auf dieses Verzeichnis hat.

                                    Noch eine kleine Bitte/Frage: Ist es möglich das Wallbox-Script so umzuschrieben, dass auch gleichzeitig zwei Wallboxen betrieben werden können?

                                    Da ich nur eine Wallbox habe, kann ich das nicht testen und es ist somit schwierig was zu programmieren.
                                    Vielleicht findet sich aber jemand, mit zwei Wallboxen und Zeit und Lust der das Programmiert. 😉

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

                                      @arnod Danke!
                                      Mit der richtige Path-Antragung funktioniert es auch 😉
                                      Mit der Steuerung der zweiten Wallbox muss einmal versuchen eine Lösung zu finden.

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

                                        Zweiter Versuch, die Einstellung der Regelzeiten zu vereinfachen 🙂

                                        Was haltet ihr von diesem Vorschlag:
                                        Es wird die Astro Funktion verwendet, um die Uhrzeit vom höchsten Stand der Sonne zu ermitteln (solarNoon).
                                        Da das nur bei Südausrichtung auch der Zeitpunkt der höchsten Solarleistung ist, kann mit einem Offset_solarNoon dieser Zeitpunkt +- x min. verschoben werden. Mit einem Offset_RB kann der Start Regelzeitraum vom Zeitpunkt solarNoon minus x min. verschoben werden und mit dem Offset_RE der Zeitpunkt ende Regelzeitraum plus x min.
                                        Über die Astro Funktion wird mit sunset die Uhrzeit Sonnenuntergang ermittelt und mit dem Offset_LE kann das Ladeende minus x min. verschoben werden.

                                        Man würde somit keine Uhrzeiten eingeben, sondern vier Offset Werte, mit denen man die Regelzeiten einstellen kann und es würde einem dann die aktuelle Uhrzeit von RB, RE und LE angezeigt werden.
                                        Hier mal zwei Bilder Sommer/Winter ohne Änderung der Offset Werte, das es eventuell verständlicher macht:
                                        398570fb-81a0-4eea-9d66-be5f84b17aa7-grafik.png
                                        89329af2-e235-4b1d-bbe3-829cb7437618-grafik.png

                                        Wäre das für euch einfacher einzustellen oder soll alles beim alten bleiben mit den dynamischen Zeiten?

                                        Bei den dynamischen Zeiten, habe ich für mich festgestellt, dass diese nicht einfach übers Jahr einzustellen sind.
                                        Wenn diese Zeiten im Sommer passen, müssen diese im Winter bei mir noch mal korrigiert werden, da Regelbeginn und Regelende nicht weit genug auseinander liegen.

                                        Hier zwei Bilder mit der jetzigen Zeiteinstellung Sommer/Winter ohne Anpassung der Zeiten:
                                        a79201c1-7942-40b5-b93e-806916bc49f3-grafik.png
                                        9a770ee3-7a9b-4c90-a2b8-1344491e1c1a-grafik.png

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

                                          @arnod said in E3DC Hauskraftwerk steuern:

                                          Man würde somit keine Uhrzeiten eingeben, sondern vier Offset Werte, mit denen man die Regelzeiten einstellen kann und es würde einem dann die aktuelle Uhrzeit von RB, RE und LE angezeigt werden.

                                          Sind die Zeiten für RB, RE und LE dann nur noch fix von der Astro Funktion solarNoon, sunset und den entsprechend eingestellten offset Werten abhängig?
                                          Müssen die offset-Werte dann nicht auch dynamisch gestaltet sein um sich den unterschiedlichen Tageslängen anzupassen?

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

                                            @chrischros
                                            Da kann ich jetzt nur für mich sprechen, bei mir würde ich nichts anpassen müssen.
                                            Aber ja, das könnte man natürlich auch machen, wenn erforderlich, dass sich die offset Werte über das Jahr anpassen.
                                            Es wäre halt interessant, ob das bei einer West, oder Ost Ausrichtung auch noch funktioniert.

                                            bluebean 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            519
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            70
                                            3314
                                            1212599
                                            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