IpCamera: New IP Camera Binding

My cameras are in fw v.5.4.24, I hope it is recent enough. The add-on I use until now is the “org.openhab.binding.ipcamera-2.3.0-SNAPSHOT.jar”. I am able to clone your sources but I don’t really know what to do with.

That link is for a jpg photo and not a video stream.

Use this in your sitemap

Image url="http://google.com/leaveLinkAsThis" item=ipcamera_ONVIF_001_image refresh=5000

You then need to replace the 001 with the unique ID of your thing. This is discussed in the readme here

https://github.com/Skinah/IpCamera/blob/master/README.md

@SyntaxError-404
I have never used HIKVISION so I can not help much, best thing to do is use the onvif device manager software to check your camera works and is setup right, check what port it is using with that software and then use the binding. Don’t worry about the source, just use the JAR which u posted u have. Next step is enable DEBUG on the logging as posted in the first post of this thread so you can see what the camera is sending the binding and what the binding is asking for.

If I get the right person that can feedback quality debug information and what they need out of the API I should be able to add the functionality. The HIK cameras do pose a new set of issues as they appear to require getting a stream of XML of data from the camera, the binding needs to adjust a few fields and then upload the XML back to the camera. Add to this the fake copies and multiple rebranded versions and this could all add up to a big nightmare as the XML appears to be different for each camera.

I suspect by your post and you hoping the firmware version if enough indicates that you already know that some cameras can be bricked by uploading western firmware onto a chinese version of the HIK range or a fake copy of the camera.

How can I send you the log I got ? Yes you are right, I understood that the cameras I have are Chinese version with modified fw.
Just to be more accurate, the binding works, I have the image of the cam but as I said, it is the possibility to enable/disable the detection and eventually getting detection events that I found very interesting.

So it looks like these Chinese cameras are not fully Onvif compliant. I can only get them to go Online if I select “Generic IP camera with only HTTP/S support.” and will not do so if I use the “Generic IP camera with only ONVIF support.” selection.
Onvif Device Manager however is able to display a video stream Selection_240


They use port 5000 for http and 554 for the rtsp stream data.
Will a later update be able to get these non-compliant cameras to stream or is there something I can try?
BTW I have the DEBUG set on for the IpCamera binding but am seeing no DEBUG messages. (?)

This binding does not support RTSP streams yet. It will give you a picture that updates every 1 second or whatever you tell the binding the delay is. Use google and you may be able to find a snapshot address for the camera.

Are you running openhab on linux (openhabian) ? If so use this to watch the logs

tail -f /var/log/openhab2/openhab.log -f /var/log/openhab2/events.log

Then when you are done watching press CTRL+C
Or you can also open the log files which are at those locations.

Yes it looks that way as they should be able to report what ONVIF version they are. If that is broken who knows what else is, but still worth a try before just using the camera as a HTTP only device which I would prefer as it will connect faster. PTZ is the only feature you would loose and most cameras do not do this. It is worth looking at the logs to see what it reports when trying to connect as it may be you don’t have the right port entered in as it may be 5000 for your ONVIF port and http.

New build 13-05-2018 has following changes:

  • Major change. NON_ONVIF things now need to be changed to HTTPONLY. Since the sitemap setup uses underscore delimiters I wanted to ensure nothing has an underscore (_) in it.
  • Polling the camera faster than 1000ms is no longer possible. If you had a smaller number it will need to be raised.
  • New feature. All cameras can now have the snapshot URL over ridden. Leave blank to use the auto detected url, or enter in one you wish to use.
  • Removed HTTPS button for now until feature is finished.
  • HIKVISION will not send untested http requests to the camera unless a button is manually pushed. A new button channel was added to trigger the http request that used to go out whenever the camera was polled.
  • Made some changes to the backend code.
  • More logging in debug added.
  • The only difference between 12-05-2018 and 13-05-2018 is the binding now no longer fails to connect if a minor SOAP error occurs or if ONVIF wont connect. If you enter in a manual snapshot url (new feature mentioned above) the camera should be able to connect and be used no matter where the ONVIF soap error occurs or if the wrong ONVIF port was entered.

Trying to connect HIKVISION DS-2de3304w-DE.
Tried to use hikvision connection in binding and just through onvif.
Judging by the logs the issue in the authorization of bindinga on the camera.

I noticed that if you enable the Button to test new code then authorization begins to take place and there is a picture.

But in status be the writes - off - line- configuration_pending

Finally got a response about the nvr from amcrest. The API applies to all of their camera products, including the nvr. So, I’m going to buy the system, the cameras work independently of the nvr and microcenter has the nvr and 4 cameras for less than$300. If I can’t get the nvr to work with this, I can get the cameras for sure.

I’ll post my findings, once I get everything up.

@toroid
Thanks for reporting, I have a fix for this in the next build so digest will work for you. Not sure why it is not online as the log did not show any reasons so hopefully the digest fix will solve all issues getting camera online. I will upload it in around five hours time and won’t bother posting here as it will be the only change made.
If the authorisation is failing I would question why your camera is allowing a picture to be shown?

@Michael_Dot_Woodrum
Great please let me know how u go as I am keen to buy a similar deal. I am just suspicious when a deal looks so much cheaper than cameras alone as it screams they must be old models they r clearing so hopefully the api works great as it would be a good price. May be a good idea to check what firmware is available for the camera model, r18 is the latest currently afaik.

Until I switched “Button to test new code”, the authorization did not pass.
After I switched “Button to test new code” authorization began to take place.
And after once successfully logged in, which locks you can already toggle “Button to test new code” and everything will be back to work until a restart of openhab.

the model of the cameras in the kit are IP2M-843E 1080p POE. The NVR supports onvif and other cameras with onvif. Picking it up today, will post what I figure out.

Any ideas for the HIKVISION Onvif port number? It’s not what I’ve used before and it’s not listed in the network settings on the camera. Onvif device managers can see the cameras, but they don’t show me what the onvif port is. Camera was showing online with 5000 as port, but then the log said wrong port, now the camera just shows offline in things.

2018-05-16 02:18:34.448 [INFO ] [ing.ipcamera.handler.IpCameraHandler] - About to connect to the IP Camera using the ONVIF PORT at IP:192.168.1.69:5000

2018-05-16 02:17:35.501 [hingStatusInfoChangedEvent] - ‘ipcamera:HIKVISION:IPCAM-FG’ changed from OFFLINE (COMMUNICATION_ERROR): Camera failed to connect with ONVIF before it could gain the Snaphot URL, try over-riding the Snapshot URL auto detection. to OFFLINE (CONFIGURATION_ERROR): Can not access camera: Check that your IP ADDRESS, USERNAME and PASSWORD are correct and the camera can be reached.

2018-05-16 02:17:35.501 [hingStatusInfoChangedEvent] - ‘ipcamera:HIKVISION:IPCAM-FG’ changed from OFFLINE (CONFIGURATION_ERROR): Can not access camera: Check that your IP ADDRESS, USERNAME and PASSWORD are correct and the camera can be reached. to OFFLINE (COMMUNICATION_ERROR): Camera failed to connect with ONVIF before it could gain the Snaphot URL, try over-riding the Snapshot URL auto detection.

2018-05-16 02:17:35.486 [ERROR] [ing.ipcamera.handler.IpCameraHandler] - Can not connect to camera with ONVIF at IP:192.168.1.69, it may be the wrong ONVIF_PORT. Fault was java.net.ConnectException: Host not available.

2018-05-16 02:17:35.486 [ERROR] [ing.ipcamera.handler.IpCameraHandler] - Camera failed to connect with ONVIF before it could gain the Snaphot URL, try over-riding the Snapshot URL auto detection.

The open-source tool ‘ONVIF Device Manager’ from sourceforge.net will tell you lots about the camera.
The ‘ONVIF port’ is shown in the URI at the bottom of the ‘Identification’ page. If there is no ‘:’ in the URI, it’s 80.

Hikvision also require that you setup a user and password for onvif as it is disabled by default in current firmwares. See video on how to do this in the post above in this thread.

I made a new build last night that I have not tested on my own camera as I am away. This has a fix in it for hikvision Digest Auth so please use that build.

I checked the new build.

Now with the hikvision camera, the picture appears and updates immediately after clicking on the “Update the Image” switch.
After restart openhab still works fine. :+1:

The status of things still remained offline. :-1:

The ability to control PTZ has not yet been tested-a little later.

Below is a piece of debug log.

2018-05-16 10:31:33.488 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Trying to connect with new request for camera at IP:172.18.2.13
2018-05-16 10:31:33.499 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - + The request is going to be GET:/onvif-http/snapshot?Profile_3:
2018-05-16 10:31:33.507 [DEBUG] [ipcamera.internal.MyNettyAuthHandler] - 401: This reply from the camera is normal if it needs Basic or Digest auth details.
2018-05-16 10:31:33.509 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Trying to connect with new request for camera at IP:172.18.2.13
2018-05-16 10:31:33.518 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - + The request is going to be GET:/onvif-http/snapshot?Profile_3:
2018-05-16 10:31:34.078 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpResponse(decodeResult: success, version: HTTP/1.1)
HTTP/1.1 200 OK
Content-Type: image/jpeg
Connection: close
Content-Length: 283756
2018-05-16 10:31:34.088 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 937, cap: 937/937, unwrapped: PooledUnsafeDirectByteBuf(ridx: 1024, widx: 1024, cap: 1024)), decoderResult: success)
2018-05-16 10:31:34.093 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 16384, cap: 16384)), decoderResult: success)
2018-05-16 10:31:34.095 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 16384, cap: 16384)), decoderResult: success)
2018-05-16 10:31:34.097 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.099 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.101 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.103 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.105 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.107 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.109 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.110 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.112 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.114 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.116 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.117 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.119 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.121 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.123 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.125 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.127 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.129 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.130 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.132 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.134 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.136 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.138 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 57344, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.139 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 65536, widx: 65536, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.141 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 53951, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.143 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 53951, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.145 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 53951, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.147 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 53951, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.149 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 40960, widx: 53951, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.151 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 49152, widx: 53951, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.153 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 4799, cap: 4799/4799, unwrapped: PooledUnsafeDirectByteBuf(ridx: 53951, widx: 53951, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.155 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 15876, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.157 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultLastHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 7684, cap: 7684/7684, unwrapped: PooledUnsafeDirectByteBuf(ridx: 15876, widx: 15876, cap: 65536)), decoderResult: success)
2018-05-16 10:31:34.159 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpResponse(decodeResult: success, version: HTTP/1.1)
HTTP/1.1 401 Unauthorized
Date: Wed, 16 May 2018 10:31:33 GMT
Server: App-webs/
Content-Length: 255
Content-Type: text/html
Connection: close
WWW-Authenticate: Digest qop="auth", realm="IP Camera(C0662)", nonce="4e446b7a4e7a41354e5449364e6a67344d5452684e544d3d", stale="FALSE"
2018-05-16 10:31:34.166 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - DefaultLastHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 255, cap: 255/255, unwrapped: PooledUnsafeDirectByteBuf(ridx: 541, widx: 541, cap: 1024)), decoderResult: success)
2018-05-16 10:31:34.169 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - HTTP Result back from camera is :<!DOCTYPE html>
<html><head><title>Document Error: Unauthorized</title></head>
<body><h2>Access Error: 401 -- Unauthorized</h2>
<p>Authentication Error: Request Refuse: This Request Need Digest authentication, Please Try again!!</p>
</body>
</html>
:```

I tried to activate the motion detector.

There’s still a problem with authentication somewhere.
I connect to the camera with administrator rights, and judging by the logs are not enough rights.

Actually with Digest auth you will find it is normal for every second response to be a 401 error as that is how it works, so long as every other reply is a 200 OK message it is working correctly.

I did use your logs to fix a small issue if the camera asks for both basic and digest in the same reply. This will be in the next build.

None of the logs show your camera connecting, I need to see what happens at the very start of a connection to work out why the camera is not showing up as ONLINE. I could not work it out by reading the code, I will need the log. As mentioned if you see every second response from the camera is a 401 error this is normal and not the reason why it is not coming online.

The output looks great for determining when the motion alarm is turned off, can you take another when the motion alarm is turned on? I can use those to update the controls status.

I can send you a more detailed debug log file. Write where to send.

I’ll try it tonight, it’s not possible right now.

The motion alarm on the camera is on, but openhab does not see when the motion alarm is triggered. And in logs empty.

Hi!

At first: Very nice binding. After some testing, most of it is working fine for me, besides the fact, that pan and tilt is not working. Via the Webinterface of my cam I can move the camera, but when I try to move the cam with a slider in my BasicUI or PaperUI nothing happens. What might be the problem?

The onvif port is the same as the custom http port I setup originally.

I’m on an older Hikvision firmware so I didn’t need to mess around at all, just needed the correct port.

It shows as ONLINE now, and I can see the camera image, I will add my other cameras and explore other features of your binding soon.

Cheers