Neu in DOIF und ein fehler mit Zahlenwert ?

Begonnen von call_me_driver, 13 Dezember 2018, 17:18:47

Vorheriges Thema - Nächstes Thema

call_me_driver

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)

Otto123

Ein list in den unterschiedlichen Situationen? Ich denke da sieht man Fehler....
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

call_me_driver

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

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

call_me_driver

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.

Per

Wer schaltet dir das Licht aus? Bzw. wer setzt das DOIF zurück? Versuch mal do always.

Frank_Huber

und am besten ein List posten wenn der Fehlerfall da ist.
nur so kann man die eventuelle Fehlerquelle sehen.

call_me_driver

- 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

call_me_driver

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?

Frank_Huber

das von Per vorgeschlagene do always hast aber nicht gesetzt...

call_me_driver

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....

call_me_driver

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

Per

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.