Skip to content

Commit 0265a2e

Browse files
committed
Update full configs and compiled .bin
1 parent 1f99a6a commit 0265a2e

10 files changed

+88
-52
lines changed

airgradient-basic.bin

16 Bytes
Binary file not shown.

airgradient-one.bin

32 Bytes
Binary file not shown.

airgradient-open-air-o-1ppt.bin

32 Bytes
Binary file not shown.

airgradient-open-air-o-1pst.bin

16 Bytes
Binary file not shown.

airgradient-pro.bin

16 Bytes
Binary file not shown.

full_config/ag-basic.yaml

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
substitutions:
2-
config_version: 4.0.0
2+
config_version: 4.0.1
33
co2_offset: '0'
44
name: ag-basic
55
friendly_name: AG Basic
@@ -10,7 +10,7 @@ esphome:
1010
name_add_mac_suffix: false
1111
project:
1212
name: mallocarray.airgradient
13-
version: 4.0.0
13+
version: 4.0.1
1414
min_version: 2024.6.0
1515
on_boot:
1616
- priority: 200.0
@@ -134,18 +134,24 @@ sensor:
134134
device_class: pm25
135135
filters:
136136
- lambda: !lambda |-
137+
float result = 0.0;
137138
if (x == 0.0) {
138-
return 0.0;
139+
result = 0.0;
139140
} else if (x < 30.0) {
140-
return((0.524 * x) - (0.0862 * id(humidity).state) + 5.75);
141+
result = (0.524 * x) - (0.0862 * id(humidity).state) + 5.75;
141142
} else if (x < 50.0) {
142-
return((0.786 * (x / 20 - 3/2) + 0.524 * (1 - (x / 20 - 3/2))) * x - (0.0862 * id(humidity).state) + 5.75);
143+
result = (0.786 * (x / 20 - 3/2) + 0.524 * (1 - (x / 20 - 3/2))) * x - (0.0862 * id(humidity).state) + 5.75;
143144
} else if (x < 210.0) {
144-
return((0.786 * x) - (0.0862 * id(humidity).state) + 5.75);
145+
result = (0.786 * x) - (0.0862 * id(humidity).state) + 5.75;
145146
} else if (x < 260.0) {
146-
return((0.69 * (x / 50 - 21/5) + 0.786 * (1 - (x / 50 - 21/5))) * x - (0.0862 * id(humidity).state * (1 - (x / 50 - 21/5))) + (2.966 * (x / 50 - 21/5)) + (5.75 * (1 - (x / 50 - 21/5))) + (8.84 * pow(10,-4) * pow(x,2) * (x / 50 - 21/5)));
147+
result = (0.69 * (x / 50 - 21/5) + 0.786 * (1 - (x / 50 - 21/5))) * x - (0.0862 * id(humidity).state * (1 - (x / 50 - 21/5))) + (2.966 * (x / 50 - 21/5)) + (5.75 * (1 - (x / 50 - 21/5))) + (8.84 * pow(10,-4) * pow(x,2) * (x / 50 - 21/5));
147148
} else {
148-
return(2.966 + (0.69 * x) + (8.84 * pow(10,-4) * pow(x,2)));
149+
result = 2.966 + (0.69 * x) + (8.84 * pow(10,-4) * pow(x,2));
150+
}
151+
if (result <= 0.0) {
152+
return 0.0;
153+
} else {
154+
return result;
149155
}
150156
disabled_by_default: false
151157
force_update: false

full_config/ag-one.yaml

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
substitutions:
2-
config_version: 4.0.0
2+
config_version: 4.0.1
33
co2_offset: '0'
44
voc_learning_time_offset_hours: '12'
55
nox_learning_time_offset_hours: '12'
@@ -16,7 +16,7 @@ esphome:
1616
name_add_mac_suffix: false
1717
project:
1818
name: mallocarray.airgradient
19-
version: 4.0.0
19+
version: 4.0.1
2020
min_version: 2024.6.0
2121
on_boot:
2222
- priority: 200.0
@@ -146,18 +146,24 @@ sensor:
146146
device_class: pm25
147147
filters:
148148
- lambda: !lambda |-
149+
float result = 0.0;
149150
if (x == 0.0) {
150-
return 0.0;
151+
result = 0.0;
151152
} else if (x < 30.0) {
152-
return((0.524 * x) - (0.0862 * id(humidity).state) + 5.75);
153+
result = (0.524 * x) - (0.0862 * id(humidity).state) + 5.75;
153154
} else if (x < 50.0) {
154-
return((0.786 * (x / 20 - 3/2) + 0.524 * (1 - (x / 20 - 3/2))) * x - (0.0862 * id(humidity).state) + 5.75);
155+
result = (0.786 * (x / 20 - 3/2) + 0.524 * (1 - (x / 20 - 3/2))) * x - (0.0862 * id(humidity).state) + 5.75;
155156
} else if (x < 210.0) {
156-
return((0.786 * x) - (0.0862 * id(humidity).state) + 5.75);
157+
result = (0.786 * x) - (0.0862 * id(humidity).state) + 5.75;
157158
} else if (x < 260.0) {
158-
return((0.69 * (x / 50 - 21/5) + 0.786 * (1 - (x / 50 - 21/5))) * x - (0.0862 * id(humidity).state * (1 - (x / 50 - 21/5))) + (2.966 * (x / 50 - 21/5)) + (5.75 * (1 - (x / 50 - 21/5))) + (8.84 * pow(10,-4) * pow(x,2) * (x / 50 - 21/5)));
159+
result = (0.69 * (x / 50 - 21/5) + 0.786 * (1 - (x / 50 - 21/5))) * x - (0.0862 * id(humidity).state * (1 - (x / 50 - 21/5))) + (2.966 * (x / 50 - 21/5)) + (5.75 * (1 - (x / 50 - 21/5))) + (8.84 * pow(10,-4) * pow(x,2) * (x / 50 - 21/5));
159160
} else {
160-
return(2.966 + (0.69 * x) + (8.84 * pow(10,-4) * pow(x,2)));
161+
result = 2.966 + (0.69 * x) + (8.84 * pow(10,-4) * pow(x,2));
162+
}
163+
if (result <= 0.0) {
164+
return 0.0;
165+
} else {
166+
return result;
161167
}
162168
disabled_by_default: false
163169
force_update: false
@@ -799,7 +805,7 @@ display:
799805
lambda: !lambda |-
800806
it.printf(0, 0, id(open_sans_14), "ID:");
801807
it.printf(128, 0, id(open_sans_14), TextAlign::TOP_RIGHT, "%s", get_mac_address().c_str());
802-
it.printf(0, 21, id(open_sans_14), "Config Ver: 4.0.0");
808+
it.printf(0, 21, id(open_sans_14), "Config Ver: 4.0.1");
803809
it.printf(0, 42, id(open_sans_14), "AG One");
804810
- id: summary1
805811
lambda: !lambda |-
@@ -1259,9 +1265,9 @@ binary_sensor:
12591265
then:
12601266
- logger.log:
12611267
format: Toggling display betwen C and F
1262-
tag: main
12631268
args: []
12641269
level: DEBUG
1270+
tag: main
12651271
- switch.toggle:
12661272
id: display_in_f
12671273
invalid_cooldown: 1s
@@ -1274,9 +1280,9 @@ binary_sensor:
12741280
then:
12751281
- logger.log:
12761282
format: Starting manual CO2 calibration
1277-
tag: main
12781283
args: []
12791284
level: DEBUG
1285+
tag: main
12801286
- senseair.background_calibration:
12811287
id: senseair_s8
12821288
- delay: 70s

full_config/ag-open-air-o-1ppt.yaml

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
substitutions:
2-
config_version: 4.0.0
2+
config_version: 4.0.1
33
voc_learning_time_offset_hours: '12'
44
nox_learning_time_offset_hours: '12'
55
name: ag-open-air-o-1ppt
@@ -11,7 +11,7 @@ esphome:
1111
name_add_mac_suffix: false
1212
project:
1313
name: mallocarray.airgradient
14-
version: 4.0.0
14+
version: 4.0.1
1515
min_version: 2024.6.0
1616
on_boot:
1717
- priority: 200.0
@@ -236,18 +236,24 @@ sensor:
236236
accuracy_decimals: 0
237237
state_class: measurement
238238
lambda: !lambda |-
239+
float result = 0.0;
239240
if (id(pm_2_5_raw).state == 0.0) {
240-
return 0.0;
241+
result = 0.0;
241242
} else if (id(pm_2_5_raw).state < 30.0) {
242-
return((0.524 * id(pm_2_5_raw).state) - (0.0862 * id(humidity).state) + 5.75);
243+
result = (0.524 * id(pm_2_5_raw).state) - (0.0862 * id(humidity).state) + 5.75;
243244
} else if (id(pm_2_5_raw).state < 50.0) {
244-
return((0.786 * (id(pm_2_5_raw).state / 20 - 3/2) + 0.524 * (1 - (id(pm_2_5_raw).state / 20 - 3/2))) * id(pm_2_5_raw).state - (0.0862 * id(humidity).state) + 5.75);
245+
result = (0.786 * (id(pm_2_5_raw).state / 20 - 3/2) + 0.524 * (1 - (id(pm_2_5_raw).state / 20 - 3/2))) * id(pm_2_5_raw).state - (0.0862 * id(humidity).state) + 5.75;
245246
} else if (id(pm_2_5_raw).state < 210.0) {
246-
return((0.786 * id(pm_2_5_raw).state) - (0.0862 * id(humidity).state) + 5.75);
247+
result = (0.786 * id(pm_2_5_raw).state) - (0.0862 * id(humidity).state) + 5.75;
247248
} else if (id(pm_2_5_raw).state < 260.0) {
248-
return((0.69 * (id(pm_2_5_raw).state / 50 - 21/5) + 0.786 * (1 - (id(pm_2_5_raw).state / 50 - 21/5))) * id(pm_2_5_raw).state - (0.0862 * id(humidity).state * (1 - (id(pm_2_5_raw).state / 50 - 21/5))) + (2.966 * (id(pm_2_5_raw).state / 50 - 21/5)) + (5.75 * (1 - (id(pm_2_5_raw).state / 50 - 21/5))) + (8.84 * pow(10,-4) * pow(id(pm_2_5_raw).state,2) * (id(pm_2_5_raw).state / 50 - 21/5)));
249+
result = (0.69 * (id(pm_2_5_raw).state / 50 - 21/5) + 0.786 * (1 - (id(pm_2_5_raw).state / 50 - 21/5))) * id(pm_2_5_raw).state - (0.0862 * id(humidity).state * (1 - (id(pm_2_5_raw).state / 50 - 21/5))) + (2.966 * (id(pm_2_5_raw).state / 50 - 21/5)) + (5.75 * (1 - (id(pm_2_5_raw).state / 50 - 21/5))) + (8.84 * pow(10,-4) * pow(id(pm_2_5_raw).state,2) * (id(pm_2_5_raw).state / 50 - 21/5));
249250
} else {
250-
return(2.966 + (0.69 * id(pm_2_5_raw).state) + (8.84 * pow(10,-4) * pow(id(pm_2_5_raw).state,2)));
251+
result = 2.966 + (0.69 * id(pm_2_5_raw).state) + (8.84 * pow(10,-4) * pow(id(pm_2_5_raw).state,2));
252+
}
253+
if (result <= 0.0) {
254+
return 0.0;
255+
} else {
256+
return result;
251257
}
252258
disabled_by_default: false
253259
force_update: false
@@ -394,18 +400,24 @@ sensor:
394400
accuracy_decimals: 0
395401
state_class: measurement
396402
lambda: !lambda |-
403+
float result = 0.0;
397404
if (id(pm_2_5_2_raw).state == 0.0) {
398-
return 0.0;
405+
result = 0.0;
399406
} else if (id(pm_2_5_2_raw).state < 30.0) {
400-
return((0.524 * id(pm_2_5_2_raw).state) - (0.0862 * id(humidity).state) + 5.75);
407+
result = (0.524 * id(pm_2_5_2_raw).state) - (0.0862 * id(humidity).state) + 5.75;
401408
} else if (id(pm_2_5_2_raw).state < 50.0) {
402-
return((0.786 * (id(pm_2_5_2_raw).state / 20 - 3/2) + 0.524 * (1 - (id(pm_2_5_2_raw).state / 20 - 3/2))) * id(pm_2_5_2_raw).state - (0.0862 * id(humidity).state) + 5.75);
409+
result = (0.786 * (id(pm_2_5_2_raw).state / 20 - 3/2) + 0.524 * (1 - (id(pm_2_5_2_raw).state / 20 - 3/2))) * id(pm_2_5_2_raw).state - (0.0862 * id(humidity).state) + 5.75;
403410
} else if (id(pm_2_5_2_raw).state < 210.0) {
404-
return((0.786 * id(pm_2_5_2_raw).state) - (0.0862 * id(humidity).state) + 5.75);
411+
result = (0.786 * id(pm_2_5_2_raw).state) - (0.0862 * id(humidity).state) + 5.75;
405412
} else if (id(pm_2_5_2_raw).state < 260.0) {
406-
return((0.69 * (id(pm_2_5_2_raw).state / 50 - 21/5) + 0.786 * (1 - (id(pm_2_5_2_raw).state / 50 - 21/5))) * id(pm_2_5_2_raw).state - (0.0862 * id(humidity).state * (1 - (id(pm_2_5_2_raw).state / 50 - 21/5))) + (2.966 * (id(pm_2_5_2_raw).state / 50 - 21/5)) + (5.75 * (1 - (id(pm_2_5_2_raw).state / 50 - 21/5))) + (8.84 * pow(10,-4) * pow(id(pm_2_5_2_raw).state,2) * (id(pm_2_5_2_raw).state / 50 - 21/5)));
413+
result = (0.69 * (id(pm_2_5_2_raw).state / 50 - 21/5) + 0.786 * (1 - (id(pm_2_5_2_raw).state / 50 - 21/5))) * id(pm_2_5_2_raw).state - (0.0862 * id(humidity).state * (1 - (id(pm_2_5_2_raw).state / 50 - 21/5))) + (2.966 * (id(pm_2_5_2_raw).state / 50 - 21/5)) + (5.75 * (1 - (id(pm_2_5_2_raw).state / 50 - 21/5))) + (8.84 * pow(10,-4) * pow(id(pm_2_5_2_raw).state,2) * (id(pm_2_5_2_raw).state / 50 - 21/5));
407414
} else {
408-
return(2.966 + (0.69 * id(pm_2_5_2_raw).state) + (8.84 * pow(10,-4) * pow(id(pm_2_5_2_raw).state,2)));
415+
result = 2.966 + (0.69 * id(pm_2_5_2_raw).state) + (8.84 * pow(10,-4) * pow(id(pm_2_5_2_raw).state,2));
416+
}
417+
if (result <= 0.0) {
418+
return 0.0;
419+
} else {
420+
return result;
409421
}
410422
disabled_by_default: false
411423
force_update: false

full_config/ag-open-air-o-1pst.yaml

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
substitutions:
2-
config_version: 4.0.0
2+
config_version: 4.0.1
33
co2_offset: '0'
44
voc_learning_time_offset_hours: '12'
55
nox_learning_time_offset_hours: '12'
@@ -12,7 +12,7 @@ esphome:
1212
name_add_mac_suffix: false
1313
project:
1414
name: mallocarray.airgradient
15-
version: 4.0.0
15+
version: 4.0.1
1616
min_version: 2024.6.0
1717
on_boot:
1818
- priority: 200.0
@@ -237,18 +237,24 @@ sensor:
237237
accuracy_decimals: 0
238238
state_class: measurement
239239
lambda: !lambda |-
240+
float result = 0.0;
240241
if (id(pm_2_5_raw).state == 0.0) {
241-
return 0.0;
242+
result = 0.0;
242243
} else if (id(pm_2_5_raw).state < 30.0) {
243-
return((0.524 * id(pm_2_5_raw).state) - (0.0862 * id(humidity).state) + 5.75);
244+
result = (0.524 * id(pm_2_5_raw).state) - (0.0862 * id(humidity).state) + 5.75;
244245
} else if (id(pm_2_5_raw).state < 50.0) {
245-
return((0.786 * (id(pm_2_5_raw).state / 20 - 3/2) + 0.524 * (1 - (id(pm_2_5_raw).state / 20 - 3/2))) * id(pm_2_5_raw).state - (0.0862 * id(humidity).state) + 5.75);
246+
result = (0.786 * (id(pm_2_5_raw).state / 20 - 3/2) + 0.524 * (1 - (id(pm_2_5_raw).state / 20 - 3/2))) * id(pm_2_5_raw).state - (0.0862 * id(humidity).state) + 5.75;
246247
} else if (id(pm_2_5_raw).state < 210.0) {
247-
return((0.786 * id(pm_2_5_raw).state) - (0.0862 * id(humidity).state) + 5.75);
248+
result = (0.786 * id(pm_2_5_raw).state) - (0.0862 * id(humidity).state) + 5.75;
248249
} else if (id(pm_2_5_raw).state < 260.0) {
249-
return((0.69 * (id(pm_2_5_raw).state / 50 - 21/5) + 0.786 * (1 - (id(pm_2_5_raw).state / 50 - 21/5))) * id(pm_2_5_raw).state - (0.0862 * id(humidity).state * (1 - (id(pm_2_5_raw).state / 50 - 21/5))) + (2.966 * (id(pm_2_5_raw).state / 50 - 21/5)) + (5.75 * (1 - (id(pm_2_5_raw).state / 50 - 21/5))) + (8.84 * pow(10,-4) * pow(id(pm_2_5_raw).state,2) * (id(pm_2_5_raw).state / 50 - 21/5)));
250+
result = (0.69 * (id(pm_2_5_raw).state / 50 - 21/5) + 0.786 * (1 - (id(pm_2_5_raw).state / 50 - 21/5))) * id(pm_2_5_raw).state - (0.0862 * id(humidity).state * (1 - (id(pm_2_5_raw).state / 50 - 21/5))) + (2.966 * (id(pm_2_5_raw).state / 50 - 21/5)) + (5.75 * (1 - (id(pm_2_5_raw).state / 50 - 21/5))) + (8.84 * pow(10,-4) * pow(id(pm_2_5_raw).state,2) * (id(pm_2_5_raw).state / 50 - 21/5));
250251
} else {
251-
return(2.966 + (0.69 * id(pm_2_5_raw).state) + (8.84 * pow(10,-4) * pow(id(pm_2_5_raw).state,2)));
252+
result = 2.966 + (0.69 * id(pm_2_5_raw).state) + (8.84 * pow(10,-4) * pow(id(pm_2_5_raw).state,2));
253+
}
254+
if (result <= 0.0) {
255+
return 0.0;
256+
} else {
257+
return result;
252258
}
253259
disabled_by_default: false
254260
force_update: false

full_config/ag-pro.yaml

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
substitutions:
2-
config_version: 4.0.0
2+
config_version: 4.0.1
33
co2_offset: '0'
44
voc_learning_time_offset_hours: '12'
55
nox_learning_time_offset_hours: '12'
@@ -12,7 +12,7 @@ esphome:
1212
name_add_mac_suffix: false
1313
project:
1414
name: mallocarray.airgradient
15-
version: 4.0.0
15+
version: 4.0.1
1616
min_version: 2024.6.0
1717
on_boot:
1818
- priority: 200.0
@@ -136,18 +136,24 @@ sensor:
136136
device_class: pm25
137137
filters:
138138
- lambda: !lambda |-
139+
float result = 0.0;
139140
if (x == 0.0) {
140-
return 0.0;
141+
result = 0.0;
141142
} else if (x < 30.0) {
142-
return((0.524 * x) - (0.0862 * id(humidity).state) + 5.75);
143+
result = (0.524 * x) - (0.0862 * id(humidity).state) + 5.75;
143144
} else if (x < 50.0) {
144-
return((0.786 * (x / 20 - 3/2) + 0.524 * (1 - (x / 20 - 3/2))) * x - (0.0862 * id(humidity).state) + 5.75);
145+
result = (0.786 * (x / 20 - 3/2) + 0.524 * (1 - (x / 20 - 3/2))) * x - (0.0862 * id(humidity).state) + 5.75;
145146
} else if (x < 210.0) {
146-
return((0.786 * x) - (0.0862 * id(humidity).state) + 5.75);
147+
result = (0.786 * x) - (0.0862 * id(humidity).state) + 5.75;
147148
} else if (x < 260.0) {
148-
return((0.69 * (x / 50 - 21/5) + 0.786 * (1 - (x / 50 - 21/5))) * x - (0.0862 * id(humidity).state * (1 - (x / 50 - 21/5))) + (2.966 * (x / 50 - 21/5)) + (5.75 * (1 - (x / 50 - 21/5))) + (8.84 * pow(10,-4) * pow(x,2) * (x / 50 - 21/5)));
149+
result = (0.69 * (x / 50 - 21/5) + 0.786 * (1 - (x / 50 - 21/5))) * x - (0.0862 * id(humidity).state * (1 - (x / 50 - 21/5))) + (2.966 * (x / 50 - 21/5)) + (5.75 * (1 - (x / 50 - 21/5))) + (8.84 * pow(10,-4) * pow(x,2) * (x / 50 - 21/5));
149150
} else {
150-
return(2.966 + (0.69 * x) + (8.84 * pow(10,-4) * pow(x,2)));
151+
result = 2.966 + (0.69 * x) + (8.84 * pow(10,-4) * pow(x,2));
152+
}
153+
if (result <= 0.0) {
154+
return 0.0;
155+
} else {
156+
return result;
151157
}
152158
disabled_by_default: false
153159
force_update: false
@@ -744,7 +750,7 @@ display:
744750
lambda: !lambda |-
745751
it.printf(0, 0, id(open_sans_14), "ID:");
746752
it.printf(128, 0, id(open_sans_14), TextAlign::TOP_RIGHT, "%s", get_mac_address().c_str());
747-
it.printf(0, 21, id(open_sans_14), "Config Ver: 4.0.0");
753+
it.printf(0, 21, id(open_sans_14), "Config Ver: 4.0.1");
748754
it.printf(0, 42, id(open_sans_14), "AG Pro");
749755
- id: blank
750756
lambda: !lambda |-
@@ -914,8 +920,8 @@ binary_sensor:
914920
- logger.log:
915921
format: Toggling display betwen C and F
916922
level: DEBUG
917-
tag: main
918923
args: []
924+
tag: main
919925
- switch.toggle:
920926
id: display_in_f
921927
invalid_cooldown: 1s
@@ -929,8 +935,8 @@ binary_sensor:
929935
- logger.log:
930936
format: Starting manual CO2 calibration
931937
level: DEBUG
932-
tag: main
933938
args: []
939+
tag: main
934940
- senseair.background_calibration:
935941
id: senseair_s8
936942
- delay: 70s

0 commit comments

Comments
 (0)