-
Notifications
You must be signed in to change notification settings - Fork 482
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
lumi.ctrl_neutral2 switches still lost in v2.05.39 #798
Comments
Can you please make a screenshot of the Node Info Panel, maybe the Node Descriptor wasn't fetched yet.Hopefully the correct The |
Yes deCONZ core now fetches incomplete Simple Descriptors as soon as possible when commands
Yes but sadly this will not solve all problems (but might be good enough). With some fixes we can ensure that the device works as expected but only if it is joined directly to the gateway. The problem is that every parent node uses the So depending on how (if) often the device polls the parent where might be a delay when reading zcl attributes or sending unicast commands to it. |
(Continued from #806)
It's the endpoint; reading the Groups or Scenes cluster attributes does also activate the resource. |
I updated the handling of the Xiaomi special attribute for the |
With .42 the power descriptor can be read again! After reading it, the |
Currently the rxOnWhenIdle Info is only extracted from device announce and node descriptor, since they are most reliable source. We can consider using the power descriptor as source for rxOnWhenIdle for the lumi. devices. |
I want to check my other lumi devices first, but I’m having a hard time reading them. When I press the reset button, the device’s led blinks blue, and the indicator on the node in the GUI blinks blue as well. Still, reading the Power descriptor fails, and the node blinks red. On other devices of the same type the descriptor is read alright and the node only blinks blue. This smells suspiciously like routing issues, but I still need to check the logs and/or sniff the traffic to verify this. I fear the routing issues might be far more widespread, but go largely unnoticed, because of the intermittent nature (route is potentially updated on each link status message?), attribute reporting, and use of group commands. That could also explain the increased number of issues on devices not wanting to pair, the requests to read the descriptors or the Basic cluster simply don’t arrive at the device. Looking forward to test 0x26290500. |
In case of the Xiaomi sensors I found out that after the setup phase they poll only once per hour — before and after the special report is send! All the other reports won't cause a mac data request (poll) and that's why request which are not scheduled no more than 7 seconds before the special report get lost. Other end devices have different unique flavors of poll behavior :) Philips is easy because they poll very often. Currently there is no logic to handle polling scheduling and it basically is a russian-roulette to query end-devices. I'll going to put my collected data in the Wiki and once we have a larger picture we can design something to deal more reliably with it, which will also prevent putting hopeless requests in the queues. |
Do I understand correctly that the poll is a MAC unicast? How would deCONZ know when the end device is reachable? Does the parent send word to the coordinator when the end device is polling? Or does the parent cache the request to the end device for over an hour causing deCONZ to receive an ack, for a request that has long timed out and been removed from the queue? I would hope the Xiaomi devices poll when the reset button is pressed? Or was I just lucky on the device for which the power descriptor could be read? A 14 in 3600 chance if I understand correctly (worse than 1:250). |
Yes it's a mac level unicast to the parent, and only the parent will be aware of it. So if an end-device is connected not directly but to some router deCONZ won't know when the end-device polls. Currently deCONZ assumes the end-device is reachable when a report is received but this is wrong in many cases.
Sadly no.
Requests to an end-device are only cached for ~7.5 seconds and then get dropped. Some routers like Ikea send a mac transaction expired message to the gateway when the message gets dropped, Philips and innr routers just drop the message silently. But they send a APS success confirm right after the message was received and stored. And this is the difficult part messages to an end-device should be send before it polls. In case of Xiaomi this is a few seconds before the special report is received. Almost all devices do repeated fast polling in the setup phase for a few seconds/minutes, this is the right time to do all the configuration work and this can be improved in deCONZ.
Maybe, I haven't checked that, but sniffer will tell. |
My
lumi.ctrl_neutral2
end-device switches are still somewhat lost after restarting deCONZ v2.05.39:The switches are active on the network, and deCONZ is receiving and answering the requests for the Time cluster. However, that doesn't trigger the REST API plugin to make the resource available. Reading the Basic cluster attributes on endpoint 0x01 doesn't make a difference either. Reading the OnOff cluster attributes on endpoint 0x02 makes available the corresponding light resource. The light resource corresponding to endpoint 0x03 is still unavailable, though, until I read the OnOff cluster attributes on that endpoint as well.
Note that these switches are mains powered end-devices, but report Receiver on when idle as false in the Node info panel. I don't think that's correct, though: reading cluster attributes always seems to give an answer immediately. Also note that these are the newer models without a neutral wire connection, despite the name.
The text was updated successfully, but these errors were encountered: