And security settings are all digest/basic, with that user appearing in the Integration Protocol list with Administrator access.
I have the cameras set up and working in the interface (as a working stream) - so I know network, auth, etc. is all good. I know its detecting motion since it does record when there is movement. It’s just the binary_sensor that isn’t changing.
Has anyone run into this and had any experience getting the binary_sensor working?
Did you get an answer for this? I have a DS-7616NI-E2 / 8P and I’d like to get it going with Hassio, but if it’s not good I’ll scrap it and get an NVR that HA likes better.
I’m using V3.4.103 build 181226, and that was the latest FW as of 6 months ago or so, so I’ll look for the new one. You’re using a US version or the Chinese version? The cameras don’t play well between EN and CH versions.
Nope. I’ve been exploring using Surveillance Station for my Synology as a replacement, or ZoneMinder, but it’s a bit annoying since I haven’t bought a PoE switch.
I revisted this today and have it working (hopefully long term). All the settings above are right (plus the trigger alarm output D1->1 setting mentioned by @Ambidexter above.
What I had to do was reset the NVR completely (Configuration / System / Maintenance / [Restore]), then go to each camera and reset them the same way. As I reset each camera, it started reporting motion properly.
Ditto for a DS-7608NI-I2-8P on latest and greatest RPi4. I get this in the log viewer:
File "/usr/local/lib/python3.9/site-packages/pyhik/hikvision.py", line 615, in process_stream
state = self.fetch_attributes(etype, echid)
File "/usr/local/lib/python3.9/site-packages/pyhik/hikvision.py", line 663, in fetch_attributes
if sensor[1] == int(channel):
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
I have fixed it changing the file /usr/local/lib/python3.10/site-packages/pyhik/hikvision.py
from:
def fetch_attributes(self, event, channel):
"""Returns attribute list for a given event/channel."""
try:
for sensor in self.event_states[event]:
if sensor[1] == int(channel):
return sensor
except KeyError:
return None
to:
def fetch_attributes(self, event, channel):
"""Returns attribute list for a given event/channel."""
if channel == None:
return None
try:
for sensor in self.event_states[event]:
if sensor[1] == int(channel):
return sensor
except KeyError:
return None