LYWSD03MMC keeps reporting N/A for temperature and humidity
MathijsG opened this issue · comments
I recently flashed my LYWSD03MMC with z03mmc.bin to transfer it from the custom BLE firmware to Zigbee.
It pairs fine and everything, reports LQI, visually switches to Fahrenheit/Celsius, but the reported temperature and humidity keeps reporting N/A.
I've tried re-pairing them, removing them. Using a different coordinator didn't help as well.
My last resort is reflashing it back to Bluetooth via UART.
Any direction to pinpoint this issue?
What zigbee coordinator software do you use? What version of firmware did you write?
Sorry I'm in the Zigbee2mqtt camp. Should make that more clear next time, sorry.
I did it in Z2M however:
![image](https://private-user-images.githubusercontent.com/529552/294872443-ca30a848-1dfa-4a25-936c-da0aadd4bed5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUwMzc5MTAsIm5iZiI6MTcyNTAzNzYxMCwicGF0aCI6Ii81Mjk1NTIvMjk0ODcyNDQzLWNhMzBhODQ4LTFkZmEtNGEyNS05MzZjLWRhMGFhZGQ0YmVkNS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwODMwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDgzMFQxNzA2NTBaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1mZTc3NjU0YmNkNTBhNjZlMGY4MTFlNTE4M2MxMWZjZmU2YmRjNmNhZGMzYWQwZGIzYTY5OWM1M2VkMDU5MzU4JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.6BYIXO7A1eJTysghxTzGDeoF0nwAwvxWCe5C_pAk3G4)
I took this z03mmc.bin file from: https://github.com/devbis/z03mmc/releases/tag/1.0.6
What zigbee coordinator software do you use? What version of firmware did you write?
Zigbee2MQTT version
1.35.1 commit: unknown
Coordinator type
zStack3x0
Coordinator revision
20230507
Coordinator IEEE Address
0x00124b0018ed3f49
Frontend version
0.6.151
Zigbee-herdsman-converters version
18.9.0
Zigbee-herdsman version
0.30.0
I'm facing a similar issue.
I force-removed the device from Z2M a couple of times and it recovered I was getting proper numbers.
However, after some time the thermometer locks up. It stops sending any values and it stops updating the temperature on the display.
I OTA flashed it mid-December 2023 with the latest available firmware and it was working OK for a while.
I'm using a SONOFF Zigbee 3.0 USB Dongle Plus with Debian 12 and Home Assistant 2024.1
@EinSchwerd if you get actual numbers for temperature and humidity at the zigbee-level then this seems like a different issue. Maybe yours has something to do with distance towards the device? Move it closer to the actual device it is connected to, or pair it to something else closer?
I don't get numbers on zigbee-level. I don't get numbers at all. It seems like the device is deadlocked as the server does not receive any messages other than that the thermometer is connected.
Can you read data from attribute manually? Temperature/measuredValue.
Does changing battery and/or moving closer to the coordinator help?
I put it onto the coordinator antenna and no change. How can I manually read the value from it? It does not change the value displayed on the device itself regularly. It only does a value update when I re-insert the battery.
Facing same issue, using the firmware from 09.11.2023. The values showed as 'N/A' in zigbee2mqtt.
Same here! Works for some time and then stops to respond. Taking the battery out for 10 sec and placing it back helps - new values are transmitted for some period (several days) and then the same thing happens. Z2M with external converter.
Recently there was an OTA update for my sensor, and that fixed it :-)!
When I compare the amount of temp updates to my still-Bluetooth temp sensors (exact same devices):
Zigbee variant:
Bluetooth variant (custom firmware):
It seems like the Bluetooth version updates much more frequently. Is this something I can change on my side? The paramaters of reporting an update are already quite low (often) by default, yet it seems like it's not reporting temp changes as accurately and timely as my Bluetooth sensors.
You can configure the reporting time and delta using standard zigbee functionality. What software do you use?
I use Zigbee2mqtt. And the defaults for this device are already very low in reporting (so it's often reporting al ready). See attached screenshot:
But it seems more like the sensor ignores these settings somehow, as it's often keeping the same value. Sometimes it only updates when I pressed these buttons (the refresh icons):
The configuration is correct. Try upgrade to the latest firmware, use fresh battery and re-join if needed.
Один и тот-же таймер app_reportMinAttrTimerCb
в цикле переназначается на все события:
https://github.com/devbis/z03mmc/blob/master/src/reporting.c#L80C87-L80C111
В итоге отрабатывает одно.
Взята процедура из примера в SDK, в котором существует только одно событие и не рассчитана на множественные ...
В итоге она иногда отрабатывает, когда происходит повторный вызов, после срабатывания таймера. Но не всегда.
Получается, что когда быстро меняются значения T или H, передается только что-то одно.
Это не таймер, а колбек на таймер. О каких ограничениях в коде идет речь, если это вызывает такой эффект? Есть ссылка на код реализации таймеров, где это вызывает проблемы?
А как назначается ID таймера?
Именно по адресу callback
Есть ссылка на код реализации таймеров, где это вызывает проблемы?
ev_on_timer()
Я не разбирал ваш код, но эффект выходит именно такой – когда значения T и H меняются быстро, передается только одно T или H.
Recently there was an OTA update for my sensor, and that fixed it :-)!
OK, I thought the OTA helped, but the sensor keeps dropping out. Battery out reset helps for a day or so, then the sensor stops reporting
Happened to me twice between last week and today. New CR2032 battery and all. Device apparently crashes and keeps stuck on a fixed value of T° and hum%.
The workaround is resetting the device by shorting the ground and reset pins with a pair of tweezers for about 5 seconds max (the screen goes out for a bit). But that's no good for the plastic of the cover which is a bit hard to take out.