Thank you! Sorry to keep poking away at you, but I finally got all the airgradient data into a dashbord in HA. I vaguely recall reading or hearing that the temperature and humidity module are used to correct/adjust the AQI, but I can’t find where I read or saw that. I have both an Ikea vindstyrka with sensirion hardware and the airgradient one showing that with rising temperature in a controlled space that the aqi also rises as the temperature rises. Should this be the case?
Depending on what code you are using on your AirGradient to send to HA, it may be using the Temp/Hum for a compensation. My ESPHome configuration does for sure. I’m not sure if the Arduino code does or not:
sensor:
- platform: sgp4x
# SGP41 https://esphome.io/components/sensor/sgp4x.html
voc:
name: "VOC Index"
id: voc
nox:
name: "NOx Index"
id: nox
compensation: # Remove this block if no temp/humidity sensor present for compensation
temperature_source: temp
humidity_source: humidity
The AQI should be based on the PM2.5 value over time and shouldn’t have temp/humidity factored in.
The TVOC measurement can take it into consideration, if configured
Ahh, okay. Thanks for that reply. Maybe I’m conflating the terms. So the 0-500 voc index should take into consideration the temperature and humidity?
Correct, this is what can be done, but would have to look at the Arduino code to see if it is configured that way
Looks like there is a function for it in the example code in the sensirion libraries, but i can’t find evidence of it in the airgradient side of the code. I’m looking through more of my charts and it’s pretty clear that the tvoc index (ind40) rises and falls over a 24 hour period with the ambient temperature. The index will dip under 100 down to 20 around 2-3am in the morning and slowly climb back up to 150+ as afternoon approaches. I have the airgradient one in a third bedroom that doesn’t have AC.
I am checking with our firmware developer if we do the temperatur/ humidity correction. If not it will be implemented in the next update.
Does your esphome config for the airgradient one expose raw voc data or just the voc index?
Only the VOC index. It is using the sensor component from the ESPHome project without modification.
The official libraries only report the Indexes as designed.
As far as I know, the raw data is unitles, so only helpful in seeing trends
There are other tuning options available in the ESPHome sensor module to adjust the time of collects data, but out of the box matches the manufacturer default recommendations
Hello @troy, I’m having the exact same feeling with SEN55 and stumble across your post searching for information on the web. For the time being I wrote to Sensirion but had no answer from them yet.
Using documentation available on Sensirion’s web page I’m accesing raw data from the sensor but have no idea how to link that to concentration of VOC or NOx. I’ll let you know if I get any response from Sensirion about this matter, in the mean time I want to ask you if you had any luck gathering more information about this indexes.
In the meantime we have implemented a few things.
On the airgradient dashboard you can now change the TVOC learning offset from 12h to 720h. This will basically make it more behave like an absolute sensor.
We also log the raw signal of the TVOC sensor and this can be exported to a csv file for further analysis.
Hello @Achim_AirGradient, I wanted to confirm whether the compensation based on temperature and RH has been implemented in the firmware? Checking the documentation here (Correction Algorithms) it states N/R for TVOC, but based on your post above it seems this would be relevant?
Answering my own question above, I’ve seen in the public repo that the temperature and relative humidity are set for the sgp41 (arduino/src/Sgp41/Sgp41.cpp at dc261f668dae55ec64829cccddaccb825bd24402 · airgradienthq/arduino · GitHub) so it seems to be used as expected. Also, the formulas implemented are consistent with those originally used in the code by Sensirion (arduino-i2c-sgp41/src/SensirionI2CSgp41.h at 36e600ec61da587d87f03328348838c8bdebb616 · Sensirion/arduino-i2c-sgp41 · GitHub)
Yet another question - I’m still a bit new on the VOC topic, and after reading the discussion above I’m now tempted to switch to 720h rolling average. However, one question I would have here - why is it necessary to have the rolling average?
Maybe I’m missing some important detail in the implementation, but I was wondering whether it would be better to rather take the minimum value observed in the reference period to compute the relative index?
If my TVOC sensor is consistently exposed to VOCs and therefore its readings are consistently increasing whenever windows are closed (I’m starting to observe this behavior here, though still trying to figure out the source), the average will still provide biased results for the relative index, wouldn’t it?
Hi all. Just got my airgradient and new to the discussion. I was similarly disappointed to see how TVOC measurements are handled.
The ENS160 does report an absolute TVOC measurement in ppb by processing their raw sensor data, though they’re also doing some similar baselining and calibration under the hood. Nonetheless, the result is far more useful. I’ve sent an email to ask for more details.
I’m not really convinced by the argument that a MOX sensor fundamentally can’t be used for absolute measurements. It’s a solvable engineering problem. But maybe the cost doesn’t make sense for the markets/margins.
NOx is an interesting one because the dedicated sensors seem to be very expensive ($130+ for an analog sensor that still needs analog processing and an ADC). There is a much cheaper sensor made by Spec Sensors, but it doesn’t seem to correlate well, or even at all, to proper field measurements (see field evaluation by AQMD)
So in this case the index seems to be the best you can do. It’s also more helpful that the index starts at 1, but not having a scale on the measurement makes it somewhat useless as well.
The ind40 values under the analytics page are based on the 0-500 index. However, the ind30 values are Sensirion’s previous measurements (shown in ppb) and these are also visible on the dashboard. You can read more here:
As you can see, these ind30 values go far higher than 500 (please ignore my intermittent data, this monitor moves around a lot with me!).
Turns out they are doing a baseline operation on the output that would negate any long term VOC emissions in the measurements.
Is this for the ind30 or ind40 measurement?
What are the ind30 values exactly? ppb ethanol equivalents? Are they measured exactly without any baseline correction?
I notice my VOC measurement goes up when my force air propane furnace runs - went from 27 at 7am with furnace off all night to 450 after a few hours of having it turning on every half hour or so to heat the house.
Sounds reasonable, propane is a (V)VOC (see Technical Overview of Volatile Organic Compounds | US EPA) so it should be detected. Probably the furnace does not burn 100% of the fuel, so you should expect an increase in VOC. Did the measurements for NOx increase as well?