Can anybody confirm whether the DS-KV6114-MWBE1 doorbell works well? It’s a newer model, supposed to have a better camera and features, but I fear about the integration and the 2-way audio.
Ok i managed to get my hand on one unit @home and doing some api discovery ! i hope you will be able to use it. @pergola.fabio
Technical API Discovery for Hikvision DS-K1T502 (Access Control & Intercom Hybrid)
Device Model: DS-K1T502 (Access Control Terminal with Video Intercom functions) Firmware Version: 1.19 / 1.20 no major change between the two.
Some picture
- Handling the Doorbell (Call Button vs. Bell Button)**
The device has two buttons.
- Call Button (Phone icon): Triggers a SIP/VoIP call. It does not appear in the HTTP push or alert stream.
- Solution: Status must be polled via
GET /ISAPI/VideoIntercom/callStatus?format=json. - Ringing state:
{"CallStatus":{"status":"ring"}} - Idle state:
{"CallStatus":{"status":"idle"}}
- Solution: Status must be polled via
- Doorbell Button (Bell icon): Acts as an alarm trigger.
- Event: Major 5 / Sub 37. It is pushed instantly via HTTP Listening.
| Category | Action | Major | Sub | Notes |
|---|---|---|---|---|
| Access | Valid Badge | 5 | 1 | Returns cardNo and name |
| Access | Valid PIN Code | 5 | 181 | Returns user name linked to PIN |
| Access | Invalid Badge/PIN | 5 | 9 | Returns cardNo of the attempt |
| Relay | Relay ON (Open) | 5 | 21 | Physical relay activation |
| Relay | Relay OFF (Closed) | 5 | 22 | Physical relay de-activation |
| Door State | Door “Remain Open” | 5 | 19 | Logic state: Locked Open |
| Door State | Door “Normal” | 5 | 20 | Logic state: Back to Normal |
| Commands | Remote Open | 3 | 1024 | Via App/Cloud |
| Commands | Remote Close | 3 | 1025 | Force Close command |
| Commands | Remote Remain Open | 3 | 1026 | Keep Open command |
| Alarms | Tamper Triggered | 1 | 1028 | Device removed from wall |
| Alarms | Tamper Restored | 1 | 1029 | Device re-installed |
3. Remote Call Control
To programmatically handle the ringing state from Home Assistant:
- Cancel/Reject Call:
PUT /ISAPI/VideoIntercom/callSignal?format=json- Payload:
{"CallSignal":{"cmdType":"cancel"}} - Note: Using
cancelsuccessfully stops the ringing on the device, indoor stations, and Hik-Connect simultaneously.
4. Integration Suggestion
For hybrid devices like the DS-K1T series, it would be beneficial to:
- Implement an optional polling mechanism (2s interval) for
callStatusto detect incoming calls, as the alert stream is blind to them. - Add a Webhook listener capable of parsing
multipart/form-datato catch the specific Major/Sub events listed above, which provides much more detail than the standard stream for these specific models.
**== Warning the Httplistener must be set in the webUI interface.
System and maintenance / network / network Service / http Listening
5. Remote Door Control (Opening the Relay)
To trigger the door relay (Lock) from Home Assistant or via API, you must send an XML payload. Note that this model requires a PUT request.
- URL:
http://<device_ip>/ISAPI/AccessControl/RemoteControl/door/1 - Method:
PUT - Authentication: Digest
- Payload (XML):
<RemoteControlDoor version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<cmd>open</cmd>
</RemoteControlDoor>
Home Assistant rest_command example:
rest_command:
hikvision_open_door:
url: "http://192.168.2.74/ISAPI/AccessControl/RemoteControl/door/1"
method: put
username: admin
password: YOUR_PASSWORD
auth: digest
content_type: "application/xml"
payload: '<RemoteControlDoor version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema"><cmd>open</cmd></RemoteControlDoor>'
I have validated all these endpoints using manual CURL commands and Webhook interception. I hope this helps improve the integration for this device family!
Thnx for sharing, but all those commands are already part of my addon, have you tried it? Does it allow SDK?
I think this is the problem on this doorbell:
Port 80 respond :
[2026-04-25 23:29:36.899][INF] COM_Logout[-1][1]
[2026-04-25 23:29:36.900][INF] Login dev 192.168.2.74:80.
[2026-04-25 23:29:36.901][INF] Private connect 192.168.2.74:80 sock=135 this=0x6156f184 cmd=0x10000 port=33658
[2026-04-25 23:29:36.901][INF] LogonDev1 in[192.168.2.74:80]
2026-04-25 23:29:41.914 | WARNING | __main__:retry_connection:51 - Retry for K1T502 Doorbell failed: ('Error while logging into K1T502 Doorbell', 10, 'Timeout when receiving data from the device.')
[2026-04-25 23:29:41.914][ERR] LogonDev1[192.168.2.74]
[2026-04-25 23:29:41.914][ERR] [192.168.2.74:80]PRO_LoginHikDevice fail[err=10].[0x00000000,0x00000000]
[2026-04-25 23:29:41.914][ERR] CMemberMgrBase::AllocIndex2, MemberStart Failed, iIndex[0]
2026-04-25 23:30:11.945 | INFO | __main__:retry_connection:27 - Retrying connection for K1T502 Doorbell (Index 0)...
2026-04-25 23:30:11.946 | DEBUG | doorbell:__init__:73 - Setting up doorbell: K1T502 Doorbell
2026-04-25 23:30:11.947 | DEBUG | doorbell:logout:124 - SDK logout result 0
2026-04-25 23:30:11.947 | DEBUG | doorbell:authenticate:81 - Logging into doorbell
[2026-04-25 23:30:11.947][INF] COM_Logout[-1][1]
[2026-04-25 23:30:11.947][INF] Login dev 192.168.2.74:80.
[2026-04-25 23:30:11.949][INF] Private connect 192.168.2.74:80 sock=135 this=0x6156f184 cmd=0x10000 port=51848
[2026-04-25 23:30:11.949][INF] LogonDev1 in[192.168.2.74:80]
2026-04-25 23:30:16.961 | WARNING | __main__:retry_connection:51 - Retry for K1T502 Doorbell failed: ('Error while logging into K1T502 Doorbell', 10, 'Timeout when receiving data from the device.')
[2026-04-25 23:30:16.961][ERR] LogonDev1[192.168.2.74]
[2026-04-25 23:30:16.961][ERR] [192.168.2.74:80]PRO_LoginHikDevice fail[err=10].[0x00000000,0x00000000]
[2026-04-25 23:30:16.961][ERR] CMemberMgrBase::AllocIndex2, MemberStart Failed, iIndex[1]
2026-04-25 23:30:46.993 | INFO | __main__:retry_connection:27 - Retrying connection for K1T502 Doorbell (Index 0)...
2026-04-25 23:30:46.993 | DEBUG | doorbell:__init__:73 - Setting up doorbell: K1T502 Doorbell
2026-04-25 23:30:46.994 | DEBUG | doorbell:logout:124 - SDK logout result 0
2026-04-25 23:30:46.995 | DEBUG | doorbell:authenticate:81 - Logging into doorbell
[2026-04-25 23:30:46.994][INF] COM_Logout[-1][1]
[2026-04-25 23:30:46.995][INF] Login dev 192.168.2.74:80.
[2026-04-25 23:30:46.996][INF] Private connect 192.168.2.74:80 sock=135 this=0x6156f184 cmd=0x10000 port=46144
[2026-04-25 23:30:46.996][INF] LogonDev1 in[192.168.2.74:80]
2026-04-25 23:30:52.009 | WARNING | __main__:retry_connection:51 - Retry for K1T502 Doorbell failed: ('Error while logging into K1T502 Doorbell', 10, 'Timeout when receiving data from the device.')
[2026-04-25 23:30:52.008][ERR] LogonDev1[192.168.2.74]
[2026-04-25 23:30:52.008][ERR] [192.168.2.74:80]PRO_LoginHikDevice fail[err=10].[0x00000000,0x00000000]
[2026-04-25 23:30:52.008][ERR] CMemberMgrBase::AllocIndex2, MemberStart Failed, iIndex[0]
When trying to log to port 8000
2026-04-26 12:59:47.574 | DEBUG | doorbell:authenticate:81 - Logging into doorbell
[2026-04-26 12:59:47.574][INF] Login dev 192.168.2.74:8000.
[2026-04-26 12:59:47.575][INF] Private connect 192.168.2.74:8000 sock=135 this=0x3100a184 cmd=0x10000 port=50544
[2026-04-26 12:59:47.575][INF] LogonDev1 in[192.168.2.74:8000]
2026-04-26 12:59:47.598 | WARNING | __main__:retry_connection:51 - Retry for K1T502 Doorbell failed: 884 is not a valid DeviceType
884 is not a valid DeviceType !!
In some previous message someone say that the DS-K1T502 XXX aren’t compatible with the SDK But it seems that in the firmware there is some note about this compatibility (HCNetSDK) .
I am using a Hikvision KD-8003 doorbell camera, and an indoor display KH6320. When opening the stream via Scrypted webinterface (and via HomeKit) two-way audio works perfectly. However when ringing the doorbell, and then opening the stream via webinterface, two-way audio does not work. Because it is somehow streamed (though not picked up) to the indoor display. When I disconnect the indoor display, two-way audio works also after ringing the doorbell.
How can I get two-way audio to work in the display and scrypted webinterface at the same time when ringing?
I'm having an issue with my Hikvision door station (Model: DS-KV6124-WBE1).
I have successfully integrated it into Home Assistant, and the Add-on logs show the status as Idle.
The Problem:
Despite the connection being active, the binary sensors (specifically visitor_status and call_status) do not update when the doorbell button is pressed. It seems like the event stream is not being pushed to Home Assistant.
Details:
- Model: DS-KV6124-WBE1
- Status in HA: Idle
- Issue: The ISAPI event stream doesn't seem to trigger. I can trigger the door relay (open the door) from HA, but I cannot receive button press events.
Do you see any event in addon when doorbell button is pressed? If not, then your device doesnt provide the event .. I have added a manually poll option in the addon
Tnx all for you
Thanks for the help! Could you please clarify what is the exact name of the parameter for the manual poll in the add-on configuration? I want to make sure I'm using the right key to enable it.
ISAPI request status is stuck on unknown, so it’s likely not providing events naturally.
I want to try the manual poll option you mentioned. Could you please tell me:
What is the exact name of the key/parameter I need to add to the Add-on configuration (YAML)?
Is it poll_interval or something else?
Hi. Call_state_poll , it's all in the docs
Hi Fabio,
I seem to have a similar issue as shikoil here above with my doorstation (Model: DS-KD8003-IME1(B)). I followed the steps as described, but the door station remains in idle status, when the doorbell is pressed. No status update is received or seems to be sent. I my case I am only interested in the event of the doorbell button press.
I already configured the polling (5 sec) but no improvement. So in short the details of my issue are:
- Model: DS-KD8003-IME1(B)
- Status in HA: Idle
- Issue: The ISAPI event stream doesn't seem to trigger. I cannot receive button press events.
- Polling (call_state_poll): activated (5 sec)
show me addon log
also look here for custom firmwares when you run 3.7.x firmware , those firmware dont support call state, but the custom one does....
Fabio,
this is the addon log:
2026-05-08 15:49:23.595 | WARNING | config:load_mqtt_config:152 - Partial MQTT config detected (missing host). This is likely browser autofill. Attempting Supervisor fallback.
2026-05-08 15:49:23.595 | DEBUG | config:mqtt_config_from_supervisor:40 - Requesting MQTT service configuration to supervisor
2026-05-08 15:49:23.603 | INFO | config:load_mqtt_config:165 - Using MQTT configuration provided by Home Assistant Supervisor
2026-05-08 15:49:23.617 | INFO | sdk.utils:loadSDK:44 - Using OS: Linux with architecture: x86_64
loop[2] find 2 mac and 3 ip
2026-05-08 15:49:23.809 | INFO | doorbell:authenticate:101 - Connected to doorbell: doorbell type: OUTDOOR
2026-05-08 15:49:23.809 | INFO | main:main:194 - Doorbell 0 (doorbell) authenticated.
2026-05-08 15:49:23.809 | INFO | event:init:87 - Setting up event handler: Console stdout
2026-05-08 15:49:23.809 | INFO | mqtt:init:117 - Setting up event handler: MQTT
2026-05-08 15:49:24.115 | INFO | mqtt:poll_call_sensor:185 - Call sensor polling for : doorbell changed to idle
2026-05-08 15:49:29.180 | INFO | mqtt:poll_call_sensor:185 - Call sensor polling for : doorbell changed to idle
2026-05-08 15:49:34.250 | INFO | mqtt:poll_call_sensor:185 - Call sensor polling for : doorbell changed to idle
2026-05-08 15:49:39.317 | INFO | mqtt:poll_call_sensor:185 - Call sensor polling for : doorbell changed to idle
2026-05-08 15:49:44.352 | INFO | mqtt:poll_call_sensor:185 - Call sensor polling for : doorbell changed to idle
2026-05-08 15:49:49.386 | INFO | mqtt:poll_call_sensor:185 - Call sensor polling for : doorbell changed to idle
2026-05-08 15:49:54.432 | INFO | mqtt:poll_call_sensor:185 - Call sensor polling for : doorbell changed to idle
2026-05-08 15:49:59.476 | INFO | mqtt:poll_call_sensor:185 - Call sensor polling for : doorbell changed to idle
2026-05-08 15:50:05.887 | INFO | mqtt:poll_call_sensor:185 - Call sensor polling for : doorbell changed to idle
2026-05-08 15:50:10.958 | INFO | mqtt:poll_call_sensor:185 - Call sensor polling for : doorbell changed to idle
2026-05-08 15:50:16.005 | INFO | mqtt:poll_call_sensor:185 - Call sensor polling for : doorbell changed to idle
2026-05-08 15:50:21.052 | INFO | mqtt:poll_call_sensor:185 - Call sensor polling for : doorbell changed to idle
2026-05-08 15:50:26.097 | INFO | mqtt:poll_call_sensor:185 - Call sensor polling for : doorbell changed to idle
2026-05-08 15:50:31.146 | INFO | mqtt:poll_call_sensor:185 - Call sensor polling for : doorbell changed to idle
2026-05-08 15:50:36.232 | INFO | mqtt:poll_call_sensor:185 - Call sensor polling for : doorbell changed to idle
2026-05-08 15:50:41.286 | INFO | mqtt:poll_call_sensor:185 - Call sensor polling for : doorbell changed to idle
2026-05-08 15:50:46.322 | INFO | mqtt:poll_call_sensor:185 - Call sensor polling for : doorbell changed to idle
Doorbell button pressed at approx. 15:50:30, no change whatsoever.
BTW I am indeed on firmware 3.7.1, the version thtt is now removed from the Hikvision site.
In an earlier attempt I also checked the response of the door bell with the curl command. Just after pressing the doorbell it still showed an idle status.
I will have al look at the custom firmware. Thanks for the information.
perfect, for now indeed use the custom, hikvsion promised to fix it in next baseline firmware
I saw your comment. Thanks for the support.
Hai Fabio,
I installed the custom firmware from the post by Sigfr3d: KS-KD8003 (revB) already posted earlier ...; is the 'KS-' a typo??.
Call status still does not change when pressing the button.
Tried it both with and without polling
2026-05-11 14:55:45.877 | INFO | mqtt:poll_call_sensor:185 - Call sensor polling for : doorbell changed to idle
2026-05-11 14:55:50.896 | INFO | mqtt:poll_call_sensor:185 - Call sensor polling for : doorbell changed to idle
2026-05-11 14:55:52.296 | INFO | mqtt_input:_call_status_callback:495 - Trying to get call status for doorbell: doorbell
2026-05-11 14:55:52.312 | INFO | mqtt_input:_call_status_callback:515 - Received call status: {
"CallStatus": {
"status": "idle"
}
} and show it as an attribute
2026-05-11 14:55:52.313 | INFO | mqtt_input:_call_status_callback:533 - Updated call sensor state to: idle
2026-05-11 14:55:55.913 | INFO | mqtt:poll_call_sensor:185 - Call sensor polling for : doorbell changed to idle
The above result is from clicking the 'Call Status' button just afterthe door bell has been pressed: no status change
hmm, do you have an indoor station? i think for DS-KD8003 polling , it always show idle when you have an indoor, so try adding the indoor station too
normally sdk call event should work on custom firmware, other users confirmed this
Nope, I do not have an indoor station. I wanted all house data (energy, etc.) in 1 interface, being Home Assistant. The indoor station would be a last resort.
so, when you are pressing the doorbutton on the 8003 device? what device is now actually ringing ?
Well, I hear the sound at the doorbell, but the status remains unchanged. I will go through the settings with a fine comb, see if certain changes will do the trick. Worst case scenario I'll reset to factory defaults. See what will happen.
