LoRa Mac Node - Dynamically change APP_TX_DUTYCYCLE

For some applications, like Temperature Sensor node, the temperature may not change that quickly, and node may be transmitting same temperature value unnecessarily wasting battery and also data traffic.
Q1.Can we change the logic to only send the data frame if the data is different from the previous set of values, i.e. skipping the send until next APP_TX_DUTYCYCLE?
Q2.Would that cause any node time out at the LoRa server / TTN server?

  1. You are not allowed to send anything before APP_TX_DUTYCYCLE, any time after is alright. You do not need to wait for a multiple of APP_TX_DUTYCYCLE.
  2. No. A node that sends data once every month will still work alright. Even once a year should work but I doubt anyone tested.

Certainly not sending data earlier or before APP_TX_DUTYCYCLE.
So once the OTAA node has joined the network, it stays in “joined” status indefinitely? unless of course we restart the node.

Yes, as long as you retain the LoRaWAN stack state you are fine. If you are able to save and reload it you could even power down and restart the node.

1 Like

Thank you so much! Saving the stack state is a really good idea, I will try to implement that