IP Cam does not work in sitemap

Since the update to OpenHAB 2.1 my connection to the IP Cam is broken.

My sitemap code:

Text item=IP_Cam_1 {
     Image url="http://192.168.56.3/snapshot.cgi?user=test&pwd=password" label="IP Cam 1"
}

The openhab.log file:

2017-07-08 19:59:44.610 [ERROR] [.core.internal.folder.FolderObserver] - Error handling update of file '/etc/openhab2/sitemaps/Test.sitemap': index=2, size=2.
org.eclipse.emf.common.util.BasicEList$BasicIndexOutOfBoundsException: index=2, size=2
        at org.eclipse.emf.common.util.BasicEList.get(BasicEList.java:346)[63:org.eclipse.emf.common:2.11.0.v20150805-0538]
        at org.eclipse.smarthome.ui.internal.items.ItemUIRegistryImpl.getWidget(ItemUIRegistryImpl.java:516)[136:org.eclipse.smarthome.ui:0.9.0.b5]
        at org.eclipse.smarthome.io.rest.sitemap.SitemapSubscriptionService.collectWidgets(SitemapSubscriptionService.java:225)[117:org.eclipse.smarthome.io.rest.sitemap:0.9.0.b5]
        at org.eclipse.smarthome.io.rest.sitemap.SitemapSubscriptionService.modelChanged(SitemapSubscriptionService.java:276)[117:org.eclipse.smarthome.io.rest.sitemap:0.9.0.b5]
        at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.notifyListeners(ModelRepositoryImpl.java:286)[122:org.eclipse.smarthome.model.core:0.9.0.b5]
        at org.eclipse.smarthome.model.core.internal.ModelRepositoryImpl.addOrRefreshModel(ModelRepositoryImpl.java:136)[122:org.eclipse.smarthome.model.core:0.9.0.b5]
        at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.checkFile(FolderObserver.java:234)[122:org.eclipse.smarthome.model.core:0.9.0.b5]
        at org.eclipse.smarthome.model.core.internal.folder.FolderObserver.processWatchEvent(FolderObserver.java:297)[122:org.eclipse.smarthome.model.core:0.9.0.b5]
        at org.eclipse.smarthome.core.service.WatchQueueReader.run(WatchQueueReader.java:206)[98:org.eclipse.smarthome.core:0.9.0.b5]
        at java.lang.Thread.run(Thread.java:745)[:1.8.0_112]

2017-07-08 20:03:34.130 [WARN ] [eclipse.jetty.servlet.ServletHandler] - /proxy
org.eclipse.emf.common.util.BasicEList$BasicIndexOutOfBoundsException: index=1, size=1
        at org.eclipse.emf.common.util.BasicEList.get(BasicEList.java:346)[63:org.eclipse.emf.common:2.11.0.v20150805-0538]
        at org.eclipse.smarthome.ui.internal.items.ItemUIRegistryImpl.getWidget(ItemUIRegistryImpl.java:516)[136:org.eclipse.smarthome.ui:0.9.0.b5]
        at org.eclipse.smarthome.ui.internal.proxy.ProxyServletService.uriFromRequest(ProxyServletService.java:236)[136:org.eclipse.smarthome.ui:0.9.0.b5]
        at org.eclipse.smarthome.ui.internal.proxy.AsyncProxyServlet.rewriteTarget(AsyncProxyServlet.java:64)[136:org.eclipse.smarthome.ui:0.9.0.b5]
        at org.eclipse.jetty.proxy.ProxyServlet.rewriteURI(ProxyServlet.java:184)[77:org.eclipse.jetty.proxy:9.2.19.v20160908]
        at org.eclipse.jetty.proxy.ProxyServlet.service(ProxyServlet.java:56)[77:org.eclipse.jetty.proxy:9.2.19.v20160908]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)[18:javax.servlet-api:3.1.0]
        at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:812)[81:org.eclipse.jetty.servlet:9.2.19.v20160908]
        at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:587)[81:org.eclipse.jetty.servlet:9.2.19.v20160908]
        at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71)[172:org.ops4j.pax.web.pax-web-jetty:4.3.0]
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)[80:org.eclipse.jetty.server:9.2.19.v20160908]
        at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)[79:org.eclipse.jetty.security:9.2.19.v20160908]
        at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)[80:org.eclipse.jetty.server:9.2.19.v20160908]
        at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)[80:org.eclipse.jetty.server:9.2.19.v20160908]
        at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:287)[172:org.ops4j.pax.web.pax-web-jetty:4.3.0]
        at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)[81:org.eclipse.jetty.servlet:9.2.19.v20160908]
        at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)[80:org.eclipse.jetty.server:9.2.19.v20160908]
        at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)[80:org.eclipse.jetty.server:9.2.19.v20160908]
        at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)[80:org.eclipse.jetty.server:9.2.19.v20160908]
        at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80)[172:org.ops4j.pax.web.pax-web-jetty:4.3.0]
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)[80:org.eclipse.jetty.server:9.2.19.v20160908]
        at org.eclipse.jetty.server.Server.handle(Server.java:499)[80:org.eclipse.jetty.server:9.2.19.v20160908]
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)[80:org.eclipse.jetty.server:9.2.19.v20160908]
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)[80:org.eclipse.jetty.server:9.2.19.v20160908]
        at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)[71:org.eclipse.jetty.io:9.2.19.v20160908]
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)[83:org.eclipse.jetty.util:9.2.19.v20160908]
        at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)[83:org.eclipse.jetty.util:9.2.19.v20160908]
        at java.lang.Thread.run(Thread.java:745)[:1.8.0_112]

When I open the URL I get the image from the camera. On version 2.0 everything worked fine.

I have the same problem. Weird and frustrating!

I have several IP cams. Most are fine - but one fails as yours does and, surely not coincidentally, the URL also ends cgi

Dan

@Kai Have you got a tip for us?

No, but what I can say is that a BasicIndexOutOfBoundsException must not occur, so there is clearly some bug in the core - please report it at https://github.com/eclipse/smarthome/issues.

You could also check if the following might work instead:

Text label="IP Cam 1" {
     Image label="IP Cam 1" url="http://192.168.56.3/snapshot.cgi?user=test&pwd=password"
}

thanks, Kai. Doesn’t make a difference, unfortunately

Oddly I don’t get the errors that MriX gets. I do get an odd effect where the camera’s webserver refuses to let me log on for a few minutes after openHAB attempts to display the image. Clearly it’s being upset by something openHAB is doing…

All new since 2.1. In fact I experienced this with a 2.1 snapshot months ago, but put it down to something weird in my system and reverted to 2.0 without reporting the problem. Bad me!

Dan

Indeed, better report sooner than later :slight_smile:
But we will get 2.2 working then…

Thanks for the report. When will the OpenHAB 2.2 be released?
You can update this issue: