forked from ekimmagrann/hubitat-elkm1
-
Notifications
You must be signed in to change notification settings - Fork 3
Home
thecaptncode edited this page Sep 11, 2020
·
7 revisions
The app and drivers in this repository are for use integrating an Elk M1 security system with the Hubitat Elevation home automation hub. They are a branch of work started by @ekimmagrann.
- 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.
- Imports Zones, Outputs, Tasks, Lighting (switches and dimmers), Thermostats, Keypads, Custom, Counter values and Text To Speech as devices.
- Keypad devices will import using the Elk M1 Driver Keypad driver if it is installed or the Virtual Temperature Sensor driver if it is not.
- The names of the devices are pulled from the Elk M1's device descriptions during import.
- Drivers are available for Tamper 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, TemperatureMeasurement, TouchSensor and Valve
- A zone with a Temperature Probe attached to it can be imported and read using the Hubitat Virtual Temperature Sensor driver.
- The driver on any zone child device can be changed to one of the above and it will automatically adapt to it.
- Updates to all device statuses in the Elk M1 except Custom and Counter values are typically reflected in Hubitat Elevation within a second.
- Updates to Tasks, Outputs, Thermostats, Lighting Custom and Counter device statuses in Hubitat Elevation are typically reflected in the Elk M1 within a second.
- All features of the below Keypad Device except TemperatureMeasurement are available on the main Elk M1 device by setting a keypad number under Preferences. This makes the import of additional keypad devices totally optional. The invalidUser and lastUser events are raised on the main device regardless of the originating keypad.
- Lock integration can be set to lock or unlock locks when the panel is armed or disarmed.
- Can optionally change the hub's location mode to a mode of your choice when the panel Arm Mode is changed (disarmed, away, night, stay, vacation) and the exit delay expires.
- HSM Integration optionally can be used to change the HSM Arm Mode when the panel Arm Mode is changed and/or change the Elk M1 Arm Mode when the HSM Arm Mode changes.
- Speech and notification integration optionally can be used to send arming, armed, entry delay, disarmed and alarm notifications to speech and/or notification devices.
- Integration with physical devices allows you to create virtual devices on the Elk M1 such as Thermostat, Lighting or Button devices and integrate them with physical devices on HE. This gives control of physical devices attached to HE directly from the panel and allows the panel to see the device status.
- Additional integration can be done with Security Keypad and Lock devices on the Hubitat to Arm and Disarm the Elk M1.
- Smart Refresh setting in integration will cause the physical devices to be refreshed before any child devices are refreshed to prevent unwanted physical device changes during a refresh or Elk M1 power up.
- Supports zones with normally open, normally closed and EOL termination automatically.
- Speak word/phrase commands are available using the Elk word or phrase number. The optional Text to Speech driver utilizes these commands for words in the Elk M1's vocabulary and will automatically string them together in a sentence.
- Appears as a Security Keypad to Hubitat. This allows the Lock Code Manager to add, change and delete users on the panel if a Master Code is supplied as the User Code on the main Elk device.
- getCodes, setCode and deleteCode commands allow for managing User Codes directly from the Elk M1 device edit page. Unfortunately, user names can not be changed in the panel from external devices but the driver will keep track of any new names for logging and Lock Code Manager purposes. User Codes can not be retrieved from the panel either, but they will be stored in the driver encrypted if added or changed from Hubitat.
- Zone trigger command creates a virtual momentary open condition on EOL hardwired zones configured in the Elk M1 with most zone types. Unfortunately, the panel does not seem to send these conditions to the Hubitat Elevation.
- Request Zone Voltage command raises the zone's current (get it) voltage as an event on the zone device.
- Zone Status (trouble/bypassed) events are raised on the zone device.
- Warning logs are written on zone devices when a zone is in alarm.
- Alarm and (system) trouble events are raised when they occur in the panel.
- sendEmail events are raised when an email is sent by the panel.
- armStatus, lastUser, lock and securityKeypad events will have the user name in the description text.
- Settings control what arming or disarming occurs, if any, when the lock assigned to this device is locked or unlocked.
- The "Enable event logging" setting on the main Elk device controls whether or not device status changes write info entries to the HE log. It can be set to none, all, system & keypad or system & area.
- The "Enable descriptionText logging" setting on the individual devices control whether or not device status changes write info entries to the HE log.
- Warnings are written to the HE log when alarm reporting, Elk RP connections and certain other events occur such as a low battery.
- Attempts to reconnect to the Elk M1 if disconnected and will refresh all device statuses upon success.
- Timeout setting controls how long the driver waits for the Ethernet Test message before it tries to reconnect. This message is sent from the panel every 30 seconds and if this timeout expires, the driver forces a reconnect.
- Will refresh status if Elk RP or keypad programming occurs.
- Fahrenheit or Celsius setting is read from the panel and is used on all Temperature Measurements.
- 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.
- Device area is derived from the area the keypad is assigned to within the Elk M1.
- Arm Home, Arm Away, Arm Night, Arm Vacation and Disarm commands are supported if a User Code is assigned. A bogus User Code can be supplied if those features are not desired from within Hubitat Elevation.
- Push command implemented using PushableButton capability to simulate Function 1 - 6 key press.
- Function key LED status and function key descriptions are displayed.
- Chime command changes the chime mode of the keypad.
- Area Alarm clear and detected events are raised to signify if the area is in alarm.
- Area Alarm States such as "No Active Alarm", "Entrance Delay is Active", "Burglar Alarm" and "Fire Alarm" are raised as events when the area is in alarm.
- Area Arm States such as "Not Ready to Arm", "Ready to Arm", "Ready to Arm, "Armed with Exit Timer working", "Armed Fully", "Forced Armed" and "Armed with a Bypass" are raised as events.
- Area Arm Status such as "Arming Away", "Arming Home", "Arming Night", "Arming Vacation" are raised as events when the area is armed but an exit delay is in effect.
- Area Arm Status such as "Armed Away", "Armed Home", "Armed Night", "Armed Vacation" and "Disarmed" are raised as events when the area is successfully armed/disarmed.
- Area arming in events shows the duration if an exit delay is in effect.
- Beep event shows if keypads in the area are beeping.
- Invalid User event is raised when an invalid user code is entered on a keypad. This could be used to trigger rules based on a specific invalid user code being entered.
- Last User event is raised with the user number who last triggered an armed or disarmed event at the keypad.
- Implements the ContactSensor capability that shows "open" when the area is in an alarm state for HSM monitoring or viewing on the dashboard.
- Implements the Lock capability which can be changed to "locked" to optionally arm the area to the mode of your choice and "unlocked" to optionally disarm from the dashboard, rule, Google/Amazon Alexa. Lock can be read for HSM monitoring or triggering of rules. It will be set "unlocked" when the panel is disarmed, "unlocked with timeout" during an exit delay and "locked" when the area is armed.
- TemperatureMeasurement capability exists for keypads that have an on board temperature sensor.
- Pushed event gets raised when certain keypad keys are pressed such as F-keys, * (clear), stay, exit or chime.
- DescriptionText logging can be set to control what events also write info log entries. The options are none, all (area, keypad), area and keypad.
- Show Text On Keypads command will display a message on all area keypads.
- Zone bypass command allows you to bypass a zone before arming.