Only await TX confirm if APS ACKs are requested#275
Only await TX confirm if APS ACKs are requested#275MalteGruber wants to merge 2 commits intozigpy:devfrom
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## dev #275 +/- ##
=======================================
Coverage 99.14% 99.14%
=======================================
Files 7 7
Lines 931 932 +1
=======================================
+ Hits 923 924 +1
Misses 8 8 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Thanks for the PR! What Conbee device are you using? |
|
Hey, |
|
Could you describe the device you're communicating with and include some debug logs or a traffic capture? The deconz docs say:
Is the device you're communicating with battery powered? In zigpy, |
|
The problem occurs for me with devices that are offline (say, ceiling lights that are unpowered). The handle_tx_confirm will not fire if the device is offline, which causes the confirmation future to be awaited for 60 seconds; it is this wait I want to skip if the ACK is not specified in the I believe Even with the change in this MR, I believe the Conbee UART reception confirmation is still awaited, regardless if waiting for an ACK is specified, so the contract with the Conbee is still respected. It's just the ACK from the actual lamp or whatever that is now not awaited if the ACK option is not passed, which is what I would expect zigpy.types.TransmitOptions.ACK to do, similar to broadcasting, etc. |
|
Within ZHA, we just use What firmware version is your Conbee II running? |
I have had issues in my system where
send_packetwaits for the fullSEND_CONFIRM_TIMEOUTregardless ifzigpy.types.TransmitOptions.ACKis present in the packet. This causes delays when many devices are offline.With this change, TX confirm is only awaited when APS ACKs are requested.
Note:
handle_tx_confirmwill still fire without a future in the_pending_requests, this is inherent in how the Network operates, so the warning that was raised has been changed to a debug message to reflect this.