FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: TecCheck am 29 Juni 2015, 19:38:59

Titel: DOIF: Problem Zeitspanne seit Readingsänderung
Beitrag von: TecCheck am 29 Juni 2015, 19:38:59
Hallo @ All,

ich versuche,  eine meiner Sonos-Boxen,  nach einer bestimmten Zeitspanne,  in der sich das Reading "LastActionResult"
NICHT ändert,  zu stoppen.
Versucht habe ich das mit folgendem DOIF:


( [Sonos_Bad:transportState] eq "PLAYING" and [Sonos_Bad:LastActionResult:sec] > 60) (set Sonos_Bad Stop)

Erreichen möchte ich damit ein Stoppen der Wiedergabe,  wenn die Box eine bestimmte Zeit (hier zum Test 60 Sekunden)  nicht bedient wird. 

Die Readings im DOIF werden auch richtig aktualisiert,  nur löst das DOIF nicht aus.

ZitatBei Readingangaben kann die Zeitspanne mit [<Device>:<Reading>:sec] in Sekunden seit der letzten Änderung bestimmt werden
Müsste doch eigentlich so funktionieren,  oder hab ich da was falsch verstanden??

Grüße aus der Eifel

Wolfgang
Titel: Antw:DOIF: Problem Zeitspanne seit Readingsänderung
Beitrag von: Ralli am 29 Juni 2015, 20:09:44

define DEINDOIF DOIF ([?Sonos_Bad:transportState] eq "PLAYING" and [Sonos_Bad:LastActionResult]) (set Sonos_Bad Stop)
attr DEINDOIF wait 60
attr do always


Keine Ahnung, ob das so klappt, habe kein Sonos.

Aber folgender Denkansatz: Getriggert auf LastActionResult wird nach 60 Sekunden das cmd_1 ausgelöst, wenn transportState Playing ist.
Titel: Antw:DOIF: Problem Zeitspanne seit Readingsänderung
Beitrag von: TecCheck am 29 Juni 2015, 20:50:27
Hallo Ralli,

Super,  so funzt es!!

Das Beispiel
define di_lamp DOIF ([BM:state:sec] < 5)(set lamp on-for-timer 300)
                       hat mich auf die falsche Fährte gebracht.  :-[

Ich danke dir

Schönen Abend

Wolfgang



EDIT:  zu früh gefreut,  bei einer Änderung von LastActionResult ändert sich zwar das Reading e_Sonos_Bad_LastActionResult im DOIF aber der Waittimer wird nicht neu gestartet.   :(

EDIT II:  Wenn ich  do always  in  do resetwait  ändere,  scheint es zu funktionieren.

Jedenfalls danke für den Denkanstoß.