ONE - TVOC + NOx sensors periodically report zero

Hi, I’ve just got in my ONE v9 and just set it up with Grafana/InfluxDB. I have noticed that for some reason, both the TVOC and NOx sensors intermittently stop reporting, then report zeroes for about 60 seconds before returning to normal.
TVOC

Does anyone happen to know why this might be happening? I flashed the latest version of the firmware from the build instructions and the only modifications I made were to connect to InfluxDB instead of the AirGradient platform.

I would assume this is your device rebooting, as the TVOC and NOx sensors take 90 seconds to warm up when the device boots.

There is some code included that will reboot the device every 5 minutes if it isn’t connected to the wifi to keep it from getting stuck in a state where it can’t report, and I suspect this is happening to you, plus the 90 second warmup of the sensor.

Also note, that both of these sensors are providing an Index value and not a real measure of a concentration, so your graph is misleading. The NOx will sit at 1 unless it starts detecting higher levels, while the TVOC will start at 100 and then go up and down depending on the increase or decrease of TVOC in the air.

@MallocArray Wouldn’t I see the same drop off on my other sensors if the device was rebooting? I appreciate the note about the index values though I didn’t realize that was the unit of measurement.

PM2.5, CO2, and temp report values pretty quick after boot, so you may not see a gap.

If you watch the logs, you may see a message about it waiting 90 seconds for samples from the SGP sensor, or at least ESPHome clearly does that.

Well I guess I wasn’t sitting and watching it for very long when I was setting it up because it does indeed restart after a little while. I’d love to have the ability to disable this feature as I use a different WiFi library to connect to InfluxDB. Where is this timeout implemented?

arduino/examples/ONE_V9/ONE_V9.ino at master · airgradienthq/arduino (github.com)
Line 559 is where it is calling resetWatchdog() which notifies the watchdog it is still alive. If you removed this section for sendToServer() you may have removed it entirely.

You could add resetWatchdog() to your line where it is sending to Graphana/Influx since it needs to have that line ran every 5 minutes(I think) or it will reboot.

2 Likes

This appears to have worked! I’m looking at the longest continuous stretch of readings from that module. I appreciate the help.