NEWS
E3DC Hauskraftwerk steuern
-
@stevie77 sagte in E3DC Hauskraftwerk steuern:
@ArnoD Achso, perfekt. Dann sollte sich ja heute Abend um 22 Uhr erstmals eine näherungsweise passende Summe in der Statistik abzeichnen.
Das funktioniert! Danke Arno.
Um die Schätzungen nun etwas vorsichtiger zu fahren, muss ich nun mit dem const nKorrFaktor = 1 spielen, ne? Also mal auf 0.8 stellen oder so damit die Schätzungen kleiner werden?!Das waren die realen Werte (ans Finanzamt würde ich Sourceanalytix-Werte nicht melden, knapp 5 kWh Ungenauigkeit an nur einem Tag/bei nur 60 erzeugten kWh):
Dann gibt es da noch die Anzeige "PV-Leistung heute" in dem Kästchen auf der Seite mit den Schaltern, die momentan sourceanalytix.0.modbus__0__holdingRegisters__40068_PV_Leistung.delivery.01_current_day anzeigt. Wie wäre die beste Vorgehensweise um die beiden kumulierten Werte PV1 und PV2 den Tag über immer wieder aktualisieren zu lassen? Ein eigenes Skript, das mit on(sourceanalytix-Wert) beide Werte in nen eigenen State schreibt, oder? Für die Anzeige der aktuellen PV-Gesamtleistung mache ich so was mit den beiden Modbus-Werten, das müsste dann ja auch mit den Sourceanalytix-Werten gehen...
-
@ArnoD hi , hoffe nicht...denke es war die 7...Kann esaber nicht mit gewissheit sagen..hatte alle states gelöscht und neu gestartet bevor du geantwortet hast...
malne Frage zur Ausrichtungder panels und deinem hinweis im script...
const nAzimuth2 = 52 // Ausrichtung der Module (-180=north, -90=east, 0=south, 90=west, 180=north)
laut solcast sieht das anders aus...
-
@stevie77 Kann man in ioBroker eigentlich Funktionen aufrufen oder Werte aus Variablen auslesen, die in einem anderen Script erstellt wurden? Anwendungsfall wäre z.B. auf die Konfigurationsdaten in deinem Skript zuzugreifen um sie nicht selbst in nem eigenen Skript nochmals angeben zu müssen...
-
Um die Schätzungen nun etwas vorsichtiger zu fahren, muss ich nun mit dem const nKorrFaktor = 1 spielen, ne? Also mal auf 0.8 stellen oder so damit die Schätzungen kleiner werden?!
Es sind aktuell noch zwei Parameter mit denen man spielen kann.
nWirkungsgradWR in Prozent
nKorrFaktor in kWh
Ich würde erst nWirkungsgradWR = 100 einstellen und nKorrFaktor = 0 um zu sehen wie gut die Prognose ohne Korrektur ist und dann rantasten.Dann gibt es da noch die Anzeige "PV-Leistung heute" in dem Kästchen auf der Seite mit den Schaltern, die momentan sourceanalytix.0.modbus__0__holdingRegisters__40068_PV_Leistung.delivery.01_current_day anzeigt. Wie wäre die beste Vorgehensweise um die beiden kumulierten Werte PV1 und PV2 den Tag über immer wieder aktualisieren zu lassen? Ein eigenes Skript, das mit on(sourceanalytix-Wert) beide Werte in nen eigenen State schreibt, oder? Für die Anzeige der aktuellen PV-Gesamtleistung mache ich so was mit den beiden Modbus-Werten, das müsste dann ja auch mit den Sourceanalytix-Werten gehen...
Stimmt habe ich übersehen, werde ich ändern und die Summe von PV1 und PV2 hier anzeigen.
Ich werde auch das Diagramm bei Änderung der sourceanalytix-Werte aktualisieren so das man eine live Anzeige hat. -
malne Frage zur Ausrichtungder panels und deinem hinweis im script...
const nAzimuth2 = 52 // Ausrichtung der Module (-180=north, -90=east, 0=south, 90=west, 180=north)
laut solcast sieht das anders aus...
Habe mich an die API Beschreibung von Forecast gehalten:
Restful API for Solar plant production -
@stevie77 sagte in E3DC Hauskraftwerk steuern:
Kann man in ioBroker eigentlich Funktionen aufrufen oder Werte aus Variablen auslesen, die in einem anderen Script erstellt wurden?
Ja, wenn die Funktion in einem Skript in der Gruppe global deklariert ist.
Würde ich aber mit Vorsicht verwenden, da diese Funktionen in alle anderen Scripte kopiert werden. -
@ArnoD sagte in E3DC Hauskraftwerk steuern:
@stevie77 sagte in E3DC Hauskraftwerk steuern:
Kann man in ioBroker eigentlich Funktionen aufrufen oder Werte aus Variablen auslesen, die in einem anderen Script erstellt wurden?
Ja, wenn die Funktion in einem Skript in der Gruppe global deklariert ist.
Würde ich aber mit Vorsicht verwenden, da diese Funktionen in alle anderen Scripte kopiert werden.Danke, das habe ich auch inzwischen so recherchiert. Meine Passwörter brauch' ich nicht in jedes Script kopiert, da kopiere ich lieber die Werte in das zusätzliche Skript...schade, dass es da kein include o.ä. gibt wo man das programmatisch steuern kann.
-
@ArnoD sagte in E3DC Hauskraftwerk steuern:
Ich würde erst nWirkungsgradWR = 100 einstellen und nKorrFaktor = 0 um zu sehen wie gut die Prognose ohne Korrektur ist und dann rantasten.
Okay, probiere ich mal. Die 88% sind bei dir auch ein Schätzwert, wenn ich das richtig verstanden habe.
Und welchen Wert dann zuerst runtersetzen wenn die Schätzung wie erwartbar zu hoch ist?
Wenn ich den Codeif (PrognoseMorgen_kWh > 87) {PrognoseMorgen_kWh = PrognoseMorgen_kWh + nKorrFaktor;}
richtig verstehe, dann ist das gar kein Faktor (also Multiplikation), sondern ein Wert, der zur Prognose addiert wird. Ich dachte als Faktor wäre 1 neutral, deswegen hätte ich 0 jetzt auch nicht verstanden. Ich hab also immer 1 dazu addiert. Tatsächlich könne ich mit -2 beispielsweise 2 kWh Schätzung abziehen, korrekt?
Und nWirkungsgradWR ist eigentlich der Faktor, 100 wäre neutral und ich sollte dann mal mit 70 oder so testen...
Scheint wie bei Einstellung einer Heizkurve zu sein: nWirkungsgradWR bestimmt die Kurve und nKorrFaktor verschiebt diese dann nur noch nach oben oder unten. Also so ganz grob bildlich gesprochen.
Ich werde auch das Diagramm bei Änderung der sourceanalytix-Werte aktualisieren so das man eine live Anzeige hat.
Was bedeutet das? Also nicht mehr Erstellung des Diagramms mit tatsächlichem Verbrauch einmal um 22 Uhr, sondern fortwährend solange Strom erzeugt wird? Also quasi ein wachsender grüner Balken? Das wäre cool...wobei die Bekanntgabe der Werte um 22 Uhr auch was hatte...
-
@ArnoD Sourceanalytix hat heute 7 kWh zu wenig gezählt. Falls dir mal langweilig wird , wäre ein Korrekturfaktor auf den Gesamtwert beider Anlagen interessant. Also einmalig abends das zu visualisierende Ergebnis für die Statistik mit dem Korrekturfaktor multiplizieren. Könnte man auch einmalig nach Sonnenuntergang auf die beiden Analytix-States machen?! Falls man die ohne Nebenwirkungen überschreiben kann...
-
@ArnoD
Hallo Arno,
ich habe mir jetzt nen Modbuszähler als Erzeugungszähler zusätzlich eingebaut...
Dafür habe ich ein Script geschrieben, welches täglich den Ertrag hochzählt, wie sourceanalytics. Wegen einem State wollte ich keinen ganzen Adapter laufen lassen.
Den TagesZähler resette ich jetzt täglich um 23:59Uhr.
Mit deinem Script würde ich die Werte gerne um 23:58 abholen...
Spricht da was dagegen, weil du die Werte von Source analytiys schon viel früher abrufst... -
Nein da spricht nichts dagegen.
Ich hole mir die Werte nur so früh, weil sich beim Zähler in der Nacht nichts mehr ändert und bei mir um 0:01 bereits einige Skripte laufen.
Wollte das Ganze etwas entzerren.
Werde am Wochenende eine neue Version 0.2.0 hochladen, in der ist dann auch die Abfrage von Proplanta integriert so das man das Proplanta Script nicht mehr benötigt.
Das Diagramm und die PV-Leistung, wird dann laufend aktualisiert. -
@ArnoD Super! Ab morgen kann ich dann richtig mit machen...Dann kommt endlich der neue Zähler...War bis heute im Inselbetrieb.
Find ich klasse, das dann Proplanta integriert ist...
SuperArbeit... -
@smartboart sagte in E3DC Hauskraftwerk steuern:
Mal ne andere Frage...Bis zum ählerwechsel fahre ich gerade auf Notstrom...
Heute Nacht hat die Kiste bestimmt 4 mal den Strom abgeschaltet und hat dann immer wieder selbstständig zugeschaltet. Hat das auch mal jemand beobachtet?falls es jemand interessiert...hatte beim support angerufen...die entwickler arbeiten schon daran...ist dort schon bekannt...
-
@ArnoD sagte in E3DC Hauskraftwerk steuern:
Das sieht dann so aus:
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. -
@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:
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...
-
@smartboart sagte in E3DC Hauskraftwerk steuern:
@ArnoD sagte in E3DC Hauskraftwerk steuern:
Das sieht dann so aus:
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 -
@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; -
@ArnoD Missverständnis meinerseits...löschen des Beitrags nicht möglich mit meiner Berechtigung, sagt das Forum.
-
@ArnoD Hat sich erledigt. habe deinen Beitrag nicht genau genug gelesen.
-
@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!