FHEM - Hausautomations-Systeme > EnOcean

Thermokon EnOcean Taster, Eltako & FHEM

(1/3) > >>

twinFHEM:
Hallo zusammen,

ich habe ein paar Thermokon EnOcean Taster (2x Wippe bzw. 4x Taster), die ich direkt mit Eltako Aktoren (z.B. FSR14-4x) verbunden habe.
Ich programmiere die Taster mit der Eltako-Software PCT14. Dies funktioniert soweit sehr gut, bis auf die Tatsache, dass ich den Tastern darüber generell keine Mehrfachfunktionen (z.B. 2x drücken oder 1x lange drücken) zuweisen kann.

Hier kommt FHEM ins Spiel! Eltako-Aktoren und Thermokontaster sind in FHEM eingelernt.
Hier der list eines Tasters:

--- Code: ---Internals:
   DEF        0035EF96
   FUUID      616f2135-f33f-b102-cc85-c15e3faa69770b4a
   IODev      TCM_ESP3_0
   LASTInputDev TCM_ESP3_0
   MSGCNT     402
   NAME       SCH_WZ_F_EnO_Thermokon
   NR         171
   NTFY_ORDER 50-SCH_WZ_F_EnO_Thermokon
   STATE      A0
   TCM_ESP3_0_DestinationID FFFFFFFF
   TCM_ESP3_0_MSGCNT 402
   TCM_ESP3_0_PacketType 1
   TCM_ESP3_0_RSSI -67
   TCM_ESP3_0_ReceivingQuality excellent
   TCM_ESP3_0_RepeatingCounter 1
   TCM_ESP3_0_SubTelNum 4
   TCM_ESP3_0_TIME 2021-10-25 23:06:23
   TYPE       EnOcean
   READINGS:
     2021-10-21 02:16:55   IODev           TCM_ESP3_0
     2021-10-25 23:06:23   buttons         released
     2021-10-25 23:06:23   channelA        A0
     2021-10-25 22:58:57   channelB        B0
     2021-10-25 23:06:23   state           A0
     2021-10-19 21:49:09   teach           RPS teach-in accepted EEP F6-02-01 Manufacturer: no ID
   helper:
Attributes:
   IODev      TCM_ESP3_0
   eep        F6-02-01
   manufID    7FF
   room       EnOcean,Garten,Wohnzimmer
   subType    switch
   teachMethod RPS

--- Ende Code ---

und des Aktors (FSR14_4x):

--- Code: ---Internals:
   DEF        FF959491
   FUUID      616f0900-f33f-b102-629b-ff6e3477ad30785b
   IODev      TCM_ESP3_0
   NAME       AC_GAR_FSR14_4x_2_MauerBaum_EnO_Elta
   NR         165
   NTFY_ORDER 50-AC_GAR_FSR14_4x_2_MauerBaum_EnO_Elta
   STATE      off
   TYPE       EnOcean
   READINGS:
     2021-10-21 02:16:54   IODev           TCM_ESP3_0
     2021-10-25 22:58:17   block           unlock
     2021-10-25 22:58:17   state           off
     2021-10-19 20:35:18   teach           4BS teach-in sent
   helper:
Attributes:
   IODev      TCM_ESP3_0
   eep        A5-38-08
   gwCmd      switching
   manufID    00D
   room       EnOcean,Garten
   subDef     FF959494
   subType    gateway
   webCmd     on:off

--- Ende Code ---

Die Taster werden in FHEM mit A0, AI und B0, BI tituliert. Also, habe ich mir zwei simple DOIFs gebaut, mit denen ich bei 2x drücken die gesamte Gartenbeleuchtung aus- bzw. einschalten möchte (Bsp. list DI_allLightsGardenON):

--- Code: ---Internals:
   DEF        ([SCH_WZ_F_EnO_Thermokon:state] eq "B0" or [SCH_KUE_F_EnO_Thermokon:state] eq "A0")
(set AC_GAR_FSR14_2x_1_Mauer_EnO_Elta on)
(set AC_GAR_FSR14_2x_2_Treppe_EnO_Elta on)
(set AC_GAR_FSR14_4x_1_BaumMauer_EnO_Elta on)
(set AC_GAR_FSR14_4x_2_MauerBaum_EnO_Elta on)
   FUUID      61707b6f-f33f-b102-010f-c60aacf617913004
   MODEL      FHEM
   NAME       DI_allLightsGardenON
   NOTIFYDEV  global,SCH_KUE_F_EnO_Thermokon,SCH_WZ_F_EnO_Thermokon
   NR         173
   NTFY_ORDER 50-DI_allLightsGardenON
   STATE      cmd_1
   TYPE       DOIF
   VERSION    24905 2021-09-01 18:35:54
   READINGS:
     2021-10-25 23:43:17   Device          SCH_WZ_F_EnO_Thermokon
     2021-10-25 22:42:28   cmd             1.4
     2021-10-25 22:42:28   cmd_event       SCH_KUE_F_EnO_Thermokon
     2021-10-25 22:42:28   cmd_nr          1
     2021-10-25 22:42:28   cmd_seqnr       4
     2021-10-25 22:42:41   e_SCH_KUE_F_EnO_Thermokon_state AI
     2021-10-25 23:43:17   e_SCH_WZ_F_EnO_Thermokon_state AI
     2021-10-21 00:22:04   mode            enabled
     2021-10-25 22:42:28   state           cmd_1
     2021-10-25 22:58:57   waitsame        cmd_1
   Regex:
     accu:
     collect:
     cond:
       SCH_KUE_F_EnO_Thermokon:
         0:
           state      ^SCH_KUE_F_EnO_Thermokon$:^state:
       SCH_WZ_F_EnO_Thermokon:
         0:
           state      ^SCH_WZ_F_EnO_Thermokon$:^state:
   attr:
     cmdState:
     wait:
     waitdel:
     waitsame:
       2
   condition:
     0          ::ReadingValDoIf($hash,'SCH_WZ_F_EnO_Thermokon','state') eq "B0" or ::ReadingValDoIf($hash,'SCH_KUE_F_EnO_Thermokon','state') eq "A0"
   do:
     0:
       0          set AC_GAR_FSR14_2x_1_Mauer_EnO_Elta on
       1          set AC_GAR_FSR14_2x_2_Treppe_EnO_Elta on
       2          set AC_GAR_FSR14_4x_1_BaumMauer_EnO_Elta on
       3          set AC_GAR_FSR14_4x_2_MauerBaum_EnO_Elta on
     1:
   helper:
     DEVFILTER  ^global$|^SCH_KUE_F_EnO_Thermokon$|^SCH_WZ_F_EnO_Thermokon$
     NOTIFYDEV  global|SCH_KUE_F_EnO_Thermokon|SCH_WZ_F_EnO_Thermokon
     event      buttons: pressed,channelA: AI,AI
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   SCH_WZ_F_EnO_Thermokon
     timerevent buttons: pressed,channelB: B0,B0
     triggerDev SCH_WZ_F_EnO_Thermokon
     timerevents:
       buttons: pressed
       channelB: B0
       B0
     timereventsState:
       buttons: pressed
       channelB: B0
       state: B0
     triggerEvents:
       buttons: pressed
       channelA: AI
       AI
     triggerEventsState:
       buttons: pressed
       channelA: AI
       state: AI
   internals:
   perlblock:
   readings:
     all         SCH_WZ_F_EnO_Thermokon:state SCH_KUE_F_EnO_Thermokon:state
   trigger:
   uiState:
   uiTable:
Attributes:
   do         always
   waitsame   2

--- Ende Code ---

Das funktioniert leider nur sporadisch und gefühlt willkürlich. Drücke ich z.b. 1x B0 und 1x BI, um zwei verschiedene Lampen einzeln zu schalten, geht alles aus. Dies sollte eigentlich nur bei 2x BI geschehen. Selbst das einmalige Drücken von AI (ganz andere Lampe und Direktverbindung) und dann B0 lässt alles ausgehen obwohl ich zwei verschiedene Lampen einschalten wollte.

Hier ein Auszug vom Event Monitor:

--- Code: ---2021-10-25 22:56:25 DOIF DI_allLightsGardenOFF waitsame: cmd_1
2021-10-25 22:56:25 EnOcean SCH_WZ_F_EnO_Thermokon buttons: pressed
2021-10-25 22:56:25 EnOcean SCH_WZ_F_EnO_Thermokon channelA: AI
2021-10-25 22:56:25 EnOcean SCH_WZ_F_EnO_Thermokon AI
2021-10-25 22:56:25 EnOcean SCH_WZ_F_EnO_Thermokon buttons: released
2021-10-25 22:56:26 structure str_GAR_Terra_Kue_Bel off
2021-10-25 22:56:26 EnOcean AC_GAR_FSR14_2x_1_Mauer_EnO_Elta block: unlock
2021-10-25 22:56:26 structure str_GAR_Terra_Kue_Bel off
2021-10-25 22:56:26 EnOcean AC_GAR_FSR14_2x_1_Mauer_EnO_Elta off
2021-10-25 22:56:26 DOIF DI_allLightsGardenOFF cmd_nr: 1
2021-10-25 22:56:26 DOIF DI_allLightsGardenOFF cmd_seqnr: 1
2021-10-25 22:56:26 DOIF DI_allLightsGardenOFF cmd: 1.1
2021-10-25 22:56:26 DOIF DI_allLightsGardenOFF cmd_event: SCH_WZ_F_EnO_Thermokon
2021-10-25 22:56:26 DOIF DI_allLightsGardenOFF cmd_1_1
2021-10-25 22:56:26 structure str_GAR_Terra_Kue_Bel off
2021-10-25 22:56:26 EnOcean AC_GAR_FSR14_2x_2_Treppe_EnO_Elta block: unlock
2021-10-25 22:56:26 structure str_GAR_Terra_Kue_Bel off
2021-10-25 22:56:26 EnOcean AC_GAR_FSR14_2x_2_Treppe_EnO_Elta off
2021-10-25 22:56:26 DOIF DI_allLightsGardenOFF cmd_nr: 1
2021-10-25 22:56:26 DOIF DI_allLightsGardenOFF cmd_seqnr: 2
2021-10-25 22:56:26 DOIF DI_allLightsGardenOFF cmd: 1.2
2021-10-25 22:56:26 DOIF DI_allLightsGardenOFF cmd_event: SCH_WZ_F_EnO_Thermokon
2021-10-25 22:56:26 DOIF DI_allLightsGardenOFF cmd_1_2
2021-10-25 22:56:26 EnOcean AC_GAR_FSR14_4x_1_BaumMauer_EnO_Elta block: unlock
2021-10-25 22:56:26 EnOcean AC_GAR_FSR14_4x_1_BaumMauer_EnO_Elta off
2021-10-25 22:56:26 DOIF DI_allLightsGardenOFF cmd_nr: 1
2021-10-25 22:56:26 DOIF DI_allLightsGardenOFF cmd_seqnr: 3
2021-10-25 22:56:26 DOIF DI_allLightsGardenOFF cmd: 1.3
2021-10-25 22:56:26 DOIF DI_allLightsGardenOFF cmd_event: SCH_WZ_F_EnO_Thermokon
2021-10-25 22:56:26 DOIF DI_allLightsGardenOFF cmd_1_3
2021-10-25 22:56:26 EnOcean AC_GAR_FSR14_4x_2_MauerBaum_EnO_Elta block: unlock
2021-10-25 22:56:26 EnOcean AC_GAR_FSR14_4x_2_MauerBaum_EnO_Elta off
2021-10-25 22:56:26 DOIF DI_allLightsGardenOFF cmd_nr: 1
2021-10-25 22:56:26 DOIF DI_allLightsGardenOFF cmd_seqnr: 4
2021-10-25 22:56:26 DOIF DI_allLightsGardenOFF cmd: 1.4
2021-10-25 22:56:26 DOIF DI_allLightsGardenOFF cmd_event: SCH_WZ_F_EnO_Thermokon
2021-10-25 22:56:26 DOIF DI_allLightsGardenOFF cmd_1
2021-10-25 22:56:26 DOIF DI_allLightsGardenON waitsame: cmd_1
2021-10-25 22:56:26 EnOcean SCH_WZ_F_EnO_Thermokon buttons: pressed
2021-10-25 22:56:26 EnOcean SCH_WZ_F_EnO_Thermokon channelB: B0
2021-10-25 22:56:26 EnOcean SCH_WZ_F_EnO_Thermokon B0
2021-10-25 22:56:26 EnOcean SCH_WZ_F_EnO_Thermokon buttons: released
2021-10-25 22:56:26 structure str_GAR_Terra_Kue_Bel off
2021-10-25 22:56:26 EnOcean AC_GAR_FSR14_2x_1_Mauer_EnO_Elta off
2021-10-25 22:56:26 structure str_GAR_Terra_Kue_Bel off
2021-10-25 22:56:26 EnOcean AC_GAR_FSR14_2x_2_Treppe_EnO_Elta off

--- Ende Code ---


Hat jemand Erfahrung mit diesen Tastern und FHEM?
Stimmt etwas nicht mit meiner aufgeführten Konfiguration?

Btw. wird bei längerem Drücken eines Tasters nicht BI, B0, etc. im Event Monitor angezeigt sonder einfach nur:

--- Code: ---2021-10-25 22:58:17 EnOcean SCH_WZ_F_EnO_Thermokon buttons: pressed
2021-10-25 22:58:17 EnOcean SCH_WZ_F_EnO_Thermokon pressed
2021-10-25 22:58:17 EnOcean SCH_WZ_F_EnO_Thermokon buttons: released

--- Ende Code ---

Da passt doch auch etwas nicht oder ist das bei diesen Tastern normal?
Ist das der Fall, fällt die Option langes Drücken von z.B. B0 komplett weg!
Aber das ist tätsächlich momentan Nebensache...

Ich freue mich auf eure Antworten und hoffentlich Hilfe.
Vielen Dank & viele Grüße.







Flachzange:
Das klingt mir jetzt weniger nach einem EnOcean- oder Tasterproblem, sondern nach einer DOIF-Konfiguration, denn nur die ist in Deinem Setup für den Doppelklick verantwortlich. Hierzu bitte auch mal das zweite DOIF posten, von dem Du schreibst. Ich würde in jedem Fall jetzt mal das ":state" weggelassen im DOIF.

Langes drücken geht genauso mit DOIF, aber dann musst Du zwingend über "pressed" und "released" gehen (In Kombination mit STATE (nicht:state), um zu unterscheiden, ob oben oder unten gedrück wurde). Das DOIF ist dann minimal komplizierter, weil Du mit Timern und Prüfung auf diesen arbeiten musst.

twinFHEM:
Hallo Flachzange & danke für die Antwort.
Die jetzige state-Version ist einer von mehreren Versuchen. Da sie grundsätzlich die richtige Funktion zeigte, habe ich sie so gelassen.
Den Standard SCH_SZ_F_EnO_Thermokon:B0 und Versuche wie ([SCH_WZ_F_EnO_Thermokon] eq ".*B0.*") habe ich bereits hinter mir.
Ich nehme :state nochmal heraus.

Hier das zweite DOIF:

--- Code: ---Internals:
   DEF        ([SCH_WZ_F_EnO_Thermokon:BI] or
[SCH_KUE_F_EnO_Thermokon:AI])
(set AC_GAR_FSR14_2x_1_Mauer_EnO_Elta off)
(set AC_GAR_FSR14_2x_2_Treppe_EnO_Elta off)
(set AC_GAR_FSR14_4x_1_BaumMauer_EnO_Elta off)
(set AC_GAR_FSR14_4x_2_MauerBaum_EnO_Elta off)
   FUUID      6170829f-f33f-b102-52ad-f5877a2e887e6b53
   MODEL      FHEM
   NAME       DI_allLightsGardenOFF
   NOTIFYDEV  SCH_WZ_F_EnO_Thermokon,global,SCH_KUE_F_EnO_Thermokon
   NR         174
   NTFY_ORDER 50-DI_allLightsGardenOFF
   STATE      initialized
   TYPE       DOIF
   VERSION    24905 2021-09-01 18:35:54
   READINGS:
     2021-10-26 10:08:37   cmd             0
     2021-10-26 10:08:37   mode            enabled
     2021-10-26 10:08:37   state           initialized
   Regex:
     accu:
     collect:
     cond:
       SCH_KUE_F_EnO_Thermokon:
         0:
           AI         ^SCH_KUE_F_EnO_Thermokon$:^AI:
       SCH_WZ_F_EnO_Thermokon:
         0:
           BI         ^SCH_WZ_F_EnO_Thermokon$:^BI:
   attr:
     cmdState:
     wait:
     waitdel:
     waitsame:
       2
   condition:
     0          ::ReadingValDoIf($hash,'SCH_WZ_F_EnO_Thermokon','BI') or ::ReadingValDoIf($hash,'SCH_KUE_F_EnO_Thermokon','AI')
   do:
     0:
       0          set AC_GAR_FSR14_2x_1_Mauer_EnO_Elta off
       1          set AC_GAR_FSR14_2x_2_Treppe_EnO_Elta off
       2          set AC_GAR_FSR14_4x_1_BaumMauer_EnO_Elta off
       3          set AC_GAR_FSR14_4x_2_MauerBaum_EnO_Elta off
     1:
   helper:
     DEVFILTER  ^global$|^SCH_WZ_F_EnO_Thermokon$|^SCH_KUE_F_EnO_Thermokon$
     NOTIFYDEV  global|SCH_WZ_F_EnO_Thermokon|SCH_KUE_F_EnO_Thermokon
     globalinit 1
     last_timer 0
     sleeptimer -1
   readings:
     all         SCH_WZ_F_EnO_Thermokon:BI SCH_KUE_F_EnO_Thermokon:AI
   uiState:
   uiTable:
Attributes:
   do         always
   waitsame   2

--- Ende Code ---

Das STATE (nicht:state) beim langen Drücken werde ich mir nochmal genauer ansehen.

Viele Grüße

Flachzange:
Also...


--- Code: ---([SCH_WZ_F_EnO_Thermokon] eq "B0" or [SCH_KUE_F_EnO_Thermokon] eq "A0")
--- Ende Code ---

wäre jetzt wie ich es notieren würde.



--- Zitat ---Das funktioniert leider nur sporadisch und gefühlt willkürlich. Drücke ich z.b. 1x B0 und 1x BI, um zwei verschiedene Lampen einzeln zu schalten, geht alles aus. Dies sollte eigentlich nur bei 2x BI geschehen. Selbst das einmalige Drücken von AI (ganz andere Lampe und Direktverbindung) und dann B0 lässt alles ausgehen obwohl ich zwei verschiedene Lampen einschalten wollte.
--- Ende Zitat ---

Das liegt vermutlich daran, dass in beiden DOIFs ein DOELSE() am Ende fehlt. Ohne das verharrt das DOIF beim ersten Drücken einer Taste im wait-Zustand für "cmd_1". Egal, was Du dann dazwischen drückst, drückst Du irgendwann nochmal eine der beiden Tasten triggert das DOIF in "cmd_1". Versuche mal folgendes:


--- Code: ---([SCH_WZ_F_EnO_Thermokon] eq "B0" or [SCH_KUE_F_EnO_Thermokon] eq "A0")(...) DOELSE()
--- Ende Code ---

Analog im anderen DOIF. Dabei muss Dir klar sein, dass auch eine Kombination B0,A0 und A0,B0 ein Doppeltasten auslösen würde.

Aufpassen: Wenn der Taster auch zwei Zustände gleichzeitig annehmen kann, also eine Kombination aus A und B. Das äußert sich dann in einem state wie AI,BI (zum Beispiel). Das passiert in der Regel dann wenn man bei einem Serientaster beide Wippen gleichzeitig drückt. Ich vermute, dass es trotzdem funktioniert, aber Du solltest es mal testen.


Nachfolgend ein mögliches Beispiel, um langes Drücken zu realisieren:


--- Code: ---Internals:
   DEF        (["Schalter_1_fach_Schlafzimmer_Bett_:buttons:.pressed"] and [$DEVICE] eq "B0")(msg 'Licht: Alles aus. Folgende Lampen werden ausgeschaltet: [@"^Lichtaktor_":state:"on"]', set Lichtaktor.*:FILTER=STATE=on off)
DOELSEIF(["Schalter_1_fach_Schlafzimmer_Bett_:buttons:.released"] and [?DOIF_Licht_Alles_Aus:wait_timer] =~/cmd_/)()
   DOIFDEV    ^global$|Schalter_1_fach_Schlafzimmer_Bett_
   FUUID      613f88fe-f33f-fd7e-7344-768ec60034b975b5
   MODEL      FHEM
   NAME       DOIF_Licht_Alles_Aus
   NR         411
   NTFY_ORDER 50-DOIF_Licht_Alles_Aus
   STATE      cmd_1
   TYPE       DOIF
   VERSION    24905 2021-09-01 18:35:54
   Helper:
     DBLOG:
       cmd:
         logdb:
           TIME       1635194944.9228
           VALUE      1
       cmd_event:
         logdb:
           TIME       1635194944.9228
           VALUE      Schalter_1_fach_Schlafzimmer_Bett_links
       cmd_nr:
         logdb:
           TIME       1635194944.9228
           VALUE      1
       state:
         logdb:
           TIME       1635194944.9228
           VALUE      cmd_1
       wait_timer:
         logdb:
           TIME       1635194944.60454
           VALUE      no timer
   READINGS:
     2021-10-25 22:49:07   Device          Schalter_1_fach_Schlafzimmer_Bett_links
     2021-10-25 22:49:04   cmd             1
     2021-10-25 22:49:04   cmd_event       Schalter_1_fach_Schlafzimmer_Bett_links
     2021-10-25 22:49:04   cmd_nr          1
     2021-09-29 06:11:48   mode            enabled
     2021-10-25 22:49:04   state           cmd_1
     2021-10-25 22:49:04   wait_timer      no timer
   Regex:
     accu:
     collect:
     cond:
       :
         0:
           "Schalter_1_fach_Schlafzimmer_Bett_:buttons:.pressed" Schalter_1_fach_Schlafzimmer_Bett_:buttons:.pressed
         1:
           "Schalter_1_fach_Schlafzimmer_Bett_:buttons:.released" Schalter_1_fach_Schlafzimmer_Bett_:buttons:.released
   attr:
     cmdState:
     wait:
       0:
         1
       1:
         0
     waitdel:
   condition:
     0          ::EventDoIf('Schalter_1_fach_Schlafzimmer_Bett_',$hash,'buttons:.pressed',0) and ::InternalDoIf($hash,'$DEVICE','STATE') eq "B0"
     1          ::EventDoIf('Schalter_1_fach_Schlafzimmer_Bett_',$hash,'buttons:.released',0) and ::ReadingValDoIf($hash,'DOIF_Licht_Alles_Aus','wait_timer') =~/cmd_/
   do:
     0:
       0          msg 'Licht: Alles aus. Folgende Lampen werden ausgeschaltet: [@"^Lichtaktor_":state:"on"]', set Lichtaktor.*:FILTER=STATE=on off
     1:
       0         
     2:
   helper:
     DEVFILTER  ^global$|Schalter_1_fach_Schlafzimmer_Bett_
     NOTIFYDEV  global|.*Schalter_1_fach_Schlafzimmer_Bett_.*
     event      buttons: released
     globalinit 1
     last_timer 0
     sleepdevice Schalter_1_fach_Schlafzimmer_Bett_links
     sleepsubtimer -1
     sleeptimer -1
     timerdev   Schalter_1_fach_Schlafzimmer_Bett_links
     timerevent buttons: pressed
     triggerDev Schalter_1_fach_Schlafzimmer_Bett_links
     timerevents:
       buttons: pressed
       channelB: B0
       B0
     timereventsState:
       buttons: pressed
       channelB: B0
       state: B0
     triggerEvents:
       buttons: released
     triggerEventsState:
       buttons: released
   internals:
     all         $DEVICE:STATE
   perlblock:
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   comment    Beim Drücken der Schalter am Bett (oben) werden alle Lampen ausgeschaltet, die noch eingeschaltet sind. Wird zu früh losgelassen passiert nichts
   do         resetwait
   room       Licht
   verbose    1
   wait       1:0
--- Ende Code ---

twinFHEM:
Hi Flachzange,
erstmal vielen Dank für die ausführliche Antwort.

Die Sache mit DOELSE () klang plausibel und ich habe das Ganze angepasst.

--- Code: ---Internals:
   DEF        ([SCH_WZ_F_EnO_Thermokon] eq "BI" or [SCH_KUE_F_EnO_Thermokon] eq "AI")
(set AC_GAR_FSR14_2x_1_Mauer_EnO_Elta on)
(set AC_GAR_FSR14_2x_2_Treppe_EnO_Elta on)
(set AC_GAR_FSR14_4x_1_BaumMauer_EnO_Elta on)
(set AC_GAR_FSR14_4x_2_MauerBaum_EnO_Elta on) DOELSE ()
   FUUID      61707b6f-f33f-b102-010f-c60aacf617913004
   MODEL      FHEM
   NAME       DI_allLightsGardenON
   NOTIFYDEV  SCH_WZ_F_EnO_Thermokon,SCH_KUE_F_EnO_Thermokon,global
   NR         173
   NTFY_ORDER 50-DI_allLightsGardenON
   STATE      cmd_2
   TYPE       DOIF
   VERSION    24905 2021-09-01 18:35:54
   READINGS:
     2021-11-01 00:06:15   Device          SCH_WZ_F_EnO_Thermokon
     2021-11-01 00:06:15   cmd             2
     2021-11-01 00:06:15   cmd_event       SCH_WZ_F_EnO_Thermokon
     2021-11-01 00:06:15   cmd_nr          2
     2021-11-01 00:06:15   e_SCH_WZ_F_EnO_Thermokon_STATE A0
     2021-10-30 01:36:00   mode            enabled
     2021-11-01 00:06:15   state           cmd_2
   Regex:
     accu:
     collect:
     cond:
       SCH_KUE_F_EnO_Thermokon:
         0:
           &STATE     ^SCH_KUE_F_EnO_Thermokon$
       SCH_WZ_F_EnO_Thermokon:
         0:
           &STATE     ^SCH_WZ_F_EnO_Thermokon$
   attr:
     cmdState:
     wait:
     waitdel:
     waitsame:
       2
   condition:
     0          ::InternalDoIf($hash,'SCH_WZ_F_EnO_Thermokon','STATE') eq "BI" or ::InternalDoIf($hash,'SCH_KUE_F_EnO_Thermokon','STATE') eq "AI"
   do:
     0:
       0          set AC_GAR_FSR14_2x_1_Mauer_EnO_Elta on
       1          set AC_GAR_FSR14_2x_2_Treppe_EnO_Elta on
       2          set AC_GAR_FSR14_4x_1_BaumMauer_EnO_Elta on
       3          set AC_GAR_FSR14_4x_2_MauerBaum_EnO_Elta on
     1:
       0         
   helper:
     DEVFILTER  ^global$|^SCH_KUE_F_EnO_Thermokon$|^SCH_WZ_F_EnO_Thermokon$
     NOTIFYDEV  global|SCH_KUE_F_EnO_Thermokon|SCH_WZ_F_EnO_Thermokon
     event      buttons: released
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   SCH_WZ_F_EnO_Thermokon
     timerevent buttons: released
     triggerDev SCH_WZ_F_EnO_Thermokon
     DOIF_eventa:
       cmd_nr: 2
       cmd: 2
       cmd_event: SCH_WZ_F_EnO_Thermokon
       cmd_2
     DOIF_eventas:
       cmd_nr: 2
       cmd: 2
       cmd_event: SCH_WZ_F_EnO_Thermokon
       state: cmd_2
     timerevents:
       buttons: released
     timereventsState:
       buttons: released
     triggerEvents:
       buttons: released
     triggerEventsState:
       buttons: released
   internals:
     all         SCH_WZ_F_EnO_Thermokon:STATE SCH_KUE_F_EnO_Thermokon:STATE
   readings:
   trigger:
   uiState:
   uiTable:
Attributes:
   do         always
   waitsame   2

--- Ende Code ---

Ich habe übers Wochenende ausgiebig getestet, aber eine gravierende Verbesserung konnte ich leider nicht feststellen. Nach wie vor funktioniert es, wenn ich
2x BI für AllesAn und 2x B0 für AllesAus drücke. Allerdings geht auch alles aus bzw. an, wenn ich BI -> B0 bzw. B0 -> BI drücke. Je nachdem, was ich zuletzt gedrückt habe, trifft ein. Das Ganze ist mir doch sehr suspekt!


--- Zitat ---Dabei muss Dir klar sein, dass auch eine Kombination B0,A0 und A0,B0 ein Doppeltasten auslösen würde.

--- Ende Zitat ---
Beziehst Du das generell auf diese Schalter oder auf meine Konfig?
Ich habe zwei verschiedene Schalter aufgeführt.

Danke Dir für den Ansatz fürs lange Drücken. Da das Doppelklicken leider nicht sehr zufriedenstellend ist, werde ich dies versuchen.
Ich werde eine SEQUENCE und ein DOIF erstellen und schauen, was besser funktioniert. Wenn es funktioniert... ;-)



Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln