What problem does this solve?
Today, adding a device means tapping permit-join, putting the device into pairing mode, then watching the device list / Activity log to see if it shows up. There's no guided flow — the user is bouncing between physical button presses and the app, hoping the device appears. The Permit Join sheet is well-designed for opening the network but doesn't continue the journey through "a new device joined; here's what to do next."
What would you like Shellbee to do?
A pairing wizard that takes the user from "open the network" through "device discovered → identify → name → done" in one continuous flow.
Steps:
- Open the network — the existing Permit Join sheet, integrated as step 1 of the wizard. Countdown timer visible.
- Looking for new devices… — animated state showing "0 new devices found" → "1 new device found:
<model>" as bridge/event device_joined events arrive. Live updating list of newly-joined devices.
- Per new device, run an identify-then-name flow:
- Show the device card with its model + IEEE address.
- Identify button: sends
bridge/request/device/identify (the Zigbee identify cluster command) to make the device blink/beep, so the user can confirm this is the device I just paired, not a coincidental neighbor. (Depends on the Identify Mode feature being filed separately if not already.)
- Name field: pre-filled with a sensible default (
<room> <model> or similar), editable. On commit, sends bridge/request/device/rename with the chosen name.
- Optional: assign to room / group if Shellbee has that concept (skip if not).
- Interview status — show interview progress (
device_interview started → successful/failed from bridge/event). If failed, surface the canonical retry advice and a Retry button (re-runs interview via bridge/request/device/configure).
- Done — summary card: "Added 2 devices. Tap to open the first one." Or "Add another" to repeat.
Edge cases:
- If the network closes (timer expires) before the user finishes naming, the already-joined devices are still pairable — the wizard just can't accept new ones. Don't lose work.
- If multiple devices join in quick succession, queue them — present them one at a time, not in parallel.
- If a device fails to interview, leave it in the list with a "Needs reconfigure" badge and the Retry action.
Reusable beyond first launch:
- Wizard accessible from a
+ button on the Devices screen.
- Optionally also part of the first-launch onboarding (separate issue).
Does the Z2M web frontend already do this?
Partially — the frontend has a permit-join button and a device list that updates as devices join, but it's not a guided flow. Mobile is the right place for the wizard pattern.
Alternatives considered
- Just rely on Activity log + Devices list — the current state. Works for advanced users, opaque for newcomers.
- Auto-name devices without prompting — bad: most users want to name things by room (e.g. "Kitchen Sink Light") and the Z2M model name (
TS0001) is useless as a primary identifier.
Related
- Identify Mode feature (separate issue) — the wizard's Identify button calls into the same code path.
What problem does this solve?
Today, adding a device means tapping permit-join, putting the device into pairing mode, then watching the device list / Activity log to see if it shows up. There's no guided flow — the user is bouncing between physical button presses and the app, hoping the device appears. The Permit Join sheet is well-designed for opening the network but doesn't continue the journey through "a new device joined; here's what to do next."
What would you like Shellbee to do?
A pairing wizard that takes the user from "open the network" through "device discovered → identify → name → done" in one continuous flow.
Steps:
<model>" asbridge/eventdevice_joinedevents arrive. Live updating list of newly-joined devices.bridge/request/device/identify(the Zigbeeidentifycluster command) to make the device blink/beep, so the user can confirm this is the device I just paired, not a coincidental neighbor. (Depends on the Identify Mode feature being filed separately if not already.)<room> <model>or similar), editable. On commit, sendsbridge/request/device/renamewith the chosen name.device_interview started → successful/failedfrombridge/event). If failed, surface the canonical retry advice and a Retry button (re-runs interview viabridge/request/device/configure).Edge cases:
Reusable beyond first launch:
+button on the Devices screen.Does the Z2M web frontend already do this?
Partially — the frontend has a permit-join button and a device list that updates as devices join, but it's not a guided flow. Mobile is the right place for the wizard pattern.
Alternatives considered
TS0001) is useless as a primary identifier.Related