-
Notifications
You must be signed in to change notification settings - Fork 498
Mitigate deserialization errors due to hub 0.57 FW bug #2218
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
Conversation
0.57 FW has an extra byte as the first byte of zdo message body payloads and is missing the last byte of the body of the payload. This adds a mitigation in the ZdoMessageBody deserialization code which overrides the Lua library function that corrects the off by 1 error and inserts a default last byte of 0x01 for every Zdo message payload.
-- there is a bug in hub FW that causes the zdo message payload to have an invalid first byte | ||
-- and a missing last byte. Default to adding in a 1, which is a good default for the mgmt_bind_response | ||
-- binding table entry endpoint_id | ||
local version = require "version" | ||
if version.rpc == 8 then | ||
buf.buf = buf.buf .. "\01" | ||
buf:seek(1) | ||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here is where the mitigation occurs
Channel deleted. |
Test Results 68 files 444 suites 0s ⏱️ Results for commit eb46158. |
zigbee-button_coverage.xml
zigbee-motion-sensor_coverage.xml
Minimum allowed coverage is Generated by 🐒 cobertura-action against eb46158 |
One thing I realized this doesnt address is that any device that was joined while this is broken will remain non functional until it requests the binding table (is reconfigured). I think the approach that I will take is to do a one time reconfiguration of all devices in these subdrivers by setting the provisioning state to TYPED. |
I would be concerned that the reconfiguration could cause more problems that it solves, and I would just suggest that we ask people to re-onboard their devices if the functionality is affected. |
0.57 FW has an extra byte as the first byte of zdo message body payloads and is missing the last byte of the body of the payload. This adds a mitigation in the ZdoMessageBody deserialization code which overrides the Lua library function to correct the off by 1 error and inserts a default last byte of 0x01 for every Zdo message payload.
Testing