MRK 1500 bad coverage

I am using MRK 1500 to read the water level with ultrasonic sensor
The device is installed in the manhole - bad signal strength

The MRK 1500 will stuck in the loop :
MKRNB/NB.cpp:

13:26:50.510 -> 22
13:26:50.510 -> NB: case: READY_STATE_CHECK_REGISTRATION
13:26:50.510 -> ready() == 0
13:26:50.603 -> NB::ready()
13:26:50.603 -> switch
13:26:50.603 -> NB: _readyState value:
13:26:50.603 -> 23
13:26:50.603 -> NB: case: READY_STATE_WAIT_CHECK_REGISTRATION_RESPONSE
13:26:50.603 -> ready: else
13:26:50.603 -> ready: else/status
13:26:50.603 -> 2
13:26:50.603 -> ready: else: status == 2
13:26:50.603 -> ready() == 0
13:26:50.697 -> NB::ready()
13:26:50.697 -> switch
13:26:50.697 -> NB: _readyState value:
13:26:50.697 -> 22
13:26:50.697 -> NB: case: READY_STATE_CHECK_REGISTRATION
13:26:50.697 -> ready() == 0
13:26:50.789 -> NB::ready()
13:26:50.789 -> switch
13:26:50.789 -> NB: _readyState value:
13:26:50.789 -> 23
13:26:50.789 -> NB: case: READY_STATE_WAIT_CHECK_REGISTRATION_RESPONSE
13:26:50.789 -> ready: else
13:26:50.789 -> ready: else/status
13:26:50.789 -> 2
13:26:50.789 -> ready: else: status == 2
13:26:50.789 -> ready() == 0
13:26:50.881 -> NB::ready()
13:26:50.881 -> switch
13:26:50.881 -> NB: _readyState value:
13:26:50.881 -> 22
13:26:50.881 -> NB: case: READY_STATE_CHECK_REGISTRATION
13:26:50.881 -> ready() == 0
13:26:51.021 -> NB::ready()
13:26:51.021 -> switch
13:26:51.021 -> NB: _readyState value:
13:26:51.021 -> 23
13:26:51.021 -> NB: case: READY_STATE_WAIT_CHECK_REGISTRATION_RESPONSE
13:26:51.021 -> ready: else
13:26:51.021 -> ready: else/status
13:26:51.021 -> 2
13:26:51.021 -> ready: else: status == 2
13:26:51.021 -> ready() == 0
13:26:51.115 -> NB::ready()
13:26:51.115 -> switch
13:26:51.115 -> NB: _readyState value:
13:26:51.115 -> 22
13:26:51.115 -> NB: case: READY_STATE_CHECK_REGISTRATION
13:26:51.115 -> ready() == 0
13:26:51.208 -> NB::ready()
13:26:51.208 -> switch
13:26:51.208 -> NB: _readyState value:
13:26:51.208 -> 23
13:26:51.208 -> NB: case: READY_STATE_WAIT_CHECK_REGISTRATION_RESPONSE
13:26:51.208 -> ready: else
13:26:51.208 -> ready: else/status
13:26:51.208 -> 2
13:26:51.208 -> ready: else: status == 2
13:26:51.208 -> ready() == 0
13:26:51.337 -> NB::ready()
13:26:51.337 -> switch
13:26:51.337 -> NB: _readyState value:
13:26:51.337 -> 22
13:26:51.337 -> NB: case: READY_STATE_CHECK_REGISTRATION
13:26:51.337 -> ready() == 0
13:26:51.394 -> NB::ready()
13:26:51.394 -> switch
13:26:51.394 -> NB: _readyState value:
13:26:51.394 -> 23

and, the device drained too much battery in this case

How to avoid this problem?

Thanks so much