FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: roemi am 31 August 2024, 21:27:03

Titel: [Gelöst] Fragen zu einer "Treppenlichtschaltung"
Beitrag von: roemi am 31 August 2024, 21:27:03
Hallo,

ich nutze seit Jahren folgende Konfi für meine zeitgesteuerte Beleuchtung
Internals:
   DEF        ([Bewegungsmelder4:"^occupancy:.true$"])
(set Aktor3 on)
DOELSEIF ([Bewegungsmelder4:"^occupancy:.false$"])
(set Aktor3 off)
DOELSE()
   FUUID      66bb4651-f33f-68dd-feb5-5ed9cba9f408e2fc
   MODEL      FHEM
   NAME       d_licht_roemis_raum
   NOTIFYDEV  global,Bewegungsmelder4
   NR         102
   NTFY_ORDER 50-d_licht_roemis_raum
   STATE      cmd_2
   TYPE       DOIF
   VERSION    28546 2024-02-23 20:11:05
   eventCount 502
   READINGS:
     2024-08-31 21:01:28   Device          Bewegungsmelder4
     2024-08-31 21:03:58   cmd             2
     2024-08-31 21:03:58   cmd_event       Bewegungsmelder4
     2024-08-31 21:03:58   cmd_nr          2
     2024-08-31 21:01:28   e_Bewegungsmelder4_events illuminance: 0,illuminance_lux: 0,linkquality: 63,temperature: 21.47,occupancy: false,occupancy_timeout: 0,update_latest_version: 1107323831,update_installed_version: 1107323831,update_state: idle,battery: 100,temperature_weather: 24.0
     2024-08-31 13:51:00   mode            enabled
     2024-08-31 21:03:58   state           cmd_2
     2024-08-31 21:03:58   wait_timer      no timer
   Regex:
     accu:
     bar:
     barAvg:
     collect:
     cond:
       Bewegungsmelder4:
         0:
           &STATE     ^Bewegungsmelder4$
         1:
           &STATE     ^Bewegungsmelder4$
   attr:
     cmdState:
     wait:
       0:
         0
       1:
         150
     waitdel:
   condition:
     0          ::EventDoIf('Bewegungsmelder4',$hash,'^occupancy:.true$',1)
     1          ::EventDoIf('Bewegungsmelder4',$hash,'^occupancy:.false$',1)
   devices:
   do:
     0:
       0          set Aktor3 on
     1:
       0          set Aktor3 off
     2:
       0         
   helper:
     NOTIFYDEV  global,Bewegungsmelder4
     event      occupancy: false
     globalinit 1
     last_timer 0
     sleepdevice Bewegungsmelder4
     sleepsubtimer -1
     sleeptimer -1
     timerdev   Bewegungsmelder4
     timerevent occupancy: false
     triggerDev Bewegungsmelder4
     DOIF_eventa:
       cmd_nr: 2
       cmd: 2
       cmd_event: Bewegungsmelder4
       cmd_2
     DOIF_eventas:
       cmd_nr: 2
       cmd: 2
       cmd_event: Bewegungsmelder4
       state: cmd_2
     timerevents:
       illuminance: 0
       illuminance_lux: 0
       linkquality: 63
       temperature: 21.47
       occupancy: false
       occupancy_timeout: 0
       update_latest_version: 1107323831
       update_installed_version: 1107323831
       update_state: idle
       battery: 100
       temperature_weather: 24.0
     timereventsState:
       illuminance: 0
       illuminance_lux: 0
       linkquality: 63
       temperature: 21.47
       occupancy: false
       occupancy_timeout: 0
       update_latest_version: 1107323831
       update_installed_version: 1107323831
       update_state: idle
       battery: 100
       temperature_weather: 24.0
     triggerEvents:
       illuminance: 0
       illuminance_lux: 0
       linkquality: 63
       temperature: 21.47
       occupancy: false
       occupancy_timeout: 0
       update_latest_version: 1107323831
       update_installed_version: 1107323831
       update_state: idle
       battery: 100
       temperature_weather: 24.0
     triggerEventsState:
       illuminance: 0
       illuminance_lux: 0
       linkquality: 63
       temperature: 21.47
       occupancy: false
       occupancy_timeout: 0
       update_latest_version: 1107323831
       update_installed_version: 1107323831
       update_state: idle
       battery: 100
       temperature_weather: 24.0
   internals:
   readings:
   trigger:
     all         Bewegungsmelder4
   uiState:
   uiTable:
Attributes:
   do         always
   group      DOIF
   room       Römis Raum
   wait       0:150
Das funktioniert auch problemlos
Nun habe ich zu einen ein Notify hinzugefügt
Internals:
   CFGFN     
   DEF        d_licht_roemis_raum:wait_timer:.* setreading Aktor3 nDeckenlicht [d_licht_roemis_raum:wait_timer]
   FUUID      66d2e838-f33f-68dd-c786-f8e755ccff708469
   NAME       nRoemisBubeDeckenlicht
   NOTIFYDEV  d_licht_roemis_raum
   NR         160
   NTFY_ORDER 50-nRoemisBubeDeckenlicht
   REGEXP     d_licht_roemis_raum:wait_timer:.*
   STATE      2024-08-31 21:03:58
   TRIGGERTIME 1725131038.652
   TYPE       notify
   eventCount 2
   READINGS:
     2024-08-31 12:51:58   state           active
     2024-08-31 21:03:58   triggeredByDev  d_licht_roemis_raum
     2024-08-31 21:03:58   triggeredByEvent wait_timer: no timer
Attributes:
   room       Römis Raum
und das Device eintsprechend angepasst
Internals:
   CID        zigbee_Aktor3
   DEF        zigbee_Aktor3
   FUUID      66bb43e6-f33f-68dd-3275-32b5b68d85e78db0
   IODev      MQTT2_FHEM_Server
   LASTInputDev MQTT2_FHEM_Server
   MQTT2_FHEM_Server_CONN MQTT2_FHEM_Server_172.27.0.2_51584
   MQTT2_FHEM_Server_MSGCNT 218
   MQTT2_FHEM_Server_TIME 2024-08-31 21:03:58
   MSGCNT     218
   NAME       Aktor3
   NR         100
   STATE      off
no timer
   TYPE       MQTT2_DEVICE
   eventCount 459
   JSONMAP:
     color_temp ct
     color_temp_startup ct_startup
   READINGS:
     2024-08-29 07:58:26   IODev           MQTT2_FHEM_Server
     2024-08-13 13:30:46   associatedWith  MQTT2_zigbee_bridge
     2024-08-13 13:36:50   attrTemplateVersion 20240108
     2024-08-31 21:03:58   linkquality     30
     2024-08-31 21:03:58   nDeckenlicht    no timer
     2024-08-31 21:03:58   state           off
     2024-08-13 13:36:50   temperature_weather 2.5
Attributes:
   alias      Römis Raum
   devStateIcon no.*:hourglass@green .*cmd.*:hourglass@red
   devicetopic zigbee2mqtt/Aktor3
   group      Licht
   icon       dim100%
   jsonMap    color_temp:ct color_temp_startup:ct_startup
   model      zigbee2mqtt_light_cct
   readingList $DEVICETOPIC:.* { my $ret=json2nameValue($EVENT,'',$JSONMAP); $ret->{state}=lc($ret->{state}) if defined $ret->{state}; return $ret }
   room       Römis Raum,Übersicht
   setList    on:noArg $DEVICETOPIC/set {"state":"ON"}
  off:noArg $DEVICETOPIC/set {"state":"OFF"}
  brightness:colorpicker,BRI,0,5,255 $DEVICETOPIC/set {"state":"on","$EVTPART0":$EVTPART1}
  ct:colorpicker,CT,154,2,500 $DEVICETOPIC/set {"color_temp":$EVTPART1}
  ct_startup:coolest,cool,neutral,warmest,previous $DEVICETOPIC/set {"color_temp_startup":"$EVTPART1"}
   stateFormat [$name:state]
[$name:nDeckenlicht]
   webCmd     on:off
Das ganze sieht dann so aus
Bildschirmfoto zu 2024-08-31 21-17-07.png
Die Sanduhr wird immer dann rot wenn das Wait aufgeführt wird und das sehen ich nun "ständig". Das Licht bleibt aus, aber der Wait wird von irgendwas ausgelöst. Es wirkt sich, außer unnötigem Traffic, nicht negativ aus.
Trotzdem würde ich gerne verstehen was ich nun falsch gemacht habe. Es kann ja nicht viel sein.

Danke für Eure Hilfe

Römi
Titel: Aw: Fragen zu einer "Treppenlichtschaltung"
Beitrag von: Otto123 am 31 August 2024, 22:01:29
Hallo Römi,

schau Dir das Ganze im Eventmonitor an, da siehst Du was passiert. Jede Änderung des Readings wait_timer triggert Dein notify, auch der Abschluß mit no timer.

Den Sinn des notify verstehe ich nicht.

Gruß Otto
Titel: Aw: Fragen zu einer "Treppenlichtschaltung"
Beitrag von: roemi am 01 September 2024, 00:53:13
Hallo Otto,

das werde ich tun.

Das Notify empfand ich als clevere Lösung um zwei Icons in der Statuszeile zu platzieren. Und das funktioniert ja nur wenn sich die einzelnen Station unterscheiden.
Deiner Bemerkung entnehme ich aber, das es dafür eine viel bessere Lösung gibt.

Römi
Titel: Aw: Fragen zu einer "Treppenlichtschaltung"
Beitrag von: Otto123 am 01 September 2024, 10:24:00
Ja ok jetzt habe ich das Konstrukt verstanden. Eine "viel bessere" Lösung hatte ich nicht im Sinn.
Titel: Aw: Fragen zu einer "Treppenlichtschaltung"
Beitrag von: roemi am 01 September 2024, 11:18:54
Hallo,

der Auslöser hat für mich etwas vom "Henne Ei" Problem. Aber das Device ist wohl der Verursacher  ;) Zugegeben ... mehr konnte ich den beiden Event Monitoren (ich habe sie nebeneinander gesetzt) nicht entnehmen.

Wäre schön wenn mir jemand ;) auf die Sprünge helfen würde.

Römi
Titel: Aw: Fragen zu einer "Treppenlichtschaltung"
Beitrag von: TomLee am 01 September 2024, 12:53:29
Zitatder Auslöser hat für mich etwas vom "Henne Ei" Problem. Aber das Device ist wohl der Verursacher

Hallo,

schickt der BM in regelmäßigen Abständen das "false" ?
=>
attr Bewegungsmelder4 event-on-change-reading occupancy
Gruß Thomas
Titel: Aw: Fragen zu einer "Treppenlichtschaltung"
Beitrag von: roemi am 01 September 2024, 15:57:09
Zitatschickt der BM in regelmäßigen Abständen das "false" ?

Nein, sehr unregelmäßig.
Ich habe event-on-change-reading occupancy nun umgesetzt und beobachte.
Mir ist es tatsächlich nur bei zwei Räumen, in beiden wird das Hauptlicht über einen Actor ein- und ausgeschaltet, aufgefallen.
Ich habe es aber nicht mit dem Actor selbst in Verbindung gebracht.

Mal schauen.

Ich danke für den Tipp

Römi
Titel: Aw: Fragen zu einer "Treppenlichtschaltung"
Beitrag von: roemi am 01 September 2024, 23:14:32
Hallo in die Runde.

Simple Lösung für mein "Problem".

@TomLee: Ich danke!

Römi