Javier wrote:I have to admit that the UI is my biggest problem and I appreciate your input...
I don't know how much you can change given the framework it's built in, but it would be so much nicer to use if the menu structure looked more like the native Android Setting, which has everything in one long scrollable list, with bold subheadings for major topics, then multiple (option name, current value) pairs for that topic, which you can tap to change a value.
Obviously the voice input pop-up is something very special and you want that to be readily accessible, but maybe there are other ways to get there, maybe a home screen widget? That way, the app can present a more conventional front page a button to trigger voice input (so you don't have to do the magic "settings" business) next to some suggestions on what to say. What would be really great would be for it to dissect what you said (either live or from a history list) so you can see how it interpreted it, and make corrections for the future.
I think (and of course I have bias) the (code) voice commands works very well once setup....
I completely agree, it's amazingly good! I just don't like the "once setup" part...
As for pulling names automatically, that can be done very easily however my initial testers (including myself) had many devices and very few of them had (only) "location" and "device" in the name of the device/program/scene/group.
Not sure I understand what you mean - could you give examples where the existing device names would be unsuitable?
Admittedly, I'm only familiar with domoticz, but I'd have thought that any other system is going to need you to give unique, meaningful names to your devices. ...or are there some which are intrinsically structured as location-device?
But if that is the case, then domoticz does that too, with roomplans. I'd be happy to help get that working!
And on the subject of deeper integration, perhaps the app shouldn't have to figure everything out all by itself. If it would help to have voice-specific fields on a device/group/scene/roomplan (e.g. "spoken name"), then we can add that to domoticz.
I have observed my wife saying multiple "locations" for the same device, such as "counter" and "cabinet" lights, and "front yard" and "lawn" lights. So this single name for a device does not take into account how normal (non - automation) people say things.
True, but that's in addition to what I would think of as the "true name" for something. Isn't that what the "word replacement list" function is for?
Also the need for indoor location tracking is a priority, as my wife mentions to me "I'm in the kitchen, why do I have to say "turn on the tv in the kitchen""....
Getting a bit off-topic - I would really love to have this work - but I don't have a reliable way to do indoor location tracking. What are you using for that?
Then there is the AutoVoice/Google Now integration, and the best way to improve latency and reduce errors in the program is to reduce the words that are needed tor trigger the program, this also improves false positives and reduces the number of word corrections needed, So Google Now is still useful as your personal assistant.
Again, perhaps getting a bit deep in to the topic here, but to help me understand the constraints - how much flexibility do you have in defining what is a valid utterance? Do you have to give it complete phrases (I hope not!)? If you can give it individual words, can you tag them as parts of speech in a grammar?
All that said I would like to improve the UI, and user experience, but please keep in mind this is a free app an I am developing in my spare time.
Of course - I am also just scratching my own itch - but in the open source spirit, I am more than happy to make contributions (whether verbal or actual code) to help things progress.
It would be nice if every one named their devices/programs/scenes like you, but that is something the app can not control, and as obvious from this post, it is very difficult to force users to use a naming convention. I think it would be even harder to force users to rename there devices in their Home Automation Controller.
I completely agree, and I would not pretend that even in my system everything is named ideally. But would it not be a fair assumption that the name of a device in anybody's system is a good first approximation to what they would say when they tried to refer to it? Or to put it another way, surely it is reasonable to expect that if I say "turn on [x]" and I have exactly one device named "x" (of a type that can be turned on), that it should work without any further set-up beyond importing the devices. And this would just provide base functionality as a starting point - you could still do further set-up to reduce ambiguity (mark ineligible devices) or enable more convenient ways to accomplish the same thing (with locations etc.).
P.S. Most of the code is available as a tasker XML on GitHub, you are free to modify it to your needs, However there are things missing because of license agreements, and it must be exported as apk because of file size.
I'm not familiar with tasker but will see if I can make sense of it - it's certainly a huge file!