Hallo, ich möchte meinen Receifer überwachen. Problem, man hört spotify, die Playlist ist zu Ende, das Gerät wird vergessen und bleibt den ganzen Tag unnütz angeschaltet.
Meine Idee ist, das Gerät auszuschalten wenn nach einer bestimmten Zeit x kein neuer Titel anliegt.
Es soll auf jegliche Änderung des Titels getriggert werden und mit jeder Änderung des Titels der Timer zurück gesetzt werden.
Aber irgendwie klappt es nicht so?
defmod AV_abschaltung_spotify DOIF ([?AV_Receiver:input] eq "spotify" and ["^AV_Receiver:currentTitle"]) (set AV_Receiver off)
attr AV_abschaltung_spotify do always
attr AV_abschaltung_spotify wait 600
Schau mal do resetWait im Commandref
Danke, aber damit komme ich nicht weiter. Die beiden "do" Varianten habe ich ausprobiert. Bei do always erfolgt keine Abschaltung, bei do waitreset läuft der Timer immer von Anfang an durch und schaltet unabhängig von meiner Wunschbedingung.
Wie könnt man dies noch lösen?
Zurücksetzen des Waittimers für das gleiche Kommando back
Im Gegensatz zu do always wird ein Waittimer mit dem Attribut do resetwait auch dann zurückgesetzt, wenn die gleiche Bedingung wiederholt wahr wird.
Damit können Ereignisse ausgelöst werden, wenn etwas innerhalb einer Zeitspanne nicht passiert.
Das Attribut do resetwait impliziert eine beliebige Wiederholung wie do always. Diese lässt sich allerdings mit dem Attribut repeatsame einschränken s. u.
Anwendungsbeispiel: Meldung beim Ausbleiben eines Events
define di_push DOIF ([Tempsensor])(set pushmsg "sensor failed again")
attr di_push wait 1800
attr di_push do resetwait
Leider funktioniert dies nicht.
Fhem aktualisiert regelmäßig die reading, obwohl diese sich nicht ändern. Mit jeder Aktualisierung setzt sich der Timer zurück.
Also muss eine andere Lösung her.
event-on-change-reading setzen
Leider unverändert...
defmod AV_abschaltung_spotify DOIF ([?AV_Receiver:input] eq "spotify" and [AV_Receiver:currentTitle]) (set AV_Receiver off)
attr AV_abschaltung_spotify do resetwait
attr AV_abschaltung_spotify event-on-change-reading .*
attr AV_abschaltung_spotify wait 600
Nicht auf dem DOIF sondern auf dem AV_Receiver.
noch mal bitte versuchen!
Super, funktioniert. Danke
Muss man drauf kommen, aber logisch.