-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Updates made to the Hubitat-ElkM1 code #1
Open
thecaptncode
wants to merge
69
commits into
ekimmagrann:master
Choose a base branch
from
thecaptncode:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…on panel events and tasks Added sync of Elk M1 modes to Location Modes: Disarmed, Armed Away, Night, Stay, Vacation synced to modes Home, Away, Night, Stay (if available and Home if not), Vacation (if available and Away if not), respectively. Added sync of hsmSetArm modes of disarm, armAway, armNight, ArmHome Retooled zone-device creation to always create a device of type Virtual Contact unless "motion" is in the description. Fixed issue that would create a lot of bogus devices when you connect to the panel with the M1 Touch Pro app Added auto zone-device capability detection to support virtual devices with the following capabilities: ContactSensor, MotionSensor, SmokeDetector, CarbonMonoxideDetector, WaterSensor, TamperAlert, AccelerationSensor, Beacon, PresenceSensor, RelaySwitch, ShockSensor, SleepSensor, SoundSensor, Switch, TouchSensor and Valve Changed registration of arm mode event to happen upon entry/exit timer expiration Fixed issue of extra arm mode events firing when the panel is armed Fixed status of EOL terminated zones Added ability to read task status from the panel and set Contact device to open temporarily. Tested use of the Elk C1M1 dual path communicator over local ethernet instead of using the M1XEP Gave Momentary device capability to tasks and outputs
…performance Added info logging when output or task status changes or Arm Mode changes Added switch capability to main Elk M1 driver Improved ArmStatus and AlarmState events to fire only when changed Adding missing AlarmStates Small tweaks to improve performance
Updated to version 0.1.26
You can now change the port on the main device page. You must click "Initialize" after you save preferences to take effect Changed info logging to only happen if Enable descriptionText logging is turned on the device Reenabled Request Zone Definition and Request Zone Status Added Request Output Status
…d bug fixes Added ability to handle a zone with a Temperature Probe attached to the main board. Automatically assigned when the zone's description has the word "Temperature" in it or zone device can be manually changed. Added the device type Keypad for temperature readings. Both devices are assigned the Virtual Temperature Sensor driver. This is an experimental feature. Since the panel does not volunteer temperature data, it must be requested either manually for all devices using the Request Temperature Data button on the main driver or by setting up a rule to periodically execute the RequestTemperatureData command. Added "ContactSensor" as a capability for HSM monitoring. The contact will open if a Burglar Alarm or Police Alarm is triggered. Changed the method of importing devices to greatly improve performance and reduce panel communication. Fixed an issue not deleting child devices when the main driver is uninstalled. Fixed an issue with the name when importing a device with the "Show On Keypad" flag set.
Added polling of device status once connected or reconnected to the panel. Added Enable debug logging and Enable descriptionText logging to the main device. Debug is no longer set for the driver from within the application. Info logging can now be turned on or off for the main device. Added zone, output and task reporting so child devices can register to be updated via the report command when another device status has changed. I am using this for a door control driver assigned to an output that needs to be aware of the state of the contact attached to the door.
…ne Definitions Added handling of Temperature Data automatically sent starting with M1 Ver. 4.2.8 Added info logging only of Zone Definitions Simplified thermostat code Simplified Output and Task logging and events Removed unneeded thermostat capability from this driver since the child thermostat driver has it
Also added humidity and hold and changed logging and events to only occur when state changes.
…Pro. Other small changes. Added import of lighting devices for use with new drivers. If lighting text has "dim" in it, it will be assigned the dimmer driver. Otherwise, it will be assigned the switch driver. Fixed issue with M1 Touch Pro App sync conflict that caused this driver to crash Fixed issue with thermostats not working Removed redundant output and task command buttons. The individual devices now have them. Renamed the Request xxx Status command buttons to Refresh xxx Status for accuracy Stopped zone statuses from writing info log when the status didn't change Added retrieval of Elk M1 Version after initialization
…sing Log Data. Added a telnet timeout feature to re-initialize device if the panel's IP Test message is not received when expected Added ArmMode attribute Rename ArmHome command to ArmStay Removed processing of any Log Data Update report due to not being reliable for real time results
Added setThermostatTemperature to thermostat Fixed bug with trouble code Changed thermostatHoldMode from true and false to yes and no
Added Counter and Custom value device types. Fixed long standing issue with checksums on Elk commands. 1% of the checksums were generating wrong causing those commands to quietly fail. Fixed incorrectly named command refreshSystemTroubleStatus. Renamed it to refreshTroubleStatus. Fixed errors with a keypad device that is a Virtual Temperature Probe.
…ting. Fixed an issue log data and troubles not always showing. Changed trouble attribute from true/false to on/off. Changed invalidUser attribute to show 6 digit user code or 12 digit access credentials for prox cards/iButton. Removed limits with zone, output and task reporting only able to report to one child device.
… with the Amazon Echo skill
… in the rules machine.
…tionText in event.
… with the Amazon Echo skill
…iver to here. Strongly typed commands.
…Elk M1 Driver Changed alarm attribute from on/off to detected/clear. Changed alarm, armState, armStatus, beep, chime, chimeMode and the Function key LED attributes to ENUM so the values can be selected in the rules engine. Changed Switch Capability to Lock Capability for Dashboard arming/disarming and for the Amazon Alexa skill. Renamed Stay mode to Home mode to align with Hubitat terminology. Added securityKeypad attribute for SecurityKeypad Capability of parent driver. Added armingIn attribute to show exit delay. Added missing invalidUser attribute. Added showTextOnKeypads command. Added zoneBypass command. Removed armMode attribute. Between securityKeypad and armStatus, it should be unnecessary.
Fixed a bug not properly managing integrated device subscriptions. Fixed long standing issue that caused the start of importing devices when you used the back button. Renamed Stay mode to Home mode to align with Hubitat terminology. Added Hub Location Mode integration. Added integration of main Elk device, no longer just child devices, to physical devices. Added Smart Refresh to refresh integrated devices before refreshing Elk child devices.
…tes, improved refresh and multiple fixes. Fixed issue with Zone Bypass not working. Fixed issue with arming while armed caused panel to disarm. Fixed issue with armState briefly showing "Armed Fully" during an exit delay. It comes from the Elk M1 this way so a work-around was put in place. Fixed issue with descriptionText not always having the device name in it. Fixed issue with the alarm attribute not always getting set. Fixed issue with showTextOnKeypad not showing a line of text if it was exactly 16 characters long. Changed alarm and trouble attributes from on/off to detected/clear. Changed alarm, armState, armStatus, beep, chime, chimeMode, trouble and the Function key LED attributes to ENUM so the values can be selected in the rules engine. Changed invalidUser event to show on parent Elk device regardless of keypad it was entered on just like lastUser. Changed Switch Capability to Lock Capability for Dashboard arming/disarming and for the Amazon Alexa skill. Improved armStatus, lastUser, lock and securityKeypad events descriptionText to contain user name. Renamed Stay mode to Home mode to align with Hubitat terminology. Moved Set Location Mode to Elk Application for full user control. Added SecurityKeypad Capability. Added getCodes, setCode and deleteCode commands for compatibility with Lock Code Manager. Added armingIn attribute to show exit delay. Added missing invalidUser attribute. Added ability to shut down connection to the Elk M1 by setting the keypad number to 0. Added smart refresh feature controlled from the application to refresh child devices in a more controlled way to address issues when reconnecting to the panel especially after the panel has been powered down and back up. Removed thermostat commands and moved them to the thermostat driver. Removed armMode attribute. Between securityKeypad and armStatus, it should be unnecessary. Removed TemperatureMeasurement capability. It was conflicting with the Amazon Echo skill. Now retrieves Fahrenheit or Celsius from the Elk instead of a user preference setting.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi,
I have made several changes to the this repository. If any of these are too difficult for you to compare or you do not agree with, please let me know and I will look back at my changes to see if I can reconcile it.
Some of the biggest changes are:
I changed the method of creating, naming and using Zone type devices. Instead of a device ID identifier of M for motion and C for contact, they are now both Z for zone. (old devices created with M or C still work) To handle this, the driver now examines the device capabilities to see if the device is motion, contact, switch, smoke detector, etc. I list the full set of devices capabilities it can handle at the bottom of this message. The driver now creates all zone devices as contact unless "Motion" (case insensitive) is in the zone description within the panel. Manually changing a device to/from Contact and Motion works fine since the driver will detect the device's capabilities.
Normally open and normally closed devices should all work fine as long as they are set up correctly, and not be inverted, in the panel.
I added a full sync of panel arm modes with the hub's location modes as well as the hsmSetArm modes.
I also added code to allow task changes on the panel to be reflected on the Hubitat device.
Please pull these changes into your repository if you are okay with them. If not, please let me know. I'd be happy to work with you.
Thanks so much for the incredible work you've done with this Hubitat/Elk integration. I'm quite impressed. This is something I have been wanting to set up or write for some time now.
Best Regards,
Greg
[email protected]
Full changes below:
Added sync of Elk M1 modes to Location Modes: Disarmed, Armed Away, Night, Stay, Vacation synced to modes Home, Away, Night,
Stay (if available and Home if not), Vacation (if available and Away if not), respectively.
Added sync of hsmSetArm modes of disarm, armAway, armNight, ArmHome
Retooled zone-device creation to always create a device of type Virtual Contact unless "motion" is in the description.
Fixed issue that would create a lot of bogus devices when you connect to the panel with the M1 Touch Pro app
Added auto zone-device capability detection to support virtual devices with the following capabilities:
ContactSensor, MotionSensor, SmokeDetector, CarbonMonoxideDetector, WaterSensor, TamperAlert, AccelerationSensor,
Beacon, PresenceSensor, RelaySwitch, ShockSensor, SleepSensor, SoundSensor, Switch, TouchSensor and Valve
Changed registration of arm mode event to happen upon entry/exit timer expiration
Fixed issue of extra arm mode events firing when the panel is armed
Fixed status of EOL terminated zones
Added ability to read task status from the panel and set Contact device to open temporarily.
Tested use of the Elk C1M1 dual path communicator over local ethernet instead of using the M1XEP
Gave Momentary device capability to tasks and outputs