Zigbee device provisioning by scanning QR Code = QR camera scanner in ZHA's UI config and companion apps to include new Zigbee 3.0 devices to Home Assistant's ZHA integration?

Btw, Home Assistant founders explicitly mention they will prioritize focus on features like these this year:

https://www.home-assistant.io/blog/2022/01/19/streamlining-experiences/

Recommend check out this video at around 11 min 50 sec in where talk about that focus point is about making it easier to get started with integrations and features performing common tasks in fewer steps, etc.

I hope that this QR code smartstart type feature idea will peak the interest of more developers this year.

Does anyone know if there has been any headway made on this?

I would love to be able to add my new Zigbee devices by scanning their barcodes like I can do with Z-Wave.

Not anyone has looked or worked at it as far as I know. I also asked here → https://github.com/zigpy/zigpy/discussions/857

For reference, some Zigbee 3.0 devices will not pair without QR code or Install Code, see example Bosch Termostat 2 → Bosch Thermostat 2

For reference, the new Matter integration (formerly called Project CHIP) for Home Assistant now also makes use of the QR code scanning feature for device commissioning via the HA companion apps:

Adding Matter devices to Home Assistant

ADD A DEVICE USING THE ANDROID COMPANION APP

This will use the Bluetooth connection of your phone to add the device.

1. Open The Home Assistant app on your phone.
2. Go to Settings, Devices & Services.
3. On the Devices tab, press the Add device button.
4. Choose Add Matter device as the top of the list.
5. Scan the QR-code of the Matter device with your phones camera or press the Setup without QR-code button to manually enter the Commission code.
6. The process will start adding the device which takes up to a few minutes.
7. If you’re adding a test board (e.g. ESP32 running the example apps) and commissioning fails, you might need to take some actions in the Google Developer console, have a look at any instructions for your test device.
8. Once the process is complete and you pressed the Done button, you are redirected to the Device within Home Assistant and its ready for use.

I just bough a Bosch smart radiator thermostat II, it doesn’t show up in ZHA scans, but it has a QR code, a Zig Bee EUI-64 code and an Install code.

Reading the replies here, I am correct that this will not help me in getting this smart knob working in the forseeable future?

Any suggestions perhaps for an alternative that will work? I’ll send this one back. The Bosch Hub is a bit much + it would be my 3rd hub (Hue, ZigBee and then Bosch).

I hope matter will solve all this in the future.

Thanks for keeping at it eveyone!

I believe some people got that one to work by manually entering the install code into ZHA, see this dedicated thread about Bosch Thermostat 2 → Bosch Thermostat 2

Thanx, I tried that method, it gives me an “Can’t call service zha.permit. Unknown error” (I changed some bits in the screenshot below:

Perhaps it is my dongle, it’s a:

ZNP = Texas Instruments Z-Stack ZNP protocol: CC253x, CC26x2, CC13x2
door ZHA

Sorry my UI is set to Dutch so there are some Dutch words here and there.

If it’s my hub, could the SkyConnect solve it? I’m eager to buy it, but is it a good enough hub for a large ZigBee network?

I believe this to be the error:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 26, in _handle_async_response
    await func(hass, connection, msg)
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 731, in handle_execute_script
    script_result = await script_obj.async_run(msg.get("variables"), context=context)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1578, in async_run
    return await asyncio.shield(run.async_run())
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 420, in async_run
    await self._async_step(log_exceptions=False)
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 470, in _async_step
    self._handle_exception(
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 493, in _handle_exception
    raise exception
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 468, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 704, in _async_call_service_step
    response_data = await self._async_run_long_action(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 666, in _async_run_long_action
    return long_task.result()
           ^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2035, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2072, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 986, in admin_handler
    await result
  File "/usr/src/homeassistant/homeassistant/components/zha/websocket_api.py", line 1261, in permit
    await application_controller.permit_with_key(
  File "/usr/local/lib/python3.11/site-packages/zigpy_znp/zigbee/application.py", line 395, in permit_with_key
    await self.permit_with_link_key(node=node, link_key=key, time_s=time_s)
  File "/usr/local/lib/python3.11/site-packages/zigpy_znp/zigbee/application.py", line 353, in permit_with_link_key
    await self._znp.request(
  File "/usr/local/lib/python3.11/site-packages/zigpy_znp/api.py", line 1031, in request
    raise CommandNotRecognized(
zigpy_znp.exceptions.CommandNotRecognized: Fatal request error RPCError.CommandNotRecognized.Rsp(ErrorCode=<ErrorCode.InvalidSubsystem: 1>, RequestHeader=CommandHeader(id=0x04, subsystem=Subsystem.APPConfig, type=CommandType.SREQ)) in response to AppConfig.BDBAddInstallCode.Req(InstallCodeFormat=<InstallCodeFormat.KeyDerivedFromInstallCode: 2>, IEEE=18:fc:26:00:00:0f:xx:xx, InstallCode=b'\xE7\x4B\x04\xE6\x48\xA7\xC9\xBF\x1D\x58\x5A\x28\x13\xxx\xE9\xxx')

If I’m not mistaken, this error is due to my dongle not supporting the needed protocol details?

Edit: I just ordered the SkyConnect, will update here if I get it to work with that.

@teekert Pease note that this specific thread is only a feature request (specifically posted in the feature requests forum which is not meant for support), so please instead continue asking for help in that other thread that is specifically about the Bosch Thermostat 2 → Bosch Thermostat 2

That is, please separate support/help questions from the “QR code” feature request and post any off-topic questions in new or existing threads in the other forums.

You do need a relative modern Zigbee 3.0 compatible Zigbee Coordinator adapter that is either based on Texas Instruments CC26x2/CC13x2 (e.i. CC2652 or CC1352) or Silicon Labs EFR32MGxx (e.i. Silabs EFR32MG21), the ZHA limitations mention this → https://www.home-assistant.io/integrations/zha#limitations

Support for commissioning Zigbee 3.0 devices via “Install Code” or “QR Code” via the ‘zha.permit’ service has so far only been implemented for ‘ezsp’ (Silicon Labs EmberZNet) or ‘znp’ (Texas Instruments) radio type in ZHA. Other radio types are missing support in their respective radio libraries for zigpy or manufacturer’s firmware commands/APIs

Thanx, I’ll continue in that thread. I did get the thing “to work” (that is, to connect) btw, with the SkyConnect. But still having issues. Thanx for the help so far.

Edit, ok, got it to work, see here

I’m willing to help debug, if there’s anything I can do. Thanx for the help.