HikSink icon indicating copy to clipboard operation
HikSink copied to clipboard

PIR Triggers do not reset once triggered

Open shbatm opened this issue 4 years ago • 7 comments

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.

shbatm avatar Oct 18 '21 15:10 shbatm

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.

CornerBit avatar Oct 20 '21 05:10 CornerBit

I'm closing this for now, but if you see the issue appear again feel free to reopen.

CornerBit avatar Feb 04 '22 22:02 CornerBit

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.

kion666 avatar Oct 21 '22 08:10 kion666

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

CornerBit avatar Nov 05 '22 23:11 CornerBit

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

kion666 avatar Nov 16 '22 17:11 kion666

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

boverby avatar Dec 03 '22 19:12 boverby

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

CornerBit avatar Dec 27 '22 00:12 CornerBit