Doorbell ESP32 S3 + IR with ESPHome, MotionEye and Home Assistant

I made (another) privacy orientated ESP32 Doorbell with IR Night-vision and video recording!

It uses ESPHome and HomeAssistant (with optionally MotionEye).

Features and parts:

  • Fish-eye OV2640 HD Camera.
  • IR Nightvision.
  • Metal push button with LED Lights.
  • DFPlayer + smoll speaker.
  • 12v to 5v buck converter.
  • When someone presses the doorbell button, the led ring flickers and plays a mp3 doorbell chime from a SDCard. These visual and sound confirmations were much needed according to many delivery guys :slight_smile: I had made one without also, and got a lot of feedback.
  • Recording: a http-stream can be used to record 24/7 or motion based. I chose the latter via MotionEye, due to performance on my rpi4 with 8gb and a SSD.

Was a lot of work for me personally, learned to 3d print and design and work with electronics and script in the last 5 months. Pretty steep learning curve despite being an IT specialist.

I have put my FreeCAD designs and STL’s on 2 places:

  1. Printables: https://www.printables.com/model/805980-esp32-s3-doorbell-v2-nightvision-chime-recording

  2. Github: https://github.com/idkjustgoogleit/esp32-doorbell

    β†’ direct link to ESP32-S3 with Camera YAML Config

This YAML Config works flawlessly and is still stable up until now. Recent updates to ESPHome has not diminished the reliability. Due to this being a ESP32 S3, certain parameters to make the cam working are necessary. Copy and paste the config and adjust the placeholders.

Side notes: the IR Night vision LED Ring is too strong :slight_smile: SO I have solved this by changing the camera image settings on the fly before and after sunset. This is done via an HomeAssistant automation and 2 scripts:

  • After sunrise β†’ trigger automation β†’ set daylight mode using following script: HA Script (github)
  • After sunset β†’ trigger automation β†’ set night mode using following script: HA Script (github)

As you can see in the images, I have added a preview of the HomeAssistant page which shows the stream and some details. On that page I have added 2 buttons to change the image settings just in case the automation triggers above did not work.

HOWEVER, IF this is too much then check my first doorbell design which is way simpler and has less parts needed but NO NIGHTVISION :frowning: : see here.

Enjoy!

1 Like

Very nice ! Is there a way to add 2-way comms, and ideally integrate it into 1 screen on a smartphone or laptop, and cherry-on-top : while away from home ?

For 2 way comms the esp32 is in my opinion probably not the best device. A rpi zero 2w for example could be better for that purpose.

However the coding and scripting for that would require a lot of customizations which makes that a one time build.

However, there are esp32 devices like a lily go T all in one boards with mic and cam and screen. But from what i had gathered the esphome platform is not mature enough for the 2 way comms usage.

But, there is another way. You could use my guide and add prerecorded sounds and put it on the sd card. You can play those mp3 sounds remotely via the home assistant scripts feature for running a DF Player command with the index number of the mp3 file on the sd card.

You could make a button when you receive a doorbell notification to play a message like, don’t leave my package to the neighbors or something :grinning: