openhab / openhab-addons

Add-ons for openHAB
https://www.openhab.org/
Eclipse Public License 2.0
1.88k stars 3.58k forks source link

Ultimate Voice Support #9410

Open peepshow-21 opened 3 years ago

peepshow-21 commented 3 years ago

I currently use the Kodi plugin to connect to my OpenHab home automation. This allows for some limited control.

I was thinking about how to make this excellent and thought of this as a solution. Is this a thing the experts in development think is possible?

There should be an API call available, something like getAllClickableItems(). This would simply return an array of strings representing anything that is viewable on the screen, which could be clicked, possibly along with a id, if needed. When the voice service such as Alexa, or Google Assistance received a voice command such as "Alexa, choose the office on kodi" it would pass "the office" through to the channel associated "choose".

Choose would be the new OpenHab channel to map to the new Kodi API command.

This part is already there. I can already do this with favourites. There is a command called "play/open favourite" already in the Kodi plugin for OpenHab, so I assumed Kodo has a hook to play these, which the OpenHab plugin uses. This works fine, but is very limited.

Now, imagine if the plugin had access to the new kodo API call? You could do anything. You would need a few little navigate commands which may already be there, like down page. So if in the Guide for example, you could say "Down" which the existing integration could map to the down full page command.

The would could do this, just with this new API call.

"Open Guide" "Down" "Down" "Select 'Planet Earth' " (seen in a column in the guide) "Switch" (form the page shown after it was picked)

That's is. It plays!!!!

The key part would be when Select was made. The plugin would call the new API get the list, search the list for the phrase passed in, then call the code that actives the one chosen)

I think you could pretty much do 90% of all things with this one extra hook.

I do not know Kodi code, or the Plugin code. But I have a feeling this could be done, and if it could, would be amazing to use!!!

I'd be interested for anyone's feedback? Maybe the way Kodi is build makes this impossible, but maybe it's not so hard too.

Worth thinking about though!! Smile

I've logged the other side of this issue on the Kodi forum. As I assume it would need dev at both side. Some Kodi work for the new API and some Kodi plugin work to support it. But once there... wow!! 👍

https://forum.kodi.tv/showthread.php?tid=359198

lsiepel commented 2 weeks ago

It has been a while since the request started. The kodi binding has evolved and also the TTS service have improved. Unfortunately i can't tell if all cases you like are covered. But maybe you can update the request against current versions?

The current voice controlled systems can trigger update items (basics) are rules (advanced/custom). So theoretically all channels available by the KODI binding can be controlled by voice: Most of your examples seem already possible.

I must admit it would cost you some time to set it up.