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
Question concernant: Code: d4 Status: Unicast frame does not have a route available but it is buffered for automatic resend #207
Comments
As discussed on #106, we have implemented inside the plugin a resend mechanism when receiving an APS Failure 0xd4 and a New Discovery Route Success is reported. However, I did some test with a Xiaomi Plug, and if I'm unplugin this device and sending a On or Off, then I'm entering in a kind of infinite loop as it looks like the Zigate is finding a new route (outside of this device). As The new Discovery Route 0x8701 is not bringing any reference to an end device, there is no way to filter nor limit. CC: @fairecasoimeme , @Martial83 , @ISO-B |
Warning, You can't use retry packet depending only of this kind of error. |
What do you mean we can retries more than 3 times ? Did we get an error, as from my tests, I didn't and I was more in an infinite loop and receive 0xd4 followed by Success Route Discovery. So again as pointed my Martial, I think we need really to understand what is the meaning of 0xd4? Is the retry relevant to the Application/PLugin, is the retry relevant to the Firmware integration, or simply is the retry not implemented and we have a bugy function. |
I mean that we must not do more than 3-4 retries because we will sature the channel. but nothing forbids doing it (technicaly) and the risk is the infinite loop. It's not good. I think d4 messages is due to route lost due to communication problem. I think we can test the effect of ack message, it's interesting to see the new behaviour. But i'm pessimist with it. I think d4 flood messages is not a firmware bug or other thing. simply a communication issue. But may be i'm false. I can't confirm with 100% |
@fairecasoimeme , in fact in the implementation I did, the retry (or resend) is done only when received a Discovery Route Success ( 0x8701 ), so it was not really flooding the channel. However, @ISO-B mentioned in #106
And in that particular case, I understand this is the App responsability to do the retry. |
I think that in this case, you can do as the documentation say. But don't forget to place a maximum number of retries to avoid infinite loop and flood. |
Bonjour,
Dans mes logs domoticz j'ai souvent ce type de message et l'ordre passé n'arrive pas au destinataire, alors que si je le renouvelle moi-même (à la main ou pas script) l'ordre passe.
Question: qui va faire le resend indiqué, quand ... et peut-on en avoir la trace dans la log?
Cordialement
The text was updated successfully, but these errors were encountered: