Eingrenzen doppelter set-Aufruf bei Homematic Device

Begonnen von cseuss, 30 November 2022, 18:40:08

Vorheriges Thema - Nächstes Thema

cseuss

Hallo zusammen,

aktuell habe ich einen weiteren Vierfach-Aktor für Hutschienen-Montage HM-LC-SW4-DR in Betrieb genommen.

Internals:
   DEF        6333E0
   FUUID      5d63bc7c-f33f-ff63-ff3b-b080c7d42c5fc663
   HMLAN1_MSGCNT 92
   HMLAN1_RAWMSG E6333E0,0000,E88278BC,FF,FFB1,5580026333E037A0AF0101C8004D
   HMLAN1_RSSI -79
   HMLAN1_TIME 2022-11-30 16:08:00
   HMLANGWDG_MSGCNT 84
   HMLANGWDG_RAWMSG 0500004F5580026333E037A0AF0101C8004D
   HMLANGWDG_RSSI -79
   HMLANGWDG_TIME 2022-11-30 16:08:00
   HMLANGWOG_MSGCNT 88
   HMLANGWOG_RAWMSG 0500004B5580026333E037A0AF0101C8004D
   HMLANGWOG_RSSI -75
   HMLANGWOG_TIME 2022-11-30 16:08:00
   HmUARTKG_MSGCNT 90
   HmUARTKG_RAWMSG 040300435580026333E037A0AF0101C8004D
   HmUARTKG_RSSI -67
   HmUARTKG_TIME 2022-11-30 16:08:00
   IODev      HmUARTKG
   LASTInputDev HMLANGWDG
   MSGCNT     354
   NAME       ZE.Hutschiene.3
   NOTIFYDEV  global
   NR         864
   NTFY_ORDER 50-ZE.Hutschiene.3
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 Ga.Lichterkette_Vorgarten
   channel_02 HM_6333E0_Sw_02
   channel_03 HM_6333E0_Sw_03
   channel_04 HM_6333E0_Sw_04
   lastMsg    No:55 - t:02 s:6333E0 d:37A0AF 0101C8004D
   protLastRcv 2022-11-30 16:08:00
   protRcv    91 last_at:2022-11-30 16:08:00
   protSnd    91 last_at:2022-11-30 16:07:59
   protState  CMDs_done
   rssi_HmUARTKG cnt:71 min:-88 max:-71 avg:-76.46 lst:-77
   rssi_at_HMLAN1 cnt:92 min:-94 max:-72 avg:-79.22 lst:-79
   rssi_at_HMLANGWDG cnt:84 min:-86 max:-70 avg:-78.94 lst:-79
   rssi_at_HMLANGWOG cnt:88 min:-85 max:-68 avg:-74.18 lst:-75
   rssi_at_HmUARTKG cnt:90 min:-78 max:-63 avg:-69.16 lst:-67
   READINGS:
     2018-07-30 17:39:10   CommandAccepted yes
     2018-07-30 17:35:04   D-firmware      2.8
     2018-07-30 17:35:04   D-serialNr      OEQ2000042
     2018-07-30 17:35:08   PairedTo        0x37A0AF
     2018-07-30 17:35:08   R-pairCentral   0x37A0AF
     2018-07-30 17:35:08   RegL_00.        02:01 0A:37 0B:A0 0C:AF 15:FF 18:00 00:00
     2022-10-23 15:09:15   powerOn         2022-10-23 15:09:15
     2022-11-30 16:08:00   state           CMDs_done
   helper:
     HM_CMDNR   85
     PONtest    0
     cSnd       1137A0AF6333E00201C80000,1137A0AF6333E00201C80000
     mId        0003
     peerFriend
     peerOpt    -:switch
     regLst     0
     rxType     1
     supp_Pair_Rep 0
     ack:
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     io:
       newChn     +6333E0,00,01,00
       nextSend   1669820880.57212
       prefIO     
       rxt        0
       vccu       VCCU
       p:
         6333E0
         00
         01
         00
     mRssi:
       mNo        55
       io:
         HMLAN1:
           -79
           -79
         HMLANGWDG:
           -79
           -79
         HMLANGWOG:
           -75
           -75
         HmUARTKG:
           -63
           -63
     prt:
       bErr       0
       sProc      0
     q:
       qReqConf   
       qReqStat   
     role:
       dev        1
       prs        1
     rssi:
       HmUARTKG:
         avg        -76.4647887323944
         cnt        71
         lst        -77
         max        -71
         min        -88
       at_HMLAN1:
         avg        -79.2282608695652
         cnt        92
         lst        -79
         max        -72
         min        -94
       at_HMLANGWDG:
         avg        -78.9404761904762
         cnt        84
         lst        -79
         max        -70
         min        -86
       at_HMLANGWOG:
         avg        -74.1818181818182
         cnt        88
         lst        -75
         max        -68
         min        -85
       at_HmUARTKG:
         avg        -69.1666666666666
         cnt        90
         lst        -67
         max        -63
         min        -78
     tmpl:
Attributes:
   IODev      HmUARTKG
   IOgrp      VCCU
   autoReadReg 0_off
   expert     2_raw
   firmware   2.8
   model      HM-LC-SW4-DR
   room       Zentral
   serialNr   OEQ2000042
   subType    switch
   verbose    5
   webCmd     getConfig:clear msgEvents


Aktuell ist nur der 1. Kanal belegt:



Internals:
   DEF        6333E001
   FUUID      5d63bc7c-f33f-ff63-ba82-6b81631970a4504e
   NAME       Ga.Lichterkette_Vorgarten
   NOTIFYDEV  global
   NR         866
   NTFY_ORDER 50-HM_6333E0_Sw_01
   STATE      an
   TYPE       CUL_HM
   chanNo     01
   device     ZE.Hutschiene.3
   READINGS:
     2022-11-30 16:08:00   CommandAccepted yes
     2018-07-30 17:35:09   R-powerUpAction off
     2018-07-30 17:35:09   R-sign          off
     2018-07-30 17:39:27   RegL_01.        08:00  30:0A 57:24 56:00 00:00
     2022-11-30 16:08:00   deviceMsg       on (to VCCU)
     2022-11-30 16:08:00   level           100
     2022-11-30 16:08:00   pct             100
     2022-11-30 16:08:00   recentStateType ack
     2022-11-30 16:08:00   state           on
     2022-11-30 16:08:00   timedOn         off
     2022-11-30 16:07:59   trigLast        fhem:02
   helper:
     dlvlCmd    ++A01137A0AF6333E00201C80000
     peerFriend peerSens,peerVirt
     peerOpt    3:switch
     regLst     1,3p
     expert:
       def        1
       det        0
       raw        1
       tpl        0
     role:
       chn        1
     tmpl:
Attributes:
   alias      Lichterkette Vorgarten
   eventMap   on:an off:aus
   group      Licht
   icon       light_fairy_lights
   model      HM-LC-SW4-DR
   peerIDs    00000000,
   room       Zentral
   verbose    5
   webCmd     an:aus



Eigentlich wird dieser Kanal nur mit einem DOIF gesteuert:

defmod di_ZE.Weihnachtsdeko_front DOIF ([06:00] or [{sunset(-3600,"16:00","23:00")}])\
(set Ga.Lichterkette_Vorgarten:FILTER=STATE!=an an) \
DOELSEIF (([23:45]) or [{sunrise(3600,"06:10","10:15")}]) \
(set Ga.Lichterkette_Vorgarten:FILTER=STATE!=aus aus)
attr di_ZE.Weihnachtsdeko_front room Zentral


Unerklärlicherweise sehe ich im Log aber immer zwei Schaltaufrufe direkt hintereinander.

z.B.
2022.11.30 08:36:17 3: CUL_HM set Ga.Lichterkette_Vorgarten off
2022.11.30 08:36:17 3: CUL_HM set Ga.Lichterkette_Vorgarten off


Ich würde das gerne eingrenzen. Ich habe schon die ganze Konfig durchsucht, aber der Aufruf "an" und "aus" findet jeweils nur einmal in dem aufgeführten DOIF statt.
Ich habe schon ein Loging des DOIF aufgesetzt, dort sehe ich m.E. auch den doppelten Aufruf.

2022-11-30_08:36:17 Ga.Lichterkette_Vorgarten set_off
2022-11-30_08:36:17 Ga.Lichterkette_Vorgarten trigLast: fhem:02
2022-11-30_08:36:17 Ga.Lichterkette_Vorgarten set_off
2022-11-30_08:36:17 di_ZE.Weihnachtsdeko_front cmd_nr: 2
2022-11-30_08:36:17 di_ZE.Weihnachtsdeko_front cmd: 2
2022-11-30_08:36:17 di_ZE.Weihnachtsdeko_front cmd_event: timer_4
2022-11-30_08:36:17 di_ZE.Weihnachtsdeko_front cmd_2
2022-11-30_08:36:17 Ga.Lichterkette_Vorgarten trigLast: fhem:02
2022-11-30_08:36:17 Ga.Lichterkette_Vorgarten deviceMsg: aus (to VCCU)
2022-11-30_08:36:17 Ga.Lichterkette_Vorgarten level: 0
2022-11-30_08:36:17 Ga.Lichterkette_Vorgarten pct: 0
2022-11-30_08:36:17 Ga.Lichterkette_Vorgarten aus
2022-11-30_08:36:17 Ga.Lichterkette_Vorgarten timedOn: aus
2022-11-30_08:36:17 Ga.Lichterkette_Vorgarten trigLast: fhem:02
2022-11-30_08:36:17 Ga.Lichterkette_Vorgarten trigLast: fhem:02
2022-11-30_08:36:17 Ga.Lichterkette_Vorgarten deviceMsg: aus (to VCCU)
2022-11-30_08:36:17 Ga.Lichterkette_Vorgarten level: 0
2022-11-30_08:36:17 Ga.Lichterkette_Vorgarten pct: 0
2022-11-30_08:36:17 Ga.Lichterkette_Vorgarten aus
2022-11-30_08:36:17 Ga.Lichterkette_Vorgarten timedOn: aus


Wo kommt das her?

Auch ein Hochsetzen des Loging des Aktors "verbose 5" bringt mich nicht weiter. Habt Ihr eine Idee? Ist es eventuell ein Retransmit zum Aktor?
Wie kann ich das sinnvoll eingrenzen und beheben?

Vielen Dank für Eure Hilfe

Gruß
Christian

frank

ZitatUnerklärlicherweise sehe ich im Log aber immer zwei Schaltaufrufe direkt hintereinander.
STATE ist immer eine schlechte idee, wenn man nicht weiss, was da alles kommt.

bist du sicher, dass "Ga.Lichterkette_Vorgarten:FILTER=STATE!=" tut, was du willst, wenn zb "set_off" im STATE steht?
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

cseuss

Hallo Frank,

vielen Dank für Diene schnelle Rückmeldung.

Ich verstehe Deine Anmerkunegn zur Nutzung von "STATE" im Allgemeinen und zur Sicherheit habe ich nun den Filter im Command im DOIF auf "state" umgestellt.
Bis dato sehe ich aber keine Verbesserung.

Da ich ja auf den Status mit Eventmapping "an" bzw. "aus" den Filter gesetzt hatte, passt Deine Theorie m.E. auch nicht ganz. Des weiteren arbeite ich ja im Filter mit STATE. Aber dieser Filter löst doch keinen weiteren Trigger im DOIF aus, um das Command doppelt auszulösen, wenn andere Events am Aktor auftreten, die auch z.B "off" beinhalten. Der Trigger ist doch ein Zeitpunkt im DOIF.
Oder habe ich da was ganz falsch verstanden?

Gibt es noch andere Hinweise?

Gruß Christian