UI Site Modes
UI Site Modes decides which site modes a panel offers in its sidebar. It is how one panel shows Home / Away / Sleep while the theater panel shows only Movie and Off.
The rule that matters
A panel already offers the modes its space contributes, with nothing assigned here. A mode carries its own scope — site_space_id on the Site Modes page — and that is what decides where it appears:
- a mode scoped to a space is offered by panels standing in that space, or above it with child spaces included
- a mode with no space is a site-wide state, offered by site-level panels: one with no space link, or one linked to the site's root space (which is what the auto-created main panel is)
This page is the other half: the exceptions. Assign a mode to offer it on a panel its space would not reach — the theater's Movie mode on the hall panel — or to rename or reorder one that already appears.
It is exactly the shape zones use. zone.site_space_id puts a zone on the panels for its room; a UI Zone row puts one somewhere else. Modes work the same way, for the same reason: a room's panel should show the room's things without anyone listing them twice.
Two ways in
This page is the panel's side of the table: pick a UI, curate its list, set the order it appears in. The Site Modes editor has the mode's side — a Panels section listing every UI with a checkbox, for answering "which panels offer this mode" while you are already editing it.
They write the same ui_site_mode rows, so neither is authoritative and a change made in one shows up in the other. Ordering within a panel is only here, because order is a property of the panel's list rather than of any one mode.
Interface Layout
The page uses a three-column layout, the same shape as UI Macros:
Top — the UI selector. Everything below applies to the selected panel.
Left Panel — what to add:
- Site mode selector (enabled modes only)
- Name — an optional label for this panel only
Center — action buttons:
- Add ▶ — offer this mode on the selected UI
- ◀ Remove — stop offering it
Right Panel — the modes assigned to this UI, in the order the sidebar shows them, with ▲ / ▼ to reorder. The hint below the list names the modes this panel also offers through its space, which need no row of their own — so an empty list never reads as "offers nothing". Each mode named in the hint is a link that opens it, and highlighting a single assigned mode shows an open selected mode link above the list.
Per-panel names
The Name field renames a mode on that panel only — the underlying mode is untouched, and every other panel keeps its own label. The assigned list shows Name [Mode] when an override is set, so it is always clear which mode a renamed row actually runs.
Use it where a mode's site-wide name is wrong for one room: unoccupied might read as Away on the entry panel and Done Cleaning on the service panel.
It is also a permission boundary — for ordinary roles
For a role that is not elevated, this page decides more than what shows up. A mode that no UI in the role's allow list offers cannot be set by that role at all, from any panel or any client. See Who may change a mode.
Three things follow:
- It adds, and the mode's own scope is the baseline. A mode marked Requires an elevated role stays out of reach for an ordinary role no matter which panels offer it. Assignment only matters once that flag is off.
- The check is the role's whole union of UIs, not the panel in front of you. Someone who can reach both the hall panel and the theater panel may set either one's modes from either one. This page shapes what each panel shows; permission is the sum.
- Elevated roles ignore it entirely — they may set any mode from anywhere, and curating a panel for them is purely cosmetic.
Leaving this page alone is not a gap to be filled: the modes themselves say where they belong, so a role reaches the modes of the spaces its panels stand in, and the site's own modes through a site-level panel. A mode scoped to a space no reachable panel covers is left to elevated roles, macros and schedules.
What else affects the list
Disabling a mode on the Site Modes page removes it from every panel regardless of what is assigned here, and a row pointing at a disabled or deleted mode is simply skipped. Moving a mode to a different space re-aims it without touching a single row here. A row switched off stops adding its mode — it does not subtract one the panel's space already offers, the same way a disabled UI Zone row does not remove a zone from its own room.
A row pointing at a disabled or deleted mode grants nothing either: it is dropped from the panel's list and from the permission union, so a stale row cannot keep a mode reachable after it has been withdrawn. The sidebar list is also filtered to what the person signed in may actually set, so the same panel can show different modes to different people.
Related Documentation
- Site Modes — what a mode is, what its transitions run, the sidebar switcher, and the same assignments from the mode's side
- UIs — creating and configuring the panels themselves
- UI Macros — the same per-panel assignment pattern, for macros