New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feature: DPL: allow overscaling to compensate for shading #956
base: development
Are you sure you want to change the base?
feature: DPL: allow overscaling to compensate for shading #956
Conversation
ddec3cf
to
3d235d8
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Quite clean. Thanks for printing an informative message in case this new overscaling method does change the limit. I did not check the algorithm itself, since I don't care. Others will let us know if this works as expected or not.
3d235d8
to
c1e6989
Compare
@AndreasBoehm I allowed myself to rebase this onto the current development branch before asking users to review your work. |
@greymda @spcqike @hex2647 Please test this feature by flashing the firmware built in this PR's build-run. |
i don't have access any more to the partially shaded setup :( |
Kann es sein dass es ein Problem mit HMS wechselrichter und neuer Firmware gab? Oder liegt es am PR? Ich bekomme seit dem Update keine Verbindung mehr zum HMS. |
Benutzt du einen Reverse Proxy oder hast sonst irgendein Setup, das verhindert, dass die Websocket-Verbindung zustande kommt? Oder geht es nicht um das LiveView, sondern dass der Inverter nicht gepollt werden kann? Was steht in der Konsole? |
Kein peoxy. Direkt die IP der openDTU. Er empfängt gar nichts vom wechselrichter Naja. Da steht nicht viel.
|
Begreif ich nicht. Hat sich an den Einstellungen des CMT etwas verändert? Ich hab ja ein HMT und keine Probleme... |
Nein. Daran hat sich nichts geändert. Ich weiß allerdings nicht, wie lange ich kein Update gemacht habe. Wenn irgendwas die Kommunikation zerschossen hat, könnte das auch schon länger her sein. Wobei es dann wohl mehr issues geben würde. Und das letzte war ja wegen dem Proxy, oder? |
Ich weiß nicht hat genau warum, aber es scheint an den DTU Einstellungen zu liegen. Ich habe in der Vergangenheit, da ich Signal Probleme hatte, die Frequenz und die sendeleistung leicht erhöht. Damit der DTU den wechselrichter nach einem Update wieder findet oder anspricht, reicht es, in den DtU Einstellungen bspw verbose logging zu aktivieren und zu speichern. Den Rest kann ich so lassen wie es ist. Logging kann danach auch wieder aus gemacht werden. Hauptsache das speichern wird einmal ausgeführt. Das konnte ich jetzt sowohl mit der Firmware aus dem PR als auch mit dem latest release und einem Release aus dem Februar reproduzieren. So, es läuft also. Und irgendwie lag es (halb?) an mir. Aber dennoch komisch. Leider ist jetzt die Sonne weg um die Anpassung zu testen :) Nachtrag; |
Sicher? Es gab da jedenfalls Probleme mit den Einstellungen. Die hatten mit der Frequenzauswahl zu tun. Da musste man dann den Schieber einmal bewegen und speichern, sodass ein gültiger Wert abgespeichert wurde. |
grad nochmal getestet. Ja. Neustart, 30 Sekunden kein Empfang. Einstellungen ->DTU -> Speicher , 3 sek später die live Daten. |
Ist installiert und aktiviert... morgen ist bei mir keine Verschattung zu erwarten aber das lässt sich ja simulieren :) bin gespannt. |
c51453c
to
7b675cb
Compare
Es sieht so aus als ob ich die Logik nochmal überarbeiten muss, habe zwei Eingänge mit 50W und zwei die bis zu 100w bekommen. Netzbezug ist auf -100W gestellt, trotzdem regelt die Überskalierung effektiv auf -200W. Konnte jemand von euch ein ähnliches Problem feststellen? |
Das bisher noch nicht. Was mir vorhin aufgefallen war ist das er total instabil war, also das die Regelung extrem geschwankt hat… ich Versuch das nachher mal festzuhalten und besser darzustellen… |
8051e43
to
ce42c48
Compare
@greymda @spcqike @hex2647 Please test the latest changes by flashing the firmware built in this PR's build-run. |
Bei mir ist es durchgelaufen. Hab es leider zu spät gemacht. Heute wird es nichts mehr mit testen :) Gebe morgen Bescheid |
That's a weird error situation that I observe myself regularly. Need to restart the DTU, then try again. |
mit aktivem DPL bekomme ich weider ganz viele Timeouts, der WEchselrichter ist nicht erreichbar. Hat jemand von euch ähnliche Probleme? ich habe den HMS-2000. |
Hab den HMS-1600 und anfangs ähnliche Probleme. Hab die DTU dann in einen anderen Raum gestellt, näher an den WR, seitdem habe ich keine Probleme mehr. |
naja, da ich an der DTU und den Positionen nichts geändert habe und es bis dato gut und stabil lief (also nur das Abfragen der Daten, kein DPL aktiv), und es auch wieder gut läuft, wenn der DPL aus ist, denke ich nicht, dass es an der Aufstellung liegt. es gibt auch im Upstream mehrere Issues, weil die HMS die Verbindung wohl des öfteren verlieren in letzter Zeit. Das, was ich jetzt getestet habe, sah gut aus. rot die PV Erzeugung, orange der Gesamtbezug (bzw. Einspeisung). Target: -1000W (sonst greift die Skalierung grad nicht, da jeder Eingang > 250W liefert :D) Ab und zu bekommt er die -1000W nicht hin, aber da scheint auch kein neuer Wert von der DTU zu kommen, also wird auch der neue Limit nicht durchgehen... Was auch immer den Empfang da beeinträchtigt... jetzt, wo der DPL wieder aus ist, ist die Aufzeichnung der PV-Leistung auch wieder konsistent. Die Abfrage klappt im 5s DTU Intervall aller 5-10s. |
That Solved it… its installed |
@spcqike: Wie bekomm ich denn die schicken Charts? Dadurch würde vermutlcih das Fehler beschreiebn deutlich leichter werden :) |
Ich konnte heute nochmal etwas genauer draufschauen. Grundsätzlich würde ich sagen sieht das ganze ganz gut aus aber heute ist nochmal ein Spannender Fall aufgetreten (tatsächlich mehrfach)... Ausgewirkt hat es sich darin das die DTU sich auf einem viel zu niedrigen Wert "festgeschossen hat"... Resulatat waren die 104,7 Watt aus dem Inverter obwohl genug Sonne und auch genug Leistung aus dem Netz abgerufen wurden: Auch im Log zu sehen: Aus irgend einem Grund behält er die 240W obwohl er eigentlich mehr machen sollte... Auf welcher Datenbasis entscheidet er hier das alle Strings weniger machen als erwartet? Websocket: [/livedata][14] disconnect |
@hex2647 in meinem Fall mit NodeRed (Processing), influxdb (Datenbank) und grafana (Frontend für Graphen und Dashboards)
er berechnet es. Wenn dein Limit zu der Zeit 240W waren, sollte er ja 60W pro Eingang liefern. Scheinbar liefert er insgesamt nur 104W und auf jedem Eingang < 58W. Daher gibt es noch keinen Grund das Limit zu ändern, da auch ein höheres Limit nicht mehr Output liefern würde. Kannst du, sollte sowas wieder passieren, auch Screenshots der wechselrichter Daten(Gesamtleistung, Effizienz,…) und der einzelnen Eingänge beistellen? Dass man besser nachvollziehen kann, was genau grade passiert? |
Vielen Dank fürs testen und berichten. Ich habe einen ähnlichen Fall beobachtet, dachte aber es liegt an meinem Anker Solarspeicher. Um uns das lösen des Problems einfacher zu machen werde ich nachher die Konsolen Ausgabe um einige Daten erweitern die uns helfen sollten zu verstehen warum die Berechnung auf einem niedrigen Wert "hängen bleibt". |
Ich habe die Konsolen Ausgabe erweitert, 90% der Ausgaben fliegen raus wenn die Berechnungen berichtig sind, sieht nun wie folgt aus:
@schlimmchen Könntest du den workflow erneut freigeben? Danke. |
6370a29
to
ccfe36d
Compare
@spcqike Kannst du mir eventuell noch erläutern welchen Fall du mit diesem if sicherstellst bzw welche action anschließend ausgeführt wurde? Ich bin mir aktuell nicht sicher ob wir das so brauchen oder nicht. |
könntest du die Ausgabe abrunden? auf eine, oder gar keine Nachkommastelle? ich denke 72.123456 W macht wenig Sinn. Ganze Watt sollten ausreichen, oder? In der Vergangenheit gab es Probleme, wenn die Nachrichten zu lang wurden, dann wurden Daten einfach abgeschnitten oder nicht angezeigt, oder es kam zu anderen komischen Verhalten. auch finde ich
echt lang. Ich persönlich würd Debug-nachrichten kürzer halten, ja fast kryptisch, und ggf. n Kommentar an der Stelle im Code lassen, was was genau ist.
ebenfalls, reicht nicht "ch0: shaded, 4W", bzw. "chx: not shaded, 32W"? AC und DC sind redundant, da beides mit der gleichen Effizienz von ein paar Zeilen vorher berechnet wird, oder? Ich find den Umgang mit AC/DC noch immer verwirrend, aber das mag an mir und meinem Verständnis liegen :) aber, reicht es nicht, sich auf einen Wert festzulegen? AC oder DC? Ich würde die ganzen Berechnungen und Vergleiche anhand der DC Werte machen. Ja, wir möchten ein AC Limit setzen, dafür bedarf es aber einer DC Gesamt-Leistung, die, nachdem sie einmal berechnet wurde, 1 zu 1 mit den DC Eingängen weiter berechnet/verglichen werden kann. oder ? |
@spcqike Die meisten Nachrichten werfe ich wieder raus sobald wir wissen das der Algorithmus funktioniert. |
@greymda @spcqike @hex2647 Please test the latest changes by flashing the firmware built in this PR's build-run. It will now output more information about the values used to calculate overscaling/shading and should help us to fix any remaining issues. |
So ganz nachvollziehen kann ich das auch nicht mehr. Dafür hat sich auch der Code in Gänze zu stark geändert (also auch die Punkte vor den Skalierungen) Sinn war aber, dass nur skaliert wird, wenn nötig. also dann, wenn:
Heißt: mindestens ein Kanal könnte mehr liefern um das bisher nicht erreichte Ziel zu erreichen. Sonst hab ich keine Skalierung gemacht gehabt. wenn nichts durch Software limitiert ist (sondern alles durch durch Verschattung), oder wenn das Ziel erreicht wird (also bspw. alle durch Software limitiert). Ich glaube, diese Umstände hast du bereits abgefangen, aber eben später im Code und teilweise umfangreicher. Eine Skalierung wie "wir haben grad 500W, wollen runter auf 300W, Eingang 1 liefert aber nur 100W also brauchen wir ein Limit von 400W um 300W AC seitig zu erreichen" (wieder für ein 2-MPPT Modell) hatte ich damals noch nicht drin. |
Jetzt mit mehr Daten :) |
Ok. Vor dem skalieren aus diesem PR gab es ja noch das skalieren, welches berücksichtigt, wie viele Eingänge belegt sind. Damit wurde bei dir das Limit wohl immer verdoppelt, da du nur 2 Eingänge belegt hast. Das skalieren aus diesem PR berücksichtigt das aber (noch?) nicht. |
Hab jetzt nochmal umgebaut sodass alle 4 Eingänge belegt sind… er skaliert aber trotzdem nicht hoch. Obwohl er eigentlich selbst sagt das die Module verschattet sind? 15:35:33.778 > [DPL::loop] ******************* ENTER ********************** |
@hex2647 Das Problem ist das alle Eingänge verschattet sind und (laut den Zahlen in deinem Log) keiner der Eingänge durch das Limit begrenzt ist sondern rein durch die verschattung. Hast du denn tatsächlich so viel verschattung oder wie kommen deine doch sehr unterschiedlichen Werte an den Eingängen zustande? Das simple verdoppeln des Limits wie es bisher aktiv war ist durch meinen Algorithmus nicht mehr erforderlich und deshalb auch nicht implementiert. |
CH1 liefert sogar nur 1.6W. Also quasi nichts. So wenig auf einem Eingang hab ich nur zur Dämmerung |
Fixes #917 based on the discussion #819
Notes
Console