I’m using different camera brands right now (Reolink doorbell PoE, Unify G4 Instants and some Eufys).
Imho the one missing feature for reolink cameras with speakers is feature parity with the unify integration:
Media Player - If your camera has a speaker, you will get a media player entity that allows you to play audio to your camera’s speaker. Any audio file URI that is playable by FFmpeg will be able to be played to your speaker, including via the TTS Say Service.
This integration offers two main benefits:
we can use tts to let the doorbell speak
we can use prerecorded mp3 files to let the doorbell speak.
All of this can be triggered with quick actions from a Notification etc. or with automations.
So here is my feature request:
Please provide a media player entity for all reolink camers, which have a speaker, in order to enable us to use them for automations and actions.
I the app you can choose to play the prerecorded answers even if there was no interaction with the doorbell. Having this would be a small but important step for automations.
Use case:
you open the door with the door buzzer - it’s relatively silent → Inform the people infront of the door, that the door is open now
Inform people if you are going downstairs to the door after the bell was triggered, to make the wait 2 more minutes
let woman trigger males telling the people at the door to leave (otherwise calling the cops)
For what it’s worth, I spent a little bit of time trying to implement this. Unfortunately, it seems like this is much harder with Reolink than with Unifi.
With Unifi, talkback audio is sent over a raw UDP socket. The Unifi integration sends audio over this interface by just pointing ffmpeg directly at it. Reolink, on the other hand, seems to have two means of sending talkback audio:
Using an ONVIF audio backchannel over RTSP (which ffmpeg doesn’t support)
Using a custom protocol involving obfuscated XML commands (which ffmpeg definitely doesn’t support).
There are libraries which support each of these - go2rtc for ONVIF backchannel, and the neolink Rust library for Baichuan - but neither can be easily included as a Python dependency, which makes it difficult for me to see how to include this as core functionality (rather than requiring a custom component, a la the WebRTC component which pairs up with go2rtc).
Finally i can tell you, that predefined answers from a doorbell can be played on demand. This makes some stuff possible, which wasn’t before. Anyway this is not perfect yet.
For example it’s now possible to play a sound after a door was unlocked. But I can’t play a sound on the e5 ptz cameras.
I’m not sure that this works on the doorbell? That is, I can select a pre-recorded audio response, but not trigger it. The documentation for the integration suggest that it (the integration) supports a trigger, but it isn’t listed for my doorbell.
Two way audio is possible by setting up the go2rtc addon, and adding the camera entities that way. See this thread.
Note that this does require an older version of the Reolink firmware, there are download link this GitHub issue for go2rtc. Be aware that POE and WIFI versions require different firmware.