Elk M1 via M1XEP Development


So I am looking for some help on how to go about sharing and further developing my Elk M1 integration.

I was looking for a way to communicate with my Elk M1 with my current equipment (M1XEP). I am not a developer nor do I have a github account. Thanks to reading Doug Beard's Envisalink setup and some other non hubitat integrations I have made decent progress.

Which leads me to now. What are my next steps? Should I share what I have so far? If so how (do I need github)? My setup for hubitat consist of installing a user app and driver.

For me personally, I have met most of my immediate necessities. So I would be working to add more features and cleaning up perhaps poorly written code.

Thanks for any feedback!


Hi MIke,
I have been struggling with this myself for several months. I also am not a coder, but paid a person who did all this with ST. He agreed to port over to HE for me, but after paying him, he has disappeared.
But before he did, we made good progress. Using a NodeMcu ESP8266 interface, I got Elk dumping all zones and outputs, also arm/disarm.
Then he made a bridge driver to talk to the ESP8266. At this point HE can connect to the 8266 and create child devices for zones and inputs. All good except HE cannot see or update zone or output status, so it is not doing me much good. Something wrong with the parsing between HE and the 8266.
I very much need this working as well since many of my Elk devices are needed to control occupancy lighting and outputs for various switch controls.
I hope to see this working and support any efforts to make this happen.


Hey Jack

Do you have the Elk M1XEP (Ethernet Module)?



Yes. That is what connects to the ESP8266 via wifi.


Ok. The code I have is working pretty well in the limited time that I have tested it.

Here is what I have so far:

Current Features
Receive event messages
Map indivdual zones and thermostats
Receive zone change status
Thermostat support (data receipt only)
Arm and disarm from the device page
Activate task by task number

Future Releases
Import Zone data from Elk
Arm and Disarm from dashboard (this is probaly already possible)
Controls for thermostat 1 (mulitple)
Activate elk task by name (via dashboard button)
Output support
Lighting support (this is low priority for me since HE is handling my Zwave lights)

Lock integration not tested
Notifications not tested


So you have done all this via an HE app? Does it create child devices for each Elk device or what? You have this whereby HE is talking to Elk via the Elk login?
Sounds like you really got something going! Outputs are also criticle for me. Do you want me to help beta test for you?
Would you like me to send you my Alarm bridge app that connects with my ESP 8266? Perhaps some code there can help you out as well.


I am going on a work trip for a week. I can send you what I have and you can see what works and what doesn't or you can wait til it is more polished.


If you dont need any beta help, I can wait.


I set up a github project but I marked it private, now I can't figure out how to make it public.


Here you can give it a go. Just remember that some things aren't yet supported even though they show available. I am currently working on Thermostat support but will probably be limited to 1 thermostat at first.

Elk M1 Integration via M1XEP - Beta

Let me know if you run into any issues.


Great, thank you.
I am out of the country until mid March. Then I will give it a go.


Thank you soooo much!! if you need a tester, i am happy to help!


Let me know if the links I provided work for you. I am traveling home from a trip so might have some time to work on things this week.


The links worked great. I installed both the driver and the app without any problems. I could not get the arm/disarm to work from the device page, but i did see that the audit log is receiving event messages!!! I'm not a coder, but would love to help with any testing if you needed.


The arm disarm should work from device page. Yiu may need a 6 digit code so put leading zeroes. I will check though for sure.


I changed it to 6 digits, and i dont know if that did anything. However i did notice the following error
groovy.lang.MissingMethodException: No signature of method: user_driver_belk_Elk_M1_Driver___Beta_271.ArmNightInstant() is applicable for argument types: () values: []
Possible solutions: ArmNightInstance(), ArmStayInstant() (ArmNightInstant)

any thoughts?


Are you using port 2101 in Elk Rp? And make sure Elk Rp is disconnected!


Also, clear your log then click on Initialize under device page. You should see a line like this in the log.

app:3682019-03-02 04:42:48.754 pm debugElk M1 Module: Connection Driver: Telnet connection to Elk M1 established


Yes I am on port 2101 and elkrp is disconnected. I noticed only 3 of the buttons will create a log entry (Arm night instant, Task Activation, and Request Thermostat Data).

When i clear the log, and then hit initialize, it does not create a log entry


Hey try and pull down the latest codes from my github. I have changed quite a few things. This way we are both on the same version and maybe I can help with issues better this way. If your using thermostats you will need to also pull the seperate driver for this. All of the buttons should create a line in your log if you have debugging checked in the Elk M1 App.

I am trying to work on importing zones from the Elk M1 but not sure how long this may take. So I am manually creating some of my zones in the app.

Let me know how this goes. I am not even entirely sure how to use github but you should be able to copy the codes from the original links.

app v.0.1.3
driver v0.1.13
thermostat v0.1.3