This project uses the Ademco TPI provided by Eyez-On. It processes events and passes them to the SmartThings API.
This project started as a fork of HoneyAlarmServer, which in turn was based on AlarmServer for DSC panels - credit to them for the base code. However, it ended up evolving past the point where it made sense maintain a single codebase.
This is still beta software. SmartAlarmServer was tested with Envisalink 4 and Honeywell Vista 20p panel; HoneyAlarmServer was tested with an Envisalink 3 and Honeywell Vista 15p panel.
- Keypad, zone, and partition updates sent by the Envisalink as documented in the TPI are tracked by the Alarm Server and forwarded to SmartThings.
- SmartThings SmartApp integration lets user select which zones to track and creates SmartThings devices to represent alarm system state: contact sensors, motion sensors, and smoke sensors. These devices can be integrated individually or as a group with other SmartThings systems and SmartThings Smart Home Monitor.
- Because EnvisaLink zone status updates are buggy and inconsistent, we derive zone status from keypad updates which are sent by the Vista control panel and are much more reliable.
- Bug fixes to parsing of zone polling updates.
- Asynchronous posting of SmartThings updates so the main thread can continue listening to EnvisaLink.
- Full sensor state is transmitted with every update so SmartThings will not get out of sync if updates are dropped.
- The Web UI from AlarmServer and HoneyAlarmServer has been removed entirely.
- No way to arm/disarm the Vista panel remotely or trigger the siren. The idea is to use SmartThings Smart Home Monitor as the security system instead of the Vista panel alarm.
Please see alarmserver-example.cfg and rename to alarmserver.cfg and customize to requirements.
The SmartThings code lives in the "groovy" directory. All real functionality lives in the Ademco Connect SmartApp; the other files are device handlers which have their state managed by the SmartApp.
To install into SmartThings, create a SmartApp with the "ademco-connect.groovy", and create a device handler for each of the sensor types: door, keypad, motion, and smoke.
pipenv install twisted requests
pipenv run python3 alarmserver.py