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
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
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
Ja ok jetzt habe ich das Konstrukt verstanden. Eine "viel bessere" Lösung hatte ich nicht im Sinn.
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
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
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
Hallo in die Runde.
Simple Lösung für mein "Problem".
@TomLee: Ich danke!
Römi