Lichtschalter / DOIF wird fehlerhaft getriggert

Begonnen von Xell1984, 13 September 2018, 22:11:36

Vorheriges Thema - Nächstes Thema

Xell1984

Guten Abend,

ich hab etwas Schwierigkeiten mit einem DOIF in Kombination mit einem Xiami Schalter welcher als HUE Device angelernt ist.

Wie bei den Readings zu sehen ist wird Stündlich Batterie und Reachable aktualisiert und wenn der Schalter Gedrückt wird (mögliche Kombination ist 1002, 2002 und 3002) wird das State aktualisiert. Aber mein DOIF Reagiert bei dem Batterie/Reachable Aktualisierung und Triggert das DOIF.

Ich hab versucht mit den beiden event-on- zu arbeiten und auf das state zu verweisen, allerdings reagiert das DOIF immer noch auf die Reading Veränderung bei Battery/Reachable und hat um 21:58 das Licht eingeschaltet.

Wo liegt mein Denkfehler? Jemand einen Tipp? Auslösen soll das DOIF egal ob man auf Schalter 1 oder 2 drückt. Schalter Kombination 3 (beide gleichzeitig) ist ohne Funktion.

Vielen Dank!

Schalter

Internals:
   DEF        sensor 19  IODev=deCONZ
   ID         S19
   INTERVAL   
   IODev      deCONZ
   NAME       FL_EG.Schalter
   NR         284
   STATE      1002
   TYPE       HUEDevice
   lastupdated 2018-09-13 21:08:35
   manufacturername LUMI
   modelid    lumi.sensor_86sw2
   name       Wandsender 2-fach
   on         1
   reachable  1
   type       ZHASwitch
   uniqueid   00:15:8d:00:01:f4:80:f1-01-0006
   READINGS:
     2018-09-13 21:58:39   battery         100
     2018-09-13 21:58:39   reachable       true
     2018-09-13 21:08:35   state           1002
   helper:
     devtype    S
     reachable  0
     update_timeout 1
     setList:
Attributes:
   IODev      deCONZ
   room       Flur EG


DOIF

Internals:
   DEF        ([FL_EG.Schalter] == "1002") (set FL_EG.Licht1 toggle)
DOELSEIF
([FL_EG.Schalter] == "2002") (set FL_EG.Licht1 toggle)
   MODEL      FHEM
   NAME       FL_EG.Licht_Xiaomi_Schalter
   NR         285
   NTFY_ORDER 50-FL_EG.Licht_Xiaomi_Schalter
   STATE      disabled
   TYPE       DOIF
   READINGS:
     2018-09-13 21:58:39   Device          FL_EG.Schalter
     2018-09-13 21:58:39   cmd             1
     2018-09-13 21:58:39   cmd_event       FL_EG.Schalter
     2018-09-13 21:58:39   cmd_nr          1
     2018-09-13 21:58:39   e_FL_EG.Schalter_STATE 1002
     2018-09-13 22:00:09   last_cmd        cmd_1
     2018-09-13 22:00:09   mode            disabled
     2018-09-13 22:00:09   state           disabled
   Regex:
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          InternalDoIf($hash,'FL_EG.Schalter','STATE') == "1002"
     1          InternalDoIf($hash,'FL_EG.Schalter','STATE') == "2002"
   devices:
     0           FL_EG.Schalter
     1           FL_EG.Schalter
     all         FL_EG.Schalter
   do:
     0:
       0          set FL_EG.Licht1 toggle
     1:
       0          set FL_EG.Licht1 toggle
     2:
   helper:
     event      battery: 100,reachable: true
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   FL_EG.Schalter
     timerevent battery: 100,reachable: true
     triggerDev FL_EG.Schalter
     DOIF_eventas:
       cmd_nr: 1
       cmd: 1
       cmd_event: FL_EG.Schalter
       state: cmd_1
     timerevents:
       battery: 100
       reachable: true
     timereventsState:
       battery: 100
       reachable: true
     triggerEvents:
       battery: 100
       reachable: true
     triggerEventsState:
       battery: 100
       reachable: true
   internals:
     0           FL_EG.Schalter:STATE
     1           FL_EG.Schalter:STATE
     all         FL_EG.Schalter:STATE
   itimer:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   do         always
   event-on-change-reading state
   room       Flur EG

Razpberry on Raspberry Pi 3 mit Raspian Jessy

Damian

#1
Du musst das state-Reading angeben statt den Status:

([FL_EG.Schalter:state] == "1002")

Edit: Strings werden übrigens mit eq verglichen und nicht mit ==, also

([FL_EG.Schalter:state] eq "1002")
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF