Sorry für den etwas holperigen Betreff.
Problemstellung:
- Eine Blitzwolf Schaltsteckdose mit Strommessung und Tasmota geflasht
- Daran hängt eine Waschmaschine, es soll ermittelt werden, wann die Waschmaschine fertig ist
- Wenn Strom fließt, kommen alle Sekunde Sensordaten mit dem aktuellen Stromverbrauch
Leider ist es so, dass die Waschmaschine einen ständig wechselnden verbrauch hat, der auch schon mal unter 5W geht, was gleichzeitig dem Zustand "fertig" entspricht. Gesucht wird eine Möglichkeit, zu ermitteln, ob der Stromverbrauch für Zeitspanne X (evtl. 2 Minuten) unter 10W liegt
Momentan habe ich ein Userreading "Idlestate", welches eine Perl Funktion in 99_myUtils nutzt und die Werte "off", "idle", "running" haben kann. Diese werden in FTUI inForm eines blinkenden Icons angezeigt. Das Problem ist nun halt, dass sehr oft fälschlicherweise "idle" gesetzt wird, wenn die Waschmaschine eine programmbedingte Pause macht und der Stromverbrauch unter 10W fällt.
Ich hatte schon überlegt, mit einem Notify ein temporäres at zu setzen, was nach 2 Minuten nochmal nachschaut und dann erst den Idlestate setzt. Nur würde dann alle Sekunde (Sensordaten) ein neues at erstellt, also 120 at's bei 2 Minuten. Das kann es ja nicht sein. Zweite, praktikabelere Idee, wäre eine Art Ringbuffer aus 120 Werten, aus dem ein Durchschnittswert errechnet wird. Leider weiß ich nicht, wie ich sowas realisieren kann.
Beim Idlestate würde 2 Minuten Genauigkeit voll ausreichen, da es nur darum geht, im FTUI anzuzeigen, wenn die Waschmaschine fertig ist.
Hat da jemand eine Idee?
Istzustand:
Userreading:
Idlestate { idlestate(ReadingsVal("stadtweg.eg.waschmaschine","ENERGY_Power",0));; }
Funktion
#############identify idle state########
sub
idlestate($)
{
my($value) = @_;
if ($value == 0) {
return "off";
} elsif ($value > 0 && $value < 10) {
return "idle";
} else {
return "running";
}
}
Vergleichbare Aufgabenstellung habe ich hier mit einem DOIF gelöst - via "wait" Attribut. Klappt einwandfrei. Lasse dabei einfach prüfen, ob die Steckdose rund 5 Minuten < Schwellenwert bleibt, dann wird das Signal entsprechend ausgegeben.
Hi,
Gibt es Dich schon x-mal! Suchen hilft ,,Steckdose Waschmaschine"
Z.B. hier: https://forum.fhem.de/index.php/topic,26339.msg193391.html#msg193391
Gruß Arnd
Gesendet von iPhone mit Tapatalk
Das ständige Senden von Tasmota kannst du auch mit PowerDelta 0 ganz abschalten. Dann kommt der Wert nur noch alle 5 Minuten mit den Tele String. Das Intervall kann man aber auch noch verändern.
Ansonste habe ich das auch bei meinem DOIF mit dem wait-Attribut gelöst.
Danke Jungs, da habe ich jetzt eine Richtung :)