DS-KD8003 - DS-KV8113 - DS-KV8213 - DS-KV6113 - DS-KV8413 and .... integration Hikvision HikConnect Video intercom doorbell

I didnt create an addon. I dont use HASSOS.
I run HA in plain docker.
So I created a hikvision docker image based on your zip file and then spun it via docker compose.

ah ok, makes sense now :slight_smile:

Hey, did some testing, indeed it works, i think
2 => answering the call => but offcourse no sound :slight_smile:
3 => cancelling the call => at this point you can manually open the hikconnect to start twowayaudio, this is not possible with command 2 , because already a session open
5 => hangup the call => not needed, doesnt work anyway , because we didnt answer

Gonna now integrate my zigbee sensor, so whenever door opens, it cancels all calls on all androids and indoor stations, great TIP ! :slight_smile:

1 Like

I’ve also made some progress with node red! I can receive door press events and also stop the doorbell ringing using the hangup command. This is using my DS-KV6113 doorbell. Now just need to learn a bit more node red to integrate it into the rest of my home assistant and I can finally install my doorbell! :smiley:

Thanks to everyone for their help :slight_smile:

serious? hangup works for you?? maybe only supported on 6113

What is the output of this commands below ?

curl -i --digest -u admin:xxx -X DELETE http://192.168.0.70/ISAPI/VideoIntercom/ring

Windows variant
curl -i --digest -u admin:xxx -d "{"""CallSignal""":{"""cmdType":"""hangUp"""}}" -H "Content-Type: application/json" -X PUT http://192.168.0.70/ISAPI/VideoIntercom/callSignal?format=json

Linux variant
curl -i --digest -u admin:xxx -d "{"CallSignal":{"cmdType":"hangUp"}}" -H "Content-Type: application/json" -X PUT http://192.168.0.70/ISAPI/VideoIntercom/callSignal?format=json

Yep! I’m over the moon :slight_smile: It was pretty simple to set up so worth trying I think!

This is the response from the 2 commands:

curl -i --digest -u admin:XXX -X DELETE http://192.168.0.42/ISAPI/VideoIntercom/ring
HTTP/1.1 401 Unauthorized
Date: Tue, 25 Jan 2022 18:25:11 GMT
Server: webs
Content-Length: 235
Connection: close
X-Frame-Options: SAMEORIGIN
Cache-Control: no-store
Pragma: no-cache
WWW-Authenticate: Digest qop=“auth”, realm=“DS-3F12ACE4”, nonce=“ZWFiMDBjZDMzNDU4ZTkzMTY4YTdmMGQyZThjN2U4NzA=”, stale=“false”, opaque=“”, domain=“::”
Content-Type: application/xml

HTTP/1.1 200 OK
Date: Tue, 25 Jan 2022 18:25:11 GMT
Server: webs
Content-Length: 279
Connection: close
X-Frame-Options: SAMEORIGIN
Cache-Control: no-store
Pragma: no-cache
Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8"?> /ISAPI/VideoIntercom/ring 1 OK ok

curl -i --digest -u admin:XXX -d “{”““CallSignal””“:{”““cmdType”:”““hangUp””“}}” -H “Content-Type: application/json” -X PUT http://192.168.0.42/ISAPI/VideoIntercom/callSignal?format=json
HTTP/1.1 401 Unauthorized
Date: Tue, 25 Jan 2022 18:25:45 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-3F12ACE4”, nonce=“ZTU5ZGJjNWI3YzQxNjAxNTVmNmU1ZTAxZTE4ZTk1OTk=”, stale=“false”, opaque=“”, domain=“::”
Content-Type: application/json

that fist command, if you do that? is anything stopped ? somekind of ringtone mute?

the output of the second command, are you testing on windows or linux? there should be more info in output

EDIT: btw, you changed password right instead of that XXXX :slight_smile: , i thin you only changed the IP of your outdoor station,because i only see unauthorized :slight_smile:

Those commands don’t work for me. The doorbell keeps ringing.

Sorry the copy missed off the last part of the second command: (Yes I hid my actual password :slight_smile: )

HTTP/1.1 400 Bad Request
Date: Tue, 25 Jan 2022 18:25:45 GMT
Server: webs
Content-Length: 206
Connection: close
X-Frame-Options: SAMEORIGIN
Cache-Control: no-store
Pragma: no-cache
Content-Type: application/json

{
“requestURL”: “/ISAPI/VideoIntercom/callSignal”,
“statusCode”: 4,
“statusString”: “Invalid Operation”,
“subStatusCode”: “invalidOperation”,
“errorCode”: 1073741830,
“errorMsg”: “invalid operation”
}

ok, thats actually verry good news!! :slight_smile:
Must be something wrong then with my curl command, but what, must be something verry stupid

node red uses : (working)

node.server.request(node, "DELETE", "/ISAPI/VideoIntercom/ring", "")
node.server.request(node, "PUT", "/ISAPI/VideoIntercom/callSignal?format=json", '{"CallSignal":{"cmdType":"hangUp"}}')

But why are commands below not working, only the second one, must be something with the json payload

curl -i --digest -u admin:xxx -X DELETE http://192.168.0.70/ISAPI/VideoIntercom/ring
curl -i --digest -u admin:xxx -d "{"CallSignal":{"cmdType":"hangUp"}}" -H "Content-Type: application/json" -X PUT http://192.168.0.70/ISAPI/VideoIntercom/callSignal?format=json

@Simon623 , according to the node info : node-red-contrib-hikvision-ultimate/hikvisionUltimateDoorbell.js at db16fec4e1c6ef89441e6787b20a977fb8acd0f9 · Supergiovane/node-red-contrib-hikvision-ultimate · GitHub

The first cuel command should just stop ringing, if you try the curl (if you didnt answer), it doesnt stop for you?
that means the curl doesnt work either ? (first command)

Correct first curl command doesn’t stop ringing. Node Red is working fine. Must be a problem with the curl command as you say.

Can you also change nodered so it only fires the first command? And not the second? Just want to know if nodered is able to just stop the ringing without answering…

If that succeeds , then both commands are wrong… Then it’s not only the JSON data…

Verry strange then, because all other commands are working that I used before, like call state, door open

I’m not sure I can do that. Node Red is graphical so you don’t need to edit any code.

Ah ok , hmm never used nodered before, gonna install it, just to see if it works, then at least I know my 8003 works too, that will confirm my command is wrong

@Simon623 , i never used nodered, how does it work? :slight_smile:
i installed the add-on, imported that flow with copy/paste code, now what? :slight_smile:

ok , got it, seems i need to install a pattete first …
question : my isapi is different for you for callstatus, so my callstatus never works, because isapi string is different… just a question, if you click on the “hangup” button in nodered , withouth anyone actually calling the doorbutton, do you also see this error then?

25 Jan 22:29:13 - [error] hikvisionUltimateDoorbell: Error hangUp clientGenericRequest.fetch error:Error response: Bad Request

When I click hang up without the doorbell ringing it says “successfully injected: hang up”

well, doesnt work for me

someone else in here with ds-kd8003 or 8113 that can test? i think it only works on 6113

Ah that’s a shame. Do you see an output in the node red debug window when the doorbell is pressed?

No, my ISAPi for callstatus is different … I think you can also use callerinfo for doorbell status, that’s the ISAPi string used by nodered… That doesn’t work for me, I need another command…

My callerinfo is always idle regardless a doorbell is pressed…maybe that’s why the hangup command doesn’t work, because it’s in an idle state…
But it’s still strange, that your curl command doesn’t work, it’s the exact same command, that gives me a little hope :+)…

Bur on the other hand, I have now implemented the hangup command with the cloud command, placed a zigbee doorsensor, so the call is terminated if we open the door :+)

On new call, I disabled now hikconnect, and now within a HA push notifications, I have an action defined to open hikconnect in a script , that script first answers the call, then opens hikconnect, the only button I need to press, is to start two way audio