Dein Power Reading wird also munter weiter aktuell gehalten trotz event-on-change und 0 als Wert.
Okay - Schnelle Idee wäre den Regex Part an zu passen und uns ein eigenes Reading an zu legen.
UsersReadings: power_temp:relay_0_power:.*[1-9][0-9]*$ { localtime }
und dann nochmal in ReadingsList die Bedingungen anpassen.
Hier die Anpassung in FETT:
shellies/shellyplug-s-041778/relay/0/power:.* { my $compare = ReadingsAge($NAME,"power_temp",3800) > 3600 ? "off":"on"; ReadingsVal($NAME,"loadState","off") ne $compare ? { 'loadState' => $compare } : undef }
Was will ich damit bezwecken?
Das Userreading schreibt einfach nur die Aktuelle Zeit/Datum in das Reading power_temp. Aber immer nur dann, wenn der Wert von relay_0_power größer als 0 ist. Das kann also nur passieren, wenn das Gerät dahinter auch Strom zieht. Deswegen habe ich erstmal localtime rein geschrieben. Da kannst du dann später auch direkt sehen wann er zuletzt Strom brauchte.
Da wir nun power_temp immer bei größer 0 erzeugen, sollte also der Reading Timestamp auch passen.
Bin gespannt was du berichtest....(PS: Alles ungetestet, da ich nicht vor FHEM sitze)
EDIT: Kleines weiteres Beispiel. Finde ich von der Darstellung besser....
UsersReadings: power_temp:relay_0_power:.*[1-9][0-9]*$ {"$mday.$month.$year - $hms"}
Ist aber egal, da es nur dafür ist, das etwas drin steht. Du kannst da auch Hallo Welt rein schreiben anstatt der Zeit. Dachte nur das es ggf. für dich nützlicher ist, zu sehen wann es das letzte mal eine Veränderung im Power Reading gab, die oberhalb von 0 ist.
Gruß,
Kai