Hallo Leute
Ich denke ich habe ein Schreibfehler mit den Klammern. Habe schon versucht sie anderes zu setzten dann geht garnix mehr. Das unregelmäßige Schalten habe ich erst seit dem ich die 2. Zeit drin habe.
So wie heute "gerade" schaltet es gar nicht. Gestern hatte er geschaltet.
Danke schon mal im voraus
"LIST" mit Angehangen:
Internals:
DEF ((([?6:50-21:45| Mo Di Mi Do Fr] or [?8:00-21:45| MWE]) and [ZWave_SENSOR_NOTIFICATION_3:luminance:d] < 12) and [LedEsszimmer] eq "off") (set Steckdose_1 on) DOELSEIF ([ZWave_SENSOR_NOTIFICATION_3:luminance:d] > 12 or [LedEsszimmer] eq "on") (set Steckdose_1 off)
FUUID 5c8d07a1-f33f-faf7-344e-8101f2e8fc481907
MODEL FHEM
NAME Licht_Esszimmer
NR 51
NTFY_ORDER 50-Licht_Esszimmer
STATE cmd_2
TYPE DOIF
VERSION 19303 2019-05-01 08:47:16
READINGS:
2019-11-10 20:08:20 Device ZWave_SENSOR_NOTIFICATION_3
2019-11-09 17:49:54 cmd 2
2019-11-09 17:49:54 cmd_event LedEsszimmer
2019-11-09 17:49:54 cmd_nr 2
2019-11-10 17:02:58 e_LedEsszimmer_STATE on
2019-11-10 20:08:20 e_ZWave_SENSOR_NOTIFICATION_3_luminance 2 %
2019-10-15 20:40:24 mode enabled
2019-11-09 17:49:54 state cmd_2
2019-11-09 21:45:00 timer_01_c01 10.11.2019 06:50:00|MoDiMiDoFr
2019-11-09 21:45:00 timer_02_c01 10.11.2019 21:45:00|MoDiMiDoFr
2019-11-09 21:45:00 timer_03_c01 10.11.2019 08:00:00|MWE
2019-11-09 21:45:00 timer_04_c01 10.11.2019 21:45:00|MWE
Regex:
accu:
attr:
cmdState:
wait:
waitdel:
condition:
0 ((::DOIF_time($hash,0,1,$wday,$hms,"MoDiMiDoFr") or ::DOIF_time($hash,2,3,$wday,$hms,"MWE")) and ::ReadingValDoIf($hash,'ZWave_SENSOR_NOTIFICATION_3','luminance','','d') < 12) and ::InternalDoIf($hash,'LedEsszimmer','STATE') eq "off"
1 ::ReadingValDoIf($hash,'ZWave_SENSOR_NOTIFICATION_3','luminance','','d') > 12 or ::InternalDoIf($hash,'LedEsszimmer','STATE') eq "on"
days:
0 MoDiMiDoFr
1 MoDiMiDoFr
2 MWE
3 MWE
devices:
0 ZWave_SENSOR_NOTIFICATION_3 LedEsszimmer
1 ZWave_SENSOR_NOTIFICATION_3 LedEsszimmer
all ZWave_SENSOR_NOTIFICATION_3 LedEsszimmer
do:
0:
0 set Steckdose_1 on
1:
0 set Steckdose_1 off
2:
helper:
event temperature: 22.0 C
globalinit 1
last_timer 4
sleeptimer -1
timerdev ZWave_SENSOR_NOTIFICATION_3
timerevent luminance: 2 %
triggerDev ZWave_SENSOR_NOTIFICATION_3
DOIF_eventas:
cmd_nr: 2
cmd: 2
cmd_event: LedEsszimmer
state: cmd_2
timerevents:
luminance: 2 %
timereventsState:
luminance: 2 %
triggerEvents:
temperature: 22.0 C
triggerEventsState:
temperature: 22.0 C
internals:
0 LedEsszimmer:STATE
1 LedEsszimmer:STATE
all LedEsszimmer:STATE
interval:
0 -1
1 0
2 -1
3 2
intervalfunc:
intervaltimer:
itimer:
localtime:
0 1573365000
1 1573418700
2 1573369200
3 1573418700
perlblock:
readings:
0 ZWave_SENSOR_NOTIFICATION_3:luminance
1 ZWave_SENSOR_NOTIFICATION_3:luminance
all ZWave_SENSOR_NOTIFICATION_3:luminance
realtime:
0 06:50:00
1 21:45:00
2 08:00:00
3 21:45:00
time:
0 6:50
1 21:45:00
2 8:00
3 21:45:00
timeCond:
0 0
1 0
2 0
3 0
timer:
0 0
1 0
2 0
3 0
timers:
trigger:
triggertime:
1573418700:
localtime 1573418700
hash:
uiState:
uiTable:
Attributes:
event-on-update-reading 1
room Licht
Sorry, aber das so wirklich unlesbar.
Die Klammern scheinen ok zu sein. Aber für den Rest habe ich keinen Mut, um es zu entziffern.
Sry.
Habe es nochmal neu eingestellt.
Okay dann sind Klammern schon mal nicht das Problem.
So... Danke. Jetzt musst Du beschreiben, was genau nicht funktioniert.
Im "list" sieht man, dass anscheinend LedEsszimmer seit gestern auf "on" ist. Der DOIF sieht dann keine Notwendigkeit, den Status (cmd2) zu ändern.
Es schaltet unregelmäßig.
Okay von vorne.
Das Doif gab es schon so länger nur ohne die Tage. Da hat es immer akkurat geschaltet. Jetzt schaltet es mal und mal nicht. Besitze noch eins genauso im Wohnzimmer nur ohne LED.
Dieses schaltet auch unzuverlässig. Aber nicht so schlimm wie das Esszimmer.
Internals:
DEF (([?6:50-21:45| Mo Di Mi Do Fr] or [?8:00-21:45| MWE]) and [ZWave_SENSOR_NOTIFICATION_3:luminance:d] < 15) (set Steckdose_2 on) DOELSEIF ([ZWave_SENSOR_NOTIFICATION_3:luminance:d] > 15) (set Steckdose_2 off)
FUUID 5c8d07d6-f33f-faf7-6f36-febb5d7e252d6950
MODEL FHEM
NAME Licht_Wohnzimmer
NR 52
NTFY_ORDER 50-Licht_Wohnzimmer
STATE cmd_2
TYPE DOIF
VERSION 19303 2019-05-01 08:47:16
READINGS:
2019-11-10 21:22:31 Device ZWave_SENSOR_NOTIFICATION_3
2019-11-10 16:48:10 cmd 2
2019-11-10 16:48:10 cmd_event set_cmd_2
2019-11-10 16:48:10 cmd_nr 2
2019-11-10 21:22:31 e_ZWave_SENSOR_NOTIFICATION_3_luminance 3 %
2019-10-18 09:22:12 mode enabled
2019-11-10 16:48:10 state cmd_2
2019-11-09 21:45:00 timer_01_c01 10.11.2019 06:50:00|MoDiMiDoFr
2019-11-09 21:45:00 timer_02_c01 10.11.2019 21:45:00|MoDiMiDoFr
2019-11-09 21:45:00 timer_03_c01 10.11.2019 08:00:00|MWE
2019-11-09 21:45:00 timer_04_c01 10.11.2019 21:45:00|MWE
Regex:
accu:
attr:
cmdState:
wait:
waitdel:
condition:
0 (::DOIF_time($hash,0,1,$wday,$hms,"MoDiMiDoFr") or ::DOIF_time($hash,2,3,$wday,$hms,"MWE")) and ::ReadingValDoIf($hash,'ZWave_SENSOR_NOTIFICATION_3','luminance','','d') < 15
1 ::ReadingValDoIf($hash,'ZWave_SENSOR_NOTIFICATION_3','luminance','','d') > 15
days:
0 MoDiMiDoFr
1 MoDiMiDoFr
2 MWE
3 MWE
devices:
0 ZWave_SENSOR_NOTIFICATION_3
1 ZWave_SENSOR_NOTIFICATION_3
all ZWave_SENSOR_NOTIFICATION_3
do:
0:
0 set Steckdose_2 on
1:
0 set Steckdose_2 off
2:
helper:
event luminance: 3 %
globalinit 1
last_timer 4
sleeptimer -1
timerdev ZWave_SENSOR_NOTIFICATION_3
timerevent luminance: 35 %
triggerDev ZWave_SENSOR_NOTIFICATION_3
DOIF_eventas:
cmd_nr: 2
cmd: 2
cmd_event: set_cmd_2
state: cmd_2
timerevents:
luminance: 35 %
timereventsState:
luminance: 35 %
triggerEvents:
luminance: 3 %
triggerEventsState:
luminance: 3 %
internals:
interval:
0 -1
1 0
2 -1
3 2
intervalfunc:
intervaltimer:
itimer:
localtime:
0 1573365000
1 1573418700
2 1573369200
3 1573418700
perlblock:
readings:
0 ZWave_SENSOR_NOTIFICATION_3:luminance
1 ZWave_SENSOR_NOTIFICATION_3:luminance
all ZWave_SENSOR_NOTIFICATION_3:luminance
realtime:
0 06:50:00
1 21:45:00
2 08:00:00
3 21:45:00
time:
0 6:50
1 21:45:00
2 8:00
3 21:45:00
timeCond:
0 0
1 0
2 0
3 0
timer:
0 0
1 0
2 0
3 0
timers:
trigger:
triggertime:
1573418700:
localtime 1573418700
hash:
uiState:
uiTable:
Attributes:
Also nochmal: was bedeutet "unregelmässig" genau?
Am besten ein "list" des DOIFs posten, wenn er deiner Meinung nach in einem falschen Zustand ist. Hier hast Du anscheinend manuell ein "set cmd2" gemacht. Damit kann man nichts analysieren.
Vielleicht 2 Tipps:
- in der erste Bedingung, tue zuerst die triggernde Devices (hier luminance) und erst dann die, die nur geprüft werden (hier Zeit)
- man sollte vielleicht bei luminance eine Hysterese bauen.
Es hat einfach nicht geschaltete obwohl der zwave Sensor auf 4% stand. Also unter den zulässigen 15%. Deswegen habe ich es geschaltet.
Das schalten wenn led ( indirekte Deckenbeleuchtungen) ein oder aus geschaltet wird klappt ohne Probleme da schaltet sich dann das Licht_Esszimmer passend zu an oder aus.
Nur halt eben nicht wenn es morgens dunkel ist springt sie nicht an. Außer wenn ich sie morgens einmal angeschaltete habe und sie sich dann wieder automatisch abschaltet, springt sie danach ohne Probleme wieder an wenn es dunkel genug ist.
Aber dieses Problem habe ich erst seit dem ich es mit den Wochentagen und 2 verschiedene Zeiten habe.
das Abschalten (Tablet Taster Funksteckdosen) und nächsten Tag wieder automatisch an klappte vorher ohne Probleme.
Die indirekte Lampe wird über einen Taster Augen Tablet geschaltete, dieser Wechsel klappt Ja immer noch ohne Probleme.
Na gut... mit dem geposteten "list" kann man nicht wirklich sehen, was Du beschreibst.
Aber mir ist was eingefallen: Heute (also... sagen wir mal, wir haben noch Sonntag...) ist keine Zeitbedingung wahr in deinem DOIF
Mo Di Mi Do Fr ist falsch, da wir So haben
MWE ist auch falsch, da Morgen Montag ist: Morgen ist kein WE
Ich glaube, dein DOIF kann Sonntags nicht "on" schalten. Luminance hätte ja um 21:22 mit 3% schalten müssen... aber siehe oben.
Ich probieren mal es einfach den direkten Tag angaben. Heute (Montag) hat es wieder ganz normal geschaltet ohne Probleme den ganzen Tag.
Aber laut Wiki müsste es mit "MWE" gehen.
Wie gesagt ich Tage da mal Samstag Sonntag ein.
MWE = 9 = Morgen Wochenende = $twe = tomorrow weekend = wird wahr wenn der Folgetag WE ist.
Was Du willst ist vielleicht eher WE = 7 = Wochenende = $we?
Habe mir nochmal wiki durchgelesen. Und ja du hast recht die 7 wäre richtig. Habe es geändert. Mal schauen ob damit das Problem schon weg ist.
Melde mich
Was Allgemeines: die Struktur deines DOIF kann man auch
(A und B) (do a)
(!A) (do b)
darstellen (auch wenn es für "12" keinen Fall gibt).
Da kann man auch A als DOIF_Reading abbilden. Wird übersichtlicher, weniger Last und vor allem leichter zu warten.