Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. E3DC Hauskraftwerk steuern

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

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

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

E3DC Hauskraftwerk steuern

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

    Sourceanalytix ist natürlich kein genauer Zähler, kommt aber ungefähr so hin.
    Für die Umsatzsteuervoranmeldung lese ich meine Zähler mit der Homematic Zählersensor-Sendeeinheit HM-ES-TX-WM direkt aus und speichere die Werte jedes Monat.
    Das sieht dann so aus:
    r.jpg

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

    @ArnoD sagte in E3DC Hauskraftwerk steuern:

    Das sieht dann so aus:
    r.jpg

    Hey Arno, muss darauf nochmal zurück...
    meinste hier findet sich jemand, der daraus bzw. aus deinem script ne schöne HTML Tabelle bastelt und vlt. noch ne Textdatei welche auf nem Nass abgelegt wird? Wollen wir hier mal einen neuen Threat aufmachen? Ist dein Script, deshalb will ich das nicht machen.

    A 1 Antwort Letzte Antwort
    0
    • S Offline
      S Offline
      stevie77
      schrieb am zuletzt editiert von
      #200

      @ArnoD Hätte mal ne Verständnisfrage: Macht es Sinn den Parameter unload so sehr auszureizen? Bei mir war das heute so extrem, dass Parameter unload = 0 berechnet wurde:

      66228cd1-8f2e-46a4-81c0-64682943ecf5-image.png

      Bin allerdings kein Freund davon so knapp auf Risiko zu fahren. Da hätte nur ne größere Wolke und ein noch höherer Verbrauch passieren müssen, als der SoC ganz unten war und ich hätte ohne Not Strombezug gehabt.
      Davon abgesehen wurde die Ladekurve dadurch unnötig steil (Batteriestress) und bis auf 0% SoC zu entladen ist auch schädlich für die Batterie. Das führt den Gedanken von E3DC-Control ad absurdum...

      Vorschlag/Idee: Könntest du einen weiteren Parameter einführen, mit dem man den Mindest-SoC/unload-Wert fest vorgeben kann? Also dass der berechnete unload-Wert auf mind. diesen Parameterwert gesetzt wird, selbst wenn ein niedrigerer unload-Wert berechnet wurde. Ich würde z.B. gerne nie unter unload = 50 gehen wollen...

      A 1 Antwort Letzte Antwort
      0
      • smartboartS smartboart

        @ArnoD sagte in E3DC Hauskraftwerk steuern:

        Das sieht dann so aus:
        r.jpg

        Hey Arno, muss darauf nochmal zurück...
        meinste hier findet sich jemand, der daraus bzw. aus deinem script ne schöne HTML Tabelle bastelt und vlt. noch ne Textdatei welche auf nem Nass abgelegt wird? Wollen wir hier mal einen neuen Threat aufmachen? Ist dein Script, deshalb will ich das nicht machen.

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

        @smartboart sagte in E3DC Hauskraftwerk steuern:

        @ArnoD sagte in E3DC Hauskraftwerk steuern:

        Das sieht dann so aus:
        r.jpg

        Hey Arno, muss darauf nochmal zurück...
        meinste hier findet sich jemand, der daraus bzw. aus deinem script ne schöne HTML Tabelle bastelt und vlt. noch ne Textdatei welche auf nem Nass abgelegt wird? Wollen wir hier mal einen neuen Threat aufmachen? Ist dein Script, deshalb will ich das nicht machen.

        Ist kein Problem, kannst du gerne machen.
        Ich brauche die Seite nur für das Finanzamt, habe mich deswegen nicht weiter darum gekümmert.
        Wenn jemand eine ansprechende HTML Seite daraus machen kann, würde ich mich freuen :-)

        smartboartS 1 Antwort Letzte Antwort
        0
        • S stevie77

          @ArnoD Hätte mal ne Verständnisfrage: Macht es Sinn den Parameter unload so sehr auszureizen? Bei mir war das heute so extrem, dass Parameter unload = 0 berechnet wurde:

          66228cd1-8f2e-46a4-81c0-64682943ecf5-image.png

          Bin allerdings kein Freund davon so knapp auf Risiko zu fahren. Da hätte nur ne größere Wolke und ein noch höherer Verbrauch passieren müssen, als der SoC ganz unten war und ich hätte ohne Not Strombezug gehabt.
          Davon abgesehen wurde die Ladekurve dadurch unnötig steil (Batteriestress) und bis auf 0% SoC zu entladen ist auch schädlich für die Batterie. Das führt den Gedanken von E3DC-Control ad absurdum...

          Vorschlag/Idee: Könntest du einen weiteren Parameter einführen, mit dem man den Mindest-SoC/unload-Wert fest vorgeben kann? Also dass der berechnete unload-Wert auf mind. diesen Parameterwert gesetzt wird, selbst wenn ein niedrigerer unload-Wert berechnet wurde. Ich würde z.B. gerne nie unter unload = 50 gehen wollen...

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

          @stevie77 sagte in E3DC Hauskraftwerk steuern:

          @ArnoD Hätte mal ne Verständnisfrage: Macht es Sinn den Parameter unload so sehr auszureizen? Bei mir war das heute so extrem, dass Parameter unload = 0 berechnet wurde:

          Vorschlag/Idee: Könntest du einen weiteren Parameter einführen, mit dem man den Mindest-SoC/unload-Wert fest vorgeben kann? Also dass der berechnete unload-Wert auf mind. diesen Parameterwert gesetzt wird, selbst wenn ein niedrigerer unload-Wert berechnet wurde. Ich würde z.B. gerne nie unter unload = 50 gehen wollen...

          Der berechnete Unload Wert wird im Script nicht verwendet.
          Ich lassen ihn mir im LOG nur anzeigen um zu sehen was passieren würde, wenn ich Unload automatisch einstellen lasse.
          In Zeile 327 wird er bereits auf min. 50% begrenzt wenn der berechnete Wert unter 50% ist, mehr zu entladen macht keinen Sinn.
          Im LOG angezeigt wird aber immer der berechnete Wert ohne Begrenzung.
          Wenn du das Entladen des Speichers automatisieren willst, müsstest du in Zeile 345
          sUnload[2] = UnloadSoC;
          eintragen.
          Ich habe für mich festgestellt, dass es ausreicht, das Laden am Morgen bis zum Start der Regelung von E3DC-Control zu verhindern.
          Das mache ich indem ich den aktuellen Speicher SoC auslese und den als Unload Wert verwende.
          Deswegen steht in der Zeile 345: sUnload[2] = AktSpeicherSoC;

          S 2 Antworten Letzte Antwort
          0
          • A ArnoD

            @stevie77 sagte in E3DC Hauskraftwerk steuern:

            @ArnoD Hätte mal ne Verständnisfrage: Macht es Sinn den Parameter unload so sehr auszureizen? Bei mir war das heute so extrem, dass Parameter unload = 0 berechnet wurde:

            Vorschlag/Idee: Könntest du einen weiteren Parameter einführen, mit dem man den Mindest-SoC/unload-Wert fest vorgeben kann? Also dass der berechnete unload-Wert auf mind. diesen Parameterwert gesetzt wird, selbst wenn ein niedrigerer unload-Wert berechnet wurde. Ich würde z.B. gerne nie unter unload = 50 gehen wollen...

            Der berechnete Unload Wert wird im Script nicht verwendet.
            Ich lassen ihn mir im LOG nur anzeigen um zu sehen was passieren würde, wenn ich Unload automatisch einstellen lasse.
            In Zeile 327 wird er bereits auf min. 50% begrenzt wenn der berechnete Wert unter 50% ist, mehr zu entladen macht keinen Sinn.
            Im LOG angezeigt wird aber immer der berechnete Wert ohne Begrenzung.
            Wenn du das Entladen des Speichers automatisieren willst, müsstest du in Zeile 345
            sUnload[2] = UnloadSoC;
            eintragen.
            Ich habe für mich festgestellt, dass es ausreicht, das Laden am Morgen bis zum Start der Regelung von E3DC-Control zu verhindern.
            Das mache ich indem ich den aktuellen Speicher SoC auslese und den als Unload Wert verwende.
            Deswegen steht in der Zeile 345: sUnload[2] = AktSpeicherSoC;

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

            @ArnoD Missverständnis meinerseits...löschen des Beitrags nicht möglich mit meiner Berechtigung, sagt das Forum.

            1 Antwort Letzte Antwort
            0
            • A ArnoD

              @stevie77 sagte in E3DC Hauskraftwerk steuern:

              @ArnoD Hätte mal ne Verständnisfrage: Macht es Sinn den Parameter unload so sehr auszureizen? Bei mir war das heute so extrem, dass Parameter unload = 0 berechnet wurde:

              Vorschlag/Idee: Könntest du einen weiteren Parameter einführen, mit dem man den Mindest-SoC/unload-Wert fest vorgeben kann? Also dass der berechnete unload-Wert auf mind. diesen Parameterwert gesetzt wird, selbst wenn ein niedrigerer unload-Wert berechnet wurde. Ich würde z.B. gerne nie unter unload = 50 gehen wollen...

              Der berechnete Unload Wert wird im Script nicht verwendet.
              Ich lassen ihn mir im LOG nur anzeigen um zu sehen was passieren würde, wenn ich Unload automatisch einstellen lasse.
              In Zeile 327 wird er bereits auf min. 50% begrenzt wenn der berechnete Wert unter 50% ist, mehr zu entladen macht keinen Sinn.
              Im LOG angezeigt wird aber immer der berechnete Wert ohne Begrenzung.
              Wenn du das Entladen des Speichers automatisieren willst, müsstest du in Zeile 345
              sUnload[2] = UnloadSoC;
              eintragen.
              Ich habe für mich festgestellt, dass es ausreicht, das Laden am Morgen bis zum Start der Regelung von E3DC-Control zu verhindern.
              Das mache ich indem ich den aktuellen Speicher SoC auslese und den als Unload Wert verwende.
              Deswegen steht in der Zeile 345: sUnload[2] = AktSpeicherSoC;

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

              @ArnoD Hat sich erledigt. habe deinen Beitrag nicht genau genug gelesen.

              S 1 Antwort Letzte Antwort
              0
              • S stevie77

                @ArnoD Hat sich erledigt. habe deinen Beitrag nicht genau genug gelesen.

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

                @ArnoD Der falsch ermittelte Speicher-SoC von 0 % anstatt richtig 26 % gestern lag vielleicht an einem Update des Modbus-Adapters zuvor (möglicherweise < 24 h vorher). Deswegen ist bei mir dann unload auf 0 gesetzt worden. Ich hab den Code jetzt wie von dir beschrieben an der entsprechenden Stelle geändert und UnloadSoC benutzt. Dummerweise deinen Text nicht genau gelesen oder verstanden heute Nacht und jetzt eben selbst gedebugt und gefunden wo das Problem ist. ;-)
                Muss ich halt in Zukunft daran denken nach jedem Update des Skripts selbst noch die Zeile zu ändern.

                05:15:00.369	info	javascript.0 (1770) script.js.e3dc-control.handleE3DCControl: Gepeichert wurde Prognose forecast 2/2 : 24115 :24445
                05:45:00.006	info	javascript.0 (1770) script.js.e3dc-control.handleE3DCControl: Bewölkungsgrad 12 Uhr Proplanta 12.5
                05:45:00.007	info	javascript.0 (1770) script.js.e3dc-control.handleE3DCControl: Bewölkungsgrad 15 Uhr Proplanta 12.5
                05:45:00.009	info	javascript.0 (1770) script.js.e3dc-control.handleE3DCControl: Prognose Forecast in kWh = 100.971
                05:45:00.009	info	javascript.0 (1770) script.js.e3dc-control.handleE3DCControl: Prognose Proplanta in kWh = 97.66950000000001
                05:45:00.010	info	javascript.0 (1770) script.js.e3dc-control.handleE3DCControl: Globalstrahlung Proplante = 6.9
                05:45:00.010	info	javascript.0 (1770) script.js.e3dc-control.handleE3DCControl: AktSpeicherSoC in % = 0
                05:45:00.010	info	javascript.0 (1770) script.js.e3dc-control.handleE3DCControl: FreieKapBatterie_kWh = 11.7
                05:45:00.010	info	javascript.0 (1770) script.js.e3dc-control.handleE3DCControl: Prognose_kWh für Berechnung = 87.90255
                05:45:00.011	info	javascript.0 (1770) script.js.e3dc-control.handleE3DCControl: Ueberschuss in kWh = 64.20255
                05:45:00.011	info	javascript.0 (1770) script.js.e3dc-control.handleE3DCControl: Ueberschuss in Prozent = 100
                05:45:00.011	info	javascript.0 (1770) script.js.e3dc-control.handleE3DCControl: Berechneter Unload SoC ist = -100
                05:45:00.011	info	javascript.0 (1770) script.js.e3dc-control.handleE3DCControl: Einstellung 2 aktiv
                05:45:00.019	info	javascript.0 (1770) script.js.e3dc-control.handleE3DCControl: E3DC Config Datei gespeichert!
                05:45:01.023	info	javascript.0 (1770) script.js.e3dc-control.handleE3DCControl: E3DC Config Datei eingelesen!
                
                1 Antwort Letzte Antwort
                0
                • A Offline
                  A Offline
                  ArnoD
                  schrieb am zuletzt editiert von
                  #206

                  Hat eigentlich das Speichern der History Daten Juli bei euch funktioniert ?
                  Bei mir wurden die Daten nicht gespeichert.
                  Da ich aber gestern einige Tests durchgeführt habe, kann es sein das mit dem ständigen stoppen und starten vom Script nur bei mir das speichern nicht funktioniert hat.

                  S 1 Antwort Letzte Antwort
                  0
                  • A ArnoD

                    Hat eigentlich das Speichern der History Daten Juli bei euch funktioniert ?
                    Bei mir wurden die Daten nicht gespeichert.
                    Da ich aber gestern einige Tests durchgeführt habe, kann es sein das mit dem ständigen stoppen und starten vom Script nur bei mir das speichern nicht funktioniert hat.

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

                    @ArnoD sagte in E3DC Hauskraftwerk steuern:

                    Hat eigentlich das Speichern der History Daten Juli bei euch funktioniert ?
                    Bei mir wurden die Daten nicht gespeichert.

                    Ist das denn zum Monatsende ein anderes Speichern als das jeden Tag abends um 22 Uhr? Bei mir wurde jeder einzelne Tag gespeichert und ist auch noch da, wenn ich zu August und wieder zurück zum Juli wechsle...

                    faeee0a3-f7ba-4125-9feb-6dc6db4e40c9-image.png

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

                      Ja, am Monatsende wird nur das Json Objekt kopiert und ansonsten wird das Json Ojekt aus den States laufend neu geschrieben.

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

                        Ich habe soeben die Version 0.2.0 hochgeladen.
                        ACHTUNG !! Anpassungen in VIS erforderlich, da sich States geändert haben.
                        Bitte unter den Objekten die ID 0_userdata_0.E3DC-Control.Allgemein manuell löschen und vom Script neu anlegen lassen.

                        Änderungen:

                        • Abfrage Globalstrahlung von Proplanta integriert. Typescript Proplanta wird nicht mehr benötigt.
                          Bei der Prognose Proplanta wird jetzt eine Vorschau für vier Tage im Diagramm angezeigt.
                          Leider gibt es hier keine API, somit musste ich aus der HTML Seite die benötigten Daten filtern.
                          Sollte sich an der Proplanta Seite was an den im Script verwendetet Suchwörter ändern, kann es natürlich sein das das Script ins leere läuft. Es wird jetzt auch das jeweilige Datum der abgerufenen Prognosewerte in eigenen State gespeicher, sodass man dieses in Vis anzeigen und prüfen kann.

                        • Neuer State für die Summe von Leistungsmesser 0 und Leistungsmesser 1, um diesen in Vis anzuzeigen.

                        • Nur noch ein Korrekturfaktor in %, um die berechneten Prognosewerte anzugleichen.

                        • Diagramm wird jetzt bei Änderungen der PV-Leistung regelmäßig aktualisiert.

                        Script optimiert und aufgeräumt. Neue State Struktur erstellt, um das Ganze übersichtlicher zu gestalten.

                        S smartboartS 2 Antworten Letzte Antwort
                        0
                        • A ArnoD

                          Ich habe soeben die Version 0.2.0 hochgeladen.
                          ACHTUNG !! Anpassungen in VIS erforderlich, da sich States geändert haben.
                          Bitte unter den Objekten die ID 0_userdata_0.E3DC-Control.Allgemein manuell löschen und vom Script neu anlegen lassen.

                          Änderungen:

                          • Abfrage Globalstrahlung von Proplanta integriert. Typescript Proplanta wird nicht mehr benötigt.
                            Bei der Prognose Proplanta wird jetzt eine Vorschau für vier Tage im Diagramm angezeigt.
                            Leider gibt es hier keine API, somit musste ich aus der HTML Seite die benötigten Daten filtern.
                            Sollte sich an der Proplanta Seite was an den im Script verwendetet Suchwörter ändern, kann es natürlich sein das das Script ins leere läuft. Es wird jetzt auch das jeweilige Datum der abgerufenen Prognosewerte in eigenen State gespeicher, sodass man dieses in Vis anzeigen und prüfen kann.

                          • Neuer State für die Summe von Leistungsmesser 0 und Leistungsmesser 1, um diesen in Vis anzuzeigen.

                          • Nur noch ein Korrekturfaktor in %, um die berechneten Prognosewerte anzugleichen.

                          • Diagramm wird jetzt bei Änderungen der PV-Leistung regelmäßig aktualisiert.

                          Script optimiert und aufgeräumt. Neue State Struktur erstellt, um das Ganze übersichtlicher zu gestalten.

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

                          @ArnoD Ich hab mal den Wechsel versucht...was mir aufgefallen ist:

                          • nKorrWert_PV_Leistung scheint ein toter Parameter zu sein, eine Textsuche findet nur die Deklarierung des Werts.
                          • Der Fehler "javascript.0 (32733) script.js.e3dc-control.handleE3DCControl: Bewölkungsgrad_12 oder Bewölkungsgrad_15 wurde nicht abgerufen. 12=200 15=200" scheint ein erwarteter Fehler zu sein?! Taucht der jetzt nur auf, weil beim Start des Skripts nicht wirklich eine Abfrage durchgeführt wird? Finde ich etwas nervig, dass jedes Mal, wenn ich das Skript anklicke und unten das Log aufgebaut wird, eine rote Fehlermeldung angezeigt bekomme...

                          Ob tatsächlich alles funktioniert wird sich wohl erst im Verlauf von 1-2 Tagen zeigen... :-)

                          A 1 Antwort Letzte Antwort
                          0
                          • A ArnoD

                            Ich habe dieses Topic eröffnet, um gemeinsam an einer Überschusssteuerung des E3DC Hauskraftwerks in ioBroker zu arbeiten.
                            Dankeschön an dieser Stelle an Eberhard und sein Programm E3DC-Control, ohne ihn wäre das alles nicht möglich gewesen.
                            Großes Lob und Danke auch an Uli, der den Adapter e3dc-rscp programmiert hat, über den die Steuerung im ioBroker erst möglich wurde.

                            Ziel der Steuerung ist:
                            Mit der Steuerung soll erreicht werden, dass der Batteriespeicher möglichst schonend geladen wird, um die Lebensdauer zu erhöhen.

                            • Speicher soll nie längere Zeit auf 100 % geladen werden oder auf 0 % entladen werden.
                            • Möglichst gleichmäßige Ladeleistung beim Laden.
                            • PV-Überschuss soll gespeichert werden, um nicht in die 70 % Abriegelung zu kommen.
                            • Bei Überschreitung WR Begrenzung soll Überschuss in die Batterie gespeichert werden.

                            ioBroker
                            Es werden folgende Adapter benötigt:

                            • Javascript (NPM-Module: axios, is-it-bst)
                            • e3dc-rscp

                            Für die View Beispiele in VIS werden noch folgende Adapter benötigt:

                            • vis-hqwidgets
                            • vis-materialdesign
                            • vis-timeandweather

                            Beispiel View zum Importieren und das Skript Charge-Control, sowie eine Anleitung findet ihr auf GitHub:
                            https://github.com/ArnoD15/iobroker_E3DC

                            Einstellbare Parameter:
                            Unload: Wenn der SoC Wert der Batterie > Wert „Unload“ ist, wird der Batteriespeicher mit Beginn Solarproduktion bis Beginn Regelzeitraum, auf SOC Wert Parameter "Unload" entladen. Ist Unload < Ladeschwelle wird bis Ladeschwelle geladen und Unload ignoriert.

                            Ladeschwelle: Mit Beginn Solarproduktion wird die Batterie mit der maximalen Ladeleistung bis zum Wert Ladeschwelle geladen. Erst wenn der Batterie SOC den Wert Ladeschwelle erreicht, wird mit dem geregelten Laden begonnen. Danach wird bis SOC Wert „Ladeende“ gleichmäßig geladen, mit Ausnahme, wenn die PV-Leistung das Einspeiselimit oder die WR-Maxleistung übersteigt, wird die Ladeleistung um den Wert erhöht, um das Einspeiselimit oder WR-Limit einhalten zu können. Bei unterschreiten von dem Wert Einspeiselimit oder WR-Limit, wird wieder mit neu berechneter Ladeleistung, gleichmäßig bis „Ladeende" geladen. Bei großem Überschuss kann die gleichmäßige Ladeleistung bis auf 0 abgesenkt werden. Parameter "Ladeschwelle" hat Vorrang vor "Unload", d.h. "Unload" wird ignoriert, falls "Ladeschwelle" größer sein sollte als „Unload“.

                            Ladeende: SoC Wert Speicher, der zum Ende des Regelzeitraums erreicht werden soll.

                            Ladeende2: SoC Wert Speicher, der zum Ende Sommer Ladeende erreicht werden sollten.

                            Unterer Ladekorridor: Der „Untere Ladekorridor“ definiert nur den min. Wert, ab dem mit dem Laden der Batterie gestartet wird. Erst wenn die berechnetet Ladeleistung den Wert „unteren Ladekorridor“ übersteigt, wird mit dem Laden der Batterie gestartet.

                            Offset Regelbeginn Zeit in hh:mm, die von der Astro Zeit "solarNoon" (höchster Sonnenstand) abgezogen wird.

                            Offset Regelende Zeit in hh:mm, die zu der Astro Zeit "solarNoon" (höchster Sonnenstand) dazu addiert wird.

                            Offset Ladeende Zeit in hh:mm, die von der Astro Zeit "sunset" (Sonnenuntergang) abgezogen wird.

                            70c4baad-fc5b-45bb-8c02-45b0b14f89ea-grafik.png
                            Eigenverbrauch: Der geschätzte Eigenverbrauch pro Tag in kWh. Wird für die Überschussberechnung der Prognose verwendet.

                            Notstrom min.: Speicherreserve in % bei Wintersonnenwende 21.12

                            Notstrom Sockel: min. SOC Wert bei Tag-/Nachtgleiche 21.3./21.9.

                            Berechnung Notstrom: 21.12 (Wintersonnenwende) ist der Bezugs-SoC = Wert „Notstrom min“ und wird bis zum 21.3 (Tag-/Nachtgleiche) auf Wert „Notstrom Sockel“ reduziert und bis zum 20.06 (Sommersonnenwende) um ca. weitere 10% reduziert. Ab dem 20.06 (Sommersonnenwende) steigt der Bezugs-SoC wieder bis zum 21.09 (Tag-/Nachtgleiche) auf den Wert „Notstrom Sockel“ und bis zum 21.12 (Wintersonnenwende) auf den Wert „Notstrom min“. Je Monat ändert sich somit der SoC um ca. +- 3,3%. Mit Notstrom min. und Notstrom Sockel kann man eine Dynamische Notstromreserve vorhalten, Vorteil ist, dass der Speicher nicht alle 3 Wochen entladen wird wie bei der Notstromreserve von E3DC.

                            Starten wir am 21.12 (Wintersonnenwende) der kürzeste Tag, da wird der Speicher bis auf Notstrom min = 20% entladen.
                            Ab jetzt werden die Tage immer länger, bis zum 21.3 (Tag-/Nachtgleiche) wo die Tage und Nächte gleich lang sind.
                            Das bedeutet deine Speicherreserve kann immer geringer werden je länger die Tage sind, da ja mehr PV-Leistung zur Verfügung steht. Es wird somit jeden Monat die Speichergrenze um ca.3,33% reduziert bis zum 21.03 auf den Wert Notstrom Sockel = 10%.

                            Ab dem 21.03 werden die Tage immer länger bis zum 20.06 (Sommersonnenwende) dem längsten Tag im Jahr.
                            Es wird also die Speichergrenze weiter jeden Monat um ca. 3,33% reduziert bis zum 20.06 auf 0%,
                            Ab diesem Zeitpunkt werden die Tage wieder kürzer bis zum 21.9 (Tag-/Nachtgleiche) wo die Tage und Nächte wieder gleich lang sind und die Speicherreserve wird jeden Monat um ca. 3,33% erhöht auf Notstrom Sockel = 10%.
                            Die Tage werden immer kürzer bis zum 21.12 (Wintersonnenwende) und die Speichergrenze wird weiter jeden Monat um ca. 3,33% erhöht auf den Wert Notstrom min = 20%

                            Notstrom Sockel ist somit der min. SOC Wert, wenn die Tage und Nächte gleich lang sind, also am 21.3 und 21.09 und
                            Notstrom min wenn die Tage am kürzesten sind am 21.12 .

                            Laderegelung:
                            Mit Beginn Solarproduktion wird die Batterie mit der maximalen Ladeleistung bis zum Wert Ladeschwelle geladen oder bis zum SOC Wert Unload entladen. Erst wenn der Batterie SOC den Wert Ladeschwelle erreicht, wird mit dem geregelten Laden begonnen.

                            Mit Start Regelzeitraum wird die benötigte Ladeleistung berechnet, um den SOC Ladeende bis zum Ende Regelzeitraum zu erreichen.

                            Bei Überschreitung der Zeit, Ende Regelzeitraum wird die benötigte Ladeleistung neu berechnet, um den SOC Ladeende2 bis zur Zeit Ladeende zu erreichen.

                            Wenn die Zeit Ladeende erreicht ist und die Batterie noch nicht den SOC Ladeende2 erreicht hat, wird das Laden mit maximal noch zur Verfügung stehender PV-Leistung freigegeben.

                            Ausnahme: Wenn die PV-Leistung das Einspeiselimit oder die maximale Wechselrichterleistung übersteigt, wird die Ladeleistung um den Wert erhöht, um das Einspeiselimit oder die maximale Wechselrichterleistung einhalten zu können. Bei Unterschreiten von dem Wert Einspeiselimit oder WR-Limit, wird mit neu berechneter Ladeleistung, gleichmäßig geladen.

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

                            @ArnoD Der erwähnte Fehler =200 scheint nun weg zu sein, seit um 5:15 Uhr der erste richtige Wetterabruf war.

                            Andere Sache: Seit ich dein Programm benutze hat die Automatik immer Einstellung 2 gewählt. Heute erstmals Einstellung 1. Hat das mit der Zeile

                            // 2 Prognose PV-Leistung höher als benötigter Eigenverbrauch,Batterie laden und Überschuss ins Netz einspeisen.
                            // keine Bewölkung > 80% 
                            if (Ueberschuss > 0 && Bedeckungsgrad12 < 90 && Bedeckungsgrad15 < 90)// && AutomatikAnwahl == true)
                            

                            zu tun? In der letzten Skriptversion war Automatik nicht auskommentiert...
                            Mit den 5 Einstellungsmöglichkeiten bin ich eh noch überfordert, momentan habe ich überall dieselben Werte hinterlegt, die sich als passend für die meisten Wettersituationen erwiesen haben. Bin noch in der Beobachtungsphase, was wann gewählt wird...

                            Jetzt steige ich noch weniger durch: Die Prognose ist 47,7 kWh, aber es wird Überschuss 0 kWh errechnet. Einstellung 1 wäre doch die Schlechtwetter-Einstellung, wo man fast keine Sonne erwartet?! Also läuft jetzt irgendwas schief, ne?

                            05:45:00.006	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: Bewölkungsgrad 12 Uhr Proplanta 62.5
                            05:45:00.006	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: Bewölkungsgrad 15 Uhr Proplanta 62.5
                            05:45:00.009	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: Prognose Forecast in kWh = 53.058
                            05:45:00.009	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: Prognose Proplanta in kWh = 86.3455
                            05:45:00.010	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: Prognose_kWh_heute für Berechnung = 47.7522
                            05:45:00.011	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: AktSpeicherSoC in % = 30
                            05:45:00.011	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: FreieKapBatterie_kWh = 8.19
                            05:45:00.011	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: Ueberschuss in kWh = 0
                            05:45:00.011	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: Ueberschuss in Prozent = 0
                            05:45:00.013	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: Berechneter Unload SoC ist = 30
                            05:45:00.014	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: Einstellung 1 aktiv
                            

                            Definiert habe ich const nEigenverbrauchTag = 12.0. FreieKapBatterie_kWh würde ich sagen ist mit 8,19 kWh richtig berechnet.
                            Also müsste Ueberschuss_kWh =(Prognose_kWh-nEigenverbrauchTag)-FreieKapBatterie_kWh; wie folgt zu rechnen sein: 47,7 - 12 - 8,2 = 27,5 kWh. Tatsächlich kommt da aber 0 raus im Log. Irgendeine Idee?

                            1 Antwort Letzte Antwort
                            0
                            • A ArnoD

                              Ich habe dieses Topic eröffnet, um gemeinsam an einer Überschusssteuerung des E3DC Hauskraftwerks in ioBroker zu arbeiten.
                              Dankeschön an dieser Stelle an Eberhard und sein Programm E3DC-Control, ohne ihn wäre das alles nicht möglich gewesen.
                              Großes Lob und Danke auch an Uli, der den Adapter e3dc-rscp programmiert hat, über den die Steuerung im ioBroker erst möglich wurde.

                              Ziel der Steuerung ist:
                              Mit der Steuerung soll erreicht werden, dass der Batteriespeicher möglichst schonend geladen wird, um die Lebensdauer zu erhöhen.

                              • Speicher soll nie längere Zeit auf 100 % geladen werden oder auf 0 % entladen werden.
                              • Möglichst gleichmäßige Ladeleistung beim Laden.
                              • PV-Überschuss soll gespeichert werden, um nicht in die 70 % Abriegelung zu kommen.
                              • Bei Überschreitung WR Begrenzung soll Überschuss in die Batterie gespeichert werden.

                              ioBroker
                              Es werden folgende Adapter benötigt:

                              • Javascript (NPM-Module: axios, is-it-bst)
                              • e3dc-rscp

                              Für die View Beispiele in VIS werden noch folgende Adapter benötigt:

                              • vis-hqwidgets
                              • vis-materialdesign
                              • vis-timeandweather

                              Beispiel View zum Importieren und das Skript Charge-Control, sowie eine Anleitung findet ihr auf GitHub:
                              https://github.com/ArnoD15/iobroker_E3DC

                              Einstellbare Parameter:
                              Unload: Wenn der SoC Wert der Batterie > Wert „Unload“ ist, wird der Batteriespeicher mit Beginn Solarproduktion bis Beginn Regelzeitraum, auf SOC Wert Parameter "Unload" entladen. Ist Unload < Ladeschwelle wird bis Ladeschwelle geladen und Unload ignoriert.

                              Ladeschwelle: Mit Beginn Solarproduktion wird die Batterie mit der maximalen Ladeleistung bis zum Wert Ladeschwelle geladen. Erst wenn der Batterie SOC den Wert Ladeschwelle erreicht, wird mit dem geregelten Laden begonnen. Danach wird bis SOC Wert „Ladeende“ gleichmäßig geladen, mit Ausnahme, wenn die PV-Leistung das Einspeiselimit oder die WR-Maxleistung übersteigt, wird die Ladeleistung um den Wert erhöht, um das Einspeiselimit oder WR-Limit einhalten zu können. Bei unterschreiten von dem Wert Einspeiselimit oder WR-Limit, wird wieder mit neu berechneter Ladeleistung, gleichmäßig bis „Ladeende" geladen. Bei großem Überschuss kann die gleichmäßige Ladeleistung bis auf 0 abgesenkt werden. Parameter "Ladeschwelle" hat Vorrang vor "Unload", d.h. "Unload" wird ignoriert, falls "Ladeschwelle" größer sein sollte als „Unload“.

                              Ladeende: SoC Wert Speicher, der zum Ende des Regelzeitraums erreicht werden soll.

                              Ladeende2: SoC Wert Speicher, der zum Ende Sommer Ladeende erreicht werden sollten.

                              Unterer Ladekorridor: Der „Untere Ladekorridor“ definiert nur den min. Wert, ab dem mit dem Laden der Batterie gestartet wird. Erst wenn die berechnetet Ladeleistung den Wert „unteren Ladekorridor“ übersteigt, wird mit dem Laden der Batterie gestartet.

                              Offset Regelbeginn Zeit in hh:mm, die von der Astro Zeit "solarNoon" (höchster Sonnenstand) abgezogen wird.

                              Offset Regelende Zeit in hh:mm, die zu der Astro Zeit "solarNoon" (höchster Sonnenstand) dazu addiert wird.

                              Offset Ladeende Zeit in hh:mm, die von der Astro Zeit "sunset" (Sonnenuntergang) abgezogen wird.

                              70c4baad-fc5b-45bb-8c02-45b0b14f89ea-grafik.png
                              Eigenverbrauch: Der geschätzte Eigenverbrauch pro Tag in kWh. Wird für die Überschussberechnung der Prognose verwendet.

                              Notstrom min.: Speicherreserve in % bei Wintersonnenwende 21.12

                              Notstrom Sockel: min. SOC Wert bei Tag-/Nachtgleiche 21.3./21.9.

                              Berechnung Notstrom: 21.12 (Wintersonnenwende) ist der Bezugs-SoC = Wert „Notstrom min“ und wird bis zum 21.3 (Tag-/Nachtgleiche) auf Wert „Notstrom Sockel“ reduziert und bis zum 20.06 (Sommersonnenwende) um ca. weitere 10% reduziert. Ab dem 20.06 (Sommersonnenwende) steigt der Bezugs-SoC wieder bis zum 21.09 (Tag-/Nachtgleiche) auf den Wert „Notstrom Sockel“ und bis zum 21.12 (Wintersonnenwende) auf den Wert „Notstrom min“. Je Monat ändert sich somit der SoC um ca. +- 3,3%. Mit Notstrom min. und Notstrom Sockel kann man eine Dynamische Notstromreserve vorhalten, Vorteil ist, dass der Speicher nicht alle 3 Wochen entladen wird wie bei der Notstromreserve von E3DC.

                              Starten wir am 21.12 (Wintersonnenwende) der kürzeste Tag, da wird der Speicher bis auf Notstrom min = 20% entladen.
                              Ab jetzt werden die Tage immer länger, bis zum 21.3 (Tag-/Nachtgleiche) wo die Tage und Nächte gleich lang sind.
                              Das bedeutet deine Speicherreserve kann immer geringer werden je länger die Tage sind, da ja mehr PV-Leistung zur Verfügung steht. Es wird somit jeden Monat die Speichergrenze um ca.3,33% reduziert bis zum 21.03 auf den Wert Notstrom Sockel = 10%.

                              Ab dem 21.03 werden die Tage immer länger bis zum 20.06 (Sommersonnenwende) dem längsten Tag im Jahr.
                              Es wird also die Speichergrenze weiter jeden Monat um ca. 3,33% reduziert bis zum 20.06 auf 0%,
                              Ab diesem Zeitpunkt werden die Tage wieder kürzer bis zum 21.9 (Tag-/Nachtgleiche) wo die Tage und Nächte wieder gleich lang sind und die Speicherreserve wird jeden Monat um ca. 3,33% erhöht auf Notstrom Sockel = 10%.
                              Die Tage werden immer kürzer bis zum 21.12 (Wintersonnenwende) und die Speichergrenze wird weiter jeden Monat um ca. 3,33% erhöht auf den Wert Notstrom min = 20%

                              Notstrom Sockel ist somit der min. SOC Wert, wenn die Tage und Nächte gleich lang sind, also am 21.3 und 21.09 und
                              Notstrom min wenn die Tage am kürzesten sind am 21.12 .

                              Laderegelung:
                              Mit Beginn Solarproduktion wird die Batterie mit der maximalen Ladeleistung bis zum Wert Ladeschwelle geladen oder bis zum SOC Wert Unload entladen. Erst wenn der Batterie SOC den Wert Ladeschwelle erreicht, wird mit dem geregelten Laden begonnen.

                              Mit Start Regelzeitraum wird die benötigte Ladeleistung berechnet, um den SOC Ladeende bis zum Ende Regelzeitraum zu erreichen.

                              Bei Überschreitung der Zeit, Ende Regelzeitraum wird die benötigte Ladeleistung neu berechnet, um den SOC Ladeende2 bis zur Zeit Ladeende zu erreichen.

                              Wenn die Zeit Ladeende erreicht ist und die Batterie noch nicht den SOC Ladeende2 erreicht hat, wird das Laden mit maximal noch zur Verfügung stehender PV-Leistung freigegeben.

                              Ausnahme: Wenn die PV-Leistung das Einspeiselimit oder die maximale Wechselrichterleistung übersteigt, wird die Ladeleistung um den Wert erhöht, um das Einspeiselimit oder die maximale Wechselrichterleistung einhalten zu können. Bei Unterschreiten von dem Wert Einspeiselimit oder WR-Limit, wird mit neu berechneter Ladeleistung, gleichmäßig geladen.

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

                              @ArnoD Hmm, jetzt habe ich noch ein bisschen die Kommentare zu den Einstellungen ergänzt und die Zahlen 80<>90 Prozent korrigiert und dann gespeichert. Da lief das Skript nochmals durch und hat nun auf den ersten Blick alles richtig gemacht (im Gegensatz zu davor):

                              06:40:31.589	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: Bewölkungsgrad 12 Uhr Proplanta 62.5
                              06:40:31.590	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: Bewölkungsgrad 15 Uhr Proplanta 62.5
                              06:40:31.593	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: Prognose Forecast in kWh = 53.058
                              06:40:31.593	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: Prognose Proplanta in kWh = 86.3455
                              06:40:31.594	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: Prognose_kWh_heute für Berechnung = 47.7522
                              06:40:31.596	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: AktSpeicherSoC in % = 26
                              06:40:31.596	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: FreieKapBatterie_kWh = 8.66
                              06:40:31.596	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: Ueberschuss in kWh = 27.092200000000002
                              06:40:31.597	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: Ueberschuss in Prozent = 100
                              06:40:31.599	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: Berechneter Unload SoC ist = -74
                              06:40:31.599	info	javascript.0 (556) script.js.e3dc-control.handleE3DCControl: Einstellung 2 aktiv
                              

                              Kann es sein, dass vielleicht irgendein State noch nicht richtig initialisiert war oder so? Aber es war ja eigentlich auch beim ersten falschen Lauf alles da womit gerechnet wird...versteh' ich nicht.

                              1 Antwort Letzte Antwort
                              0
                              • S stevie77

                                @ArnoD Ich hab mal den Wechsel versucht...was mir aufgefallen ist:

                                • nKorrWert_PV_Leistung scheint ein toter Parameter zu sein, eine Textsuche findet nur die Deklarierung des Werts.
                                • Der Fehler "javascript.0 (32733) script.js.e3dc-control.handleE3DCControl: Bewölkungsgrad_12 oder Bewölkungsgrad_15 wurde nicht abgerufen. 12=200 15=200" scheint ein erwarteter Fehler zu sein?! Taucht der jetzt nur auf, weil beim Start des Skripts nicht wirklich eine Abfrage durchgeführt wird? Finde ich etwas nervig, dass jedes Mal, wenn ich das Skript anklicke und unten das Log aufgebaut wird, eine rote Fehlermeldung angezeigt bekomme...

                                Ob tatsächlich alles funktioniert wird sich wohl erst im Verlauf von 1-2 Tagen zeigen... :-)

                                A Offline
                                A Offline
                                ArnoD
                                schrieb am zuletzt editiert von
                                #213
                                • nKorrWert_PV_Leistung scheint ein toter Parameter zu sein, eine Textsuche findet nur die Deklarierung des Werts.

                                Ja, kommt erst mit der nächsten Version. Hatte ich für mich schon mal vorbereitet. :blush:

                                • Der Fehler "javascript.0 (32733) script.js.e3dc-control.handleE3DCControl: Bewölkungsgrad_12 oder Bewölkungsgrad_15 wurde nicht abgerufen. 12=200 15=200" scheint ein erwarteter Fehler zu sein?! Taucht der jetzt nur auf, weil beim Start des Skripts nicht wirklich eine Abfrage durchgeführt wird? Finde ich etwas nervig, dass jedes Mal, wenn ich das Skript anklicke und unten das Log aufgebaut wird, eine rote Fehlermeldung angezeigt bekomme...

                                Sollte nur auftauchen wenn keine Werte enthalten sind.
                                Ist beim ersten Script Start natürlich der Fall, muss mal prüfen ob ich das beim ersten Start abfangen kann.

                                smartboartS 1 Antwort Letzte Antwort
                                0
                                • A ArnoD

                                  @smartboart sagte in E3DC Hauskraftwerk steuern:

                                  @ArnoD sagte in E3DC Hauskraftwerk steuern:

                                  Das sieht dann so aus:
                                  r.jpg

                                  Hey Arno, muss darauf nochmal zurück...
                                  meinste hier findet sich jemand, der daraus bzw. aus deinem script ne schöne HTML Tabelle bastelt und vlt. noch ne Textdatei welche auf nem Nass abgelegt wird? Wollen wir hier mal einen neuen Threat aufmachen? Ist dein Script, deshalb will ich das nicht machen.

                                  Ist kein Problem, kannst du gerne machen.
                                  Ich brauche die Seite nur für das Finanzamt, habe mich deswegen nicht weiter darum gekümmert.
                                  Wenn jemand eine ansprechende HTML Seite daraus machen kann, würde ich mich freuen :-)

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

                                  @ArnoD sagte in E3DC Hauskraftwerk steuern:

                                  Ist kein Problem, kannst du gerne machen.
                                  Ich brauche die Seite nur für das Finanzamt, habe mich deswegen nicht weiter darum gekümmert.
                                  Wenn jemand eine ansprechende HTML Seite daraus machen kann, würde ich mich freuen

                                  Hallo Arno,
                                  habe mal nen Threat eröffnet...
                                  https://forum.iobroker.net/topic/35659/stromzählerscript-pv-anlage-finanzamt-in-json-oder-html

                                  1 Antwort Letzte Antwort
                                  0
                                  • A ArnoD

                                    Ich habe soeben die Version 0.2.0 hochgeladen.
                                    ACHTUNG !! Anpassungen in VIS erforderlich, da sich States geändert haben.
                                    Bitte unter den Objekten die ID 0_userdata_0.E3DC-Control.Allgemein manuell löschen und vom Script neu anlegen lassen.

                                    Änderungen:

                                    • Abfrage Globalstrahlung von Proplanta integriert. Typescript Proplanta wird nicht mehr benötigt.
                                      Bei der Prognose Proplanta wird jetzt eine Vorschau für vier Tage im Diagramm angezeigt.
                                      Leider gibt es hier keine API, somit musste ich aus der HTML Seite die benötigten Daten filtern.
                                      Sollte sich an der Proplanta Seite was an den im Script verwendetet Suchwörter ändern, kann es natürlich sein das das Script ins leere läuft. Es wird jetzt auch das jeweilige Datum der abgerufenen Prognosewerte in eigenen State gespeicher, sodass man dieses in Vis anzeigen und prüfen kann.

                                    • Neuer State für die Summe von Leistungsmesser 0 und Leistungsmesser 1, um diesen in Vis anzuzeigen.

                                    • Nur noch ein Korrekturfaktor in %, um die berechneten Prognosewerte anzugleichen.

                                    • Diagramm wird jetzt bei Änderungen der PV-Leistung regelmäßig aktualisiert.

                                    Script optimiert und aufgeräumt. Neue State Struktur erstellt, um das Ganze übersichtlicher zu gestalten.

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

                                    @ArnoD

                                    Hallo Arno,

                                    ä und ae vertauscht?

                                    nDachflaechen und
                                    let nDachflächen = 2

                                    1 Antwort Letzte Antwort
                                    0
                                    • A ArnoD
                                      • nKorrWert_PV_Leistung scheint ein toter Parameter zu sein, eine Textsuche findet nur die Deklarierung des Werts.

                                      Ja, kommt erst mit der nächsten Version. Hatte ich für mich schon mal vorbereitet. :blush:

                                      • Der Fehler "javascript.0 (32733) script.js.e3dc-control.handleE3DCControl: Bewölkungsgrad_12 oder Bewölkungsgrad_15 wurde nicht abgerufen. 12=200 15=200" scheint ein erwarteter Fehler zu sein?! Taucht der jetzt nur auf, weil beim Start des Skripts nicht wirklich eine Abfrage durchgeführt wird? Finde ich etwas nervig, dass jedes Mal, wenn ich das Skript anklicke und unten das Log aufgebaut wird, eine rote Fehlermeldung angezeigt bekomme...

                                      Sollte nur auftauchen wenn keine Werte enthalten sind.
                                      Ist beim ersten Script Start natürlich der Fall, muss mal prüfen ob ich das beim ersten Start abfangen kann.

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

                                      EDIT:
                                      erledigt...oben schon beantwortet

                                      1 Antwort Letzte Antwort
                                      0
                                      • A ArnoD

                                        Ich habe dieses Topic eröffnet, um gemeinsam an einer Überschusssteuerung des E3DC Hauskraftwerks in ioBroker zu arbeiten.
                                        Dankeschön an dieser Stelle an Eberhard und sein Programm E3DC-Control, ohne ihn wäre das alles nicht möglich gewesen.
                                        Großes Lob und Danke auch an Uli, der den Adapter e3dc-rscp programmiert hat, über den die Steuerung im ioBroker erst möglich wurde.

                                        Ziel der Steuerung ist:
                                        Mit der Steuerung soll erreicht werden, dass der Batteriespeicher möglichst schonend geladen wird, um die Lebensdauer zu erhöhen.

                                        • Speicher soll nie längere Zeit auf 100 % geladen werden oder auf 0 % entladen werden.
                                        • Möglichst gleichmäßige Ladeleistung beim Laden.
                                        • PV-Überschuss soll gespeichert werden, um nicht in die 70 % Abriegelung zu kommen.
                                        • Bei Überschreitung WR Begrenzung soll Überschuss in die Batterie gespeichert werden.

                                        ioBroker
                                        Es werden folgende Adapter benötigt:

                                        • Javascript (NPM-Module: axios, is-it-bst)
                                        • e3dc-rscp

                                        Für die View Beispiele in VIS werden noch folgende Adapter benötigt:

                                        • vis-hqwidgets
                                        • vis-materialdesign
                                        • vis-timeandweather

                                        Beispiel View zum Importieren und das Skript Charge-Control, sowie eine Anleitung findet ihr auf GitHub:
                                        https://github.com/ArnoD15/iobroker_E3DC

                                        Einstellbare Parameter:
                                        Unload: Wenn der SoC Wert der Batterie > Wert „Unload“ ist, wird der Batteriespeicher mit Beginn Solarproduktion bis Beginn Regelzeitraum, auf SOC Wert Parameter "Unload" entladen. Ist Unload < Ladeschwelle wird bis Ladeschwelle geladen und Unload ignoriert.

                                        Ladeschwelle: Mit Beginn Solarproduktion wird die Batterie mit der maximalen Ladeleistung bis zum Wert Ladeschwelle geladen. Erst wenn der Batterie SOC den Wert Ladeschwelle erreicht, wird mit dem geregelten Laden begonnen. Danach wird bis SOC Wert „Ladeende“ gleichmäßig geladen, mit Ausnahme, wenn die PV-Leistung das Einspeiselimit oder die WR-Maxleistung übersteigt, wird die Ladeleistung um den Wert erhöht, um das Einspeiselimit oder WR-Limit einhalten zu können. Bei unterschreiten von dem Wert Einspeiselimit oder WR-Limit, wird wieder mit neu berechneter Ladeleistung, gleichmäßig bis „Ladeende" geladen. Bei großem Überschuss kann die gleichmäßige Ladeleistung bis auf 0 abgesenkt werden. Parameter "Ladeschwelle" hat Vorrang vor "Unload", d.h. "Unload" wird ignoriert, falls "Ladeschwelle" größer sein sollte als „Unload“.

                                        Ladeende: SoC Wert Speicher, der zum Ende des Regelzeitraums erreicht werden soll.

                                        Ladeende2: SoC Wert Speicher, der zum Ende Sommer Ladeende erreicht werden sollten.

                                        Unterer Ladekorridor: Der „Untere Ladekorridor“ definiert nur den min. Wert, ab dem mit dem Laden der Batterie gestartet wird. Erst wenn die berechnetet Ladeleistung den Wert „unteren Ladekorridor“ übersteigt, wird mit dem Laden der Batterie gestartet.

                                        Offset Regelbeginn Zeit in hh:mm, die von der Astro Zeit "solarNoon" (höchster Sonnenstand) abgezogen wird.

                                        Offset Regelende Zeit in hh:mm, die zu der Astro Zeit "solarNoon" (höchster Sonnenstand) dazu addiert wird.

                                        Offset Ladeende Zeit in hh:mm, die von der Astro Zeit "sunset" (Sonnenuntergang) abgezogen wird.

                                        70c4baad-fc5b-45bb-8c02-45b0b14f89ea-grafik.png
                                        Eigenverbrauch: Der geschätzte Eigenverbrauch pro Tag in kWh. Wird für die Überschussberechnung der Prognose verwendet.

                                        Notstrom min.: Speicherreserve in % bei Wintersonnenwende 21.12

                                        Notstrom Sockel: min. SOC Wert bei Tag-/Nachtgleiche 21.3./21.9.

                                        Berechnung Notstrom: 21.12 (Wintersonnenwende) ist der Bezugs-SoC = Wert „Notstrom min“ und wird bis zum 21.3 (Tag-/Nachtgleiche) auf Wert „Notstrom Sockel“ reduziert und bis zum 20.06 (Sommersonnenwende) um ca. weitere 10% reduziert. Ab dem 20.06 (Sommersonnenwende) steigt der Bezugs-SoC wieder bis zum 21.09 (Tag-/Nachtgleiche) auf den Wert „Notstrom Sockel“ und bis zum 21.12 (Wintersonnenwende) auf den Wert „Notstrom min“. Je Monat ändert sich somit der SoC um ca. +- 3,3%. Mit Notstrom min. und Notstrom Sockel kann man eine Dynamische Notstromreserve vorhalten, Vorteil ist, dass der Speicher nicht alle 3 Wochen entladen wird wie bei der Notstromreserve von E3DC.

                                        Starten wir am 21.12 (Wintersonnenwende) der kürzeste Tag, da wird der Speicher bis auf Notstrom min = 20% entladen.
                                        Ab jetzt werden die Tage immer länger, bis zum 21.3 (Tag-/Nachtgleiche) wo die Tage und Nächte gleich lang sind.
                                        Das bedeutet deine Speicherreserve kann immer geringer werden je länger die Tage sind, da ja mehr PV-Leistung zur Verfügung steht. Es wird somit jeden Monat die Speichergrenze um ca.3,33% reduziert bis zum 21.03 auf den Wert Notstrom Sockel = 10%.

                                        Ab dem 21.03 werden die Tage immer länger bis zum 20.06 (Sommersonnenwende) dem längsten Tag im Jahr.
                                        Es wird also die Speichergrenze weiter jeden Monat um ca. 3,33% reduziert bis zum 20.06 auf 0%,
                                        Ab diesem Zeitpunkt werden die Tage wieder kürzer bis zum 21.9 (Tag-/Nachtgleiche) wo die Tage und Nächte wieder gleich lang sind und die Speicherreserve wird jeden Monat um ca. 3,33% erhöht auf Notstrom Sockel = 10%.
                                        Die Tage werden immer kürzer bis zum 21.12 (Wintersonnenwende) und die Speichergrenze wird weiter jeden Monat um ca. 3,33% erhöht auf den Wert Notstrom min = 20%

                                        Notstrom Sockel ist somit der min. SOC Wert, wenn die Tage und Nächte gleich lang sind, also am 21.3 und 21.09 und
                                        Notstrom min wenn die Tage am kürzesten sind am 21.12 .

                                        Laderegelung:
                                        Mit Beginn Solarproduktion wird die Batterie mit der maximalen Ladeleistung bis zum Wert Ladeschwelle geladen oder bis zum SOC Wert Unload entladen. Erst wenn der Batterie SOC den Wert Ladeschwelle erreicht, wird mit dem geregelten Laden begonnen.

                                        Mit Start Regelzeitraum wird die benötigte Ladeleistung berechnet, um den SOC Ladeende bis zum Ende Regelzeitraum zu erreichen.

                                        Bei Überschreitung der Zeit, Ende Regelzeitraum wird die benötigte Ladeleistung neu berechnet, um den SOC Ladeende2 bis zur Zeit Ladeende zu erreichen.

                                        Wenn die Zeit Ladeende erreicht ist und die Batterie noch nicht den SOC Ladeende2 erreicht hat, wird das Laden mit maximal noch zur Verfügung stehender PV-Leistung freigegeben.

                                        Ausnahme: Wenn die PV-Leistung das Einspeiselimit oder die maximale Wechselrichterleistung übersteigt, wird die Ladeleistung um den Wert erhöht, um das Einspeiselimit oder die maximale Wechselrichterleistung einhalten zu können. Bei Unterschreiten von dem Wert Einspeiselimit oder WR-Limit, wird mit neu berechneter Ladeleistung, gleichmäßig geladen.

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

                                        @ArnoD Das ist jetzt ein bisschen komisch...nachts um 2 Uhr wird PV-Leistung für den 4. August angezeigt, obwohl die Sonne noch gar nicht aufgegangen ist:

                                        be5228dd-a0b8-4e9b-aa9b-ce4b133686ef-image.png

                                        Der Wert kommt da her: 0_userdata.0.E3DC-Control.Allgemein.IstSummePvLeistung_kWh

                                        7569c44e-fd45-461b-9480-aa9164e0e56a-image.png

                                        Müsste der Wert vielleicht zum Tagesende gelöscht werden? Andererseits weiß ich gar nicht, was das für ein Wert sein soll, also wo die Zahl herkommt...am Vortag (3. August) war die Summe aus Anlage 1 und 2 viel höher (korrekt im Diagramm)...
                                        Hat das damit zu tun, dass das Diagramm jetzt öfters aktualisiert wird und nicht nur nachts um 22 Uhr wie früher?

                                        Edit: Um 6 Uhr morgens hab ich eben draufgesehen, da hatte sich das Problem wieder gelöst. Ich kann jetzt nicht sagen, ob es mit dem Neuzeichnen des Diagramms (wegen aktualisierter Wetterprognose) um/ab 6 Uhr zu tun hat, oder ob relativ zeitgleich der Start der PV-Erzeugung den State auf 0 gesetzt hat...oder beides...jedenfalls passt es (spätestens) wieder, sobald ab ca. 6 Uhr neuer Strom erzeugt wird. Wäre aber vielleicht trotzdem schön, wenn das Diagramm keinen Phantomstrom anzeigen würde. ;-)

                                        smartboartS A 2 Antworten Letzte Antwort
                                        0
                                        • S stevie77

                                          @ArnoD Das ist jetzt ein bisschen komisch...nachts um 2 Uhr wird PV-Leistung für den 4. August angezeigt, obwohl die Sonne noch gar nicht aufgegangen ist:

                                          be5228dd-a0b8-4e9b-aa9b-ce4b133686ef-image.png

                                          Der Wert kommt da her: 0_userdata.0.E3DC-Control.Allgemein.IstSummePvLeistung_kWh

                                          7569c44e-fd45-461b-9480-aa9164e0e56a-image.png

                                          Müsste der Wert vielleicht zum Tagesende gelöscht werden? Andererseits weiß ich gar nicht, was das für ein Wert sein soll, also wo die Zahl herkommt...am Vortag (3. August) war die Summe aus Anlage 1 und 2 viel höher (korrekt im Diagramm)...
                                          Hat das damit zu tun, dass das Diagramm jetzt öfters aktualisiert wird und nicht nur nachts um 22 Uhr wie früher?

                                          Edit: Um 6 Uhr morgens hab ich eben draufgesehen, da hatte sich das Problem wieder gelöst. Ich kann jetzt nicht sagen, ob es mit dem Neuzeichnen des Diagramms (wegen aktualisierter Wetterprognose) um/ab 6 Uhr zu tun hat, oder ob relativ zeitgleich der Start der PV-Erzeugung den State auf 0 gesetzt hat...oder beides...jedenfalls passt es (spätestens) wieder, sobald ab ca. 6 Uhr neuer Strom erzeugt wird. Wäre aber vielleicht trotzdem schön, wenn das Diagramm keinen Phantomstrom anzeigen würde. ;-)

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

                                          @ArnoD
                                          Hi Arno,
                                          ich habe gestern auch umgestellt.
                                          Der Istwert in der Prognose aus Source Analytics ( welchen ich mit meinem eigen Zähler füttere) ist schön mitgewachsen und wurde auch richtig angezeigt. Leider ist der Baken heute weg.
                                          Ich finde im Script keinen chron, wann du den Wert speicherst: Ich setze meinen Tageszähler um 23:58 wieder auf 0...
                                          Wann holst du den letzten wert ab?

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          304

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

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

                                          • Du hast noch kein Konto? Registrieren

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