Bandwidth limits and playing nice with myopenHAB.org openHAB Cloud


(Skinah) #1

I’m posting as I am not sure I understand how the cloud feature works and wish to check before I potentially start hammering the cloud with huge amounts of data from my security cameras by mistake.

My questions are along the lines of when does data get sent to the cloud? How much bandwidth can we use before it causes an issue for a community run service? Is there a limiter setting or a way the cloud can disconnect people that use too much? Where can I go to learn more about how a binding should behave to respect the cloud and play nice?

My guess is the cloud works something like this:

Your local openhab pings the cloud on a regular basis to see if it is needed. Very little data is transferred when doing this and this is why a dynamic IP is not an issue as your local openhab is checking in often.

A remote app or webpage connects to the cloud and then the data rate ramps up.

Cloud tells your local openhab to send all the states of items next time the local openhab pings the cloud.
Cloud sends the data on to your remote app/web for you to send and interact with.

You close the app/web and the cloud goes back to low bandwidth and recieving ping like packets from the local openhab instance.

So what happens if someone was to have an IMAGE item updating with a 500kbyte or larger picture once a second from a 4k security camera. Does this go through the cloud, or does the cloud just pass on the IP:port of the client app/web page and send the data direct from the local openhab server to where a user is watching?

I have done a little reading but the readme on github talks about installing and not a brief “this is how it works” blurb.


(Rich Koshak) #2

This is my understanding based on observation and how I would write it. It is not based on looking at the actual code so I could be wildly off.

There are three transfers that go through my openHAB.org.

  1. Proxy for the REST API. This is only transferring data when you have a sitemap or Habpanel or phone app open and refreshing.

  2. Push notifications.

  3. Item updates for those items configured to be shared in the cloudconnector.cfg (or what ever the config file is called).

2 is small enough not to be worth consideration.

Unless you are sharing a lot of items, 3 is small to non-existent as well. There is no reason I can think of to share an Image in this way.

So that leaves 1. 1 will only be transferring data while you have a UI open. This could added up to a good deal of data if you have a lot of image items or the like but it isn’t going to be constant. It will just be while you have a UI open.

So as long as you are reasonable (don’t have lots of UIs open through myopenhab.org all the time) I don’t think you will be causing any problems.


(Skinah) #3

Thanks for reply, it has confirmed it works how I thought because I too dont want to spend weeks looking through code :slight_smile: I dont need to know how it works, only what to be careful of when making my binding that others may use in a stupid way.

Would I be correct in saying for 3 to create traffic I would have to deliberately edit the file and add the image? I have my whole site turned on to get my lights working with google home and it was easier to enable the whole site then specify all 23 globes and other virtual switches. Does that mean my image item will be sending 3 traffic?

Sorry for all the questions as I have not gotten fully into openhab yet as just getting my devices working so I can get fully into the good stuff.


(Rich Koshak) #4

Yes. Previously back in OH 1.x, the Cloud Connector was a Persistence add-on and too many people used * (i.e. all Items) to be shared with the cloud and that caused all sorts of problems for the servers. So now no items are shared by default and you have to explicitly add each Item one by one to the config file.

How have you done this? My understanding is there is no way to share all Items in one go. You have to specify them all individually, either through the cfg file or through PaperUI. Are you confusing the cloud connector config with tags?

If you are using Official Google Assistant Integration for openHAB there is no need to select Items to share. You just need to add tags to the Items you want to control. Note that tags are not the same thing as adding an Item to the cloud connector config. https://docs.openhab.org/addons/ios/openhabcloud/readme.html

If there has been some addition to the cloud connector that I’m unaware of that lets you share everything then yes, all Items will be shared so all updates to all Items will be published to myopenhab.org. But I’m pretty sure this is not supported so I’m confused about what you have done.


(Skinah) #5

I will need to check but I believe I set the items to expose to everything as that was quicker and I did not understand it may not have been needed to get google home working. See below picture from documentation. I will check my router logs to see what and how much data is outgoing.


(Rich Koshak) #6

Unless there is some option under Expert, there is no way to expose everything through that settings menu. The maintainers purposely removed that because too many people were exposing all their items and it brought the cloud servers to a halt with too much traffic. If be surprised they added that capability back.


(Skinah) #7

@rlkoshak
Thanks for your help and replies, they are aprieated heaps.

I can confirm that the option I used is now no longer there and also that my routers traffic analizer proves that no data from my cameras is leaving.

So I did the first test of using this to view my camera and the result is interesting. I only created traffic for around 12 minutes absolute tops doing this test.

I have opened an issue for this and linked back here.