Have you tried this? I love the lateral thinking, but maybe the kids will just have to lift their ass to turn on the lights/media center/etc. until there’s way to do this natively. Or until I get enough sh*t about it that I have to. In any case, thanks for sharing.
A relativley easy idea is to take the Home-Assistant default home screen, remove from the html any side-bars and tabs. Leave only the components that you want to share. Host the page at the same web-server at location :8123/share.
Kids, parents, grandparents, housekeeping. They all have portable devices which should have different type of access. Different views.
This was something which was very very useful when I was running Domoticz. And something which is missed now. Don’t want to build a portal which authenticates and based on credentials shows different views while connecting to hass with the same api key.
Logging, access, access restrictions… from what I understand, kiosk mode is simply /kiosk… with the user having access to the root domain, what is stopping them from getting into the root and even changing config etc?
Agree. It is way cool to do lots of components every release, but it’s core functionality which is lagging a bit in development unfortunately. Multi-user is such a core functionality.
Kiosk is nice but not sufficient at all.
The UI is just a tool to call the API, so any changes need to go into the backend.
Adding support for a read-only user that can’t make any changes (but can still see all state) is probably not too hard, but adding true ACL is lots of work.
All components would have to be aware of it
I am unfortunately not a developer, but exactly this is one of the first things to think about, before starting to write code.
And also unfortunately, this child has fallen in the well now :-).
So to solve this, it has to start with tiny steps, not the implementation at all.
What about creating the data model for user accounts and then start with hiding the sidebar in the main ui?
Next step could be, to remaster the API, using user account credentials.
Like I said, unfortunately no developer here, so I am not able to start planing or writing the first line of code.
Right now, there are few options to achieve the same feature of multiple users/accounts can do. Other than the via Telegram bot, you can also use these if you prefer tablet on the wall…
Floorplan - Instead of using your house floor plan, you can use this to create any kind of interface. Perhaps one interface for each users.
Third party Android app such as MQTT Dash. Since it is using MQTT, you can use it to create interface to control lights/switches/etc in HA.
Zanzito - Instead of dashboard on the wall, this is perfect for phone. Install this on every family members’ phone and they can control anything on HA (you program it) via voice command. Examples at My Jarvis using Zanzito (Skills Collection).
I have a different use case in mind for multiple users/passwords than I’ve seen mentioned so far. I intend to add ifttt and haaska to my home setup, both of which involve exposing your HA instance to the web. As it stands now, you have to use the same API password for those services, and that is the same API password you use to access your HA (unless you trust your local network).
It’d be nice to have different users for accessing the web front end, so requests can be logged as coming from specific users. It could also be powerful to restrict API access to specific end-points / entities.
It might be possible to implement something like this with using apache or nginx as a reverse proxy.
I submitted a pull request that allows this (for pretty much the same reason). There were some updates requested to make it more flexible but I haven’t had a chance to look at them yet. I hope to get back to it over the next week or two.
My use case: I would like to give wife and kids the HA iOS app on their phones (for things like location triggering and push notifications), but once I do that, they have full access to the entire HA system (but really, I only want to give them access to lights and not the rest of the stuff like power and cooling to my server room / lab, custom scripts / automations that do some pretty serious things with other systems and servers I manage, etc.)