airgradienthq / arduino

Firmware of open-source hardware air quality monitors AirGradient ONE (indoor) and AirGradient Open Air (outdoor).
https://www.airgradient.com/documentation/
Other
218 stars 115 forks source link

PM compensation receiving temperature instead of RH #234

Closed GuilhermeZimeo closed 2 months ago

GuilhermeZimeo commented 2 months ago

Hello, I was currently reviewing where the PM compensation is applied throughout the code, and found something weird:

The script AgValue.cpp is calling the compensate method of the pms5003t objects by passing the temperature as second argument instead of the relative humidity. This seems to happen to all calls throughout that script, except for those related to pms5003, as below:

https://github.com/airgradienthq/arduino/blob/master/src/AgValue.cpp#L133-L136 https://github.com/airgradienthq/arduino/blob/master/src/AgValue.cpp#L174 https://github.com/airgradienthq/arduino/blob/master/src/AgValue.cpp#L215 https://github.com/airgradienthq/arduino/blob/master/src/AgValue.cpp#L256 https://github.com/airgradienthq/arduino/blob/master/src/AgValue.cpp#L294 https://github.com/airgradienthq/arduino/blob/master/src/AgValue.cpp#L335 https://github.com/airgradienthq/arduino/blob/master/src/AgValue.cpp#L377

This seems to have been introduced in this commit: https://github.com/airgradienthq/arduino/commit/4b2a5f55400d67aa0d33a289f1adc625c43b4c08#diff-895add7ed334cb3f9057e5fcac8bd90d55016c4968fa98b42dd8a1e697d1df02

I also double checked the definition in the PMS5003T.cpp and PMS5003T.h scripts, but there it seems to be correct: it rather expects the humidity value instead.

Could you please double check this?

pnt325 commented 2 months ago

@GuilhermeZimeo Thank for your report. I have add ne commit for that fix. And soon release int in new version.