Connected Smoke Alarms

I finally finished my connected smoke alarm project this evening when Kidde relay arrived. Thanks to all the posters who shared their project!

I did not have an easy way to install a junction box, which is the main reason I delayed in doing this. Then last week I had a brain wave to try and see if I can use a broken smoke alarm I had laying around. The result is in the picture below :smile:. I used a Peq open/close sensor, which seem to be exactly the same as the SmartThings sensor. I de-soldered the reed switch from the sensor and soldered on three wires, which connected to the Kidde relay common, NC and NO. So it’s not quite as simple as the Schlage that folks were using.

I had to Dremel everything out of the donor smoke detector and it was still a pretty tight fit. I can probably free up a little space by shortening the wires from the Kidde relay. But for the moment everything is in there and working. I replaced the original smoke detector connector with a re-purposed PC hard drive power connector male / female set, so I can unplug it from the ceiling for future battery changes or if I want to move it.

As noted in other posts, I changed the device code to make it a smoke detector device. I also rewrote a bit of the device code to emit smoke events instead of open / close events. This allows me to integrate perfectly in the Damage & Danger section in the dashboard, and add rules for being notified, turning on lights, unlocking doors, etc.

I don’t know why one of the alarm manufactures don’t come out with a hardwired alarm that you can connect into the existing interconnect wires. E.g. if the wired Nest allowed connection and monitoring of the interconnect wiring, I would not have bothered to go to all this trouble.


@trotsky40, @chrisb, @solardave1, @pizzinini, @kg4fku, @KLabs, @Dan999

Tagging everyone that might use this setup. I tested recently and I’m not receiving texts nor are the lights coming on, but the logs show that it is registering smoke/clear. I wanted to see if anyone else is having the issue. Support is confused by this setup at the moment (haven’t seen it before) and they can’t support it.

So, I’m turning to the community to verify what’s going on out there and if I’m the only one having issues or not.

What I found was that adding the “Smoke Detector” capability and then setting it up through the Damage and Danger section doesn’t actually work even though it looks like it does. As long as I treat it like a door sensor and use apps like “Notify Me When…” It works as expected.

Will potentially switch back to that. Working with support now. I think that it is just not reporting the correct info when it is tripped. If we could see the zwave smoke detector device type code, I think we could figure it out. The detector is a boolean device, just like a contact sensor. So, we just need to swap out the bits to make the contact sensor report the same as a smoke detector.

I know I’m over-simplifying it, but it should be fairly straightforward?

My setup has been working fine. I have the smoke alarm set up through Damage & Danger and I’ve always received a text and push notification when I test any of the connected smoke alarms. I just tested it again to make sure things still work (kids had to get up anyway :smiley:)

If I remember correctly, I modified a Z-Wave device type to simply send SmartThings smoke events instead of on / off events when the contact switch opens / closes. I seem to recall looking at the Z-Wave smoke alarm code and sending out those events. I used a PEQ sensor, which has temperature and battery status, so I started with the SmartThings open / close sensor. (Device type code)

I don’t think it should be necessary to mess with the device level bits. If the device emits the correct SmartThings events, things should work.

1 Like

The way I understand the platform is as follows. The capabilities of a device defines what commands and events the device will support. It also makes that device show up in SmartApps when they look for capability=xyz. So defining the smoke detector capability will make it show up in the Damage & Danger section SmartApps. If you then install the SmartApp, it will subscribe to the smoke detector events. But if your actual device never emits those events, the SmartApp event handlers will never be triggered. So therefor your device type must also emit those events.

I posted a link above to my device type. The main change I made, was to emit smoke detected and cleared events instead of open / closed events. This seems to work perfectly with the existing D&D SmartApps.

I also removed the contact sensor capability and added the smoke detector capability. The code below (from the device type) essentially intercepts the open / close events and emits the expected smoke events to make the internal SmartApps fire correctly.

private Map getContactResult(value) {
log.debug 'Contact Status'

def val=""
def descriptionText=""
if (value == "open") 
	val = "detected"
    descriptionText = "$device.displayName detected smoke"
else if (value == "closed") 
	val = "clear"
    descriptionText = "$device.displayName smoke is cleared"
return [
	name: 'smoke',
	value: val,
	descriptionText: descriptionText



@Dan999 - Can you post your entire device type? Would like to test this one…but will have to wait until the family is out since they don’t approve of the repeated smoke detector tests…neither do the cats! :smile:

I posted a link a few posts back. It is a modification of the SmartThings open/close sensor. If your sensor is different, it may not work, but I’m guessing it probably will. If it doesn’t work, you should be able to easily use the snippet above to emit “smoke” events, with values “detected” or “clear” based on your contact senor being “open” or “closed”. I wired mine up such that open = detected, and closed = clear. If your relay is wired differently to the contact sensor, then swap the open / closed events.

While I was getting all this to work on my desk, I used the magnet that came with the contact switch to open and close the reed switch without having to hook up a smoke alarm. If your sensor is accessible, you may be able to trigger it that way without creating a disturbance in the force :smile:

Good point. I could go down to the basement with the magnet. Much quicker and a happier family. I already know the relay part works with the alarms themselves.

I will check mine this weekend and report my findings.

I just tested mine and it is working fine. I have the door sensor that I connected to the alarm relay set up as a “Z-Wave Door/Window Sensor” device that I modified to make it look like a Smoke CO Alarm device. In the apps I use “when…opens…”

I just received a SM120X for Smoke and CM120X for Carbon,

Is it possible to wire both to the same sensor ? Or would i need to use another sensor for the second alarm ?

Ideally if we have either Smoke or Carbon, i would like an alert.


Assuming the CO alarm relay works the same as the smoke alarm relay, there should be no problem to wire both in parallel to the sensor. Just make sure you use the same normally-open or normally-closed circuits. The only downside is that you would not be able to tell which alarm triggered the sensor.

1 Like

@Dan999 thanks

there should be no issue with running both in parallel ? Or should i use a Chip/relay in the middle to isolate the two outputs ?

The relays are simple switches. They are not active outputs so it is not necessary to isolate them.

Does this tell you which room the alarm is sounding or just that your alarms are going off? My nest has given me false alarms multiple times and I’m ready to rip them all out. I would really like to know which room is sending the alert so I can address any false alarms.

I just got two zwave smoke alarms. They’re not a whole lot more expensive than a decent high end non-zwave smoke alarm, and they integrate directly to smartThings.

I got these

They seem to be far better at rejecting steam as smoke than the cheap ones they replaced. Those other ones would go off after a shower.

1 Like


The First Alert pairs just like any other compatible Z-Wave device, thus letting you name it and attach basic SmartApps (push or SMS notifications with location information, lights on, etc), or more complex ones.

They don’t directly talk to each other, tough, and cannot be used to receive “alarm on” commands, and no speech.

Nest Protects sure look nice and have great features on paper; it’s sad to hear they have bugs to shakeout, but also great to know we can get good functionality with trusty inexpensive Z-Wave First Alert!

Unfortunately these are battery powered. My home has wired smoke detectors.

Yah… First-Alert is moving to their new, presumably proprietary wireless link protocol called “One-Link” (a little like Nest … .though Nest uses Thread/Weave (well, what will be Weave eventually).

So they do have a wireless hardware model … but not open. :cry: