DOIF im Status "disabled" reagiert trotzdem

Begonnen von TubeHead, 10 Juni 2025, 23:03:00

Vorheriges Thema - Nächstes Thema

xenos1984


TubeHead

Öhhh... Musste ich jetzt auch erstmal herausfinden. Wo hast Du denn das gesehen? Ist mir vollkommen entgangen  :'(
Erstaunlicherweise taucht dort auch der besagte Aktor auf, wird aber, aus welchen Gründen auch immer, nicht von np++ gefunden.
Das scheint ein Überbleibsel aus den Anfängen meiner Fummelei zu sein.
Ich deaktiviere das mal und ergründe im Laufe des Abends mal, was das machen soll...

passibe

Zitat von: TubeHead am 12 Juni 2025, 22:52:20### Bewegung ausgelöst, Licht wird eingeschaltet trotz Deaktivierung

## Events HM2BB.*
2025-06-12 22:27:32.852 DOIF set_395l_au_a cmd_event: HM2BB2
set_359l_au_a ist hier.
Deshalb besser den event monitor ohne Filter laufen lassen ... vor allem wenn man etwas Unbekanntes sucht:D

Aber ich vermute mal stark, dass dann set_359l_au_a tatsächlich der Übeltäter ist.

TubeHead

Jo... Da muss ich wohl mal ganz kleinlaut Abbitte leisten  :-[ Vielen Dank und Dank an Deine Adleraugen!

Den "set_359l_au_a" konnte ich in der fhem.cfg per np++ deshalb nicht finden, da er wohl uralt und per include eingebunden war; muss schon mindestens 8 Jahre her sein.
Interessant dabei, dass die ganze Sache dennoch seit Jahren funktioniert hat, obwohl das eigentlich ein annähernder Zwilling des "set_112_a1" ist. Verblüffend!

Was mich aber dennoch irritiert ist der Umstand, dass hier nach dem Deaktivieren des "aktuellen" DOIF die Altlast nach einem Mal schalten anscheinend ebenfalls den Betrieb einstellt. Erwartet hätte ich, dass das Deaktivieren eines der "Zwillinge" schlicht keine Auswirkungen gezeigt hätte, da redundant und somit der verbleibende "Zwilling" die Funktionalität ungestört bereitstellt. Dem ist aber ganz offensichtlich nicht so...

Per


TubeHead


Per


TubeHead

Ok, bitteschön. Habe ich dafür temporär wieder aktiviert, deaktiviere ich aber gleich wieder...

Internals:
   CFGFN      /opt/fhem/_INC/395_Hausflur.cfg
   DEF        ([395l_au:a] < 0) (set HM4SW1_1 off) DOELSEIF ([395l_au:a] > 0) (set HM4SW1_1 on)
DOELSEIF ([395l_au:a] == 0 and [HM2BB2] eq "motion" and [LUM:state] < [395l_sl:a] ) (setreading HM2BB2 state noMotion, set HM4SW1_1 on-for-timer 200)
DOELSEIF ([395l_au:a] == 0 and [LUM:state] > [395l_sl:a] ) (set HM4SW1_1 off)
   FUUID      5c7d4ffb-f33f-a7b8-2ddf-80cb00c620560bfb
   MODEL      FHEM
   NAME       set_395l_au_a
   NOTIFYDEV  395l_sl,global,395l_au,LUM,HM2BB2
   NR         2250
   NTFY_ORDER 50-set_395l_au_a
   STATE      cmd_4
   TYPE       DOIF
   VERSION    29460 2024-12-29 20:25:48
   eventCount 3
   READINGS:
     2025-06-13 08:21:02   Device          HM2BB2
     2025-06-13 04:30:00   cmd             4
     2025-06-13 04:30:00   cmd_event       LUM
     2025-06-13 04:30:00   cmd_nr          4
     2023-06-06 10:38:49   e_395l_au_a     0
     2024-11-19 16:59:25   e_395l_sl_a     36
     2025-06-13 08:21:02   e_HM2BB2_STATE  noMotion
     2025-06-13 08:21:00   e_LUM_state     82
     2024-10-25 12:30:01   e_TWI_tww       100
     2025-06-14 18:46:56   mode            enabled
     2025-06-14 18:46:56   state           cmd_4
   Regex:
     cond:
       395l_au:
         0:
           a          ^395l_au$:^a:
         1:
           a          ^395l_au$:^a:
         2:
           a          ^395l_au$:^a:
         3:
           a          ^395l_au$:^a:
       395l_sl:
         2:
           a          ^395l_sl$:^a:
         3:
           a          ^395l_sl$:^a:
       HM2BB2:
         2:
           &STATE     ^HM2BB2$
       LUM:
         2:
           state      ^LUM$:^state:
         3:
           state      ^LUM$:^state:
   attr:
     waitdel:
   condition:
     0          ::ReadingValDoIf($hash,'395l_au','a') < 0
     1          ::ReadingValDoIf($hash,'395l_au','a') > 0
     2          ::ReadingValDoIf($hash,'395l_au','a') == 0 and ::InternalDoIf($hash,'HM2BB2','STATE') eq "motion" and ::ReadingValDoIf($hash,'LUM','state') < ::ReadingValDoIf($hash,'395l_sl','a')
     3          ::ReadingValDoIf($hash,'395l_au','a') == 0 and ::ReadingValDoIf($hash,'LUM','state') > ::ReadingValDoIf($hash,'395l_sl','a')
   do:
     0:
       0          set HM4SW1_1 off
     1:
       0          set HM4SW1_1 on
     2:
       0          setreading HM2BB2 state noMotion, set HM4SW1_1 on-for-timer 200
     3:
       0          set HM4SW1_1 off
     4:
   helper:
     NOTIFYDEV  395l_sl,global,395l_au,LUM,HM2BB2
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   
     timerevent
     timerevents
     timereventsState
     triggerDev
   internals:
     all         HM2BB2:STATE
   perlblock:
   readings:
     all         395l_au:a LUM:state 395l_sl:a
   uiState:
   uiTable:
Attributes:
   group      DOIF
   room       395 - Hausflur, _90 HW - HM.HW

passibe

Zitat von: TubeHead am 14 Juni 2025, 10:31:18Was mich aber dennoch irritiert ist der Umstand, dass hier nach dem Deaktivieren des "aktuellen" DOIF die Altlast nach einem Mal schalten anscheinend ebenfalls den Betrieb einstellt
Hab den Code jetzt nicht genau angeschaut, aber set_359l_au_a hat kein do always, vielleicht liegts daran.
Vielleicht setzt es sich tagsüber dann zurück, abends löst es 1x aus und verfällt dann wieder in einen Zweig, der dann wieder auf das Tagsüber-Zurücksetzen wartet.