Image widget doesn't show webcam image


When I use the Image Widget to display a webcam image from an URL like this one http://xxx:yyy@ it only shows me the “broken picture Icon”.

The widget shows the image, after I open the link to the picture manually in another browser tab.
However, if I restart the browser, it stops working again.

@ysc: I really like your work!

Disregard, the problem was on the camera side.


Matti, I have the same issue here. Whats is the deal with the camera config? Thanks!

The video is not working as well…

Sorry, eddalexandre, I can`t remember the details. But I think it was something completely unrelated to HABpanel/openhab.

I have a similar issue with a Dahua 2MP dome cam. Will the image widget display a broken image when the size if too large ? Or is it a timing issue when logging into the camera for a snapshot ?

Anyone experience with this ? On a PC it works, but not reliable and on and andoid tablet it never works. Direct access of snapshot and video link from browser is ok.

HI All,

I wanted also to integrate my webcam image in a HABPanel but I also get the icon image not found.
The URL looks like : http://XXX:YYY@

The URL is working fine directly in Chrome. And also when I am using chrome to to go in OH2 classic UI in my items.
But it looks like the image does not work well on Android (it seems to be a little bit better on iOS but the refresh does not work).

Any idea what I can do?
Is it the format that do not work on something with my android?

What is weird is that if I put my URL in a frame widget I can see the picture in my HABPanel…


Looks like issue is solved on my side. After having played several time with the frame and image widget, finally the image widget started to work. Maybe there were some sync issues with the webcam.



I also ran into this issue. It seems to be an issue with webcams using basic auth (*://user:pass@ip:port/file/). When I omit the authentication parameters and have a tab open in my browser which is currently accessing my cam and therefor is authorized, then Habpanel displays the image.
This works as long a I restart my browser or the session to the webcam times out. So it is not usable for my wall-mount project.

It doesnt work at all when using nginx reverse proxy! You have to connect directly to your Habpanel via LAN.

Sadly my cam only supports snapshot and mjpeg access via basic auth so this issue is very problematic to me.
@ysc do you have a workaround on Habpanel-side which could help me?

I am using a Hikvision IP-Cam DS-2CD2342WD-I. The API is documented here in case it matters:
Page 24: Security
and page 149: 8.9.6/ISAPI/Streaming/channels//picture

Thanks in advance

You’re probably running into this:

Sorry. Your other option is to proxy the image through the openHAB server.

Thank you and sorry for not being able to find this thread on my own… :wink:

Yes, I think it was this issue. I played around with chrome, Firefox and IE because the browser kept the session info as long as it was open. So probably it was just related to Chrome.

I found a solution for my problem. As I running nginx as part of openhabian I just set up a reverse proxy for my Webcam with transmitting the basic authentication via header. Therefore I am able to include the picture of my Webcam without auth in the url. I will write some additional information this weekend, but anybody should be able to do it on his own with the info from


I know that’s really old but in my case still an issue.
The video feed works fine on my ipad, but not on my android tablet.
Wouldn’t the zoneminder binding be able solve the issue?

What issue do you refer to? The ipcamera binding should solve a lot of issues that stop cameras working directly without the binding. Also check out the new widget I uploaded to the gallery if you have a PTZ camera.

Thanks, Matt.
I looked into options to get around the authentication issue with chrome / google based browsers (no basic authentication accepted for ipcam footage).
Now that I found your awesome ip cam binding, you can just disregard this path using zoneminder :slight_smile:
Thanks for your reponse though.