WTH is the UI/UX elements for adding/joining/pairing/commissioning new devices not more consistent for the native Z-Wave JS, Zigbee (ZHA), and Matter integrations?

Why do UI flows for adding new devices not look and feel more similar for the three largest mainstream IoT standards when they all have native integrations maintained by Home Assistant core developers?

  • Specifially, please try to achieve a unified UI design elements and somewhat similar look and feel to the flows/steps for device joining/pairing/commissioning to try to get a more consistent user-experience when adding new Z-Wave, Zigbee, and Matter (wireless) devices via the native Matter, Z-Wave JS, Zigbee (ZHA) integrations.

Those three are standardized IoT protocols that have built-in components in Home Assistant core and only require a radio USB dongle so moer or less should work the same from an end-user perspective.

Could you maybe an own in-house unified UX design standard, frontend elements, and UI flow/process steps for adding new devices to make the user-experince look and feel like they Z-Wave, Zigbee, and Matter share the same user-interface and user-experince developer, as I believe that should be possible to on the surface provide nearly the exact same user experience when dealing with adding new devices for those specific wireless IoT standards that otherwise more or less require practically the same steps to be joined/paired/commissioned.

Could not the same UI elements and code for flows for adding devices be reused between those three?

The general device management (day-two operations after a device has already been added) in those three specific integrations are also non-consistent if compared to device management in other apps/products, but I think that a feature request for getting the UI/UX look and feel for day-two device management would be a much larger endeavour than just getting the adding new devices to act the same and behave more similar.

I at least know that lack of consistently between the built-in Z-Wave JS, ZHA (Zigbee), and Matter integrations is a UI/UX annoyance for new users that come from other home automation ecosystems such as commercial competitors such as example SmartThings and Homey where they made sure that the user-experince (UX) of the whole user-interface looks and feels very unified and consistent, especially when performing the actions that are practically the same, such as adding new wireless IoT devices for standized protocols such as Zigbee, Z-Wave, and Matter.

Anyway, I understand that the user-interface flow for adding devices in Z-Wave JS, Zigbee (ZHA), and Matter has been coded by different developers under the hood but that does not have to mean that the user-experience for end-users following the user-interface steps to join/pair/commission a new device should be inconsistent when from and UI/UX point-of-view the process for adding new devices share so for those three specific IoT wireless protocol standards.

Suggest look at at the mobile app for SmartThings which have same simple steps for all those protocols:

  1. The end-user click “+” (“plus”) icon and there selects the “Add new device” to open that config flow.
  2. Next window let you select “Scan QR core” or “Search nearby devices”, where the first option opens a new window with camera access to let you scan the QR-core on the device or box if available, while the second option is enable join/pair/commission mode for both Zigbee and Z-Wave at the same time and it give you a pop-up telling you to put your Zigbee or Z-Wave device into join/pair mode so it can pick it up.

I would also be nice if the default enity names for Z-Wave, Zigbee, and Matter devices could be more unfied for Home Assistant.

PS: FYI, some newer Zigbee 3.0 devices support joining via QR-code scanning to input install codes via Home Assistant companion app camera but the UI and frontend for Home Assistant’s ZHA integration does not yet have a QR-code scanner feature such as the Z-Wave JS and Matter integrations UI/frontend alread have, please see this related feature request: