NEWS
E3DC Hauskraftwerk steuern
-
@zelkin
Die Berechnung ist mir bewusst. Wenn das einen knappen Monat nach Wintersonnenwende schon relevant ist, dann hätte nach meinem Verständnis aber auch schon bei 25% Notstrom mit ein um x % niedriger Notstrom aktuell berechnet werden müssen? -
Notrom aktuell ist von Notstrom min und Notstrom Sockel abhängig.
Notstrom min wird nur am 21.12 genau erreicht.Bei Notstrom min auf 25 % -> Notstrom aktuell auch 25 % ist Notstrom Sockel vermutlich auch auf 25%.
Genaue Berechnung findest du in der Anleitung Charge-Control auf Github.
-
@arnod
Notstrom Sockel ist auf 5 % gesetzt und aktuell bei 20 %. -
Habe bei mir auch so eine ähnliche Situation beobachten können.
Das Problem ist nur, wie man vorhersagen kann, dass am Nachmittag doch noch mal die Sonne scheint, wenn die Prognose daneben liegt.Das Tibber Skript prüft in der Zeit von Sonnenaufgang bis Sonnenuntergang, ob die vorhergesagte Prognose noch ausreicht, um den Akku vollzuladen.
Das wird einfach berechnet, indem die Prognose durch die Sonnenstunden geteilt wird und dann berechnet wird, ob die restliche Zeit noch ausreicht den Akku zu laden.
Aus diesem Grund würde dein Vorschlag leider nicht funktionieren, denn am Vormittag war für CC und Tibber Skript eigentlich klar, dass die PV-Leistung ausreichen wird.
Das Tibber Script hat wahrscheinlich erst Mittag festgestellt, dass es nicht mehr ausreichen kann, da ist es aber bereits zu spät für CC und das Tibber Skript weiß bedauerlicherweise nicht, dass am Nachmittag mehr PV-Leistung kommt.
Jetzt könnte man das ganze natürlich wieder genauer berechnen, indem man die PV-Leistung nicht gleichmäßig auf die Sonnenstunden aufteilt, sondern die stündliche Globalstrahlung abruft und dann anhand der PV-Module die PV-Leistung je Stunde berechnet.Bin aber mittlerweile der Meinung das die Prognosen so ungenau sind, das es auch nicht besser funktionieren würde.
Was du aber machen kannst, ist die Einstellung von CC im Winter zu ändern, sodass z. B. bis 90% SOC immer alles geladen wird und erst dann geregelt wird (bei mir CC Einstellung 1).
Das Tibber Skript so einstellen, dass nur bis 90% geladen wird und 10% noch für unerwartete PV-Leistung bleibt.
So mache ich das aktuell. -
@malei
Wenn Notstrom Sockel auf 5 % ist und Notstrom min auf 25 % dann müsste Notstrom aktuell = 21% sein -
@arnod
Die Prognosen sind ne Katastrophe, wir wohnen hier auf nem Berg, da iss es öfter so, dass 1km weiter komplett Nebel iss oder umgekehrtBei solchen Schwankungen von drüber und drunter ist eine gute Vorhersage unmöglich.
Ich überlege mir mal was Ich anstelle um solche Themen zu vermeiden, dein vorschlag ist ein guter ansatz
hab seit gestern im tibber scrpt Fehler drin, hab jetzt eben auf 1.3.14 umgestellt in der Hoffnung, dass sie weg seien:
javascript.0 07:58:56.655 info script.js.common.00_Haus.31_PV_Anlage.Tibber_Script_1_3_14: -==== Tibber Skript Version 1.3.14 ====- javascript.0 07:58:56.656 info script.js.common.00_Haus.31_PV_Anlage.Tibber_Script_1_3_14: registered 5 subscriptions, 2 schedules, 0 messages, 0 logs and 0 file subscriptions javascript.0 07:58:56.674 info script.js.common.00_Haus.31_PV_Anlage.Tibber_Script_1_3_14: -==== alle Objekt ID's angelegt ====- javascript.0 07:58:56.677 error script.js.common.00_Haus.31_PV_Anlage.Tibber_Script_1_3_14: TypeError: datenMorgen is not iterable javascript.0 07:58:56.677 error at ScriptStart (script.js.common.00_Haus.31_PV_Anlage.Tibber_Script_1_3_14:151:45) javascript.0 07:59:00.073 error script.js.common.00_Haus.31_PV_Anlage.Tibber_Script_1_3_14: Fehler: 'data' ist entweder kein Array oder es ist leer. javascript.0 07:59:00.073 error script.js.common.00_Haus.31_PV_Anlage.Tibber_Script_1_3_14: Fehler in Funktion tibberSteuerungHauskraftwerk: Cannot read properties of undefined (reading 'lowPhases') javascript.0 07:59:00.084 error script.js.common.00_Haus.31_PV_Anlage.Tibber_Script_1_3_14: TypeError: data.forEach is not a function javascript.0 07:59:00.084 error at extractData (script.js.common.00_Haus.31_PV_Anlage.Tibber_Script_1_3_14:1178:14) javascript.0 07:59:00.084 error at createDiagramm (script.js.common.00_Haus.31_PV_Anlage.Tibber_Script_1_3_14:1193:5) javascript.0 07:59:00.085 error at async Object.<anonymous> (script.js.common.00_Haus.31_PV_Anlage.Tibber_Script_1_3_14:1841:9)
keine ahnung wo die auf einmal herkommen!
-
Mal ne Frage in die Runde:
Hat Irgendjemand mal das 360° Automatik ding von E3DC laufen lassen und geschaut wie sich das verhält?
Mich würde es schon interessieren wie das System Arbeitet. -
@zelkin absolut unbrauchbar im vergleich zu dem möglichkeiten mit arnoD s tool
e3dc ist nicht tagespreisflexibel oder nach Prognosenwas noch kommt ist fraglich aber wird wohl vieles nachmachen was es bereits gibt ob es von KI oder schlauen köpfen kommt ist erstmal egal
-
@zelkin sagte in E3DC Hauskraftwerk steuern:
hab seit gestern im tibber scrpt Fehler drin, hab jetzt eben auf 1.3.14 umgestellt in der Hoffnung, dass sie weg seien:
Hast du den Fehler noch?
Kann das bei mir nicht nachstellen.
Der Fehler tritt auf wen versucht wird, eine nicht iterierbare Variable mit einer Iterationsmethode zu verwenden.
Was eigentlich nicht sein kann, da die JSON PricesTomorrow und PricesToday in ein neues Array zusammengeführt werden und somit nie ein leeres Array entstehen kann, also null oder undefined sein kann.
Was ist bei dir untertibberlink.0.Homes.(tibberLinkId).PricesTomorrow.json
enthalten?Nachtrag: Fehler gefunden, wird mit Version 1.3.15 behoben.
-
Tibber Skript,
Version: 1.3.15 auf Github hochgeladen.Änderungen:
- Fehler in der Funktion getCurrentPrice() behoben. Es wird geprüft, ob datenMorgen ein gültiges Array ist.
-
@arnod
HiFehler liegt im Moment nicht mehr an, versuche gerade das angeschwollene Log runterzuladen um zu Prüfen ab wann der Fehler nicht mehr vorhanden ist.
..........
Gestern kein iterable und data Fehler, ab hier ging es dann los, und nein, Ich hab nachts um 12 nichts verändert :
2025-01-31 00:01:54.825 - [31merror[39m: javascript.0 (1759236) script.js.common.00_Haus.31_PV_Anlage.Tibber_Script_1_3_12: TypeError: datenMorgen is not iterable 2025-01-31 07:44:00.058 - [31merror[39m: javascript.0 (1759236) script.js.common.00_Haus.31_PV_Anlage.Tibber_Script_1_3_12: Fehler: 'data' ist entweder kein Array oder es ist leer.
Der Iterable Fehler ist dann mit einem neustart des Script weggefallen, hat sich aber (vermutlich durch den scriptwechsel) noch verändert:
2025-01-31 07:43:00.124 - [31merror[39m: javascript.0 (1759236) script.js.common.00_Haus.31_PV_Anlage.Tibber_Script_1_3_12: Fehler in Funktion getCurrentPrice(): datenMorgen is not iterable 2025-01-31 07:58:56.677 - [31merror[39m: javascript.0 (1759236) script.js.common.00_Haus.31_PV_Anlage.Tibber_Script_1_3_14: TypeError: datenMorgen is not iterable
Und der Data Fehler ist Ominöser weise um ca 13 Uhr weggefallen ...... könnte nach meiner glaskugel an Tibber gelegen haben
2025-01-31 13:01:00.083 - [31merror[39m: javascript.0 (1759236) script.js.common.00_Haus.31_PV_Anlage.Tibber_Script_1_3_14: Fehler: 'data' ist entweder kein Array oder es ist leer.
Aktualisierung auf .15 hab Ich eingespielt, melde mich wenn es nochmal vorkommt!
Der Vollständigkeit halber:
Derzeit hab Ich in dem Datenpunkt:[{"total":0.3719,"energy":0.1369,"tax":0.235,"startsAt":"2025-02-01T00:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.363,"energy":0.1294,"tax":0.2336,"startsAt":"2025-02-01T01:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3568,"energy":0.1242,"tax":0.2326,"startsAt":"2025-02-01T02:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3507,"energy":0.1191,"tax":0.2316,"startsAt":"2025-02-01T03:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3504,"energy":0.1189,"tax":0.2315,"startsAt":"2025-02-01T04:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3524,"energy":0.1205,"tax":0.2319,"startsAt":"2025-02-01T05:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3602,"energy":0.1271,"tax":0.2331,"startsAt":"2025-02-01T06:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3812,"energy":0.1447,"tax":0.2365,"startsAt":"2025-02-01T07:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3916,"energy":0.1535,"tax":0.2381,"startsAt":"2025-02-01T08:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3784,"energy":0.1424,"tax":0.236,"startsAt":"2025-02-01T09:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3617,"energy":0.1284,"tax":0.2333,"startsAt":"2025-02-01T10:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3518,"energy":0.1201,"tax":0.2317,"startsAt":"2025-02-01T11:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3402,"energy":0.1103,"tax":0.2299,"startsAt":"2025-02-01T12:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.332,"energy":0.1034,"tax":0.2286,"startsAt":"2025-02-01T13:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3442,"energy":0.1137,"tax":0.2305,"startsAt":"2025-02-01T14:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.363,"energy":0.1295,"tax":0.2335,"startsAt":"2025-02-01T15:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3927,"energy":0.1544,"tax":0.2383,"startsAt":"2025-02-01T16:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.4092,"energy":0.1683,"tax":0.2409,"startsAt":"2025-02-01T17:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.4083,"energy":0.1675,"tax":0.2408,"startsAt":"2025-02-01T18:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.4029,"energy":0.163,"tax":0.2399,"startsAt":"2025-02-01T19:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3953,"energy":0.1566,"tax":0.2387,"startsAt":"2025-02-01T20:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3818,"energy":0.1452,"tax":0.2366,"startsAt":"2025-02-01T21:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3776,"energy":0.1417,"tax":0.2359,"startsAt":"2025-02-01T22:00:00.000+01:00","currency":"EUR","level":"NORMAL"},{"total":0.3657,"energy":0.1317,"tax":0.234,"startsAt":"2025-02-01T23:00:00.000+01:00","currency":"EUR","level":"NORMAL"}]
Vielen Dank für deinen Support
-
@zelkin um Mitternacht wandern die Prices tomorrow in Prices today und Prices tomorrow ist leer.
-
Jup, Stimmt!
Was mich verwundert, warum hab ich den fehler dann nicht 24h vorher bekommen
Da hätte das Problem schließlich das selbe sein müssen. -
@zelkin Und um 13.00 oder auch später werden dann die Daten für den nächsten Tag eingetragen. Deshalb war auch der Fehler bei Dir um 13.00 wieder weg. Sollte aber eigentlich mit der aktuellen Version behoben sein.
-
@gargano
Prüfe Ich morgen früh mal wie es aussieht
Ich geb rückmeldung -
-
@arnod
Wie kann ich verhindern, daß die Batterie nicht entladen wird, wohl aber geladen werden kann ?
Du setzt in Deinem Script e3dc-rscp.0.EMS.MAX_DISCHARGE_POWER.Aber bei meinem System bewirkt e3dc-rscp.0.EMS.MAX_DISCHARGE_POWER auf Null setzen nichts.
E3DC S10E Compact.
Vielen Dank.
[Edit] Habs gefunden, ich muss noch e3dc-rscp.0.EMS.POWER_LIMITS_USED auf true setzen.
-
@gargano
e3dc-rscp.0.EMS.MAX_DISCHARGE_POWER setze ich nur am Abend auf null, wenn die Notstromreserve erreicht ist.
Das verhindert das Entladen, auch wenn das Script mal gestoppt wird wegen eines Backups z.B.
Diese Objekt-ID sollte man auch so selten wie nur möglich verwenden, da bei jeder Änderung auf die interne SSD geschrieben wird, um diese Einstellung zu sichern.Jetzt zu deiner Frage.
E3DC hat aktuell keine einfache Steuerungsmöglichkeit, um nur das Entladen der Batterie zu verhindern, aber das Laden zu ermöglichen.
Einzige Möglichkeit ist ein Script zu schreiben, das ständig überwacht, ob ausreichend PV-Leistung vorhanden ist, um die Batterie zu laden oder nicht.
Wenn ja, dann wird die Regelung E3DC überlassen, da hier das Standardverhalten ist, den kompletten Überschuss in die Batterie zu laden.
Wenn das Script feststellt, dass zu wenig PV-Leistung vorhanden ist und damit aus der Batterie entladen wird, muss alle 6 sek.e3dc-rscp.0.EMS.SET_POWER_MODE
auf 1(IDLE) unde3dc-rscp.0.EMS.SET_POWER_VALUE
auf 0 gesetzt werden, um das entladen zu unterbinden.
Wenn die PV-Leistung wieder ausreicht und die Batterie geladen werden soll, dann einfach nichts mehr setzen und E3DC übernimmt wieder nach ca.2 sek. die Regelung.Hoffe, das ist einigermaßen verständlich.
Wichtig ist noch, dass in den Einstellungen der e3dc-rscp Instanz "SET_POWER Wiederholintervall" auf 0 sek. eingestellt ist.
-
@gargano sagte in E3DC Hauskraftwerk steuern:
[Edit] Habs gefunden, ich muss noch e3dc-rscp.0.EMS.POWER_LIMITS_USED auf true setzen.
Bitte diese beiden Objekt ID nicht ständig zum Regeln verwenden.
E3DC hat davon abgeraten, da es die Lebensdauer der internen SSD verkürzt. -
@arnod
Schade , das wollte ich eigentlich verwenden, um PV Überschuss ins E-Auto zu laden ( Ich hab einen Hybrid und daher nicht sehr viel Kapazität) und den Rest der noch übrig ist in die E3DC Batterie zu laden.
So geht halt der Rest ins Netz.Ist das eigentlich eine SD-Karte oder eine richtige SSD ?
Angeblich soll es ein inhibit Discharge bald geben, das genau die Funktion macht.
Hast Du da etwas schon gehört ?Wo gibt es eigentlich die Doku für E3DC RSCP ?