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.
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"?
Danke
Habe es mal so umgebaut mal schauen ob es so.
Melde mich nächste Woche.
Schönes Wochenende
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.