Giter VIP home page Giter VIP logo

homeintent's People

Contributors

dependabot[bot] avatar jarvyj avatar mots avatar nyok92 avatar oerkel47 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

homeintent's Issues

document how rhasspy settings work

class RhasspySettings(BaseModel):
url: AnyHttpUrl = "http://rhasspy:12101"
mqtt_host: str = "rhasspy"
mqtt_port: int = 12183
mqtt_username: Optional[str] = None
mqtt_password: Optional[str] = None

For folks who want to integrate with an already running rhasspy instance (is it a hass os addon?) or a custom mqtt setup within a rhasspy profile

Alarm component?

Similar to timer, but instead set an alarm to go off at a certain time. Maybe it should be baked into the timer component.

Standardize on voice output

timers respond with "Timer set <time>"
groups respond with "The <group> group has been turned on"
switches respond with "The <switch> switch has been turned on"
shopping lists respond with "Adding <item> to the shopping list"
lights don't respond with anything (#7)

We have different sentences and tenses everywhere!

Fix imports

They are a little messy and a lot of the static code analysis tools choke.

Set Unused Shopping List intents to `default_disabled`

I almost never use the check/uncheck everything from the shopping list (or even for specific items). I usually just the the add/remove, so it might be worth removing the unused ones to avoid a potential mistrigger.

This is also because I will mark them as completed while shopping. We'll see if anyone else uses those intents, otherwise consider removing them.

Better Sound Effects

Time for some custom sound beeps!

  • beep hi
  • beep low
  • error
  • alarm sound

I think we can make for a more polished experience.

Basic Frontend

I've been thinking about creating a frontend so people can more easily make modifications to their customizations (and maybe default configs?!).

I might end up changing the deployment strat again if it happens, but we shall see how that goes!

Get rid of "make" in "change|set|make" ?

it's a different type of command. You don't need to "to" in the sentence. We'll keep it for now and see if anything breaks. I'll have to do some more testing.

Figure out unit tests import problems

If I enabled the following customization:

# turn_on:
# alias:
# - sentences:
# - "Turn on fitzs light"
# slots:
# light: "bedroom"

other unit tests break because they see one more method in the sentences, even though it's not referenced there. I played around with fixtures, which fixed some of these sorts of problems, but it didn't quite work for me in the end.

I think it has something to do with how python/pytest work and the imports. I will have to do some digging at some point.

Support Home Assistant "Supported Features"

Home Assistant will list all the supported features for the different entities. There's no point in allowing a light to change color if the light doesn't support changing color.

Dont allow the 0 second timer

Right now, with the "Text FST" settings, it will try to set a 0 second timer frequently (likely because it has a lot of options for text) if it doesn't hear the text clearly enough. Planning to just error out and call it a day. It might make the overall experience a little better.

It's a bit of a workaround, but not too bad imo.

Home Assistant Weather

There's a lot of fun options here for sentences here!

"What's the forecast"
"What's the weather going to be on "
"When is it going to <rain/snow>"
"How is the temperature outside"

and I'm sure plenty more. We will also need to figure out a response sentence structure for returning attributes.

Improve responsiveness?

Something is up. When I ask it to "turn off the kitchen light" it'll take a bit longer. I know once or twice it's gotten that intent confused with "check off the kitchen lime" (which then errors out).

Maybe disable some of the "check off" things from the shopping intent? or change the sentence structure?

Home Assistant Climate Controls

Support climate controls from Home Assistant.

This really relies on #15 to be in place, as there are a lot of different climate options.

Set light to a color temperature in kelvin

This will likely be setup like:

  • set kitchen to [daylight]

with daylight, bright white, natural white associated with the kelvin. Will probably set them up as a yaml key/value pair that is user customizable.

So now we change lights to a cool color and then also set them back to a cool white!

Unit tests around customizations

alright, we should probably have some sort of unit tests around this.

Originally posted by @JarvyJ in #6 (comment)

Write a bunch of unit tests to actually test all the different customizations and ensure they do what they claim to do.

Allow disabling home assistant entities more easily

Maybe have the "happy path" of disabling intents holistically by creating a /config/customizations/home_assistant.yaml or maybe in the home assistant settings in the config. But basically just having one spot for folks to disable entities. Otherwise there could be a lot of jumping around to different files to disable specific intents.

Maybe this wont matter after the UI is in place. It sort of relates back to #15

Support the max_time_days or get rid of the option

Currently the timer allows you to set a max_time_days but does nothing with it. It existed around the idea of Home Intent auto-restarting daily to pull new Home Assistant devices, but that is likely going to be a webhook at some point.

Regardless it should either be supported in the code or removed from the docs

Incorrect import errors if python can't import from a component or custom component

If a component or custom component tries to make an import and it fails, it'll always throw a

Example:

import non_installed_module

__main__.HomeIntentImportException: Unable to load custom component 'component_name from /config/custom_components. Ensure the filename and config value match up.

While the error message is true, it's also very misleading. It would be better if it returned a more familiar python error.

Trigger a series of intents on custom sentence?

The general idea is the user can add a sentence that triggers a series of intents from across Home Intent.

It would operate similar to sentence aliasing (https://homeintent.jarvy.io/getting-started/customization/#intent-aliasing-with-slot-entities), just across even more intent types. The files could live in /config/scripts/<script_name>.yaml and just have a series of intents and what to pass them.

It's a little bit of a weird idea, as you could also just setup a script in Home Assistant and then maybe we could enable script component and you can trigger it from there. I dunno, we'll think about it.

Auto-updates from Home Assistant

Have the ability to pull new components from Home Assistant without restarting the entire service. This gets a little finicky as it introduces weird situations of what to do when devices are temporarily out of action in HA.

This might come a bit later as Home Intent currently doesn't really have its own state system, and will likely need one to get something like this working reliably.

Upgrade to rhasspy 2.5.11

Currently the timers all break when upgrading to 2.5.11, the intent is recognized correctly, but the times are not parsed from the sentence. Going to have to figure that one out before upgrading.

Switch to single container?

This might just be easier to get people to wrap their heads around. It also makes it easier to handle #10 as there's only one "system" and moving files around would be easier. It could also let people provide their own custom sounds (if wanted).

I think I should be able to just build Home Intent from the rhasspy base and then start both processes. Might also explore some other options.

Have intents disabled by default

sometimes intents cause more system confusion and aren't heavily used. Turning your living room to aquamarine might be a cool party trick, but is likely not used heavily in day-to-day.

These could be easily disabled with customizations (#6), but perhaps they could also be enabled in the same way. Maybe set this up whenever the frontend gets built out.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.