Openhab cloud prob with video

Couple of questions please:

What is this all about?

2020-01-25 16:28:14.816 [INFO ] [io.openhabcloud.internal.CloudClient] - Disconnected from the openHAB Cloud service (UUID = ae297baa-fde0-4c26-a47c-378d6e993aa1, base URL = http://localhost:8080)
2020-01-25 16:28:18.198 [INFO ] [io.openhabcloud.internal.CloudClient] - Connected to the openHAB Cloud service (UUID = ae297baa-fde0-4c26-a47c-378d6e993aa1, base URL = http://localhost:8080)
2020-01-25 16:28:43.184 [INFO ] [io.openhabcloud.internal.CloudClient] - Disconnected from the openHAB Cloud service (UUID = ae297baa-fde0-4c26-a47c-378d6e993aa1, base URL = http://localhost:8080)
2020-01-25 16:28:48.158 [INFO ] [io.openhabcloud.internal.CloudClient] - Connected to the openHAB Cloud service (UUID = ae297baa-fde0-4c26-a47c-378d6e993aa1, base URL = http://localhost:8080)
2020-01-25 16:29:10.888 [INFO ] [io.openhabcloud.internal.CloudClient] - Disconnected from the openHAB Cloud service (UUID = ae297baa-fde0-4c26-a47c-378d6e993aa1, base URL = http://localhost:8080)
2020-01-25 16:29:16.347 [INFO ] [io.openhabcloud.internal.CloudClient] - Connected to the openHAB Cloud service (UUID = ae297baa-fde0-4c26-a47c-378d6e993aa1, base URL = http://localhost:8080)
2020-01-25 16:29:39.768 [INFO ] [io.openhabcloud.internal.CloudClient] - Disconnected from the openHAB Cloud service (UUID = ae297baa-fde0-4c26-a47c-378d6e993aa1, base URL = http://localhost:8080)
2020-01-25 16:29:45.493 [WARN ] [okhttp3.OkHttpClient                ] - A connection to https://myopenhab.org/ was leaked. Did you forget to close a response body? To see where this was allocated, set the OkHttpClient logger level to FINE: Logger.getLogger(OkHttpClient.class.getName()).setLevel(Level.FINE);
2020-01-25 16:29:45.584 [INFO ] [io.openhabcloud.internal.CloudClient] - Connected to the openHAB Cloud service (UUID = ae297baa-fde0-4c26-a47c-378d6e993aa1, base URL = http://localhost:8080)
2020-01-25 16:30:26.331 [INFO ] [io.openhabcloud.internal.CloudClient] - Disconnected from the openHAB Cloud service (UUID = ae297baa-fde0-4c26-a47c-378d6e993aa1, base URL = http://localhost:8080)
2020-01-25 16:30:32.717 [INFO ] [io.openhabcloud.internal.CloudClient] - Connected to the openHAB Cloud service (UUID = ae297baa-fde0-4c26-a47c-378d6e993aa1, base URL = http://localhost:8080)

And,

After about 6pm each day, my three camera feeds freeze the openhab app when connected through the remote cloud server. Happens until I go to bed and maybe beyond. When i wake up in the morning, it’s fine. Bandwidth ??? How can I improve it - if at all?

The cam feeds are live, 30fps, H.264 MJPEG format.

I#m using, in OH2.5-1, the video=“http://…” encoding=“mjpeg”… sitemap.item/ £ of them.

I suspect the problem is on the myopenhan.org service and not on your end, unless for some reason you can find some correlation with poor network performance on your end at theses times.

The OH Cloud Service isn’t really designed to proxy lots of video feeds for thousands of users.

But, I wouldn’t expect to see errors like this except when someone is actively viewing the video feeds through the cloud service.

my network is fine, in so far as performance is concerned, for example, it is only 80Mbps but we can stream 4x HD (720p@60fps) channels to 3 devices and a fixed google display, from Netflix, no probs.

I suspect its bandwidth when the States comes online at our evening time thru to early morning

What would you recommend…

  • Reverse proxy with DDNS to my server?
  • A cloud service designed for this with some level of SoP? - and who?
  • Nginx?
  • Other

appreciate your thoughts.

1 Like

I would go as far to say if you are streaming multiple videos non stop on a free service and not donating that is not considerate of other users. Especially since you indicate this is 30 frames per second and three streams with no inter frame compression! My guess is the freezing is due to you sending more frames than the service can handle when others are also wanting to use the service.

Yesterday I released a new feature in the ipcamera binding that automatically changes the FPS based on if there is motion or not. Really stupid sending data if the picture is the same so check it out.

I am not a fan of all my video feeds going via a server in the middle that may be located on the other side of the world due to lag so I am looking at setting up open VPN using key-key (no passwords) as my wrt router has this ability built in. This way your video goes direct from home to your device and not having to travel around the world twice. If you don’t have a router that can do this, look into it as you get many advantages. To be clear using open VPN is free and is completely different to paying for a VPN service that is normally used to show up in another country. No monthly fees and you get direct access to your network like you are still at home so webview elements still work when not at home.

6 Likes

I would advise a VPN to your home network, or port tunnelling through a SSH connection.

Please don’t stream lots of data through a ‘free’ service. It’s only free to use, it’s not free to run.

6 Likes

guys, that’s really really helpful.
yes, i agree with your sentiments around respect of OHs free model. Indeed, that is why i cane here and submitted the OP.
This VPN, my router is am EE Broadband device, I’ll look into what i can do with open VPN

thank you once again

1 Like

No problems, check out Wireguard as well as it is popular due to higher speeds and easier to setup although if your router has a wizard to setup openvpn that way can be very easy and opemvpn is more proven to be secure.

I’d recommend what I’ve recommended to you before.

Use Shinobi, ZoneMinder, BlueIris to manage your video streams. I know with Shinobi and strongly suspect you can with the other two that you can export your video feeds as a JPEG stream. Use that with an Image element on your sitemap with a reasonable refresh rate.

matt1’s suggestion of setting up a VPN to your home network and not going though myopenhab.org is also a great solution.

I use both approaches and I use Tasker to automatically connect to my VPN when I’m on any network besides my home network so I don’t end up wasting battery and network bandwidth going out and coming back in over VPN when I’m on my home network.

For those interested in Stuart’s SSH tunneling approach, see Remote Access Using SSH Tunnel on Android.

1 Like

Sorry, been busy in the dayjob

so, ive setup vpn server and locked this down with some robust iptables firewall and disabled all that isnt needed.

my vpn client can connect , and all is working fine and far far more responsive than myopenhab but then again i was using it in a manner it isn’t/ wasn’t intended for.

I am slightly concerned exposing a (non std number) port on the WAN , and I’m considering options.

You can rent a virtual server on Amazon AWS, Google, Azure, etc. and set up that as your VPN server and connect your LAN and remote clients to that. That will make it so you don’t have to expose a port to your LAN. https://computingforgeeks.com/setup-personal-ipsec-vpn-with-algo-vpn/ is a good place to start.

quite,
Indeed i looked at google but then that’s handing more to Google
obviously the vpn provider is ‘seeing’ all traffic as would my isp before VPN.
do you use any cloud server ricth?

the google cloud model (vpc) pricing is sooooo complex and tbh i don’t understand 90% of it, you need to be a competent network wan/lan guy to figure out what is needed and what the costs will be.

i might as well sub with a vpn provider like nordVPN , no? simple model simple price.?? but then again why would i trust a vpn service over my isp, or google , etc.

p.s.
in terms of performance , the bottlenecks will be my broadband upload speed which is 20Mbps, so a cloud seems an overkill?

@matt1 where is your addon, i searched for ipcamera in addons, but nothing?
it sounds that it would add value (motion detector)

I use myopenhab.org.

I use Heroku to host Nightscout but my usage is low enough that I don’t have to pay.

Someday I may get a DigitalOcean server but haven’t had the need to so far. I’m reasonably confident in my ability to monitor my OpenVPN instance for compromise and protect it from attack (I have a degree in this stuff). And I have defense in depth on my LAN with lots of sensors so I’m OK, for now, exposing that port to the internet. I know and understand the risks and have accepted them with my eyes wide open.

Algo’s website lists 8 different cloud service providers. You are by no means required to use Google. DigitalOcean is the recommended server and from what I’ve seen it is indeed easy to understand and use both from a billing and usage perspective.

All your ISP will see is that you have encrypted traffic going from your LAN to the VPC. It cannot see anything else. That’s kind of the whole point of setting up a VPN like this. And it’s very attractive from my perspective because my ISP injects crap into my network which breaks things (e.g. I can’t watch my Roku when I’ve reached 50% of my data cap until I open a browser and acknowledge their asinine pop up).

Similarly, any networks that your remote clients traverse will only see encrypted traffic between them and your VPC. So any communication between your remote clients and your LAN is end-to-end encrypted.

However, any network traffic outside your VPN using your VPN service (e.g. browsing the web) will appear to originate from the VPC so your VPC host will be able to see what sites you are visiting and, if it’s not HTTPS, inspect it’s contents should they choose. They don’t have a reason to unless you are doing something illegal and law enforcement is involved, but it’s still a possibility. Typically these services make money by charging for their services, not by collecting unreasonable amounts of data on you and selling that. So they don’t have as much incentive to snoop.

That won’t solve your problem. nordVPN et. al’s sole purpose is to hide your network traffic from your ISP and to allow you to access web services that may be country locked (e.g. I know people who use it to watch BBC streaming because they can appear to be coming in from the UK instead of the US). They do not let your remote machines see your LAN machines. They go to great lengths to make sure that none of the machines connected can see each other.

Trust is always the big question, and trust is transitive (if you trust a service, you also end up trusting all the services that service relies upon). You have to decide which you trust less, your ISP, or a VPN service. As with the snooping by the VPS providers, they have an incentive to not snoop as they will lose that trust and lose all their customers.

I don’t think it has been merged yet.

I’m running ovpn for now, until I explore your insightful and super helpful post thanks Ritch.

By the way, does the IPcam binding implement Network IP Camera Application Programming
Interface (NIPCA). My cam is NIPCA so basically implements all this: http://gurau-audibert.hd.free.fr/josdblog/wp-content/uploads/2013/09/CGI_2121.pdf

So basically HTTP verbs can be used to query, set and get values across the capability set. Rather useful if the binding does indeed implement NIPCA - or would that need to be another Binding (different). ?

That could be added to the binding but I am not keen to do the work for free. Onvif is something I am working on and that opens up more brands. That api seems to be in D-Link cameras only.
Ffmpeg can be used to provide both motion and audio alarms for cameras without an implemented api.

If someone wants to do the work and do a pr then it is not a lot of work as the frame work is already done to support most things.

I find it rather peculiar that you are developing an add-on and want to avoid improving it to attain a level of brilliance and functional capability level of a high standard. I’m a developer myself albeit in embedded real-time safety critical systems, and I sure would do the same. However, three important elements at play here:

  1. I get paid for my development work.
  2. I work in a Business Quality and Assurance function so striving to achieve the best is important to myself and the business.
  3. I don’t need you IPcamera add-on because I can do all that I need to do via http abbreviations.
    :slight_smile:

TBS though, I do not use the ipcamera add-on because I have setup the cam using a simple shell script that runs as a startup service via systemd.

I am not a developer and I only work in my spare time. Since your a developer I am sure you wont mind doing it then as PR are always welcome in an opensource community. There are plenty of ways to work with Openhab and if you have found a way then great.

1 Like

All contributors to OH are doing so on their own time. As such they get to be their own boss and work on what they want, when they want, and to what ever degree of completeness they want. Adding support for a standard that is only supported by cameras from one maker may not reach a wide enough audience to make it worth Skinah’s time to implement.

2 Likes

i suspect the "audience’ could well be significantly larger than perceptions, given that the list of cameras from just one manfr is

DCS-1100(L), DCS-1130(L), DCS-2102, DCS-2103, DCS-2121, DCS-2130, DCS-2132L , DCS-2136L, DCS-2210, DCS-2230, DCS-2310L, DCS-2332L, DCS-3010, DCS-3112, DCS-3410, DCS-3411, DCS-3430, DCS-3710, DCS-3710 B1, DCS-3715, DCS-3716, DCS-5211L, DCS-5222L, DCS-5230L, DCS-5605, DCS-5635, DCS-6010L, DCS-6112(V), DCS-6113(V), DCS-6210, DCS-6314, DCS-6410, DCS-6510, DCS-6511, DCS-6513, DCS-6616, DCS-681x B1, DCS-6915, DCS-7010L, DCS-7110, DCS-7410, DCS-7413, DCS-7510, DCS-7513, DVS-310-1, DVS-V310-4, DCS-940L, DCS-942L

…just ‘a few’ :grin:

as i say, i dont need it, dont use, wont shed a tear…just helping, dev to dev.

:upside_down_face::+1: