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

Add a native QML UI interface #93

Open
AIIX opened this issue Oct 28, 2021 · 2 comments
Open

Add a native QML UI interface #93

AIIX opened this issue Oct 28, 2021 · 2 comments
Labels
enhancement New feature or request

Comments

@AIIX
Copy link

AIIX commented Oct 28, 2021

Add a native QML UI interface instead of webviews as being used in #84
A native QML UI provides more controls over the UI integration than a web interface, For example, a basic QML UI can be implemented for a group of devices and each individual device within a group itself (just to be clear the below is just an example of what it can look like from my pov as a community dev)

devices-ui-1
devices-ui-2

Some of the cons of using a web interface instead of a native interface:

  • Using a web interface means one would assume one is always required to remain connected to the internet and devices that can be controlled over LAN when no internet access is available will not be accessible
  • Website availability and blocking can cause the skill UI to be unusable in environments with restricted web access
  • Using a browser is more performance degrading as its using a higher number of physical resources of the hardware, The Qt Webengineview is an entire chromium stack running on the device
  • At 480x800 you would probably require zooming into a screen to just be able to toggle controls on a web interface
  • You likely are to lose the ability to control dials and toggles via voice interface when using webpages, will the dial on the webpage switch to 4% if I have the web page open and ask Mycroft to turn the brightness of my smart bulb down to 4 from 50 via voice"
@AIIX AIIX added the enhancement New feature or request label Oct 28, 2021
@AIIX AIIX mentioned this issue Oct 28, 2021
5 tasks
@NeonDaniel
Copy link
Member

A few comments in favor of the Web UI:

  • Lovelace dashboards are designed to scale to multiple display sizes already
  • User defined dashboards may be customized, including custom buttons that may not have an equivalent voice command
  • Dashboards update dynamically when device states change
  • Presuming configuration points at a local IP address (or some in-network routing), this also works when offline

I think both approaches are useful; I think showing a default QML when you match a voice intent makes sense since that intent should specify an item or group. For something like a home page or control panel (or an intent to 'show {x} dashboard'), I think it makes more sense to use the Lovelace UI.

@pfefferle
Copy link

I made a PR for loading the Lovelace UI, if you want to give it a try: #91

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

No branches or pull requests

3 participants