IpCamera: New IP Camera Binding

camera
ip-cam
onvif
Tags: #<Tag:0x00007fd3115274c0> #<Tag:0x00007fd311527308> #<Tag:0x00007fd3115271a0>

(Skinah) #341

Thanks for the log output, it shows the connection is possibly closed before the camera has time to finish sending the picture. Can you enable TRACE instead of debug as that will show what the camera does reply with which will help me to fix this. After getting the log output try using a few older builds to see where/when it broke. It may take me a few days to find the time to look into this.


(Fernando Gomes) #342

Hi,

The trace:

2018-07-06 09:29:37.268 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Sending camera at IP:192.168.1.53, URL:/webcapture.jpg?command=snap&channel=1
2018-07-06 09:29:37.269 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Just locked in main1
2018-07-06 09:29:37.270 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Just unlocked main1
2018-07-06 09:29:37.272 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - CommonCameraHandler created… 1 channels tracked (some of these may be closed).
2018-07-06 09:29:37.275 [TRACE] [ipcamera.internal.MyNettyAuthHandler] - MyNettyAuthHandler is now setup for GET:/webcapture.jpg?command=snap&channel=1
2018-07-06 09:29:37.276 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Trying to lock in main2
2018-07-06 09:29:37.277 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Just locked in main2
2018-07-06 09:29:37.278 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Just unlocked in main2
2018-07-06 09:29:37.279 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Have re-opened the closed channel:0 GET:/webcapture.jpg?command=snap&channel=1
2018-07-06 09:29:37.377 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpResponse(decodeResult: success, version: HTTP/1.0)
HTTP/1.0 200 OK
Content-type: image/jpeg
Cache-Control: max-age=315360000Server: uc-httpd 1.0.0
Expires: 0
2018-07-06 09:29:37.378 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Channel marked as closing, channel:0 URL:/webcapture.jpg?command=snap&channel=1
2018-07-06 09:29:37.791 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 512, cap: 512/512, unwrapped: PooledUnsafeDirectByteBuf(ridx: 512, widx: 512, cap: 512)), decoderResult: success)
2018-07-06 09:29:37.793 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Camera has no Content-Length header, we have to guess how much RAM.
2018-07-06 09:29:37.794 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 8192, cap: 8192)), decoderResult: success)
2018-07-06 09:29:37.796 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 8192, widx: 21038, cap: 65536)), decoderResult: success)
2018-07-06 09:29:37.798 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 8192, cap: 8192/8192, unwrapped: PooledUnsafeDirectByteBuf(ridx: 16384, widx: 21038, cap: 65536)), decoderResult: success)
2018-07-06 09:29:37.799 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - DefaultHttpContent(data: PooledSlicedByteBuf(ridx: 0, widx: 4654, cap: 4654/4654, unwrapped: PooledUnsafeDirectByteBuf(ridx: 21038, widx: 21038, cap: 65536)), decoderResult: success)
2018-07-06 09:29:37.830 [TRACE] [ing.ipcamera.handler.IpCameraHandler] - EmptyLastHttpContent
2018-07-06 09:29:37.831 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - handlerremover trying to lock
2018-07-06 09:29:37.831 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - handlerremover has lock
2018-07-06 09:29:37.832 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - commonCameraHandler closed channel:0 URL:/webcapture.jpg?command=snap&channel=1
2018-07-06 09:29:37.833 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - handlerremover trying to unlock
2018-07-06 09:29:37.834 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - handlerremover has unlocked
2018-07-06 09:29:37.835 [DEBUG] [ing.ipcamera.handler.IpCameraHandler] - Closing CommonCameraHandler. URL:/webcapture.jpg?command=snap&channel=1

I have tested all ipcamera bindings and the binding stop working when you remove this event log :slight_smile:

2018-07-04 18:02:40.323 [vent.ItemStateChangedEvent] - ipcamera_ONVIF_003_image changed from raw type (image/jpeg): 512000 bytes to raw type (image/jpeg): 512000 bytes

Best Regards,


(Skinah) #343

New build 11-07-2018 has these changes:

  • Will accept snapshots from cameras that reply with “EmptyLastHttpContent” instead of “LastHttpContent”. Thanks to @fapg for the logs and the helpful working version number as it was easy to find this by looking at what was different between versions.
  • Made a change for WBOX rebranded hik cameras. @Kristo this should hopefully allow the wbox camera to work as I found your log helpful.

Any issues with this build let me know.


(_) #344

Hi @matt1 thanks for this build i willl check today if it’s working with Wbox,

Can you please find while to implement alarm input status checking ( Hikvision API) ?


(Matt) #345

My Hikvision cameras are all working in this binding. I have several different Hikvision cube and bullet cameras, all working fine.

So far I used to image function as described in this thread to display the still image on my HabPanels. Is there a way to display the H.264 video stream on habpanel?


(Skinah) #346

@Pedals2Paddles
You can get the picture to update every second so it is not fully a static picture, but I understand you probably mean a 30 FPS video stream. I just don’t see an easy way to implement that at this time as the Openhab framework would need new features written on top of not all the UI and apps work with non mjpeg video streams AFAIK. Open a new thread of your own if you wish to learn how others do it as you could always use another method at the same time as this binding for the alarms.

@Kristo
Sorry I do not have the time right now to add new features at least until I sort my Cloud issues out and get my own cameras fully setup.

Openhab Cloud Connector and Google Home will not work together anymore


(_) #347

@matt1
Clear you did a lot , please just keep it in mind for future :slight_smile:

@Pedals2Paddles
MJPEG is only current solution if camera is supporting 2 streams
https://docs.openhab.org/configuration/sitemaps.html#element-type-video


(Matt) #348

Understood. What kind of load is it putting on the server (OpenHabian on a pi 3b+) to have cameras refreshing the image every 1 second like that? I see it is a tremendous amount of logging already that I’d like to somehow disable.


(Skinah) #349

See the read me file for how to disable the log output.
To check your system loads you could use the system info binding.

Hard to guess which is a lower load the stream or having to use digest for a picture every second. With mpeg streams my guess is that will be far more taxing, mp4 I am not so sure as it would depend on how often u have a keyframe in the stream.


(_) #350

@matt1
After checking on Wbox is working now. Only small remarks:

  1. after restart need to click 2 times to change state (after is ok)
  2. if you will change area of motion control from browser directly on camera and switch motion control from openhab it will back to previosly selected area (restart of openhab is fixing this issue).

Appreciate your huge effort!


(Fernando Gomes) #351

It’s working again :wink: thx.


(Fernando Gomes) #352

Another question, I have introduced a new camera, with a login and password, but in the log appears one password that it’s not mine??!? Can you understand/explain me this?

things:
Thing ipcamera:ONVIF:004 “sala” @ “Piso 1” [ IPADDRESS=“192.168.1.54”, ONVIF_PORT=“8899”, USERNAME=“admin”, PASSWORD=“mypasswordisthis”, ONVIF_MEDIA_PROFILE=0, IMAGE_UPDATE_EVENTS=1]

log:
http://192.168.1.54/webcapture.jpg?command=snap&channel=1&user=admin&password=yNErdtH0

Best Regards,


(Skinah) #353

@fapg

First of all please use code fences when posting any text that needs to be accurate. Your post has the curly ‘smart quotes’ in it and they often cause issues with openhab but since you did not use code fences it is probably from that…
I am confused by this part, perhaps you know something I dont but try removing that and make it look like the examples in the readme.md file.

 “sala” @ “Piso 1” 

@Kristo

  1. Yes that happens if the REFRESH for the control is never called. If you restart the server it is called, but if you edit the settings of the camera it never gets called and hence that happens. Perhaps someone can tell me if there is a way to trigger a refresh? maybe from a rule or timer/cron?

  2. See above as it is related, the refresh stores the state, then when you move the control the stored state is used, modified and then uploaded to the camera. If there is a way to do a refresh every X amount of time that would solve your problem, I just did not want to fetch the state every second as that is too much overhead.


(Alan Fenwick) #354

Hi - This is working on a budget ONVIF setup (SANNCE) but there is some sort of memory leJ, so after a while it brings my PI3 to its knees:

This is the error stream

2018-07-12 16:30:28.750 [WARN ] [ing.ipcamera.handler.IpCameraHandler] - Can't find ch when removing handler 		URL:null

2018-07-12 16:30:33.415 [WARN ] [me.core.internal.events.EventHandler] - Dispatching event to subscriber 'org.eclipse.smarthome.core.internal.items.ItemUpdater@117ca3a' takes more than 5000ms.

==> /var/log/openhab2/events.log <==

2018-07-12 16:30:31.780 [vent.ItemStateChangedEvent] - frontDoorCam changed from raw type (image/jpeg): 112395 bytes to raw type (image/jpeg): 112601 bytes

==> /var/log/openhab2/openhab.log <==

2018-07-12 16:30:30.261 [WARN ] [eclipse.jetty.servlet.ServletHandler] - 

javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang.OutOfMemoryError: Java heap space

	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:489) [170:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]

	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) [170:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]

	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) [170:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]

	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) [170:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]

	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) [170:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]

	at com.eclipsesource.jaxrs.publisher.internal.ServletContainerBridge.service(ServletContainerBridge.java:76) [15:com.eclipsesource.jaxrs.publisher:5.3.1.201602281253]

	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:848) [85:org.eclipse.jetty.servlet:9.3.21.v20170918]

	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:584) [85:org.eclipse.jetty.servlet:9.3.21.v20170918]

	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) [186:org.ops4j.pax.web.pax-web-jetty:6.0.9]

	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [84:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [82:org.eclipse.jetty.security:9.3.21.v20170918]

	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [84:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) [84:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:284) [186:org.ops4j.pax.web.pax-web-jetty:6.0.9]

	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) [85:org.eclipse.jetty.servlet:9.3.21.v20170918]

	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [84:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) [84:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [84:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) [186:org.ops4j.pax.web.pax-web-jetty:6.0.9]

	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) [84:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.Server.handle(Server.java:534) [84:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333) [84:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) [84:org.eclipse.jetty.server:9.3.21.v20170918]

	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) [76:org.eclipse.jetty.io:9.3.21.v20170918]

	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) [76:org.eclipse.jetty.io:9.3.21.v20170918]

	at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) [76:org.eclipse.jetty.io:9.3.21.v20170918]

	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) [87:org.eclipse.jetty.util:9.3.21.v20170918]

	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) [87:org.eclipse.jetty.util:9.3.21.v20170918]

	at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) [87:org.eclipse.jetty.util:9.3.21.v20170918]

	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) [87:org.eclipse.jetty.util:9.3.21.v20170918]

	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) [87:org.eclipse.jetty.util:9.3.21.v20170918]

	at java.lang.Thread.run(Thread.java:748) [?:?]

Caused by: org.glassfish.jersey.server.ContainerException: java.lang.OutOfMemoryError: Java heap space

	at org.glassfish.jersey.servlet.internal.ResponseWriter.rethrow(ResponseWriter.java:278) ~[?:?]

	at org.glassfish.jersey.servlet.internal.ResponseWriter.failure(ResponseWriter.java:260) ~[?:?]

	at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:509) ~[173:org.glassfish.jersey.core.jersey-server:2.22.2]

	at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:334) ~[173:org.glassfish.jersey.core.jersey-server:2.22.2]

	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) ~[172:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) ~[172:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.internal.Errors.process(Errors.java:315) ~[172:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.internal.Errors.process(Errors.java:297) ~[172:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.internal.Errors.process(Errors.java:267) ~[172:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) ~[172:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) ~[173:org.glassfish.jersey.core.jersey-server:2.22.2]

	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) ~[173:org.glassfish.jersey.core.jersey-server:2.22.2]

	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) ~[170:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]

	... 31 more

Caused by: java.lang.OutOfMemoryError: Java heap space

	at java.util.Arrays.copyOf(Arrays.java:3332) ~[?:?]

	at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124) ~[?:?]

	at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448) ~[?:?]

	at java.lang.StringBuffer.append(StringBuffer.java:270) ~[?:?]

	at java.io.StringWriter.write(StringWriter.java:101) ~[?:?]

	at com.google.gson.stream.JsonWriter.string(JsonWriter.java:587) ~[?:?]

	at com.google.gson.stream.JsonWriter.value(JsonWriter.java:419) ~[?:?]

	at com.google.gson.internal.bind.TypeAdapters$16.write(TypeAdapters.java:422) ~[?:?]

	at com.google.gson.internal.bind.TypeAdapters$16.write(TypeAdapters.java:406) ~[?:?]

	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:69) ~[?:?]

	at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:208) ~[?:?]

	at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.write(MapTypeAdapterFactory.java:145) ~[?:?]

	at com.google.gson.Gson.toJson(Gson.java:669) ~[?:?]

	at com.google.gson.Gson.toJson(Gson.java:648) ~[?:?]

	at com.google.gson.Gson.toJson(Gson.java:603) ~[?:?]

	at com.google.gson.Gson.toJson(Gson.java:583) ~[?:?]

	at org.eclipse.smarthome.io.rest.core.internal.GsonProvider.writeTo(GsonProvider.java:71) ~[?:?]

	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.invokeWriteTo(WriterInterceptorExecutor.java:265) ~[172:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor$TerminalWriterInterceptor.aroundWriteTo(WriterInterceptorExecutor.java:250) ~[172:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162) ~[172:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.server.internal.JsonWithPaddingInterceptor.aroundWriteTo(JsonWithPaddingInterceptor.java:106) ~[?:?]

	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162) ~[172:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:86) ~[?:?]

	at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162) ~[172:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.message.internal.MessageBodyFactory.writeTo(MessageBodyFactory.java:1130) ~[172:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.server.ServerRuntime$Responder.writeResponse(ServerRuntime.java:711) ~[173:org.glassfish.jersey.core.jersey-server:2.22.2]

	at org.glassfish.jersey.server.ServerRuntime$Responder.processResponse(ServerRuntime.java:444) ~[173:org.glassfish.jersey.core.jersey-server:2.22.2]

	at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:434) ~[173:org.glassfish.jersey.core.jersey-server:2.22.2]

	at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:329) ~[173:org.glassfish.jersey.core.jersey-server:2.22.2]

	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) ~[172:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) ~[172:org.glassfish.jersey.core.jersey-common:2.22.2]

	at org.glassfish.jersey.internal.Errors.process(Errors.java:315) ~[172:org.glassfish.jersey.core.jersey-common:2.22.2]

Unfortunately this makes it a non starter.

Any ideas what is causing the crash?
I have only got 2 webcams running for now and have only enabled the image channels for now.

I am displaying them in HabPanel (which I am guessing due toi the strain on the PI seems to be unable to refresh the images too)


(Christoph) #355

I don‘t know, if that is what you are looking for, but I know from the iCloud binding, that it is possible, to force a refresh for a channel, see Force iCloud refresh in Rule possible?


(Skinah) #356

@bulletprooffool
I am working blind as I don’t have your camera nor do I have the TRACE log output that I can use to see what is going on. Once the OOM occurs the logs are useless, I will need to see some output BEFORE the first of the errors start as no memory causes things that work normally to stop, thus making diagnosis much harder. I am happy to say I do not see that issue so it may be a conflict with another binding, a leak that only happens when a camera does a certain thing I have not thought of, or you may need to increase the heap size. I use VisualVM to look for leaks but the last build I skipped checking it, so worth going back to some older builds to see if it still occurs. One build is marked as using the old backend, try that one.

Also post how you are using the image channel. Are you using it in an item file and then passing it onto Habpanel as an Item?

@Syn
@Kristo
Thanks that looks exactly what I was hoping could be done. It is a REFRESH command that currently stores the settings for HIK only, other cameras thankfully do it a different way. I may take a look at other solutions in the binding to take care of this in the future as the plan was always to fetch and then use the cameras fresh response but this part of the code has not been written. For now I would create a rule that calls the refresh, sleeps for >100ms and then changes the setting as you need to wait for the reply to come back from the camera.


(Fernando Gomes) #357

Hi,

Sorry about the quotes. The problem is not the quotes, but I remove it and the error is the same:

2018-07-13 12:11:36.859 [ERROR] [ing.ipcamera.handler.IpCameraHandler] - a non valid url was given to the binding http://192.168.1.54/webcapture.jpg?command=snap&channel=1&user=admin&password=yNErdtH0 - {}
java.net.URISyntaxException: Illegal character in query at index 86: http://192.168.1.54/webcapture.jpg?command=snap&channel=1&user=admin&password=yNErdtH0

I dont’ known where the

password=yNErdtH0

comes… My password is not that, and in the thing configuration I put the correct password…

I try to configure through paperUI and the problem is the same…

Best Regards,
Fernando Gomes


(Fernando Gomes) #358

You have the last ipcamera binding?

Best Regards,
Fernando Gomes


(Alan Fenwick) #359

Hi Fernando,

I believe I do.

Was there known issue?

ALSO:

I seem to be able to embed images in Habpanel, but I have not quite figured out how to publish the RTSP stream so it plays as a video feed. Has anyone got this working?

Thanks again

ALan


(Fernando Gomes) #360

Can you tell us what version you have?

I don’t have this problem :slight_smile:

Noop, but the workaround is refresh the image every second (or every two seconds). Is what I do :slight_smile: and it works fine.

Best Regards,
Fernando Gomes