diff --git a/code/espurna/sensors/BMX280Sensor.h b/code/espurna/sensors/BMX280Sensor.h index d34bcb8e..4af88815 100644 --- a/code/espurna/sensors/BMX280Sensor.h +++ b/code/espurna/sensors/BMX280Sensor.h @@ -89,6 +89,7 @@ class BMX280Sensor : public I2CSensor { _error = SENSOR_ERROR_UNKNOWN_ID; return; } + _error = SENSOR_ERROR_OK; #if BMX280_MODE == 1 forceRead(); diff --git a/code/espurna/sensors/DHTSensor.h b/code/espurna/sensors/DHTSensor.h index b7f0809c..77bd5fc5 100644 --- a/code/espurna/sensors/DHTSensor.h +++ b/code/espurna/sensors/DHTSensor.h @@ -80,6 +80,7 @@ class DHTSensor : public BaseSensor { // Pre-read hook (usually to populate registers with up-to-date data) void pre() { + _error = SENSOR_ERROR_OK; _read(); } diff --git a/code/espurna/sensors/DallasSensor.h b/code/espurna/sensors/DallasSensor.h index 2fa6ec3c..def41ec4 100644 --- a/code/espurna/sensors/DallasSensor.h +++ b/code/espurna/sensors/DallasSensor.h @@ -209,6 +209,11 @@ class DallasSensor : public BaseSensor { return MAGNITUDE_NONE; } + // Pre-read hook (usually to populate registers with up-to-date data) + void pre() { + _error = SENSOR_ERROR_OK; + } + // Current value for slot # index double value(unsigned char index) { diff --git a/code/espurna/sensors/EmonADC121Sensor.h b/code/espurna/sensors/EmonADC121Sensor.h index d96d4aec..70732222 100644 --- a/code/espurna/sensors/EmonADC121Sensor.h +++ b/code/espurna/sensors/EmonADC121Sensor.h @@ -112,6 +112,8 @@ class EmonADC121Sensor : public EmonSensor { last = millis(); #endif + _error = SENSOR_ERROR_OK; + } // Type for slot # index diff --git a/code/espurna/sensors/EmonADS1X15Sensor.h b/code/espurna/sensors/EmonADS1X15Sensor.h index 1a2bef55..da5aab14 100644 --- a/code/espurna/sensors/EmonADS1X15Sensor.h +++ b/code/espurna/sensors/EmonADS1X15Sensor.h @@ -241,6 +241,7 @@ class EmonADS1X15Sensor : public EmonSensor { #endif } last = millis(); + _error = SENSOR_ERROR_OK; } // Current value for slot # index diff --git a/code/espurna/sensors/EmonAnalogSensor.h b/code/espurna/sensors/EmonAnalogSensor.h index 6461cef2..cf96e693 100644 --- a/code/espurna/sensors/EmonAnalogSensor.h +++ b/code/espurna/sensors/EmonAnalogSensor.h @@ -94,6 +94,8 @@ class EmonAnalogSensor : public EmonSensor { last = millis(); #endif + _error = SENSOR_ERROR_OK; + } // Current value for slot # index diff --git a/code/espurna/sensors/MHZ19Sensor.h b/code/espurna/sensors/MHZ19Sensor.h index 201625cb..7e8fa9bc 100644 --- a/code/espurna/sensors/MHZ19Sensor.h +++ b/code/espurna/sensors/MHZ19Sensor.h @@ -197,6 +197,8 @@ class MHZ19Sensor : public BaseSensor { _error = SENSOR_ERROR_OUT_OF_RANGE; } + } else { + _error = SENSOR_ERROR_CRC; } } diff --git a/code/espurna/sensors/SHT3XI2CSensor.h b/code/espurna/sensors/SHT3XI2CSensor.h index 74b29d61..783aba56 100644 --- a/code/espurna/sensors/SHT3XI2CSensor.h +++ b/code/espurna/sensors/SHT3XI2CSensor.h @@ -66,6 +66,8 @@ class SHT3XI2CSensor : public I2CSensor { // Pre-read hook (usually to populate registers with up-to-date data) void pre() { + _error = SENSOR_ERROR_OK; + unsigned char buffer[6]; #if I2C_USE_BRZO diff --git a/code/espurna/sensors/SI7021Sensor.h b/code/espurna/sensors/SI7021Sensor.h index 4ba09987..c0cdba01 100644 --- a/code/espurna/sensors/SI7021Sensor.h +++ b/code/espurna/sensors/SI7021Sensor.h @@ -93,9 +93,9 @@ class SI7021Sensor : public I2CSensor { _error = SENSOR_ERROR_UNKNOWN_ID; if (_chip == 0) return; + _error = SENSOR_ERROR_OK; double value; - _error = SENSOR_ERROR_OK; value = _read(SI7021_CMD_TMP_NOHOLD); if (_error != SENSOR_ERROR_OK) return;