Skip to content

Commit 59e4a63

Browse files
committed
Update README with latest changes, features, and screenshots
1 parent 9a2e13b commit 59e4a63

File tree

8 files changed

+81
-16
lines changed

8 files changed

+81
-16
lines changed

README.md

Lines changed: 81 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,112 @@
11
# AirGradient ESPHome Configurations
22

3-
ESPHome yaml files for an AirGradient DIY devices to send data to HomeAssistant and AirGradient servers while maintaining a similar functionality and look to the official AirGradient Arduino IDE sketch
3+
ESPHome yaml files for AirGradient devices to maintain the research and accuracy of AirGradient sensors, while also gaining the benefits of ESPHome/HomeAssistant for easy to use switches, buttons, configurations, and dashboards. Maintains the ability to also send data to the AirGradient Dashboard, which can also be disabled/removed to keep all data local.
4+
5+
## Breaking Changes
6+
7+
In the 1.x release of these configurations, some breaking changes are introduced
8+
9+
* The devicename has been shortened from "airgradient-*" to "ag-". This matches the Friendly Name convention and results in a shorter overall devicename. You may keep yours at the longer full name if desired, but for the Open Air, the name became longer than allowed
10+
* Substitution entry for "friendly_devicename" has been renamed to "friendly_devicename" to better match it's use case instead of the legacy use
11+
* The name of the CO2 sensor has been changed to just "CO2" from the previous "Senseair S8 CO2" to shorten overall sensor name length and match other sensors that are named for what they are measuring and not the name of the sensor itself. This will result in a new sensor registered to your device in HomeAssistant and the previous one will be "Unavailable". You may need to update any graphs or other dashboard entries with the new CO2 entry
12+
* New switch added to enable/disable Automatic Background Calibration of the Senseair S8 CO2 sensor. If previously disabled, on the first install of the 1.x config, it will be enabled again. Disable after installation if desired.
413

514
## Features
615

7-
- Button to initate a SenseAir S8 CO2 Calibration on demand
8-
- Buttons to enable or disable SenseAir S8 CO2 sensor Automatic Baseline Calibration (ABC)
9-
- Button to view the current S8 ABC interval (confirm if ABC is disabled or enable, which defaults to every 7 days)
16+
Many added features can be found in HomeAssistant by going to Settings>Devices and selecting the AirGradient device. Alternatively, add `web_server:` to the config file to enable a built-in web server on the AirGradient device (No recommended for devices based on the D1 Mini ESP8266)
17+
18+
- Compact single page display by default with all relevant sensor readings
19+
- Enable different pages of information to be shown on the OLED display, or leave the default of a single page with all relevant information
20+
![1703765819874](image/README/1703765819874.png)
21+
- Button to initiate a SenseAir S8 CO2 Calibration on demand
22+
![1703765340274](image/README/1703765340274.png)
23+
- Switch to enable or disable SenseAir S8 CO2 sensor Automatic Baseline Calibration (ABC)
24+
![1704131891282](image/README/1704131891282.png)
25+
- Button to view the current S8 ABC interval (confirm if ABC is disabled or enable, which defaults to every 7 days) View ESPHome logs to see the output of this button
26+
![1703765530959](image/README/1703765530959.png)
1027
- Switch to disable LED output on AirGradient ONE model
1128
- Brightness slider to adjust intensity of AirGradient ONE LED
29+
![1703765585475](image/README/1703765585475.png)
1230
- Switch to toggle display between Fahrenheit and Celsius and persist between reboots
31+
![1703765618154](image/README/1703765618154.png)
1332
- Switch to enable or disable uploading to AirGradient Dashboard via API (Choose to keep data local or also send to AirGradient)
33+
![1703765631637](image/README/1703765631637.png)
1434
- Utilize hardware configuration buttons on AirGradient Pro v3.7 and higher
35+
1536
- Short press (Less than 1 second) - Toggle between F and C on display
1637
- Long press (More than 1 second, less than 5) - Trigger manual CO2 calibration
38+
- Leverage automations in HomeAssistant to turn on the "Blank" page and turn off all other pages to effectively disable the display output. Could also turn off the LED strip or set Brightness to 0 to eliminate output while still collecting sensor data
39+
40+
## Installation
41+
42+
### Standard
43+
44+
Copy the .yaml file from the main folder for your model and place it in the `config` folder of your ESPHome. Make any desired changes to the substitutions to name the devices for your use case
45+
46+
> Note: by default ESPHome only syncs remote repositories that the packages are referencing once per day, so if changes are made to the repository, you may not get the updated config for up to 1 day after it is published. You can remove the contents of the folder config/.esphome/packages to force it to update sooner
47+
48+
#### Using local packages
49+
50+
By default, packages are referencing this GitHub repository, allowing you to do a new Install from ESPHome dashboard to get the latest modifications without downloading other files, but does require an Internet connection. If you wish to have more control over modifications or only reference local files, copy the `packages` folder to your local ESPHome folder and replace `github://MallocArray/airgradient_esphome/packages` with `!include packages`
51+
52+
> Example: `board: github://MallocArray/airgradient_esphome/packages/sensor_s8.yaml` becomes `board: !include packages/sensor_s8.yaml`
53+
54+
### ESPHome Web install
55+
56+
Install a compiled file to your device all with just a browser and USB cable, no ESPHome install required.
57+
58+
Save the appropriate .bin file and go to [https://web.esphome.io/](https://web.esphome.io/) in your browser to connect your ESP device and send the .bin file to it
59+
60+
> In some cases, the device may encounter errors using the web flash tool. Steps to put the device in a special boot flash mode can be found here:
61+
> https://forum.airgradient.com/t/airgradient-one-not-working-after-flashing-with-arduino/1326/4
62+
63+
### Full YAML file
64+
65+
Configuration files reference other packages files, making for a very modular configuration, but requires looking at multiple files to see the entire picture.
66+
67+
The `full_config` folder contains a single yaml file per model that contains the full standalone configuration, created by the `esphome config` command. This adds in all of the optional parameters, so is much longer than the minimum configuration, but the single file contains all needed information to be completely independent from this repo.
68+
69+
Copy the full config file to your personal ESPhome config file and customize as desired, then install to your device.
1770

1871
## Configuration
1972

2073
If all original sensors (PMS5003, Senseair S8, SHT4x) are connected, configuration files should be ready
21-
If some sensors are not installed, comment or remove the associated sections in sensor: and display: and http_request.post:
74+
If some sensors are not installed, comment or remove the associated sections under `packages:`
75+
76+
The PMS5003 sensor by default collects readings every second. Since this device has a limited lifespan, it is possible to extend the life by collecting readings less frequently, although this could impact the accuracy of the readings collected, since there will not be constant airflow through the device when the fan shuts down. To collect readings every 2 minutes, change the line for the pms5003 sensor to `pm_2.5: !include packages/sensor_pms5003_extended_life.yaml`
77+
78+
> See [PMSX003 Particulate Matter Sensor — ESPHome](https://esphome.io/components/sensor/pmsx003.html#sensor-longevity) for more information
2279
23-
To add your wifi SSID and password, add your SSID and password information, per ESPHome specifications
80+
To add your WiFi SSID and password, add your SSID and password information, per ESPHome specifications
2481

2582
```yaml
2683
wifi:
2784
ssid: NachoWiFi
2885
password: 123456123456
2986
```
3087
31-
## Installation
88+
To modify other components, download the modify the associated packages file and modify as desired and update the packages reference to use the !include method mentioned in the Installation section. You may also use the [Extend](https://esphome.io/guides/configuration-types.html#extend) option to make minor modifications without editing the packages file.
89+
90+
Several packages are available in the `packages` folder that can be added or removed as needed. For example, the display package includes configuration for multiple pages of information that can be enabled or disabled, or you may wish to change to the package that has a single page to avoid extra switches in HomeAssistant or if you know you won't be using the other pages and want to save on flash memory space.
3291

33-
Copy the .yaml files and any associated fonts or secrets.yaml files to the config folder in your ESPHome installation.
92+
## Additional Information
3493

35-
Alternatively, save the .bin file and go to [https://web.esphome.io/](https://web.esphome.io/) in your browser to connect your ESP device and send the .bin file to it, without having ESPHome installed
94+
MQTT support has been mentioned in the AirGradient forums several times. ESPHome supports this by adding a few lines to the main yaml file. Add the relevant information for your configuration. Read more about it here:
95+
[https://esphome.io/components/mqtt.html](https://esphome.io/components/mqtt.html)
3696

3797
## Todo list
3898

3999
Several more features are planned to be added to this repo
40100

41-
- Support for Open Air without CO2 sensor
42-
- Explore options for disabling display/LED during certain times (May be deffered to HomeAssistant Automations)
43-
- Switches to enable/disable desired display pages
44-
- Add Display page to show all relevant information in a single page
45-
- https://forum.airgradient.com/t/airgradient-one-customized-mallocarray-esphome-display/1328
46-
- Standardize font on AirGradient Basic display to match Pro
47-
- Add GitHub actions to automatically build updated .bin files as needed
101+
- [ ] Support for Open Air without CO2 sensor
102+
- [ ] Explore options for disabling display/LED during certain times (May be differed to HomeAssistant Automations)
103+
- [ ] Standardize font on AirGradient Basic display to match Pro
104+
- [ ] Reduce number of fonts used in the multi_page package
105+
- [ ] Open Sans displays a consistent height, but some characters, such as F and 0 are mismatched, the left side is double line thick while right is single line
106+
- [ ] Poppins Light is consistent thickness, but numbers are taller than letters, giving a mismatched height
107+
- [ ] Add GitHub actions to automatically build updated .bin files as needed
108+
109+
* [ ] Add support for esp32_improv and improv_serial
110+
* [ ] [https://esphome.io/guides/creators.html](https://esphome.io/guides/creators.html "https://esphome.io/guides/creators.html")
111+
* [ ] Add support for dashboard_import and project information
112+
* [ ] [https://esphome.io/guides/creators.html](https://esphome.io/guides/creators.html "https://esphome.io/guides/creators.html")

image/README/1703765340274.png

3.32 KB
Loading

image/README/1703765530959.png

3.71 KB
Loading

image/README/1703765585475.png

6.74 KB
Loading

image/README/1703765618154.png

3.22 KB
Loading

image/README/1703765631637.png

3.42 KB
Loading

image/README/1703765819874.png

8.68 KB
Loading

image/README/1704131891282.png

3.49 KB
Loading

0 commit comments

Comments
 (0)