Packets are lost when sending commands from the base station to the devices (Class C)

Good afternoon, dear forum members!
I have Chirpstack Server v 3.14.0.
Maybe someone can help me with a rather unusual problem.
There are 5 relays with chip LoRaWAN that need to be turned on or off depending on various parameters.
Accordingly, if I want to turn on 5 relays, I have to send 5 commands to turn on.
When sending 5 commands, some commands do not reach the devices, and each time a different number. But if I send teams with a slight delay, then teams reach 99% of the time.

I would like to clarify a few points:

  1. How can this task be solved?
    Are there any parameters that can be configured to solve this problem?
    In general, is it possible to build such a system using LoRaWAN?
  2. Can this network server queue be generated in Chirpstack? If it can, then how to implement it?

I hope I was able to correctly formulate this problem.
I will be very grateful for any help and support.
Thank you very much in advance.

P.S. The relay operates in Class C mode with external power.
P.P.S. If the problem is solved by sending commands with a delay of a few seconds (5-10), but without loss, then this solution will satisfy me.

Update. Anyone can help me? :slight_smile:

How can this task be solved?
Are there any parameters that can be configured to solve this problem?

    # Class-C settings.
    [network_server.scheduler.class_c]
    # Device downlink lock duration
    #
    # Contains the duration to lock the downlink Class-C transmissions
    # after a preceeding downlink tx (per device).
    device_downlink_lock_duration="2s"

    # Gateway downlink lock duration.
    #
    # Contains the duration to lock the downlink Class-C transmissions
    # after a preceeding downlink tx (per gateway). As half-duplex gateways
    # can't receive when transmitting, this value can be used to avoid that
    # a single gateway will transmit multiple frames directly after each other
    # and because of that, unable to receive any uplinks.
    gateway_downlink_lock_duration="0s"


    # Multicast gateway delay.
    #
    # In case of a multi-gateway multicast downlink, this delay will added to
    # the transmission time of each downlink to avoid collisions between overlapping
    # gateways.
    multicast_gateway_delay="2s"

These are the parameters that you tweak for Class-C.

Hi @brocaar

can we increase gateway_downlink_lock_duration interval 0s to 1s?

gateway_downlink_lock_duration="1s"

We tried to increase these values, but they did not help us.
Can you tell me what values are recommended?
The last parameter is required only if we use broadcast polling.