NEWS
E3DC Hauskraftwerk steuern
-
@smartboart Dann läuft da wohl keine Screen-Instanz. Bin mir nicht ganz sicher, aber ich glaube man bekommt die Ausgabe auch auf die Konsole, wenn man E3DC-Control direkt (ohne screen im Hintergrund) startet.
Vielleicht mal im photovoltaikforum.com um Hilfe bitten. Ich bin nicht so nah an der Originalanleitung, da bei mir das ganze unter Docker läuft und da ist das etwas anders aufgebaut (habe ich auch im Docker-Hub veröffentlicht - https://hub.docker.com/r/stehada/e3dc-control). Falls du nicht weiter kommst... -
@stevie77 danke...
sagt dir der Fehler mit dem bash script was?./E3DC.sh: Zeile 1: Syntaxfehler beim unerwarteten Wort
do' ./E3DC.sh: Zeile 1:
!/bin/bash cd /home/pi/E3DC-Control while true; do ./E3DC-Control sleep 30 done' -
@smartboart Hast du das alles in eine Zeile geschrieben?
Bei mir sieht das so aus, aber das muss für dich nicht stimmen, weil das bei mir anders aufgebaut ist...
----- E3DC.sh --------------------------------------------------------------------------------
#!/bin/bash
while true;
do
./E3DC-Control -config ./config/e3dc.config.txt
sleep 30
done -
@stevie77 sagte in E3DC Hauskraftwerk steuern:
#!/bin/bash
while true;
do
./E3DC-Control -config ./config/e3dc.config.txt
sleep 30
doneja danke probier ich aus...
-
oh schon besser! der Fehler beim ausführen ist schonmal weg..Danke
Edit...da läuft jetzt was ab...sieht gut aus...
-
Hallo @ArnoD ,
ich hab da noch nen Bug beim Abspeichern der Forecast-States gefunden in function Call_up (DachFl,Durchlauf).
Hatte mich gewundert, warum ich für die 2. Dachfläche immer zweimal denselben Wert angezeigt bekomme:Abgerufen wurden aber zwei unterschiedliche Werte:
javascript.0 2020-07-19 05:15:00.475 info (31047) script.js.e3dc-control.handleE3DCControl: Gepeichert wurde Prognose forecast 2/2 : 11086 :13352
In Zeile 9 müsste Response2 verwendet werden, analog zur 1. Dachfläche im Code weiter oben.
if (DachFl==2){ Response1 = obj.result[getCurrentDate()]; Response2 = obj.result[nextDayDate()]; if (Response1 === undefined){ xhr.abort(); if (Durchlauf>0){Call_up(DachFl,Durchlauf-1);} }else{ setState(instanz + PfadEbene1 + PfadEbene2[1]+'Prognose_2', Response1); setState(instanz + PfadEbene1 + PfadEbene2[1]+'Prognose_4', Response1); } }
-
Welche Modbusfirmware habt ihr?
Ich habe die Version 258.Meine Anlage ist im Juli / letzte Woche vom Band gelaufen. Infinity Variante der S10EPro.
Meine Phasenleistung in Watt L1 zeigt Käse an...L2 und 3 stimmt... -
@smartboart ich hab die selbe Modbus Version. Wenn ich komische Werte bekommen habe, dann war immer das Feld falsch formatiert.
Sprich 16 oder 32, signed oder unsigned. Etc. -
@Abyss danke für den Hinweis,
kannst du mir mal dein holding register als screenshot hier zur verfügung stellen, also eigentlich brauche ich nur Phasenleistung in Watt L1 -L3....hier sind die Werte mal plausibel und dan wieder utopisch hoch...
kannst aber auch alle rein stellen, solltest du noch welche haben, welche nicht in dem template zum importieren waren..Danke vorab...
hier mal mit unplausiblen Wert für L2..das rotiert immer...mal L1 oder L2 oder L3
-
Anbei mein Modbus Holdingregister:
-
@Abyss perfekt danke...
-
@stevie77 sagte in E3DC Hauskraftwerk steuern:
Ich hab da aber noch ein Problem mit Forecast. Das Abrufen gestern hat geklappt, heute aber nicht. Um 5:10 und um 5:15 hatte ich folgenden Fehler und es wurde dann falsch mit dem noch gesetzten Wert von gestern gerechnet, da heute keine Aktualisierung stattfand wegen des Fehlers (im Diagramm sieht man auch, dass Forecast an zwei Tagen exakt denselben Wert hat):
Das die alten Werte verwendet werden, wenn keinen neuen abgerufen werden können, ist noch ein Fehler im Script, werde ich ändern.
Irgendeine Idee, was da schief geht? Kann ich irgendwie noch mehr Daten liefern? Internet-Verbindung war vorhanden, saß daneben...
Muss ich mir mal anschauen, aus irgendeinem Grund, wurde eine neue Verbindung aufgebaut, ohne das die bestehende abgeschlossen wurde. Kann sein, dass die Rückantwort zu lange gedauert hat und dann die Daten noch mal gesendet wurden.
Zusatzfrage: Warum passiert da alles dreimal? 3x dieselben Berechnungsblöcke, 3x Datei lesen, 3x schreiben usw.
Hängt wahrscheinlich mit dem oberen Problem zusammen.
-
@Abyss sagte in E3DC Hauskraftwerk steuern:
@ArnoD
Ich hab die letzten Tage ein einem IR-Lesekopf für meinen Zähler rumgebastelt.
Jetzt kann ich den Bezug und die Einspeisung direkt vom Zähler abfragen.
Daher habe ich mir jetzt mal dein Script angeschaut.
So wie ich das verstanden habe muss ich nur folgende 3 Variablen an meine Umgebung anpassen:var nBezugZaehlerAktuell = Math.floor(getState('sonoff.0.IR-Lesekopf.STROM_Bezug').val); var nEinspeiseZaehlerAktuell = Math.floor(getState('sonoff.0.IR-Lesekopf.STROM_Einspeisung').val); var PvZaehlerAktuell=Math.floor(getState('sourceanalytix.0.modbus__0__holdingRegisters__40068_PV_Leistung.Meter_Readings.Current_Reading').val);
Oder hab ich hier noch etwas übersehen?
ist richtig, denn Rest sollte das Script erledigen.
Und zusätzlich bin ich zu doof mir eine Tabelle in VIS zu erzeugen.
Könntest du evtl. deine View hier bereitstellen, damit ich mir etwas abkucken kann.
Danke schon mal.Ich habe mir eine Excel Tabelle erstellt mit den passenden Überschriften und dann einen Screenshot von dieser Tabelle als Hintergrundbild in Vis verwendet.Für die Spalte Datum habe ich dann für jede Zeile ein basic-String Widget darübergelegt und für die anderen Spalten das basic-Number Widget.
-
@smartboart sagte in E3DC Hauskraftwerk steuern:
gibt es einen schnellen test um mal zu sehen ob E3DC-Control mit meiner anlage kommuniziert?
Eine andere Möglichkeit ist über Modbus: modbus.0.holdingRegisters.40087_EMS_CTRL
Wenn =1 dann wird E3DC über RSCP gesteuert.
Wird aber natürlich auch nur am Tag angezeigt werden, da in der Nacht nichts gesteuert wird. -
@stevie77 sagte in E3DC Hauskraftwerk steuern:
Hallo @ArnoD ,
ich hab da noch nen Bug beim Abspeichern der Forecast-States gefunden in function Call_up (DachFl,Durchlauf).
Hatte mich gewundert, warum ich für die 2. Dachfläche immer zweimal denselben Wert angezeigt bekomme:Abgerufen wurden aber zwei unterschiedliche Werte:
javascript.0 2020-07-19 05:15:00.475 info (31047) script.js.e3dc-control.handleE3DCControl: Gepeichert wurde Prognose forecast 2/2 : 11086 :13352
In Zeile 9 müsste Response2 verwendet werden, analog zur 1. Dachfläche im Code weiter oben.
if (DachFl==2){ Response1 = obj.result[getCurrentDate()]; Response2 = obj.result[nextDayDate()]; if (Response1 === undefined){ xhr.abort(); if (Durchlauf>0){Call_up(DachFl,Durchlauf-1);} }else{ setState(instanz + PfadEbene1 + PfadEbene2[1]+'Prognose_2', Response1); setState(instanz + PfadEbene1 + PfadEbene2[1]+'Prognose_4', Response1); } }
Stimmt, hoffentlich habe ich nicht noch mehr Kopierfehler. Werde mir das Ganze noch mal anschauen, da scheint noch einiges nicht so zu funktionieren, wie ich mir das vorstelle.
-
@ArnoD sagte in E3DC Hauskraftwerk steuern:
@stevie77 sagte in E3DC Hauskraftwerk steuern:
Ich hab da aber noch ein Problem mit Forecast. Das Abrufen gestern hat geklappt, heute aber nicht. Um 5:10 und um 5:15 hatte ich folgenden Fehler und es wurde dann falsch mit dem noch gesetzten Wert von gestern gerechnet, da heute keine Aktualisierung stattfand wegen des Fehlers (im Diagramm sieht man auch, dass Forecast an zwei Tagen exakt denselben Wert hat):
Das die alten Werte verwendet werden, wenn keinen neuen abgerufen werden können, ist noch ein Fehler im Script, werde ich ändern.
Falls es noch hilft: Ich hatte den Wert 0_userdata.0.E3DC-Control.Allgemein.PrognoseFore_kWh_heute gestern nacht auf 0 gesetzt, heute früh am Morgen konnte ich zusehen, dass die Abfrage diesmal geklappt hat. Und alles wurde dann auch nur einmal geloggt (hier von unten nach oben):
javascript.0 2020-07-19 05:45:01.021 info (31047) script.js.e3dc-control.handleE3DCControl: E3DC Config Datei eingelesen! javascript.0 2020-07-19 05:45:00.022 info (31047) script.js.e3dc-control.handleE3DCControl: E3DC Config Datei gespeichert! javascript.0 2020-07-19 05:45:00.013 info (31047) script.js.e3dc-control.handleE3DCControl: Einstellung 2 aktiv javascript.0 2020-07-19 05:45:00.013 info (31047) script.js.e3dc-control.handleE3DCControl: Berechneter Unload SoC ist = -61 javascript.0 2020-07-19 05:45:00.013 info (31047) script.js.e3dc-control.handleE3DCControl: Ueberschuss in Prozent = 100 javascript.0 2020-07-19 05:45:00.012 info (31047) script.js.e3dc-control.handleE3DCControl: Ueberschuss in kWh = 17.80328 javascript.0 2020-07-19 05:45:00.011 info (31047) script.js.e3dc-control.handleE3DCControl: Prognose_kWh für Berechnung = 36.94328 javascript.0 2020-07-19 05:45:00.011 info (31047) script.js.e3dc-control.handleE3DCControl: FreieKapBatterie_kWh = 7.14 javascript.0 2020-07-19 05:45:00.011 info (31047) script.js.e3dc-control.handleE3DCControl: AktSpeicherSoC in % = 39 javascript.0 2020-07-19 05:45:00.011 info (31047) script.js.e3dc-control.handleE3DCControl: Globalstrahlung Proplante = 5.1 javascript.0 2020-07-19 05:45:00.010 info (31047) script.js.e3dc-control.handleE3DCControl: Prognose Proplanta in kWh = 72.1905 javascript.0 2020-07-19 05:45:00.010 info (31047) script.js.e3dc-control.handleE3DCControl: Prognose Forecast in kWh = 41.981 javascript.0 2020-07-19 05:45:00.008 info (31047) script.js.e3dc-control.handleE3DCControl: Bewölkungsgrad 15 Uhr Proplanta 87.5 javascript.0 2020-07-19 05:45:00.007 info (31047) script.js.e3dc-control.handleE3DCControl: Bewölkungsgrad 12 Uhr Proplanta 62.5 javascript.0 2020-07-19 05:15:00.475 info (31047) script.js.e3dc-control.handleE3DCControl: Gepeichert wurde Prognose forecast 2/2 : 11086 :13352 javascript.0 2020-07-19 05:15:00.474 info (31047) script.js.e3dc-control.handleE3DCControl: {'2020-07-19':11086,'2020-07-20':13352} javascript.0 2020-07-19 05:15:00.473 info (31047) script.js.e3dc-control.handleE3DCControl: Rueckmeldung :{"result":{"2020-07-19":11086,"2020-07-20":13352},"message":{"code":0,"type":"success","text":"","info":{"place":"21368 Dahlenburg, Lan javascript.0 2020-07-19 05:10:03.881 info (31047) script.js.e3dc-control.handleE3DCControl: Gepeichert wurde Prognose forecast 1/2 : 30895 :38159 javascript.0 2020-07-19 05:10:03.880 info (31047) script.js.e3dc-control.handleE3DCControl: {'2020-07-19':30895,'2020-07-20':38159} javascript.0 2020-07-19 05:10:03.879 info (31047) script.js.e3dc-control.handleE3DCControl: Rueckmeldung :{"result":{"2020-07-19":30895,"2020-07-20":38159},"message":{"code":0,"type":"success","text":"","info":{"place":"21368 Dahlenburg, Lan
Heute werde ich den Wert mal wieder nicht manuell resetten, mal sehen, ob die Anfrage morgen dann wieder schief geht. Vielleicht war es auch Zufall und es hat nichts miteinander zu tun...
-
@stevie77 Die SmartFunktion aus dem Screenshot bezieht sich nur auf die Wallbox von E3DC.
OpenWB kann die Entladung des Speichers nicht unterbinden.
Daher die Frage ob man über den RSCP Adapter den maximalen Entladestrom einstellen kann. In den SmartFunktionen geht das ja. Würde das dann halt gerne automatisch setzen, dass die Entladeleistung entsprechend Hausverbrauch-Wallboxleistung ist.
-
@stevie77
Hast du gestern eventuell über den State "Automatik" die Automatik ein paar mal an und aus geschaltet ? -
@Muskelkatermann sagte in E3DC Hauskraftwerk steuern:
OpenWB kann die Entladung des Speichers nicht unterbinden.
Und warum steht es dann als Feature auf der Website der openWB ("berücksichtigt einen vorhanden Speicher um diesen nicht zu entladen")? Woher hast du deine Information?
-
@ArnoD sagte in E3DC Hauskraftwerk steuern:
@stevie77
Hast du gestern eventuell über den State "Automatik" die Automatik ein paar mal an und aus geschaltet ?Gestern glaub' ich nicht, aber vorgestern oder die letzten Tage ja.