Seite 1 von 1

Lademodi modularisieren / aufräumen für mehr Flexibilität und einfachere Konfiguration

Verfasst: Di Apr 30, 2024 3:16 pm
von stefan_o
Hallo,
das ist vermutlich ein eher langfristiges feature-request weil es einigen Aufwand erfordert:

Im Moment sind die Lademodi alle extrem voneinander abhängig, mit submodi und Spezialfällen und prüfen an verschiedenen Stellen welcher Modus aktiv ist. Das führt einerseits zu komplexen Einstellungen und verschiedenen Einschränkungen, beispielsweise:
  • Im PV-Modus wird bei SoC-Unterschreitung nur einphasig geladen wenn nicht genug Sonne vorhanden ist
  • Im Zielladen ist es nicht möglich PV-Laden mit Mindestdauerstrom zu setzen
Meine Idee: Jeder Lademodus bekommt eine eigene, unabhängige Klasse mit Einstellungen und einer einheitlichen API, vergleichbar mit Wechselrichter-Modulen. In einem Ladeprofil können dann Kombinationsmodi definiert werden, in denen beliebige Lademodi hinzugefügt und angeordnet werden. Die Software prüft dann einfach will Lademodus 1 laden? Wenn ja, nehme ihn, wenn nein, prüfe Modus 2 und so weiter. Das Zeitladen könnte man in diese Kombination direkt reinnehmen, also einschränken in welchem Zeitraum der Modus aktiv sein darf. Das macht viele Konfigurationen extrem einfach:

Beispiele die meines Wissens im Moment nicht gehen:
[immer] Bis 50% SoC Sofortladen mit maximalem Strom
[immer] Zielladen 8:00 auf 80% SoC
[8:00 - 20:00] Bis 80% SoC PV-Überschussladen, mit Mindestdauerstrom, mit EV-Priorität
[immer] Bis 80% SoC PV-Überschussladen, ohne Mindestdauerstrom, mit EV-Priorität
[immer] PV-Überschussladen mit Heimspeicher-Priorität

oder
[immer] Bis 50% SoC Sofortladen mit maximalem Strom
[immer] Sofortladen mit 10A

Ich denke das würde alles sehr viel übersichtlicher machen für den Endnutzer, weil man auf die Spezialfälle in den einzelnen Lademodi verzichten kann, als auch die Software deutlich wartungsfreundlicher machen. Für die Migration kann man ja bestehende Lademodi mit den Bezeichnungen direkt übernehmen.

Nachtrag:
Schön wäre in dem Zuge auch, wenn man in jedem Lademodus einstellen kann mit wie vielen Phasen geladen werden soll sofern das entsprechende Modul verbaut ist (1phasig, alle Phasen oder automatisch umschalten (bei PV))

Das würde auch andere Feature-Requests mit abdecken, zum Beispiel der Wunsch nach dem Min+PV Modus wie in 1.x: Der Nutzer könnte zwei Lademodi erzeugen, den einen könnte er dann "Nur PV-Laden" nennen und dort nur das PV-Überschussladen ohne Mindestdauerstrom hinzufügen, den anderen könnte er "Min+PV" nennen und dort den Mindestdauerstrom aktivieren.

Ich hoffe ich konnte gut genug erklären was ich mir vorstelle. Mir ist bewusst, dass das eine massive Umstrukturierung im Code wäre, ich denke aber es wäre der Mühe wert, da meiner Ansicht a) Für den Endnutzer einfacher zu konfigurieren b) Für die Entwickler besser zu warten c) erlaubt deutlich mehr Flexibilität/Möglichkeiten bei den Lademodi ohne komplexe und schwierig zu verstehenden Bedingungen.

Re: Lademodi modularisieren / aufräumen für mehr Flexibilität und einfachere Konfiguration

Verfasst: Mi Mai 08, 2024 6:38 am
von Focko
Hallo Stefan,

Das ist eine interessante Idee, ähnlich wie das Routing bei einer Telefonanlage.

Ich bin mit der Softwsre auch sehr unzufrieden. Es sollte bei der Reihenfolge aber noch der Kalender einbezogen werden. Ich habe am Wohenende ganz andere Prioritäten als unter der Woche. Derzeit ist gar nicht Abbilder weshalb ich immer manuell den Lademodus umschslte. Extrem nervig.
Und im Winter wieder ganz Andere weil ich ohnehin Netzbezug bekomme.

Ausserdem kann man auch recht einfach eine Wetterprognose einbinden um z.B. bei guter Prognose erst mal das EV voll laden bevor der Hausspeicher gefüllt wird.

Die Software soll ja derzeit vollutomatisch sein. Deshalb ist die Bedienung auch so schlecht.
Aber die Automatik funktioniert nicht, es fehlen wichtige Parameter damit das überhaupt funktioniert (Mensch, Wetter, Kalender, Tageszeit usw.).

Das ist noch nicht wirklich zu gebrauchen. Ich hätte genauso gut eine günstigere Box, die ich mit dem Handy bedienen kann, kaufen können.

Re: Lademodi modularisieren / aufräumen für mehr Flexibilität und einfachere Konfiguration

Verfasst: Mi Mai 08, 2024 1:17 pm
von stefan_o
Focko hat geschrieben: Mi Mai 08, 2024 6:38 am Das ist eine interessante Idee, ähnlich wie das Routing bei einer Telefonanlage.
Ja, stimmt, da ist es meist ein ähnliches Prinzip
Focko hat geschrieben: Mi Mai 08, 2024 6:38 am Ich bin mit der Softwsre auch sehr unzufrieden. Es sollte bei der Reihenfolge aber noch der Kalender einbezogen werden. Ich habe am Wohenende ganz andere Prioritäten als unter der Woche. Derzeit ist gar nicht Abbilder weshalb ich immer manuell den Lademodus umschslte. Extrem nervig.
Und im Winter wieder ganz Andere weil ich ohnehin Netzbezug bekomme.

Ausserdem kann man auch recht einfach eine Wetterprognose einbinden um z.B. bei guter Prognose erst mal das EV voll laden bevor der Hausspeicher gefüllt wird.

Die Software soll ja derzeit vollutomatisch sein. Deshalb ist die Bedienung auch so schlecht.
Aber die Automatik funktioniert nicht, es fehlen wichtige Parameter damit das überhaupt funktioniert (Mensch, Wetter, Kalender, Tageszeit usw.).

Das ist noch nicht wirklich zu gebrauchen. Ich hätte genauso gut eine günstigere Box, die ich mit dem Handy bedienen kann, kaufen können.
Ich verstehe was du möchtest, aber ganz so hart würde ich es nicht sehen: die openWB hat eine MQTT-Schnittstelle, mit der du alle Einstellungen ändern kannst. Ich habe z.B. im Moment ein Hintergrund-Skript laufen, das nachts den PV-Mindeststrom auf 0 setzt und am Tag auf 6A. Wäre natürlich schön, wenn die openWB das von Haus aus kann, so geht es aber auch. Und wenn man was komplexeres möchte, kann man das mit einem externen Server regeln. Ich hätte gerne noch Zielladen parallel, Mo-Fr außer Feiertags.

Meine Idee: Bedingungs-Plugins: Neben Zeit, Datum, SoC könnten Plug-Ins (Wetter etc.) weitere Bedingungen setzen ob ein Lademodus aktiv ist.

[SoC<50%] Sofortladen mit maximalem Strom
[Werktags Mo.-Fr.] Zielladen 8:00 auf 80% SoC
[gutes Wetter] Bis 80% SoC PV-Überschussladen, mit Mindestdauerstrom, mit EV-Priorität
[schlechtes Wetter] Bis 65% SoC PV-Überschussladen, mit Mindestdauerstrom, mit EV-Priorität
[immer] PV-Überschussladen mit Heimspeicher-Priorität

Damit könnte man alle Bedingungen aus den Lademodi selber rausnehmen und neue Bedingungen einfach als Plug-In/Klasse ermöglichen.

Man könnte sich also seinen Kombinations-Lademodus zusammenklicken, indem man einzelne Lademodi wählt und immer dazu mehrere Bedingungen setzen kann.

Re: Lademodi modularisieren / aufräumen für mehr Flexibilität und einfachere Konfiguration

Verfasst: Mi Mai 08, 2024 2:09 pm
von Gero
Gerade nach Corona haben sich ja viele kalendarisch wiederholende Termine verunregelmäßigt. Schichtarbeitende kennen das Problem schon seit ewig, dass alle mögliche kalendarische Technik das Leben sich so einfach wie den Stundenplan eines Lehrers vorstellt. Jeden morgen um acht. Aber auch in der Schule gibt es mittlerweile A- und B-Wochen oder vierzehntägigen Samstag-Unterricht und keine Kalendersteuerung kann das.

Und wenn man dabei ist, dafür ein UI zu entwerfen, ist es auch nicht sehr weit weg, andere Bedingungen wie auch PV-Prognosen einfließen zu lassen. Nur wie macht man sowas, dass es nicht sofort so aussieht die Programmierung einer homematic-CCU? Das ist für Normalanwender doch noch abschreckend. Und wenn es vom UI her gut aussieht, ist es letzten Endes immer noch programmieren und da übersieht immer irgendeinen Seiteneffekt. Kenne ich aus eigener Erfahrung.

Re: Lademodi modularisieren / aufräumen für mehr Flexibilität und einfachere Konfiguration

Verfasst: Mi Mai 08, 2024 4:06 pm
von stefan_o
Gero hat geschrieben: Mi Mai 08, 2024 2:09 pm Gerade nach Corona haben sich ja viele kalendarisch wiederholende Termine verunregelmäßigt. Schichtarbeitende kennen das Problem schon seit ewig, dass alle mögliche kalendarische Technik das Leben sich so einfach wie den Stundenplan eines Lehrers vorstellt. Jeden morgen um acht. Aber auch in der Schule gibt es mittlerweile A- und B-Wochen oder vierzehntägigen Samstag-Unterricht und keine Kalendersteuerung kann das.

Und wenn man dabei ist, dafür ein UI zu entwerfen, ist es auch nicht sehr weit weg, andere Bedingungen wie auch PV-Prognosen einfließen zu lassen. Nur wie macht man sowas, dass es nicht sofort so aussieht die Programmierung einer homematic-CCU? Das ist für Normalanwender doch noch abschreckend. Und wenn es vom UI her gut aussieht, ist es letzten Endes immer noch programmieren und da übersieht immer irgendeinen Seiteneffekt. Kenne ich aus eigener Erfahrung.
Genau deswegen würde ich die Auftrennung machen: Bedingungen aus dem Lademodus raus, sondern separat. Ich habe in meinem Kombinationsmodus eine Liste mit zwei Spalten: Bedingung und Lademodus: Wenn ich auf den Lademodus klicke kann ich dort Ladeparameter einstellen. Wenn ich Bedingungen klicke, kann ich dort die Bedingungen verschiedener Art hinzufügen und dann konfigurieren. Das macht das sehr übersichtlich, weil jeder, der keine A/B Wochen, Schichtarbeit oder sonst irgendwie komplexe Kalenderanforderungen hat, sieht das gar nicht. Erst wenn ich eine Bedingung hinzufüge, werde ich mit den Einstellungen konfrontiert. Da könnte man eine "Kalender" machen, dort könnte man nur Wochentage auswählen, vielleicht noch gerade/ungerade/alle Kalenderwochen, sowie Feiertage ja/nein und einen "Komplexe Bedingung (Formel)", wo man eine Menge Variablen hat und dort damit eine Bedingung einprogrammieren kann, und das wird in eval mit Python ausgewertet. Das ist dann für die Nerds die jeden Spezialfall abdecken möchten, aber für den "Normaluser" gibt es die einfachen Bedingungen und das ist denke ich einfacher zu konfigurieren als jetzt, wo in den Lademodi ein Teil der Bedingung abgedeckt wird und ich so Sachen machen muss wie parallel Zeitladen aktivieren rund um die Uhr um ein Mindest-SoC zu sicherzustellen