Aqara Video Doorbell G4 Announced with future Matter support

Yeah I get that.
im stuck at step 4. Details as above.
Sorry if my description causes some confusion

Above screen not from go2rtc. You showing error from Hass. There is no Hass at step 4

Step 4 is pairing the go2rtcā€™s virtual homekit device with iphone right?
It times out and fails, like this.


Forget about hass.

I donā€™t know. Maybe simple pin is a problem. Try to use some random or default.
Whatā€™s your iOS? How do you install go2rtc?

Tried multiple pins, or default pin
Using iOS 17.0.3,
tried both the one built in webRTC and the add-on

Have you check go2rtc errors logs? Also you can increase log level to trace

Important thing, your api section should be without password

Api password was cleaned when i tried minimal config, which looked like this:

log:
  format: ""
  level: "trace"

streams: 
  aqara_doorbell: 
    - hass:Aqara-G4-Doorbell
    - ffmpeg:aqara_doorbell#audio=aac#audio=opus#async     # only OPUS audio supported by HomeKit
      
homekit:
  aqara_doorbell:
    pin: 19550224

As for logs, Iā€™ve set the level to trace and posted it above, but I did it again and there seemed to something different on latest version 1.8.1:
(started->streamed for a few seconds->tried to pair)

      encoder         : Lavc60.3.100 aac
  Stream #0:1: Audio: opus, 16000 Hz, mono, flt, 64 kb/s
    Metadata:
      encoder         : Lavc60.3.100 libopus
01:12:33.911 TRC [webrtc] answer
v=0
o=- 99325790212252441 1697562753 IN IP4 0.0.0.0
s=-
t=0 0
a=fingerprint:sha-256 95:9E:57:AD:11:23:13:86:A7:BB:07:8D:30:6C:42:78:5D:B0:C7:4F:D4:20:57:FA:54:1D:93:F2:F1:9A:66:0C
a=extmap-allow-mixed
a=group:BUNDLE 0 1
m=video 9 UDP/TLS/RTP/SAVPF 102 106 112
c=IN IP4 0.0.0.0
a=setup:active
a=mid:0
a=ice-ufrag:GCnCinHWYzznzQkK
a=ice-pwd:hrMBLwzzczGEjrnxolCiZFZVVAfrpYQD
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:102 H264/90000
a=fmtp:102 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f
a=rtcp-fb:102 goog-remb 
a=rtcp-fb:102 transport-cc 
a=rtcp-fb:102 ccm fir
a=rtcp-fb:102 nack 
a=rtcp-fb:102 nack pli
a=rtpmap:106 H264/90000
a=fmtp:106 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f
a=rtcp-fb:106 goog-remb 
a=rtcp-fb:106 transport-cc 
a=rtcp-fb:106 ccm fir
a=rtcp-fb:106 nack 
a=rtcp-fb:106 nack pli
a=rtpmap:112 H264/90000
a=fmtp:112 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=64001f
a=rtcp-fb:112 goog-remb 
a=rtcp-fb:112 transport-cc 
a=rtcp-fb:112 ccm fir
a=rtcp-fb:112 nack 
a=rtcp-fb:112 nack pli
a=extmap:4 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=ssrc:2733121644 cname:go2rtc
a=ssrc:2733121644 msid:go2rtc go2rtc-video
a=ssrc:2733121644 mslabel:go2rtc
a=ssrc:2733121644 label:go2rtc-video
a=msid:go2rtc go2rtc-video
a=sendonly
m=audio 9 UDP/TLS/RTP/SAVPF 111 0 8
c=IN IP4 0.0.0.0
a=setup:active
a=mid:1
a=ice-ufrag:GCnCinHWYzznzQkK
a=ice-pwd:hrMBLwzzczGEjrnxolCiZFZVVAfrpYQD
a=rtcp-mux
a=rtcp-rsize
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10;useinbandfec=1
a=rtcp-fb:111 transport-cc 
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=extmap:4 http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01
a=ssrc:651735738 cname:go2rtc
a=ssrc:651735738 msid:go2rtc go2rtc-audio
a=ssrc:651735738 mslabel:go2rtc
a=ssrc:651735738 label:go2rtc-audio
a=msid:go2rtc go2rtc-audio
a=sendonly
01:12:33.930 TRC [webrtc] local candidate="candidate:2076839501 1 tcp 1671430143 192.168.50.200 8555 typ host tcptype passive"
01:12:33.940 TRC [webrtc] local candidate="candidate:3325657005 1 udp 2130706431 192.168.50.200 43527 typ host"
01:12:34.053 TRC [api.ws] msg type=webrtc/candidate
01:12:34.054 TRC [webrtc] remote candidate=
01:12:41.027 TRC github.com/AlexxIT/go2rtc/internal/api/ws/ws.go:120 > error="websocket: close 1000 (normal)"
01:12:56.235 DBG [streams] stop producer url=ffmpeg:aqara_doorbell#audio=aac#audio=opus#async
01:12:56.236 TRC [streams] stop reconnect url=ffmpeg:aqara_doorbell#audio=aac#audio=opus#async
size=       0kB time=00:00:00.34 bitrate=   0.0kbits/s speed=N/A    
size=N/A time=00:00:00.38 bitrate=N/A speed=0.728x    
size=N/A time=00:00:01.20 bitrate=N/A speed=0.784x    
size=N/A time=00:00:02.24 bitrate=N/A speed= 1.1x    
size=N/A time=00:00:02.76 bitrate=N/A speed=1.08x    
size=N/A time=00:00:03.10 bitrate=N/A speed=0.924x    
size=N/A time=00:00:03.98 bitrate=N/A speed=1.03x    
size=N/A time=00:00:04.52 bitrate=N/A speed=1.02x    
size=N/A time=00:00:04.90 bitrate=N/A speed=0.934x    
size=N/A time=00:00:05.96 bitrate=N/A speed=1.03x    
size=N/A time=00:00:06.48 bitrate=N/A speed=1.02x    
size=N/A time=00:00:06.82 bitrate=N/A speed=0.962x    
size=N/A time=00:00:07.74 bitrate=N/A speed=1.01x    
size=N/A time=00:00:08.34 bitrate=N/A speed=1.02x    
size=N/A time=00:00:08.66 bitrate=N/A speed=0.965x    
size=N/A time=00:00:09.66 bitrate=N/A speed=1.02x    
size=N/A time=00:00:10.20 bitrate=N/A speed=1.02x    
size=N/A time=00:00:10.52 bitrate=N/A speed=0.971x    
size=N/A time=00:00:11.54 bitrate=N/A speed=1.01x    
size=N/A time=00:00:12.06 bitrate=N/A speed=1.02x    
size=N/A time=00:00:12.40 bitrate=N/A speed=0.975x    
size=N/A time=00:00:13.44 bitrate=N/A speed=1.02x    
size=N/A time=00:00:13.94 bitrate=N/A speed=1.01x    
size=N/A time=00:00:14.30 bitrate=N/A speed=0.984x    
size=N/A time=00:00:15.18 bitrate=N/A speed=1.01x    
size=N/A time=00:00:15.70 bitrate=N/A speed=1.01x    
size=N/A time=00:00:16.08 bitrate=N/A speed=0.979x    
size=N/A time=00:00:17.14 bitrate=N/A speed=1.01x    
size=N/A time=00:00:17.64 bitrate=N/A speed=1.01x    
size=N/A time=00:00:18.00 bitrate=N/A speed=0.985x    
size=N/A time=00:00:18.92 bitrate=N/A speed=1.01x    
size=N/A time=00:00:19.40 bitrate=N/A speed=   1x    
size=N/A time=00:00:19.84 bitrate=N/A speed=0.985x    
size=N/A time=00:00:20.80 bitrate=N/A speed=1.01x    
size=N/A time=00:00:21.30 bitrate=N/A speed=1.01x    
size=N/A time=00:00:21.68 bitrate=N/A speed=0.986x    
size=N/A time=00:00:22.68 bitrate=N/A speed=1.01x    
av_interleaved_write_frame(): Broken pipe
[out#0/rtsp @ 0x7fe2ca679b80] Error muxing a packet
size=N/A time=00:00:23.14 bitrate=N/A speed=   1x    
[out#0/rtsp @ 0x7fe2ca679b80] Error writing trailer: Broken pipe
size=N/A time=00:00:23.16 bitrate=N/A speed=   1x    
video:0kB audio:4kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[aac @ 0x7fe2c6fd8c00] Qavg: 65536.000
Conversion failed!
01:12:56.393 TRC [rtsp] server request:
TEARDOWN rtsp://127.0.0.1:8554/aqara_doorbell?audio RTSP/1.0
Cseq: 5
User-Agent: go2rtc/ffmpeg
Session: 34192144

01:12:56.393 DBG [rtsp] handle=EOF
01:12:56.394 DBG [streams] stop producer url=hass:Aqara-G4-Doorbell
01:12:56.397 DBG [streams] can't stop none producer
01:12:56.397 DBG [rtsp] disconnect stream=aqara_doorbell
01:12:56.927 TRC [exec] close url="exec:ffmpeg -hide_banner -use_wallclock_as_timestamps 1 -async 1 -fflags nobuffer -flags low_delay -timeout 5000000 -user_agent go2rtc/ffmpeg -rtsp_flags prefer_tcp -i rtsp://127.0.0.1:8554/aqara_doorbell?audio -map 0:a:0? -c:a:0 aac -map 0:a:0? -c:a:1 libopus -application:a:1 lowdelay -frame_duration 20 -min_comp 0 -vn -user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}"
01:12:57.323 TRC [api] POST /pair-setup 192.168.50.200:40646
01:12:57.323 ERR [homekit] unknown host: 172.30.232.1
01:12:59.784 TRC [api] POST /pair-setup 192.168.50.200:40646
01:12:59.784 ERR [homekit] unknown host: 172.30.232.1
01:13:01.362 TRC [streams] stop reconnect url=hass:Aqara-G4-Doorbell

Something strange in your setup or your network. Host shouldnā€™t be a IP address

unknown host: 172.30.232.1

Logs of my latest attempt:

10:36:26.188 TRC [api] POST /pair-setup 192.168.50.200:36530
10:36:26.188 ERR [homekit] unknown host: 172.30.32.1
10:36:30.494 TRC [api] POST /pair-setup 192.168.50.200:36530
10:36:30.494 ERR [homekit] unknown host: 172.30.32.1

which i believe is the ha core containerā€™s ip in HAOS:

[core-ssh ~]$ ha core info
arch: amd64
audio_input: None
audio_output: None
boot: true
image: ghcr.io/home-assistant/qemux86-64-homeassistant
ip_address: 172.30.32.1
machine: qemux86-64
port: 8123
ssl: false
update_available: true
version: 2023.10.0
version_latest: 2023.10.3
watchdog: true

Iā€™m running HAOS on synology which connects directly to my network, sharing the same ip pool with synology itself.
Running command ip a in ha terminal shows:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
21: eth0@if22: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP
    link/ether 02:42:ac:1e:21:02 brd ff:ff:ff:ff:ff:ff
    inet 172.30.33.2/23 brd 172.30.33.255 scope global eth0
       valid_lft forever preferred_lft forever

Didnā€™t notice anything unusual, any ideas?

Iā€™m also having the same issues with this.

What I did:

  1. Installed go2Rtc addon and WebRTC Camera integration
  2. Paired the G4 Doorbell with HA via Homekit device integration
  3. In go2rtc I added the camera as shown in my yaml
  4. I can now see and watch the cam under the streams tab
  5. Added code to the yaml to expose the cam to Homekit
  6. Tried to add the cam in the iOS Home app via ā€œAdd device > More optionsā€
  7. I see the camera, but when trying to pair it timed out.

Can you provide working config yaml, @AlexxIT ? That would be so nice :slight_smile:

Traced logs donā€™t show any errors. The only homekit related etry is:

02:33:11.476 TRC [homekit] mnds: [{"name":"Klingel","port":1984,"info":{"c#":"1","ci":"17","ff":"0","id":"39:11:85:D7:A7:BB","md":"go2rtc/1.8.1","pv":"1.1","s#":"1","sf":"1","sh":"uuAWTg=="}}]

Config

api:
  listen: ":1984"
  base_path: ""
  static_dir: ""
  origin: ""

ffmpeg:
  bin: "ffmpeg"
  global: "-hide_banner"
  file: "-re -stream_loop -1 -i {input}"
  http: "-fflags nobuffer -flags low_delay -i {input}"
  rtsp: "-fflags nobuffer -flags low_delay -timeout 5000000 -user_agent go2rtc/ffmpeg -rtsp_transport tcp -i {input}"
  output: "-user_agent ffmpeg/go2rtc -rtsp_transport tcp -f rtsp {output}"
  # ... different presets for codecs

hass:
  config: ""

log:
  format: ""
  level: "info"

ngrok:
  command: ""

rtsp:
  listen: ":8554"
  username: ""
  password: ""

srtp:
  listen: ":8443"

streams:
  Klingel: hass:Klingel

homekit:
  Klingel:  # same stream ID from streams list  
    pin: 20061988 
    name: Klingel
    device_id: Klingel     
    device_private: Klingel

webrtc:
  listen: ":8555"
  candidates: []
  ice_servers:
    - urls: [ "stun:stun.l.google.com:19302" ]
      username: ""

Config provided in the go2rtc docs

Update.
Now I get this at least, would really appreciate some hints.

Logs:

13:21:14.620 TRC [api] POST /pair-verify 192.168.50.36:58599
13:21:21.039 TRC [api] POST /pair-verify 192.168.50.36:58600
13:21:23.602 TRC [api] POST /pair-verify 192.168.50.36:58601
13:21:27.268 TRC [api] POST /pair-verify 192.168.50.36:58610
13:21:31.053 TRC [api] POST /pair-verify 192.168.50.36:58613
13:21:35.294 TRC [api] POST /pair-verify 192.168.50.36:58618
13:21:55.854 TRC [api] GET / 172.30.32.2:49218
13:21:55.965 TRC [api] GET /main.js 172.30.32.2:49218
13:21:56.031 TRC [api] GET /api 172.30.32.2:49218
13:21:56.040 TRC [api] GET /api/streams 172.30.32.2:49234
13:21:56.871 TRC [api] GET /editor.html 172.30.32.2:49234
13:21:56.952 TRC [api] GET /main.js 172.30.32.2:49234
13:21:57.073 TRC [api] GET /api/config 172.30.32.2:49234
13:22:04.004 TRC [api] POST /pair-verify 192.168.50.36:58621
13:22:06.700 TRC [api] POST /pair-verify 192.168.50.36:58622
15:09:31.067 TRC [api] GET / 172.30.32.2:40112
15:09:31.149 TRC [api] GET /main.js 172.30.32.2:40112
15:09:31.229 TRC [api] GET /api 172.30.32.2:40112
15:09:31.238 TRC [api] GET /api/streams 172.30.32.2:40120
15:09:32.049 TRC [api] GET /editor.html 172.30.32.2:40120
15:09:32.140 TRC [api] GET /main.js 172.30.32.2:40120
15:09:32.297 TRC [api] GET /api/config 172.30.32.2:40120
15:09:53.701 TRC [api] GET /api/config 172.30.32.2:56920
15:09:53.799 TRC [api] POST /api/config 172.30.32.2:56920
15:09:54.938 TRC [api] POST /api/restart 172.30.32.2:56920
15:09:54.960 INF go2rtc version 1.8.1 linux/amd64
15:09:54.960 TRC [api] register path path=/
15:09:54.960 TRC [api] register path path=/api
15:09:54.960 TRC [api] register path path=/api/config
15:09:54.960 TRC [api] register path path=/api/exit
15:09:54.960 TRC [api] register path path=/api/restart
15:09:54.961 INF [api] listen addr=0.0.0.0:1984
15:09:54.962 TRC [api] register path path=/api/ws
15:09:54.962 TRC [api] register path path=/api/streams
15:09:54.963 INF [rtsp] listen addr=0.0.0.0:8554
15:09:54.964 INF [webrtc] listen addr=0.0.0.0:8555/tcp
15:09:54.964 TRC [api] register path path=/api/webrtc
15:09:54.964 TRC [api] register path path=/api/frame.mp4
15:09:54.964 TRC [api] register path path=/api/stream.mp4
15:09:54.964 TRC [api] register path path=/api/stream.m3u8
15:09:54.965 TRC [api] register path path=/api/hls/playlist.m3u8
15:09:54.965 TRC [api] register path path=/api/hls/segment.ts
15:09:54.965 TRC [api] register path path=/api/hls/init.mp4
15:09:54.965 TRC [api] register path path=/api/hls/segment.m4s
15:09:54.965 TRC [api] register path path=/api/frame.jpeg
15:09:54.965 TRC [api] register path path=/api/stream.mjpeg
15:09:54.965 TRC [api] register path path=/static
15:09:54.965 TRC [api] register path path=/streams
15:09:54.966 TRC [api] register path path=/stream/
15:09:54.971 DBG [hass] load config url="hass:Desk Lamp"
15:09:54.972 DBG [hass] load config url="hass:Dorm Desk Lamp"
15:09:54.972 DBG [hass] load config url=hass:Aqara-G4-Doorbell
15:09:54.972 DBG [hass] load config url="hass:Go2RTC - 127.0.0.1:1984"
15:09:54.972 TRC [api] register path path=/api/hass
15:09:54.972 TRC [api] register path path=/onvif/
15:09:54.972 TRC [api] register path path=/api/onvif
15:09:54.973 TRC [api] register path path=/api/webtorrent
15:09:54.974 TRC [api] register path path=/api/stream.flv
15:09:54.974 TRC [api] register path path=/api/ffmpeg/devices
15:09:54.975 TRC [api] register path path=/api/ffmpeg/hardware
15:09:54.975 TRC [api] register path path=/api/dvrip
15:09:54.975 TRC [api] register path path=/api/stream.ts
15:09:54.975 TRC [api] register path path=/api/stream.aac
15:09:54.975 TRC [api] register path path=/api/roborock
15:09:54.976 TRC [api] register path path=/api/homekit
15:09:54.984 TRC [api] register path path=/pair-setup
15:09:54.984 TRC [api] register path path=/pair-verify
15:09:54.985 TRC [homekit] mnds: [{"name":"go2rtc-C3E1","port":1984,"info":{"c#":"1","ci":"17","ff":"0","id":"80:D9:4B:45:4F:CC","md":"go2rtc/1.8.1","pv":"1.1","s#":"1","sf":"1","sh":"w7rhJg=="}}]
15:09:54.985 TRC [api] register path path=/api/nest
15:09:54.990 TRC [api] register path path=/api/stack
15:10:31.414 TRC [api] POST /pair-setup 192.168.50.36:58957
15:10:35.667 ERR github.com/AlexxIT/go2rtc/internal/homekit/homekit.go:155 > error=EOF
15:11:06.799 TRC [api] POST /pair-setup 192.168.50.36:58968
15:11:10.296 TRC [homekit] 192.168.50.36:58968: add pair id=9A08ED0F-E70F-4363-9342-AE42FEB65AB3 public=ad0c2fa82938ccc1d42dfc181442f074c404cf953db42dae8230feee815de8f5 perm=1
15:11:10.296 TRC [homekit] 192.168.50.36:58968: get pair id=9A08ED0F-E70F-4363-9342-AE42FEB65AB3
15:11:10.343 TRC [api] POST /pair-verify 192.168.50.36:58969
15:11:10.356 TRC [homekit] 192.168.50.36:58969: get pair id=9A08ED0F-E70F-4363-9342-AE42FEB65AB3
15:11:14.364 ERR github.com/AlexxIT/go2rtc/internal/homekit/homekit.go:174 > error="dial tcp: missing address"
15:11:17.578 TRC [api] POST /pair-verify 192.168.50.36:58970
15:11:20.969 TRC [api] POST /pair-verify 192.168.50.36:58971
15:11:24.865 TRC [api] POST /pair-verify 192.168.50.36:58972
15:11:28.239 TRC [api] POST /pair-verify 192.168.50.36:58973
15:11:32.553 TRC [api] POST /pair-verify 192.168.50.36:58974
15:11:35.798 TRC [api] POST /pair-verify 192.168.50.36:58976
15:11:38.889 TRC [api] POST /pair-verify 192.168.50.36:58977
15:11:41.708 TRC [api] POST /pair-verify 192.168.50.36:58978
15:11:45.768 TRC [api] POST /pair-verify 192.168.50.36:58979
15:11:49.206 TRC [api] POST /pair-verify 192.168.50.36:58981
15:11:53.143 TRC [api] POST /pair-verify 192.168.50.36:58982
15:11:56.870 TRC [api] POST /pair-verify 192.168.50.36:58984
15:12:00.758 TRC [api] POST /pair-verify 192.168.50.36:58988
15:12:04.165 TRC [api] POST /pair-verify 192.168.50.36:58989
15:12:06.862 TRC [api] POST /pair-verify 192.168.50.36:58990
15:12:10.174 TRC [api] POST /pair-verify 192.168.50.36:58991
15:12:13.533 TRC [api] POST /pair-verify 192.168.50.36:58992
15:12:17.100 TRC [api] POST /pair-verify 192.168.50.36:58993
15:12:20.608 TRC [api] POST /pair-verify 192.168.50.36:58994
15:12:23.219 TRC [api] POST /pair-verify 192.168.50.36:59000
15:12:26.161 TRC [api] POST /pair-setup 192.168.50.36:59001
15:12:26.280 ERR github.com/AlexxIT/go2rtc/internal/homekit/homekit.go:155 > error="tlv8: unmarshal zero data"

and config did get a new entry like this:

homekit:
  aqara_doorbell:
    pin: 53942004
    pairings:
      - client_id=9A08ED0F-E70F-4363-9342-AE42FEB65AB3&client_public=ad0c2fa82938ccc1d42dfc181442f074c404cf953db42dae8230feee815de8f5&permissions=1

Finally did it! My mistake and misunderstandig was, to implement the camera back to homekit via the Hass source like:

streams:
  generic_camera: hass:Camera1  # Settings > Integrations > Integration Name
  aqara_g3: hass:Camera-Hub-G3-AB12

But the solution for me was now:

streams:
  klingel: 
    - homekit://...... (Homekit link taken from the "Add"-Tab under Home-Assistant)
    - ffmpeg:klingel#audio=opus

homekit:
  klingel: 

Butā€¦ after the pairing it worked fine, 2-way-audio also workedā€¦but just once. after I closed the feed and tried to reopen it, it says ā€œne responseā€ :frowning: ahhhh!

Here is my log:

14:27:33.088 TRC [homekit] 192.168.1.110:51466: get pair id=371A5075-658B-42CD-8F0A-81A397ACF7AB
**14:27:33.088 ERR github.com/AlexxIT/go2rtc/internal/homekit/homekit.go:174 > error="hap: PairVerify from: 192.168.1.110:51466, with unknown client_id: 371A5075-658B-42CD-8F0A-81A397ACF7AB"**
14:27:33.096 TRC [api] POST /pair-verify 192.168.1.110:51467
14:27:33.101 TRC [homekit] 192.168.1.110:51467: get pair id=34496E25-61E1-4047-AA13-B7B542E74B54
14:27:33.817 TRC [homekit] 192.168.1.8:49482: add pair id=E7E25DC4-4190-4B1B-A8EB-BDD3B079B581 public=26d44f9cf3e378793558971cf33f3a8a151ee54e21e03d7f915c01446b94f4c2 perm=0
14:27:33.817 TRC [homekit] 192.168.1.8:49482: get pair id=E7E25DC4-4190-4B1B-A8EB-BDD3B079B581
14:27:40.931 TRC [api] POST /pair-verify 192.168.1.122:49267
14:27:40.937 TRC [homekit] 192.168.1.122:49267: get pair id=34496E25-61E1-4047-AA13-B7B542E74B54

The IP in the error line is from my AppeTV.

Thanks. That solved it.
I guess the example config for transparent proxy did use the ā€œhomekit://...ā€ source, my badā€¦
The documentation could use some clarification that the transparent proxy demands a ā€œhomekit://...ā€ source, even if ā€œhass:...ā€ source is indeed a homekit camera.
Just a note in case anyone comes across this issue.

Does it work properly or do you also have issues after pairing? Is your log showing anything bad?

It worked fined and nothing suspicious in the log, sorry.:joy:
You can try repair it with all hubs-enabled devices(especially homepod mini if you happen to have one) unplugged, mine was ā€œno responseā€ for a while and that fixed it. I donā€™t think itā€™s the same issue but worth a shot.

Is the Doorbell now working properly in HA and HomeKit? Not just experimental, but stable for an everyday usage?

I waited with buying the doorbell cause of the existing issues with HA. Thank you in advance for your help.

go2rtc works; however, sometimes the camera will respond with too many devices accessing (I think limit may be two) and you have to wait in that case. Also, events donā€™t seem to pass through so notifications do not work (possibly this also breaks HKSV). TL;dr this is too unreliable to use.

How did you add the Camera paired with HA to go2rtc?
" 1. In go2rtc I added the camera as shown in my yaml"