Hi!
Ich habe ein DOIF für meine Rolladen.. davon habe ich 4 Stück... habe gestern abend alle disabeld und wollte heute wieder alles enabeln und checkall durchführen... Hat bei allen bis auf einen geklappt.
Ein DOIF lässt sich auf teufel komm raus nicht enabeln... Was kann ich tun? Gibt es da einen Trick?
Internals:
DEF ([LichtSensor] < 13.0 and [?WZFensterRollo:pct:d] > 75)
(set WZFensterRollo pct 75)
DOELSEIF
([TVTime:state] eq "on" and [?LichtSensor] > 1.0 and [?WZFensterRollo:pct:d] > 1)
(set WZFensterRollo close)
DOELSEIF
([08:00-22:00] and [TVTime:state] eq "off" and [LichtSensor] > 13.0 and [?WZFensterRollo:pct:d] < 99)
(set WZFensterRollo open)
FUUID 603a5d37-f33f-e7ed-e940-27a00edbda96aee6
FVERSION 98_DOIF.pm:0.256630/2022-02-09
MODEL FHEM
NAME DOIFWZFensterRollo
NOTIFYDEV TVTime,global,LichtSensor
NR 104
NTFY_ORDER 50-DOIFWZFensterRollo
STATE disabled
TYPE DOIF
VERSION 25663 2022-02-09 17:05:11
READINGS:
2022-02-19 08:17:41 Device LichtSensor
2022-02-18 17:43:01 cmd 1
2022-02-18 17:43:01 cmd_event LichtSensor
2022-02-18 17:43:01 cmd_nr 1
2022-02-19 08:17:41 e_LichtSensor_STATE 105.7
2022-02-17 21:13:37 e_TVTime_state off
2022-02-19 08:17:22 mode enabled
2022-02-19 08:10:44 state disabled
2022-02-18 22:00:00 timer_01_c03 19.02.2022 08:00:00
2022-02-18 22:00:00 timer_02_c03 19.02.2022 22:00:00
Regex:
accu:
collect:
cond:
LichtSensor:
0:
&STATE ^LichtSensor$
1:
2:
&STATE ^LichtSensor$
TVTime:
0:
1:
state ^TVTime$:^state:
2:
state ^TVTime$:^state:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::InternalDoIf($hash,'LichtSensor','STATE') < 13.0 and ::ReadingValDoIf($hash,'WZFensterRollo','pct','','d') > 75
1 ::ReadingValDoIf($hash,'TVTime','state') eq "on" and ::InternalDoIf($hash,'LichtSensor','STATE') > 1.0 and ::ReadingValDoIf($hash,'WZFensterRollo','pct','','d') > 1
2 ::DOIF_time($hash,0,1,$wday,$hms) and ::ReadingValDoIf($hash,'TVTime','state') eq "off" and ::InternalDoIf($hash,'LichtSensor','STATE') > 13.0 and ::ReadingValDoIf($hash,'WZFensterRollo','pct','','d') < 99
days:
do:
0:
0 set WZFensterRollo pct 75
1:
0 set WZFensterRollo close
2:
0 set WZFensterRollo open
3:
helper:
NOTIFYDEV TVTime,global,LichtSensor
event LOWEST_ILLUMINATION: 80.4,HIGHEST_ILLUMINATION: 115.7,CURRENT_ILLUMINATION_STATUS: NORMAL,AVERAGE_ILLUMINATION_STATUS: NORMAL,HIGHEST_ILLUMINATION_STATUS: NORMAL,LOWEST_ILLUMINATION_STATUS: NORMAL,115.3,CURRENT_ILLUMINATION: 115.3,AVERAGE_ILLUMINATION: 105.7,devstate: ok,hmstate: 115.3
globalinit 1
last_timer 2
sleeptimer -1
timerdev LichtSensor
timerevent LOWEST_ILLUMINATION_STATUS: NORMAL,AVERAGE_ILLUMINATION: 9.4,6.4,CURRENT_ILLUMINATION: 6.4,CURRENT_ILLUMINATION_STATUS: NORMAL,AVERAGE_ILLUMINATION_STATUS: NORMAL,HIGHEST_ILLUMINATION_STATUS: NORMAL,HIGHEST_ILLUMINATION: 12.7,LOWEST_ILLUMINATION: 6.4,devstate: ok,hmstate: 6.4
triggerDev LichtSensor
timerevents:
LOWEST_ILLUMINATION_STATUS: NORMAL
AVERAGE_ILLUMINATION: 9.4
6.4
CURRENT_ILLUMINATION: 6.4
CURRENT_ILLUMINATION_STATUS: NORMAL
AVERAGE_ILLUMINATION_STATUS: NORMAL
HIGHEST_ILLUMINATION_STATUS: NORMAL
HIGHEST_ILLUMINATION: 12.7
LOWEST_ILLUMINATION: 6.4
devstate: ok
hmstate: 6.4
timereventsState:
LOWEST_ILLUMINATION_STATUS: NORMAL
AVERAGE_ILLUMINATION: 9.4
state: 6.4
CURRENT_ILLUMINATION: 6.4
CURRENT_ILLUMINATION_STATUS: NORMAL
AVERAGE_ILLUMINATION_STATUS: NORMAL
HIGHEST_ILLUMINATION_STATUS: NORMAL
HIGHEST_ILLUMINATION: 12.7
LOWEST_ILLUMINATION: 6.4
devstate: ok
hmstate: 6.4
triggerEvents:
LOWEST_ILLUMINATION: 80.4
HIGHEST_ILLUMINATION: 115.7
CURRENT_ILLUMINATION_STATUS: NORMAL
AVERAGE_ILLUMINATION_STATUS: NORMAL
HIGHEST_ILLUMINATION_STATUS: NORMAL
LOWEST_ILLUMINATION_STATUS: NORMAL
115.3
CURRENT_ILLUMINATION: 115.3
AVERAGE_ILLUMINATION: 105.7
devstate: ok
hmstate: 115.3
triggerEventsState:
LOWEST_ILLUMINATION: 80.4
HIGHEST_ILLUMINATION: 115.7
CURRENT_ILLUMINATION_STATUS: NORMAL
AVERAGE_ILLUMINATION_STATUS: NORMAL
HIGHEST_ILLUMINATION_STATUS: NORMAL
LOWEST_ILLUMINATION_STATUS: NORMAL
state: 115.3
CURRENT_ILLUMINATION: 115.3
AVERAGE_ILLUMINATION: 105.7
devstate: ok
hmstate: 115.3
internals:
all LichtSensor:STATE
interval:
0 -1
1 0
intervalfunc:
intervaltimer:
localtime:
0 1645254000
1 1645304400
perlblock:
readings:
all TVTime:state
realtime:
0 08:00:00
1 22:00:00
time:
0 08:00:00
1 22:00:00
timeCond:
0 2
1 2
timer:
0 0
1 0
timers:
2 0 1
trigger:
triggertime:
1645304400:
localtime 1645304400
hash:
uiState:
uiTable:
Attributes:
DbLogExclude .*
do always
group DOIF Rolladen
room DOIF
Kann ich nicht nachvollziehen, mit
defmod di_disable DOIF ([LichtSensor] < 13.0 and [?WZFensterRollo:pct:d] > 75)\
(set WZFensterRollo pct 75)\
DOELSEIF\
([TVTime:state] eq "on" and [?LichtSensor] > 1.0 and [?WZFensterRollo:pct:d] > 1)\
(set WZFensterRollo close)\
DOELSEIF\
([08:00-22:00] and [TVTime:state] eq "off" and [LichtSensor] > 13.0 and [?WZFensterRollo:pct:d] < 99)\
(set WZFensterRollo open)
kann ich sowohl per set di_disable disable das Device deaktivieren, als auch per set di_disable enable aktivieren.
Hmm... komisch... Habe das doif jetzt gelöscht und komplett neu erstellt.. jetzt kann ich zwar en und disabeln aber nach einem checkall bleibt er status auf initialized
Ist doch nicht normal so, oder? alles anderen doifs klappen ohne probleme und sind genauso aufgebaut...
Zitat von: misux am 19 Februar 2022, 10:41:59
Hmm... komisch... Habe das doif jetzt gelöscht und komplett neu erstellt.. jetzt kann ich zwar en und disabeln aber nach einem checkall bleibt er status auf initialized
Ist doch nicht normal so, oder? alles anderen doifs klappen ohne probleme und sind genauso aufgebaut...
Wenn keine Bedingung zutrifft, dann ändert sich der Status nicht - das ist normal.