Getting 2-way audio working Reolink PoE doorbell with Frigate

I’ve tried getting this to work in the past, but I am trying to give it another shot. Most video’s online describing setting up this, are not really relevant anymore (configuration wize).

This is my setup.
I am running:
Home assistant on the home assistant blue 2025.1.2 and 14.1 OS
I am running Frigate on a seperate machine on docker in unRaid.
I have a reolink NVR, but all camera’s and doorbell are connected outside of the NVR on a seperate PoE cisco Switch.

My Frigate code:

mqtt:
host: 10.10.1.10 # YOUR MQTT IP
port: 1883
topic_prefix: frigate
client_id: frigate
user: user # YOUR MQTT USERNAME
password: pass # YOUT MQTT PASSWORD
stats_interval: 60

detectors:
coral:
type: edgetpu
device: pci

ffmpeg:
output_args:
record: preset-record-generic-audio-aac

go2rtc:
streams:
Deurbel:
- rtsp://admin:[email protected]:554/
- ffmpeg:http://10.10.1.110/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=admin&password=password#audio=opus#audio=volume
Deurbel_sub:
- rtsp://admin:[email protected]:554/h264Preview_01_sub
- ffmpeg:http://10.10.1.110/flv?port=1935&app=bcs&stream=channel0_ext.bcs&user=admin&password=password#audio=opus#audio=volume
Achter_Rechts:
- rtsp://password:[email protected]/h264Preview_02_main
Achter_Links:
- rtsp://password:[email protected]/h264Preview_03_main
Lounge:
- rtsp://password:[email protected]/h264Preview_04_main
Linkerkant:
- rtsp://password:[email protected]/h264Preview_05_main
Voordeur:
- rtsp://admin:[email protected]/h264Preview_01_main
Oprit:
- rtsp://admin:[email protected]/h264Preview_01_main
Rechterkant:
- rtsp://password:[email protected]/h264Preview_08_main

ffmpeg:
  bin: ffmpeg
  volume: "-af \"volume=30dB\""

webrtc:
  listen: :8555
  candidates:
    - 10.10.1.10:8555
    - stun: 8555

cameras:
Deurbel:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/Deurbel
input_args: preset-rtsp-restream
roles:
- record
- path: rtsp://127.0.0.1:8554/Deurbel_sub
input_args: preset-rtsp-restream
roles:
- detect
detect:
enabled: true
width: 640
height: 360
fps: 5
objects:
track:
- person
- dog
- cat
snapshots:
enabled: true
timestamp: false
bounding_box: true
crop: false
retain:
default: 100
record:
enabled: true
retain:
days: 7
mode: active_objects

Achter_Rechts:
enabled: true
ffmpeg:
inputs:
- path: rtsp://password:[email protected]/h264Preview_02_sub
roles:
- detect
- path: rtsp://password:[email protected]/h264Preview_02_main
roles:
- record
detect:
enabled: true
width: 640
height: 360
fps: 5

Achter_Links:
enabled: true
ffmpeg:
inputs:
- path: rtsp://password:[email protected]/h264Preview_03_sub
roles:
- detect
- path: rtsp://password:[email protected]/h264Preview_03_main
roles:
- record
detect:
enabled: true
width: 640
height: 360
fps: 5

Lounge:
enabled: true
ffmpeg:
inputs:
- path: rtsp://password:[email protected]/h264Preview_04_sub
roles:
- detect
- path: rtsp://password:[email protected]/h264Preview_04_main
roles:
- record
detect:
enabled: true
width: 640
height: 360
fps: 5

Linkerkant:
enabled: true
ffmpeg:
inputs:
- path: rtsp://password:[email protected]/h264Preview_05_sub
roles:
- detect
- path: rtsp://password:[email protected]/h264Preview_05_main
roles:
- record
detect:
enabled: true
width: 640
height: 360
fps: 5

Voordeur:
enabled: true
ffmpeg:
inputs:
- path: rtsp://admin:[email protected]/h264Preview_01_sub
roles:
- detect
- path: rtsp://admin:[email protected]/h264Preview_01_main
roles:
- record
detect:
enabled: true
width: 640
height: 360
fps: 5
objects:
track:
- person
- dog
- cat
snapshots:
enabled: true
timestamp: false
bounding_box: true
crop: false
retain:
default: 100
record:
enabled: true
retain:
days: 7
mode: active_objects

Oprit:
enabled: true
ffmpeg:
inputs:
- path: rtsp://admin:[email protected]/h264Preview_01_sub
roles:
- detect
- path: rtsp://admin:[email protected]/h264Preview_01_main
roles:
- record
detect:
enabled: true
width: 1280
height: 720
fps: 5
objects:
track:
- person
- car
- dog
- cat
- bicycle
- horse
- motorcycle
snapshots:
enabled: true
timestamp: false
bounding_box: true
crop: false
retain:
default: 100
record:
enabled: true
retain:
days: 7
mode: active_objects

motion:
  mask: 0.488,0.026,0.486,0.06,0.59,0.063,0.59,0.028

Rechterkant:
enabled: true
ffmpeg:
inputs:
- path: rtsp://password:[email protected]/h264Preview_08_sub
roles:
- detect
- path: rtsp://password:[email protected]/h264Preview_08_main
roles:
- record
detect:
enabled: true
width: 640
height: 360
fps: 5

version: 0.15-1

My Frigate card in Home Assistant:

type: custom:frigate-card
cameras:

  • camera_entity: camera.deurbel
    live_provider: go2rtc
    go2rtc:
    modes:
    - webrtc
    view:
    default: live
    menu:
    buttons:
    microphone:
    enabled: true
    alignment: matching
    type: toggle
    mute:
    enabled: true
    alignment: matching
    frigate:
    enabled: false
    cameras:
    enabled: false
    substreams:
    enabled: false
    timeline:
    enabled: false
    download:
    enabled: false
    camera_ui:
    enabled: true
    snapshots:
    enabled: false
    clips:
    enabled: false
    style: outside
    position: bottom
    live:
    controls:
    builtin: false
    thumbnails:
    mode: none
    zoomable: false
    lazy_load: false
    draggable: false

I think I’ve setup WebRTC correctly. HomeAssistant is on HTTPS, because of I use cloud subscription. All ports on the doorbell are activated. And I think I used the same configuration as stated on the frigate wiki.

In Frigate, the stream of the doorbell is providing sound, but it is not in the homeassistant card

The microphone works from HomeAssistant to the doorbell.

And the microphone and speaker button are only shown in the app and not the desktop browser.

I hope someone can point me in the right direction here.