NEWS
E3DC Hauskraftwerk steuern
-
@arnod sagte in E3DC Hauskraftwerk steuern:
Bitte entschuldige, hätt ich auch ein bisschen mehr Bilder schicken können.
Ja das mit den Leerzeichen hatte ich schon beim Google gesucht, leider halt nach "Tabstopp" na gut, danke dafürIm gleichen Bild ist unten PV Leistung aktuell:
Die Steuerung des ACThor erfolgt über Modbus TCP.
Der ACThor ist mit dem S10 verbunden und wird darüber geregelt.
Bis zur max. Abschalttemperatur wird dem ACThor jeweils ca. der ansonsten einzuspeisende Wert geschickt und der regelt dann darauf. Wird alles vom S10 an den ACThor übergeben, ist sogar fest im Smart Funktionen Menü mit drin. Muss mal Eberhard fragen ob das vielleicht mit ihm zusammenhängt. -
@arnod Danke für die Erläuterung - Ich hoffe du konntest dich gut erholen im Urlaub
Macht für mich einiges verständlicher aber leider immer noch nicht schlüssig
So sieht aktuell meine Config aus
Regelbeginn und Ende wäre extrem spät und sehr kurz
Habe ich da einen Eingabefehler?Prognose Prop 53kwh / Forcast 25kwh
Jedoch steht bei Automatik auf Stufe 1
Voll ladenRegelbeginn laut Ebas Tool
-
Die Zeiten Regelbeginn und Ende vom Script bitte ignorieren, da ist noch ein Rechenfehler enthalten von der Übersetzung aus dem C++ Programm in Javascript.
Da bin ich gerade dabei diesen zu finden.
Wenn jemand C++ kann, könnte er mir helfenWas den Wert PrognoseBerechnung_kWh_heute betrifft, vermute ich das du das Script unter dem Tag noch mal gestartet hast. Dann wird vom Script der Speicherinhalt von der Prognose abgezogen und auf dieser Basis eine Einstellung gewählt.
Lass mal das Script Morgen durchlaufen und ändere den Parameter LogAusgabe= true, dann sollte Morgen im LOG erkennbar sein mit welchen Werten welche Einstellung gewählt wurde.
Sollte dann so aussehen:
2021-06-05 06:10:05.003 - info: javascript.1 (614) script.js.common.E3DC_Control: *************************** Es wurde Dach 2 abgerufen **********************************
2021-06-05 06:10:06.848 - info: javascript.1 (614) script.js.common.E3DC_Control: Rueckmeldung :{"result":{"2021-06-05":36864,"2021-06-06":17762},"message":{"code":0,"type":"success","text":"","info":{"place":"xxxx xxxxxxxxxx, xxxxxxxxxx, xxxxxxxxx, DE","timezone":"Europe/Berlin","distance":1.05},"ratelimit":{"period":3600,"limit":12,"remaining":7}}}
2021-06-05 06:10:06.849 - info: javascript.1 (614) script.js.common.E3DC_Control: Gespeichert wurde Dachfläche =2/2 : 36864 :17762
2021-06-05 06:10:08.119 - info: host.iobroker instance system.adapter.dwd.0 terminated with code 11 (ADAPTER_REQUESTED_TERMINATION)
2021-06-05 06:10:10.002 - info: javascript.1 (614) script.js.common.E3DC_Control: *************************** Es wurde Dach 1 abgerufen **********************************
2021-06-05 06:10:10.718 - info: javascript.1 (614) script.js.common.E3DC_Control: Rueckmeldung :{"result":{"2021-06-05":38766,"2021-06-06":18626},"message":{"code":0,"type":"success","text":"","info":{"place":"xxxx xxxxxxxxxx, xxxxxxxxxx, xxxxxxxxx, DE","timezone":"Europe/Berlin","distance":1.05},"ratelimit":{"period":3600,"limit":12,"remaining":7}}}
2021-06-05 06:10:10.719 - info: javascript.1 (614) script.js.common.E3DC_Control: Gespeichert wurde Dachfläche =1/2 : 38766 :18626
2021-06-05 06:10:15.008 - info: javascript.1 (614) script.js.common.E3DC_Control: RB = 7:1
2021-06-05 06:10:15.008 - info: javascript.1 (614) script.js.common.E3DC_Control: RE = 7:9
2021-06-05 06:10:15.008 - info: javascript.1 (614) script.js.common.E3DC_Control: LE = 7:42
2021-06-05 06:10:15.010 - info: javascript.1 (614) script.js.common.E3DC_Control: Prognose Forecast in kWh = 75.63
2021-06-05 06:10:15.010 - info: javascript.1 (614) script.js.common.E3DC_Control: Prognose Proplanta in kWh = 94.024
2021-06-05 06:10:15.010 - info: javascript.1 (614) script.js.common.E3DC_Control: Prognose_kWh nach Abzug Korrekturfaktor = 94.024
2021-06-05 06:10:15.011 - info: javascript.1 (614) script.js.common.E3DC_Control: Bereits produzierte PV-Leistung = 0.1425238046967266
2021-06-05 06:10:15.011 - info: javascript.1 (614) script.js.common.E3DC_Control: Prognose_kWh_heute für Berechnung = 93.88147619530328
2021-06-05 06:10:15.012 - info: javascript.1 (614) script.js.common.E3DC_Control: BatterieProzent(wert)=52.814
2021-06-05 06:10:15.012 - info: javascript.1 (614) script.js.common.E3DC_Control: Berechneter Eigenverbrauch = 26
2021-06-05 06:10:15.012 - info: javascript.1 (614) script.js.common.E3DC_Control: AktSpeicherSoC in % = 61
2021-06-05 06:10:15.013 - info: javascript.1 (614) script.js.common.E3DC_Control: FreieKapBatterie_kWh = 15.21
2021-06-05 06:10:15.013 - info: javascript.1 (614) script.js.common.E3DC_Control: Ueberschuss in kWh = 52.814
2021-06-05 06:10:15.013 - info: javascript.1 (614) script.js.common.E3DC_Control: Ueberschuss in Prozent = 100
2021-06-05 06:10:15.013 - info: javascript.1 (614) script.js.common.E3DC_Control: Bewölkungsgrad 12 Uhr Proplanta 12.5
2021-06-05 06:10:15.013 - info: javascript.1 (614) script.js.common.E3DC_Control: Bewölkungsgrad 15 Uhr Proplanta 87.5
2021-06-05 06:10:15.014 - info: javascript.1 (614) script.js.common.E3DC_Control: Berechneter Unload SoC ist = -39 -
@arnod said in E3DC Hauskraftwerk steuern:
Wenn jemand C++ kann, könnte er mir helfen
Ich schau es mir nächste Woche mal an
Danke!
-
Neue Version 0.2.24 hochgeladen.
Version: 0.2.24 Änderungen:
Regelzeitraum Start, Ende und Ladezeitende werden jetzt nach der Formel von Eberhard richtig berechnet.Für alle die nicht das original Script verwenden, es muss nur die Funktion "MEZ_Regelzeiten()" komplett kopiert werden, alles andere ist gleich geblieben.
Ich habe es mit der aktuellen E3DC-Control Version 2021.05.24.1 getestet, da Eberhard anscheinend an der Zeitberechnung immer wieder mal was optimiert.
-
@arnod Sehr schön. Danke auch für die Updatehinweise; das spart enorm Zeit ein, wenn man keine Zeilen vergleichen muss (gerne beibehalten, zumindest wenn es so einfach beschreibbar ist).
-
@tbsjah
Hallo,
benutzt du eine desktop oder lite version ? Wenn du die gui auf deinem Linux system öfnnen willst, musst du die consolen eingabe um die gui zu öffnen innerhalb der desktop instanz ausführen. ohne desktop kannst du mit voreingestellter config mittels -c und -e den consolen betrieb und den export in mqtt ohne desktop starten. wenn du dann aber das ssh Fenster schließt wird auch die sitzung beendet. Das hatte ich zwischenzeitlich mit einem Terminal im Terminal gelöst , wie z.B tmux oder screen. -
Gelöscht
-
@smartboart danke
Funktioniert nur wenn ich direkt per HDMI verbunden bin
Über Remote session bekomme ich es nicht zum laufen
da habe ich immer einen screen x Fehler -
@arnod Frage wegen der Regelung
Bis 15 Uhr ist es das Ziel 95% geladen zu haben. Sehe ich das richtig?
Bei mir wird das in den letzten Tag nicht erreicht. Es wird bei aktiven Script immer nur mit 500Watt geladenFragen zur Berechnungsgrundlage --> 24kWh
Prognose - Eigenverbrauch - Wirkungsgrad?Log
-
@tbsjah
Mit deiner Einstellung sollte so geregelt werden das bis 15 Uhr UTC 17Uhr MESZ der Batteriespeicher zu 95 % geladen ist.
Um zu sehen, warum er das nicht erreicht, müsstest du dein Diagramm ansehen.
Ab wann war es bewölkt? Wie hoch war dein Eigenverbrauch? Wurde Vormittags ins Netz eingespeist?
Für die Einstellung 5 würde ich Parameter "ladeschwelle" auf min. 50 % einstellen, dann wird dein Batteriespeicher mit voller Überschussleistung schon mal bis 50 % sicher geladen, wenn es Nachmittags bewölkt ist.Mit Einstellung 2 hat mein Diagramm heute so ausgesehen:
Da ich mein E-Auto heute Nachmittag geladen habe, konnte der Eingestellte SoC von 95 % bei mir auch nicht erreicht werden.
-
@tbsjah sagte in E3DC Hauskraftwerk steuern:
Fragen zur Berechnungsgrundlage --> 24kWh
Prognose - Eigenverbrauch - Wirkungsgrad?Meinst du Prognose_kWh_heute für Berechnung = 24.49180317992532 ?
Der Wert berechnet sich aus der Prognose Forecast in kWh = 38.483 abzüglich bereits produzierte PV-Leistung = 13.991196820074677
-
Neue Version 0.2.25 hochgeladen.
Version: 0.2.25 Änderungen:
Beim Abrufen der Wetterdaten Forecast wurden die letzten Werte vorher nicht gelöscht.
Wenn aus irgendeinem Grund keine neuen Daten abgerufen werden konnten, wurde mit den alten Werten gerechnet.Für alle die nicht das original Script verwenden, es muss nur ab Zeile 363 bis 367 und die Funktion "SheduleForecast()" komplett kopiert werden, alles andere ist gleich geblieben.
-
Super das du das script auch weiterhin verbesserst, ich wünsche ich könnte auch mehr Java programmieren, muss mich da echt mal hinsetzen.
Ich hätte eine Frage zum Vis und hoffe es kann mir jemand erklären warum es mir den CircleKnob nicht anzeigt.
Hab schon geschaut das ich alles installiert hab; meines Erachtens sollte das auch richtig installiert und im richtigen Datenpunkt sein (hab nix geändert) aber es ist nicht da.
-
@chilihead
Wenn nichts angewählt ist wird auch nichts angezeigt.
Markiere mal ein Feld und schau ob dann auch nichts angezeigt wird. -
@arnod ach das kommt wenn ich oben was auswähle, das ist ja geil
Hab zum Test mal nen Zahlengenerator laufen lassen was da überhaupt alles drin ist; wenn man weiß was sich dahinter verbirgt kommt man auch auf "ach das könnte was mit oben zu tun haben"Dank dir für die schnelle Antwort
-
@arnod Moin. jetzt habe ich auch mal wieder ein Problem. Hatte gestern Nacht das Update 0.2.25 übernommen (alles nach dem User-Abschnitt kopiert) und heute geht das Umschalten der Monate in der Prognose-View manchmal nicht mehr. Kann natürlich auch Zufall sein, habe das zuletzt vermutlich Anfang Juni benutzt. Es passiert dann einfach nichts, keine Aktualisierung des Diagramms und auch kein Fehler im Log (javascript.0 im debug-Modus).
Habt ihr evtl. auch dieses Problem oder/und wie könnte ich das debuggen? Gab es View-Anpassungen, die ich nicht übernommen haben könnte?Ergänzung: Hmmm, die Probleme scheinen (meistens) anzufangen, wenn ich einmal auf Juli schalte und dann wieder zurück auf bereits vergangene Monate oder den aktuellen Monat. Ist aber nicht jedes Mal reproduzierbar, da muss noch irgendwas anderes reinspielen.
Weitere Beobachtung: Ab Mitte Juli sind bei mir die Daten (wohl aus dem letzten Jahr?) vorhanden. Mitte Juli 2020 hatte ich möglicherweise damit angefangen. Jetzt werden im Juli 2021 Daten aus Juli 2020 angezeigt. Werden die gelöscht, wenn der Juli 2021 beginnt, so dass der Monat dann leer angezeigt wird?Allerdings stimmt für Juni auch schon irgendwas nicht, denn für Ende Juni sind auch schon Daten da?! Wie geht das denn?
Noch ne Ergänzung: Ich musste vor 2-3 Tagen ein Backup von einer Woche vorher im Raspi einspielen. Aber das erklärt ja eigentlich auch nicht die bereits vorhandenen Daten für bis Ende Juni...
Hier noch der Juli:Weitere Ergänzung: Noch ein bisschen rumgespielt - es scheint so, als werden im Juni die noch nicht erreichten Tage zum Monatsende hin mit den Tagen aus Mai angezeigt. Wenn ich zwischen Mai und Juni umschalte, dann bleiben die Balken für 22. bis 30. unverändert.
-
@stevie77 sagte in E3DC Hauskraftwerk steuern:
Habt ihr evtl. auch dieses Problem oder/und wie könnte ich das debuggen? Gab es View-Anpassungen, die ich nicht übernommen haben könnte?
Habe es bei mir gerade getestet und konnte kein Problem feststellen.
Vor der Version 0.2.21 war ein Fehler beim Speichern History JSON enthalten, wo es möglich war das der aktuelle Monat mit falschen Daten überschrieben wurde.Weitere Beobachtung: Ab Mitte Juli sind bei mir die Daten (wohl aus dem letzten Jahr?) vorhanden. Mitte Juli 2020 hatte ich möglicherweise damit angefangen. Jetzt werden im Juli 2021 Daten aus Juli 2020 angezeigt. Werden die gelöscht, wenn der Juli 2021 beginnt, so dass der Monat dann leer angezeigt wird?
Richtig, die alten Daten aus dem letzten Jahr werden immer erst mit Beginn den aktuellen Monat gelöscht.
Allerdings stimmt für Juni auch schon irgendwas nicht, denn für Ende Juni sind auch schon Daten da?! Wie geht das denn?
Könnte noch mit dem Fehler im Skript vor Version 0.2.21 zu tun haben.
Weitere Ergänzung: Noch ein bisschen rumgespielt - es scheint so, als werden im Juni die noch nicht erreichten Tage zum Monatsende hin mit den Tagen aus Mai angezeigt. Wenn ich zwischen Mai und Juni umschalte, dann bleiben die Balken für 22. bis 30. unverändert.
Das ist genau der Fehler vor der Version 0.2.21, wenn in Vis zum Monatswechsel ein anderer Monat angewählt wahr wurde der aktuelle Monat mit dem angewählten Monat überschrieben.
Werde mir das mal anschauen, ob das Löschen der alten Daten funktioniert. Habe erst ab August alte Werte drin so das mir ein Fehler im Script erst da auffallen würde. Werde mal für Juli zum Testen Werte eintragen.
-
@arnod
Servus Arno,
würdest du mir für genau den Datenpunkt zu "zerlegen" den Code posten. Bei mir zeigt er zum Teil sehr merkwürdige Sachen an. z.B: Typ2_gesteckt = 128 u.ä.
Bei mir sieht der Code derzeit so aus:// Wallbox_2_CTRL var id3 = 'modbus.0.holdingRegisters.40088_WallBox_0_CTRL'; createState('0_userdata.0.Solar.WB_vorhanden_verfügbar'); createState('0_userdata.0.Solar.Solarbetrieb1_Mischbetrieb0'); createState('0_userdata.0.Solar.LadenAbgebrochen1_LadenFreigegeben0'); createState('0_userdata.0.Solar.Auto_lädt'); createState('0_userdata.0.Solar.Typ2_verriegelt'); createState('0_userdata.0.Solar.Typ2_gesteckt'); createState('0_userdata.0.Solar.Schuko_an'); createState('0_userdata.0.Solar.Schuko_gesteckt'); createState('0_userdata.0.Solar.Schuko_verriegelt'); createState('0_userdata.0.Solar.Relais_Schuko_an'); createState('0_userdata.0.Solar.Relais_1_Typ2_an'); createState('0_userdata.0.Solar.Relais_2_Typ2_an'); createState('0_userdata.0.Solar.1Phase_1_3Phasen_0'); createState('0_userdata.0.Solar.nicht_belegt'); on(id3, function (obj) { setState('0_userdata.0.Solar.WB_vorhanden_verfügbar', obj.state.val & 0xFF, true); setState('0_userdata.0.Solar.Solarbetrieb1_Mischbetrieb0', (obj.state.val >> 1) & 0xFF, true); setState('0_userdata.0.Solar.LadenAbgebrochen1_LadenFreigegeben0', (obj.state.val >> 2) & 0xFF, true); setState('0_userdata.0.Solar.Auto_lädt', (obj.state.val >> 3) & 0xFF, true); setState('0_userdata.0.Solar.Typ2_verriegelt', (obj.state.val >> 4) & 0xFF, true); setState('0_userdata.0.Solar.Typ2_gesteckt', (obj.state.val >> 5) & 0xFF, true); setState('0_userdata.0.Solar.Schuko_an', (obj.state.val >> 6) & 0xFF, true); setState('0_userdata.0.Solar.Schuko_gesteckt', (obj.state.val >> 7) & 0xFF, true); setState('0_userdata.0.Solar.Schuko_verriegelt', (obj.state.val >> 8) & 0xFF, true); setState('0_userdata.0.Solar.Relais_Schuko_an', (obj.state.val >> 9) & 0xFF, true); setState('0_userdata.0.Solar.Relais_1_Typ2_an', (obj.state.val >> 10) & 0xFF, true); setState('0_userdata.0.Solar.Relais_2_Typ2_an', (obj.state.val >> 11) & 0xFF, true); setState('0_userdata.0.Solar.1Phase_1_3Phasen_0', (obj.state.val >> 12) & 0xFF, true); setState('0_userdata.0.Solar.nicht_belegt', (obj.state.val >> 13) & 0xFF, true);
-
@streit187
Ich habe die Script Sammlung für die Modbus Datenpunkte hier bereits gepostet:
Script Sammlung für E3DCEntweder alles verwenden oder nur die Teile die für dich relevant sind.