Hikvision Doorbell / Videointercom integration

Yes, I see it for control commands, but for status request, it does not update.

For control I see the “request” and “response” under “hmd/text/IndoorScreen/ISAPI-request/attributes”
But for status request, it does not populate, just stays on last OPEN/CLOSE request.

Here is the log:

2024-12-16 16:25:10.759 | INFO     | mqtt_input:_isapi_input_callback:505 - Received input text for doorbell: IndoorScreen

2024-12-16 16:25:10.769 | ERROR    | mqtt_input:_isapi_input_callback:528 - Error while invoking ISAPI endpoint: ('Error while calling ISAPI /ISAPI/SecurityCP/status/outputStatus?format=json', 23, 'Device does not support this function.')

[2024-12-16 16:25:10.769][DBG] SimpleSTDCommandToDvr with out cmd[POST /ISAPI/SecurityCP/status/outputStatus?format=json], input size[90], max segment length[262144]

Also, any chance you could add a few lines of code to update the hmd/switch/IndoorScreen/Com-1-relay/state in the case an isapi status request is sent?

Even if I can get the “attributes” to populate, it still needs regex analysis, which is not possible with the mqtt plugin for homebridge.

The attribute should be filled, can you test again with debug enabled on the container? It should be there too…

The attribute is just an output, it’s filled with whatever json/XML comes from the device… It can be whatever you ask… so not sure how I can template it?

Do you want me to update the switch?
Isn’t it better that I don’t define the switch to always OFF , so you can send ON and OFF ?

Says command is not supported:

2024-12-16 17:15:45.280 | INFO     | mqtt_input:_isapi_input_callback:505 - Received input text for doorbell: IndoorScreen

2024-12-16 17:15:45.291 | ERROR    | mqtt_input:_isapi_input_callback:528 - Error while invoking ISAPI endpoint: ('Error while calling ISAPI /ISAPI/SecurityCP/status/outputStatus?format=json', 23, 'Device does not support this function.')

[2024-12-16 17:15:45.291][DBG] SimpleSTDCommandToDvr with out cmd[POST /ISAPI/SecurityCP/status/outputStatus?format=json], input size[90], max segment length[262144]

But it actually does work when tested through hik-connect

What device do you have? The SDK used by hikconnect is indeed different, not all commands are supported by direct Isapi command , don’t ask my why :slight_smile:

Maybe the json you are sending is a bit different with hikconnect, hard to tell with all that extra http content, maybe you can filter it out …

I have the DS-KH6350-WTE1

I mean the isapi command does work through hik-connect (using https://apiius.hik-connect.com/v3/userdevices/v1/isapi). So if Hik-connect is passing status request using isapi, how would the actual indoor station not support it?

Here is the actual request:
Screenshot 2024-12-16 at 12.25.28

I have no idea, all what I found was a bit of guessing, there is no documention anywhere, I’m just sharing what I found :+)