Prevent continuous polling on error.
This commit is contained in:
parent
c8b1654e0a
commit
97284fcf87
@ -128,6 +128,7 @@ class UsermodTemperature : public Usermod {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
DEBUG_PRINTLN(F("Sensor NOT found."));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -162,6 +163,7 @@ class UsermodTemperature : public Usermod {
|
|||||||
void loop() {
|
void loop() {
|
||||||
if (!enabled || !sensorFound || strip.isUpdating()) return;
|
if (!enabled || !sensorFound || strip.isUpdating()) return;
|
||||||
|
|
||||||
|
static uint8_t errorCount = 0;
|
||||||
unsigned long now = millis();
|
unsigned long now = millis();
|
||||||
|
|
||||||
// check to see if we are due for taking a measurement
|
// check to see if we are due for taking a measurement
|
||||||
@ -179,7 +181,12 @@ class UsermodTemperature : public Usermod {
|
|||||||
// we were waiting for a conversion to complete, have we waited log enough?
|
// we were waiting for a conversion to complete, have we waited log enough?
|
||||||
if (now - lastTemperaturesRequest >= 750 /* 93.75ms per the datasheet but can be up to 750ms */) {
|
if (now - lastTemperaturesRequest >= 750 /* 93.75ms per the datasheet but can be up to 750ms */) {
|
||||||
readTemperature();
|
readTemperature();
|
||||||
if (getTemperatureC() < -100.0f) lastMeasurement = now - readingInterval + 300; // force new measurement in 300ms
|
if (getTemperatureC() < -100.0f) {
|
||||||
|
if (++errorCount > 10) sensorFound = 0;
|
||||||
|
lastMeasurement = now - readingInterval + 300; // force new measurement in 300ms
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
errorCount = 0;
|
||||||
|
|
||||||
if (WLED_MQTT_CONNECTED) {
|
if (WLED_MQTT_CONNECTED) {
|
||||||
char subuf[64];
|
char subuf[64];
|
||||||
|
Loading…
Reference in New Issue
Block a user