You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,21 +8,20 @@ ESPHome yaml files for AirGradient devices to maintain the research and accuracy
8
8
9
9
## [Configuration](/configuration.md)
10
10
11
+
## [Calibration](/calibration.md)
12
+
11
13
## Breaking Changes
12
14
13
15
* 5.0.0 is a major version upgrade as switching to esp-idf is not fully supported via OTA. Highly recommend doing one USB flash of 5.0.0 and later to the AirGradient ONE and OpenAir devices to reformat the storage to support esp-idf. Future updates can be done Over-The-Air without issue.
14
16
* If not done, the device is likely to reboot at some point and switch to the standby partition, returning to a version prior to 5.0.0
15
17
*[Seeing an Old Firmware Version After Update? Here's Why & How to Fix It · Issue #1821 · Blackymas/NSPanel_HA_Blueprint](https://github.com/Blackymas/NSPanel_HA_Blueprint/issues/1821)
16
18
*[Read/Write bootloader, partition table and any partition via OTA by angelnu · Pull Request #5535 · esphome/esphome](https://github.com/esphome/esphome/pull/5535)
17
-
* Aware of errors in the logs stating `esp_task_wdt_reconfigure(615): Invalid arguments`
* 5.0.0 switches ONE and OpenAir models (based on ESP32) to the esp-idf framework, freeing up some memory and allowing other advanced features such as bluetooth_proxy and esp32_improv. If the previous Arduino framework is desired, change the board to `airgradient_esp32-c3_board-arduino.yaml`
20
-
* If attempting to add BT and BLE support, may need to remove the captive_portal package to free up enough space [Issue #115](https://github.com/MallocArray/airgradient_esphome/issues/115)
21
19
22
20
## Changes
23
21
24
-
* Added optional package for using LED bar on AirGradient ONE to reflect TVOC values
25
-
* Added examples of Home Assistant automation to disable the display and LED at a scheduled time in configuration.md
22
+
* Added optional substitutions to implement batch-specific PM2.5 corrections using values provided by AirGradient
23
+
[See details in the packages.md file under the PMS5003 section.](packages.md#sensor_pms5003yaml)
24
+
* Restored logging to default values as it no longer repeats messages about components taking too long to complete
26
25
27
26
## Features
28
27
@@ -68,4 +67,5 @@ Many added features can be found in HomeAssistant by going to Settings>Devices a
68
67
69
68
More features are planned to be added to this repo
70
69
71
-
-[ ] PMS5003 model specific correction algorithms
70
+
-[X] PMS5003 model specific correction algorithms
71
+
-[ ] Deprecate Extended Life packages and use a substitution to allow for adjusting update_interval
This algorithm is applied by default to all PMS5003(t) sensors in this repository. If it is desired to not apply this and instead use raw values from the sensors, replace the package file with the one ending with `_uncorrected.yaml`
9
+
10
+
## Batch Specific PM2.5 Calibration
11
+
12
+
AirGradient detected that PMS5003 sensors after 2023-10-30 used a different manufacturer calibration that results in lower PM2.5 values under low concentrations. AirGradient has developed an algorithm and tested values to correct these values when they are less than 31 ug/m3
13
+
14
+
In this repo, 2 substitution values can be adjusted to apply the calibration. In the main YAML file for the device, add a substitutions item and the follow parameters if not already present.
15
+
16
+
```yaml
17
+
substitutions:
18
+
pm_2_5_scaling_factor: '1'
19
+
pm_2_5_intercept: '0'
20
+
```
21
+
22
+
Adjust the scaling factor and intercept specific to your requirements. The values from AirGradient can be found in the AirGradient Dashboard site under Hardware>Advanced Settings>PM 2.5
23
+
24
+
Under "Special formulas by specific batch" select a batch that matches the label on the sensor inside of your AirGradient, and take note of the `Scaling Factor` and `Offset` values to copy to the ESPHome YAML file.
25
+
26
+
Refer to the AirGradient page for the most current values, and they are planning on adding device specific formulas in the future
## Temperature and Humidity Calibration for Open Air Outdoor monitors
38
+
39
+
The algorithm from AirGradient for the PMS5003T sensors used in the Open Air for both Temperature and Humidity are applied by default. If it is desired to not apply this and instead use raw values from the sensors, replace the package file with the one ending with `_uncorrected.yaml`
Copy file name to clipboardExpand all lines: packages.md
+41-1Lines changed: 41 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -61,7 +61,7 @@ binary_sensor:
61
61
For devices that use the ESP32-C3 the CPU clock can be lowered from default 160
62
62
MHz to 80 MHz to save power. The higher default clock is not needed for the
63
63
calculations that even the AirGradient One by default has to do to interact
64
-
with all the sernsors, display, LEDs and so on. If you suspect this causes
64
+
with all the sensors, display, LEDs and so on. If you suspect this causes
65
65
problems, look at the ESPHome log or enable the `diagnostic_esp32.yaml` package
66
66
and look at "Loop Time".
67
67
@@ -199,6 +199,14 @@ By default collects readings every second. Since this device has a limited lifes
199
199
Collects readings every 2 minutes by default, but can be modified by adding an entry under substitutions, ensuring the value is surrounded by double quotes
200
200
`pm_update_interval: "2min"`
201
201
202
+
Can also apply batch or device specific correction formulas. See [calibration.md](calibration.md) for more details.
203
+
204
+
```yaml
205
+
substitutions:
206
+
pm_2_5_scaling_factor: '1'
207
+
pm_2_5_intercept: '0'
208
+
```
209
+
202
210
## sensor_pms5003t_2_extended_life.yaml
203
211
204
212
Configures a second Plantower PMS5003T sensor when 2 are installed, such as the Open Air Model O-1PPT. Reports PM2.5, Temperature, and Humidity.
@@ -212,6 +220,14 @@ By default collects readings every second. Since this device has a limited lifes
212
220
Collects readings every 2 minutes by default, but can be modified by adding an entry under substitutions, ensuring the value is surrounded by double quotes
213
221
`pm_update_interval: "2min"`
214
222
223
+
Can also apply batch or device specific correction formulas. See [calibration.md](calibration.md) for more details.
224
+
225
+
```yaml
226
+
substitutions:
227
+
pm_2_5_scaling_factor: '1'
228
+
pm_2_5_intercept: '0'
229
+
```
230
+
215
231
## sensor_pms5003t_2.yaml
216
232
217
233
Configures a second Plantower PMS5003T sensor when 2 are installed, such as the Open Air Model O-1PPT. Reports PM 2.5, Temperature, and Humidity.
@@ -231,6 +247,14 @@ By default collects readings every second. Since this device has a limited lifes
231
247
Collects readings every 2 minutes by default, but can be modified by adding an entry under substitutions, ensuring the value is surrounded by double quotes
232
248
`pm_update_interval: "2min"`
233
249
250
+
Can also apply batch or device specific correction formulas. See [calibration.md](calibration.md) for more details.
251
+
252
+
```yaml
253
+
substitutions:
254
+
pm_2_5_scaling_factor: '1'
255
+
pm_2_5_intercept: '0'
256
+
```
257
+
234
258
## sensor_pms5003t_uncorrected.yaml
235
259
236
260
Configures a Plantower PMS5003T sensor. Reports PM 2.5, Temperature, and Humidity.
@@ -243,6 +267,14 @@ Configures a Plantower PMS5003T sensor. Reports PM 2.5, Temperature, and Humidi
243
267
244
268
Also applies a compensation algorithm from AirGradient to correct temperature and humidity readings when used inside of the Open Air enclosure
245
269
270
+
Can also apply batch or device specific correction formulas. See [calibration.md](calibration.md) for more details.
271
+
272
+
```yaml
273
+
substitutions:
274
+
pm_2_5_scaling_factor: '1'
275
+
pm_2_5_intercept: '0'
276
+
```
277
+
246
278
## sensor_pms5003_uncorrected.yaml
247
279
248
280
Configures a Plantower PMS5003 sensor using raw values from the sensor
0 commit comments