Author Topic: Multiple Tripped Sensors  (Read 673 times)

Offline loumarjr

  • Newbie
  • *
  • Posts: 15
  • Karma: +0/-0
Multiple Tripped Sensors
« on: December 30, 2016, 11:51:31 am »
I have the EVL3 plugin installed and it works fine but when i open a door or window, several sensors will trip.  For example, I open a wireless sensor on a window and the fire zone, Carbon Monoxide zones, and two wired motion sensors will trip.

I wanted to turn on a light when i was in the family room via a motion detector but the opening of a door or window trips the motion detector zone.  However, the EVL is not reporting that the zone was tripped and is working normally.  The Vera is reporting the trip.  Most other wireless honeywell sensors report correctly.   Any ideas?

« Last Edit: December 31, 2016, 08:58:38 am by loumarjr »

Offline ziff73

  • Newbie
  • *
  • Posts: 3
  • Karma: +0/-0
Re: Multiple Tripped Sensors
« Reply #1 on: June 18, 2018, 08:40:07 pm »
Here's my setup:
Vera Plus
Honeywell Vista 20P, 37 zones mix of wired and wireless
EVL3 board
For a while (and maybe since installing), I've noticed that whenever zones above 32 were tripping, this would cause zones 1-? to also trip as well. For example when I opened an upstairs window, not only would this zone trip, but also cause the fire, front door, back door, etc. to also report tripped.
After a little tinkering with the LUA file in debug mode, I think I've solved this issue. I believe it had to deal with parsing the incoming hex code on the Zone State Change (%01) data stream.
My solution

In the processIncoming function
-Break the data into 2x numbers (mZoneData)
--"local mZoneData1 = tonumber(data:sub(11,12),10),8),6),16)"
--"local mZoneData2 = tonumber(data:sub(19,20),18),16),14),16)"
--This split the readings into zones 1-32 and 33-64. I'm not sure if this step was necessary however I did to help me debug and I just kept as is

-Amend the for loop
--Change from 1-64 to 1-32
--Change mZoneData reference to mZoneData1

-Create 2nd for loop from 33-64, put in below the above for loop
--Duplicate above for loop replacing with mZoneData2
--Change the zone reference in the If statement to ", math.pow(2,((zone - 32) - 1)) )"

In the bit_band function
-Change for loop from 1-16 to 1-32 (maybe just changing this to 64 would solve everything but I had already made the changes above and didn't want to re-break it)
For me, this seemed to isolate the zones in the ranges above 32. There?s probably a more elegant solution but I am not an expert at this stuff.
Good luck.