NEWS
E3DC Hauskraftwerk steuern
-
@arnod
Neues script kopiert und gestartet... dann der log komplett rot...error...
Alle states können nicht eingelesen werden.bin gerade am suchen woran es liegt..
Edit:
OK du hast in den Useranpassungen oben Anpassungen vorgebnommen... jeweils den Punkt entfernt...
bzw. im Script die Punkte hinzugefügt. Das hat natürlich Auswirkungen wenn der obere User Teil nicht angefasst wird.Kannst du die Useranpassungen nicht auch noch in die Objektliste auslagern unter den Bereich USER_ANPASSUNGEN. Also jeweils noch neue States dazu erstellen?
-
@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. -
@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.
-
@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...
-
@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.
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).
" 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.
-
@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! -
@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. -
@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.
-
@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;
}); -
@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.
-
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
-
-
Hat eigentlich heute noch jemand das Problem, dass sich das Hauskraftwerk nicht mit dem E3DC Server verbinden kann? (rote Weltkugel in der Anzeige)
-
@arnod Ja bei mir das gleiche, auch die App geht sporadisch nicht.
-
@stiwy18
Ok, Danke.
Dann muss ich erstmal keinen Fehler bei mir suchen. -
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.
-
@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 -
@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.jsonWichtig 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. -
@arnod Danke!
Mit der richtige Path-Antragung funktioniert es auch
Mit der Steuerung der zweiten Wallbox muss einmal versuchen eine Lösung zu finden. -
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:
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:
-
@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?