Neben der Minimal und Maximalleistung, die sich an anderer Stelle dynamisch ändern müsste, muss hier zeitgleich zu der Stromvorgabe, die Phasenumschaltung erfolgen.
Vorerst könntest du hier separat sicherheitshalber die fünf Minuten Umschaltzeit prüfen, z.B.
(last).plusMinutes(5).isAfter(Instant.now(this.componentManager.getClock()))
Sobald eine Vorgabe unter oder über der aktuell erlaubten Range an Minimal-/Maximallimits liegt.
Theoretisch könnte man zu einem späteren Zeitpunkt noch mit Reglern/Hysteresen träger auf das Umschalten reagieren, z.B. Umschalten erst bei der x ten Vorgabe über dem aktuellen harten Phasen-Limit. Allerdings sollte die “Trägheit” an anderen Stellen in den Controllern ausreichen, um nicht bei kleinsten Schwankungen, immer wieder die Phasen wegzunehmen.
Hat schon jemand von euch die Keba P40 im Einsatz?
UDP scheint gleich geblieben zu sein, aber Modbus ist dazu gekommen. Klingt nach einem interessanten Gerät…
die P40 ist für FENECON, aber auch generell für OpenEMS interessant, weil der Hersteller bzw. die P30 bereits bekannt und erprobt ist.
Zeitgleich wird die bestehende Implementierung der Keba nicht 1zu1 funktionieren, da der letzte Informationsstand war, dass diese nunmehr nur Modbus-TCP unterstützt.
Ein erstes Testgerät hatte noch nicht die vollständige Funktionalität (Mobus-TCP nicht aktivierbar & Phasenumschaltung noch nicht freigeschalten), weswegen hier noch nichts Konkretes in OpenEMS zu finden ist.
Es wäre aber ein mögliches erstes Projekt für den Hacktober die P30 Version als zusätzliche Komponente über Modbus-TCP einzubinden.
Nähere Informationen zum Hacktoberfest werden noch folgen.
Sounds good!
Ich persönlich bin auch eher ein Fan von Modbus. Die asynchrone Geschichte mit UDP funktioniert zwar gut, hatte da beim Nachvollziehen einige Verständnisschwierigkeiten.
Bin auf die Entwicklung jedenfalls sehr gespannt. Danke für die Info!