zigpy / zigpy-xbee

A library which communicates with XBee radios for zigpy
GNU General Public License v3.0
22 stars 18 forks source link

Fix energy scan duraton #168

Closed Shulyaka closed 8 months ago

Shulyaka commented 8 months ago

Fixes https://github.com/home-assistant/core/issues/103208 Supersedes #166

The S2C modules do support energy scan: https://www.digi.com/resources/documentation/digidocs/90002002/default.htm#Reference/r_cmd_ED.htm?TocPath=AT%2520commands%257CNetwork%2520commands%257C_____17

The difference with XBee3 is the parameter range: S2C accepts 0x01-0xFF or no parameter, while XBee3 accepts 0x00-0xFF. In other words, to use a default parameter value one need to pass no parameters for S2C and 0x00 for XBee3.

Due to a bug we are sending the parameter as b'\x00\x00\x00\x00' instead of b'\x04' for 4 ms, the XBee3 firmware accepts that parameter as default, while S2C firmware returns an INVALD_PARAMETER response.

The bug is because we implicitly used bytes() constructor with an integer argument, that returns an array of zeros. Using [duration_exp] or bytes([duration_exp]) instead of duration_exp resolves the issue.

codecov[bot] commented 8 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (b8564a8) 100.00% compared to head (04abbef) 100.00%.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## dev #168 +/- ## ========================================= Coverage 100.00% 100.00% ========================================= Files 6 6 Lines 779 779 ========================================= Hits 779 779 ``` | [Files](https://app.codecov.io/gh/zigpy/zigpy-xbee/pull/168?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=zigpy) | Coverage Δ | | |---|---|---| | [zigpy\_xbee/zigbee/application.py](https://app.codecov.io/gh/zigpy/zigpy-xbee/pull/168?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=zigpy#diff-emlncHlfeGJlZS96aWdiZWUvYXBwbGljYXRpb24ucHk=) | `100.00% <100.00%> (ø)` | |

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.