Smart home technology isn’t just for boring things, such as monitoring the humidity in your home or locking your front door at night. It can also be used for more fun things, too. I decided to see if I could hack my video doorbell to spook trick-or-treaters.
We Have to Leave Our Candy Unattended
Halloween is my son’s favorite night of the year, even more so than Christmas, because apparently, a handful of candy is better than a ton of expensive presents. Which means that every Halloween, after watching The Nightmare Before Christmas, the whole family has to head out trick-or-treating together.
This means there’s no one home, should any trick-or-treaters turn up at the door. My kids would never forgive me if we didn’t leave candy for other trick-or-treaters, so we place a bowl outside the front door so that anyone who turns up can help themselves.
I Wanted to Scare People Into Taking Their Fair Share
The trouble with this method is that it’s open to abuse. In previous years, we’ve had people taking far more than their fair share of the candy, so that by the time other trick-or-treaters arrived, there was nothing left.
I wanted to come up with a fun way to scare trick-or-treaters when they arrived, and to also try to spook them into taking only a handful of candy. My initial thought was to get really complex and try to use AI to analyze my video doorbell feed so it could tell exactly when someone was taking candy out of the bowl. That idea soon went out of the window when I realized that the area where we place the bowl was too dark to see clearly in the doorbell feed at night.
In the end, I decided to do something simpler. I wanted to have the video doorbell speak some spooky pre-recorded voice messages whenever a person was detected by the doorbell.
Recording Spooky Voice Messages For My Doorbell
I have a Reolink Video Doorbell Wi-Fi, which I got to replace my Ring doorbell, so that I don’t need to pay for a subscription or rely on cloud services. One of the features of this doorbell is that it lets you record your own custom quick replies that play when people ring the doorbell. Using Home Assistant, it’s possible to create an automation that plays one of these quick replies whenever a person is detected by the video doorbell.
Recording the spooky messages is simple to do. In the Reolink app, tap the Settings icon and choose “Sounds.” Select “Voice Message” and tap the plus (+) icon in the top right corner of the screen. Tap “Start” and record your message, then tap “Finish” when you’re done.
Tap “Sound Test” to hear the message back, and if you’re not happy with it, tap “Re-record.” When you’re satisfied with your recording, enter a memorable name at the bottom of the screen, and tap “Save.”
Once you’ve recorded your messages, you’ll need to restart Home Assistant so that they appear in the Reolink integration. My kids ended up recording multiple different quick replies. I decided that I wanted to be able to play any of them at random so that people weren’t always getting the same reply each time.
Creating the Spooky Automation
The final step was to get the custom replies to play whenever a person was detected at the door. The person detection on the Reolink is pretty solid, meaning that the replies should only play when people are at the door, rather than when any kind of motion is detected.
Triggering the automation is simple enough, as there’s a binary sensor (binary_sensor.your-doorbell-name_person) that changes when a person is detected by the video doorbell. I can get the automation to trigger whenever this binary sensor is turned on.
Playing the voice messages is also simple to do. The Reolink integration in Home Assistant includes an entity called “Play quick reply message”, which, when combined with the name of the quick reply, will play the message through the video doorbell’s speaker.
The tricky part was getting the doorbell to play one of the multiple voice messages at random. This was complicated by the fact that there are three default voice messages that I needed to ensure weren’t selected to play. I used ChatGPT for some inspiration, and ended up with the following code that does exactly what I wanted:
This selects a message at random from the list of allowed messages, so that the default messages aren’t included. If you’re doing the same, you’ll need to replace “reolink_front_door” with the name of your Reolink doorbell, and replace “Haunt”, “Watching”, “Peril,” and “Ghosts” with the names of the voice messages you saved in the Reolink app.
A Simple But Effective Halloween Hack
Once my automation was created, I tested it out, and I was pleased to discover that it worked exactly as I wanted. Whenever a person is detected by the video doorbell, one of the pre-recorded spooky voice messages plays, warning trick-or-treaters of the consequences of taking more than their fair share of candy.
The randomization works exactly how I wanted it to. Each time a person is detected, the message that plays is selected at random, so it’s not the same message each time someone comes to the door. It’s a simple idea, but it works really well; the sudden spooky message is enough to give the trick-or-treaters a little scare, and hopefully it will shame them into leaving some candy for everyone else.
The best part is that everything happens locally. None of the doorbell video or voice messages are uploaded to the cloud. All the processing and automation happens on my Home Assistant server.
Most of my automations are practical, but not very exciting. It was a lot of fun trying to make an automation do something entertaining. I had a blast setting it up, and the kids really enjoyed recording the spooky messages. Now we just need some unsuspecting trick-or-treaters to show up.