Open puddly opened 6 months ago
All modified and coverable lines are covered by tests :white_check_mark:
Comparison is base (
8314dcd
) 100.00% compared to head (2b1b21f
) 100.00%. Report is 1 commits behind head on dev.:exclamation: Current head 2b1b21f differs from pull request most recent head 6059c1e. Consider uploading reports for the commit 6059c1e to get more accurate results
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
I've tested this change. Unfortunately it does not solve the problem, because only tx_explicit API frames are limited, but others, such as commands and remote commands, are not. I think we are better off without watchdog at all.
I've reimplemented this PR on top of the unreleased zigpy priority lock/queue:
pip install git+https://github.com/puddly/zigpy@zigpy/priority-lock
This should deprioritize transmit commands so that any watchdog polling task would have to wait only for a single command slot to open up, as opposed to the queue being completely vacated.
I think we need to increase the AT_COMMAND_TIMEOUT anyway.
Consider the follow scenario:
Zigpy provides a way for radio libraries to limit request concurrency (by default 8). It seems like zigpy-xbee did not use it. You can increase/decrease the default via YAML:
@Shulyaka this may actually be the only change required for zigpy-xbee to work properly with the watchdog. If you can find a value that works well for your XBee, this may supersede #172.