I’m struggling with some sensors (cheap rf 433 Mhz PIRs and door sensors). When triggered they send a burst of signals (can be 4 signals within a second) and they seem to be activating my rules “in parallel”. The items are coming from an mqtt broker which receives them from a NinjaBlock (beagle bone with arduino RF cape). Here’s what the logs pick-up:
2015-10-07 19:42:12.911 [INFO ] [runtime.busevents ] - Front_door_sensor state updated to OPEN
2015-10-07 19:42:15.973 [INFO ] [runtime.busevents ] - Front_door_sensor state updated to OPEN
2015-10-07 19:42:16.145 [INFO ] [runtime.busevents ] - Front_door_sensor state updated to OPEN
2015-10-07 19:42:16.445 [INFO ] [runtime.busevents ] - Front_door_sensor state updated to OPEN
2015-10-07 19:42:16.645 [INFO ] [runtime.busevents ] - Front_door_sensor state updated to OPEN
2015-10-07 19:42:16.736 [INFO ] [runtime.busevents ] - Front_door_sensor state updated to OPEN
2015-10-07 19:42:18.149 [INFO ] [rg.openhab.model.script.rules] - Front door open!!
2015-10-07 19:42:31.649 [INFO ] [rg.openhab.model.script.rules] - Front door open!!
2015-10-07 19:42:53.769 [INFO ] [rg.openhab.model.script.rules] - Front door open!!
2015-10-07 19:43:24.252 [INFO ] [rg.openhab.model.script.rules] - Front door open!!
2015-10-07 19:43:36.750 [INFO ] [rg.openhab.model.script.rules] - Front door open!!
2015-10-07 19:43:50.451 [INFO ] [rg.openhab.model.script.rules] - Front door open!!
As you can see this is all happening very quickly and the door was opened once. This sensor only triggers on opening and does not report state. When closed no signal is sent.
I’ve tried several things for the rules, like defining a boolean for the state of the door, or locking the thread, but I’m still getting up to 10 emails per door opening…
Here’s one version of the rules I’ve tried:
rule “send email when front door open”
when
Item Front_door_sensor received update
then
lock.lock()
try{
logInfo(“rules”, “Front door open!!”)
sendMail(“my.email.address”, “someSubject”, “emailBodyText”, “image url“)
front_door_timer = createTimer(now.plusSeconds(30)) [|
// wait so that a burst of triggers only sends one email
]
}finally{
lock.unlock()
}
end
The item definition is:
Contact Front_door_sensor "Front door" (groundFloor) {
mqtt="<[mosquitto:ninjaCape/input/11/0:state:OPEN:010101010000111101010100]"
}
I’ve also set debug level on the logs for mqtt, here’s the output for an door opening event:
2015-10-07 23:30:44.732 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '000000000000010101010001' does not apply.
2015-10-07 23:30:44.734 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '000000000000010101010100' does not apply.
2015-10-07 23:30:44.735 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '010001010101010101010101' does not apply.
2015-10-07 23:30:44.737 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '010101010101010100010101' does not apply.
2015-10-07 23:30:44.739 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '010001111101010101010000' does not apply.
2015-10-07 23:30:44.741 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '000000110011000000000000' does not apply.
2015-10-07 23:30:44.902 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '000000000000010101010001' does not apply.
2015-10-07 23:30:44.903 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '000000000000010101010100' does not apply.
2015-10-07 23:30:44.905 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '010001010101010101010101' does not apply.
2015-10-07 23:30:44.906 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '010101010101010100010101' does not apply.
2015-10-07 23:30:44.909 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '010001111101010101010000' does not apply.
2015-10-07 23:30:44.910 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '000000110011000000000000' does not apply.
2015-10-07 23:30:45.132 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '000000000000010101010001' does not apply.
2015-10-07 23:30:45.134 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '000000000000010101010100' does not apply.
2015-10-07 23:30:45.135 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '010001010101010101010101' does not apply.
2015-10-07 23:30:45.137 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '010101010101010100010101' does not apply.
2015-10-07 23:30:45.139 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '010001111101010101010000' does not apply.
2015-10-07 23:30:45.140 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '000000110011000000000000' does not apply.
2015-10-07 23:30:45.261 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '000000000000010101010001' does not apply.
2015-10-07 23:30:45.263 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '000000000000010101010100' does not apply.
2015-10-07 23:30:45.264 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '010001010101010101010101' does not apply.
2015-10-07 23:30:45.266 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '010101010101010100010101' does not apply.
2015-10-07 23:30:45.268 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '010001111101010101010000' does not apply.
2015-10-07 23:30:45.270 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '000000110011000000000000' does not apply.
2015-10-07 23:30:45.441 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '000000000000010101010001' does not apply.
2015-10-07 23:30:45.443 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '000000000000010101010100' does not apply.
2015-10-07 23:30:45.445 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '010001010101010101010101' does not apply.
2015-10-07 23:30:45.446 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '010101010101010100010101' does not apply.
2015-10-07 23:30:45.448 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '010001111101010101010000' does not apply.
2015-10-07 23:30:45.450 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '000000110011000000000000' does not apply.
2015-10-07 23:30:45.613 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '000000000000010101010001' does not apply.
2015-10-07 23:30:45.614 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '000000000000010101010100' does not apply.
2015-10-07 23:30:45.615 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '010001010101010101010101' does not apply.
2015-10-07 23:30:45.617 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '010101010101010100010101' does not apply.
2015-10-07 23:30:45.619 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '010001111101010101010000' does not apply.
2015-10-07 23:30:45.620 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010101010000111101010100' because Message Filter '000000110011000000000000' does not apply.
2015-10-07 23:30:52.852 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '000000000000010101010001' does not apply.
2015-10-07 23:30:52.853 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '000000000000010101010100' does not apply.
2015-10-07 23:30:52.855 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '010101010101010100010101' does not apply.
2015-10-07 23:30:52.857 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '010101010000111101010100' does not apply.
2015-10-07 23:30:52.858 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '010001111101010101010000' does not apply.
2015-10-07 23:30:52.859 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '000000110011000000000000' does not apply.
2015-10-07 23:30:53.028 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '000000000000010101010001' does not apply.
2015-10-07 23:30:53.030 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '000000000000010101010100' does not apply.
2015-10-07 23:30:53.112 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '010101010101010100010101' does not apply.
2015-10-07 23:30:53.114 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '010101010000111101010100' does not apply.
2015-10-07 23:30:53.115 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '010001111101010101010000' does not apply.
2015-10-07 23:30:53.116 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '000000110011000000000000' does not apply.
2015-10-07 23:30:53.318 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '000000000000010101010001' does not apply.
2015-10-07 23:30:53.320 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '000000000000010101010100' does not apply.
2015-10-07 23:30:53.412 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '010101010101010100010101' does not apply.
2015-10-07 23:30:53.414 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '010101010000111101010100' does not apply.
2015-10-07 23:30:53.415 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '010001111101010101010000' does not apply.
2015-10-07 23:30:53.416 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '000000110011000000000000' does not apply.
2015-10-07 23:30:53.435 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '000000000000010101010001' does not apply.
2015-10-07 23:30:53.436 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '000000000000010101010100' does not apply.
2015-10-07 23:30:53.438 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '010101010101010100010101' does not apply.
2015-10-07 23:30:53.440 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '010101010000111101010100' does not apply.
2015-10-07 23:30:53.441 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '010001111101010101010000' does not apply.
2015-10-07 23:30:53.493 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '000000110011000000000000' does not apply.
2015-10-07 23:30:57.181 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '000000000000010101010001' does not apply.
2015-10-07 23:30:57.242 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '000000000000010101010100' does not apply.
2015-10-07 23:30:57.263 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '010101010101010100010101' does not apply.
2015-10-07 23:30:57.265 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '010101010000111101010100' does not apply.
2015-10-07 23:30:57.266 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '010001111101010101010000' does not apply.
2015-10-07 23:30:57.267 [DEBUG] [.o.b.m.i.MqttMessageSubscriber] - Skipped message '010001010101010101010101' because Message Filter '000000110011000000000000' does not apply.
Any help is greatly appreciated!