Future of openHAB?

rules
ai
Tags: #<Tag:0x00007f6ce985ca98> #<Tag:0x00007f6ce985c908>

(Christoph Wempe) #1

Is there a plan what openHAB should become in the next years?

I love openHAB and there is still room to improve the current feature set.
But what about AI (artificial intelligence)?

Like Google new mantra “AI first”.
We should not ask: "How can we make the creating of rules more user friendly?"
But: “How can we create the right rules for the user automatically?”

Like the Nest thermostat learns when to start heating up the house before you come back from work.

This would make the “smart home” more accessible for the average user who knows nothing about programming.

I guess the “big players” like Google, Apple and Amazon will go in this direction.
So openHAB should be ready to keep up. :wink:

What do you think?
How soon might this be happening?
Has this already been discussed?


(Rich Koshak) #2

So the big problem with open source projects in general is that one can make all the plans they want to but if the developers aren’t interested or willing to work on it nothing happens.

For something like this to happen in OH it will take a concerted effort from a team of developers who not only want to plan for AI, but actually spend their time developing it. I think the maintainers have their hands full keeping up with some of the basics so I think it will take a concerted effort from mostly new developers at this time.

I’m not one of the developers so could be completely wrong on this point.

There have been several people who have all posted similar topics and requests. Several have even taken a shot at implementing something. But after their initial posts saying what they want to do they go silent. Either they drop the project or do not make any progress.

AI is really hard. Applying it to this problem space is hard. And personally, I’m not convinced there are many general home automation problems that would benefit from AI. There are some smaller problems for sure like that guy who put a bunch of sensors in boxes and scattered those boxes around the house and used AI to figure out what people in the house were doing, or that academic paper where several pirs are mounted above a door and AI was used to determine if someone is entering or leaving the room. And I’m sure that there are other discreet uses of AI like this yet to be discovered.

But for home automation in general I’m skeptical largely because the goals of the automation are so nebulous. When you have a really concrete question (how long does it take to heat the house? Which direction is a person traveling in? Is there a cat in this picture?) It is much easier to build an ai.

That’s just my two cents worth. And I won’t even go into concerns about wanting the automation to be deterministic which is impossible when using ai.


(Daniel Malmgren) #3

I think this is a bigger question. It’s a question of target audience. Which users want to use openHAB? At least as it is right now the learning curve for starting to use openHAB is pretty steep, which means mostly people that are quite tech savvy use it. If my parents should want to start automating their home I probably wouldn’t recommend openHAB. Or maybe I’d simply set it up for them. One might see the learning curve as a problem, but I think it’s a good thing because it means you can do really everything with openHAB. Systems which try to be very user friendly always get limited. There’s a reason why I don’t use any iOS products…

As for AI, I don’t want a computer algorithm guessing when I want my house to be warm. I know when I want it to be warm and I have the knowledge about how to make the logic according to my wishes.

Just my five cents…


(Adtwomey) #4

Best way is to donate $100 what a Google home cost. And once we can get enough money will be able to pay someone for it.


(bob_dickenson) #5

No AI/ML expert here, but Kyle Polich at dataskeptic.com did an interesting podcast a few weeks back on One Shot Learning. The essence being that “traditional” AI/ML approaches require huge amounts of data to arrive at a valid model AND the derived model tends to see new data as outliers to the model rather than novel. In home automation, we have pretty much the opposite situation…not a lot of data, “outliers” are more likely to be novel things rather than small variants of extant things, etc.

This is complicated by the fact that the “things” that might be interesting to tackle are sequences of events/actions over time (patterns) rather than single events. He works through a simple example with his co-host, then goes on to discuss Active One-Shot Learning where the process incorporates “asking for help” when novel things may have happened. One of his references is this: Active One-Shot Learning Another reference is this: One-shot Learning with Memory-Augmented Neural Networks


(Tobias) #6

Hi, a while ago I was already thinking (or rather working) on an approach to create a similar experience like Google Home but based on my own code. Basically increasingy level of trust in what a listening device in my home is doing. I would really like to push this further but to integrate it with OpenHAB I would need additional contributers. My last attempts were around using ML APIs of existing services, but this could be gradually phased out.

If others would be interested we could discuss a potential roadmap.

FYI: I have a some experience with machine learning. The key here is not to use Neural Nets for every problem. Sometimes, well crafted search can already provide meaningful results and appear “Intelligent”.


(Patrick Fink) #7

@rlkoshak: /sign Same-old issue. Many of us also discussed the “roadmap” topic at smart home day. I don’t think discussions for a “general direction” of the project will help. In the end, you have just a bunch of nebulous buzzwords like “digitalization”, “smart”, “AI”, “cloud” and nothing else. Those maybe make sense for the marketing departments of Google, Apple and Amazon, but Open Source doesn’t work this way.

What of course makes sense is to discuss concrete features, changes, Add-Ons and (ideally) bring consensus to particular topics among the community. It’s very helpful for a developer to know what the community wants and what the chances are that a specific feature/change gets merged. If there is a consensus about a particular feature, you can, in fact, put it to a kind of “roadmap” in terms of signalizing to the developers: This is a list of “most-wanted” features that would definitely get a warm welcome when showing up as a PR.

@christoph_wempe: If you want AI in openHAB, just make a concrete, feasible feature request and excite the community with it. If the idea is great and the community wants it as much as you do, there will be a developer doing it :slight_smile: That’s how open source works: Convincing developers that a feature is worth the effort (if you’re a developer, it’s easier because you just have to convince yourself :wink: )

@DanielMalmgren: /sign as well. openHAB won’t (and can’t) be a product for the completely non-technical user. But maybe someday a commonly used product for the average nerd :slight_smile:


(Rich Koshak) #8

From what I have seen, no matter what it is, if it conforms to the standards set forth in the contribution guide and doesn’t violate some key architectural point or only updates deprecated code ALL PRs are welcome to openHAB and Eclipse SmartHome projects.

PRs are even more welcome when an issue is opened and discussion made here and/or on the repo first, but even surprise PRs I’ve seen be very well received.

There may be cases where there has been a problem, I don’t religiously follow the issues.


(Patrick Fink) #9

It wasn’t the point that PRs are not welcomed. The point was that a developer who says “I would like to help somewhere where the community wants it most” or who says “I just want to program something valuable that the community already agreed on without having to do long discussions” currently will not find a good overview or starting point.


(Rich Koshak) #10

The issues are not a good starting point?

repo open issues
ESH 279 open issues
openHAB Distro 35 open issues
openHAB core 13 open issues
openHAB 2 addons 224 open issues
openHAB 1 addons 211 open issues
if you are not a developer than openHAB docs 80 open issues
If you want to make a little money, there is the BountySource Program

I will state it right now for all potential developers out there. If you want to contribute and don’t know what to work on choose an open issue and solve it.

For the developer who says “I would like to help somewhere where the community wants it most”, the Issues are the places where the community has felt strongly enough about a problem or a feature request to file an issue. It doesn’t get any more clear than that.

For the developer who says “I just want to program something valuable that the community already agreed on without having to do long discussions” all I can say is any open issue is defacto agreed upon by the community as something that is needed. If it isn’t something that is needed or supported by the maintainers the issues get closed.

However long discussions are part of any development project and even more so a part of an opensource project. If you are afraid to talk to other people, perhaps open source isn’t for you. But even then, pick a technology or API and build a new binding for it.


(Patrick Fink) #11

Exactly.

Yes, just 800 issues, so clear what are the most wanted / important of them…

No, it’s not. An open issue can be just a running discussion without any consensus if something should be done at all. Even if it’s clear that something should be done, it could be still under discussion what has to be done.

I was just making a suggestion what kind of “roadmap” would make sense in my point of view. If you think we won’t need it, OK. But don’t tell me that we already have it. We don’t. A list of 800 open points is neither an overview nor a roadmap.


(namraccr) #12

IMO, neither is needed. @rlkoshak is right. If someone has enough interest in the system to write actual code, they should just find an open issue in their area of interest and write a solution for it.


(Rich Koshak) #13

It doesn’t matter. It will depend on the user. One user’s most important issue is another user’s don’t care. But for anything to get done at all, it has to be an issue important to the developer.

Even if there were a roadmap, there is no way to enforce it. It would be less than aspirational. And the maintainers probably would want a new user to unilaterally start working on something from a roadmap anyway. Something that important needs discussion not only about the what, which is what would be on the road map, but how.

But the issues are concrete identified needs. We need these fixed. If you are a new contributor it will be far more useful to fix something already sited by the community as a need than unilaterally decide to add new features from a roadmap which OH may not be ready to implementing anyway.

It can be but the vast majority of them are not. They are feature requests or bugs.

I’m not telling you we already have a roadmap or overview. I’m telling you that a new developer would be more useful if they choose from the open issues than unilaterally deciding to implement something important enough to be on a roadmap. Open source projects are a community and for the big stuff require all that discussion to not only discuss the what but the how. A new developer can pick an issue of the list and fix it and know they are fixing our implementing something needed.


(Patrick Fink) #14

Yes, of course. Everything you wrote is correct (as I already stated before). A roadmap / overview cannot enforce that specific issues are done within a certain time, it can just bring focus to certain building blocks. And yes, focus can help to get things done. A developer cannot fulfill a feature request that he is not aware of because it’s just one out of 800. And most of that 800 issues are either:

  • boring for the developer / user
  • not an issue that the individual developer / user currently faces
  • not a “big” feature that would be interesting for a developer / user to work on

And this not just a claim, it’s true. I just randomly picked 15 issues some minutes ago and for all of them at least one of the points above are valid for me.

If the project does not want to have focus, this is also a decision. I’m user and developer, and everything I said was that some kind of overview or roadmap showing “the big ones” would be just helpful for me. Nothing more. As a user, I’d like to know what are the big things that will maybe show up in the future and that are currently discussed. As a developer, some things from this list would maybe excite me so much that I would support them. Other open source projects show that such a list does not have to be complicated. Example: https://subversion.apache.org/roadmap.html#features-most-wanted

Will some points on that list maybe stay there for years or even not being done ever? Yes. But would users and developers use this list just to be informed about “the big / interesting stuff”. Of course, they would!