Hikvision Doorbell / Videointercom integration

I was thinking with Onvif I could get two-way audio directly from Onvif, so no needed SIP

Hey Pergola.Fabio First of all, many thanks! for the Extraordinary Work You have Put Into It!
It is greatly appreciated!

So let me briefly describe what I have and the problem that I believe should be straightforward.
So I got two units of 8003 and one 9510.
Hikvision doorbell is working under addons.
MQTT sees the 2 8003 and an unknown which Is the 9510
RTSP to WEBRTC installed
Frigate installed according to your explanation:

2023-08-12 20:58:19.845832853  [INFO] Got WebRTC port from supervisor: 8555
2023-08-12 20:58:20.232604336  [WARN] Using go2rtc binary from '/config/go2rtc' instead of the embedded one
2023-08-12 20:58:20.232612248  [INFO] Starting go2rtc...
2023-08-12 20:58:20.359316835  23:58:20.359 INF go2rtc version 1.6.2 linux/amd64
2023-08-12 20:58:20.359813664  23:58:20.359 INF [api] listen addr=0.0.0.0:1984
2023-08-12 20:58:20.360446539  23:58:20.360 INF [rtsp] listen addr=0.0.0.0:8554
2023-08-12 20:58:20.360847414  23:58:20.360 INF [webrtc] listen addr=0.0.0.0:8555/tcp
2023-08-12 20:58:20.361515183  23:58:20.361 INF [srtp] listen addr=0.0.0.0:8443

Now I am at the point where I must expose port 1984 for go2rtc, but I do not know how to do so.
I have tried to find this information everywhere, but I have been unsuccessful - could you please explain it to me?

I attempted to move forward since the frigate can see my cameras(not sure if that was right move), but when I edit the yaml file for the Frigate Hass Card, it does not know how to use the go2rtc and fails.
I guess this is because it is not exposed?. (can we add it in sidebar the web UI?)
(using also zero trust cloudflare - not sure if that relevant)

Thank you!
Asaf

Hi , in the frigate addon itself, with the options for that addon, you can enable 1984, it’s just for testing, if 2way works from http://IP:1984 , you can close the port again…

If you installed the frigate integration , it should create extra camera entities… That camera entity you need to use in the frigate card, that will enable automatic the go2rtc…

What error do you have?

Thank you. Very cool. But Frigate is very hard to use. I use WEB Torrent go2rts

It was quite easy, never used it before, it was almost up and running without any config

Hi @pergola.fabio! I have the DS-KD8003-IME1 together with the DS-KD-KK module (6 more buttons).
I run the command that you sent, but it seems to always get the same response, no matter which button I press. Actually I get the same response, even when no button is pressed.

Let me know if there’s anything else you want me to try.

Br,
George

>>> ~ % curl -i --digest -u admin:XXXXX "http://10.10.70.2/ISAPI/VideoIntercom/callerInfo?format=json"
HTTP/1.1 401 Unauthorized
Date: Wed, 16 Aug 2023 20:53:06 GMT
Server: webs
Content-Length: 0
Connection: close
X-Frame-Options: SAMEORIGIN
Cache-Control: no-store
Pragma: no-cache
WWW-Authenticate: Digest qop="auth", realm="DS-A3278A7D", nonce="MTA4OTBiNDg4YjU2NTFkYWY1OTlhODc5OWQ0NjE2ZmM=", stale="false", opaque="", domain="::"
Content-Type: application/json

HTTP/1.1 200 OK
Date: Wed, 16 Aug 2023 20:53:06 GMT
Server: webs
Content-Length: 154
Connection: close
X-Frame-Options: SAMEORIGIN
Cache-Control: no-store
Pragma: no-cache
Content-Type: application/json

{
	"CallerInfo":	{
		"buildingNo":	1,
		"floorNo":	0,
		"zoneNo":	1,
		"unitNo":	1,
		"devNo":	88,
		"devType":	1,
		"lockNum":	1,
		"status":	"idle"
	}
}%

Correct, doesn’t work with outdoor panels, if they have indoor station, we need to send it to indoor instead,it’s part of my addon already

OK, that’s great! I will add the indoor stations to the add-on configuration and hopefully it’ll work!

Thanks!

It works :slight_smile: but the addon is based SDK to get call events, no polling needed, it’s instant

No need to add indoor, you only need to add indoor, to send reject commands, or if you want zone/alarm sensors

Yes, but how would I know which button was pressed? It seems that I only have one sensor for call state, which (I assume - I haven’t tested it yet) that it goes from “idle” to “ringing” with all buttons. Is there any way to know which button was pressed?

Alternatively, it may work if I add all indoor stations and then check which indoor station is ringing after an outdoor button press.

ahhh, ok, yes , i added an extra option in my beta addon

add: caller_info: true in the config options of the addon, its default disabled
what it does, on doorbell event, it polls the callerinfo after the ringing event, and the callerinfo should be present in the doorbell sensor, alltough i wasnt able to test, cause i only have 1 button

keep me posted?

the idle state is normal when you do a curl, but u hope the info below is different for each number, that wiill be present as as an attribute in the call sensor

|||buildingNo:|1,|
|---|---|---|---|
|||floorNo:|0,|
|||zoneNo:|1,|

Do we need to have a HikVision indoor station to use the doorbell only on HA devices?

no, indoor device is not always needed, you can always use SIP

Hi,
So, I enable the caller_info attribute, but unfortunately I get the same info no matter which button I press. It’s the same data that I got though the curl command. I don’t know if it’s important, but I noticed that the status reported is ‘idle’, despite the fact that when I got the log entry, the doorbell was still ringing.

2023-08-16 22:47:22.625 | INFO | mqtt:video_intercom_alarm:264 - Callerinfo: {'CallerInfo': {'buildingNo': 1, 'floorNo': 0, 'zoneNo': 1, 'unitNo': 1, 'devNo': 88, 'devType': 1, 'lockNum': 1, 'status': 'idle'}}

It seems that the caller_info is actually exactly what the title says, caller info. When I press an outdoor station button, the caller is the outdoor station, and not the indoor station which is the called number (or callee). :frowning:

Yeah, the “idle” that stays idle is normal for 8003 devices… I was hopen the caller info would give us more info… That means I need to send the command to indoor station, hoping it will tell us what indoor stations is ringing

okay, I haven’t figured out yet why I have to use SIP without indoor device and can’t rely on the ISAPI (go2rtc) solution with frigate.

Seems I have to re-read the documentation.

Or probably send the message to all indoor stations, hoping that one of them will report “ringing”…

That’s an idea, but I was hoping the 8003 could tell us :frowning:

I also want to know how other outdoor devices work, if it works by sending it to outdoor

Until a better solution is found, I tried to add the indoor station to the add-on. But there’s no call state sensor like the one in the outdoor unit. Is this expected/work-in-progress?

Indeed, no call sensor, since no need for it, but I can activate it, with the caller_info : true