playing with the installation_margin network server parameter i’m trying to set the maximum tx power value to a group of devices. Unfortunatly they don’t support TXPowerIndex 0 (i receive nack for it).
After the nack Chirpstack set MinSupportedTXPowerIndex to 1 but i’ve to wait a long time for the new adr request.
So, is it possibile to specify MinSupportedTXPowerIndex = 1 for these devices to have the ack at their first new adr request?
No, this is not possible. I believe this is actually more a “bug” at the device side. The (latest) Regional Parameter specification defines the TXPower table as values relative to the max. TX power supported by the device. Therefore 0 should always be a valid value.
An ADR request does not change the state of the device-session, an ADR answer (ACK or nACK) does. In your case, the device sent a TX power nACK on 0, in which case ChirpStack assumes that value 0 is not supported, increasing the MinSupportedTXPowerIndex to 1.
This looks valid to me The next ADR req. will use a TX Power value of >= 1.
Is it possibile to modify the wrong *SupportedTXPowerIndex values changing the session info from Redis?
There is no API for this and I would avoid making manual modifications. In this case I would recommend to wait until the device “stabilizes”. The MinSupportedTXPowerIndex is exactly implemented for this reason (as is the MaxSupportedTXPowerIndex).
May invalidate the network server algorithm to calculate the next correct TxPowerIndex to transmit to the devices. Isn’t it?
Indeed for devices with these kind of values i cannot see any new adr request.
Another question: technically if there is an adr variation calculated by the network server this should be sent at the first available downlink window? Or are there some timers that delay adr requests to a specific device to avoid too frequent changes?