In February 2019 @ekimmagrann posted his Elk M1 integration for Hubitat Elevation that I know others are currently using. He made great strides bringing the two platforms together. For the past month or so I have been maturing his work so that it fits mine and hopefully other Elk owner's needs better. Available on GitHub is my branch of his work. Here are the features the two of us have brought to this version:
- Runs locally and fully "on box" for minimal latency and requires no additional hardware.
- Works with an Elk M1 connected to the local network using an Elk M1XEP Ethernet Expander or C1M1 Dual Path Communicator.
- Arm Stay, Arm Away, Arm Night, Arm Vacation and Disarm commands for Area 1 are supported if a User Code is assigned.
- Imports Zones, Tasks, Outputs, Thermostats, Lighting (switches and dimmers) and Keypads (for temperature readings only) as devices.
- The names of the devices are pulled from the Elk M1's device descriptions during import.
- Drivers are available for Temperature probes, Motion, Tamper, Smoke, Carbon Monoxide and Water Detectors attached to a zone and many built in or user created virtual drivers can be used with the following capabilities:
ContactSensor, MotionSensor, SmokeDetector, CarbonMonoxideDetector, WaterSensor, TamperAlert, AccelerationSensor,
Beacon, PresenceSensor, RelaySwitch, ShockSensor, SleepSensor, SoundSensor, Switch, TouchSensor and Valve
- The drivers on zone child devices can be changed to one of the above and it will automatically adapt to it.
- Updates to all device statuses in the Elk M1 are typically reflected in Hubitat Elevation within a second.
- Updates to Tasks, Outputs, Thermostats and Lighting device statuses in Hubitat Elevation are typically reflected in the Elk M1 within a second.
- Alarm State (no alarm, burglar alarm, fire alarm, etc.), Arm State (not ready to arm, ready to arm, armed fully, etc.) and Arm Status (disarmed, armed away, armed home, etc.) is available for Area 1.
- Last User is available with the user number who last triggered an armed or disarmed event.
- Lock integration can be set to lock or unlock locks when the Elk M1 is armed or disarmed.
- Implements the ContactSensor capability that shows "open" when the panel is in an alarm state for HSM monitoring or viewing on the dashboard.
- Implements the Switch capability which can be changed to "on" to arm the panel away and "off" to disarm on the dashboard or can be read for HSM monitoring.
- Changes HSM Arm Mode and the hub's location mode when the Elk M1 Arm Mode is changed (disarmed, away, night, stay, vacation) and the exit delay expires.
- Supports zones with normally open, normally closed and EOL termination automatically.
- The "Enable descriptionText logging" setting on the individual devices control whether or not device status changes write info entries to the HE log.
- Attempts to reconnect to the Elk M1 if disconnected and will refresh all device statuses upon success.
- Offers zone, output and task reporting to custom drivers so child devices can register to be updated via the report command when another device status has changed.
I am using this for a custom door control driver (available) assigned to an output that needs to be aware of the state of the contact attached to the door. Yes, I can click the tile on the dashboard and it will open or close my garage door and the zone status is reflected.
Instructions are in the GitHub readme.
If you are currently using Mike's version of the app and drivers, you simply need to replace his app and all drivers with the new ones and initialize the Elk device. No devices should need to be removed but new ones can then be imported.
The latest features, updates and documentation (when I get around to it) can be found here.
The latest code can be found on GitHub.