FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: Wasserwerk33 am 10 Oktober 2019, 21:16:45

Titel: Wecker, Radio Nachtlicht- Leider klappt nicht alles "Hilfe"
Beitrag von: Wasserwerk33 am 10 Oktober 2019, 21:16:45
Hi Leute,

Also zur Zeit schaltet ein doif das Nachtlicht übers Radio aus.
defmod Radio_schaltet_Licht DOIF ([Ole_Radio:"power: off"]) (set WLan_Steckdose off)
attr Radio_schaltet_Licht do always


Nun gibt es für morgens noch einen Wecker zum Kindergarten , dieser funktioniert gut. Ich würde nur gerne das das ,,Nachtlicht" nach 10 min Radio an auch angeht . Es haut mir nur alles durch einander . Mal geht garnix mal nur morgens mal nur abends.
defmod Wecker_Ole DOIF ([6:50 |Mo Di Mi Do Fr ] and [Wecker_Kindergarten] eq "on") (set OLE_Radio on-for-timer 1800, set OLE_Radio volumeStraight 3)
attr Wecker_Ole do always


Das ist der code der nicht funktoniert.
Internals:
   DEF        ([7:00] and [Ole_Radio:] eq "power: on") (set WLan_Steckdose on) DOELSE ([18:00 - 22:00] and [Ole_Radio:"power: off"]) (set WLan_Steckdose off)
   FUUID      5c8bef2e-f33f-faf7-41f4-b44f1e789b88af5f
   MODEL      FHEM
   NAME       Radio_schaltet_Licht
   NR         34
   NTFY_ORDER 50-Radio_schaltet_Licht
   STATE      cmd_2
   TYPE       DOIF
   VERSION    19303 2019-05-01 08:47:16
   READINGS:
     2019-10-10 21:11:28   cmd             2.2
     2019-10-10 21:11:28   cmd_event       Radio_schaltet_Licht
     2019-10-10 21:11:28   cmd_nr          2
     2019-10-10 21:11:28   cmd_seqnr       2
     2019-10-10 21:11:16   mode            enabled
     2019-10-10 21:11:28   state           cmd_2
     2019-10-10 21:11:16   timer_01_c01    11.10.2019 07:00:00
     2019-10-10 21:11:16   timer_02_c01    error: Wrong timespec Ole_Radio:: either HH:MM:SS or {perlcode}
   Regex:
     accu:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::DOIF_time_once($hash,0,$wday) and ::DOIF_time_once($hash,1,$wday) eq "power: on"
   days:
   devices:
   do:
     0:
       0          set WLan_Steckdose on
     1:
       0          [18:00 - 22:00] and [Ole_Radio:"power: off"]
       1          set WLan_Steckdose off
   helper:
     globalinit 1
     last_timer 2
     sleeptimer -1
     timerdev   
     timerevent
     timerevents
     timereventsState
     triggerDev
     DOIF_eventas:
       cmd_nr: 2
       cmd_seqnr: 2
       cmd_event: Radio_schaltet_Licht
       state: cmd_2
   internals:
   intervalfunc:
   itimer:
   localtime:
     0          1570770000
   readings:
   realtime:
     0          07:00:00
   time:
     0          7:00
     1          Ole_Radio:
   timeCond:
     0          0
     1          0
   timer:
     0          0
     1          0
   timers:
     0           0  1
   triggertime:
     1570770000:
       localtime  1570770000
       hash:
   uiState:
   uiTable:
Attributes:
   do         always
   room       Ole
   verbose    0


Danke schon mal im vorraus.
Titel: Antw:Wecker, Radio Nachtlicht- Leider klappt nicht alles "Hilfe"
Beitrag von: amenomade am 11 Oktober 2019, 00:28:37
DOELSE => Keine Bedingung. DOELSE heisst "in allen anderen Fälle"

Wenn Bedingung nötig, dann DOELSEIF.

Ausserdem musst Du entscheiden, ob Du eine Ereignissteuerung oder eine Zustandssteuerung willst:
[Ole_Radio:"power: off"]
[Ole_Radio] eq "power: on"

Das erste reagiert auf Ereignisse : wenn das Event "Ole_Raio power off" kommt
Das zweite (ohne Doppelpunkt nach Ole_Radio) reagiert auf Änderung des Status von Ole_Radio. Kann Deine Ole_Radio denn Zustand (also STATE oder state) den Wert "power: on" haben? Meinst Du nicht eher
[Ole_Radio:power] eq "off" sprich "wenn das Reading power vom Device Ole_Radio ist gleich "off"?
Titel: Antw:Wecker, Radio Nachtlicht- Leider klappt nicht alles "Hilfe"
Beitrag von: Wasserwerk33 am 12 Oktober 2019, 09:02:24
Danke
Habe es mal so umgebaut mal schauen ob es so.
Melde mich nächste Woche.

Schönes Wochenende
Titel: Antw:Wecker, Radio Nachtlicht- Leider klappt nicht alles "Hilfe"
Beitrag von: Wasserwerk33 am 20 Oktober 2019, 11:16:12
Melde mich nochmal zurück.
Ja es funktioniert. Es lag an der Schreibweise, dein Code so
([OLE_Radio:power] eq "off") (set WLan_Steckdose off)
Funktioniert super.

Danke dir.