Considering building my own ESP32-based door chime instead of spending almost €200 on the “DoorBird IP Door Chime A1061W”. I can probably buy all required components for less than €15.

#DoorBird sends local UDP broadcasts and the encryption scheme is publicly documented, so it should be straightforward to receive and parse those packets on an #ESP32. And then, depending on which doorbell button was pressed, simply play a sound.

https://www.doorbird.com/downloads/api_lan.pdf?rev=0.36

So after an evening of research and vibe-coding, I now have a C++ program on my Mac that receives the DoorBird’s UDP packets and decrypts them successfully. It uses libsodium. However, ESPHome only includes a reduced version of libsodium, and crypto_aead_chacha20poly1305_decrypt is missing. #DoorBird #ESP32
Quick follow-up: crypto_aead_chacha20poly1305_decrypt was missing from libsodium-esphome because the include path was incorrect. This is now fixed: https://github.com/esphome/libsodium-esphome/pull/16/changes #ESPHome #Doorbird
Fix ChaCha20-Poly1305 AEAD source path by aaronk6 · Pull Request #16 · esphome/libsodium-esphome

When trying to use the ChaCha20-Poly1305 AEAD functions (e.g., crypto_aead_chacha20poly1305_decrypt) in my ESPHome program, I ran into a linker error: Successfully created ESP32 image. Linking .pio...

GitHub