Ikea DIY Smart Smoke Detector…

Recently I confirmed that a smoke detector can be useful. I forgot a sauce on the stove and it burnt. I left the flat and luckily heard the smoke alarm from outside!

So, to be safer in the future I wanted to make a network-connected smoke detector that reports to my home-assistant instance. From there it can notify me via SMS or flash lights or sound an alarm.

By chance I found a smoke detector at IKEA. I needed to see if it can be hacked.

Ikea Smoke Detector
Test pin 4 can be used to solder the trigger to.

Good news! It can! 🙂
It turns out the micro controller that is used (CS2105G0-S12) offers a nice pin (Pin 7 – I/O) to be used for external electronics. Conveniently the PCB has a test pad (T4) that one can solder to.

On the interwebs™ I found a design that uses the internal battery of a smoke detector to power an ESP8266. I modified the layout to work for a Wemos D1 mini. Switching the transistor to a Mosfet, allowing more current to pass, was the fix.

The layout shows how the Wemos D1 mini is powered. It runs MicroPython, only when the alarm goes off. An alarm must be active for about 20-30 seconds for a message to go through. The wifi module connects to a local wifi network and sends a MQTT message to a pre-defined channel.

circuit design

The I/O-Pin 7 of the smoke detector is high at 9V when smoke is detected. The Mosfet will be switched on and the battery now powers the D1 mini as well, allowing notifications via network. The ESP8266 on the board is flashed with MicroPython. The script connects to the local wifi and notifies home-assistant via MQTT that smoke is detected. Home-Assistant does the rest.

The source of the script can be found here on gitlab or on github.

7 thoughts on “Ikea DIY Smart Smoke Detector…”

    1. The deep sleep is a nice feature, it’s not needed though. The idea of this circuit design is that the WIFI module is not powered at all until smoke is detected.
      This should lead to a battery run time that is comparable to the original run time. Only when smoke is detected the battery consumption is higher.

      The drawback is that we are not able to connect to the device. The device also cannot check for the battery status or have another sensor attached to it (temperature, etc). It would not be powered.

      1. It can however report the battery voltage once the alarm goes off if you use a voltage divider and the Wemos Analog Pin.

        The use is pretty limited though, since the I/O pin of the smoke alarm, meant to make all alarms in a building go off simultaneously once smoke is detected somewhere, is not being pulled HIGH when the detector just beeps a low battery warning. I imagine you can check the battery voltage whenever you press the smoke-detector test button 🙂

        I implemented it anyway in my version (inspired by flo’s):


Leave a Reply

Your email address will not be published. Required fields are marked *

verify you\'re human: * Time limit is exhausted. Please reload CAPTCHA.