evcc icon indicating copy to clipboard operation
evcc copied to clipboard

MyPV: fix status mapping

Open docolli opened this issue 6 months ago • 15 comments

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. grafik

Also the load state from MyPV is evaluated. grafik 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. grafik

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".

docolli avatar Jun 22 '25 15:06 docolli

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

andig avatar Jun 22 '25 16:06 andig

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.

docolli avatar Jun 22 '25 16:06 docolli

Siehe auch https://github.com/evcc-io/evcc/issues/22041 bzgl. Konsequenzen.

andig avatar Jun 25 '25 17:06 andig

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.

docolli avatar Jun 26 '25 07:06 docolli

#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.

andig avatar Jun 26 '25 07:06 andig

Kann ich nur unterstützen! Dann würde ich auch bei mir den OFF Workaround wieder raus nehmen. Bin gerne bereit zu testen.

docolli avatar Jun 26 '25 07:06 docolli

Siehe https://github.com/evcc-io/evcc/pull/22068

andig avatar Jun 26 '25 16:06 andig

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.

andig avatar Jun 28 '25 11:06 andig

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: grafik

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.

docolli avatar Jun 28 '25 12:06 docolli

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 ;)

andig avatar Jun 28 '25 12:06 andig

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 ;)

grafik 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.

docolli avatar Jun 28 '25 13:06 docolli

Ok, passt. Jetzt wo die "Zwangstrennung" weg ist liefert das ja tatsächlich auch zusätzliche Informationen.

andig avatar Jun 28 '25 14:06 andig

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. grafik

Der letzte Logeintrag geht auch bis 0:00, auch das passt: grafik

Jedoch zeigt der LP mir heute morgen immer noch 1kWh an, obwohl der Heizstab heute sicher noch nicht gelaufen ist. grafik

Setzt du um Mitternacht auch den "Geladen" Wert auf 0 zurück?

docolli avatar Jun 29 '25 06:06 docolli

siehe #22109

VolkerK62 avatar Jun 29 '25 06:06 VolkerK62

@docolli schau bitte nochmal drauf

andig avatar Jun 30 '25 06:06 andig

@andig passt von meiner Seite

docolli avatar Jun 30 '25 08:06 docolli