Bosch Thermostat 2

The connection was easy with ZHA. Using them in multiple automations now. Just give ZHA a shot. @FlyingUnicorn

7 Likes

I have mine working in Z2MQTT. Did you add the install code (qr code) from the battery compartment? Then it should start the interviewing process and add the thermostat without problems.

2023-01-29 12_16_27-Zigbee2MQTT – Home Assistant

1 Like

Awesome, thanks!! I’ll test it out later today :ok_hand:t3:

1 Like

How did you manage to pair the device? My thermostat keeps searching for networks but isn’t discovered by ZHA.

To pair it with ZHA I had to use the zha permit service call and supply the IEEE Address and the install code from the back of the cover

https://www.home-assistant.io/integrations/zha/#service-zhapermit

By the way, also check out and please vore in this indirectly related feature request asking for QR code scanning support to be added to the ZHA integration and Home Assistant’s companion apps → 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?

Thanks for that hint. Tried it, unfortunately I receive an unknown error… :frowning:

Failed to call service zha.permit. Unknown error

My logs show two Errors:
homeassistant.components.websocket_api.http.connection:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 27, in _handle_async_response
    await func(hass, connection, msg)
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 646, in handle_execute_script
    await script_obj.async_run(msg.get("variables"), context=context)
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1524, in async_run
    await asyncio.shield(run.async_run())
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 409, in async_run
    await self._async_step(log_exceptions=False)
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 453, in _async_step
    self._handle_exception(
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 476, in _handle_exception
    raise exception
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 684, in _async_call_service_step
    await service_task
  File "/usr/src/homeassistant/homeassistant/core.py", line 1787, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1824, in _execute_service
    await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 756, in admin_handler
    await result
  File "/usr/src/homeassistant/homeassistant/components/zha/api.py", line 1231, in permit
    await application_controller.permit_with_key(
  File "/usr/local/lib/python3.10/site-packages/zigpy_deconz/zigbee/application.py", line 109, in permit_with_key
    raise NotImplementedError()
NotImplementedError

and
homeassistant.helpers.script.websocket_api_script:

raceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 451, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 684, in _async_call_service_step
    await service_task
  File "/usr/src/homeassistant/homeassistant/core.py", line 1787, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1824, in _execute_service
    await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 756, in admin_handler
    await result
  File "/usr/src/homeassistant/homeassistant/components/zha/api.py", line 1231, in permit
    await application_controller.permit_with_key(
  File "/usr/local/lib/python3.10/site-packages/zigpy_deconz/zigbee/application.py", line 109, in permit_with_key
    raise NotImplementedError()
NotImplementedError

Does anyone have experience with that= I’m running Hassio in a container on a Proxmox hypervisor, the Conbee II is passed through to home assistant and working fine.

Thanks a lot!

I’m using the Sonoff P dongle (TI).
It seems that the code is not implemented for the deconz handler.

If so then should report that as an issue to zigpy-deconz (deconz radio library for zigpy that ZHA depends on for ConBee/RaspBee serial protocol hardware abstraction interface) → https://github.com/zigpy/zigpy-deconz/issues

FYI, went ahead and opened issues at respective deconz repositories for Dresden-Elektronik and zigpy:

and

Thanks a lot @Hedda - but looks like I need to be patient and hope that the functionality will be implemented for ConBee II

I am not so optimistic that install-code and qr-code support will be added to ConBee / RaspBee soon, so if you need/want to use this feature today then probably best to buy a new Silicon Labs or Texas Instruments based Zigbee Coordinator adapter instead, see → Zigbee buyer's guide

FYI, ChrisHae from Dresden Elektronik wrote a reply there that ConBee / RaspBee firmware deconz serial interface does not currently support joining/paring via install code (or QT code) but a firmware update that will add it is on their roadmap for ConBee 2 / RaspBee 2, (though not for the original ConBee / RaspBee which firmware is no longer getting updated features), see ChrisHae’s reply here → Does deCONZ serial protocol for ConBee/RaspBee Zigbee Coordinator adapters not support joining/pairing via install code and qr code? · Issue #20 · dresden-elektronik/deconz-serial-protocol · GitHub

One possible workaround could be to migrate your Zigbee network in ZHA to a newer/modern Silicon Labs EmberZNet (EZSP) or a Texas Instruments Z-Stack (ZNP) based Zigbee Coordinator adapter, (like, for example, a “Sonoff ZBDongle-E” or a “Sonoff ZBDongle-P”), as those support joining/pairing via install code and qr code, and then migrate back (or not), see → https://www.home-assistant.io/integrations/zha#to-migrate-to-a-new-zigbee-coordinator-radio-inside-zha

Another related tip specific to the Bosch Thermostat 2 device is that it might be worth alsy try upgrading the OTA firmware on that Bosch Radiator Thermostat II device (via Zigbee2MQTT), as that was at least mentioned in the Zigbee2MQTT community → [New device support]: Bosch Radiator Thermostat II · Issue #14926 · Koenkk/zigbee2mqtt · GitHub

By the way, for manually upgrading firmware in ZHA after a device has already been joined/paired, see ZHA Toolkit → https://github.com/mdeweerd/zha-toolkit#ota_notify

FYI, someone submitted a firmware upgrade image file for Bosch BTH-RA (a.k.a. Smart Thermostat 2) to https://github.com/Koenkk/zigbee-OTA/ as per this PR https://github.com/Koenkk/zigbee-OTA/pull/279https://github.com/Koenkk/zigbee-OTA/tree/master/images/Bosch

If you are using the ZHA integration then a tip is to use ZHA-Toolkit to download and upgrade that Zigbee OTA firmware image on that specific device once you have successfully paired/joined it to ZHA → https://github.com/mdeweerd/zha-toolkit/blob/main/README.md#ota_notify—downloadtrigger-device-fw-update

Hi,

just to make sure there’s currently no way to use the Bosch Thermostat II with ZHA using a Conbee 2, right?

Just trying to confirm before I send the four new thermostats back :confused:

That is correct, at least until developers that the Desden Elektronik company employee adds support for the missing/needed “install code” feature via a firmware update, see → Does deCONZ serial protocol for ConBee/RaspBee Zigbee Coordinator adapters not support joining/pairing via install code and qr code? · Issue #20 · dresden-elektronik/deconz-serial-protocol · GitHub

Until then the best workaround is to instead just buy a brand new Texas Instruments or Silicon Labs based Zigbee Coordinator radio adapter/dongle (that has their newer Zigbee radio chips which support newer more modern firmware) and then simply migrate your Zigbee network to that new adapter/dongle.

If you are currently using the Phoscon/deCONZ or Zigbee2MQTT applications as your Zigbee gateway application then it is unfortunately only possible to do partial Zigbee network migration (and even that not fully seamlessly), but it is possible to do a fully seamless migration if you are already using Home Assistant’s own native ZHA integration as long as you first upgrade to latest ConBee/RaspBee firmware. See → https://www.home-assistant.io/integrations/zha#migrating-to-a-new-zigbee-coordinator-adapter-inside-zha

Otherwise you could try performing a two-step partial migration if using Phoscon/deCONZ or Zigbee2MQTT as then you can first migrate to Home Assistant’s own native ZHA integration, but be warned that will only be a partial migration that require repairing some devices and reconfiguring all automations that use any of them, checkout these migration guides → https://skyconnect.home-assistant.io/zigbee-migration-selection/

As for which dongles you should buy I recommend Home Assistant SkyConnect if both want to sponsor Nabu Casa development and like something that is very easy to maintain as long as using Home Assistant’s own native ZHA integration, otherwise recommend that you check out both ITead’s “Sonoff Zigbee 3.0 USB Dongle Plus” (model “ZBDongle-P” which is best for Zigbee2MQTT) as well as their other variant which is “Sonoff Zigbee 3.0 USB Dongle Plus V2” (model “ZBDongle-E” for ZHA). Note that if you plan on using Zigbee2MQTT (Z2M) then currently only Texas Instruments CC2652 or CC1352 based adapters are recommended.

Thanks a lot @Hedda!

As I really like the thermostats I bought a Sonoff dongle with CC2652P and also moved from ZHA to Zigbee2MQTT in the process.

Everything working now :slightly_smiling_face:

1 Like

Just to add to this: I switched to a SkyConnect Dongle, which enabled the use of pairing codes. Pairing works as expected now.

However, there is a slight “problem” when using this thermostat in conjunction with ZHA. The heater modes as well as on/off do not work due to some issues with the ZHA quirk. The fix is already requested with [Device Support Request] Full implementation of BOSCH Radiator Thermostat II (BTH-RA) · Issue #2476 · zigpy/zha-device-handlers (github.com) but for now, only the temperature settings work fine for me. Just keep this in mind.

2 Likes

I use this with z2m which works fine, but there is major setback in my installation: the device (without hub) has a build in schedule that cannot be wiped (as i do not know how, at least). this would be annoying but could be overcome with a simple time based automation. but it calls this scheduled temperature also every time when switched to auto mode… it has nothing to do with zigbee but the firmware itself. i was able to fix this in node red, but it is a real pain…

1 Like

I was able to connect the thermostat using the SkyConnect and ZHA. It took some time until HA saw all the attributes and sensors, but it now is at the state, that others are able to reach, too. I then tried to initiate a firmware update, which tranferred successfully, but did not install, as one night later, I still see the same firmware reported by the device. A restart did not change this.
By now, the device has become fully unresposive to any commands from HA. Neither temperature setting, nor cluster commands about firmware are able to deliver. A full reset and new configuration of the device did not change things. If only I could at least control the temperature, then I could be motivated to wait for the quirk to be implemented…

Someone out there with similar issues and / or a possible solution to at least restore basic functionality for now?

Buy a SHC 2 at Amazon, do the updates and send the SHC 2 back after the update. Thats the way Bosch want it

1 Like