I would like to spend some time in the near future giving the home site, where you configure your Mycroft experience, some TLC. Before I spend much time on this, I thought it a good idea to ask the community their opinion on the site. Incorporating these opinions/suggestions into the decision making process will benefit all of us.
Below is a list of suggestions I have already heard from some users. Please let me know if you agree/disagree with these suggested enhancements. If you have a suggestion not included in the below list, please let us know, providing as much detail as possible.
Possible Enhancements
Improved UI design and navigation
Ability to configure/install skills at the device level
Enforcement of unique device names per user
Improved integration with the mycroft.ai site
Improved authentication using OAUTH and two-factor authentication
Make the source code available to the community
Thank you all in advance for any feedback you provide to improve the home.mycroft.ai experience.
Seamless websocket type of webmanagement similar as unifi.ubnt.com One cloud type of acces (home.mycroft.ai) which connects over WS to similar local running webgui per device. (this way, it is secure and no fiddling around with port-forwards etc)
Ability to configure/install skills at the device level. (but see point above about the way of implementation)
I consider the rest of points nice-to-haveās while above in my oppinion are must-haveās.
Slide in some API backend stuff, so that the community can create APPās for it and you are ābetterā then GA/Alexa.
Thanks for your input j1nx. I am glad you mentioned websockets because that is a direction we are looking to go. The way Mycroft core polls for skill changes is not scalable. Will probably use a Python asyncio implementation.
For my own clarification, when you mention a ālocal running webgui per deviceā, do you mean each device has its own implementation of home.mycroft.ai (or a subset of it) that can be viewed by connecting to it?
There will be some enhancements to the API as part of this effort. Would you please provide a more color on the API enhancements you would like to see?
āFor my own clarification, when you mention a ālocal running webgui per deviceā, do you mean each device has its own implementation of home.mycroft.ai (or a subset of it) that can be viewed by connecting to it?ā
Yes indeed, a bit similar as your router. The device is there, doing itās thing. And in the case you want to adjust some settings, you open your browser and connect it to the routerās IP address.
Home.mycroft.ai should have all the default settings that will be globally pushed to all devices if not changed on a per device level. So if you go to a ādeviceā on home.mycroft.ai you should see the settings for that device, but also only see the skill settings which are installed onto that device.
Now that whole āper deviceā settings page, basically runs locally on the device itself. However getās synced with home.mycroft.ai.
That last part is hard to explain as I canāt figure out the name of such system (getting older I think). That is why I mentioned āUbiquitiā and their controller software. You run a controller (basically a webserver) locally for your devices. From there you can āpairā the device with the mothership (unifi.ubnt.com). If you have multiple local controllers paired with the mothership, from everywhere in the world you can access them from unifi.ubnt.com
You login, you select the controller you want and it opens it through some sort of websocket. No port forwarding needed on the router at the client side whatsoever.
(Do I make any sense?)
No comments from me on the API side. Really havenāt looked at it. Just wanted to mention: If you create a powerfull API that can handle everything the mothership can, then the community can come up with the greatest ideas and things using it.
+1 to per device settings. My hue skill (https://github.com/ChristopherRogers1991/mycroft-hue) has a default group setting, that allows the user to select a particular group of lights they want to control, any time they donāt specify a group by name. The idea was that they could have the Mycroft unit in their bedroom control their bedroom lights by default, the unit in their kitchen control the kitchen lights, etc. All without having to worry about unintentionally adjusting lights throughout their home. Right now the only way to effectively leverage this is to ssh to each device and edit the local config, which is less than ideal. I would imagine other home automation type skills may run into the same issue.
Also would be nice to have the source available to the community. I recall a video in which Joshua stated that the only way to truly be secure was to be open, yet the portion of the product that asks me to enter credentials for other services (the part that Iād like to be the most secure) is closed-source.
I think that the Mycroft community can help with something I consider a ālow hanging fruitā.
What about a skill to āread a bookā?
Better !, two skills, one for ādownloadā a title, and the second for read aloud.
For example,
Hey Mycroft, download āKing Arthur and the Knights of the Round Table by Sir Thomas Maloryā
or easier:
Hey Mycroft, download 36462
and the second skill, once downloaded:
Hey Mycroft, read 36462 / or āKing Arthur and the Knights of the Round Tableā
Itās in my wish list.
Another could be consult a catalog (recorded in a sqlite database, for example).
I did something like that with Google speech to text (stt) in a Basic! script in Android.
I agree with 2-factor auth, itās a must nowadays (in my opinion).
The UI isnāt that bad, Iāve seen worse. I like the fact itās quick, but navigation could be better. But you are still loading stuff via http and not https - chrome gives me warnings everytime I visit your siteā¦
Also having a bit more flexibility with the skill settings (I think it has been mentioned before - I kind of skim read the other comments), would make it easier for inexperienced users.
The API is a great idea too.
Other than that, I guess just having way more control over Mycroft via the website would be good. It should be so anything that can be configured locally should be able to be configured via the website. Simplicityā¦
Thanks for the reply, Christopher. Looks like per-device settings is a popular request. It will certainly be on the roadmap.
I can appreciate the desire for the back-end to be open source, and the reasonings behind it. It will certainly happen, just not as soon as many in the community would like. At the very least, it will stay closed until the pending overhaul is complete. At that point, we can revisit the idea.
Thanks for the feedback, Marcelo. Due to the current state of our text-to-speech technology, I am afraid having the device read a book to a user would be a suboptimal experience. That said, an audio book skill, leveraging a service such as Audible, is more feasible. It would work like the news skill in that it would play existing audio, rather than reading text.
Thanks for the post, MrSleeps. I hadnāt considered the http vs https issue. Thanks for bringing it to my attention. I agree with your statement that configuration via website should mirror the device functionality. That will certainly be a focus as we move forward.
Another suggestion - itād be nice to disable skills, on a global and per device basis. For example, if a default skill and a third party skill conflict, it would be nice to have a simple way to disable the built in skill. Additionally, if Mycroft is eventually meant to run everywhere, I may not want the Mycroft in my car to have the same set of skills as the one in my kitchen.