UI Zones
UI Zones determines which zones appear in each user interface. By assigning zones to UIs, you control what users can see and control on different panels and devices.
UI Zone rows are the primary zone source for manual UIs (UIs without site_space_id). For space-linked UIs, the zone list is derived from the linked Site Space — but ui_zone rows on a space-linked UI are still honored as overlays, layered on top of the inherited set. This is useful for adding zones that don't live in the space (e.g. a shared front-gate camera). See Space-Linked vs Manual UIs.
When you select a space-linked UI in the Zones Tab, the inherited site-space zones appear in the UI Zones list greyed out and disabled — they're shown for context but can't be removed here. Manage them by moving zones in or out of the linked Site Space. Only the explicit overlay rows you add on this page are editable.
Overview
The UI Zones page provides four methods for organizing zones:
- Zones Tab - Direct zone assignment to UIs
- Groups Tab - Create zone groups for easier management
- UI Groups Tab - Assign zone groups to UIs
- Grid Tab - Spreadsheet editing of the assignments the Zones tab creates
This hierarchical system allows flexible zone organization for complex installations.
Four Tabs Explained
Zones Tab
Direct management of individual zone assignments:
- Assign specific zones to specific UIs
- Fine-grained control
- Best for: Simple installations or final adjustments
Groups Tab
Create logical groupings of zones:
- Group related zones together
- Organize by room, function, or area
- Reusable across multiple UIs
- Best for: Organizing zones before assignment
UI Groups Tab
Bulk assignment of zone groups to UIs:
- Add entire groups to UIs at once
- Efficient for complex installations
- Manage group order within UIs
- Best for: Large installations with many zones
Grid Tab
Spreadsheet editing of the assignments themselves:
- Regroup, reorder and toggle many assignments at once
- Column filters, multi-cell edit, undo, export
- Save Sort rewrites the display order from whatever order the grid is sorted in
- Best for: Bulk cleanup, or reordering by something other than one row at a time
Zones Tab
Direct zone to UI assignment.
Components
Subsystem Selector
- Filter zones by subsystem (lighting, av, shades, etc.)
- Narrows zone list for easier selection
UI Selector
- Choose target UI for zone assignment
- Shows current zone assignments
Zone Assignment Interface
- Select zones to add/remove from UI
- Configure zone-specific UI settings
- Set sort order for zones
Zones already on the selected UI are marked with a ✓ in the left-hand list, so you can see what is left to add without cross-referencing the two lists. Adding one again is a no-op rather than an error.
Workflow
- Select a Subsystem (e.g., Lighting)
- Select a UI (e.g., Kitchen Panel)
- Select zones from available zones list
- Click Add to UI
- Zones now appear in the selected UI
- Users can control these zones when using this UI
Working group
The Working group picker below the zone lists does two things at once, and both are deliberate:
- it filters the UI Zones list to that group, and
- it is where Add puts new zones — the Add button names the group it will use.
Leave it empty to see every zone on the UI and add them ungrouped. Set it when you are building out one card, so everything you add lands in the right place.
Ordering zones
Zone order in the list is the order they appear on the UI. Drag a row to move it; the whole new order is saved in one write when you drop. The ▲ ▼ buttons move a single selected zone one place and are the touch and keyboard path.
Ctrl-click (Cmd-click on a Mac) toggles individual rows, and Shift-click selects a range — useful before Remove.
On a space-linked UI, inherited zones are shown greyed out and cannot be dragged; reordering moves the explicit overlay rows among themselves and leaves the inherited zones where the site space put them.
Removing a zone from every UI
Remove from all UIs (the red button between the lists) deletes every assignment the selected zones have, on every UI at once — not just the UI picked above. Select the zones in either list: the left list is the subsystem's whole zone set, so a zone can be cleared without first finding a UI it is on. A confirmation names each zone and the UIs it will leave before anything is deleted.
Only explicit assignments go. A zone a space-linked UI inherits from its site space has no assignment row, so it stays on that UI until it is moved out of the space. The Auto add and remove UI controls option applies to the selected UI only, as it does for Remove.
Groups Tab
Create and manage zone groups for organizational purposes.
Zone Groups
Zone groups are named collections of zones within a subsystem:
Example Zone Groups:
Subsystem: Lighting
- Group: First Floor
- Entry Hall
- Living Room
- Dining Room
- Kitchen
- Group: Second Floor
- Master Bedroom
- Guest Bedroom 1
- Guest Bedroom 2
Subsystem: Shades
- Group: South Facing
- Living Room Shades
- Dining Room Shades
- Group: North Facing
- Kitchen Shades
- Bedroom Shades
Creating a Zone Group
- Click Add Group (or similar action)
- Configure:
- Name - Group name (e.g., "First Floor Lights")
- Subsystem - Parent subsystem
- Zones - Select zones to include
- Sort Index - Group display order
- Save the group
Editing Zone Groups
- Select a zone group
- Add or remove zones
- Rename if needed
- Save changes
Impact: Changes to zone groups automatically update all UIs using that group.
UI Groups Tab
Assign zone groups to UIs in bulk.
Interface
Subsystem Selector
- Choose subsystem to work with
- Filters zone groups
UI Selector
- Choose target UI
- Shows currently assigned groups
Zone Groups Multi-Selector
- Left side: Available zone groups for subsystem
- Right side: Groups assigned to this UI
- Select groups and they appear in both UI and control
Workflow
- Select Subsystem (e.g., Lighting)
- Select UI (e.g., Kitchen Panel)
- Zone Groups list populates with lighting groups
- Check the groups to assign (e.g., "First Floor Lights", "Kitchen Island")
- Groups automatically added to UI when checked
- Uncheck to remove groups from UI
Reordering Groups
Use the ▲ ▼ buttons to change group order:
- Select a group from the list
- Click ▲ to move up (earlier in navigation)
- Click ▼ to move down (later in navigation)
- Order affects display in UI control pages
Grid Tab
The Zones tab moves one assignment at a time. The Grid tab opens the same rows in a data grid, for the passes where that is the wrong shape — moving thirty zones into a new group, reordering a panel alphabetically, or auditing which assignments were ever given a sort order.
Scoping
Pick a Subsystem and a UI. Both are required, and the grid does not load until it has them. That pair is the scope the system orders a UI's zones in, so it is also the scope every reorder here applies to. Clearing either selector unloads the grid rather than leaving the previous UI's rows on screen.
Selecting the All UI (id 0) shows the assignments shared by every UI, which are ordered as their own slice.
Columns
| Column | Editable | Notes |
|---|---|---|
| ID | no | The ui_zone row id |
| Zone | no | The assigned zone. Add and remove zones on the Zones tab |
| Zone Label | no | The zone's human-readable label, for scanning the list |
| Zone Group | yes | Which group card the zone appears under. The picker lists only groups in the selected subsystem |
| Sort Index | yes | Display order within the UI and subsystem |
| Default | yes | The zone a control page pre-selects when it opens on this UI |
| Enabled | yes | Unchecking hides the assignment without deleting it |
Double-click a cell to edit it. Drag down a column to select a run of cells and set them all at once — the fastest way to move a block of zones into a new group. Undo in the toolbar reverses the last edit or bulk edit.
Save Sort
Save Sort writes Sort Index 1…N over exactly the rows shown, in the order shown. Sort the grid by any column first — click Zone Label to order a panel alphabetically, then save, and the UI follows.
The rows shown is the operative phrase. A column filter narrows what gets renumbered, so filtering to one zone group and saving renumbers only that group's rows. That is usually what you want when tidying a single card, and is worth knowing before you filter for some other reason and then save.
Space-linked UIs
A UI linked to a Site Space derives most of its zones from that space, and those zones have no
ui_zone row at all. The grid shows only the explicit overlay rows, so a Save Sort here
reorders the overlays among themselves and leaves the inherited zones where the space put them.
The page says so above the grid when a space-linked UI is selected.
Arriving from a zone
The View button beside a UI Zone on a zone's usage list (Zones) opens this page straight onto the Grid tab, scoped to the UI and subsystem that row belongs to. Filter the ID column to isolate the row itself.
?subsystem_id= and ?ui_id= are honoured too, on both the Zones and Grid tabs.
Common Workflows
Simple Installation - Direct Assignment
For homes with few zones:
- Use Zones Tab
- Select subsystem
- Select UI
- Add individual zones directly
- No need for groups
Complex Installation - Group-Based
For large installations:
-
Use Groups Tab to organize:
Create group: "Main Floor Lighting"Add zones: Entry, Living, Dining, KitchenCreate group: "Upstairs Lighting"Add zones: Master, Guest 1, Guest 2, Hallway -
Use UI Groups Tab to assign:
Kitchen Panel:- Main Floor LightingMaster Bedroom Panel:- Upstairs Lighting
Multi-Location Installation
For multi-building facilities:
-
Create zone groups per building:
Group: Building A LightingGroup: Building B Lighting -
Create UIs per location:
UI: Building A PanelUI: Building B Panel -
Assign groups to appropriate UIs:
Building A Panel → Building A LightingBuilding B Panel → Building B Lighting
Guest Access
Create limited guest UI:
- Create UI:
guest_panel - Create zone group: "Guest Accessible"
- Add only guest-appropriate zones:
- Guest bedroom lights
- Guest bathroom lights
- Common area lights
- Guest room temperature
- Assign "Guest Accessible" group to guest_panel
- Guest UI shows only permitted zones
Zone Group Benefits
Organizational Benefits
- Clarity: Zones grouped by location or function
- Reusability: Same group can be used in multiple UIs
- Maintenance: Update group once, affects all UIs
- Consistency: Ensures consistent zone sets across UIs
Practical Example
Scenario: Adding a new zone
Without Groups:
- Add zone to kitchen_panel
- Add zone to mobile_app
- Add zone to main_panel
- Add zone to guest_panel (maybe)
- Repeat for each UI
With Groups:
- Add zone to database
- Add zone to appropriate zone group
- All UIs using that group automatically include the zone
Zone Assignment vs. Zone Group Assignment
Direct Zone Assignment (Zones Tab)
Pros:
- Simple and direct
- Full control per zone
- No intermediate groups needed
Cons:
- Manual assignment to each UI
- Difficult to maintain with many UIs
- Repetitive for common zone sets
Best for:
- Simple installations (< 20 zones, < 3 UIs)
- Special cases (unique zones in specific UIs)
Zone Group Assignment (Groups + UI Groups Tabs)
Pros:
- Bulk assignment
- Reusable groups
- Easy maintenance
- Consistent across UIs
Cons:
- More setup initially
- Additional abstraction layer
- Overkill for simple installations
Best for:
- Complex installations (> 20 zones, > 3 UIs)
- Multi-location systems
- Frequently changing zone assignments
Zone Group Hierarchy
Zone groups respect subsystem boundaries:
Subsystem: Lighting
└─ UI Zone Group: Main Floor
└─ Zones: Entry, Living, Dining, Kitchen
Subsystem: Shades
└─ UI Zone Group: Main Floor
└─ Zones: Living Shades, Dining Shades
Each subsystem has its own groups.
When assigning to UIs, you assign groups per subsystem.
Security Considerations
Zone Access Control
Zones assigned to a UI can be controlled by any user who can access that UI.
Combine with Roles:
- Assign zones to UI
- Use roles to restrict which users can access the UI
- Result: Only authorized users can control those zones
The assignment is enforced server-side, not just visually. For a non-elevated user whose every allowed UI carries a zone scope, a command sent over the socket or the REST API is refused when its target is on none of their UIs — and voice commands are confined further, to the single panel they were spoken at. A UI with no zone scope at all (no rows here and no linked Site Space) leaves its users unrestricted, so sites that never scoped their UIs behave as before. See UI scope for commands.
Sensitive Zones
For security-critical zones (locks, gates, alarms):
- Create dedicated UI (e.g.,
security_panel) - Assign sensitive zones only to this UI
- Create role that allows access only to security_panel
- Assign role only to authorized users
- Optional: Require PIN on security UI control
Advanced Topics
Dynamic Zone Display
Zones in UIs can be shown/hidden based on:
- Time of day (via themes)
- User role
- System mode
- Zone availability
This requires custom control components or theme JavaScript.
Zone Filtering
Control components can filter displayed zones:
- By subsystem
- By group
- By attribute
- By device status
Check control component documentation for filtering options.
Programmatic Zone Assignment
Assign zones via API:
// Assign zone to UI
await GemApp.getInstance().insertModel('ui_zone', {
ui_id: 5,
zone_id: 123,
subsystem_id: 2,
enabled: true
});
// Remove zone from UI
await GemApp.getInstance().deleteModel('ui_zone', {
ui_id: 5,
zone_id: 123
});
Troubleshooting
Zones Not Appearing in UI
Check:
- Zone Assignment: Zone is assigned to UI (via Zones or Groups tab)
- Zone Enabled: Zone itself is enabled (System > Zones)
- UI Enabled: UI is enabled
- Subsystem Enabled: Parent subsystem is enabled
- Device Online: Device controlling zone is online
- Browser Cache: Clear browser cache and reload
Zone Group Not Showing
Check:
- Group Created: Zone group exists in Groups tab
- Zones in Group: Group has zones assigned
- Subsystem Match: Group subsystem matches selected subsystem
- UI Assignment: Group is assigned to UI in UI Groups tab
Cannot Add Zones to Group
Check:
- Subsystem Match: Zones must be in same subsystem as group
- Zone Already Added: Zone may already be in the group
- Zone Enabled: Zone must be enabled
Changes Not Reflecting in UI
Solutions:
- Reload the UI (browser refresh)
- Use Reload All button in UIs page
- Force logout and log back in
- Clear browser cache
Related Documentation
- UIs - Creating and managing user interfaces
- Zones - Configuring zones
- Subsystems - Understanding subsystems
- UI Controls - Navigation controls
- Roles - Access control