-
Notifications
You must be signed in to change notification settings - Fork 67
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: Refactor/Simplify DPL settings view #755
Conversation
5b9b386
to
9c2d449
Compare
I put this into production in my setup: @Janorei @chrisli01 @spcqike Care to join? See https://github.com/helgeerbe/OpenDTU-OnBattery/actions/runs/8293156814?pr=755 I guess all of you use solar-powered inverters, so the DPL settings view will be very clean for you 😉 |
Mist... Leider begreife ich nicht, was da schiefgehen könnte, vor allem nicht, was dazu führt, dass du keinerlei Rückmeldung erhälst. Du hast also die DPL Einstellungen offen wie im Screenshot oben, und wenn du Speichern klickst, passiert nichts? Startet der ESP32 dann neu? Was sagt die Uptime nach einem Versuch, zu speichern? Was meinst du damit, dass du den DPL ausgeschaltet hast? Magst du mir deine config.json zustecken (Passwörter händisch entfernen)? Könnte der einfachste Weg sein, das Problem zu reproduzieren. |
korrekt
nein
ne Sekunde später als vorher (:
Ich hab den DPL vor ein paar Tagen deaktiviert, um mal zu gucken, wann ich aktuell die meiste PV Leistung bekomme. Damit ich bspw den Geschirrspüler im richtigen Zeitfenster starte (:
kann ich die Tage gerne machen. Reiche ich dann nach Nachtrag: ich muss gestehen, dass ich den letzten PR mit dem „Solar only Mode“ noch nicht installiert hatte. Ich hatte noch das aktuelle Release drauf. Nachtrag2: hab es mal ohne „solar only“ versucht, da stoppt er mit dem Fehler :) |
Boah, danke! Ich dachte schon ich dreh durch. Jo, kann ich sofort reproduzieren. Macht Sinn. Ich hab da die Grenzen verändert. Da muss ich entweder einen Weg finden die Sichtbarkeit dieses Feldes bei einer Fehlermeldung zu erzwingen, oder.... Ich denke ich prüfe alle Werte daraufhin, ob sie in die neuen Grenzen passen, in der Web App, und wenn nicht, zwinge ich sie auf Minimum. Wenn da jemand (z.B. Du 😉 ) vorher Unfug eingetragen hat, weil es den Schalter "Inverter wird an Solarpanelen betrieben" nicht gab, dann muss man die Konfig jetzt plausibel machen... Es ist meiner Meinung nach schon so, dass diese Spannunsgwerte sinniger Weise in den neuen Grenzen liegen. Unter 16V startet kein Hoymiles Wechselrichter und mehr als 66V vertragen die gar nicht. Das war meine Begründung. |
Klingt logisch. Kann man nicht die Übergabe anders gestalten, wenn dieser Modus aktiviert ist? Dass die andern Werte halt egal sind? Aber ja, auch ein internes überschreiben macht für die Benutzer wie mich dann ja keinen unterschied.
sie starten vielleicht bei 16V, fangen aber erst ab 22V an einzuspeisen. Oder? Erst ab einmaligem erreichen von 22V geht der MPPT auch runter bis 16V, oder hab ich das falsch in Erinnerung? |
Menü ist siper aufgeräumt, RESPEKT!! Leider habe ich auch das Problem mit dem dpeichern. Hab dann 22 & 16 eingetragen, grüne Feld mit „Setzings saved“ kommt trotzdem nicht. |
9c2d449
to
f960b05
Compare
this changeset refactors the web application's DPL settings view. the DPL settings can be complex, and they shall be presented in a way that allows users to comprehend their meaning. irrelevant settings are now hidden or displayed dynamically based on the influencing settings. * group SoC thresholds into their own card * hide battery SoC thresholds if battery disabled. if the user did not even enable the battery interface, battery SoC values will not be used for DPL decisions. in that case we completely hide the respective settings from the DPL admin view. this reduces the amount of settings for new users and especially users who don't even have a battery in their setup or have no BMS connected. * group voltage thresholds and improve label texts * fix load correction factor unit * fix header (wording) * group solar-passthrough settings in new card * group inverter-related settings * hide solar passthrough settings if VE.Direct is disabled. closes #662. * completely disable form if any requirement is not met * list available inverters by name and type. this makes it much more convenient to select the right inverter, especially since the order of the inverters in the web UI is decoupled from their position in the internal array, which was used to select them previously. care was taken that old configs select the same inverter after an update. when editing the DPL settings, the selects an inverter from the newly created drow-down list, and the respective old inverter is pre-selected. * disable form if no inverter is configured (config alert) * make inverter input selection dynamic. adjust selection to actual amount of channels for selected inverter. skip selection altogether if inverter has only one channel, or if it is solar powered. * web app: wording adjustments * group meta data into new property and exclude from submission. saves memory when evaluating the submitted settings. * hide irrelevant settings if inverter is solar-powered * move restart hour setting to inverter card. translate setting which disabled automatic restart. * simplify "drain strategy" setting into an on/off toggle. care was taken that existing configs work the same after an upgrade. the respective drain strategy is translated into the new setting when reading the config. once the config is written, the new setting is persisted and the old is not part of the config any more. * show more configuration hints, depending on actual configuration * replace inputs by InputElement components where possible
f960b05
to
fa0ece9
Compare
Richtig, aber 16 und 66 sind definitiv so konservativ, dass niemand auf die Idee kommen sollte, Werte außerhalb [16, 66] einzutragen. Ist dein Vorschlag min gleich auf 22 anzuheben? Würde auch Sinn machen, denn die Werte sind ja nur noch für Batteriesysteme überhaupt einzutragen und das kleinste ist eins mit 8 Zellen und das ist bei 22V eh leer. Aber: Dann kommt einer mit einem Blei-Akku, den er bis 20V entladen will? Lass es uns bei 16 belassen...
Leider weiß ich nicht, was bei dir das Problem ist. Kann z.B. die Full-Solar-Passthrough Start oder Stop Spannungsschwelle sein. Es ist jetzt ehrlich gesagt egal. Ich blende nun alle Einstellungen mit v-if aus, statt mit v-show. Daher sind sie nicht Teil des DOMs und es wird auch keine Browser-gestützte Input-Validierung stattfinden. Wenn man will, kann man die entsprechenden Eingabefelder sichtbar machen, Unfug eintragen, unsichtbar machen, und dann diese unsinnigen Werte abschicken. Da der DPL Web Api Handler aber keine Input-Validierung machte und auch jetzt nicht macht, ist das egal. Da schon das Frontend weiß, welche Einstellungen im jeweiligen Kontext gebraucht werden, werde notwendige Einstellungen auch validiert. Was wiederum auch bisher nur im Frontend passierte, d.h. man kann mit einer config.json oder per manuellem HTTP Request eh jeden Mist einstellen^^ Vielen Dank fürs Testen und Rückmelden, @spcqike @chrisli01 💪 Nehmt gerne die Ausgabe des neuen PR-Builds und checkt nochmal. Ich hab noch einen weiteren lästigen Fehler gefunden und korrigiert. Die Version läuft auch auf meinen System und ich freu mich, wenn andere sich auch trauen, bevor es release't wird. |
Habs geflasht, speichern funktioniert jetzt wieder obwohl ich (bewusst) Start = 1 und Stopp = 0 gelassen habe. eine Frage: |
Danke für Einspielen und die Rückmeldung 😊
Äh, das ist eine sehr kluge Frage... Danke dafür! Ich schau mal nach im Code, aber mit "Inverter is powered by solar modules" ist diese Einstellung wohl überflüssig. Nacharbeiten müsste man trotzdem, denn wenn man beispielsweise den Inverter wechselt oder ein anderer signifikanter Fehler auftritt, dann wird das untere Leistungslimit eingestellt in shutdown(). Aber da könnte man grundsätzlich 2% oder so ähnlich einstellen und das untere Leistungslimit nur noch zum Vergleich nehmen ob man den Inverter ausschalten soll bei Batteriesystemen. |
Entschuldigung, das ich mich jetzt erst melde, habe leider gerade keine Zeit das mitzutesten, ich habe nur gerade die Diskussion verfolgt und bin gerade etwas verunsichert. Ich hatte den anderen Branch getestet, wo "Inverter is powered by solar modules" neu gekommen ist, und da habe ich „unteres Leistungslimit“ sehr wohl gebraucht und auf 16 Watt gestellt, daamit der HM nicht ausgeht. Wird der Wert auch ausgeblendet, wenn man "Inverter is powered by solar modules" einstellt ? Dann verstehe ich das nicht mehr. Oder bezieht es sich darauf, daß das nicht mehr gebraucht wird, wenn "Inverter is powered by solar modules" aus ist ? |
Ich erinnere mich, und der Plan ist ein "sicheres" unteres Limit automatisch einzustellen, z.B. 2% (das funktioniert bei meinem HM-1500 zumindest wunderbar). Ich denke man könnte auch pauschal 30W sagen, und das dann skalieren an der maximalen Ausgangsleistung des Wechselrichters auf ein relatives Limit und dann aufrunden.
Das wäre dann der Wunsch, genau dann wenn "Inverter is powered by solar modules" eingeschaltet ist, braucht es das untere Leistungslimit nicht mehr, weil wir im Zweifel das oben skizzierte Limit einstellen. @Janorei Welches untere Leistungslimit hat bei dir nicht geklappt und welchen WR hast du? Ich kann mir vorstellen, dass das von dir eingestellte untere Leistungslimit gerundet 0% waren, also weniger als 1%, und obwohl ich es nicht sicher weiß, das würde dann Sinn machen dass der WR dann gleich auf Standby geht. |
@Janorei Ein Batterie gespeister wechselrichter soll damit ja erst dann starten, wenn mindestens so viel Leistung im Haus benötigt wird. Wird weniger benötigt, soll er gestoppt werden. Solar betriebe wechselrichter können nur so viel Leistung liefern, wie die Sonne grade liefert. Und sie sollen bei unterschreiten des unteren Limits ja nicht mehr gestoppt werden. Also auf ihrer minimalen Leistung weiter einspeisen. Daher braucht es eigentlich kein unteres Limit. Oder würdest du sagen „speise doch mindestens 200W ein. Immer“ (vorausgesetzt die Sonne gibt es her) dieser fork hier basiert ja darauf, dass Leute zwei wechselrichter haben und einer gelegentlich den Grundbedarf deckt. In dem Fall schaltete der DPL den gesteuerten inverter aus, und es gab teilweise Probleme beim wieder starten. Daher: auf 1% oder 2% weiter laufen lassen, bis wieder mehr benötigt wird. |
Genau das ist meine Config, 2 HM 800 , einer geregelt, einer ungeregelt und ich will, daß der geregelte nicht ausgeht. Ich habe 16 W (= 2% eingestellt) und das geht super. Drunter würde ich nicht gehen, bei 1% ist das schon etwas instabil geworden. |
Zum Abschalten, wenn man ein zu geringes Limit einstellt: Es dauert einige Sekunden, aber mein HM-400 macht das, zumindest wenn man 0% einstellt. Auch bei 2% macht er das. Sehr spannend: Da kommt er auch nicht mehr "online" obwohl ich Start-Befehle mehrfach schicke. Das ist eine wichtige Erkenntnis... Das heißt, dass die Probleme die neulich diskutiert wurden, nämlich dass der Inverter neu gestartet werden muss, durchaus darin begründet sein können, dass das untere Leistungslimit zu klein gewählt wurde. Ich sehe bei 2% beispielsweise, dass die AC Leistung stark schwankt zwischen <2W und 8W. Vermutlich schwingt da irgendetwas im Inverter, und das findet der nicht gut, also verweigert er den Dienst. Ist für mich schlüssig. Bei 3% läuft er dann stabil.
Da sagt ihr was... Das wurde im Grunde ja auch als Feature gwünscht, nämlich dass der Inverter mindestens die untere Leistungsgrenze einspeist, wenn der PowerMeter ausfällt. Alle Menschen mit "solar powered inverters" haben dieses Feature nun. Das ist wertvoller, als noch ein Konfigurationswert einzusparen. |
Janorei wollte seinen Kommentar editieren/ergänzen, hat aber eine Kopie erzeugt und darin seine Ergänzungen gemacht, daher habe ich den alten Kommentar entfernt. |
stimmt. Daran habe grade auch nicht mehr gedacht. Dieser „Fallback“ wenn das powermeter nicht mehr erreichbar ist. @schlimmchen |
Heißt also das „unteres Leistungslimit“ bleibt als sichtbarer Parameter ? |
Genau sowas konnte ich auch sehen |
Also ich habe nen 800er ungeregelt. dann nen 2000er den ich regle. |
Ja.
Was ich interessant fände ist es zu verzögern, dass der Inverter ausgeschaltet wird. Schwankungen in der PV Leistung oder des Haushaltsverbrauch sorgen bei der Dämmerung dafür, dass der Inverter häufig ein- und ausgeschaltet wird. Daher schwebt mir vor, das Ausschalten zu verzögern bei Batteriesystemem. Ganz abschaffen geht ja nicht. Wenn die Stop-Schwellspannung erreicht ist, muss der Inverter abgeschaltet werden. Und einen Schalter einzubauen für "Auch bei Batteriesystemen den Inverter nicht ausschalten (außer Batterie leer)" finde ich als Schaltergegner natürlich schlecht. Und wann genau soll denn das greifen? Wenn der Power-Meter ausfällt oder das Limit sonst unterschritten würde, wie bei Systemen ohne Batterie auch? Heißt wenn die Batterie leer ist und der Inverter daher gestoppt werden soll, wird er auch gestoppt. Erklär mir nochmal die Motivation dahinter. Also der Grund fürs Verzögern des Shutdowns wäre: Häufiges Ein- und Ausschalten in der Dämmerung unterbinden. Was ist der Grund, den Shutdown bei Batteriesystemen grundsätzlich zu vermeiden? |
gerne. Einfach, wenn ein Problem an einer notwendigen Komponente auftritt (ve.direct Kommunikation, powermeter (was wieder von zig Faktoren wie wlan/accesspoint, switch, Netzteil des tasmota, ggf. einfach ein dienst auf einer VM der sich aufhängt sodass MQTT nicht mehr geht ,…..) ,..) dass der inverter nicht direkt gestoppt wird, sondern auf ein einstellbares und bekanntes fallback im Sinne der Grundlast geschickt wird. In meinem Fall so 200W. Ich denke, so lange die letzte Instanz (Spannung am DC Eingang) nicht unterschritten wird, sollte eine kontinuierliche Einspeisung möglich sein, oder? Daher die Idee, dass Batterie Usern eine Art toggle für das untere Limit angeboten werden könnte. Entweder ist es ein „schalte erst bei X W ein“ oder ein „ Fallback auf X W“ bzw. ein „speise mindestens X W ein“. Sollte das Netzwerk ausfallen und daher keine aktuellen powermeter Werte kommen, könnte man die bekannte Grundlast einspeisen. Nachtrag weil es vielleicht missverständlich geschrieben war
Die Spannung natürlich ermittelt an Hand der bekannten Hierarchie. BMS/Shunt - MPPT - DC Eingang. Aber den ersten beiden Ebenen kann ja die Kommunikation ausfallen. Wenn sie nicht ausfällt, sollte natürlich die höchste Instanz greifen. |
Guten Morgen, Ich schau obs nochmal passiert, dann kann ich Logs posten. |
Unwahrscheinlich, dass es etwas mit dem Umbau der Web UI zu tun hat.
Gerne, mach dann ein neues Issue auf, bitte nicht in diesem PR besprechen. |
Sorry, weiß nicht wie das geht!
|
This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new discussion or issue for related concerns. |
this changeset refactors the web application's DPL settings view. the
DPL settings can be complex, and they shall be presented in a way that
allows users to comprehend their meaning. irrelevant settings are now
hidden or displayed dynamically based on the influencing settings.
group SoC thresholds into their own card
hide battery SoC thresholds if battery disabled. if the user did not
even enable the battery interface, battery SoC values will not be used
for DPL decisions. in that case we completely hide the respective
settings from the DPL admin view. this reduces the amount of settings
for new users and especially users who don't even have a battery in
their setup or have no BMS connected.
group voltage thresholds and improve label texts
fix load correction factor unit
fix header (wording)
group solar-passthrough settings in new card
group inverter-related settings
hide solar passthrough settings if VE.Direct is disabled. closes [Request] Hide Solar Passthrough settings if VE.Direct is disabled #662.
completely disable form if any requirement is not met
list available inverters by name and type. this makes it much more
convenient to select the right inverter, especially since the order of
the inverters in the web UI is decoupled from their position in the
internal array, which was used to select them previously. care was
taken that old configs select the same inverter after an update.
when editing the DPL settings, the selects an inverter from the newly
created drow-down list, and the respective old inverter is
pre-selected.
disable form if no inverter is configured (config alert)
make inverter input selection dynamic. adjust selection to actual
amount of channels for selected inverter. skip selection altogether if
inverter has only one channel, or if it is solar powered.
web app: wording adjustments
group meta data into new property and exclude from submission. saves
memory when evaluating the submitted settings.
hide irrelevant settings if inverter is solar-powered
move restart hour setting to inverter card. translate setting which
disabled automatic restart.
simplify "drain strategy" setting into an on/off toggle. care was
taken that existing configs work the same after an upgrade. the
respective drain strategy is translated into the new setting when
reading the config. once the config is written, the new setting is
persisted and the old is not part of the config any more.
show more configuration hints, depending on actual configuration
replace inputs by InputElement components where possible
Very compact settings view for inverters with solar panels attached, as those setups only need very little settings:
Dynamic configuration hints:
Inverter selection by name and type from drop-down list:
Replaced battery drain strategy setting by a simple switch: