(gelöst) Verständnisfrage DOIF resetwait

Begonnen von Ronn, 16 Dezember 2019, 19:59:30

Vorheriges Thema - Nächstes Thema

Ronn

Hallo,

Ich habe mal eine Frage bzgl. DOIF. es geht um folgenden Code bei mir:



define di_ba_sonos DOIF (([05:30-20:00|12345] or [09:00-22:00|60]) and [ba_bwm:state] eq "motion"and [ba_strom_sonos] eq "on") (set Sonos_Bad Volume 8) (set Sonos_Bad StartRadio Houston%20Blues%20Radio) \
DOELSE\
(set Sonos_Bad Stop)
attr di_ba_sonos alias Steuerlogik.BadSonos
attr di_ba_sonos cmdState on,on|off
attr di_ba_sonos devStateIcon off|initialize|initialized:general_aus@red on:general_an_fuer_zeit@green
attr di_ba_sonos do resetwait
attr di_ba_sonos icon helper_doif
attr di_ba_sonos room Badezimmer,DOIF
attr di_ba_sonos wait :120


Wenn ich diese Variante mit DOELSE benutze, wird das Radio immer wieder neugestartet. Dabei soll aber nur der Timer aktualisiert werden. Wo liegt mein Denkfehler? Resetwait sollte doch dazu geeignet sein.

Viele Grüße

amenomade

Lieber ein "list" vom DOIF liefern, wenn er "falsch" geschaltet hat (also... Radio wieder gestartet)

Aber was willst Du genau mit resetwait machen? Wenn z.B. der Bwm wieder "motion" sendet, wird das Radio sowieso wieder angeschaltet
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Ronn

Hallo amenomade,

Sorry für die späte Rückmeldung. Ich war etwas Abwesend während der Weihnachtszeit. Folgende Verständnisfrage habe ich:

1) bei dieser Variante

((([08:00-20:00|12345]) or ([10:00-23:00|60])) and [ba_bwm:state] eq "motion" and [ba_strom_sonos:state] eq "on") (set Sonos_Bad Volume 8, set Sonos_Bad StartFavourite 104.6%20RTL%20Berlins%20Hit-Radio%20|%20(Hot%20AC))
DOELSE
(set Sonos_Bad Stop)

attr di_ba_sonos alias Steuerlogik.BadSonos
attr di_ba_sonos cmdState on|off
attr di_ba_sonos devStateIcon off|initialize|initialized:general_aus@red on:general_an_fuer_zeit@green
attr di_ba_sonos do resetwait
attr di_ba_sonos icon helper_doif
attr di_ba_sonos room Badezimmer,DOIF
attr di_ba_sonos wait :120

wird nach jeder Bewegung (motion) die Musik neugestartet. Hierbei wird der Timer jedesmal gelöscht und setzt erst ein wenn wieder ,,nomotion" aktiviert wird. Jedoch möchte ich, dass das quasi ohne ,,Neustart" des Radiosenders stattfindet.

Bei Variante
2 (vorher gehabt))

((([08:00-20:00|12345]) or ([10:00-23:00|60])) and [ba_bwm:state] eq "motion" and [ba_strom_sonos:state] eq "on") (set Sonos_Bad Volume 8, set Sonos_Bad StartFavourite 104.6%20RTL%20Berlins%20Hit-Radio%20|%20(Hot%20AC)) (set Sonos_Bad Stop)

attr di_ba_sonos alias Steuerlogik.BadSonos
attr di_ba_sonos cmdState on,off
attr di_ba_sonos devStateIcon off|initialize|initialized:general_aus@red on:general_an_fuer_zeit@green
attr di_ba_sonos do resetwait
attr di_ba_sonos icon helper_doif
attr di_ba_sonos room Badezimmer,DOIF
attr di_ba_sonos wait 0,120

ist das Problem, dass wenn z.B. morgens Bewegung im Bad ist, dass ,,motion" über der Timerdefinition liegt (120 sec) und es somit nicht zu einer "Verlängerung" des Timers kommt und das Radio dann natürlich ausgeht.

Und ich finde irgendwie keine Lösung für das Problem. Vielleicht hast du oder jemand Anderes einen Lösungsvorschlag für mich?

Viele Grüße

xenos1984

Ich würde vermuten, dass repeatsame ist, was du suchst, zusätzlich zur ersten Variante in deinem Post (ungetestet):

http://fhem.de/commandref_DE.html#DOIF_repeatsame

attr di_ba_sonos repeatsame 1

Ronn

Perfekt! Das war's. Nicht mehr dran gedacht, dass es das gibt. Besten Dank nochmals