Sonoff TRVZB firmware version on ZHA

Hello everyone.
I am not sure if my TRVZB has the latest firmware installed.
I am using ZHA and, upon restart of Home assistant, I can see this information:
image

I hope that the italian language isn’t a problem.
Is the firmware version reported as a binary?
To which dotted number version does it refer?

I just want to add that, after some time, the firmware version goes to “unknown”.
Is it normal?

Thanks in advance.
Lorenzo

Here again.
Yesterday I tried to fiddle a little with zigpy ota paramenters in configuration.yaml, and activated the local repository, in which I put the ota file of newest 1.2.1 firmware of TRVZB :

zha:
  custom_quirks_path: /config/custom_zha_quirks/
  zigpy_config:
    ota:
      extra_providers:
        - type: sonoff
        - type: advanced
          warning: I understand I can *destroy* my devices by enabling OTA updates from
            files. Some OTA updates can be mistakenly applied to the wrong
            device, breaking it. I am consciously using this at my own risk.
          path: /config/zigpy_ota

And today I found the surprise: finally zha offered me the update.
I needed to run the update twice (I don’t remember exactly, but in the first run I believe it said “updating” and in the second run I’m sure it said “installing”), but, in the end, the update occurred.
And now I have this numbering:
immagine

So, the version number is not binary:
as the version 1.2.1 is represented as 0x00001201, I can conclude that previous version was 1.1.1.

Good to hear! Any notable changes with this new firmware?

I have been struggling with the same issue.
Where did you download the new FW version? (found https://github.com/Koenkk/zigbee-OTA/raw/master/images/Sonoff/trvzb_v1.2.1.ota)
Did you create any extra or specific folders?
Using your YAML config I get the following error from ZHA:
Invalid config for ‘zha’ at configuration.yaml, line 13: not a directory for dictionary value ‘zha->custom_quirks_path’, got ‘/config/custom_zha_quirks/’, please check the docs at Zigbee Home Automation - Home Assistant
→ Created the quirks folder I was missing, no error for now. Curious to see if later today or tomorrow I get the notification as well

→ Ran check for updates after a reboot and got the options now, perfect!

@jvdburgt yes, I can now manage the partial valve aperture or closure.
It was previously disabled.

@Counfhou glad to read that. I was surprised, too, to see that everything went well after downloading the firmware locally.

The custom quirks directive and folder are needed only if you have a zigbee device not officially supported and recognized by ZHA, or wrongly or partially addressed.

For instance, I used this folder to test the custom quirk for the TRVZB valve, before it was committed to the officially released branch of Home Assistant.

What is the reason for the Sonoff update for TRVZB to be not available on ZHA OTA update? Sonoff is officially supported by ZHA so I don’t understand why I can update this way.
Where did you find the update if it isn’t available?

Thanks

Hi,

One of my TRVZB, even when switched on, is malfunctioning : the valve stays open and does not switch off. I have already removed the batteries but without success.

Here is the error log I encounter :

Enregistreur: homeassistant.components.websocket_api.http.connection
Source: components/websocket_api/commands.py:245
intégration: Home Assistant WebSocket API (documentation, problèmes)
S’est produit pour la première fois: 10:00:10 (1 occurrences)
Dernier enregistrement: 10:00:10

[547361957360] Unexpected exception
Traceback (most recent call last):
File “/usr/local/lib/python3.13/site-packages/zigpy/device.py”, line 381, in request
return await req.result
^^^^^^^^^^^^^^^^
asyncio.exceptions.CancelledError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File “/usr/local/lib/python3.13/site-packages/zha/zigbee/cluster_handlers/init.py”, line 67, in wrap_zigpy_exceptions
yield
File “/usr/local/lib/python3.13/site-packages/zha/zigbee/cluster_handlers/init.py”, line 85, in wrapper
return await RETRYABLE_REQUEST_DECORATOR(func)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/site-packages/zigpy/util.py”, line 136, in retry
return await func()
^^^^^^^^^^^^
File “/usr/local/lib/python3.13/site-packages/zigpy/zcl/init.py”, line 375, in request
return await self._endpoint.request(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
…<9 lines>…
)
^
File “/usr/local/lib/python3.13/site-packages/zigpy/endpoint.py”, line 270, in request
return await self.device.request(
^^^^^^^^^^^^^^^^^^^^^^^^^^
…<11 lines>…
)
^
File “/usr/local/lib/python3.13/site-packages/zigpy/device.py”, line 380, in request
async with asyncio_timeout(timeout):
~~~~~~~~~~~~~~~^^^^^^^^^
File “/usr/local/lib/python3.13/asyncio/timeouts.py”, line 116, in aexit
raise TimeoutError from exc_val
TimeoutError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/components/zha/helpers.py”, line 1335, in handler
return await func(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/zha/switch.py”, line 63, in async_turn_off
await self.entity_data.entity.async_turn_off()
File “/usr/local/lib/python3.13/site-packages/zha/application/platforms/switch.py”, line 100, in async_turn_off
await self._on_off_cluster_handler.turn_off()
File “/usr/local/lib/python3.13/site-packages/zha/zigbee/cluster_handlers/general.py”, line 472, in turn_off
result = await self.off()
^^^^^^^^^^^^^^^^
File “/usr/local/lib/python3.13/site-packages/zha/zigbee/cluster_handlers/init.py”, line 84, in wrapper
with wrap_zigpy_exceptions():
~~~~~~~~~~~~~~~~~~~~~^^
File “/usr/local/lib/python3.13/contextlib.py”, line 162, in exit
self.gen.throw(value)
~~~~~~~~~~~~~~^^^^^^^
File “/usr/local/lib/python3.13/site-packages/zha/zigbee/cluster_handlers/init.py”, line 69, in wrap_zigpy_exceptions
raise ZHAException(“Failed to send request: device did not respond”) from exc
zha.exceptions.ZHAException: Failed to send request: device did not respond

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File “/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py”, line 245, in handle_call_service
response = await hass.services.async_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
…<7 lines>…
)
^
File “/usr/src/homeassistant/homeassistant/core.py”, line 2795, in async_call
response_data = await coro
^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/core.py”, line 2838, in _execute_service
return await target(service_call)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/helpers/service.py”, line 1006, in entity_service_call
single_response = await _handle_entity_call(
^^^^^^^^^^^^^^^^^^^^^^^^^^
hass, entity, func, data, call.context
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File “/usr/src/homeassistant/homeassistant/helpers/service.py”, line 1078, in _handle_entity_call
result = await task
^^^^^^^^^^
File “/usr/src/homeassistant/homeassistant/components/zha/helpers.py”, line 1337, in handler
raise HomeAssistantError(err) from err
homeassistant.exceptions.HomeAssistantError: Failed to send request: device did not respond