Firmware 3.1.11 Rollout

We will soon roll out the new firmware version 3.1.11 to all monitors that have OTA capability.

Improvements in 3.1.11:

  • Display of AirGradient ONE shows the corrected PM values if a correction value has been set on the AirGradient dashboard
  • Improved internal readings of sensor values with moving average
  • Updated AQI values to 2024 version
  • Fixed some wrong LED bar thresholds
  • Optimized colors on LED bar
  • Added additional parameters to local server and payload (e.g. PM0.5 count)

You can already now test this new version. To do this, go to your Place Settings, Firmware and select version 3.1.11.

Please note that it might take up to one hour for the firmware to arrive. In case you notice any issue, please let us know.

4 Likes

My display is still reading zero on two different AG Ones, even though the dashboard is showing a non-zero value. Firmware is updated to 3.1.11 on both.

Hi @Nainokami

Do you happen to set configurationControl value to local ? Or are you using Home Assistant integration? If this is the case, please follow instructions to update correction locally here: arduino/docs/local-server.md at master · airgradienthq/arduino · GitHub.

@Samuel_AirGradient Could you please provide more details?

  1. Did I understand correctly?
    The only way to have corrected values in Home Assistant is to apply local correction manually.
    The new firmware will NOT detect Plantower version and NOT apply the corresponding correction automatically.

  2. Did I understand correctly?
    There is no way to either apply or see currently set local correction in Home Assistant. The only way is to use curl with local server API.

  3. From the instruction:

If the monitor is set up on the AirGradient dashboard, it will also receive the configuration parameters from there. In case you do not want this, please set configurationControl to local. In case you set it to cloud and want to change it to local, you need to make a factory reset.

I connected all my monitors to dashboard first. Then I connected them to Home Assitant and changed configuration source from “cloud” to “local” in device options in Home Assitant with no factory reset.
Nothing seems to work wrong. Do I need to do a factory reset and not connect the monitors to dashboard to apply local correction?

  1. Is there any explanation how to determine if I need EPA 2021 correction to be applied or not?

Hi @aleyush ,

  1. Yes. For now, we cannot set the correction configuration through Home Assistant, but the integration will be updated soon in the future. Unfortunately, there’s no way firmware able to identify the plantower sensor batch number, you need to do it manually, please see the instruction on this article Fix Miscalibrated PMS Sensors

  2. As per 1st points, for now yes we cannot see or set local configuration using Home Assistant. Although, to get current configuration, you can access the url directly from your browser search bar. Monitor url format: http://airgradient_<monitor-serial-number>.local/config

  3. You don’t have to do factory reset or anything. You can just update the correction configuration while configurationControl value still set to local, by using curl from the instructions on our github local-server docs (or any other tools you prefer).

  4. The rule of thumb, yes you should apply EPA 2021 correction. You can read more about it on our blog here Does the EPA Correction Algorithm for Wildfire Smoke PM<sub>2.5</sub> Developed for PurpleAir Work for AirGradient Monitors?

Hope it answer your questions. Please let us know if you have any more question, we’re happy to help!

1 Like

Yes, I am using Home Assistant. As you instructed I applied the corrections in the config with the following response when I GET the config:

curl --location -X GET ‘http://airgradient_SERIAL.local/config’  :heavy_check_mark:  813  08:48:33
{“country”:“TH”,“pmStandard”:“ugm3”,“ledBarMode”:“pm”,“abcDays”:8,“tvocLearningOffset”:12,“noxLearningOffset”:12,“mqttBrokerUrl”:"",“temperatureUnit”:“c”,“configurationControl”:“local”,“postDataToAirGradient”:true,“ledBarBrightness”:25,“displayBrightness”:1,“offlineMode”:false,“model”:“I-9PSL-DE”,“offlineMode”:null,“offlineMode”:null,“monitorDisplayCompensatedValues”:false,“corrections”:{“pm02”:{“correctionAlgorithm”:“slr_PMS5003_20231030”,“slr”:{“intercept”:0,“scalingFactor”:0.02838,“useEpa2021”:true}}}}%

I am, however, not seeing the expected result on my monitor display. It is still showing zero for PM2.5 even though the dashboard is showing 2.3. I also tried with “monitorDisplayCompensatedValues”:true with the same result. What am I missing?

Could you please also post your results from:

http://airgradient_serial.local/measures/current

So that we see the data that is used to calculate the corrected value.

To all the people who reads this and apply the new firmware corrections, please also let us know if it works.

I want to understand better how widespread are the issues above.

Man, I really wish the correction algorithms were processed locally on each device. This would greatly simplify having the Display, the Dashboard, and any local API requests to all be in sync naturally, rather than having to wait for new modifications to each one to have the most accurate data

1 Like

The algorithms are processed locally and you can persistently set them with local PUT requests as well. It just takes the home assistant integration a bit longer to roll this out, so currently the easiest way is to get it through our dashboard but it will also come to HA.

It would be nice to fix the documentation that says I need to make factory reset.

Why isn’t it a default value? As I can see in dashboard, default is not using this correction.

Just updated my 2 ONE and 1 Open Air to 3.1.11.
All three configured to use local configuration source.
Used curl to set “epa_2011” correction for Open Air and "slr_PMS5003_20231218" for ONE.
Checked with browser /config url to be sure configuration is saved.
Applied the same corrections in dashboard.

Open Air PM 2.5
Seems to work well. Except HA shows rounded integer values.
5.3 in dashboard
5 in HA
/measures/current from browser:


/config:

ONE #1 PM 2.5
Problems with local values.
4.6 in dashboard
0 on device screen
0 in HA
/measures/current from browser:


/config:

ONE #2 PM 2.5
the same as the other one.

Seems to be reading zero, even though dashboard is reading above 2 for pm2.5

pm01":0,“pm02”:0,“pm10”:0,“pm01Standard”:0,“pm02Standard”:0,“pm10Standard”:0,“pm003Count”:253.17,“pm005Count”:111.33,“pm01Count”:0,“pm02Count”:0,“pm50Count”:0,“pm10Count”:0,“atmp”:17.02,“atmpCompensated”:17.02,“rhum”:47.42,“rhumCompensated”:47.42,“pm02Compensated”:0,“rco2”:454,“tvocIndex”:19,“tvocRaw”:33452.92,“noxIndex”:1,“noxRaw”:15917.92,“boot”:909,“bootCount”:909,“wifi”:-74,“ledMode”:“pm”,“serialno”:“SERIAL”,“firmware”:“3.1.11”,“model”:“I-9PSL”}

We think we identified the issue.

It seems there is a bug if the EPA correction is checked. We will provide an update very soon.

@Achim_AirGradient

Should we disable correction algo in the dashboard now with the new version ? I am a bit confused on what is now applied from firmware and what should we apply in the dashboard to get the data as close as possible to reality.

At the moment the algorithms are only calculated and applied “on the fly” but not saved in the database. So there is no risk involved to have prevalent corrupted data.
I expect we have this bug fixed soon.