Hi there,
I’m running openhab 2.4.0-1 and I’m experiencing some troubles with the expire binding recently. In my corridor, I have an Aqara Human Body Sensor and a Philips Hue Light. If the body sensor detects movements (and it is not too bright), the Hue bulb is triggered to switch into a dimmed state (either 30 or 100 percent, depending on brightness and time). A timer (Switch item with expire binding for 75s) is also started in order to turn the light off. This works around 90% of the time, but in the remainder, the timer never expires. I haven’t found any pattern yet to isolate the problem, but maybe, you have an idea.
As you can see, I followed the Timer design pattern shown here in the forums, but maybe I’m missing an important point. Is there something wrong with my rule/item configuration? Or is this a known bug?
Thanks in advance!
Hans
My items file:
Switch Flur_hinten_Hue1_Switch "Lampe (Flur hinten) [%s]" <light> {mqtt=">[broker:zigbee2mqtt/flur_hinten_hue1/set:command:*:JS(setZigbeeState.js)],<[broker:zigbee2mqtt/flur_hinten_hue1:state:JSONPATH($.state)]"}
Switch Flur_hinten_Hue1_Switch_Timer {expire="75s,command=OFF"}
Dimmer Flur_hinten_Hue1_Dimm "Lampe (Flur hinten) Dimm" <light> {mqtt=">[broker:zigbee2mqtt/flur_hinten_hue1/set:command:*:JS(setZigbeeBrightness.js)],<[broker:zigbee2mqtt/flur_hinten_hue1:state:JS(getZigbeeBrightness.js)]"}
Switch Flur_hinten_Human_Body_Sensor1_MOTION "Bewegung (Flur hinten) [%s]" <motion> {mqtt="<[broker:zigbee2mqtt/flur_hinten_human_body_sensor1:state:JS(getZigbeeOccupancy2Switch.js)]" }
Number Flur_hinten_Human_Body_Sensor1_BRIGHTNESS "Helligkeit (Flur hinten) [%d lumen]" {mqtt="<[broker:zigbee2mqtt/flur_hinten_human_body_sensor1:state:JSONPATH($.illuminance)]"}
My rules file:
rule "Flur_hinten_Hue_Auto_Licht"
when
Item Flur_hinten_Human_Body_Sensor1_MOTION changed to ON
then
logInfo("FILE", "Flurbewegungssensor hat Status auf ON geändert")
if(Flur_hinten_Human_Body_Sensor1_BRIGHTNESS.state < 3 && now.getHourOfDay < 22 && now.getHourOfDay >= 8) {
logInfo("FILE", "Zeige 100% Helligkeit")
Flur_hinten_Hue1_Dimm.sendCommand(100);
}
else if(Flur_hinten_Human_Body_Sensor1_BRIGHTNESS.state < 10) {
logInfo("FILE", "Zeige 30% Helligkeit")
Flur_hinten_Hue1_Dimm.sendCommand(30);
}
//timer reset
logInfo("FILE", "Setze den Lampentimer zurück")
Flur_hinten_Hue1_Switch_Timer.postUpdate(OFF)
//start the timer
logInfo("FILE", "Starte den Lampentimer")
Flur_hinten_Hue1_Switch_Timer.sendCommand(ON)
end
rule "Flur_hinten_Hue1_Switch_Timer expired"
when
Item Flur_hinten_Hue1_Switch_Timer received command OFF
then
logInfo("FILE", "Lampentimer hat off erhalten")
// Timer body
Flur_hinten_Hue1_Switch.sendCommand(OFF)
end
Logs:
//HAPPY CASE: everything works as expected
2018-12-30 01:45:58.555 [vent.ItemStateChangedEvent] - Flur_hinten_Human_Body_Sensor1_MOTION changed from OFF to ON
2018-12-30 01:45:58.573 [INFO ] [.eclipse.smarthome.model.script.FILE] - Flurbewegungssensor hat Status auf ON geändert
2018-12-30 01:45:58.607 [INFO ] [.eclipse.smarthome.model.script.FILE] - Zeige 30% Helligkeit
2018-12-30 01:45:58.617 [ome.event.ItemCommandEvent] - Item 'Flur_hinten_Hue1_Dimm' received command 30
2018-12-30 01:45:58.617 [INFO ] [.eclipse.smarthome.model.script.FILE] - Setze den Lampentimer zurück
2018-12-30 01:45:58.628 [INFO ] [.eclipse.smarthome.model.script.FILE] - Starte den Lampentimer
2018-12-30 01:45:58.645 [ome.event.ItemCommandEvent] - Item 'Flur_hinten_Hue1_Switch_Timer' received command ON
2018-12-30 01:45:58.650 [vent.ItemStateChangedEvent] - Flur_hinten_Hue1_Dimm changed from 29.80392156862745 to 30
2018-12-30 01:45:58.663 [vent.ItemStateChangedEvent] - Flur_hinten_Hue1_Switch_Timer changed from OFF to ON
2018-12-30 01:45:58.784 [vent.ItemStateChangedEvent] - Flur_hinten_Hue1_Switch_Timer changed from ON to OFF
2018-12-30 01:45:58.987 [vent.ItemStateChangedEvent] - Flur_hinten_Hue1_Dimm changed from 30 to 29.80392156862745
2018-12-30 01:46:58.399 [vent.ItemStateChangedEvent] - Flur_hinten_Human_Body_Sensor1_MOTION changed from ON to OFF
2018-12-30 01:47:14.206 [ome.event.ItemCommandEvent] - Item 'Flur_hinten_Hue1_Switch_Timer' received command OFF
2018-12-30 01:47:14.229 [vent.ItemStateChangedEvent] - Flur_hinten_Hue1_Switch_Timer changed from ON to OFF
2018-12-30 01:47:14.265 [INFO ] [.eclipse.smarthome.model.script.FILE] - Lampentimer hat off erhalten
2018-12-30 01:47:14.286 [ome.event.ItemCommandEvent] - Item 'Flur_hinten_Hue1_Switch' received command OFF
2018-12-30 01:47:14.311 [vent.ItemStateChangedEvent] - Flur_hinten_Hue1_Switch changed from ON to OFF
//BAD CASE: Flur_hinten_Hue1_Switch_Timer does not expire
2018-12-30 01:58:15.958 [INFO ] [.eclipse.smarthome.model.script.FILE] - Flurbewegungssensor hat Status auf ON geändert
2018-12-30 01:58:15.973 [vent.ItemStateChangedEvent] - Flur_hinten_Human_Body_Sensor1_MOTION changed from OFF to ON
2018-12-30 01:58:15.997 [INFO ] [.eclipse.smarthome.model.script.FILE] - Zeige 30% Helligkeit
2018-12-30 01:58:16.008 [ome.event.ItemCommandEvent] - Item 'Flur_hinten_Hue1_Dimm' received command 30
2018-12-30 01:58:16.008 [INFO ] [.eclipse.smarthome.model.script.FILE] - Setze den Lampentimer zurück
2018-12-30 01:58:16.019 [INFO ] [.eclipse.smarthome.model.script.FILE] - Starte den Lampentimer
2018-12-30 01:58:16.037 [ome.event.ItemCommandEvent] - Item 'Flur_hinten_Hue1_Switch_Timer' received command ON
2018-12-30 01:58:16.060 [vent.ItemStateChangedEvent] - Flur_hinten_Hue1_Switch_Timer changed from OFF to ON
2018-12-30 01:58:16.174 [vent.ItemStateChangedEvent] - Flur_hinten_Hue1_Dimm changed from 29.80392156862745 to 30
2018-12-30 01:58:16.296 [vent.ItemStateChangedEvent] - Flur_hinten_Hue1_Switch changed from OFF to ON
2018-12-30 01:58:16.428 [vent.ItemStateChangedEvent] - Flur_hinten_Hue1_Dimm changed from 30 to 29.80392156862745
2018-12-30 01:59:15.824 [vent.ItemStateChangedEvent] - Flur_hinten_Human_Body_Sensor1_MOTION changed from ON to OFF
- Platform information:
- Hardware: RPi 2B+
- OS: OpenHabian (last release) with Raspbian stretch
- Java Runtime Environment: openjdk 1.8.0_152
- openHAB version: 2.4.0-1