HE, I'd buy these to reduce dependency on outside services.
Yeah, I've used these before. You have to train them for the commands you want them to recognize and you have to train every single command you want. EVERY SINGLE ONE. For example, if you wanted your kitchen lights on at 50% and 75%, that would be 2 separate commands to train. Also, you couldn't vary the way you said it. If you trained "Dim kitchen lights to 50%" it wouldn't understand that that was the same as "Brighten kitchen lights to 50%" because it doesn't process your speech, only match to a known pattern. You would also have to have every person in your house train it for their voice. And guests would never be able to use it.
And it doesn't store all that many commands. Not a practical solution for voice command for a home automation system.
I've purposely kept our device calls limited & simplistic. I'd estimate that oft-used commands number less than 20. Privacy issues aside, I'd like to have in-house voice control just to reduce dependency on as many 3rd parties as possible.
But that means that every person in the house would have to train the machine those 20 commands. And then, repeat those commands verbatim every time they wanted to use them. You could not vary the language used at all. So, you could not, for example, swap "Turn on the kitchen light" with "Turn the kitchen light on". Those would not be recognized as the same command. Sorry, but that's too strict for me.
Heh, with my southern drawl, I'm having to do that now. Seriously.
too strict
In one way or another, you pay for every convenience.
I'd pay for ready-to-go HE accessory modules and integration app for this functionality. Price point: $80, 2 units. $40, 4 units. Also, think of the HA tech bragging rights we'd get being local even with VC.
But it's not practical. People can't even deal with having to write rules. Do you think they're going to put up with having to speak the exact same command every single time? And that after training it for every command you want. Don't forget, after training it, you have to sync it to the command you want that voice command to perform. WAAAYY too much work. And just not practical.
You can try mycroft and the other one that was mentioned here in the Foruns. They are more robust and run on pi.
They require the internet to work though, right? Or is everything processed locally?
Local as far I'm aware.
I think there is a component online but it is just to update the sound libraries.
Also have this as an alternative
Snips works slightly different as far I understand it but haven't look into it
Converting speech to text: How to create a simple dictation app
https://www.androidauthority.com/converting-speech-to-text-voice-dictation-app-976732/
Uhm....that still requires an internet connection to get the speech to text processed. So, it is neither local or free of another Service. It requires both. Just like Google Assistant does. So, why bother re-inventing the wheel?
This statement threw me:
Note that Speech-to-Text doesn’t require an active internet connection, so it’ll work correctly even when the user is offline.
The text to speech? No, that will work. But in order for that to control anything you would have to identically match the text output. It's not as easy as everyone thinks it is. If it was, everybody would do it.
What is your location set to and what time does the Hub think it is?
You can also check what time the hub thinks sunset is on the location page.