I am under the belief that Home Assistant is good for somethings and not for others. My work on the Grocy skill is a precursor for my major adventure which is a JellyFin/Media Player skill.
As I sat and started working with Rhasspy connected to my HA instance I found the idea of trying to teach Rhasspy how Home Assistant controls Jellyfin made no sense to me. “Why am I not teaching Rhaspy to talk to Jellyfin?” Home Assistant’s integration to Jellyfin is great and all but lacking buy a ton, I still can’t find a way to get a media listing from their API, so how would I provide Rhasspy a slot program for song names or whatever.
This is when I decided I was going to have HA control HA’s things, and build skills for Rhasspy when it made more sense. I admit this line is gray, and some will differ in opinion.
To that point I have also started building a bunch of media player related event scripts in HA that I plan to share as well, and while these technically could be used to control Jellyfin, the capabilities I plan for my skill are far beyond what the HA integration can provide (I think). So I plan to use those skills to control other media players like my TVs and such. And I use HA to control the IoT “Home Automation” devices.
After writing the Grocy skill I have to admit that I think it is probably possibly to recreate the functionality in HA. But I don’t know if the HA integration to Grocy covers all the objects I did/plan to. But I’m pretty sure I could make a set of intent scripts that would make Grocy very usable through HA.
But as I said before, I mostly did the Gorcy skill as a precursor to the Jellyfin one, just so I could get my feet wet with a well documents python API (pyGrocy), focus on building out the skill, and then take that to the Jellyfin one. While building it I also kept in mind the concepts the HA group is with making it a multi-lingual skill, and while mine is not yet, the additional of the random response sentence started the framework towards it.
The whole thing resulted in a python project template/class that I have shared on my Github which is a wrapper for the Hermes App class the Rhasspy people put out. This is setup to be able to read from a local config file and connect to a Rhasspy config to “install” it’s sentences automatically (does not overwrite existing), and can be used to store connection information for API the skill needs or various other thing. I’ve been trying to make the skills more “deployable”, excuse the term, but more commercialized, polished. My hope is if I can create a nice set of easy to deploy skills that are actually useful. No offense to all the time skills out there (I built one too) but we need our voice assistant to do more than tell the time. For that matter it needs to do more than be able to turn my lights on and off.
And yes I know HA is working on that. The stuff that is coming in the 2023.5 release is potentially game changing. But I am worried it will still be bound by the HA API, and it’s integration’s capabilities. If that’s the case, then to me, it will still be in need of external skill programs to “complete” the eco-system. I may move my work over to the new Wyoming protocol at some point, we’ll see.
I know that was long winded, and I admit this is all just my thoughts and opinions. But I hope you can understand the reasoning for some of it. And I understand this is not a one-size-fits-all type of thing.