Hikvision Doorbell WebRTC Integration - Native Local Two-Way Audio

Hello everyone!

I’ve built a Home Assistant integration that provides out-of-the-box WebRTC two-way audio for Hikvision doorbells, with low latency and no cloud services required.

What it does:

  • Real-time bidirectional audio communication with your doorbell
  • One-click talk button in a custom Lovelace card
  • Send pre-recorded audio files to the doorbell speaker
  • Everything runs locally on your network

Key features:

  • Native WebRTC support - Talk to visitors directly from your browser
  • Low latency - Audio streaming optimized for real-time communication
  • Local only - No external servers or cloud dependencies
  • Built on go2rtc - Integrates with Frigate for video streaming
  • Simple setup - Works with existing Frigate configurations

Architecture:

  • Custom integration for Home Assistant
  • Go-based server that bridges WebRTC to Hikvision’s ISAPI protocol
  • Custom Lovelace card built on Advanced Camera Card
  • Supports Kubernetes deployment

Requirements:

  • Hikvision doorbell with ISAPI two-way audio support
  • Frigate with go2rtc configured
  • Home Assistant accessible via HTTPS

Links:

All available via HACS, feedback and stars if you find it useful are well appreciated :slight_smile:

4 Likes

Great project and was very looking forward to getting it running but I couldnt get it work.
Apologies if I have made a stupid mistake somewhere

I’m running Home assistant OS on a VM and everything else in docker.
I got everything installed as described in the documentation. But when I add the card it says:
Camera initialization failed: Could not find camera entity

The entity made in home assistant just says it Idle and has no stream either.

I don’t want to overwhelm this post with logs so I’ll just write the parts that I think might be causing this.

  • I have a DS-KV8113-WME1 which has ISAPI support as per hikvisions website.
  • Frigate reverse proxy through cloudflare to 8971 port. This is the url I used when setting up the hikvision 2 way audio integration. Camera is streaming normally on Frigate and go2RTC is running
  • Hikvision server shows logs:
    GetTwoWayAudioChannels: Found 1 channels
    GetTwoWayAudioChannels: Channel 0 - ID: 1, Enabled: false, Codec: G.711ulaw
    Found 1 two-way audio channels
  • I looked through the camera settings and couldnt find something to enable that looked right
  • Home assistant logs show: Error requesting stream: camera.hikvision…

Any help would be greatly appreciated and a coffee is coming your way either way. I couldn’t see a link on your github