-
Platform information:
- Hardware: Raspberry 3B+
- OS: openhabian
- openHAB version: 2.3.0-1
-
Issue of the topic:
Hi, I have a Xiaomi motion sensor in my kitchen to turn on the Hue lights - and sometimes the rule needs 15+ seconds after the motion was detected to trigger and turn on the lights. I can’t find any pattern when the rule gets executed immediately and when it needs a long time. Any ideas how to find the problem source?
- Configurations:
- Items configuration related to the issue
Group XiaomiBewegungsmelder1
"Xiaomi Bewegungsmelder Küche"
<motion>
(SensorDevices)
Switch XiaomiBewegungsmelder1_MOTION
"Xiaomi Bewegungsmelder Küche Auslösung"
<motion>
(XiaomiBewegungsmelder1, Motions)
{mqtt="<[zigbee2mqtt:zigbee2mqtt/xiaomimotionkueche:state:JS(getZigbeeOccupancy2Switch.js)]" }
Number XiaomiBewegungsmelder1_BRIGHTNESS
"Xiaomi Bewegungsmelder Küche Helligkeit [%d lumen]"
<lightbulb>
(XiaomiBewegungsmelder1, Luxs)
{mqtt="<[zigbee2mqtt:zigbee2mqtt/xiaomimotionkueche:state:JSONPATH($.illuminance)]"}
Number XiaomiBewegungsmelder1_BATTERY
"Xiaomi Bewegungsmelder Küche Batterie [%.0f %%]"
<batterylevel>
(XiaomiBewegungsmelder1, Batteries)
{mqtt="<[zigbee2mqtt:zigbee2mqtt/xiaomimotionkueche:state:JSONPATH($.battery)]"}
Number XiaomiBewegungsmelder1_LINKQUALI
"Xiaomi Bewegungsmelder Küche LINK [%d]"
<qualityofservice>
(XiaomiBewegungsmelder1, Verbindung)
{mqtt="<[zigbee2mqtt:zigbee2mqtt/xiaomimotionkueche:state:JSONPATH($.linkquality)]"}
- Rules code related to the issue
rule "Bewegungsmelder Kueche"
when
Item XiaomiBewegungsmelder1_MOTION changed
then
logInfo("Testing", "Bewegungsmelder Zeile 1")
var Timer kueche_timer_dimm = null
var Timer kueche_timer_off = null
if (XiaomiBewegungsmelder1_MOTION.state == ON) {
logInfo("Testing", "Bewegungsmelder Zeile 2")
if (AstroDayStatus.state == ON) {
logInfo("Testing", "Bewegungsmelder Zeile 3")
gKuecheHerdLinksFarbtemperatur.sendCommand(41)
gKuecheHerdRechtsFarbtemperatur.sendCommand(41)
HueKuecheLightstripFarbtemperatur.sendCommand(41)
gKuecheHerdLinksDimmer.sendCommand(100)
gKuecheHerdRechtsDimmer.sendCommand(100)
HueKuecheLightstripDimmer.sendCommand(100)
kueche_timer_dimm = null
kueche_timer_off = null
}
else if (AstroDayStatus.state == OFF && now.getHourOfDay < 23 && now.getHourOfDay > 6) {
logInfo("Testing", "Bewegungsmelder Zeile 4")
gKuecheHerdRechtsFarbtemperatur.sendCommand(65)
gKuecheHerdLinksFarbtemperatur.sendCommand(65)
gKuecheHerdLinksDimmer.sendCommand(100)
gKuecheHerdRechtsDimmer.sendCommand(100)
HueKuecheLightstripFarbtemperatur.sendCommand(73)
HueKuecheLightstripDimmer.sendCommand(100)
kueche_timer_dimm = null
kueche_timer_off = null
}
else {
logInfo("Testing", "Bewegungsmelder Zeile 5")
gKuecheHerdRechtsFarbtemperatur.sendCommand(90)
gKuecheHerdLinksFarbtemperatur.sendCommand(90)
gKuecheHerdLinksDimmer.sendCommand(50)
gKuecheHerdRechtsDimmer.sendCommand(50)
HueKuecheLightstripFarbtemperatur.sendCommand(90)
HueKuecheLightstripDimmer.sendCommand(40)
kueche_timer_dimm = null
kueche_timer_off = null
}
}
else if (XiaomiBewegungsmelder1_MOTION.state == OFF) {
logInfo("Testing", "Bewegungsmelder Zeile 6")
if (DinnerZeit.state == ON){
logInfo("Testing", "Bewegungsmelder Zeile 6,5")
return;
}
else if (HueKuecheLightstripDimmer.state == 0) {
kueche_timer_dimm = null
kueche_timer_off = null
logInfo("Testing", "Bewegungsmelder Zeile 7")
return;
}
else if (AstroDayStatus.state == OFF && now.getHourOfDay < 23 && now.getHourOfDay > 6) {
logInfo("Testing", "Bewegungsmelder Zeile 8")
kueche_timer_dimm = createTimer(now.plusSeconds(30))[|
if (XiaomiBewegungsmelder1_MOTION.state == ON) {
logInfo("Testing", "Bewegungsmelder Zeile 9")
return;
}
logInfo("Testing", "Bewegungsmelder Zeile 10")
gKuecheHerdRechtsFarbtemperatur.sendCommand(100)
gKuecheHerdLinksFarbtemperatur.sendCommand(100)
gKuecheHerdLinksDimmer.sendCommand(20)
gKuecheHerdRechtsDimmer.sendCommand(20)
HueKuecheLightstripFarbtemperatur.sendCommand(100)
HueKuecheLightstripDimmer.sendCommand(30)
]
}
else if (AstroDayStatus.state == ON) {
logInfo("Testing", "Bewegungsmelder Zeile 11")
kueche_timer_dimm = createTimer(now.plusSeconds(10))[|
if (XiaomiBewegungsmelder1_MOTION.state == ON) {
return;
}
logInfo("Testing", "Bewegungsmelder Zeile 12")
gKuecheHerdRechtsFarbtemperatur.sendCommand(90)
gKuecheHerdLinksFarbtemperatur.sendCommand(90)
gKuecheHerdLinksDimmer.sendCommand(40)
gKuecheHerdRechtsDimmer.sendCommand(40)
HueKuecheLightstripFarbtemperatur.sendCommand(90)
HueKuecheLightstripDimmer.sendCommand(35)
]
kueche_timer_off = createTimer(now.plusSeconds(40))[|
if (XiaomiBewegungsmelder1_MOTION.state == ON) {
return;
}
logInfo("Testing", "Bewegungsmelder Zeile 13")
gKuecheHerdLinksDimmer.sendCommand(0)
gKuecheHerdRechtsDimmer.sendCommand(0)
HueKuecheLightstripDimmer.sendCommand(0)
]
}
else if (now.getHourOfDay > 23) {
logInfo("Testing", "Bewegungsmelder Zeile 14")
kueche_timer_dimm = createTimer(now.plusSeconds(10))[|
if (XiaomiBewegungsmelder1_MOTION.state == ON) {
return;
}
logInfo("Testing", "Bewegungsmelder Zeile 15")
gKuecheHerdRechtsFarbtemperatur.sendCommand(90)
gKuecheHerdLinksFarbtemperatur.sendCommand(90)
gKuecheHerdLinksDimmer.sendCommand(40)
gKuecheHerdRechtsDimmer.sendCommand(40)
HueKuecheLightstripFarbtemperatur.sendCommand(90)
HueKuecheLightstripDimmer.sendCommand(35)
]
kueche_timer_off = createTimer(now.plusSeconds(30))[|
if (XiaomiBewegungsmelder1_MOTION.state == ON) {
return;
}
logInfo("Testing", "Bewegungsmelder Zeile 16")
gKuecheHerdLinksDimmer.sendCommand(0)
gKuecheHerdRechtsDimmer.sendCommand(0)
HueKuecheLightstripDimmer.sendCommand(0)
]
}
else if (now.getHourOfDay < 6) {
logInfo("Testing", "Bewegungsmelder Zeile 17")
kueche_timer_dimm = createTimer(now.plusSeconds(10))[|
if (XiaomiBewegungsmelder1_MOTION.state == ON) {
return;
}
logInfo("Testing", "Bewegungsmelder Zeile 18")
gKuecheHerdRechtsFarbtemperatur.sendCommand(90)
gKuecheHerdLinksFarbtemperatur.sendCommand(90)
gKuecheHerdLinksDimmer.sendCommand(40)
gKuecheHerdRechtsDimmer.sendCommand(40)
HueKuecheLightstripFarbtemperatur.sendCommand(90)
HueKuecheLightstripDimmer.sendCommand(35)
]
kueche_timer_off = createTimer(now.plusSeconds(30))[|
if (XiaomiBewegungsmelder1_MOTION.state == ON) {
return;
}
logInfo("Testing", "Bewegungsmelder Zeile 19")
gKuecheHerdLinksDimmer.sendCommand(0)
gKuecheHerdRechtsDimmer.sendCommand(0)
HueKuecheLightstripDimmer.sendCommand(0)
]
}
}
end
- LOGS:
2018-10-22 08:25:07.792 [vent.ItemStateChangedEvent] - XiaomiBewegungsmelder1_LINKQUALI changed from 47 to 60
2018-10-22 08:25:07.855 [vent.ItemStateChangedEvent] - XiaomiBewegungsmelder1_MOTION changed from OFF to ON
==> /var/log/openhab2/openhab.log <==
2018-10-22 08:25:20.820 [INFO ] [lipse.smarthome.model.script.Testing] - Bewegungsmelder Zeile 1
2018-10-22 08:25:20.835 [INFO ] [lipse.smarthome.model.script.Testing] - Bewegungsmelder Zeile 2
2018-10-22 08:25:20.849 [INFO ] [lipse.smarthome.model.script.Testing] - Bewegungsmelder Zeile 3
==> /var/log/openhab2/events.log <==
2018-10-22 08:25:20.873 [ome.event.ItemCommandEvent] - Item 'gKuecheHerdLinksFarbtemperatur' received command 41
2018-10-22 08:25:20.886 [vent.ItemStateChangedEvent] - gKuecheHerdLinksFarbtemperatur changed from 87 to 41
2018-10-22 08:25:20.894 [ome.event.ItemCommandEvent] - Item 'gKuecheHerdRechtsFarbtemperatur' received command 41
2018-10-22 08:25:20.901 [vent.ItemStateChangedEvent] - gKuecheHerdRechtsFarbtemperatur changed from 87 to 41
2018-10-22 08:25:20.906 [ome.event.ItemCommandEvent] - Item 'HueKuecheLightstripFarbtemperatur' received command 41
2018-10-22 08:25:20.921 [ome.event.ItemCommandEvent] - Item 'gKuecheHerdLinksDimmer' received command 100
2018-10-22 08:25:20.925 [vent.ItemStateChangedEvent] - HueKuecheLightstripFarbtemperatur changed from 90 to 41
2018-10-22 08:25:20.928 [ome.event.ItemCommandEvent] - Item 'gKuecheHerdRechtsDimmer' received command 100
2018-10-22 08:25:20.932 [ome.event.ItemCommandEvent] - Item 'HueKuecheLightstripDimmer' received command 100
2018-10-22 08:25:20.943 [vent.ItemStateChangedEvent] - gKuecheHerdLinksDimmer changed from 0 to 100
2018-10-22 08:25:20.946 [vent.ItemStateChangedEvent] - gKuecheHerdRechtsDimmer changed from 0 to 100
2018-10-22 08:25:20.948 [vent.ItemStateChangedEvent] - HueKuecheLightstripDimmer changed from 0 to 100