(gelöst) Wetteransage am Morgen und anschließender Musikwiedergabe über den Tag

Begonnen von Ronn, 20 Mai 2019, 18:31:40

Vorheriges Thema - Nächstes Thema

Ronn

Hallo zusammen,

ich habe folgendes DOIF in meinem Bad für die Sonos Boxen:



defmod di_ba_sonos DOIF ([05:30-22:00] and [ba_bwm] eq "motion") (set Sonos_Bad Speak 8 de "Text für Wetteransage") (set Sonos_Bad StartRadio Kiss%20FM, set Sonos_Bad Volume 4) \
DOELSE\
(set Sonos_Bad Stop)

attr di_ba_sonos alias Steuerlogik.BadSonos
attr di_ba_sonos cmdState on,on|off
attr di_ba_sonos cmdpause 31
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 repeatsame 1:0:0
attr di_ba_sonos room Badezimmer,DOIF
attr di_ba_sonos wait 0,32:300



Das funktioniert auch soweit. Als erstes wird das Wetter angesagt und dann weiter durch bis zum Radiostart. Eingestellt habe ich, dass das Wetter nur einmal aktiviert wird. Wenn aber das Radio durch "Nichtbewegung" wieder ausgeht, wird die Wetteransage erneut angesagt. Kann man das verhindern, dass dieser Part tatsächlich nur ein Mal anspringt (vornehmlich morgens).
Oder müsste ich mehrere DOIF-zweige bauen mit unterschiedlichen Zeiträumen und die Wetteransage dann nachmittags/abends einfach rausnehmen? Oder gibt's da ne andere Lösungsvariante? Für Kritik und Anregungen bin ich gerne offen :)

Viele Grüße

Ellert

2 Zweige sind eine Möglichkeit.
Eine andere ist, ein Reading im DOIF zu setzen wenn das Wetter angesagt wird und dieses Reading abzufragen (IF), ob das Wetter an diesem Tag angesagt wurde, dann wird das Wetter nur einmal angesagt. Das Reading setzt Du dann nachts zurück, damit das Wetter am nächsten Tag wieder angesagt wird.

Ronn

Hi,

Danke für deine Hilfestellung. Ich hab das jetzt mal an einem Test-DOIFversucht. Es klappt fast. Soweit ich es probieren konnte. Problem ist aber nun, dass die Wetteransage abgebrochen wird. Ca nach ,,guten Morgen". Ich hab's schon mit weit timer vor dem dem Doppelpunkt versucht, hat sich nicht funktioniert (oder falsch gesetzt). Hier das dazugehörige List:



Internals:
   DEF        ([05:30-23:00] and [ku_bwm] eq "motion") (
IF ([Willi4:testreading] eq "0") (set Sonos_Kueche Speak 12 de GUTEN MORGEN. Derzeit [Temp.Strasse:temperature:d] Grad) (set Sonos_Kueche Volume 6) (set Sonos_Kueche StartRadio Gay%20FM)) (
IF ([Willi4:testreading] eq "1") (set Sonos_Kueche StartRadio Gay%20FM) (set Sonos_Kueche Volume 4))
DOELSE
(set Sonos_Kueche Stop)
   FUUID      5cbee4ff-f33f-0fee-22a3-3ce39ba49b8ef729
   MODEL      FHEM
   NAME       Willi4
   NR         525
   NTFY_ORDER 50-Willi4
   STATE      cmd_1
   TYPE       DOIF
   VERSION    18890 2019-03-13 18:56:41
   READINGS:
     2019-05-20 22:38:09   Device          ku_bwm
     2019-05-20 22:38:09   cmd             1.2
     2019-05-20 22:38:09   cmd_event       ku_bwm
     2019-05-20 22:38:09   cmd_nr          1
     2019-05-20 22:38:09   cmd_seqnr       2
     2019-05-20 22:38:09   e_ku_bwm_STATE  motion
     2019-05-20 22:37:53   mode            enabled
     2019-05-20 22:38:09   state           cmd_1
     2019-05-20 22:29:58   testreading     0
     2019-05-20 22:35:08   timer_01_c01    21.05.2019 05:30:00
     2019-05-20 22:35:08   timer_02_c01    20.05.2019 23:00:00
     2019-05-20 22:38:09   wait_timer      no timer
   Regex:
     accu:
   attr:
     cmdState:
     wait:
       0:
       1:
         50
     waitdel:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms) and ::InternalDoIf($hash,'ku_bwm','STATE') eq "motion"
   days:
   devices:
     0           ku_bwm
     all         ku_bwm
   do:
     0:
       0           IF ([Willi4:testreading] eq "0") (set Sonos_Kueche Speak 12 de GUTEN MORGEN. Derzeit [Temp.Strasse:temperature:d] Grad) (set Sonos_Kueche Volume 6) (set Sonos_Kueche StartRadio Gay%20FM)
       1           IF ([Willi4:testreading] eq "1") (set Sonos_Kueche StartRadio Gay%20FM) (set Sonos_Kueche Volume 4)
     1:
       0          set Sonos_Kueche Stop
   helper:
     event      motion,battery: 100,reachable: 1
     globalinit 1
     last_timer 2
     sleepdevice ku_bwm
     sleepsubtimer 0
     sleeptimer -1
     timerdev   ku_bwm
     timerevent motion,battery: 100,reachable: 1
     triggerDev ku_bwm
     DOIF_eventas:
       cmd_nr: 1
       cmd_seqnr: 2
       cmd_event: ku_bwm
       state: cmd_1
     timerevents:
       motion
       battery: 100
       reachable: 1
     timereventsState:
       state: motion
       battery: 100
       reachable: 1
     triggerEvents:
       motion
       battery: 100
       reachable: 1
     triggerEventsState:
       state: motion
       battery: 100
       reachable: 1
   internals:
     0           ku_bwm:STATE
     all         ku_bwm:STATE
   interval:
     0          -1
     1          0
   intervalfunc:
   itimer:
   localtime:
     0          1558409400
     1          1558386000
   perlblock:
   readings:
   realtime:
     0          05:30:00
     1          23:00:00
   time:
     0          05:30:00
     1          23:00:00
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   trigger:
   triggertime:
     1558386000:
       localtime  1558386000
       hash:
     1558409400:
       localtime  1558409400
       hash:
   uiState:
   uiTable:
Attributes:
   do         resetwait
   group      DOIF
   room       Testplattform
   wait       :50



Hat jemand nen Tipp?

Ellert

IF ist ein Befehl, daher
(Bedingung) (IF (reading == 0) (set Wetter, setreading 1) (set radio))
DOELSEIF ([Nachts]) (setreading 0)
DOELSE ...

Ronn

Guten Morgen,

ich habs leider gerstern nicht mehr geschafft es auszuprobieren. Ich würde es heute Abend mal folgend probiern:


([05:30-22:00] and [ku_bwm] eq "motion") (
IF ([Willi4:testreading] == 0) (set Sonos_Kueche Speak 12 de GUTEN MORGEN. Derzeit [Temp.Strasse:temperature:d] Grad, setreading Willi4 testreading 1) (set Sonos_Kueche Volume 6) (set Sonos_Kueche StartRadio Gay%20FM)
Else
(set Sonos_Kueche StartRadio Gay%20FM) (set Sonos_Kueche Volume 4))
DOELSEIF
([05:00]) (setreading Willi4 testreading 0)
DOELSE (set Sonos_Kueche Stop)


Sofern jemand jetzt schon optimierungsbedarf erkennet, ich bin über jeden tipp glücklich (Klammersetzung etc.) :)

Per

Oder machst nen extra Fall:


defmod di_ba_sonos DOIF ([05:30-22:00] and [ba_bwm] eq "motion" and [?$SELF:wetter] eq "on") \
(set Sonos_Bad Speak 8 de "Text für Wetteransage") (setreading $SELF wetter off,set $SELF cmd_2) \
DOELSEIF ([05:30-22:00] and [ba_bwm] eq "motion") \
(set Sonos_Bad StartRadio Kiss%20FM, set Sonos_Bad Volume 4) \
DOELSEIF ([05:00]) \
(setreading $SELF wetter on) \
DOELSE\
(set Sonos_Bad Stop)

attr di_ba_sonos cmdState on,on|on|wetter|off
attr di_ba_sonos do resetwait
attr di_ba_sonos wait 0,32:0:300

Ronn

Hallo Per,

danke für deinen Input. Eine Frage habe ich noch (bin da noch nicht so fit drin). Warum hast du hinter (setreading $SELF wetter off) den Befehl (set $SELF cmd_2) eingesetzt? ist das eine Weiterleitung/Verweis auf cmd_2? weil er in der ersten Schleife "on" erkennt und dann den cmd_2 ausüben soll? oder totaler Blödsinn von mir?

Deine Variante probiere ich heute Abend ebenfalls!

Viele Grüße

Per

Zitat von: Ronniedinho am 21 Mai 2019, 14:49:52ist das eine Weiterleitung
Ja. Spart das Doppeln von Befehlen.
Man könnte auch die identischen Teile der Abfrage in ein DOIF_Reading auslagern, lohnt aber bei den beiden Termen noch nicht wirklich. Außer du bist auf Fehlersuche, dann ist das ganz nützlich.

Ronn

Vielen Dank für deine Antwort :)

Deine Variante funktioniert fast. Mit on und off klappt. Jetzt ist aber das Problem, dass er nach ,,nomotion" ja auf Motion wieder zurückspringt. Und jetzt startet der Radiosender immer wieder von vorne. Obwohl do resetwait aktiviert ist. Weißt du woran das liegt? Hier mal das List (hatte es noch ein bisschen mit den Bezeichnungen angepasst):


Internals:
   DEF        ([05:30-22:00] and [ku_bwm] eq "motion" and [?$SELF:wetter] eq "on")
(set Sonos_Kueche Speak 8 de Hallo du da) (setreading $SELF wetter off,set $SELF cmd_2)
DOELSEIF
([05:30-22:00] and [ku_bwm] eq "motion")
(set Sonos_Kueche StartRadio Gay%20FM, set Sonos_Kueche Volume 4)
DOELSEIF
([05:00]) (setreading $SELF wetter on)
DOELSE
(set Sonos_Kueche Stop)
   FUUID      5cbee4ff-f33f-0fee-22a3-3ce39ba49b8ef729
   MODEL      FHEM
   NAME       Willi4
   NR         525
   NTFY_ORDER 50-Willi4
   STATE      on
   TYPE       DOIF
   VERSION    18890 2019-03-13 18:56:41
   READINGS:
     2019-05-21 19:48:08   Device          ku_bwm
     2019-05-21 19:47:54   cmd             2
     2019-05-21 19:47:54   cmd_event       ku_bwm
     2019-05-21 19:47:54   cmd_nr          2
     2019-05-21 19:48:08   e_ku_bwm_STATE  nomotion
     2019-05-21 19:41:30   mode            enabled
     2019-05-21 19:47:54   state           on
     2019-05-20 22:29:58   testreading     0
     2019-05-21 19:41:30   timer_01_c01    22.05.2019 05:30:00
     2019-05-21 19:41:30   timer_02_c01    21.05.2019 22:00:00
     2019-05-21 19:41:30   timer_03_c02    22.05.2019 05:30:00
     2019-05-21 19:41:30   timer_04_c02    21.05.2019 22:00:00
     2019-05-21 19:41:30   timer_05_c03    22.05.2019 05:00:00
     2019-05-21 19:48:08   wait_timer      21.05.2019 19:53:08 cmd_4 ku_bwm
     2019-05-21 19:47:33   wetter          off
   Regex:
     accu:
   attr:
     cmdState:
       0:
         on
         on
       1:
         on
       2:
         wetter
       3:
         off
     wait:
       0:
         0
         5
       1:
         0
       2:
         0
       3:
         300
     waitdel:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms) and ::InternalDoIf($hash,'ku_bwm','STATE') eq "motion" and ::ReadingValDoIf($hash,'Willi4','wetter') eq "on"
     1          ::DOIF_time($hash,2,3,$wday,$hms) and ::InternalDoIf($hash,'ku_bwm','STATE') eq "motion"
     2          ::DOIF_time_once($hash,4,$wday)
   days:
   devices:
     0           ku_bwm
     1           ku_bwm
     all         ku_bwm
   do:
     0:
       0          set Sonos_Kueche Speak 8 de Hallo du da
       1          setreading Willi4 wetter off,set Willi4 cmd_2
     1:
       0          set Sonos_Kueche StartRadio Gay%20FM, set Sonos_Kueche Volume 4
     2:
       0          setreading Willi4 wetter on
     3:
       0          set Sonos_Kueche Stop
   helper:
     event      battery: 100,nomotion,reachable: 1
     globalinit 1
     last_timer 5
     sleepdevice ku_bwm
     sleepsubtimer 0
     sleeptimer 3
     timerdev   ku_bwm
     timerevent battery: 100,nomotion,reachable: 1
     triggerDev ku_bwm
     DOIF_eventas:
       cmd_nr: 2
       cmd: 2
       cmd_event: ku_bwm
       state: on
     timerevents:
       battery: 100
       nomotion
       reachable: 1
     timereventsState:
       battery: 100
       state: nomotion
       reachable: 1
     triggerEvents:
       battery: 100
       nomotion
       reachable: 1
     triggerEventsState:
       battery: 100
       state: nomotion
       reachable: 1
   internals:
     0           ku_bwm:STATE
     1           ku_bwm:STATE
     all         ku_bwm:STATE
   interval:
     0          -1
     1          0
     2          -1
     3          2
   intervalfunc:
   itimer:
   localtime:
     0          1558495800
     1          1558468800
     2          1558495800
     3          1558468800
     4          1558494000
   readings:
   realtime:
     0          05:30:00
     1          22:00:00
     2          05:30:00
     3          22:00:00
     4          05:00:00
   time:
     0          05:30:00
     1          22:00:00
     2          05:30:00
     3          22:00:00
     4          05:00:00
   timeCond:
     0          0
     1          0
     2          1
     3          1
     4          2
   timer:
     0          0
     1          0
     2          0
     3          0
     4          0
   timers:
     0           0  1
     1           2  3
     2           4
   trigger:
   triggertime:
     1558468800:
       localtime  1558468800
       hash:
     1558494000:
       localtime  1558494000
       hash:
     1558495800:
       localtime  1558495800
       hash:
   uiState:
   uiTable:
Attributes:
   cmdState   on,on|on|wetter|off
   do         resetwait
   group      DOIF
   room       Testplattform
   wait       0,5:0:0:300

amenomade

#9
Wenn er auf "nomotion" springt, dann ist Bedingung 1 oder Bedingung 2 nicht mehr wahr, dann hast Du ein Zustandwechsel: er würde nach 300s cmd_4 ausführen.
Wenn er dann wieder auf "motion" springt fängt alles wieder von vorne an. Nur inzwischen ist wetter nicht mehr "on", dann springt er direkt auf cmd_2 => set Sonos_Kueche StartRadio usw.

Wenn Du mehrmals nacheinander nur "set Sonos_Kueche StartRadio" machst, startet jedes Mal der Radiosender von vorne, oder?
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

Hey,

Danke für deine Rückmeldung. Ja der Sender startet immer neu. Mmmh. Mir fällt auch grad kein Ansatz ein wie ich das umgehen könnte. Evtl. die if Variante mal weiterverfolgen

amenomade

Die IF Variante wird nichts bringen, solange Du einen Zustandwechsel bei "nomotion" hast. Du musst das Ausschalten des Radios irgendwie in den gleichen Zweig wie das Einschalten und mit einem wait packen, und keinen Ausweichezustand haben. Somit wird resetwait bei Wiederholung von "motion" funktionieren.

Da Du aber auch keinen Zustandwechsel zwischen "mit wetter" und "ohne wetter" willst (sonst würde der Radiosender auch wieder von vorne starten), musst Du wiederum beide im gleichen Zweig packen, dann doch mit IF arbeiten.

Ein erster Wurf wäre:

([05:30-22:00] and [ku_bwm] eq "motion" )
(
IF ([?$SELF:wetter] eq "on")(sag wetter, setreading $SELF wetter "off", sleep 32; start radio) ELSE (start radio)
)
(stop radio)
DOELSEIF ([05:00])(setreading $SELF wetter on)

wait 0,300:0
do resetwait

Das Problem jetzt ist, dass do resetwait eine Wiederholung wie do always impliziert: er würde beim nächsten "motion" wiederum das Radio starten.
Man muss dann mit repeatsame 1 begrenzen

Also... alles nur Theorie, aber ich würde so probieren:

([05:30-22:00] and [ku_bwm] eq "motion" )
(
IF ([?$SELF:wetter] eq "on")(sag wetter, setreading $SELF wetter "off", sleep 32; start radio) ELSE (start radio)
)
(stop radio)
DOELSEIF ([05:00])(setreading $SELF wetter on)

wait 0,300:0
do resetwait
repeatsame 1



Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Per


amenomade

Zitat von: Per am 22 Mai 2019, 12:42:29
Nimm das mal raus.
Wird (allein) nicht reichen: bei "nomotion" wird er den Status wechseln, bei wieder "motion" wieder den Status wechseln => Radiosender wird wieder von vorne anfangen.
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

Zitat von: amenomade am 22 Mai 2019, 18:17:22
Wird (allein) nicht reichen: bei "nomotion" wird er den Status wechseln, bei wieder "motion" wieder den Status wechseln => Radiosender wird wieder von vorne anfangen.

Danke für deine Unterstützung. Mir ist noch was anderes eingefallen. Sende ich, wenn ich zu Hause bin. Sende ich dann


Gesendet von iPhone mit Tapatalk

Ronn

Hey,

Also ich hab auch noch ne neue Version gebastelt. Gestern Abend funktionierte sie, heute nicht mehr  :'( kein Plan warum. Folgendes habe ich gemacht:


([05:30-20:00] and [ba_bwm] eq "motion" and [di_ba_sonos:wetter] eq "on") (set Sonos_Bad Speak 10 de ,,wettertext") (setreading $SELF wetter off) (set $SELF cmd_2)
DOELSEIF
([05:30-20:00] and [ba_bwm] eq "motion" and [di_ba_sonos:wetter] eq "off") (set Sonos_Bad StartRadio Gay%20FM, set Sonos_Bad Volume 3) (set Sonos_Bad Stop)
DOELSE
([05:00]) (setreading $SELF wetter on)


Das hatte wie gesagt gestern Abend noch geklappt. Heute morgen nicht mehr und jetzt heute Abend auch nicht. Das List anbei:


Internals:
   DEF        ([05:30-20:00] and [ba_bwm] eq "motion" and [di_ba_sonos:wetter] eq "on") (set Sonos_Bad Speak 3 de wettertext) (setreading $SELF wetter off) (set $SELF cmd_2)
DOELSEIF
([05:30-20:00] and [ba_bwm] eq "motion" and [di_ba_sonos:wetter] eq "off") (set Sonos_Bad StartRadio Gay%20FM, set Sonos_Bad Volume 3) (set Sonos_Bad Stop)
DOELSE
([05:00]) (setreading $SELF wetter on)
   FUUID      5c7460cd-f33f-0fee-74b1-e2b63fb5e8274897
   MODEL      FHEM
   NAME       di_ba_sonos
   NR         257
   NTFY_ORDER 50-di_ba_sonos
   STATE      cmd_3
   TYPE       DOIF
   VERSION    18890 2019-03-13 18:56:41
   READINGS:
     2019-05-22 20:02:59   Device          ba_bwm
     2019-05-22 20:02:59   cmd             3.2
     2019-05-22 20:02:59   cmd_event       ba_bwm
     2019-05-22 20:02:59   cmd_nr          3
     2019-05-22 20:02:59   cmd_seqnr       2
     2019-05-22 20:02:59   e_ba_bwm_STATE  motion
     2019-05-22 19:25:32   e_di_ba_sonos_wetter on
     2019-05-22 06:15:24   mode            enabled
     2019-05-22 20:02:59   state           cmd_3
     2019-05-22 20:00:00   timer_01_c01    23.05.2019 05:30:00
     2019-05-22 20:00:00   timer_02_c01    23.05.2019 20:00:00
     2019-05-22 20:00:00   timer_03_c02    23.05.2019 05:30:00
     2019-05-22 20:00:00   timer_04_c02    23.05.2019 20:00:00
     2019-05-22 20:00:00   wait_timer      no timer
     2019-05-22 20:02:59   wetter          on
   Regex:
     accu:
   attr:
     cmdState:
     wait:
       0:
         0
         30;0
       1:
         0
         180
     waitdel:
   condition:
     0          ::DOIF_time($hash,0,1,$wday,$hms) and ::InternalDoIf($hash,'ba_bwm','STATE') eq "motion" and ::ReadingValDoIf($hash,'di_ba_sonos','wetter') eq "on"
     1          ::DOIF_time($hash,2,3,$wday,$hms) and ::InternalDoIf($hash,'ba_bwm','STATE') eq "motion" and ::ReadingValDoIf($hash,'di_ba_sonos','wetter') eq "off"
   days:
   devices:
     0           ba_bwm di_ba_sonos
     1           ba_bwm di_ba_sonos
     all         ba_bwm di_ba_sonos
   do:
     0:
       0          set Sonos_Bad Speak 3 de wettertext
       1          setreading di_ba_sonos wetter off
       2          set di_ba_sonos cmd_2
     1:
       0          set Sonos_Bad StartRadio Gay%20FM, set Sonos_Bad Volume 3
       1          set Sonos_Bad Stop
     2:
       0          [05:00]
       1          setreading di_ba_sonos wetter on
   helper:
     event      reachable: 1,battery: 67,motion
     globalinit 1
     last_timer 4
     sleepdevice set_cmd_2
     sleepsubtimer 1
     sleeptimer -1
     timerdev   ba_bwm
     timerevent reachable: 1,battery: 67,motion
     triggerDev ba_bwm
     DOIF_eventas:
       cmd_nr: 3
       cmd_seqnr: 2
       cmd_event: ba_bwm
       state: cmd_3
     timerevents:
       reachable: 1
       battery: 67
       motion
     timereventsState:
       reachable: 1
       battery: 67
       state: motion
     triggerEvents:
       reachable: 1
       battery: 67
       motion
     triggerEventsState:
       reachable: 1
       battery: 67
       state: motion
   internals:
     0           ba_bwm:STATE
     1           ba_bwm:STATE
     all         ba_bwm:STATE
   interval:
     0          -1
     1          0
     2          -1
     3          2
   intervalfunc:
   itimer:
   localtime:
     0          1558582200
     1          1558634400
     2          1558582200
     3          1558634400
   perlblock:
   readings:
     0           di_ba_sonos:wetter
     1           di_ba_sonos:wetter
     all         di_ba_sonos:wetter
   realtime:
     0          05:30:00
     1          20:00:00
     2          05:30:00
     3          20:00:00
   time:
     0          05:30:00
     1          20:00:00
     2          05:30:00
     3          20:00:00
   timeCond:
     0          0
     1          0
     2          1
     3          1
   timer:
     0          0
     1          0
     2          0
     3          0
   timers:
     0           0  1
     1           2  3
   trigger:
   triggertime:
     1558582200:
       localtime  1558582200
       hash:
     1558634400:
       localtime  1558634400
       hash:
   uiState:
   uiTable:
Attributes:
   alias      Steuerlogik.BadSonos
   devStateIcon off|initialize|initialized:general_aus@red on:general_an_fuer_zeit@green
   do         resetwait
   icon       helper_doif
   room       Badezimmer,DOIF
   wait       0,30;0:0,180


Ich habe beim ersten doif eine Weiterleitung auf den nächsten Zweig gelegt. Das hatte soweit geklappt das er den Sender nicht neustartete. Aber heute läuft es nicht mehr  :-\

amenomade

#16
Zitatwait       0,30;0:0,180
Semikolon?

EDIT: und
ZitatDOELSE
([05:00]) (setreading $SELF wetter on)
sollte eher DOELSEIF sein

Und auch merken:
Zitat von: amenomade am 21 Mai 2019, 21:57:56Da Du aber auch keinen Zustandwechsel zwischen "mit wetter" und "ohne wetter" willst (sonst würde der Radiosender auch wieder von vorne starten), musst Du wiederum beide im gleichen Zweig packen, dann doch mit IF arbeiten.
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 zurück,

erstmal vielen Dank für euer Feedback. Das hat geholfen, die Lösung zu finden. Folgend habe ich nun niedergeschrieben:


defmod di_ba_sonos DOIF ([05:30-20:00] and [ba_bwm] eq "motion" and [$SELF:wetter] eq "on") (set Sonos_Bad Speak 8 de "Wettertext") (setreading $SELF wetter off) (set $SELF cmd_2)\
DOELSEIF\
([05:30-20:00] and [ba_bwm] eq "motion" and [$SELF:wetter] eq "off") (set Sonos_Bad StartRadio Gay%20FM, set Sonos_Bad Volume 4) (set Sonos_Bad Stop)\
DOELSEIF \
([05:32]) (setreading $SELF wetter on)

attr di_ba_sonos alias Steuerlogik.BadSonos
attr di_ba_sonos cmdState on,on,on|on,off|wetter
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 2,33:0,180


Die Sache gelöst hat im Endeffekt der Hinweis mit dem zusätzlichen Reading "wetter". Das DOIF macht nun folgendes:

- Sonos Box wird um 05:30 mit Strom versorgt (nicht in diesem DOIF)
- um 5:32 Uhr wird das Reading "wetter" gesetzt
- nachm aufstehen wird nun das Wetter als erstes angesagt
- durch den Befehl "set $SELF cmd_2" wird nun der zweite DOIF-Strang angesprochen (damit wird der do resetwait so gesetzt, dass die Musik nicht wieder von vorne gestartet wird.)
- sofern keine Bewegung mehr erkennbar ist, wird nach erneuter Bewegung nur die Musik ausm zweiten DOIF-Zweig abgespielt.

VIELEN DANK nochmals!!!!

Per

Zitat von: Ronniedinho am 23 Mai 2019, 14:47:07- um 5:32 Uhr wird das Reading "wetter" gesetzt
Wenn du zwischen 5:30 und 5:32 aufstehst, bekommst du kein Wetter angesagt, erst beim nächsten Mal. Ergibt aber auch Sinn, wer will schon 5:30 das Wetter hören ;)