pvvx / ZigbeeTLc

Custom firmware for Zigbee 3.0 IoT devices on the TLSR825x chip
Other
365 stars 20 forks source link

LYWSD03MMC -sensor freezes ver. 0.1.1.2. #17

Closed drwalr closed 9 months ago

drwalr commented 10 months ago

I reprogrammed one of my LYWSD03MMC (sensor) to version ver. 0.1.1.2. After a few hours, the sensor stopped reporting to Z2M. The connection to the zigbee network i good.

image

I changed the zigbee network channel. Same problem in version 1.08, we restored BLE in all sensor , testing one sensor.

pvvx commented 10 months ago

The connection to the zigbee network i good.

Your network contains only routers with Chinese non-standard firmware for Zigbee 3. Contact Tuya with the problem of these routers.

drwalr commented 10 months ago

I have no problems with my network.

"custom routers from China"... I think 99% of devices are made in China

I tested another one firmware.

https://github.com/devbis/z03mmc

I I think this may be a common problem.

https://github.com/devbis/z03mmc/issues/71

pvvx commented 10 months ago

"custom routers from China"... I think 99% of devices are made in China

After temporarily disconnecting the coordinator, the Xiaomi Aqara sensor fell off. It worked through the Tuya smart plug router. image Where should I go to fix the problem?


Zigbee router/coordinator nodes require that their end devices poll their parent at least once within the End Device Poll Timeout. Otherwise, these devices will be removed from the child table at the parent, effectively being aged out of the network.

The thermometer communicates with the router/coordinator every 10 seconds.

The Poll Control Cluster of the thermometer has the following values:

    .chkInInterval          = 3600*4, // 3600 sec, 1hr
    .longPollInterval       = 10*4,  //  10 sec
    .shortPollInterval      = 2,    // 2 qs
    .fastPollTimeout        = 9*4, // 9 sec
    .chkInIntervalMin       = 0x00,
    .longPollIntervalMin    = 0x00,
    .fastPollTimeoutMax = 0x00,
drwalr commented 10 months ago

I'm not a developer, I can't help with the code Which means .longPollInterval = 10*4

Are we sure that 10*4 = 10 seconds? Have you seen the article

https://community.silabs.com/s/article/the-poll-control-cluster-a-reliable-way-for-sed-to-receive-asynchronous-transmi?language=en_US

Something about 7.5 seconds is described? I use the sonof P coordinator, the latest firmware says something about 7.5 seconds.

image

pvvx commented 10 months ago

Something about 7.5 seconds is described? I use the sonof P coordinator, the latest firmware says something about 7.5 seconds.

Have you seen the article https://community.silabs.com/s/article/how-often-should-my-end-device-poll-its-parent-x?language=en_US

Most Zigbee Tuya sensors have a polling interval of over 30 minutes.


ZigBee Cluster Library Specification Revision 6 Draft Version 1.0

3.16 Poll Control

image

Check-in Interval >= Long Poll Interval >= Short Poll Interval

0x6e0000/4/60/60/24 = 20 days

drwalr commented 10 months ago

I'll check one more thing. The sensor has connected to one of the devices, I only have one such model, maybe it is not compliant with the standard, I will turn off the device and pair the sensor again, I will check if the same problem still exists.

image

I also have a question, as I wrote, the sensor is frozen and still shows the same temperature and humidity even when I take it in my hand and heat it. If it is not connected to the Zigbee network, the "BT" icon should be displayed as described.?

image

Maybe the problem is not with "PollInterval" but the sensor hangs for some other reason. Is there any other way to check this?

pvvx commented 10 months ago

In the version from this repository, the BLE icon on the screen indicates there is no connection. When registering to the network, the BLE icon flashes 5 times quickly. When resetting it shows "---". The temperature and humidity values on the screen always change with a period of 10 seconds.


You did not specify the version of the thermometer. (B1.4..B2.0)

drwalr commented 9 months ago

After updating to 0.1.1.7, everything seems to be OK.