09-04-2021 10:55 AM
Hello,
using the BME680 as indoor sensor in office room I can see red marked IAQ accuracy
18:57:52.693 -> 164814095, 24.24, 101317.00, 54.56, 731373.00, 38.85, 3, 24.18, 54.75, 32.37, 529.50, 0.56
18:57:55.732 -> 164817096, 24.24, 101321.00, 54.58, 721204.00, 39.58, 3, 24.18, 54.77, 32.77, 531.06, 0.56
18:57:58.729 -> 164820096, 24.25, 101319.00, 54.62, 729001.00, 36.84, 1, 24.19, 54.79, 31.31, 525.23, 0.55
18:58:01.735 -> 164823096, 24.24, 101319.00, 54.63, 721976.00, 37.78, 1, 24.18, 54.84, 31.81, 527.22, 0.55
18:58:04.726 -> 164826095, 24.25, 101317.00, 54.64, 712818.00, 42.12, 1, 24.19, 54.82, 34.12, 536.47, 0.57
There was no reason for changing the accuracy to 1, I think...
I understand that after a while in little changing environmental conditions the accuracy may fall down to value 2 until it can come back to value 3, but why to value 1?
Value 1 will be there for at least 14 hours, as I can see.
(BTW: it was taking 3 days until the IAQ accuracy was set to 3 - in office room. I know... stable environment ...)
And - does it make sense to (auto-)save this config state (with value 1) and overwrite the existing state 3?
Or can it help to save the old config state and reload it if there are no changes in environmental conditions?
Thanks!
Michael
11-11-2021 05:30 PM
Hello,
thanks, I know these definitions, already working with the sensors since a very long time.
In these older logs was a wide range of IAQ and VOC values. Later the range was normal for a working room, IAQ between 25 and 90.
In any case the described accuracy change was seen.
I have changed not the code and request the values after some more than 3 seconds using a delay in the loop.
After 2 days I see the normal recalibration if the IAQ is going down to 25.00, so that a calibration could be needed. The values are stable.
Will tell you after next days the results and can provide the logs then.
Thanks!
12-14-2021 04:19 AM
Hello micha_pr,
Did it work well on your side?
01-16-2022 10:32 AM
Hi,
no, not solved,... see attached log.
After some time the sensor is going "for ever" (at least for >24 hours) to accuracy = 1 and will not come back.
Before all is normal, it is working at accuracy "3" and sometimes is going o "2" and coming back to "3".
Header of the syslog data:
"Sensor, Timestamp [ms], raw temperature [°C], pressure [hPa], raw relative humidity [%], gas [Ohm], IAQ, IAQ accuracy, temperature [°C], relative humidity [%]"
Code used basically Github:
const uint8_t bsec_config_iaq[] = {
#include "config/generic_33v_3s_4d/bsec_iaq.txt"
};
void setup(void)
{...
iaqSensor1.setConfig(bsec_config_iaq);
iaqSensor2.setConfig(bsec_config_iaq);
checkIaqSensorStatus();
loadState();
...
iaqSensor1.updateSubscription(sensorList, 10, BSEC_SAMPLE_RATE_LP);
iaqSensor2.updateSubscription(sensorList, 10, BSEC_SAMPLE_RATE_LP);
checkIaqSensorStatus();
...
}
void loop(void)
{
...
if (iaqSensor1.run()) {
delay(50); // If new data is available
output = "1, " + String(millis());
output += ", " + String(iaqSensor1.rawTemperature);
output += ", " + String(iaqSensor1.pressure);
output += ", " + String(iaqSensor1.rawHumidity);
output += ", " + String(iaqSensor1.gasResistance);
output += ", " + String(iaqSensor1.iaq);
output += ", " + String(iaqSensor1.iaqAccuracy);
output += ", " + String(iaqSensor1.temperature);
output += ", " + String(iaqSensor1.humidity);
output += ", " + String(iaqSensor1.staticIaq);
output += ", " + String(iaqSensor1.co2Equivalent);
output += ", " + String(iaqSensor1.breathVocEquivalent);
Serial.println(output);
syslog.log(LOG_INFO, output);
updateState();
} else {
checkIaqSensorStatus();
}
if (iaqSensor2.run()) {
delay(50);// If new data is available
output = "2, " + String(millis());
output += ", " + String(iaqSensor2.rawTemperature);
output += ", " + String(iaqSensor2.pressure);
output += ", " + String(iaqSensor2.rawHumidity);
output += ", " + String(iaqSensor2.gasResistance);
output += ", " + String(iaqSensor2.iaq);
output += ", " + String(iaqSensor2.iaqAccuracy);
output += ", " + String(iaqSensor2.temperature);
output += ", " + String(iaqSensor2.humidity);
output += ", " + String(iaqSensor2.staticIaq);
output += ", " + String(iaqSensor2.co2Equivalent);
output += ", " + String(iaqSensor2.breathVocEquivalent);
Serial.println(output);
syslog.log(LOG_INFO, output);
updateState();
} else {
checkIaqSensorStatus();
}
delay(3000);
}
Maybe you have any idea?
In this time I restart the ESP32, if a very long time the accuracy is "1", then it is going back after some time to "3" (reading before the config state)
Thanks!
Michael
01-17-2022 08:49 AM
Hello micha_pr,
Let's check and give you feedback later.
01-18-2022 10:17 AM
Hello micha_pr,
We have checked the data log, there's nothing wrong with data.
IAQ accuracy drops to 1 may because of sensor lacking of stimuli.
Gas data curve is really smooth, that may have caused the change of IAQ accuracy.
You could try to open the windows or put a glass of wine next to sensor, check if IAQ accuracy would goes up to 3.