I got it working but due to the image polling being restricted I had to change my items and things. Previously I only polled for an image every 15mins and used expire 1 sec = off for the update image switch which just fetch the latest image when requested. This worked before but no longer with the new binding. To get it work with the new binding I have had to change the expire to 5sec with polling every 1 sec. I assume this is needed in order to allow enough time to capture the 5th image.
I donāt ever view the cameras āliveā through openHAB. I have a dedicated app for thatā¦ The nearest it gets to live viewing is when the garage door is opening and then images are updated every 10sec until the door is at an end position. About two mins, so 12 images in total. Its enough for me to check the door did actually open/close after sending the command.
I looked at your clickable thumbnail thread but I donāt think that is what I need,. However, I intend give it a try anyway out of curiosity.
I tried the request a snapshot feature in my browser with like below:
http://openHAB server IP:Cam server port/ipcamera.jpg.
It works but I am not sure how best to implement the feature for my use as stated above. Tips would be appreciated 
Your documentation took a bit of thinking at firstā¦ what IP should be used for this featureā¦Cam or openHAB. hhmmmm. Of course its obvious if you know a little bit of whatās going on but maybe not to the novice. An example would be good here. 
With trace log on I still see lots of errors and the log fills up rapidly like below. Even without an image being requested.
As a matter of interest for future log posts. I replaced the nonce and IP address with xxxx. Do if I need to do that or is OK to just post the trace log as is?
020-01-16 20:47:53.290 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - EmptyLastHttpContent
2020-01-16 20:47:53.909 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Sending camera: GET: http://192.168.x.xxx/live/0/jpeg.jpg
2020-01-16 20:47:53.922 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Sending camera: GET: http://192.168.x.xxx/live/0/jpeg.jpg
2020-01-16 20:47:53.925 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpResponse(decodeResult: success, version: HTTP/1.0)
HTTP/1.0 401 Unauthorized
Server: Webs
WWW-Authenticate: Digest realm="PLC-336SPW", domain="PLC-336SPW", qop="auth", nonce="xxxxxx", opaque="xxxxxx", algorithm="MD5", stale="FALSE"
Pragma: no-cache
Cache-Control: no-cache
Content-Type: text/html
2020-01-16 20:47:53.925 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 227, cap: 227/227, unwrapped: PooledUnsafeDirectByteBuf(ridx: 533, widx: 533, cap: 1024)), decoderResult: success)
2020-01-16 20:47:53.926 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - EmptyLastHttpContent
2020-01-16 20:47:53.927 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - HTTP Result back from camera is :<html><head><title>Document Error: Unauthorized</title></head>
<body><h2>Access Error: Unauthorized</h2>
when trying to obtain <b>/live/0/jpeg.jpg</b><br><p>Access Denied
Unknown User or Wrong Password</p></body></html>
:
2020-01-16 20:47:53.985 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpResponse(decodeResult: success, version: HTTP/1.0)
HTTP/1.0 200 OK
Server: Webs
Pragma: no-cache
Cache-Control: no-cache
Content-Type: image/jpeg
2020-01-16 20:47:54.097 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 1024, cap: 1024/1024, unwrapped: PooledUnsafeDirectByteBuf(ridx: 1024, widx: 1024, cap: 1024)), decoderResult: success)
2020-01-16 20:47:54.099 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Camera has no Content-Length header, we have to guess how much RAM.
2020-01-16 20:47:54.102 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 16384, cap: 16384)), decoderResult: success)
2020-01-16 20:47:54.107 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 16384, cap: 16384)), decoderResult: success)
2020-01-16 20:47:54.112 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 39734, cap: 65536)), decoderResult: success)
2020-01-16 20:47:54.116 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 39734, cap: 65536)), decoderResult: success)
2020-01-16 20:47:54.121 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 24576, widx: 39734, cap: 65536)), decoderResult: success)
2020-01-16 20:47:54.125 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 32768, widx: 39734, cap: 65536)), decoderResult: success)
2020-01-16 20:47:54.129 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 6966, cap: 6966/6966, unwrapped: PooledUnsafeDirectByteBuf(ridx: 39734, widx: 39734, cap: 65536)), decoderResult: success)