Elk M1 via M1XEP Development

YOU SIR ARE A GENIUS!!!!!!!! It worked!!! i just happened to get up in the middle of the night and try it and it worked!!!!!

Sweet! I will upload an update some point today. The biggest change in it will be auto importing zones from Elk M1.

Going forward I will work on some additional things but for the most part it does everything I need as of now. So if you have any additional features or functionality, let me know. In the meantime, I will wait for Bucko to give it a go and see if everything works for him.

That is great news! Now what do you think about importing Elk outputs as switches as well?

I think I could do that. So each output would have its own virtual switch? I am using virtual switches for the arm and disarm commands currently. I will put it on the list.

Thanks for that.

I have updated github with the following changes. If you previously added zones or devices you may want to uninstall and do a fresh install. Otherwise you may have some orphaned zones or devices from previous install. Sorry made some naming convention changes.

All files have been updated, so you will want to get the App, Elk Driver and then any other driver you want.

Thermostats Driver
Outputs Driver
Tasks Driver

New Features

  • Added support for manual inclusion of Elk M1 outputs and tasks
  • Added support for importing Elk M1 outputs, tasks and thermostats
  • Added better support for child devices (all communication goes through Elk M1 device)
  • Added support for importing Elk M1 zones
  • Added actuator capability to allow custom commands to work in dashboard and rule machine

I haven't been able to test everything but it seems to be working as planned. I haven't tested the manual device setup since I was mainly focused on the importing functions.

I am also considering adding a separate driver to handle arm and disarm commands. If I am not mistaken this would allow for easier setup of these commands on rule machine/dashboards.

Cheers
Mike

I remoted into my PC and installed your files.
Question- Elk's zones are id'd as 3 numbers. ie- 001,002 etc. I inputted zones the same way in your setup. Is this correct?

Problem- in my Elk, my zone expander (I have 2) my 1st zone is number 081. I cannot input this number in your app. I get zone value must be =< 64. Ideas?

BTW, my XEP port # is 2601, which I used in your setup at the start. I added all my main panel zones ok and a DNI (dcde584e-a50a-43c8-aa41-137533de7803_M_013) EXCEPT for 2 of the zones. What would this indicate?

Thanks, Jack

Is this with the newest files just uploaded today? You may have to hard code your port number into the driver code (line 93 of newest code). I am having issues with it coming through. I tried to manually add zone 081 and had no issues. When I manually add zones I use:

Name: Zone 081 - Kitchen Motion
Zone Number: 81
Type: Motion

Elk-M1-Driver-beta v0.1.15
Elk-M1-Application-beta v0.1.5

I uploaded about 2 hours ago (v 0.1.3)
I will replace all with your new (v 0.1.15) and try again.
Thanks

I got v 0.1.15 installed. Rebooted HE and got the app to import zones,outputs and tasks ok. Everything lists ok.
In the logs for Townhouse(the name I gave the devices) I do get a long list of the following errors, here is a few lines......

dev:18102019-03-11 06:29:52.758 am errorjava.lang.IllegalArgumentException: A device with the same device network ID exists, Please use a different DNI on line 789 (parse)

dev:18102019-03-11 06:29:52.654 am errorjava.lang.IllegalArgumentException: A device with the same device network ID exists, Please use a different DNI on line 789 (parse)

dev:18102019-03-11 06:29:52.528 am errorjava.lang.IllegalArgumentException: A device with the same device network ID exists, Please use a different DNI on line 789 (parse)

dev:18102019-03-11 06:29:52.424 am errorjava.lang.IllegalArgumentException: A device with the same device network ID exists, Please use a different DNI on line 789 (parse)

dev:18102019-03-11 06:29:52.309 am errorjava.lang.IllegalArgumentException: A device with the same device network ID exists, Please use a different DNI on line 789 (parse)

NOTE: In HE I did delete both the Elk app and driver, then did a HE reboot before I reinstalled them back to the HE.

I cannot actually test any devices as yet since I am out of the house until next week.

That sounds good. All those errors are not a big deal. The import script keeps going through all 208 zones. So it is saying you already have those device ids setup. These errors will only appear during device additions.

I forgot to mention that for it to assign the contact sensor virtual driver the device name has to include door or window. I will see if there is a better way to implement this but at this time that is what happens.

So any ZONE sensor only that is some sort of "contact" sensor must be named with door or window? Is this what you mean?

The import did skip some zones in my panel, and all the ones it did pick up, it labeled then all as Virtual Motion Sensors.
Even a Zone I have named BR1 window, it thinks it is a Virtual Motion Sensor. In fact it is just a door contact.

BTW, my whole system is hardwired only.

So it should be able to automatically recognize outputs, tasks and thermostats no problem. As for zones it will try to assign either a motion or contact virtual driver. If the zone contains the name 'Door' or 'Window' it will use the contact driver otherwise it defaults to motion. You say 'window', I wonder if it is case sensitive. If so that should be an easy fix. I am interested to see the ones it did skip.

Also, I have zones set to come in as a component device. This means they can't be deleted individually. I am not sure what the advantages are for being a component device. So if you want to fix a zone you have to remove the app and reinstall unfortunately. I am trying to figure out the best way to handle this.

Yes, the outputs and tasks came through fine.
The zones are what is a problem for me.

I stand corrected after checking. It did pick up ALL my zones fine. They are just all configured as Virtual Motion Sensor. Not a one is a contact sensor. Perhaps it is case sensitive.

Ok sorry about that! I can post an update to make it non case sensitive. Do you have any other contacts not named window or door?

Posted an update to github to fix a case sensitive issue with importing zones.

Elk-M1-Driver-beta v0.1.16

Yes I do. But I did just go into RP and change my smokes name by adding the word Door to the name, and it did now list my smokes as Virtual Contact sensor as you said.

So now I will go back to RP and go through my zones, adding Door to each for now. But keep in mind that while a sensor is either a contact or a motion, some contact sensors are neither. ie- water leak sensor, cam sensor

Yes, I have a water leak and co2 sensor that imported as motion but I guess contact would have been better. I will add them in as contact sensor then. So the list for contact would be:

Contact Sensors (Not case sensitive):
Door
Window

I am not so sure that these wouldn't be better off as motion sensors for now. With the motion driver you can make it 'inactive' automatically. Actually there are driver capabilities for some of these individual devices so I will work on using some more custom drivers in the future.

CO
Leak
Smoke
Heat
Freeze
Gas

Anything else?