Why we ask
We use confirmedDateDown to downlink command to a LoRaWAN water-meter, and want to guarantee the command be received.
What we expect
We thought that if device not receive the downlink, server will resent it after next uplink.
When water-meter does not really receive the command, it uplink the normal data to server with none ACK flag.
Then loraserver triggers an ACK event which the acknowledged is set to false, and the queue will be delete.
The loraserver’s log shows:
What we have look
We look into the source code, find that every class A downlink
qi will be set a
TimeoutAfter = now, and when no ACK upload, at next chance this pending qi will be delete.
We think it is designed so.
Back to what we want at the beginning, how can we resent the command using confirmedDateDown automatically?
Or, we can listen to the ACK event and reschedule downlink in case it fail?