redloro / smartthings

SmartThings home automation services, apps and devices
Apache License 2.0
116 stars 194 forks source link

Zone Tracking needed #6

Closed f34rdotcom closed 7 years ago

f34rdotcom commented 7 years ago

Just got a request for support here regarding this plugin wanted to offer some support from our team. We noticed that our Python API is not being used and as such the driver is missing a few things that should be easy to implement. We hope to someday see a fully supported Node API to complement the Python API we have now. If you know of any developers with alarms willing to contribute I have some AD2USB samples available for such a project.

Zone tracking is needed to detect zones when the AD2 is in Ademco mode. In DSC mode (beta firmware) all zones are expressed as EXP messages so all zone states can be tracked. In Ademco mode the first 8 zones are only accessible by sending a "" to the panel when a fault is detected and requesting a list of faulted zones. The zones are also expressed in a predictable pattern to allow for detection of Restored zones prior to receiving the entire zone list. Our Python API has this code clearly documented if you wish to review it or this commit I did that I believe is a solid implementation of the algorithm.

On a side note I am releasing our latest firmware soon that will fully support CONTACT ID messages from both Ademco and DSC panels including USER activity that is compliant with current consumer and in some cases commercial monitoring.

Best Sean M.

https://github.com/openhab/openhab1-addons/pull/4300

redloro commented 7 years ago

Thanks for the inquiry... what exactly does "Zone tracking is needed to detect zones when the AD2* is in Ademco mode"??

Scenario 1> AD2USB users with Ademco panels report seeing the following from the AD2USB when a contact/zone is opened:

[10010001100000003A--],008,[f70000ff1008001c28020000000000]," DISARMED CHIME Ready to Arm "
[00010001100000000A--],002,[f70000ff1002000028020000000000],"FAULT 02 FRONT DOOR GARAGE "

This is what I would consider normal operating behavior.

Scenario 2> Other users however report that the AD2USB reports the following when a contact/zone is opened:

[10010001100000003A--],008,[f70000ff1008001c28020000000000]," DISARMED CHIME Ready to Arm "
[00010001100000003A--],008,[f70000ff1008000c28020000000000]," DISARMED CHIME Hit * for faults"

Which requires that they press the * to begin receiving the actual zone messages.

Is there something specific about the configuration of the Ademco panel or the AD2USB which would allow it to report zone tracking information without having to press *?? Or is that a feature/limitation of the AD2USB when operating in Ademco mode?

Thanks.

f34rdotcom commented 7 years ago

The panel "should" never dump zone FAULT messages unless someone presses this is just how the Vista keypad works. It is not per say a limitation of the AD2 because the AD2 is a "virtual keypad emulator" so it does what a real keypad does. Some people run other devices that may send this "".

This fault REPORT list will repeat every 20, 30, 60 or more seconds depending on how many zones the panel has. During a repeat some zone's may disappear as they are restored. https://github.com/nutechsoftware/alarmdecoder/blob/master/alarmdecoder/decoder.py#L695

The algorithm to read this loop of zone faults to detect zone "restores" starts here. https://github.com/nutechsoftware/alarmdecoder/blob/master/alarmdecoder/zonetracking.py#L203

Also EXP messages if you get one is more responsive. In general on Ademco zones 1-8 are Zone track only and Zones on Expanders can be captured using EXP messages and is much better. This is just a limitation of the Vista alarm panel. on DSC all zones are expander messages and sending * does not do anything as a zone list like this does not exist on a DSC keypad. https://github.com/nutechsoftware/alarmdecoder/blob/master/alarmdecoder/zonetracking.py#L221

Here is the link to the protocol reference if you could please include in header. https://www.alarmdecoder.com/wiki/index.php/Protocol

redloro commented 7 years ago

I think we're missing something here; I have a Vista 20P and of all the users that I know that have a Honeywell panel (including mine), the zone fault is reported on the physical keypad as soon as the contact/zone is opened.... there is no report of press * etc unless there really is a panel fault.

As I said, not sure if this is a Honeywell/Ademco panel configuration thing or something with the AD2*... regardless I've pushed a fix which will dump the zone faults as needed.