FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Ronn am 16 Dezember 2019, 19:59:30

Titel: (gelöst) Verständnisfrage DOIF resetwait
Beitrag von: Ronn am 16 Dezember 2019, 19:59:30
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
Titel: Antw:Verständnisfrage DOIF resetwait
Beitrag von: amenomade am 17 Dezember 2019, 19:11:50
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
Titel: Antw:Verständnisfrage DOIF resetwait
Beitrag von: Ronn am 30 Dezember 2019, 01:10:53
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
Titel: Antw:Verständnisfrage DOIF resetwait
Beitrag von: xenos1984 am 30 Dezember 2019, 06:37:01
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
Titel: Antw:Verständnisfrage DOIF resetwait
Beitrag von: Ronn am 30 Dezember 2019, 12:44:17
Perfekt! Das war's. Nicht mehr dran gedacht, dass es das gibt. Besten Dank nochmals