I tried to set up my AirGradient ONE v9 with ESPhome but couldn’t get any of the sensors to work. With the shipped firmware it worked with no issues. I’ve taken the pins from here https://www.airgradient.com/images/diy/schematics.png but I can’t get the GPIO addresses correct. I’m assuming the eps32.board
value is correct based on this datasheet https://docs.espressif.com/projects/esp-idf/en/latest/esp32c3/hw-reference/esp32c3/user-guide-devkitm-1.html#id7 where ESP32-C3-MINI
is mentioned. Did someone get this to work?
ESPhome config:
esphome:
name: airgradient-one
friendly_name: AirGradient ONE
esp32:
board: esp32-c3-devkitm-1
framework:
type: arduino
logger:
baud_rate: 0
api:
encryption:
key: !secret api_encryption_key
ota:
password: !secret ota_password
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
domain: .iot
ap:
ssid: airgradient-84fce60259c0
password: cleanair
captive_portal:
http_request:
web_server:
port: 80
enable_private_network_access: false
include_internal: true
ota: false
time:
- platform: homeassistant
uart:
- id: senseair_s8
baud_rate: 9600
rx_pin: GPIO2 # D4
tx_pin: GPIO0 # D3
- id: plantower_pms5003
baud_rate: 9600
rx_pin: GPIO12 # D6
tx_pin: GPIO14 # D5
# Sensirion SGP41
# Sensirion SHT40
i2c:
sda: GPIO4 # D2
scl: GPIO5 # D1
frequency: 100kHz
switch:
- platform: safe_mode
name: Flash Mode (Safe Mode)
disabled_by_default: true
button:
- platform: restart
name: Restart
disabled_by_default: true
sensor:
- platform: wifi_signal
name: "WiFi Signal dB"
id: wifi_signal_db
update_interval: 60s
entity_category: "diagnostic"
# SenseAir S8
- platform: senseair
uart_id: senseair_s8
co2:
name: "CO2 level"
update_interval: 30s
# Plantower PMS5003
- platform: pmsx003
uart_id: plantower_pms5003
type: PMSX003
pm_1_0:
name: "Particulate Matter <1.0µm Concentration"
pm_2_5:
name: "Particulate Matter <2.5µm Concentration"
pm_10_0:
name: "Particulate Matter <10.0µm Concentration"
update_interval: 180s
# Sensirion SHT40
- platform: sht4x
temperature:
name: "Temperature"
id: sht4x_temperature
humidity:
name: "Humidity"
id: sht4x_humidity
update_interval: 30s
# Sensirion SGP41
- platform: sgp4x
voc:
name: "VOC Index"
nox:
name: "NOx Index"
compensation:
temperature_source: sht4x_temperature
humidity_source: sht4x_humidity
update_interval: 30s