diff --git a/libraries/MySensors/Sensor.cpp b/libraries/MySensors/Sensor.cpp index 7802607..d7605ac 100644 --- a/libraries/MySensors/Sensor.cpp +++ b/libraries/MySensors/Sensor.cpp @@ -122,7 +122,7 @@ void Sensor::findRelay() { distance = 255; uint8_t oldRelayId = relayId; uint8_t retries=0; - while (distance == 255 && retries<3) { + while (distance == 255 && retries FIND_RELAY_RETRIES) { + if (failedTransmissions > FIND_RELAY_AFTER_FAILED_TRANSMISSIONS) { findRelay(); } failedTransmissions++; diff --git a/libraries/MySensors/Sensor.h b/libraries/MySensors/Sensor.h index 54d5e12..82149ea 100644 --- a/libraries/MySensors/Sensor.h +++ b/libraries/MySensors/Sensor.h @@ -50,7 +50,8 @@ #define CURRENT_NODE_PIPE ((uint8_t)1) #define BROADCAST_PIPE ((uint8_t)2) -#define FIND_RELAY_RETRIES 3 +#define FIND_RELAY_RETRIES 2 +#define FIND_RELAY_AFTER_FAILED_TRANSMISSIONS 20 #define MAX_MESSAGE_LENGTH 32