(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

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 ;)