Created
December 29, 2020 02:22
-
-
Save seanlinmt/e3d0650dde335d47f5c6e4750bf1f622 to your computer and use it in GitHub Desktop.
esp32 esphome
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
esphome: | |
name: livingroom | |
platform: ESP32 | |
board: esp-wrover-kit | |
platformio_options: | |
board_build.partitions: min_spiffs.csv | |
i2c: | |
sda: 21 | |
scl: 22 | |
scan: True | |
uart: | |
rx_pin: 3 | |
baud_rate: 9600 | |
globals: | |
- id: iaq_index | |
type: int | |
restore_value: no | |
initial_value: '0' | |
sensor: | |
- platform: pmsx003 | |
type: PMSX003 | |
pm_1_0: | |
name: "Livingroom PM1.0" | |
pm_2_5: | |
name: "Livingroom PM2.5" | |
pm_10_0: | |
name: "Livingroom PM10.0" | |
- platform: bme280 | |
temperature: | |
name: "Livingroom Temperature" | |
id: temp | |
oversampling: 16x | |
pressure: | |
name: "Livingroom Pressure" | |
id: pressure | |
humidity: | |
name: "Livingroom Humidity" | |
id: humi | |
address: 0x76 | |
update_interval: 60s | |
- platform: ccs811 | |
eco2: | |
name: "Livingroom eCO2" | |
id: eco2 | |
tvoc: | |
name: "Livingroom TVOC" | |
id: tvoc | |
address: 0x5A | |
temperature: temp | |
humidity: humi | |
update_interval: 60s | |
text_sensor: | |
- platform: template | |
name: "Livingroom IAQ" | |
icon: "mdi:air-filter" | |
lambda: |- | |
id(iaq_index) = 0; | |
/* | |
* Transform indoor humidity values to IAQ points according to Indoor Air Quality UK: | |
* http://www.iaquk.org.uk/ | |
*/ | |
if (id(humi).state < 10 or id(humi).state > 90) { | |
id(iaq_index) += 1; | |
} | |
else if (id(humi).state < 20 or id(humi).state > 80) { | |
id(iaq_index) += 2; | |
} | |
else if (id(humi).state < 30 or id(humi).state > 70) { | |
id(iaq_index) += 3; | |
} | |
else if (id(humi).state < 40 or id(humi).state > 60) { | |
id(iaq_index) += 4; | |
} | |
else if (id(humi).state >= 40 and id(humi).state <= 60) { | |
id(iaq_index) += 5; | |
} | |
/* | |
* Transform eCO2 values to IAQ points according to Indoor Air Quality UK: | |
* http://www.iaquk.org.uk/ | |
*/ | |
if (id(eco2).state <= 600) { | |
id(iaq_index) += 5; | |
} | |
else if (id(eco2).state <= 800) { | |
id(iaq_index) += 4; | |
} | |
else if (id(eco2).state <= 1500) { | |
id(iaq_index) += 3; | |
} | |
else if (id(eco2).state <= 1800) { | |
id(iaq_index) += 2; | |
} | |
else if (id(eco2).state > 1800) { | |
id(iaq_index) += 1; | |
} | |
/* | |
* Transform TVOC values to IAQ points according to German environmental guidelines: | |
* https://www.repcomsrl.com/wp-content/uploads/2017/06/Environmental_Sensing_VOC_Product_Brochure_EN.pdf | |
*/ | |
if (id(tvoc).state <= 65) { | |
id(iaq_index) += 5; | |
} | |
else if (id(tvoc).state <= 220) { | |
id(iaq_index) += 4; | |
} | |
else if (id(tvoc).state <= 660) { | |
id(iaq_index) += 3; | |
} | |
else if (id(tvoc).state <= 2200) { | |
id(iaq_index) += 2; | |
} | |
else if (id(tvoc).state > 2200) { | |
id(iaq_index) += 1; | |
} | |
/* | |
* Transform IAQ index to human readable text according to Indoor Air Quality UK: | |
* http://www.iaquk.org.uk/ | |
*/ | |
ESP_LOGD("main", "Current IAQ index %d", id(iaq_index)); | |
if (id(iaq_index) <= 6) { | |
return {"Unhealty"}; | |
} | |
else if (id(iaq_index) <= 9) { | |
return {"Poor"}; | |
} | |
else if (id(iaq_index) <= 12) { | |
return {"Moderate"}; | |
} | |
else if (id(iaq_index) <= 14) { | |
return {"Good"}; | |
} | |
else if (id(iaq_index) > 14) { | |
return {"Excellent"}; | |
} | |
return {}; | |
update_interval: 60s | |
wifi: | |
ssid: "SSID" | |
password: "PASSWORD" | |
#manual_ip: | |
# static_ip: 192.168.1.21 | |
# gateway: 192.168.1.1 | |
# subnet: 255.255.255.0 | |
# Enable fallback hotspot (captive portal) in case wifi connection fails | |
ap: | |
ssid: "Livingroom Fallback Hotspot" | |
password: "xjxJrdi9BFEi" | |
captive_portal: | |
# Enable logging | |
logger: | |
# Enable Home Assistant API | |
api: | |
ota: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment