HikSink
HikSink copied to clipboard
PIR Triggers do not reset once triggered
Trying to use the PIR triggers on my cameras; however, using Hik-Sink, they never reset once detected, they always show "alerting": true. On the Home Assistant native integration they reset within 1s of being triggered.
The trigger identifiers are inconsistent on some cameras which could cause this. Could you check the logs and see if you are getting any warnings or errors? If that is the error I'll be able to add a special case for it.
I'm closing this for now, but if you see the issue appear again feel free to reopen.
Hi @CornerBit. I have the same problem with trigers as @shbatm. What logs do You need?
docker logs hiksink 2022-10-21T08:14:24.075124Z INFO hik_sink: HikSink MQTT bridge running 2022-10-21T08:14:24.076267Z INFO Camera coms{camera=Front id=front}: hik_sink::hikapi::camera: Initiating camera connection... 2022-10-21T08:14:24.344866Z INFO Camera coms{camera=Front id=front}: hik_sink::hikapi::camera: Camera connection established 2022-10-21T08:14:24.575193Z INFO hik_sink::mqtt::connection: Connected to MQTT broker.
Can you run HikSink with the environment variable RUST_LOG=debug and send the logs after connection to the camera and PIR motion detection / detection cleared? If there's inconsistent naming in the event identifier, I'll be able to add a special case to handle it
Hello @CornerBit I just added the following to config.toml and restarted docker. But I cant see anything new.
[system]
# Supports TRACE, DEBUG, INFO, WARN, and ERROR
log_level = "INFO"
RUST_LOG="DEBUG"
2022-11-14T10:23:00.665564Z INFO hik_sink: HikSink MQTT bridge running
2022-11-14T10:23:00.667925Z INFO Camera coms{camera=Front id=front}: hik_sink::hikapi::camera: Initiating camera connection...
2022-11-14T10:23:00.883399Z INFO Camera coms{camera=Front id=front}: hik_sink::hikapi::camera: Camera connection established
2022-11-14T10:23:01.162634Z INFO hik_sink::mqtt::connection: Connected to MQTT broker.
2022-11-14T10:36:25.216427Z INFO hik_sink: HikSink MQTT bridge running
2022-11-14T10:36:25.217625Z INFO Camera coms{camera=Front id=front}: hik_sink::hikapi::camera: Initiating camera connection...
2022-11-14T10:36:25.541627Z INFO Camera coms{camera=Front id=front}: hik_sink::hikapi::camera: Camera connection established
2022-11-14T10:36:25.717130Z INFO hik_sink::mqtt::connection: Connected to MQTT broker.
2022-11-16T16:57:59.945824Z INFO hik_sink: HikSink MQTT bridge running
2022-11-16T16:57:59.949128Z INFO Camera coms{camera=Front id=front}: hik_sink::hikapi::camera: Initiating camera connection...
2022-11-16T16:58:00.229990Z INFO Camera coms{camera=Front id=front}: hik_sink::hikapi::camera: Camera connection established
2022-11-16T16:58:00.449307Z INFO hik_sink::mqtt::connection: Connected to MQTT broker.
PS I just changed the log_level = "INFO" to "DEBUG" Maybe it will help somehow
2022-11-16T17:18:32.610363Z DEBUG hik_sink::mqtt::connection: Camera event id="front" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: FieldDetection }, active: true, regions: [], post_count: 15, description: "fielddetection alarm", date: "2022-11-16T18:18:34+08:00" })
2022-11-16T17:18:32.613859Z DEBUG hik_sink::mqtt::connection: Camera event id="front" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: LineDetection }, active: true, regions: [], post_count: 13, description: "linedetection alarm", date: "2022-11-16T18:18:34+08:00" })
2022-11-16T17:18:32.920388Z DEBUG hik_sink::mqtt::connection: Camera event id="front" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Motion }, active: true, regions: [], post_count: 24, description: "Motion alarm", date: "2022-11-16T18:18:35+08:00" })
2022-11-16T17:18:32.923104Z DEBUG hik_sink::mqtt::connection: Camera event id="front" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: LineDetection }, active: true, regions: [], post_count: 14, description: "linedetection alarm", date: "2022-11-16T18:18:35+08:00" })
2022-11-16T17:18:33.230217Z DEBUG hik_sink::mqtt::connection: Camera event id="front" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Motion }, active: true, regions: [], post_count: 25, description: "Motion alarm", date: "2022-11-16T18:18:35+08:00" })
2022-11-16T17:18:33.236478Z DEBUG hik_sink::mqtt::connection: Camera event id="front" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: LineDetection }, active: true, regions: [], post_count: 15, description: "linedetection alarm", date: "2022-11-16T18:18:35+08:00" })
TIA Konrad
Same problem with PIR on another camera ( locally named "cam196" ) , additional logging captured using: docker logs --follow hiksink | grep cam196 | grep PIR
2022-12-03T19:04:50.756286Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Connected { info: DeviceInfo { device_name: "cam196", device_id: "a570d652-5919-11b4-82d7-aca213d6b8fd", model: "XC-2432FIW", serial_number: "XC-2432FIW20150727CCWR530536018", mac_address: "ac:a2:13:d6:b8:fd", firmware_version: "V5.4.5", firmware_release_date: "build 170718", device_type: "IPCamera" }, triggers: [TriggerItem { identifier: EventIdentifier { channel: Some("1"), event_type: Io }, hik_id: "IO-1", description: "IO Event trigger Information" }, TriggerItem { identifier: EventIdentifier { channel: Some("1"), event_type: Motion }, hik_id: "VMD-1", description: "VMD Event trigger Information" }, TriggerItem { identifier: EventIdentifier { channel: Some("1"), event_type: Tamper }, hik_id: "tamper-1", description: "shelteralarm Event trigger Information" }, TriggerItem { identifier: EventIdentifier { channel: Some("1"), event_type: DiskFull }, hik_id: "diskfull", description: "exception Information" }, TriggerItem { identifier: EventIdentifier { channel: Some("1"), event_type: DiskError }, hik_id: "diskerror", description: "exception Information" }, TriggerItem { identifier: EventIdentifier { channel: Some("1"), event_type: NicBroken }, hik_id: "nicbroken", description: "exception Information" }, TriggerItem { identifier: EventIdentifier { channel: Some("1"), event_type: IpConflict }, hik_id: "ipconflict", description: "exception Information" }, TriggerItem { identifier: EventIdentifier { channel: Some("1"), event_type: IllegalAccess }, hik_id: "illaccess", description: "exception Information" }, TriggerItem { identifier: EventIdentifier { channel: Some("1"), event_type: LineDetection }, hik_id: "linedetection-1", description: "Linedetection Event trigger Information" }, TriggerItem { identifier: EventIdentifier { channel: Some("1"), event_type: FieldDetection }, hik_id: "fielddetection-1", description: "fielddetection Event trigger Information" }, TriggerItem { identifier: EventIdentifier { channel: Some("1"), event_type: VideoMismatch }, hik_id: "videomismatch", description: "exception Information" }, TriggerItem { identifier: EventIdentifier { channel: Some("1"), event_type: BadVideo }, hik_id: "badvideo", description: "exception Information" }, TriggerItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, hik_id: "PIR", description: "PIR Event trigger Information" }] }
2022-12-03T19:05:12.442529Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 1, description: "PIR alarm", date: "2022-12-03T14:05:12-5:00" })
2022-12-03T19:05:12.775361Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 2, description: "PIR alarm", date: "2022-12-03T14:05:12-5:00" })
2022-12-03T19:05:13.045818Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 3, description: "PIR alarm", date: "2022-12-03T14:05:13-5:00" })
2022-12-03T19:05:13.346577Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 4, description: "PIR alarm", date: "2022-12-03T14:05:13-5:00" })
2022-12-03T19:05:13.647904Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 5, description: "PIR alarm", date: "2022-12-03T14:05:13-5:00" })
2022-12-03T19:05:13.976508Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 6, description: "PIR alarm", date: "2022-12-03T14:05:14-5:00" })
2022-12-03T19:05:14.286107Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 7, description: "PIR alarm", date: "2022-12-03T14:05:14-5:00" })
2022-12-03T19:05:14.585186Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 8, description: "PIR alarm", date: "2022-12-03T14:05:14-5:00" })
2022-12-03T19:05:14.895227Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 9, description: "PIR alarm", date: "2022-12-03T14:05:14-5:00" })
2022-12-03T19:05:15.158480Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 10, description: "PIR alarm", date: "2022-12-03T14:05:15-5:00" })
2022-12-03T19:05:15.495417Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 11, description: "PIR alarm", date: "2022-12-03T14:05:15-5:00" })
2022-12-03T19:05:15.764119Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 12, description: "PIR alarm", date: "2022-12-03T14:05:15-5:00" })
2022-12-03T19:05:16.079476Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 13, description: "PIR alarm", date: "2022-12-03T14:05:16-5:00" })
2022-12-03T19:05:16.395188Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 14, description: "PIR alarm", date: "2022-12-03T14:05:16-5:00" })
2022-12-03T19:05:16.705151Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 15, description: "PIR alarm", date: "2022-12-03T14:05:16-5:00" })
2022-12-03T19:05:16.967106Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 16, description: "PIR alarm", date: "2022-12-03T14:05:17-5:00" })
2022-12-03T19:05:17.304699Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 17, description: "PIR alarm", date: "2022-12-03T14:05:17-5:00" })
2022-12-03T19:05:17.569846Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 18, description: "PIR alarm", date: "2022-12-03T14:05:17-5:00" })
2022-12-03T19:05:17.904820Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 19, description: "PIR alarm", date: "2022-12-03T14:05:17-5:00" })
2022-12-03T19:05:18.173407Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 20, description: "PIR alarm", date: "2022-12-03T14:05:18-5:00" })
2022-12-03T19:05:18.514878Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 21, description: "PIR alarm", date: "2022-12-03T14:05:18-5:00" })
2022-12-03T19:05:18.777929Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 22, description: "PIR alarm", date: "2022-12-03T14:05:18-5:00" })
2022-12-03T19:05:19.079153Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 23, description: "PIR alarm", date: "2022-12-03T14:05:19-5:00" })
2022-12-03T19:05:19.380335Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 24, description: "PIR alarm", date: "2022-12-03T14:05:19-5:00" })
2022-12-03T19:05:19.681744Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 25, description: "PIR alarm", date: "2022-12-03T14:05:19-5:00" })
2022-12-03T19:05:19.982729Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 26, description: "PIR alarm", date: "2022-12-03T14:05:20-5:00" })
2022-12-03T19:05:20.325196Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 27, description: "PIR alarm", date: "2022-12-03T14:05:20-5:00" })
2022-12-03T19:05:20.625267Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 28, description: "PIR alarm", date: "2022-12-03T14:05:20-5:00" })
2022-12-03T19:05:20.899340Z DEBUG hik_sink::mqtt::connection: Camera event id="cam196" event=Alert(AlertItem { identifier: EventIdentifier { channel: Some("1"), event_type: Unknown("PIR") }, active: true, regions: [], post_count: 29, description: "PIR alarm", date: "2022-12-03T14:05:20-5:00" })
and results recorded in mqtt using :
mosquitto_sub -h 192.168.1.1 -F "%I %t %p" -v -t 'hiksink_cameras/device_cam196/#'
2022-12-03T14:04:50-0500 hiksink_cameras/device_cam196/log Initial connection in progress...
2022-12-03T14:04:50-0500 hiksink_cameras/device_cam196/availability offline
2022-12-03T14:04:50-0500 hiksink_cameras/device_cam196/ch1/Io {"alerting":false,"regions":[]}
2022-12-03T14:04:50-0500 hiksink_cameras/device_cam196/ch1/Motion {"alerting":false,"regions":[]}
2022-12-03T14:04:50-0500 hiksink_cameras/device_cam196/ch1/Tamper {"alerting":false,"regions":[]}
2022-12-03T14:04:50-0500 hiksink_cameras/device_cam196/ch1/DiskFull {"alerting":false,"regions":[]}
2022-12-03T14:04:50-0500 hiksink_cameras/device_cam196/ch1/DiskError {"alerting":false,"regions":[]}
2022-12-03T14:04:50-0500 hiksink_cameras/device_cam196/ch1/NicBroken {"alerting":false,"regions":[]}
2022-12-03T14:04:50-0500 hiksink_cameras/device_cam196/ch1/IpConflict {"alerting":false,"regions":[]}
2022-12-03T14:04:50-0500 hiksink_cameras/device_cam196/ch1/IllegalAccess {"alerting":false,"regions":[]}
2022-12-03T14:04:50-0500 hiksink_cameras/device_cam196/ch1/LineDetection {"alerting":false,"regions":[]}
2022-12-03T14:04:50-0500 hiksink_cameras/device_cam196/ch1/FieldDetection {"alerting":false,"regions":[]}
2022-12-03T14:04:50-0500 hiksink_cameras/device_cam196/ch1/VideoMismatch {"alerting":false,"regions":[]}
2022-12-03T14:04:50-0500 hiksink_cameras/device_cam196/ch1/BadVideo {"alerting":false,"regions":[]}
2022-12-03T14:04:50-0500 hiksink_cameras/device_cam196/ch1/PIR {"alerting":false,"regions":[]}
2022-12-03T14:04:50-0500 hiksink_cameras/device_cam196/log Connected
2022-12-03T14:04:50-0500 hiksink_cameras/device_cam196/availability online
2022-12-03T14:05:12-0500 hiksink_cameras/device_cam196/ch1/PIR {"alerting":true,"regions":[]}
both captured after restart of docker container
It appears that the docker log is logging for duration of motion and has nothing more to say after motion stops , but mqtt sees (and reports) a single event
I expected an mqtt status change back to "alerting":false
Hmm it would seem that the camera isn't resetting the event by itself like the other events. This will need special handling, but unfortunately I don't have a PIR camera to test this on. I'll try to get my hands on one in the next couple of months