So many ESPHome projects I have featured on Home Assistant Guide seem more useful and better made than any professional solution. This DIY video doorbell with voice response, however, takes the biscuit. It looks sleeker than anything I’ve seen for sale (I can’t be the only one who thinks the Ring’s and many other smart doorbell’s design is hideous) and is much more useful due to its open nature and seamless integration with Home Assistant thanks to ESPHome.


The only downside of this setup is the lack of bi-directional audio. Sure, you can play prerecorded MP3 files on the doorbell’s speaker using a DFPlayer Mini, but there is no way of attaching a microphone and having the person on the other end reply. This is a limitation of ESPHome, as there currently is no way of implementing bi-directional audio. A feature request has been added to the repository, though it appears to have not seen any development yet.

What is also missing from this project is any sort of waterproofing. As rain wasn’t an issue for the creator, they took no measures to stop water from entering the case. If you are looking to build an ESPHome-powered doorbell yourself which might catch the rain, you should look in to fitting some O-rings or filling gaps with silicone for ingress protection.


How the DIY video doorbell with voice response works

What makes this ESPHome project so intriguing is the use of four individual yet seemlessly integrated components:

  1. One ESPHome node, a ESP32 Camera module, controls the doorbell itself.
  2. A wall-mounted tablet automatically displays the camera’s stream whenever the doorbell is rung and offers options for pre-recorded replies.
  3. A notification is sent to the creators Android smartphone with a screenshot and the same options for replies.
  4. The last part is the doorbell chime, which uses a LOLIN (formerly WEMOS) D1 mini and another DFPlayer Mini. It, too, runs ESPHome and is connected to a pair of amplified computer speakers.
YouTube video
YouTube video

In the two videos above, you can see how the doorbell works and how the wall-mounted tablet automatically reacts whenever its button is pressed.

The DIY doorbell with speaker and camera

The most interesting part of this build is undoubtedly the doorbell itself. As mentioned, it uses an ESP32 Camera module and, additionally, a camera module with a long flex cable, a DFPlayer Mini with a microSD card, a speaker, and a momentary button with LED illumination.

The reason a camera module with a long flex cable is needed, is because the camera would otherwise have to be mounted sideways. Using the flex cable, a gentle 90° turn can be made between the ESP32 board and the module, keeping the camera upright. The ESP32’s external antenna will help increase the signal-strength with it first having to pass through a brick wall.

A DIY doorbell programmed with ESPHome

Covering the front of the doorbell is a laser cut lens insert and a piece of custom cut 3 mm acrylic glass. The acrylic could be replaced with a 3D-printed part, but would require a lot of sanding to achieve any kind of smoothness. Depending on what camera module you choose, the lens insert is also optional. If you go for a wide-angle camera, such as the one linked below, it will already have a screw-on lens in place.


The DIY doorbell chime

The second custom-built ESPHome node of this project is the doorbell chime. The sounds are loaded on to a microSD card, which is inserted in to another DFPlayer Mini. It in turn connects to a pair of powered computer speakers using a 3.5 mm jack. While this setup might not fit in with the other sleek components, it doesn’t have to, as it is hidden away from sight.

The main benefit of using another ESPHome node as a doorbell chime is that you can build as many individual nodes as you need or want and place throughout your smart home. Once created, a few lines of YAML with have a new node integrated in to the system almost instantly.

A DIY doorbell chime programmed with ESPHome

What you need to replicate the DIY video doorbell with voice response

Despite the creator making their files for the DIY video doorbell with voice response publicly available on GitHub, you will need to make some modifications if you want to replicate this ESPHome project. For starters, the 3D-printed case is specifically designed to fit their doors, and it might not fit yours. Of course, you can also go for a wholly different design and just use the code provided in the GitHub repository.

Speaking of the code, the creator was kind enough to not only publish their implementation of the two nodes, but also their dashboard setup, automations, and script.

While the wall-mounted tablet definitely is a nice-to-have, it isn’t a requirement. There are many ways of sending notifications and viewing video streams. You could, for example, use the Android or iOS companion app or a persistent notification in the dashboard.

Liam Alexander Colman, the author and maintainer of Home Assistant Guides.

About Liam Alexander Colman

Liam Alexander Colman has been using Home Assistant for various projects for quite some time. What started of with a Raspberry Pi quickly became three Raspberry Pis and eventually a full-blown server. I now use Unraid as my operating system and Home Assistant happily runs in a Docker container. My personal setup includes many Zigbee devices as well as integrations with existing products such as my Android TV box. Read on to find out more on how I got started with Home Assistant.

Leave a comment