Hey,
ich versuch mich grad von notify zu lösen und zu DOIF zu gehen.
Hab eine kleine Abfrage die, Licht und Musik schaltet.
([Web_IFTTT:"^AlexaHome.*$"] and [whz.sensor:luminance:d] < 2 )
(set whz.GruppeLicht on, set ECHO_G2A0QU06817700PH play)
DOELSEIF ([Web_IFTTT:"^AlexaHome.*$"])
(set ECHO_G2A0QU06817700PH play)
Problem: er mag die Abfrage von luminance nicht. Der Wert ist 0, müsste aber laufen.
Aber entweder macht er garnix, wenn ich ":d" ausführe macht er Nummer 2 und wenn ich
die luminance-prüfung ganz weglasse hat er kein problem.
Was stimmt daran nicht?
(und ja, die sache mit dem . im namen is ungünstig, wird demnächst geändert *G)
Ein list in den unterschiedlichen Situationen? Ich denke da sieht man Fehler....
gern...
Internals:
CFGFN
DEF ([Web_IFTTT:"^AlexaHome.*$"] and [whz.sensor:luminance:d] < 2 )
(set whz.GruppeLicht on, set ECHO_G2A0QU06817700PH play)
DOELSEIF ([Web_IFTTT:"^AlexaHome.*$"])
(set ECHO_G2A0QU06817700PH play)
MODEL FHEM
NAME DOIF_Web_AlexaHome
NR 1047
NTFY_ORDER 50-Web_IFTTT_DOIF_2
STATE initialized
TYPE DOIF
READINGS:
2018-12-13 17:52:32 Device whz.sensor
2018-12-13 17:52:26 cmd 0
2018-12-13 17:52:32 e_whz.sensor_luminance 81 Lux
2018-12-13 17:52:26 mode enabled
2018-12-13 17:52:26 state initialized
Regex:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::EventDoIf('Web_IFTTT',$hash,'^AlexaHome.*$',1) and ::ReadingValDoIf($hash,'whz.sensor','luminance','','d') < 2
1 ::EventDoIf('Web_IFTTT',$hash,'^AlexaHome.*$',1)
devices:
0 Web_IFTTT whz.sensor
1 Web_IFTTT
all Web_IFTTT whz.sensor
do:
0:
0 set whz.GruppeLicht on, set ECHO_G2A0QU06817700PH play
1:
0 set ECHO_G2A0QU06817700PH play
2:
helper:
event luminance: 81 Lux
globalinit 1
last_timer 0
sleeptimer -1
triggerDev whz.sensor
triggerEvents:
luminance: 81 Lux
triggerEventsState:
luminance: 81 Lux
internals:
itimer:
readings:
0 whz.sensor:luminance
all whz.sensor:luminance
trigger:
all Web_IFTTT
uiState:
uiTable:
Attributes:
room 92_Steuerung
der Wert ist nicht 0 der ist 81! ;)
Zitat2018-12-13 17:52:32 e_whz.sensor_luminance 81 Lux
81 ist nicht kleiner als 2 ;D
Gruß Otto
ich wollts noch dazu schreiben...
ja der is 81 - weil ich ja nicht gern um dunkeln sitze und des licht dann selbst eingeschaltet hab.
normalerweise is er aber 0 - und auch dann geht nix.
Wer schaltet dir das Licht aus? Bzw. wer setzt das DOIF zurück? Versuch mal do always.
und am besten ein List posten wenn der Fehlerfall da ist.
nur so kann man die eventuelle Fehlerquelle sehen.
- ausschalten tu ichs irgendwann (via alexa->fhem)
liste momentan (wert unter 2 lux) - hab gestern noch bissl mit dem echo gespielt, daher sind 2 werte hinzu - aber keine änderung
Internals:
CFGFN
DEF ([Web_IFTTT:"^AlexaHome.*$"] and [whz_sensor:luminance:d] < 2 )
(set whz.GruppeLicht on, set ECHO_G2A0QU06817700PH tunein s158432, set ECHO_G2A0QU06817700PH volume 35, set ECHO_G2A0QU06817700PH play)
DOELSEIF ([Web_IFTTT:"^AlexaHome.*$"])
(set ECHO_G2A0QU06817700PH tunein s158432, set ECHO_G2A0QU06817700PH volume 35, set ECHO_G2A0QU06817700PH play)
MODEL FHEM
NAME DOIF_Web_AlexaHome
NR 1047
NTFY_ORDER 50-Web_IFTTT_DOIF_2
STATE cmd_1
TYPE DOIF
READINGS:
2018-12-14 15:00:46 Device Web_IFTTT
2018-12-14 14:57:37 cmd 1
2018-12-14 14:57:37 cmd_event Web_IFTTT
2018-12-14 14:57:37 cmd_nr 1
2018-12-14 15:00:46 e_Web_IFTTT_events AlexaHome: December 14, 2018 at 03:00PM
2018-12-14 15:00:03 e_whz_sensor_luminance 1 Lux
2018-12-14 14:56:50 mode enabled
2018-12-14 14:57:37 state cmd_1
Regex:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::EventDoIf('Web_IFTTT',$hash,'^AlexaHome.*$',1) and ::ReadingValDoIf($hash,'whz_sensor','luminance','','d') < 2
1 ::EventDoIf('Web_IFTTT',$hash,'^AlexaHome.*$',1)
devices:
0 Web_IFTTT whz_sensor
1 Web_IFTTT
all Web_IFTTT whz_sensor
do:
0:
0 set whz.GruppeLicht on, set ECHO_G2A0QU06817700PH tunein s158432, set ECHO_G2A0QU06817700PH volume 35, set ECHO_G2A0QU06817700PH play
1:
0 set ECHO_G2A0QU06817700PH tunein s158432, set ECHO_G2A0QU06817700PH volume 35, set ECHO_G2A0QU06817700PH play
2:
helper:
event AlexaHome: December 14, 2018 at 03:00PM
globalinit 1
last_timer 0
sleeptimer -1
timerdev Web_IFTTT
timerevent AlexaHome: December 14, 2018 at 03:00PM
triggerDev Web_IFTTT
DOIF_eventas:
cmd_nr: 1
cmd: 1
cmd_event: Web_IFTTT
state: cmd_1
timerevents:
AlexaHome: December 14, 2018 at 03:00PM
timereventsState:
AlexaHome: December 14, 2018 at 03:00PM
triggerEvents:
AlexaHome: December 14, 2018 at 03:00PM
triggerEventsState:
AlexaHome: December 14, 2018 at 03:00PM
internals:
itimer:
readings:
0 whz_sensor:luminance
all whz_sensor:luminance
trigger:
all Web_IFTTT
uiState:
uiTable:
Attributes:
room 92_Steuerung
hm.... ich hab grad was rausgefunden. wenn ich ne änderung am code vornehme, dann kann ichs aufrufen.
doch sobald er einmal gelaufen ist geht er nicht mehr
da gehts
nternals:
CFGFN
DEF ([Web_IFTTT:"^AlexaHome.*$"] and [whz_sensor:luminance:d] < 2 )
(set whz.GruppeLicht on, set ECHO_G2A0QU06817700PH tunein s158432, set ECHO_G2A0QU06817700PH volume 35, set ECHO_G2A0QU06817700PH play)
DOELSEIF ([Web_IFTTT:"^AlexaHome.*$"])
(set ECHO_G2A0QU06817700PH tunein s158432, set ECHO_G2A0QU06817700PH volume 35, set ECHO_G2A0QU06817700PH play)
MODEL FHEM
NAME DOIF_Web_AlexaHome
NR 1047
NTFY_ORDER 50-Web_IFTTT_DOIF_2
STATE initialized
TYPE DOIF
READINGS:
2018-12-14 15:04:08 cmd 0
2018-12-14 15:04:08 mode enabled
2018-12-14 15:04:08 state initialized
Regex:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::EventDoIf('Web_IFTTT',$hash,'^AlexaHome.*$',1) and ::ReadingValDoIf($hash,'whz_sensor','luminance','','d') < 2
1 ::EventDoIf('Web_IFTTT',$hash,'^AlexaHome.*$',1)
devices:
0 Web_IFTTT whz_sensor
1 Web_IFTTT
all Web_IFTTT whz_sensor
do:
0:
0 set whz.GruppeLicht on, set ECHO_G2A0QU06817700PH tunein s158432, set ECHO_G2A0QU06817700PH volume 35, set ECHO_G2A0QU06817700PH play
1:
0 set ECHO_G2A0QU06817700PH tunein s158432, set ECHO_G2A0QU06817700PH volume 35, set ECHO_G2A0QU06817700PH play
2:
helper:
globalinit 1
last_timer 0
sleeptimer -1
itimer:
readings:
0 whz_sensor:luminance
all whz_sensor:luminance
trigger:
all Web_IFTTT
uiState:
uiTable:
Attributes:
room 92_Steuerung
muss ich wohl den doif immer zurücksetzen?
das von Per vorgeschlagene do always hast aber nicht gesetzt...
Zitat von: Per am 14 Dezember 2018, 13:05:51
Wer schaltet dir das Licht aus? Bzw. wer setzt das DOIF zurück? Versuch mal do always.
jup, des wars. da lag der fehler....
Zitat von: Frank_Huber am 14 Dezember 2018, 15:06:37
das von Per vorgeschlagene do always hast aber nicht gesetzt...
jetzt schon. musste erstmal in der hilfe suchen wie und wo ich des setze :D
Zitat von: call_me_driver am 14 Dezember 2018, 15:09:38da lag der fehler....
Naja, der Fehler ist eher in deiner Konzeption.
Versuche lieber, alles, was ein Device betrifft, auch in einem DOIF abzubilden. Denn diese DOIF weiß sonst nicht, ob von woanders Einfluss genommen wurde. Das Ergebnis im Kleinen siehst du hier.
Das ist der große Unterschied (neben der Syntax) zu
notify.