This thread is about gathering information around the question “is there some place in openHAB for a common Intent catalog ?”
I’m interested in openHAB capability to act as a vocal assistant.
I eagerly follow all the great efforts in this category, and as I read topics and checked what is done elsewhere on other open source project, I’m now thinking that maybe openHAB should have an Intent concept.
Is there already such effort somewhere ?
For those wondering what an “Intent” is: Intent is used nearly everywhere when a user try to interact in a complex way with a system. A little example of what could be an very simple Intent:
- type : controlling light - action : on - location : bedroom
It’s some kind of “already interpreted user input”. The user input can be a voice command, or a text based interaction with a binding like Telegram/Signal/SMS, or habot, or in fact nearly anything.
As far as I know, the current openHAB way of dealing with user input is to give everything to the HLI concept:
User input → HLI → action on item
As it is great for letting HLI addon great power, it complexifies the development of HLI and doesn’t allow for modularity.
If openHAB core could add an Intent catalog / functionnality / concept / whatever, it could means:
User input → HLI → (Core openHAB Intent module → Intent subscriber —>) action on item
(new and optional part between parenthesis)
The benefit of this is the “Intent subscriber” part. “Intent subscriber” can take many forms:
- openHAB core could subscribe to some intents and perform action on item for basic operations like light, rollershutter, etc. It would mutualize code and effort in core, thus relieving HLI addon from the burden of analyzing the ontology/semantic of all the items in the house.
- Addons could subscribe to some intent exposed in a catalog and act accordingly. For example, a music player addon like Spotify or LMS can subscribe to intents related to music for advanced capability (seach, etc).
- User could subscribe to Intent from within rule (with a new kind of trigger : Intent).
- We could imagine letting the user choose wich subscriber will receive which intent.
Advanced topic : we can imagine a reverse control, by letting addon or user defining custom intent (with some syntaxic sugar) and sending them to HLI for them to add in their content recognition engine.
I don’t know anything about Home Assistant, but I just found a page about this in their documentation.
Mycroft also uses this concept.
If it is deemed appropriate, I can try to initiate something, with the time I dispose. But if someone else wants to, I would be glad to help him/her.
I would also be very happy for receiving any advice,directions, etc.
Related question for those interested : do you know if there is an open catalog of Intent somewhere ? Some kind of standard ?