Suggestions how to correlate or present data from several Openhab instances

Time for my first post even though I have been an Openhab user for many years

Current situation is that we own several properties with different kind of IoT equipment. Each location has an Openhab instance running which works really great (controlling outside lights, pumps etc.).

Usecase is that I would like to monitor and even control specific items/things from our home by a central panel or dashboard.

It’s key that the remote OH instance works even if the Internet drops out why VPN solutions and consolidation into one OH instance is not an option.

My consideration is a solution with myopenhab cloud for each instance from which I can pull data into a central dashboard and I’m searching for any experience by implementing such a solution or similar functionality.

Thank you

How about you run an online mqtt broker and have all instances publish data to it.
That way you can monitor all changes and even create rules that listen to messages and trigger things.

3 Likes

I wrote and use MQTT 2.5 Event Bus for just this purpose. As Sebastian suggests you could use Cloud MQTT or the like, or you could set up a VPN between the hosts and configure a locally hosted broker. One nice thing about this approach is the code has already been written for you. If you are using Jython all you have to do is tag the Items you want to share. If Rules DSL you just need to add them to the right Groups.

Each individual OH instance would still be able to operate independently when the VPN is down, it’ll just generate errors in the logs which you could filter out if required when the connection is lost. With the LWT messages you get the added bonus of knowing when that network connection is lost.

I’d recommend setting up the VPN too so that you can do some minor remote administration of the machines as well.

I’m working on a more native approach that uses JavaScript NGRE Rule Templates and just the openHAB REST API but they are not fully written/tested yet. In this case you can trigger a Rule on all Item events and then publish the commands or updates to another OH instance This would have the advantage of working through myopenhab.org, though, assuming each instance has it’s own account. However, this approach gets complicated when you have more than two instances. There is no way to trigger a Rule this way in Rules DSL.

For OH 3 they are talking about creating a binding, though there is no timeline yet.

In all the cases, you have to be careful to avoid infinite loops. In your consolidation instance, it one sends commands to the remote instances and only receives updates from the remote instances (use autoupdate=false on the consolidation instance too). That way you avoid a loop where you send a command which results in an update which comes back and gets republished back to the remote and so on forever.

2 Likes

Thank you for the feedback.
Seems like MQTT currently is the best option.

A binding which aggregate into a consolidated dashboard would indeed be great and a suggestion could be to start with data only and in phase two adding the commands ;o)

The purpose of the binding is to link two openHAB instances together so that those who continue to use Oh 1.x bindings can run an OH 2.5 instance where those bindings are still supported and link that instance with a “main” OH 3 instance. It is not for building a consolidated dashboard. As such, commands and updates are required.