HMIP Bewegungsmeldung schaltet Licht nicht aus

Begonnen von PEPITO82, 01 November 2022, 17:06:31

Vorheriges Thema - Nächstes Thema

PEPITO82

Hallo zusammen,

ich habe meine alte FHEM Installation auf neue Hardware umgezogen.

Geräte von alter fhem.cfg auf die neue Installation übertragen, aber leider funktioniert das DOIF nicht mehr.

Das Anschalten der LEDs funktioniert zuverlässig, aber das Ausschalten meistens nicht.

So sieht das List für das DOIF aus:

Internals:
   DEF        ([EG_BWM_BAD:"presence"]) (set EG_Bad dim 99) DOELSEIF ([EG_BWM_BAD:"noPresence"]) (set EG_Bad dim 0)
   FUUID      61b99b43-f33f-0ca3-7f6d-3080ba32ba4947ef
   MODEL      FHEM
   NAME       di_EG_Licht_Bad
   NOTIFYDEV  global,EG_BWM_BAD
   NR         224
   NTFY_ORDER 50-di_EG_Licht_Bad
   STATE      cmd_1
   TYPE       DOIF
   VERSION    26444 2022-09-25 16:29:19
   eventCount 61
   READINGS:
     2022-11-01 16:53:55   Device          EG_BWM_BAD
     2022-11-01 16:50:22   cmd             1
     2022-11-01 16:50:22   cmd_event       EG_BWM_BAD
     2022-11-01 16:50:22   cmd_nr          1
     2022-11-01 16:53:55   e_EG_BWM_BAD_events noPresence,1.PRESENCE_DETECTION_STATE: noPresence,presence: noPresence,hmstate: noPresence
     2022-11-01 16:50:22   state           cmd_1
   Regex:
     accu:
     collect:
     cond:
       EG_BWM_BAD:
         0:
           &STATE     ^EG_BWM_BAD$
         1:
           &STATE     ^EG_BWM_BAD$
   attr:
     cmdState:
     wait:
     waitdel:
   condition:
     0          ::EventDoIf('EG_BWM_BAD',$hash,'presence',1)
     1          ::EventDoIf('EG_BWM_BAD',$hash,'noPresence',1)
   do:
     0:
       0          set EG_Bad dim 99
     1:
       0          set EG_Bad dim 0
     2:
   helper:
     NOTIFYDEV  global,EG_BWM_BAD
     event      presence: noPresence
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   EG_BWM_BAD
     timerevent presence: noPresence
     triggerDev EG_BWM_BAD
     timerevents:
       noPresence
       1.PRESENCE_DETECTION_STATE: noPresence
       presence: noPresence
       hmstate: noPresence
     timereventsState:
       state: noPresence
       1.PRESENCE_DETECTION_STATE: noPresence
       presence: noPresence
       hmstate: noPresence
     triggerEvents:
       noPresence
       1.PRESENCE_DETECTION_STATE: noPresence
       presence: noPresence
       hmstate: noPresence
     triggerEventsState:
       state: noPresence
       1.PRESENCE_DETECTION_STATE: noPresence
       presence: noPresence
       hmstate: noPresence
   hmccu:
   internals:
   perlblock:
   readings:
   trigger:
     all         EG_BWM_BAD
   uiState:
   uiTable:
Attributes:
   checkReadingEvent 1
   disable    0


So sieht der Event-Monitor aus als das Licht anging:

2022-11-01 16:50:22 ZWave EG_Bad dim 0
2022-11-01 16:50:22 DOIF di_EG_Licht_Bad cmd_nr: 2
2022-11-01 16:50:22 DOIF di_EG_Licht_Bad cmd: 2
2022-11-01 16:50:22 DOIF di_EG_Licht_Bad cmd_event: EG_BWM_BAD
2022-11-01 16:50:22 DOIF di_EG_Licht_Bad cmd_2
2022-11-01 16:50:22 HMCCUDEV EG_BWM_BAD rssidevice: -73
2022-11-01 16:50:22 HMCCUDEV EG_BWM_BAD hmstate: noPresence
2022-11-01 16:50:22 ZWave EG_Bad dim 99
2022-11-01 16:50:22 DOIF di_EG_Licht_Bad cmd_nr: 1
2022-11-01 16:50:22 DOIF di_EG_Licht_Bad cmd: 1
2022-11-01 16:50:22 DOIF di_EG_Licht_Bad cmd_event: EG_BWM_BAD
2022-11-01 16:50:22 DOIF di_EG_Licht_Bad cmd_1
2022-11-01 16:50:22 HMCCUDEV EG_BWM_BAD presence
2022-11-01 16:50:22 HMCCUDEV EG_BWM_BAD 1.PRESENCE_DETECTION_STATE: presence
2022-11-01 16:50:22 HMCCUDEV EG_BWM_BAD presence: presence
2022-11-01 16:50:22 HMCCUDEV EG_BWM_BAD hmstate: presence
2022-11-01 16:50:22 ZWave EG_Bad dim 99
2022-11-01 16:50:22 ZWave EG_Bad reportedState: dim 99


Und so als es nicht ausging, obwohl es hätte ausgehen sollen:

2022-11-01 16:53:55 HMCCUDEV EG_BWM_BAD hmstate: presence
2022-11-01 16:53:55 HMCCUDEV EG_BWM_BAD noPresence
2022-11-01 16:53:55 HMCCUDEV EG_BWM_BAD 1.PRESENCE_DETECTION_STATE: noPresence
2022-11-01 16:53:55 HMCCUDEV EG_BWM_BAD presence: noPresence
2022-11-01 16:53:55 HMCCUDEV EG_BWM_BAD hmstate: noPresence


Im zugehörigen HMCCUDEV wird der Status immer schön von noPresence auf presence geändert.

So sieht das List des Bewegungsmelders aus:

Internals:
   DEF        EG_BWM_BAD defaults
   FUUID      61b995d6-f33f-0ca3-c901-cffb1c419aa0f45d
   IODev      d_ccu
   NAME       EG_BWM_BAD
   NR         222
   STATE      Status: noPresence Helligkeit: 4.2 Erkennung aktiv: on
   TYPE       HMCCUDEV
   ccuaddr    000C1D898D6163
   ccudevstate active
   ccuif      HmIP-RF
   ccuname    EG_BWM_BAD
   ccurolectrl PRESENCEDETECTOR_TRANSCEIVER
   ccurolestate PRESENCEDETECTOR_TRANSCEIVER
   ccusubtype SPI
   ccutype    HmIP-SPI
   eventCount 226
   firmware   1.4.0
   readonly   no
   READINGS:
     2022-11-01 16:53:55   1.ILLUMINATION  4.2
     2022-11-01 16:53:55   1.ILLUMINATION_STATUS NORMAL
     2022-11-01 16:53:55   1.PRESENCE_DETECTION_ACTIVE on
     2022-11-01 16:53:55   1.PRESENCE_DETECTION_STATE noPresence
     2022-10-31 09:10:37   IODev           d_ccu
     2022-11-01 16:53:55   activity        alive
     2022-11-01 16:53:55   battery         ok
     2022-11-01 16:53:55   brightness      4.2
     2022-11-01 16:53:55   control         on
     2022-11-01 16:53:55   detection       on
     2022-11-01 16:53:55   devstate        ok
     2022-11-01 16:53:55   hmstate         noPresence
     2022-11-01 16:53:55   presence        noPresence
     2022-11-01 16:53:55   rssidevice      -72
     2022-10-31 18:20:26   rssipeer        -72
     2022-11-01 16:53:55   sabotage        false
     2022-11-01 16:53:55   state           noPresence
     2022-11-01 16:53:55   voltage         2.8
   hmccu:
     channels   4
     detect     1
     devspec    EG_BWM_BAD
     forcedev   0
     nodefaults 1
     role       0:MAINTENANCE,1:PRESENCEDETECTOR_TRANSCEIVER,2:STATE_RESET_RECEIVER,3:ALARM_COND_SWITCH_TRANSMITTER
     setDefaults 0
     cmdlist:
       get       
       set        detection:inactive,active reset:noArg toggle:noArg
     control:
       chn        1
       dpt        PRESENCE_DETECTION_ACTIVE
     dp:
       0.CONFIG_PENDING:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      false
           OVAL       0
           SVAL       false
           VAL        0
       0.DUTY_CYCLE:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      false
           OVAL       0
           SVAL       false
           VAL        0
       0.ERROR_CODE:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      0
           OVAL       0
           SVAL       0
           VAL        0
       0.INSTALL_TEST:
         VALUES:
           NVAL       true
           ONVAL      true
           OSVAL      true
           OVAL       true
           SVAL       true
           VAL        true
       0.LOW_BAT:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      ok
           OVAL       0
           SVAL       ok
           VAL        0
       0.OPERATING_VOLTAGE:
         VALUES:
           NVAL       2.8
           ONVAL      2.8
           OSVAL      2.8
           OVAL       2.8
           SVAL       2.8
           VAL        2.8
       0.OPERATING_VOLTAGE_STATUS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      NORMAL
           OVAL       0
           SVAL       NORMAL
           VAL        0
       0.RSSI_DEVICE:
         VALUES:
           NVAL       -72
           ONVAL      -72
           OSVAL      -72
           OVAL       -72
           SVAL       -72
           VAL        -72
       0.RSSI_PEER:
         VALUES:
           NVAL       -72
           ONVAL      -71
           OSVAL      -71
           OVAL       185
           SVAL       -72
           VAL        -72
       0.SABOTAGE:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      false
           OVAL       0
           SVAL       false
           VAL        0
       0.UNREACH:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      alive
           OVAL       0
           SVAL       alive
           VAL        0
       0.UPDATE_PENDING:
         VALUES:
           NVAL       false
           ONVAL      false
           OSVAL      false
           OVAL       false
           SVAL       false
           VAL        false
       1.CURRENT_ILLUMINATION:
         VALUES:
           NVAL       48.400000
           ONVAL      48.400000
           OSVAL      48.4
           OVAL       48.400000
           SVAL       48.4
           VAL        48.400000
       1.CURRENT_ILLUMINATION_STATUS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      NORMAL
           OVAL       0
           SVAL       NORMAL
           VAL        0
       1.ILLUMINATION:
         VALUES:
           NVAL       4.2
           ONVAL      4.2
           OSVAL      4.2
           OVAL       4.2
           SVAL       4.2
           VAL        4.2
       1.ILLUMINATION_STATUS:
         VALUES:
           NVAL       0
           ONVAL      0
           OSVAL      NORMAL
           OVAL       0
           SVAL       NORMAL
           VAL        0
       1.PRESENCE_DETECTION_ACTIVE:
         VALUES:
           NVAL       1
           ONVAL      1
           OSVAL      on
           OVAL       1
           SVAL       on
           VAL        1
       1.PRESENCE_DETECTION_STATE:
         VALUES:
           NVAL       0
           ONVAL      1
           OSVAL      presence
           OVAL       1
           SVAL       noPresence
           VAL        0
     roleCmds:
       get:
       set:
         detection:
           channel    1
           role       PRESENCEDETECTOR_TRANSCEIVER
           subcount   1
           syntax     V:PRESENCE_DETECTION_ACTIVE:#detection=inactive,active
           usage      detection {inactive,active}
           subcmd:
             000:
               args       inactive,active
               dpt        PRESENCE_DETECTION_ACTIVE
               fnc       
               max        1
               min        0
               parname    detection
               partype    1
               ps         VALUES
               scn        000
               unit       
               look:
                 active     1
                 inactive   0
         reset:
           channel    1
           role       PRESENCEDETECTOR_TRANSCEIVER
           subcount   1
           syntax     V:RESET_PRESENCE:true
           usage      reset
           subcmd:
             000:
               args       true
               dpt        RESET_PRESENCE
               fnc       
               max        1
               min        0
               parname    RESET_PRESENCE
               partype    3
               ps         VALUES
               scn        000
               unit       
     state:
       chn        1
       dpt        PRESENCE_DETECTION_STATE
Attributes:
   IODev      d_ccu
   alias      EG_BWM_BAD
   ccureadingfilter (^PRESENCE|^ILLUMINATION|^LOW_BAT)
   ccureadingformat datapoint
   ccureadingname 0.(LOWBAT|LOW_BAT):+battery
   event-on-change-reading .*
   event-on-update-reading hmstate
   eventMap   /datapoint 1.RESET_PRESENCE 1:reset/datapoint 1.PRESENCE_DETECTION_ACTIVE 1:on/datapoint 1.PRESENCE_DETECTION_ACTIVE 0:off
   hmstatevals SABOTAGE!(1|true):sabotage
   icon       message_presence
   room       CUL_HM,ioBroker
   stateFormat Status: 1.PRESENCE_DETECTION_STATE Helligkeit: 1.ILLUMINATION Erkennung aktiv: 1.PRESENCE_DETECTION_ACTIVE
   stripnumber 1
   substitute PRESENCE_DETECTION_STATE!(true|1):presence,(false|0):noPresence;PRESENCE_DETECTION_ACTIVE!(0|false):off,(1|true):on
   webCmd     control
   widgetOverride control:uzsuToggle,off,on


Wie kann ich das beheben?

Viele Grüße
Peter

Damian

Ohne do always-Attribut arbeitest du mit Zustandsauswertung. Das Bedeutet, dass der gleiche Zweig nicht wiederholt wird. Aus dem List sieht es so aus, als wenn presence und onpresence zum gleichen Zeitpunkt kommen. Wenn also der Zustand cmd2 erreicht ist, dann muss als nächstes cmd1 kommen.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

PEPITO82

Das komische ist, dass das zuvor über Jahre funktioniert hat.
Aber jetzt ist natürlich die neustes Version FHEM installiert und alle Module auf dem neuesten Stand.

Genau genommen handelt es sich gar nicht um einen Bewegungsmelder, sondern um einen Präsenzmelder.

Für mich sieht es beim nochmaligen Versuch schon so aus, als ob sich Presence und noPresence abwechseln.

Präsenz:
2022-11-01 18:56:37 ZWave EG_Eingang_Spots dim 99
2022-11-01 18:56:37 DOIF di_EG_Licht_Eingang cmd_nr: 1
2022-11-01 18:56:37 DOIF di_EG_Licht_Eingang cmd: 1
2022-11-01 18:56:37 DOIF di_EG_Licht_Eingang cmd_event: EG_BWM_Eingang
2022-11-01 18:56:37 DOIF di_EG_Licht_Eingang cmd_1
2022-11-01 18:56:37 HMCCUDEV EG_BWM_Eingang 1.ILLUMINATION: 0.0
2022-11-01 18:56:37 HMCCUDEV EG_BWM_Eingang brightness: 0.0
2022-11-01 18:56:37 HMCCUDEV EG_BWM_Eingang presence
2022-11-01 18:56:37 HMCCUDEV EG_BWM_Eingang 1.PRESENCE_DETECTION_STATE: presence
2022-11-01 18:56:37 HMCCUDEV EG_BWM_Eingang presence: presence
2022-11-01 18:56:37 HMCCUDEV EG_BWM_Eingang hmstate: presence
2022-11-01 18:56:38 ZWave EG_Eingang_Spots dim 99
2022-11-01 18:56:38 ZWave EG_Eingang_Spots reportedState: dim 99


Keine Präsenz mehr:

2022-11-01 18:58:42 HMCCUDEV EG_BWM_Eingang rssidevice: -85
2022-11-01 18:58:42 ZWave EG_Eingang_Spots dim 99
2022-11-01 18:58:42 DOIF di_EG_Licht_Eingang cmd_nr: 1
2022-11-01 18:58:42 DOIF di_EG_Licht_Eingang cmd: 1
2022-11-01 18:58:42 DOIF di_EG_Licht_Eingang cmd_event: EG_BWM_Eingang
2022-11-01 18:58:42 DOIF di_EG_Licht_Eingang cmd_1
2022-11-01 18:58:42 HMCCUDEV EG_BWM_Eingang noPresence
2022-11-01 18:58:42 HMCCUDEV EG_BWM_Eingang 1.PRESENCE_DETECTION_STATE: noPresence
2022-11-01 18:58:42 HMCCUDEV EG_BWM_Eingang presence: noPresence
2022-11-01 18:58:42 HMCCUDEV EG_BWM_Eingang hmstate: noPresence
2022-11-01 18:58:43 Neuron unipi ai_2: 2.25954901476999
2022-11-01 18:58:43 ZWave EG_Eingang_Spots dim 99
2022-11-01 18:58:43 ZWave EG_Eingang_Spots reportedState: dim 99


Der keine Präsenz Fall wird aber auch als cmd1 interpretiert.

Damian

Tja. In:

HMCCUDEV EG_BWM_Eingang presence: noPresence

kommt das Wort presence zum Einschalten vor ;)

([EG_BWM_BAD:"presence$"]) (set EG_Bad dim 99) DOELSEIF ([EG_BWM_BAD:"noPresence$"]) (set EG_Bad dim 0)

sollte funktionieren.

Wenn es früher funktioniert hat, dann muss es andere Events gegeben haben.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

PEPITO82

Vielen Dank für die superschnelle Hilfe.

Jetzt klappt es wieder. Ggf. hat sich auch beim HMCCUDEV was geändert.