Skip to content

Instantly share code, notes, and snippets.

@mbillow
Last active March 9, 2021 13:55
Show Gist options
  • Save mbillow/39a159f1161fef9f97d1f9dad5b2e9a9 to your computer and use it in GitHub Desktop.
Save mbillow/39a159f1161fef9f97d1f9dad5b2e9a9 to your computer and use it in GitHub Desktop.

Using a NodeMCU and RXB6 to Publish Doorbell Presses to MQTT

The Problem

I have a Eufy Video doorbell that does a great* job with push notifications, 2K video streaming, and providing basic doorbell functionality. All without a monthy subscription.It comes with a basic 433MHz chime that you can pair and put anywhere in your house. This doesn't really work well with a two story house... it is no where near loud enough to hear it upstairs.

* Despite notifying me that the tree in my front yard is a person when it is windy enough.

Everything in our house is "wired" together through an instance of Home Assistant. We also have Sonos speakers in pretty much every room. The solution seems obvious: make HA play a noise through Sonos. This would be easy if Eufy exposed any kind of consumer facing API... but alas they do not.

Note: There is a bunch of random, unsupported information about the API and MQTT out there. If there is one thing that I have learned from my day job, it is that internal API design is fast, loose, and can change at any moment.

The Solution

The idea is pretty simple: Listen in on the Doorbell -> Chime radio comms and push messages to an MQTT topic. Once there we can leverage the existing NodeRed and HA setup to do the Sonos magic.

The BOM

I am going to include Amazon links because that is likely the most consume friendly option. Feel free to buy your heart out on Aliexpress if you have the patience to wait.

  • 1x NodeMCU

    • These are super handy little ESP8266 boards with decent I/O and (more importantly) a WiFi chip.
  • 1x RXB6 433Mhz Superhet Reciever

    • This is likely overkill, but the concepts of Superheterodyne recievers have always been cool to me... sooo it's worth the $5 to me.
  • 1x 433Mhz Antenna

    • You could also just use a wire twisted around a pencil. I wanted something compact because my eventual plan is to encase this.

Wiring it Up

The NodeMCU runs at 3.3V and the RXB6 runs at 5V. Luckily, the NodeMCU has the circuitry to convert 5V to what it needs, so you can power the NodeMCU over USB (which typically provides 5V power) and run the RXB6 off the Vin pin.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment