Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is the 5th PR in a series to improve the request queue behavior for sleepy end devices, as discussed in Koenkk/zigbee2mqtt#17177.
This PR introduces the following change: If an attempt to send a message after an implicit checkin fails, the message is not deleted immediately. Instead, all messages are now kept until one of the following is met:
The PR also introduces another small fix that an incoming genPollCtrl message does not trigger an implicit checkin any more. The proper behavior is to send a checkin response and wait for the device to enter fastpoll, then send all messages. The implicit checkin is unnecessary and may lead to bad side effects like messages being lost or sent out of sequence.
PS: this one took me a little bit longer because I did not have sufficient time to test it in the last months. Next one will follow more quickly :-)