Hi there, I’ve set up a 2-way audio intercom for my Reolink Doorbell (although it should work for a any doorbell with RTSP with some configuration) without using Frigate. Only automations, browser-mod, go2rtc and SSL access.
How it works
This is a 2 popup process. When the doorbell binary_sensor
“visitor” changes to on
, It first shows a popup stream with one way audio (doorbell to device) and video so you can hear what’s outside but the microphone is not enabled. Then if the pick up button is pressed, it opens a second popup with 2 way audio. In both popups there is the option to hang up or to open the door.
How it’s made
I have to say that for now, poorly. It consists of different parts that are not straighforward to setup which are required.
Requirements
-
The most important thing for having 2 way audio, is having an SSL connection to homeassistant from the browser/tablet you are going to use. WIthout this it will not work..
This guide will not cover how to do this but there a different methods to achieve:- HomeAssistant Cloud
- Cloudflare/Tailscale
- NGINX + DuckDNS (port forwarding)
-
webrtc-camera: GitHub - AlexxIT/WebRTC: Home Assistant custom component for real-time viewing of almost any camera stream using WebRTC and other technologies.
This will only be used for thewebrtc-camera
card, but it’s necessary -
more-info-card: GitHub - thomasloven/lovelace-more-info-card: 🔹 Display the more-info dialog of any entity as a lovelace card
This will be used to ensure we get the more-info view of the doorbell’s video stream -
card-mod: GitHub - thomasloven/lovelace-card-mod: 🔹 Add CSS styles to (almost) any lovelace card
This will allow to apply styles to the frames and the overlay buttons
Setup
1. go2rtc configuration
Start the add-on and access the UI.
Then go to the Config
tab and paste the following data replacing with your doorbell values:
streams:
camera.2way_audio_doorbell:
- rtsp://<USER>:<PASSWORD>@<DOORBELL_IP>:554/h264Preview_01_sub
- ffmpeg:camera.2way_audio_doorbell#audio=opus#audio=copy
2. Popup cards
I have created a blueprint to automatically create and configure the pop-ups:
This is how it looks:
Limitations
The Open Gate
option is a script
because that’s what I use to emulate the inching with a Zigbee relay switch.
So if you have a switch
entity, you will need to create a script that calls switch.toggle
on your entity
Improvements
There are some improvements (besides CSS and Jinja obviously):
- Make the
Open Gate
input to accept different type of entities - Make the
Open Gate
button to only show if the input is provided