[OBSOLETE] Convert Your Wired Alarm System into a SmartThings Smart Home Monitor System for Under $25 with NodeMCU ESP8266 (2017)

UPDATE August 21, 2017: Thanks to overwhelming support from this community, this project has evolved and we’ve formed a company behind it called Konnected.

Konnected sells DIY Kits to convert your home’s wired alarm system into a SmartThings smart home security system. The open source project on Github is still available for those who want to use their own ESP8266 development board. We also now have complete documentation and step-by-step how-to articles to wire and configure your alarm system using the Konnected kits.

In only a few months since launch we’ve had hundreds of SmartThings community members successfully convert their wired alarm systems into SmartThings. Thank you all for your incredible feedback and support of this project!

Original post below:

I’m proud to announce the latest update (v1.5) to my NodeMCU ESP8266 SmartThings integration for connecting a wired alarm system (DSC / Honeywell / etc) to SmartThings. Yesterday I added the ability to connect the alarm system siren, making it now a complete solution for replacing a traditional keypad-based alarm system with SmartThings and Smart Home Monitor. The best part about it is you can do this for less than $25 with electronics easily available online, and my open-source code: GitHub - heythisisnate/nodemcu-smartthings: Connect wired contact sensors and/or motion sensors to SmartThings using a NodeMCU ESP8266

I previously shared an early version of this project in January, and thanks to this community’s feedback and encouragement, I’ve been continuously improving it.

Features and Highlights

  1. Use existing door/window contact sensors, motion sensors, and smoke detectors that are already wired in your house.
  2. Connect your wired AC or DC powered siren, strobe or alarm signal using an inexpensive relay.
  3. Fully compatible with Smart Home Monitor, the security app built in to the SmartThings mobile application.
  4. One piece of hardware to buy: a NodeMCU ESP8266 development board. It’s less than $10 and can easily fit inside your alarm system panel cabinet.
  5. The device uses your WiFi internet connection to communicate to SmartThings over a secured (HTTPS) API whenever the state of one of your sensors changes.
  6. The siren/strobe is triggered by a LAN message from the SmartThings hub.
  7. Never type in a stupid code to arm/disarm your alarm again, use the SmartThings app to automatically arm the system when you leave and disarm it when you come home.
  8. Monitor each door and window individually in SmartThings. No more concept of “zones” is necessary.
  9. Because the device communicates to SmartThings API directly, it doesn’t need to be on the same LAN or within range of your Hub to monitor a contact or motion sensor. You can also use this to monitor sensors in a remote location.
  10. Device can be powered by DC power from your alarm system panel.
  11. Simple and minimal amount of code. The project consists of:
  • Device Handlers for Contact Sensors, Motion Sensors, Smoke Detectors and a Siren/Strobe/Alarm
  • A SmartApp for receiving messages from the SmartThings API
  • Only a few hundred lines of lua code for loading onto the NodeMCU ESP8266
  1. Based on free, open-source software and technology.
  2. Does not require any networking configuration like static IP or port forwarding.
  3. Step-by-step setup instructions are on Github

Photos & Screenshots

Installation and How-To

Detailed setup instructions and a product buying guide is all on my Github project page:

I’m updating this frequently as I hear your feedback.


Can I still use my alarm panel system in the same way?
No, not really. This project is designed to replace the brains of your alarm system with SmartThings. You are using your existing contact sensors, motion sensors, smoke detectors siren, but not the keypad and panel controls. SmartThings Smart Home Monitor does a good job of arming/disarming the system and triggering alerts and actions when something happens.

How many sensors or “zones” can it support?
The NodeMCU ESP8266 has 6 or 7 GPIO pins that you can use reliably for digital input and output. You need one pin per sensor, plus one to control a siren. If you have more than 6 devices to connect, you can buy multiple NodeMCU ESP8266 boards, each monitoring a portion of them. So there’s no real limit to the number of sensors you can connect. The concept of zones is irrelevant because you can monitor each individual sensor in SmartThings and have as many of them as you want.

Do I have to know how to code to set this up?
No, you just need to be able to copy/paste some code, follow some setup steps, and modify some configuration variables. It’s pretty well documented on my Github project page.

New: Buy one of my pre-loaded DIY kits and the software is already installed. You can set it up with just your web browser.

I’m happy to hear from people when they try this at home, so please do share your experience. I’m happy to answer any questions or try to solve any problems you may have. Thanks for reading!


Thanks for the continued updates!
Are they any benefits to update if I don’t use a siren? Everything is running fine for me!

If I decide to update, I assume I wouldn’t have to upload the “alarm.lua” or create the the alarm device handler.

Lastly, can I ONLY update the “cloud-sensor” smartapp since thats simple compared to flashing the firmware and re uploading all the files?


Would this work with a Risco alarm system?

@simonfea The brand or model of alarm system doesn’t really matter. This project replaces your alarm system brains and uses your existing wired sensors. As far as I know, pretty much all wired contact sensors work the same, they create a simple circuit when the door/window is closed and break that circuit when it opens. All you need is to be able to identify and disconnect the wires from your alarm panel and connect them to a NodeMCU ESP8266 board. For the siren, these usually just need DC power to activate, and can be switched on with a relay triggered by the ESP8266.

@kamran If you’re not using the siren, then there’s no benefit in upgrading to the 1.5 release.

@heythisisnate - thanks for the explanation. I have a different situation with wireless sensors, so I guess that’s a different thing that does need integration with the specific alarm control board…

Were I doing a new build, there’s no question that hard wired window and door sensors would be the way I’d go. Batteries are a PITA.

1 Like

I’m an uk based alarm engineer myself and, providing your panel has programmable outputs, you should be able to program them to mimic a devices status. Do you have any more info on what model your system is? And are you in the UK or US?

The device uses your WiFi internet connection to communicate to SmartThings over a secured (HTTPS) API whenever the state of one of your sensors changes.

Would I be correct in assuming, no Internet = no security system?

Unfortunately, that’s correct. I’ve programmed it so that if there’s a drop in the internet connection, the ESP device will continuously retry until it can communicate with SmartThings again, so intermittent drops shouldn’t be too much of a problem. But if your internet is totally out then ST would not be able to receive updates from your sensors.

Yes, that is correct. No Internet = No Security system.

However, I look at it from a similar perspective as many others… If you currently have no security system (or an old non-functional one), having a SmartThings based security system that is available ~98%-99% of the time is much better than none at all.

It’s a Risco system that’s about 10 years old. I had been considering moving to the Risco Lightsys which will let me keep my sensors, but frustratingly the Risco system is closed and I’m not sure that I can integrate with ST. Any ideas @jakclark?


first of all, great job…!

  1. does it work with monitoring station after implementing this way ?? or its only for controlling and getting notified from smarthings on mobile ?
    2.can i branch the wire from sensors to connect to the NodeMCU so that it works both with smartthings and key pad?

Thank you

I’m not sure what you mean by “monitoring station”

There is some discussion in the original thread about connecting it in parallel with the alarm panel system. This isn’t really what I had intended with this project, so it requires some small modifications to the code and bit more complexity on the wiring side with resistors and stuff. I know at least one person was able to do it.

Do you need wireless devices? If so- Texecom 24W Panel would work, with texecom ricochet door contacts and movement sensors. This system has 8 programmable outputs on the control panel that can be used to mimic 8 individual zones (you are limited to only 8 outputs). These outputs can then trigger 12vdc relays which will give you a dry contact ( C, NO, NC) to be able to use @heythisisnate’s method.

@heythisisnate im assuming that each input needs an alarm circuit? Ie C + NC and not a 0v trigger?

Hmm, I don’t think so. I believe you’ll fry the ESP8266 with 12V.
The GPIO pins of the ESP8266 when configured with the internal pullup resistor output 3.3V to the door/window sensors.

I managed to get mine to work without disconnecting it from my alarm panel thus my alarm remain functional. With help from @ogiewon, I used resistors to drop my panels 5V to 3V for the NodeMCU and got some help from @heythisisnate to disable the internal pull-up resistor (you simply remove some code in applications file).


Thanks @jakclark. The idea was to re-use all my existing (wireless) sensors, so I don’t necessarily prefer wireless, it’s just what I have installed.

It sounds as if I may do better to start again from scratch…

Again, check if the control panel has programmable outputs on board as it may still be possible for you to do


If you use a programmable output ( that is configured to mimic the status if one of your wireless sensors) to trigger a relay ( £6 handy little relay on ebay) then you will have a volt free relay output that changes state when your device changes state.

BEWARE-Most wireless alarm movement sensors have a battery saving function where it stops transmitting movement if it detects a lot of activity!
Example would only really benefit if tot planning on using door contacts or vibration sensors.

I am receiving the error 500 posting problem. Seems to only happen with the smoke detectors. I even removed and re-added the cloudapp. I also removed and re-added the devices, same problem. I have this problem with two different devices, both smoke detectors. The top 3 in the picture that succeeded are contact sensors.

Usually this means the devices was not authenticated or the device ID is wrong, but I have checked this.

Have you tried opening your cloud sensor smart app in your ST mobile app and making sure the sensor devices are selected (authorized) on the smart app? I had the 500 error because one of my devices wasn’t authorized in the smart app.