For my Community Remote project I’m considering a focus towards an access controlled Roon remote for guests, kids, party nights, …
The core of the idea is that users install Community Remote on their own phone / device and the system owner, using the Roon Remote, allows them access to the necessary features. In this setup there is no need to share Roon accounts to allow others to use your system.
What access can be controlled?
- Profiles and profile switching
- Zones, and their grouping
- Volume levels, using soft volume limits
- Queue actions (e.g. “append only” party mode)
- Browse categories
How does it work?
- User installs and runs Community Remote
- Admin enables extension (marked with user name) in Roon Remote
- Admin opens settings of enabled extension to setup access rights
- User controls Roon with the provided access rights
To summarize the setup, the Roon Remote acts as the admin tool and Community Remote as the restricted client.
Why does it work?
As opposed to the Roon Remote that has full control over your system and library, the Roon API (used by extensions) is limited in functionality. By using this limited access channel the user is simply not able to perform most of the harmful actions (edits, deletes) or this access can be blocked by Community Remote (exceeding soft volume limits, controlling certain zones). The fact that extensions can only be enabled via a Roon Remote, requiring a Roon account, ensures that you as system owner keeps full control.
Use Cases
- Kids remote: single zone, restricted volume
- Party / Jukebox remote: shared profile, “append only” queue, restricted zones
- Guest remote: single zone
Sources of inspiration
- Roon Security via Profile -- aka "Party Mode" / "Do No Harm" [On roadmap, low on list]
- Restricting access to one zone and volume control
- Roon really needs profile management at this point
Purpose of this thread is to share ideas and specific use-cases you see regarding access control.
Edit
Making good progress on implementing the handshake between remotes and the profile selection. I created a short video to demonstrate: