MyPV: fix status mapping
Problem(s):
-
This charger accumulates energy loaded over and over and only when evcc is restarted an entry in loading log is generated. See last entry in log below. Reason is, that this charger never gets into Status A, which triggers a loading log.
-
After each end of mypv loading an "out of sync" error is generated.
Solution(s):
Add Status A when loadpoint mode is set to Off to allow logging of individual heating sessions, like it is done in switchsocket charger.
Also the load state from MyPV is evaluated.
When the heating rods are detached (if overtemp switch has released) loadpoint also goes to Status A. Just like a car that has been disconnected from loadpoint. Now you can see when the green bar is no longer visible, that the overtemp switch on the heating rod has released.
Since the MyPV Elwa/AC Thor takes a while until power consumptions drops to 0W after power has been set to 0W, a limit of 10W has been added, which is well above normal standby power. Only power consumption above this limit is evaluated as Status C, below it is Status B. This eliminates the frequent error "charger logic error: disabled but charging".
After each end of mypv loading an "out of sync" error is generated.
The usual solution for this is to remember and return the cached enable state (unless there‘s contradictory information). Would that work?
This eliminates the frequent error "charger logic error: disabled but charging".
Perfect
After each end of mypv loading an "out of sync" error is generated.
The usual solution for this is to remember and return the cached enable state (unless there‘s contradictory information). Would that work?
This eliminates the frequent error "charger logic error: disabled but charging".
Perfect
Can you please show me a code example from another evcc charger, where this is implemented? I am not so familiar with coding, but I can learn from working examples. I will test this then in my fork.
Siehe auch https://github.com/evcc-io/evcc/issues/22041 bzgl. Konsequenzen.
Ja, das war mir klar, dass bei AUS das standard limitSoc zuschlägt, aber das kann man ja per API setzen. Nicht schön, aber möglich. Besser wäre Umsetzung von https://github.com/evcc-io/evcc/issues/13050 Zumindest, dass 1x am Tag (Mitternacht) ein Ladelogeintrag erzeugt wird.
#13050 ist etwas aufwändiger. Wie wäre es denn, wenn wir einen Workaround einbauen und für heating && integrateddevice die Session um Mitternacht zurück setzen? @VolkerK62 hat mich auf die Idee gebracht. Die Logik dafür ist vmtl. recht einfach, ich bin nicht mehr ganz sicher, warum wir das ursprünglich nicht gemacht haben. Alle aktuellen OFF Workarounds würde ich in dem Fall wieder ausbauen.
Kann ich nur unterstützen! Dann würde ich auch bei mir den OFF Workaround wieder raus nehmen. Bin gerne bereit zu testen.
Siehe https://github.com/evcc-io/evcc/pull/22068
Sind alle Heizstäbe getrennt (i.d.R. durch Auslösen des Temperaturbegrenzungsschalters), so fällt der Wert immer auf 0, der MyPV kann gar nicht mehr heizen, folgerichtig ist dies Status A.
Brauchts denn diese Magie jetzt noch? Aller Heatings täglich zurück zu setzen erscheint erstmal konsistent. Ich würde vorschlagen das hier nicht umzusetzen.
Das Setzen auf Status A wenn der LP auf Off ist, den brauchts vermutlich nicht mehr. Habs schon mal kompiliert und lass es laufen, Rückmeldung kommt in ein paar Tagen, gestern hatte ich nach dem Update keine Beheizung durch den AC Thor mehr, darum gabs auch Nachts keinen extra Log-Eintrag. Mal sehen was heute passiert.
Im "Aus" Modus bleibt zumindest schon mal wieder die Temperaturanzeige erhalten:
Aber ich habe das Setzen auf Status A, wenn LoadState==0 ist, in meinem Code beibehalten. Das macht aus meiner Sicht Sinn, da in diesem Zustand die Heizstäbe physikalisch vom AC Thor getrennt sind. Das ist technisch das Gleiche, wie wenn das Auto ausgesteckt ist.
Und ich habe beibehalten, dass Status C nur dann ausgegeben wird, wenn die Leistungaufnahme>10 (W) ist. Das sollte den Fehler "charger logic error: disabled but charging" beheben. Diesen Wert könnte man im Code noch in eine Konstante "standbypower" verpacken, damit er leichter im Code zu pflegen ist.
Lass mich mal noch bis Sonntag Abend testen, dann entscheiden wir, welche Änderung hier (noch) sinnvoll sind.
Aber ich habe das Setzen auf Status A, wenn LoadState==0 ist, in meinem Code beibehalten. Das macht aus meiner Sicht Sinn, da in diesem Zustand die Heizstäbe physikalisch vom AC Thor getrennt sind. Das ist technisch das Gleiche, wie wenn das Auto ausgesteckt ist.
Das gibts halt bei anderen Geräten auch nicht ;)
Aber ich habe das Setzen auf Status A, wenn LoadState==0 ist, in meinem Code beibehalten. Das macht aus meiner Sicht Sinn, da in diesem Zustand die Heizstäbe physikalisch vom AC Thor getrennt sind. Das ist technisch das Gleiche, wie wenn das Auto ausgesteckt ist.
Das gibts halt bei anderen Geräten auch nicht ;)
Aber so sehe ich in evcc eindeutig, warum mein AC Thor nicht heizt, obwohl die Solltemperatur noch nicht erreicht ist und PV-Überschuß vorhanden ist. Es hat jetzt der Temperaturschalter des Heizstabs ausgelöst.
Der AC Thor kann halt die Information erkennen ob eine Last angeschlossen ist, oder nicht. So wie auch eine Wallbox erkennen kann, ob eine Auto eingesteckt ist.
Ok, passt. Jetzt wo die "Zwangstrennung" weg ist liefert das ja tatsächlich auch zusätzliche Informationen.
evcc hat gestern zwei Logeinträge erzeugt, das macht Sinn, da 1x die Temperatursicherung am Heizstab ausgelöst hat und mein Charger Code dann Status A ausgibt.
Der letzte Logeintrag geht auch bis 0:00, auch das passt:
Jedoch zeigt der LP mir heute morgen immer noch 1kWh an, obwohl der Heizstab heute sicher noch nicht gelaufen ist.
Setzt du um Mitternacht auch den "Geladen" Wert auf 0 zurück?
siehe #22109
@docolli schau bitte nochmal drauf
@andig passt von meiner Seite