For just $2, convert any existing wired doorbell into a smart doorbell

Recently I come across this blog when I was looking for ideas to make my existing doorbell smart. No cloud wanted, video/photo not needed. Only “problem” was that this project is using ESPHome and Home Assistant. Since I use ESPeasy and openHAB, I converted the software part to those 2 systems.

Please read this blog for the basics before continuing below. Hardware needs and setup are explained there. Kodus for @Frenck for creating this project!

I assume you already have some ESPeasy’s with MQTT in your network. I won’t guide your through the process of settings this up. There are plenty of howto’s available online.

The ESPeasy part

I’m using firmware version ESP_Easy_mega-20200328_normal_ESP8266_1M.bin. But this should probably work on newer and older versions too.

I disabled some hardware settings, since we won’t need them:

I have only added a switch to ESPeasy, the relay is controlled by GPIO and MQTT.

Enable the rules engine in Tools -> Advanced:

A new tab “Rules” will appear after you press submit. Add the following rule:

on drukknop#State do
    if [drukknop#State] = 1

Now your doorbell should already work without the interference of openHAB. So even if openHAB is offline for some reason, your doorbell just works.

The openHAB part


Thing mqtt:topic:deurbel "Deurbel" (mqtt:broker:MosquittoMqttBroker) @ "Meterkast"  {
    Type switch : gpio0    "Power Switch"     [ commandTopic="/deurbel_15/gpio/0", on="0", off="1" ]
    Type switch : drukknop    "Switch State"     [ stateTopic="/deurbel_15/drukknop/State", on="1", off="0"]


Switch Deurbel_relay “Gong” (gMeterkast, gSensorsStatuses) {channel=“mqtt:topic:deurbel:gpio0”, expire=“1s,state=OFF”}
Switch Deurbel “Deurbel” (gMeterkast, gSensorsStatuses) {channel=“mqtt:topic:deurbel:drukknop”}


val telegramAction = getActions(“telegram”,“telegram:telegramBot:Telegram_Bot”)

var Timer deurbelautooff = null
var Timer ringingprotection = null
var boolean ringing = false

rule “Deurbel auto OFF”
Item Deurbel changed to ON
logInfo(“Deurbel”, "1a. ringing = " + ringing)
if (ringing == false) {
logInfo(“Deurbel”, "1b. Ringing = " + ringing)
//Deurbel_relay.sendCommand(ON) //UNCOMMENT THIS and delete the rule on the ESPeasy if you want openHAB to control your doorbell.
telegramAction.sendTelegram(“Er staat iemand voor de deur!”)

    //Adds protection for pushing the doorbell multiple times within 10 seconds. Doesn't work when the ESPeasy rule controls the doorbel
    if (ringingprotection === null) {
        ringing = true
        ringingprotection = createTimer(now.plusSeconds(10), [|
        logInfo("Deurbel", "2. Ringingprotection = " + ringingprotection)
            ringing = false
            ringingprotection = null

    if(deurbelautooff === null) {
        logInfo("Deurbel", "3. deurbelautooff = " + deurbelautooff)
        deurbelautooff = createTimer(now.plusSeconds(1), [|
            logInfo("Deurbel", "4. deurbelautooff = " + deurbelautooff)
            deurbelautooff = null


I’ve added multiple protections to turn the doorbell off after 1s.

In my experience there is quite a big lag sometimes between pushing the button and hearing the doorbell when openHAB controls it. So I stopped doing that and created the ESPeasy rule.


Thanks for this. I found Frencks tutorial as well and was about to open a topic when I saw your post.

However, I can’t get the (my first) ESP-01s to connect to my WiFi. Flashed ESP_Easy_mega-20201022_normal_ESP8266_1M.bin via FTDI and ESP Easy Flasher with my WiFi settings but after rebooting, the only effect is the blue LED flashing slow. WiFi is 2.4GHz set to Channel 1 and 802.11g+n. Same effect for fixed IP and leased IP.

Any idea on what might be wrong or how to troubleshoot?

I think your better off on the espeasy forum for support on this matter.

What I can think of, is your wifi hidden? That could be an issue. Do you have another ESP-01s to test with? Also double check your wiring when flashing the ESP-01s, it needs 2 extra connections compared to the normal esp8266.

I’m not familiar with the esp easy flasher? This is a windows program? Not sure how this adds your wifi settings. What you could try, flash the image, boot it, connect to the espeasy AP and enter your wifi settings.

1 Like