Koenkk / zigbee2mqtt

Zigbee 🐝 to MQTT bridge 🌉, get rid of your proprietary Zigbee bridges 🔨
https://www.zigbee2mqtt.io
GNU General Public License v3.0
12.11k stars 1.68k forks source link

TuYa TS0601_thermostat: OTA page shows no current version – which is confusing #15839

Closed RubenKelevra closed 1 year ago

RubenKelevra commented 1 year ago

What happened?

My TuYa TS0601 thermostats are showing up in the OTA page, so I can check/update their firmware. But the check does nothing – there's no version currently installed reported/shown by these devices (as well as no build date):

Screenshot from 2022-12-31 16-06-45

The info page of those devices does not show this info either:

Screenshot from 2022-12-31 16-09-37


Without a currently installed version it's completely unclear to me how the firmware update check is even done. It's also unclear if it's a bug that it shows “no update available”, as it cannot compare the currently installed version to the available versions?!

So I dug into the source code of Zigbee2MQTT and the debug logs and found, that in the end the value of genBasic.appVersion is used to check for firmware updates. This value is logged in the debug log as fileVersion – but never shown in the GUI.

The currently (#5b3d218) available firmware version is fileVersion 87 and that's the same value the device reports if asked for it's genBasic.appVersion value.

So in the end the update check process is working correctly, as the available image is the same as the installed one. Just the GUI is non-optimal here.

What did you expect to happen?

To follow the principle of least astonishment it is important to show this internal fileVersion value to the users as primary version number, instead of the only descriptive 'Firmware version' and 'Firmware build date' values.

Device's About page

On the device page the reported fileVersion should be added.

OTA page

The value of 'Firmware version' and 'Firmware build date' could compacted into a single row, by showing it as “$firmware_version ($firmware_build_date)”. This way there's enough room for a new row for the fileVersion value.

How to reproduce it (minimal and precise)

Zigbee2MQTT version

1.28.4

Adapter firmware version

20220219

Adapter

Slaesh's CC2652RB stick

Debug log

No response

Koenkk commented 1 year ago

@nurikk this may be a possible improvement for this page. Starting with z2m the update object will have an installed_version and latest_version. This is used in Zigbee to determine wether a new fw is available (not the swbuildid or datecode).

Scoff123 commented 1 year ago

Different device but the same is happening with one of my zigbee devices - Aqara smart wall switch H1 EU (with neutral, single rocker).

In the OTA page there is no data displayed for this device in the Firmware version column. In the About page for the device, it shows a Firmware build date 11-10-2021, but no Firmware version field like my other devices do. If I go into the State page for the device, under Update section, it shows installed_version: 2839 and latest_version: 2839. The Dev console shows genBasic: appVersion: 23

ovizii commented 1 year ago

I just had the same problem (no installed version, no latest version available) with the same TRV: _TZE200_cpmgn2cf although a firmware check said: update available, so I went ahead. It says remaining time: 25:54 - will continue this post when the update is done.

Normally I wouldn't risk this, but I was having a problem with this device, so it can't get any worse.

While waiting for the firmware update to finish, I noticed a notification from HA: image

BedTherm is the name of this TRV, and apparently it was on firmware version 85 and it's now updating to 87

The update failed around 6% saying the device had not requested any blocks!? I was too slow to take a screenshot. Tried again, here's the screenshot: image

github-actions[bot] commented 1 year ago

This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 7 days

PetrMa commented 1 year ago

Hi,

is there any update on this issue please? Currently I have the same issue on all of my TuYa TS0601_thermostat and TS011F_plug_1 devices

thanks

mvzut commented 11 months ago

I ran into this same issue and stumbled upon this page. I have six TS0601 TRVs, some updated to FW 87 without any problems, and some didn't. What I found out is that for a successful OTA firmware update, the devices must be close to the coordinator. It doesn't work when they are connected via an in-between router. Of course, in the case of TRVs or other "fixed" devices it's not very convenient to unscrew them to bring them closer to the coordinator, but this was the only solution for these three valves in my case.

xamadevp commented 11 months ago

Same issue here. Worth reopening the issue.

@mvzut Thanks for the report. Do you know what's in the firmware update? I'm afraid of bricking my TRVs and therefore weighing out the risk of updating.

mvzut commented 11 months ago

Same issue here. Worth reopening the issue.

@mvzut Thanks for the report. Do you know what's in the firmware update? I'm afraid of bricking my TRVs and therefore weighing out the risk of updating.

To be honest I have no clue. I didn't notice any difference so far. I just upgraded because I always do, no other reason.

By the way, I'm actually quite happy with the valves. Of course the temperature stability is not very good due to the built-in sensor, which is very inaccurate during heating. But I solved that by creating generic thermostats for some rooms, based on a better sensor somewhere else in the room.