Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2-way audio for Reolink Doorbell not working, but can config for 1-way audio #1805

Closed
Joeviocoe opened this issue Jan 2, 2025 · 4 comments
Closed
Labels
bug Something isn't working

Comments

@Joeviocoe
Copy link

Joeviocoe commented Jan 2, 2025

Checklist:

[REQUIRED] Card diagnostic information:

card_version: 6.1.2
browser: Mozilla/5.0 (X11; Linux x86_64; rv:133.0) Gecko/20100101 Firefox/133.0
_cannot copy from mobile app, but it says Chrome/131.0.0.0.0 Mobile Safari/537.36 Home Assistant/2024.12.2-beta.0.0....Android 15; Pixel 7_
date: 2025-01-02T18:55:14.819Z
lang: en
timezone: America/Denver
git:
  hash: bc95f55
  build_date: Tue, 24 Dec 2024 00:23:18 GMT
  commit_date: Mon, 23 Dec 2024 16:22:10 -0800
ha_version: 2024.12.5
custom_integrations:
  frigate:
    detected: true
    version: 5.6.0
    devices:
      01JEVHTPF24CMHST9N5TKWZC2H: 5.6.0/0.15.0-87e7b62
  hass_web_proxy:
    detected: false
config:
  type: custom:frigate-card
  cameras:
    - frigate:
        camera_name: doorbell
      live_provider: go2rtc
  live:
    controls:
      next_previous:
        style: none
      thumbnails:
        mode: none
      timeline:
        mode: none
      ptz:
        mode: 'off'
      builtin: false
    microphone:
      always_connected: true
    auto_unmute:
      - microphone
    transition_effect: none
    display:
      mode: single
    draggable: false
    zoomable: false
    lazy_load: true
  dimensions: {}
  menu:
    style: outside
    buttons:
      frigate:
        enabled: true
      cameras:
        enabled: false
      substreams:
        enabled: false
      live:
        enabled: false
      clips:
        enabled: false
      snapshots:
        enabled: false
      download:
        enabled: false
      expand:
        enabled: false
      timeline:
        enabled: false
      media_player:
        enabled: false
      microphone:
        enabled: true
        type: toggle
      mute:
        enabled: true
      display_mode:
        enabled: false
      fullscreen:
        enabled: false
    position: bottom
    alignment: right
    button_size: 70
  performance:
    style:
      border_radius: false
      box_shadow: false
    features:
      animated_progress_indicator: false
  status_bar:
    style: none

[REQUIRED] Description of problem:
I am essentially STUCK having 1-way audio, in the direction of my choice depending on the camera config section.

go2rtc config:

go2rtc:
  streams:
    doorbell:
      - "ffmpeg:http://10.0.x.x/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=admin&password=PASS#video=copy#audio=copy#audio=opus"
      - rtsp://admin:[email protected]:554/h264Preview_01_main
      - ffmpeg:doorbell#audio=opus

... tried either/or/both ffmpeg lines... same result

But the difference seems to be in the frigate hass card:

cameras:
  - frigate:
      camera_name: doorbell
    live_provider: go2rtc
    go2rtc:
      modes:
        - webrtc

... Gives a working Android microphone to Doorbell speaker. But not the other direction. While...

cameras:
 - frigate:
     camera_name: doorbell
   live_provider: go2rtc

... Gives a working Doorbell microphone to Android speaker. But not the other direction.

The rest of the card config stays the exactly as this example and remains the same as I alternate the camera section.
I combine both configs in the same camera section, and it is still the same. Seems to use only the first/top entry.
Something wrong with the card config or a limitation of the HomeAssistant companion app for Android (webview browser)?

A workaround that seems to work... two separate cards, with different camera configs. I can get 2-way audio working. I modify each card so that one card only has the mic button and the other only has the mute/speaker button, and I set one of the cards with small dimensions so I only see one view of the feed. This works, but is not ideal.

I am on the latest dermotduffy/frigate-hass-card, and maybe it's a bug with the card.

[OPTIONAL] Javascript errors shown in the web inspector:

Media resource blob:https://HOSTNAME:8123/c1fe6fd7-2af7-4ffc-a3e2-842b711b00b8 could not be decoded. 5 doorbell
Media resource blob:https://HOSTNAME:8123/c1fe6fd7-2af7-4ffc-a3e2-842b711b00b8 could not be decoded, error: Error Code: NS_ERROR_DOM_MEDIA_FATAL_ERR (0x806e0005) doorbell
WebRTC: ICE failed, add a TURN server and see about:webrtc for more details
Media resource blob:https://HOSTNAME:8123/b9330b98-24cd-49dc-ab06-5e5a713a471e could not be decoded. 7 doorbell
Media resource blob:https://HOSTNAME:8123/b9330b98-24cd-49dc-ab06-5e5a713a471e could not be decoded, error: Error Code: NS_ERROR_DOM_MEDIA_FATAL_ERR (0x806e0005)

  • Home Assistant Supervised v12.5
  • HA Android companion app v2024.12.1-min on Pixel 7
  • Frigate Addon 0.15.0-beta4
  • Frigate Integration 5.6.0
  • Go2rtc 1.9.7 (also tried 1.9.2)
Reolink Video Doorbell WiFi
Build No.build 2410111119
Hardware No.DB_566128M5MP_W
Config Versionv3.0.0.0
Firmware Versionv3.0.0.4110_2410111119
DetailsDB_566128M5MP_WS36E1W7U0108
@Joeviocoe Joeviocoe added the bug Something isn't working label Jan 2, 2025
@swazrgb
Copy link

swazrgb commented Jan 8, 2025

I'm using a Reolink POE Doorbell successfully with this card. My configuration:

Frigate/go2rtc:

go2rtc:
  streams:
    doorbell:
      - ffmpeg:http://192.168.200.2/flv?port=1935&app=bcs&stream=channel0_main.bcs&user=admin&password=removed#video=copy#audio=copy#audio=opus
      - rtsp://admin:[email protected]/Preview_01_sub
    doorbell_sub:
      - ffmpeg:http://192.168.200.2/flv?port=1935&app=bcs&stream=channel0_ext.bcs&user=admin&password=removed
  webrtc:
    listen: :8555/tcp  # this is default
    ice_servers: []  # this is disable STUN/UDP external access (enabled by default)
    candidates:
      - 172.16.44.10:8555

The webrtc settings are optional but improved stability for me.

Card:

type: custom:frigate-card
cameras:
  - camera_entity: camera.doorbell
    live_provider: go2rtc
    go2rtc:
      modes:
        - webrtc
    image:
      mode: camera
live:
  microphone:
    always_connected: true

This works on android, but you must make sure your home assistant is accessed over HTTPS. It's not necessary for things to work, but I also prefer

menu:
  buttons:
    microphone:
      enabled: true
      type: toggle

so the microphone button becomes a toggle button

@soonerfan237
Copy link

For the WiFi Reolink Doorbell, the recent firmware versions break 2 way audio. See this thread for how to downgrade to the working firmware version.

blakeblackshear/frigate#10619 (reply in thread)

@Joeviocoe
Copy link
Author

For the WiFi Reolink Doorbell, the recent firmware versions break 2 way audio. See this thread for how to downgrade to the working firmware version.

blakeblackshear/frigate#10619 (reply in thread)

That was about a year ago, v3.0.0.3215_2401262240. It broke 2-way audio even for the official Reolink app. So easy to confirm firmware as the problem. They have since had updates and fixed the firmware.
I am using v3.0.0.4110_2410111119

@Joeviocoe
Copy link
Author

I got this working, but with pretty bad delay and loud echo.

go2rtc:
  streams:
    doorbell:
      - rtsp://admin:[email protected]:554/h264Preview_01_main
      - ffmpeg:doorbell#video=h264#audio=opus
    doorbell_sub:
      - rtsp://admin:[email protected]:554/h264Preview_01_sub
      - ffmpeg:doorbell_sub#video=h264#audio=opus
  ffmpeg:
    hwaccel_args: preset-vaapi
    volume: -af "volume=30dB"
    bin: /usr/lib/ffmpeg/7.0/bin/ffmpeg

...
cameras:
  cam_doorbell:
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/doorbell
          input_args: preset-rtsp-restream
          roles:
            - record
        - path: rtsp://127.0.0.1:8554/doorbell_sub
          input_args: preset-rtsp-restream
          roles:
            - detect
type: custom:frigate-card
cameras:
  - frigate:
      camera_name: doorbell_sub
    live_provider: go2rtc
live:
  controls:
    next_previous:
      style: none
    thumbnails:
      mode: none
    timeline:
      mode: none
    ptz:
      mode: "off"
    builtin: false
  microphone:
    always_connected: true
  auto_unmute:
    - microphone
  transition_effect: none
  display:
    mode: single
  draggable: false
  zoomable: false
  lazy_load: false
dimensions:
  aspect_ratio_mode: static
menu:
  style: outside
  buttons:
    frigate:
      enabled: false
    cameras:
      enabled: false
    substreams:
      enabled: false
    live:
      enabled: false
    clips:
      enabled: false
    snapshots:
      enabled: false
    download:
      enabled: false
    expand:
      enabled: false
    timeline:
      enabled: false
    media_player:
      enabled: false
    microphone:
      enabled: true
      type: toggle
    mute:
      enabled: true
    display_mode:
      enabled: false
    fullscreen:
      enabled: false
  position: bottom
  alignment: right
  button_size: 70
performance:
  style:
    border_radius: false
    box_shadow: false
  features:
    animated_progress_indicator: false
status_bar:
  style: none

This is so much worse than the official app unfortunately. The lag and echo is terrible. But at least it works.
I had luck with Neolink, but it only works once, then the exec neolink talk command is stuck on and requires a container restart.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants