Mein DOIF (Displayhelligkeit einstellen je nach Umgebungshelligkeit)
([ku.bm:brightness] >= 45 and [ez.ws1] eq "off") (set WandTablet screenBrightness 100)
DOELSEIF
([ku.bm:brightness] >= 45 and [ez.ws1] eq "on") (set WandTablet screenBrightness 200)
DOELSEIF
([ku.bm:brightness] >= 40 or [07:00-20-15]) (set WandTablet screenBrightness 70)
DOELSEIF
([ku.bm:brightness] >= 35 and [20:15-07:00]) (set WandTablet screenBrightness 25)
DOELSEIF
([ku.bm:brightness] >= 30 and [20:15-07:00]) (set WandTablet screenBrightness 20)
DOELSEIF
([bm.alle] eq "off") (set WandTablet screenBrightness 1)
attr do always ist gesetzt
Funktioniert soweit ausser der letzte Zweig (cmd_6) nicht wie gewünscht.
Eventmonitor Ausgabe:
2017-03-08 19:00:30 dummy bm.alle off
2017-03-08 19:00:32 Global global DELETED bm.alle.enable
2017-03-08 19:00:32 dummy bm.alle on
Bei Zeile 1 des Eventlogs gehts in den Zustand cmd_6 -> Perfekt.
Bei Zeile 3 des Eventlogs passiert nichts, bzw. bleibt Zustand cmd_6 -> ??
Gehe mal davon aus das ich eine Entwicklungsstufe verschlafen habe.. ;D
Tja, wenn mans selbst niederschreibt, liest man es auch selbst, und erkennt dann das wenn nun Helligkeit 35 und Uhrzeit 19:16 ist kein anderer Zustand stimmt ::)
EDIT:
Korrigierertes DOIF, selbes verhalten
([ku.bm:brightness] >= 45 and [ez.ws1] eq "off") (set WandTablet screenBrightness 100)
DOELSEIF
([ku.bm:brightness] >= 45 and [ez.ws1] eq "on") (set WandTablet screenBrightness 200)
DOELSEIF
([ku.bm:brightness] >= 40) (set WandTablet screenBrightness 70)
DOELSEIF
([ku.bm:brightness] >= 35) (set WandTablet screenBrightness 25)
DOELSEIF
([ku.bm:brightness] >= 30) (set WandTablet screenBrightness 20)
DOELSEIF
([bm.alle] eq "off") (set WandTablet screenBrightness 1)
Warum do always bei zyklisch sendenden Sensoren?
Ohne list des DOIF-Moduls wird man dir nicht helfen können.
Bitteschön:
Internals:
DEF ([ku.bm:brightness] >= 45 and [ez.ws1] eq "off") (set WandTablet screenBrightness 100)
DOELSEIF
([ku.bm:brightness] >= 45 and [ez.ws1] eq "on") (set WandTablet screenBrightness 200)
DOELSEIF
([ku.bm:brightness] >= 40) (set WandTablet screenBrightness 70)
DOELSEIF
([ku.bm:brightness] >= 35) (set WandTablet screenBrightness 25)
DOELSEIF
([ku.bm:brightness] >= 30) (set WandTablet screenBrightness 20)
DOELSEIF
([bm.alle] eq "off") (set WandTablet screenBrightness 1)
NAME tablet.display.brightness
NR 463
NTFY_ORDER 50-tablet.display.brightness
STATE cmd_4
TYPE DOIF
Readings:
2017-03-08 19:25:12 Device ku.bm
2017-03-08 19:25:12 cmd 4
2017-03-08 19:25:12 cmd_event ku.bm
2017-03-08 19:25:12 cmd_nr 4
2017-03-08 19:22:53 e_bm.alle_STATE on
2017-03-08 19:25:12 e_ku.bm_brightness 35
2017-03-08 19:25:12 state cmd_4
Condition:
0 ReadingValDoIf($hash,'ku.bm','brightness') >= 45 and InternalDoIf($hash,'ez.ws1','STATE') eq "off"
1 ReadingValDoIf($hash,'ku.bm','brightness') >= 45 and InternalDoIf($hash,'ez.ws1','STATE') eq "on"
2 ReadingValDoIf($hash,'ku.bm','brightness') >= 40
3 ReadingValDoIf($hash,'ku.bm','brightness') >= 35
4 ReadingValDoIf($hash,'ku.bm','brightness') >= 30
5 InternalDoIf($hash,'bm.alle','STATE') eq "off"
Devices:
0 ku.bm ez.ws1
1 ku.bm ez.ws1
2 ku.bm
3 ku.bm
4 ku.bm
5 bm.alle
all ku.bm ez.ws1 bm.alle
Do:
0:
0 set WandTablet screenBrightness 100
1:
0 set WandTablet screenBrightness 200
2:
0 set WandTablet screenBrightness 70
3:
0 set WandTablet screenBrightness 25
4:
0 set WandTablet screenBrightness 20
5:
0 set WandTablet screenBrightness 1
6:
Helper:
event battery: ok,brightness: 35,cover: closed
globalinit 1
last_timer 0
sleeptimer -1
timerdev ku.bm
timerevent battery: ok,brightness: 35,cover: closed
triggerDev ku.bm
timerevents:
battery: ok
brightness: 35
cover: closed
timereventsState:
battery: ok
brightness: 35
cover: closed
triggerEvents:
battery: ok
brightness: 35
cover: closed
triggerEventsState:
battery: ok
brightness: 35
cover: closed
Internals:
0 ez.ws1:STATE
1 ez.ws1:STATE
5 bm.alle:STATE
all ez.ws1:STATE bm.alle:STATE
Itimer:
Readings:
0 ku.bm:brightness
1 ku.bm:brightness
2 ku.bm:brightness
3 ku.bm:brightness
4 ku.bm:brightness
all ku.bm:brightness
Regexp:
0:
1:
2:
3:
4:
5:
All:
State:
Trigger:
Attributes:
do always
Es funktioniert nun jedoch, erst wenn das Event vom Bewegunsmelder kommt.
Gibt es eine Möglichkeit bei NICHT WAHR sofort einen passenden Zustand zu suchen ?
Der Fall, der funktioniert interessiert doch nicht, sondern der, der nicht funktioniert.
Du musst also, wie auch immer, den off-Fall provozieren und davon list posten.
Da es sich bei bm.alle um einen dummy handelt kein Problem.
do always ist entfernt.
bm.alle = off
list:
Internals:
DEF ([ku.bm:brightness] >= 45 and [ez.ws1] eq "off") (set WandTablet screenBrightness 100)
DOELSEIF
([ku.bm:brightness] >= 45 and [ez.ws1] eq "on") (set WandTablet screenBrightness 200)
DOELSEIF
([ku.bm:brightness] >= 40) (set WandTablet screenBrightness 70)
DOELSEIF
([ku.bm:brightness] >= 35) (set WandTablet screenBrightness 25)
DOELSEIF
([ku.bm:brightness] >= 30) (set WandTablet screenBrightness 20)
DOELSEIF
([bm.alle] eq "off") (set WandTablet screenBrightness 1)
NAME tablet.display.brightness
NR 461
NTFY_ORDER 50-tablet.display.brightness
STATE cmd_6
TYPE DOIF
Readings:
2017-03-08 22:26:54 Device bm.alle
2017-03-08 22:26:54 cmd 6
2017-03-08 22:26:54 cmd_event bm.alle
2017-03-08 22:26:54 cmd_nr 6
2017-03-08 22:26:54 e_bm.alle_STATE off
2017-03-08 21:53:23 e_ez.ws1_STATE off
2017-03-08 22:23:26 e_ku.bm_brightness 35
2017-03-08 22:26:54 state cmd_6
Condition:
0 ReadingValDoIf($hash,'ku.bm','brightness') >= 45 and InternalDoIf($hash,'ez.ws1','STATE') eq "off"
1 ReadingValDoIf($hash,'ku.bm','brightness') >= 45 and InternalDoIf($hash,'ez.ws1','STATE') eq "on"
2 ReadingValDoIf($hash,'ku.bm','brightness') >= 40
3 ReadingValDoIf($hash,'ku.bm','brightness') >= 35
4 ReadingValDoIf($hash,'ku.bm','brightness') >= 30
5 InternalDoIf($hash,'bm.alle','STATE') eq "off"
Devices:
0 ku.bm ez.ws1
1 ku.bm ez.ws1
2 ku.bm
3 ku.bm
4 ku.bm
5 bm.alle
all ku.bm ez.ws1 bm.alle
Do:
0:
0 set WandTablet screenBrightness 100
1:
0 set WandTablet screenBrightness 200
2:
0 set WandTablet screenBrightness 70
3:
0 set WandTablet screenBrightness 25
4:
0 set WandTablet screenBrightness 20
5:
0 set WandTablet screenBrightness 1
6:
Helper:
event off
globalinit 1
last_timer 0
sleeptimer -1
timerdev bm.alle
timerevent off
triggerDev bm.alle
timerevents:
off
timereventsState:
state: off
triggerEvents:
off
triggerEventsState:
state: off
Internals:
0 ez.ws1:STATE
1 ez.ws1:STATE
5 bm.alle:STATE
all ez.ws1:STATE bm.alle:STATE
Itimer:
Readings:
0 ku.bm:brightness
1 ku.bm:brightness
2 ku.bm:brightness
3 ku.bm:brightness
4 ku.bm:brightness
all ku.bm:brightness
Regexp:
0:
1:
2:
3:
4:
5:
All:
State:
Trigger:
Attributes:
Der nächste list vom Zustandswechsel in bm.alle => on:
Internals:
DEF ([ku.bm:brightness] >= 45 and [ez.ws1] eq "off") (set WandTablet screenBrightness 100)
DOELSEIF
([ku.bm:brightness] >= 45 and [ez.ws1] eq "on") (set WandTablet screenBrightness 200)
DOELSEIF
([ku.bm:brightness] >= 40) (set WandTablet screenBrightness 70)
DOELSEIF
([ku.bm:brightness] >= 35) (set WandTablet screenBrightness 25)
DOELSEIF
([ku.bm:brightness] >= 30) (set WandTablet screenBrightness 20)
DOELSEIF
([bm.alle] eq "off") (set WandTablet screenBrightness 1)
NAME tablet.display.brightness
NR 461
NTFY_ORDER 50-tablet.display.brightness
STATE cmd_6
TYPE DOIF
Readings:
2017-03-08 22:35:59 Device bm.alle
2017-03-08 22:35:55 cmd 6
2017-03-08 22:35:55 cmd_event bm.alle
2017-03-08 22:35:55 cmd_nr 6
2017-03-08 22:35:59 e_bm.alle_STATE on
2017-03-08 21:53:23 e_ez.ws1_STATE off
2017-03-08 22:32:42 e_ku.bm_brightness 35
2017-03-08 22:35:55 state cmd_6
Condition:
0 ReadingValDoIf($hash,'ku.bm','brightness') >= 45 and InternalDoIf($hash,'ez.ws1','STATE') eq "off"
1 ReadingValDoIf($hash,'ku.bm','brightness') >= 45 and InternalDoIf($hash,'ez.ws1','STATE') eq "on"
2 ReadingValDoIf($hash,'ku.bm','brightness') >= 40
3 ReadingValDoIf($hash,'ku.bm','brightness') >= 35
4 ReadingValDoIf($hash,'ku.bm','brightness') >= 30
5 InternalDoIf($hash,'bm.alle','STATE') eq "off"
Devices:
0 ku.bm ez.ws1
1 ku.bm ez.ws1
2 ku.bm
3 ku.bm
4 ku.bm
5 bm.alle
all ku.bm ez.ws1 bm.alle
Do:
0:
0 set WandTablet screenBrightness 100
1:
0 set WandTablet screenBrightness 200
2:
0 set WandTablet screenBrightness 70
3:
0 set WandTablet screenBrightness 25
4:
0 set WandTablet screenBrightness 20
5:
0 set WandTablet screenBrightness 1
6:
Helper:
event on
globalinit 1
last_timer 0
sleeptimer -1
timerdev bm.alle
timerevent off
triggerDev bm.alle
timerevents:
off
timereventsState:
state: off
triggerEvents:
on
triggerEventsState:
state: on
Internals:
0 ez.ws1:STATE
1 ez.ws1:STATE
5 bm.alle:STATE
all ez.ws1:STATE bm.alle:STATE
Itimer:
Readings:
0 ku.bm:brightness
1 ku.bm:brightness
2 ku.bm:brightness
3 ku.bm:brightness
4 ku.bm:brightness
all ku.bm:brightness
Regexp:
0:
1:
2:
3:
4:
5:
All:
State:
Trigger:
Attributes: