2 Way audio Intercom for doorbell made easy

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

Grabaciondepantalla2025-01-19alas17.33.08-ezgif.com-optimize

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

  1. 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)
  2. browser-mod: GitHub - thomasloven/hass-browser_mod: 🔹 A Home Assistant integration to turn your browser into a controllable entity and media player

    Open your Home Assistant instance and start setting up a new integration.

  3. go2rtc: GitHub - AlexxIT/go2rtc: Ultimate camera streaming application with support RTSP, RTMP, HTTP-FLV, WebRTC, MSE, HLS, MP4, MJPEG, HomeKit, FFmpeg, etc.

  4. 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 the webrtc-camera card, but it’s necessary

    Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

  5. 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

    Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

  6. 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

    Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.

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:

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

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
3 Likes