Connect wired alarm system sensors to SmartThings with a NodeMCU ESP8266 [deprecated]

*UPDATE my smoke alarm is hard wired also and its NOT hooked into my existing alarm. looking for another way to monitor all my hard wired smoke alarms. someone mentioned tripping a relay when the smoke alarms go off. looking into this.

The interconnect line, normally red carries 9-12 volts DC in most systems. Tie to the red to the coil on a relay, neutral to the other side. Then use your NC/NO contacts on the relay for your alarm or 8266 input.

this is great advice, i will looking into doing this. thanks again

I was able to get this up and running with relative ease thanks to your walk through Nate, great job. I too am interested in utilizing my existing siren. I understand the need for a relay, and know that I should just need to set a pin to HIGH to make the relay trip and turn the siren on. I have not been able to figure out how to edit the application to monitor a “cloud alarm” in smartthings and set the pin output accordingly. Lua is brand new to me. Seems like I need either a GET or PUT command? I created a switches{} section in the variables and added the alarm ID, but that’s honestly about as far as I got. I assume a similar for loop could be created in the application to declare the pins for each switch to OUTPUT

Great guide! I also was able to get this up and running, took about 3 hours this evening. Right now I’ve got 6 contacts and 2 motion sensors connected only to NodeMCU. I’m going to try the smoke alarm, and then start working on connecting the actual alarm system back up in parallel. Here’s to hoping I remember something from the old electrical engineering classes.

Any suggestions on a good way to display this on the Smartthings App? Right now I just have 8 separate “things” showing open/closed status.

There are apps out there like:

Or you could use SmartTiles, SmartTiles is a dashboard outside of Smartthings. I personally use SmartTiles, easy and you can use it on your desktop or smartphone. You can create separate dashboards also for different devices. Like a tablet mounted to the wall.


@TylerDurden I’m happy to hear that you got it working. Yes, it does require internet access to function, because the device communicates directly to the SmartThings API via the internet, not to the Hub. It seems like it may be possible to communicate open/close over the LAN to the hub, but I think you’d still need an active internet connection for SmartThings to run the SHM logic and trigger the alarm.

@ZMOBtiger I think you’re probably right that if it’s hooked up correctly, all you’d need to do is set the pin to HIGH to trip the siren. That’s the easy part (example assuming pin D0):

gpio.mode(0, gpio.OUTPUT)
gpio.write(0, gpio.HIGH)

If you can get the wiring right and test the above manually using Esplorer, I think I can help with the communication/monitoring from SmartThings piece. It’s a bit more complicated than the current simple setup of just updating a single endpoint. The way I’m thinking about it you would need to use a HubAction in the SmartApp to send a HTTP request from your Hub to the NodeMCU over your LAN when the alarm is triggered. On the Lua side, you’d need to set up a HTTP server to listen for the request from the hub and set the pin to HIGH when triggered.

It sounds like a lot of people are interested in this, so I’d be willing to give it a try and add this siren capability to a future release of this project. If anyone has been able to successfully turn on/off their siren using gpio.write please let me know how you wired it up and I’ll work on it.

Thanks Nate, It looks like my old security system is using a 12v Siren. It was hooked up to a relay on the old ADC PC1616 board. It looks like I could connect a giopin to one of the following relay boards which would connect to the 12v siren?

Like this?

I’m curious what relay module they are using in the video. I think we are going to need a 3.3 Volt relay module to make this work, the 5 volt version probably won’t be enough voltage to trigger the relay.

Just came across this thread, thank you so much @heythisisnate for putting it together. I definitely want to jump on board and would like to document the process on my YouTube Channel ( My previous most intensive SmartThing’s integration was likely Homebridge, I made a video about that previously and I find videos to be a lot more intuitive compared to written instructions.

My main concern is the wiring procedure, I don’t want to compromise any of the functionality of my current system as I still pay the $25 monthly monitoring service. My system is ancient even though I had it installed 3 years ago. It was the same system that I had installed 20 years ago on my old house as it is super reliable compared to the DSC wireless systems I used previously.

I have the Radionics (which is now Bosch) system. Some of my sensors (door/motion) are wireless while the others are wired. Would I be able to use the wireless sensors or just the wired?

Here are some pics of my system:

Will my system work with the NodeMCU? Which wires are my sensor wires and how do I connect them? I noticed that my wired sensors have registories (I think that is what they are called, those small little hot dogs with stripes on them near the electric tape) on them?

If someone can explain the wiring to be that will be much appreciated.

This is the manual to my system:

Thanks again

It looks like your wired sensors all at least have labels on them.

The “PIR” are going to be motion detectors; most of these will have 4 wires, 2 of these (in your case black & red) are going to an auxiliary power input that is powering the motion detector. The other 2 wires (green & yellow in your picture) are going to be the open/close loop.

Any hardwired door/window contacts will be wired similar to the green/yellow wire, they just open/close the circuit when the door is open/closed. Not sure if your contacts are normally open, or normally closed (they can be either). The resistors (hot dog shaped things with stripes) are in place to give you a normal voltage drop across the wires. From your picture, on the supervised pins, in a normal situation, should be 2.5 to 8.5 VDC.

First thing I would do, is take a multimeter, and measure the DC voltage across the 2 wires going to one of your door contacts. Then, go open the door and see what it changes to. That will at least tell you what state the contact changes to.

1 Like

So something like this that supports 3.3v…

That should work, I’m going to try one of these:

Appreciate the response, so in terms of wiring I will connect the yellow and green wire to the NodeMCU by simply attaching an extra two wires to each of the preexisting lines? Do I connect the green wire before or after the resistors?

I have three “PIR” (Motion) and one door (Side Garage Door) from what I can see. I thought my garage entry door would also be wired (as it is adjacent to the keypad) but I don’t see a label for it. The rest are wireless, I see a line for “R.F Ty” so I assume that is for the wireless module and I won’t be able to integrate that right?

For measuring DC voltage, I simply connect the green and yellow line to the multimeter. But I notice that the green line for the door connects to the same point on the panel as the motion sensor. Is this fine? (refer to image)

I will go ahead and measure the voltage and will let you know.

As far as the parts that I will need (3 motion, 1 door). Is this the only thing I should order?

    I will be able to run a micro-USB for power without an issue.

That kit is correct. This guide is really intended if you want to disconnect your sensors from the existing alarms control board, and connect them only to SmartThings. That is one of the reasons you need to measure the voltage, when in normal state, and when the doors are open or motion is detected.

For example, on my alarm board, my voltage across pins when the door is closed is 0 VDC (normally closed contact). When the door opens, I get a voltage of 6 VDC. On the NodeMCU ESP8266, you will get 3.3 VDC when the pins are open, or 0 VDC when the circuit is closed.

Because I have a difference between the 3.3 and 6 VDC, if I want to use my existing alarm control board in parallel with the NodeMCU, I’m going to have to rig up a voltage divider to get the 6 VDC down to 3.3 VDC. Otherwise, there will be a negative voltage coming back to the NodeMCU.

1 Like

I will go ahead and measure after the resistor for the door. Should I also measure for the motion?
I plan on using my system in parallel as I want my current alarm to still function.

The panel has the green wire that contains the resistor connect to the same point (refer to the image on my last post). Will that pose a problem??

The 2 sensors share the same common, not an issue.

1 Like

Just conducted a voltage test for the door and motion.

Door is closed: 5.39 DC Volts
Door is open: 13.50 DC Volts

No Motion: 5.41 DC Volts
Motion: 13.20 DC Volts

I suppose I won’t be able to integrate?? Or would a voltage divider work? Any device that will be able to get this to function?

For instance if voltage is 5V output 0, if voltage is 13 output 3.3. Would be great if I can do something like that.

I would assume I can do this with a combination of a low voltage disconnect and resistors.
Where can I get a 6V disconnect switch and what kind of resistor would be appropriate in dropping 13.5V to 3.3V?

There are resistors on every leg of field wiring, correct? I assume you are measuring the voltages at your alarm panel’s input screws, relative to the alarm panel’s Gnd, correct? If so, try measuring your voltages on the other side of the resistors, relative to ground and report back. My guess is that you will get 0 and some other voltage depending on the state of your open/close sensors (or motion sensors.)

If you get a zero / positive voltage combination, a simple 2-resistor voltage divider is all you’ll need to scale the max voltage down to 3.3v to work with the ESP8266.

1 Like