DIY Video Doorbell with Voice Response | ESPHome / ESP32 Camera / DFPlayer Mini

Tags: #<Tag:0x00007f73a67a3ef8>

DIY Video Doorbell with Voice Response

Based on ESP32 Camera & DFPlayer Mini with Home Assistant and ESPHome

UPDATE 2 Jul - Added doorbell chime details

This has been a long running project to create a cloudless video doorbell with notifications & voice responses. It was important to me that the doorbell itself looked as professional as possible.

See the Github repository for details.



  • Plays audible (“ding dong”) and visual (blinking LED) feedback when some presses doorbell button
  • Calls service to play doorbell chimes downstairs and upstairs in the house
  • Sends actionable notifications with a camera snapshot to my and my partner’s phones. Actions initiate pre-recorded voice responses which are player through the doorbell itself:
    • “Someone is coming to the door.”
    • “Sorry. No one can come to the door right now.”
    • “Sorry. No one can come to the door right now. Please drop the parcel behind the gate at the right of the house.”
  • Pops up a live view from the doorbell camera on two wall-mounted tablets in the house–actually switches to a Lovelace view–with the same voice response options plus a button to play an alarm sound on a loop until stopped. This same view also opens the Home Assistant Companion App on our phones if we tap the notification.


Building the doorbell

The design of the doorbell is very specific to my need where the doorbell had to fit on the narrow doorframe and be positioned at an angle. On the plus side, it’s well protected from rain, so I didn’t have to make it waterproof.

If you have the luxury of space, consider designing your own housing that is wider. Internal assembly is very tight in this design.

I’ve wired a 5V (actually USB) cable through the doorframe so that the doorbell has constant power. The cable is not visible inside the house.

Mechanical parts

Electrical/electromechanical parts

The electrical design is straightforward. The difficult bit was to fit everything into the small amount of space I had available.


The system is based on Home Assistant with ESPHome. It uses a number of automations and scripts. I think that I’ve included all of the pieces in this repository. If not, please raise an issue.


Doorbell chimes

There are many ways that you could implement doorbell chimes. In past iterations, I’ve used Sonos speakers, Raspberry Pis with speakers attached and Google Home Minis. I’m finally happy with the current solution which is based on an ESP8266 Wemos D1 Mini paired with a DFPlayer Mini and connected to some amplified PC speakers, all running with ESPHome.

Here’s a pic. It’s far from elegant looking, but both chimes are hidden from view in the house. And, it can go very loud with the amplified speakers. If you wanted to make something similar but self-contained, you could use a speaker similar to the one in the doorbell itself and put it together in one housing with the electronics.

An ESPHome configuration is in the repository, and here’s a wiring diagram with options for amplified speakers via a 3.5mm jack or direct conenction to a speaker.

To do

  • Add video recording and snapshot archiving

Nice the videos you have put up on YouTube are on private can’t view them

Thanks for the heads up, @bachoo786 . The videos should be viewable now.

1 Like

Well done looks amazing. Would be great if you could add a microphone for the person to talk to you if you decide to talk to them instead of playing the voice commands etc.

1 Like


Re a microphone, I used a Pi Zero W in a previous incarnation of the project. There were both a speaker and a mic connected to it. I had planned two-way audio, but I could never find a solution that didn’t involve separate apps or SIP calls–and lots of jumping through hoops.

When ESPHome added ESP32 Cam and DFPlayer Mini support, I decided to make the switch.I’ll keep an eye out for mic support and some way of sending or streaming audio to the ESP32 in ESPHome in the future. But, support for either seems lacking on the ESP32 in general. In the meantime, these voice responses probably cover 95% of what I’d want to do. I’m ready with a version of the bezel with a mic hole if it ever looks viable/reliable. :wink:

1 Like

Nice one buddy :+1:

Hi ronschaeffer, this looks like another fun project to play with during lockdown - just wondered if you could let me know where you purchased the DFPlayer Mini from? I see many different ones (many copies by the look of it), with a wide range of prices. Been stung before with clones of other parts that did not work as expected, so would rather buy the same if possible, as I know I will be good to go!

Thanks :slight_smile:

I got these:

They are definitely clones, but I haven’t had any problems with them (yet?). The two I use for the doorbell chimes have been in place longer than the doorbell itself. They’ve been constantly powered on for about six weeks now.

1 Like

Thank you! I didn’t mean to imply clones are bad, just wanted to make sure I was using the same parts - then if I have problems, I know its me :slight_smile:

1 Like

Great job, that looks really professional!
Out of interest, how much did razorlab charge for cutting something small like that front panel ?

For a tidy speaker solution, how about getting a cheap wireless doorbell chime, and simply use an ESP8266 or similar to short the ‘chime test’ button that they usually have?
Those chimes usually have fairly spacious insides, so i’m sure you’d get an ESP inside the casing with ease.

Thanks, @swifty

RazorLab isn’t cheap, but then I haven’t shopped around. I’ve used them a few times and always had really good service. It was £28 for the the example below. That’s the smallest size possible, so I added a few spares and alternative designs:

Good idea.


Can you also post the wiring diagram for ESP8266 Wemos D1 Mini paired with a DFPlayer Mini for doorbell chimes.

Here you go. Choose to wire up either the DAC + GND pins for amplified speakers/3.5mm jack or the SPK pins for a passive speaker, depending on your implementation.

My ESPHome config for the doorbell chime is a bit messy now. When I get a chance I’ll clean it up and post it. You basically need the DFPlayer Mini portion of the config for the doorbell itself. The config is the same whether using passive or amplified speakers.


@ronschaeffer thanks for mentioning us. To clarify: you do not need to stick to P1/2/3 sizing any more, as we are changing our business model recently. There are no minimums and you can get anything big/small cut, paying only for the material you spend. Please visit and start live chat to see updated prices. Awesome project btw, good luck with all!


I’ve added a wiring diagram and the ESPHome config for a doorbell chime to the Github repository.

Thanks for sharing the guide. Can you post an example of what the picture quality of the camera is like? How does it go at night time with the low level of light that most people have on their porch as I guess this has no night vision? Also how much did it cost to setup just the camera?

Looks like you have done an excellent job on it all and I will have to look at it in depth when I have time. this looks great as u have the full firmware and know it has no backdoor in it.

Great project. Only things I would miss is a mic, IR light and capable of handling a bit more voltage 8-12v in europe and 16-24 in the US so we could use existing door transformers.

Thanks, @Skinah.

The pic below is a pretty good indicator of photo quality. I’ve got it set to VGA only for now. I’m planning to experiment with higher resolutions to see any effects on latency and stability. As for nighttime, I’ve got a porch light that stays on. You could instead have a motion activated light. The camera set up itself was about £20, including the replacement camera module with a longer flex. It could be significantly cheaper direct from China.

Google Photos

1 Like

Thanks, @aleksander.lyse.

There’s currently no viable way to have a mic for wo way audio with the ESP32, unfortunately. To reuse the power supply from an existing doorbell, you could use a DC to DC step down converter if you’ve got the space. Or you could just reuse the wiring and replace the higher voltage power supply at the other end with a 5V one.

Picture whilst low res, it Looks to be fine for closeup at the door during daytime. Other concern is can you get this camera to cast to a chromecast? They can be very picky on the format they accept so if it works can you post what your yaml is that makes it work. Thanks I’m keen to give it a go.