You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
On my alarm panel (Vista 20SE) the status of hardwired(non-expander) zones can only be determined by parsing the alphanumeric messages that cycle through the list of faulted zones.
Normally, faulted zones cycle through from lowest to highest and then loop back again.
When a new fault is detected, that zone is immediately reported and then the loop starts back with the lowest zone again.
This can incorrectly cause faulted zones to be reported as ready. This error happens inside the ZoneTracker class in the _clear_zones() function.
The logic of clear zones is the following:
If the last_faulted_zone is less than the current zone: set to clear any zones between this zone and the last_faulted_zone.
If the last_faulted_zone is greater than the current zone: set to clear any zones that do not fall between this zone and the last_faulted_zone.
The logic is based on the assumption that the zone fault messages always loop in an incrementing order. Which isn't the case when a new zone faults.
When a new zone faults, a whole bunch of faulted zones can become "ready" that shouldn't.
Imagine the following scenario:
zones 1,3,7 are faulted
The keypad reports zone 1 faulted
Then zone 6 is newly faulted, the keypad reports this zone as faulted.
_clear_zones() then changes zone 3 to ready, which is wrong.
Is this only an issue for my or my panel?
I am happy to create a PR that fixes this if this isn't unique to me.
The text was updated successfully, but these errors were encountered:
This happens to me occasionally as well. Also related to this is probably the #46 bug I had reported months ago when you press the function keys. The parsing is pretty brittle.
On my alarm panel (Vista 20SE) the status of hardwired(non-expander) zones can only be determined by parsing the alphanumeric messages that cycle through the list of faulted zones.
This can incorrectly cause faulted zones to be reported as ready. This error happens inside the ZoneTracker class in the _clear_zones() function.
The logic of clear zones is the following:
The logic is based on the assumption that the zone fault messages always loop in an incrementing order. Which isn't the case when a new zone faults.
When a new zone faults, a whole bunch of faulted zones can become "ready" that shouldn't.
Imagine the following scenario:
Is this only an issue for my or my panel?
I am happy to create a PR that fixes this if this isn't unique to me.
The text was updated successfully, but these errors were encountered: