Skip to content

[Feature]: Pairing wizard for adding new devices #20

@tashda

Description

@tashda

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:

  1. Open the network — the existing Permit Join sheet, integrated as step 1 of the wizard. Countdown timer visible.
  2. 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.
  3. 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).
  4. 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).
  5. 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.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions