[RELEASE] Elk M1 Alarm Interface

Hi all, Ive been developing an alarm integration for other people (never tested by me as I dont even own an Elk!), however it is now at a stage where it should work well for most people to integrate with ST.

It currently:

  • Pulls zone/output names from the alarm
  • Send zone/output status (active/inactive or on/off) to ST
  • Send alarm status to ST (armed home/away/…).
  • Creates child devices for each sensor/output so that you can use them in other rules/automations
  • Controls the outputs so you can also automate these through ST

It is not impossible to add new features but I dont think I will have much time for it now, so releasing it as is.

You can interface with the alarm through:

  • Ethernet (with an XEP module) in which case a NodeMCU can connect to the Elk panel through your WiFi network.
  • Direct serial connection to the Elk. This works in the same way, but needs a serial converter and a Wemos in order to assist in voltage conversion, however requires a free RS232 port on your Elk panel. You can avoid purchasing an XEP module this way.

Full instructions on setup can be found on my github page linked below, and if you have any questions then let me know on this thread please! (I might be able to help, though as I said I dont even own the alarm myself so probably only help with code stuff)

Sadly as this project has evolved it has taken a huge amount more of my time than expected, so I am only able to sell devices for this automation if you want all the features such as Outputs (rather than by DIY-ing). I sell pre-programmed units for a small profit (given the many tens on hours spent developing this integration I feel this is a very fair price) on my Online Shop. I am able to ship worldwide - though for Elk it is probably mainly the USA! Also happy to provide some assistance in getting setup. After a few peoples requests I have included a link to donate and they would be hugely welcome to my beer fund :smiley: - here


I have now updated the instructions on my Github page to help give a few more details about how to connect to the Elk panel when you have a serial connection, rather than using the Ethernet connection through an XEP module.

Connected the Serial wemos version using an RS232 adapter. Tx to RX, RX to TX and GND to GND. Not getting past the “{“status”:“Now requesting zone names, please wait a minute before refreshing”}” . details page shows:

I have just sent you a firmware update link which should hopefully help get everything working quickly.

$10 I gave today. Read the whole thread in smartthings and wanted to say thank you. Elk M1 and Smartthings integration is something we need.

Hi @bryan_harper Much appreciated. We’re very close now, its just the last steps missing as they arent tested fully yet!

Currently the Wemos/NodeMCU links to the alarm, pulls zone names and status, plus can control outputs. Its just ensuring that everything generates correctly on the SmartThings side (which it should do, but again not fully tested). The Ethernet integration is most reliable, but have tested the Serial integration on my computer only, not with an actual alarm.

Hey Chris,

I’m connecting via the Ethernet interface, but it looks like I’m having the same problem as amphipri0n.

Could you send me an updated firmware file as well?


Thank you!

Got everything working! Thank you!

Although…oddly, everything (including door contact sensors) is defined as a motion detector. Is there a way to change it?

Strangely I’ve been responding to SmartThings forums on my email but they haven’t been posting to the forum, will try and copy in my responses below.

Currently as there seems to be no way of getting sensor information out of the Elk panel (I.e. It doesn’t know if a sensor is motion or contract), there is currently no way for this integration to know.

I have tried to code it so that a sensor is either always either active or inactive, and that means motion/open=active and still/closed=inactive. That should allow you to achieve everything you need in webcore (or other integrations).

Does that make sense and work for you? Otherwise I can have another think about possible solutions!

@JSchmidty - yes I’ll send you a link to the serial version.

I need to send the people who’ve purchased a device a copy of the latest firmware, and will do that as soon as I’ve had it confirmed that I don’t need to tweak anything else in the code (to save people updating multiple times)

That makes sense. For some reason, my alarm bridge isn’t detecting some of the changes in zones. For example, it has not detected any activity on one particular door. Hopefully the new firmware will resolve it.

My zone states do not ever update either but figured it was just my system.

Can you try connecting the NodeMCU to your computer USB and then open a serial port monitor to confirm that the Node is picking up the messages from the Elk correctly. After that we can check if SmartThings live logging shows any events when zones are triggered, or if it is just when the alarm changes state.

Hello cjcharles,

I’m trying to get back to my ELK Alarm Bridge. What is the latest version of the firmware?



Please email me at ulexpert@gmail.com when you are back from your honeymoon. Would like to purchase the firmware and apply it to my Elk system

Hi all,
Im almost back home now so can start looking at this again and finally get everybody up and running. If people are having a problem please can you drop me a message so I can work on getting the last couple of features live.

Anyone got this working seamlessly?

@ cjcharles

  • Correct me if I’m wrong, it appears to me that using your customized ESP8266 is a must for this integration to work. Even though I donated for the project, I had gotten an ESP8266 from Amazon hoping to cut short the shipping time from the UK. I went as far as getting the com port but I could not get the wireless access point created and hence could not proceed.
    I admit I have limited technical reserve in this regard, and I may be doing something wrong but I followed all the leads I could find.
    Could you confirm if my suspicion is correct? In that case, I will just have to order one and wait?
    Thank you for your tremendous effort.

Just dropped you an email, think most people who have bought one now have it fully working, and I’ve got some potential for further changes/improvements in the near future (subject to my time limitations). Will let you know the best and quickest way of getting you set up!

Thanks Charles, I finally got this working.
One thing I will like to do is to include the arming status in my automation. For instance, to create an automation where once the alarm is armed-away, all inside lights are turned off. I thought this will be easy to do but it turned out not to be the case.
Is there anyone out there who has done something similar in the past, or who has an idea how to do this?