Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Home Intent Going to Maintenance Mode #362

Open
JarvyJ opened this issue Apr 13, 2022 · 7 comments
Open

Home Intent Going to Maintenance Mode #362

JarvyJ opened this issue Apr 13, 2022 · 7 comments

Comments

@JarvyJ
Copy link
Owner

JarvyJ commented Apr 13, 2022

I've been thinking the state of Rhasspy, with @synesthesiam moving on to work at Mycroft.ai and what that means for Home Intent.

I've put a lot of hours into Home Intent over the past five months, working on and shipping some really interesting features:

as well as playing around with more experimental ideas:

  • the automatic-form generation code in the UI that builds form components from OpenAPI spec
  • the websocket logs and exceptions in the API/UI (my first time playing around with websockets)
  • the YAML dont-save-default settings code that tries to rectify defaults with human input, and I can never remember if it preserves comments...
  • most of the development can happen in a container to lower the barrier of contribution
  • learning about building custom satellite system images

A lot of these features were implemented because I thought they were technically interesting problems to solve. I did it for me, and put it out there for other folks to use. Along the way, a few of you who have decided to try out Home Intent and have shared that you really enjoyed the ease in getting setup and integrations and I can't thank you enough for trying out my little contribution to the world.

But as of now I am planning to put Home Intent in maintenance mode.

What does that mean?

Until Mycroft is fully capable of running offline, the Home Assistant skill supports the domains I use, satellite support is in, and translation support has started, I plan to continue using Home Intent and doing minor development:

  • move to a [hopefully] quarterly release system
  • update packages to try and avoid any security issues
  • finish up and close out some of the existing issues
  • If a bug is reported that is simple to fix, consider working on it
    • If folks put in an issue, with an intent to create a PR, I will likely work with them on it.
  • Work with folks who want to contribute a translation
    • There still isn't really a multi-language alternative to Rhasspy
  • no new big features or anything
    • This is it really. I've put in a lot of features in the past 5 months, but from here on out it's going to be mostly simple bug fixes and package updates.

After Mycroft is running offline and has the features Home Intent provides, I will likely switch over to it and stop all development on Home Intent. I just came along to get some of the integration work done, and there's already some integration work happening between Mycroft and Home Assistant.

With the change going to maintenance mode, I will also not be putting in as much time into Home Intent. For the first 5 months, I think I put in an average of 2hrs/day for 7 days/week. From now on it'll probably be much closer to 1-4hrs/week (and has been since January). It was a lot - effectively a second job. I got the smallest taste of maintaining a large project (at least with my time), and have gotten a lot of appreciation for folks who can do it as their side gig for an extended period of time. But I don't think contributing at that level is for me.

Since not too many folks are aware of Home Intent, I think the maintenance mode will be doable. As such, I will also stop trying to promote Home Intent (including not implementing #257). I always hoped it would eventually catch on by itself, because it is supposed to be easy to setup, and works pretty well OOTB, but it never really caught on...

For now (late Q2 2022) I think folks should still try out and use Home Intent, as it covers a lot of different use cases, but when Mycroft gets more local and supports more features it'll be worth considering switching.

All the best,
--Jarvy

@JarvyJ JarvyJ pinned this issue Apr 13, 2022
@oerkel47
Copy link
Contributor

Hey Jarvy, good to hear from you. First of all, your decision is totally understandable. I too wish HomeIntent had caught on more. Be assured that you did a great job with it and thank you for the work you put in.

See you.

@JarvyJ
Copy link
Owner Author

JarvyJ commented Apr 15, 2022

Thanks oerkel47, it was great working with you! We got some good ideas implemented!

@synesthesiam
Copy link

@JarvyJ Thanks for all of your work on Home Intent! Very impressive and polished work :)

Mycroft is starting the process of designing their next architecture, and I'd be interested to hear what you think the best and worst parts of Rhasspy are. Additionally, what would you see as the core features of Home Intent? I'm doing my best not to preclude any use cases for Mycroft 2.0.

@JarvyJ
Copy link
Owner Author

JarvyJ commented Apr 17, 2022

Thanks @synesthesiam!

The best parts of Rhasspy:

  • MQTT + API integration
    • almost everything is easily modifiable/accessible
    • able to restart Rhasspy and download components easily
  • Pluggable services
    • folks can swap the TTS if it works better in another language
  • Sentences + slots w/JSGF grammar
    • this made Home Intent possible as I could tie the human name of a light back (kitchen) to its id in Home Assistant (light.kitchen_1)

The only thing that really stuck out as being hard to get going was the language support. Since that was based on the profile folder name and not really settable via the API/config, I had to make a custom setup script to configure it from an Environment variable and get it going on startup.

As far as core features of Home Intent:

  • Ease of setup and use - it's all docker with thorough documentation
  • Auto pulling in components from HA and setting up sentences
  • Consistent sentence structure. After using Home Intent for a bit, you can probably guess how to interact with new components
  • I designed a lot of it for HA users, so Home Intent can fully manage Rhasspy with sane defaults (but can also plug in to an existing Rhasspy setup if needed, for the power users/Rhasspy crowd)
  • A good amount of customization.
    • You can enable/disable HA entities or domains via the UI
    • Not too many options, again trying to go with sane defaults
    • Can still dive deep into customizations for power users
  • Using toggle instead of on/off for better UX
    • this kinda gets more into designing sentences that work well with the underlying systems, which is a lot of hard work and trial/error, but hopefully makes for a better product

a lot of it is just thinking about the HA user and what they're already comfortable with and trying to make it quick, easy, and intuitive to get going.

and from a technical perspective:

  • Every integration is built the same, so folks can make their own custom components by looking at some existing components (which is basically how HA works).
  • The HA component's code has all domains in their own folders, so you don't end up with one very large file that tries to do everything
    • it's a little more personal preference, but I think it helped overall.
  • using a decorator based approach to take care of a lot of the repeated setup code throughout components

@synesthesiam
Copy link

Thank you for the detailed write-up, @JarvyJ! As I was reading, it dawned on me that you've already gotten very far with something that I hadn't even started yet. The creator of Home Assistant (Paulus) has been kind enough to offer a collaboration between Mycroft and Home Assistant to develop a great out of the box experience for voice control of HA. This can either be through one of our Mark II devices or via offline add-ons that I'm hoping to write (likely based on Coqui STT and Mimic 3 TTS).

But a big missing piece is the default voice commands for controlling each of HA's domains. I see you have this already for English and German! If we can collect more translations, I think this could be the foundation of future HA voice control 🙂

@nyok92
Copy link
Contributor

nyok92 commented Jul 5, 2022

Hey ! 🙂
I am glad to have found this super project.
Thanks for all this work.
I am not the best git user, nor a python dev, but i tried to add French translations and proposed a PR.
I proposed too a PR for media_player voice control too 🙂

#429
#428

I didn't knew Mycroft, i will look into it.

@JarvyJ
Copy link
Owner Author

JarvyJ commented Nov 20, 2022

With the great news of @synesthesiam moving full time to work on Rhasspy and voice in HA. I know the future of what Home Intent offers will continue and expand! Our users will have a place to continue to get updates and new features!

Naturally I will continue the quarterly patches/updates until the new capabilities are available. I'm just excited about the HA and Rhasspy future!

I always wish I had more time to work on Home Intent, but the couple months during the summer last year where I was on sabbatical and started work on Home Intent were truly amazing. I got a lot done in a couple of months, and it seems like a lot of you found my little contribution to the open source useful. Thank you!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants