Added ESPHome config for livingroom air quality sensor. Removed IR stuff in the process.
This commit is contained in:
parent
24c5c1a1ff
commit
aae955a085
236
esphome/livingroom.yaml
Normal file
236
esphome/livingroom.yaml
Normal file
@ -0,0 +1,236 @@
|
|||||||
|
esphome:
|
||||||
|
name: livingroom
|
||||||
|
platform: ESP32
|
||||||
|
board: nodemcu-32s
|
||||||
|
|
||||||
|
on_boot:
|
||||||
|
then:
|
||||||
|
- light.turn_on:
|
||||||
|
id: co2_light
|
||||||
|
red: 0%
|
||||||
|
green: 100%
|
||||||
|
blue: 9%
|
||||||
|
- delay: 1.5s
|
||||||
|
- light.turn_on:
|
||||||
|
id: co2_light
|
||||||
|
red: 100%
|
||||||
|
green: 75%
|
||||||
|
blue: 0%
|
||||||
|
- delay: 1.5s
|
||||||
|
- light.turn_on:
|
||||||
|
id: co2_light
|
||||||
|
red: 100%
|
||||||
|
green: 0%
|
||||||
|
blue: 0%
|
||||||
|
- delay: 1.5s
|
||||||
|
- light.turn_on:
|
||||||
|
id: co2_light
|
||||||
|
red: 100%
|
||||||
|
green: 75%
|
||||||
|
blue: 0%
|
||||||
|
- delay: 1.5s
|
||||||
|
- light.turn_on:
|
||||||
|
id: co2_light
|
||||||
|
red: 0%
|
||||||
|
green: 100%
|
||||||
|
blue: 9%
|
||||||
|
- text_sensor.template.publish:
|
||||||
|
id: co2_warn
|
||||||
|
state: "grün"
|
||||||
|
- text_sensor.template.publish:
|
||||||
|
id: pm25_warn
|
||||||
|
state: "grün"
|
||||||
|
|
||||||
|
wifi:
|
||||||
|
ssid: "Voltage-legacy"
|
||||||
|
password: !secret voltage_legacy_psk
|
||||||
|
use_address: livingroom.home
|
||||||
|
power_save_mode: high
|
||||||
|
fast_connect: on
|
||||||
|
|
||||||
|
# Enable fallback hotspot (captive portal) in case wifi connection fails
|
||||||
|
ap:
|
||||||
|
ssid: "Wohnzimmer Fallback Hotspot"
|
||||||
|
password: !secret fallback_psk
|
||||||
|
|
||||||
|
captive_portal:
|
||||||
|
|
||||||
|
# Enable logging
|
||||||
|
logger:
|
||||||
|
level: DEBUG
|
||||||
|
|
||||||
|
# Enable Home Assistant API
|
||||||
|
api:
|
||||||
|
password: !secret api
|
||||||
|
|
||||||
|
# Enable over-the-air updates
|
||||||
|
ota:
|
||||||
|
password: !secret ota
|
||||||
|
|
||||||
|
# Initialize I²C
|
||||||
|
i2c:
|
||||||
|
- id: bus_a
|
||||||
|
sda: 13
|
||||||
|
scl: 16
|
||||||
|
scan: true
|
||||||
|
|
||||||
|
# Initialize LEDC GPIOs
|
||||||
|
output:
|
||||||
|
- platform: ledc
|
||||||
|
pin: GPIO17
|
||||||
|
id: led_red
|
||||||
|
- platform: ledc
|
||||||
|
pin: GPIO18
|
||||||
|
id: led_green
|
||||||
|
max_power: 50%
|
||||||
|
- platform: ledc
|
||||||
|
pin: GPIO19
|
||||||
|
id: led_blue
|
||||||
|
|
||||||
|
# Define RGB mode for LED
|
||||||
|
light:
|
||||||
|
- platform: rgb
|
||||||
|
id: co2_light
|
||||||
|
name: "CO2 Status LED"
|
||||||
|
red: led_red
|
||||||
|
green: led_green
|
||||||
|
blue: led_blue
|
||||||
|
internal: true
|
||||||
|
|
||||||
|
# Initialize UART for Vindriktning sensor
|
||||||
|
uart:
|
||||||
|
rx_pin: GPIO26
|
||||||
|
baud_rate: 9600
|
||||||
|
|
||||||
|
# Create text sensor to represent CO2 LED warn state (somewhat redundant)
|
||||||
|
text_sensor:
|
||||||
|
- platform: template
|
||||||
|
name: "Wohnzimmer CO2 Warnstufe"
|
||||||
|
id: co2_warn
|
||||||
|
- platform: template
|
||||||
|
name: "Wohnzimmer Feinstaub Warnstufe"
|
||||||
|
id: pm25_warn
|
||||||
|
|
||||||
|
sensor:
|
||||||
|
# WiFi signal strength
|
||||||
|
- platform: wifi_signal
|
||||||
|
name: "WiFi Signalstärke"
|
||||||
|
update_interval: 60s
|
||||||
|
# SCD30 CO2 + temperature + humidity sensor
|
||||||
|
# * air quality category 0: LED is purple, sensor needs calibration (<380ppm)
|
||||||
|
# • air quality category 1: LED is green (380-800ppm)
|
||||||
|
# • air quality category 2: LED is yellow (900-1200ppm)
|
||||||
|
# • air quality category 3: LED is orange/amber (1200 to 1600ppm)
|
||||||
|
# • air quality category 4: LED is red (1600-2000ppm)
|
||||||
|
- platform: scd30
|
||||||
|
i2c_id: bus_a
|
||||||
|
co2:
|
||||||
|
name: "Wohnzimmer CO2"
|
||||||
|
id: co2_value
|
||||||
|
accuracy_decimals: 1
|
||||||
|
on_value_range:
|
||||||
|
- below: 380
|
||||||
|
then:
|
||||||
|
- text_sensor.template.publish:
|
||||||
|
id: co2_warn
|
||||||
|
state: "Kalibrierung nötig"
|
||||||
|
- light.turn_on:
|
||||||
|
id: co2_light
|
||||||
|
red: 75%
|
||||||
|
green: 0%
|
||||||
|
blue: 100%
|
||||||
|
- above: 380
|
||||||
|
below: 800
|
||||||
|
then:
|
||||||
|
- text_sensor.template.publish:
|
||||||
|
id: co2_warn
|
||||||
|
state: "grün"
|
||||||
|
- light.turn_on:
|
||||||
|
id: co2_light
|
||||||
|
red: 0%
|
||||||
|
green: 100%
|
||||||
|
blue: 0%
|
||||||
|
- above: 800
|
||||||
|
below: 1200
|
||||||
|
then:
|
||||||
|
- text_sensor.template.publish:
|
||||||
|
id: co2_warn
|
||||||
|
state: "gelb"
|
||||||
|
- light.turn_on:
|
||||||
|
id: co2_light
|
||||||
|
red: 100%
|
||||||
|
green: 100%
|
||||||
|
blue: 0%
|
||||||
|
- above: 1200
|
||||||
|
below: 1600
|
||||||
|
then:
|
||||||
|
- text_sensor.template.publish:
|
||||||
|
id: co2_warn
|
||||||
|
state: "orange"
|
||||||
|
- light.turn_on:
|
||||||
|
id: co2_light
|
||||||
|
red: 100%
|
||||||
|
green: 75%
|
||||||
|
blue: 0%
|
||||||
|
- above: 1600
|
||||||
|
then:
|
||||||
|
- text_sensor.template.publish:
|
||||||
|
id: co2_warn
|
||||||
|
state: "rot"
|
||||||
|
- light.turn_on:
|
||||||
|
id: co2_light
|
||||||
|
red: 100%
|
||||||
|
green: 0%
|
||||||
|
blue: 0%
|
||||||
|
temperature:
|
||||||
|
name: "Wohnzimmer Temperatur"
|
||||||
|
accuracy_decimals: 2
|
||||||
|
humidity:
|
||||||
|
name: "Wohnzimmer Luftfeuchtigkeit"
|
||||||
|
accuracy_decimals: 1
|
||||||
|
# SCD30 temp sensor is a bit off
|
||||||
|
temperature_offset: 1.5 °C
|
||||||
|
ambient_pressure_compensation: 1
|
||||||
|
automatic_self_calibration: True
|
||||||
|
address: 0x61
|
||||||
|
update_interval: 60s
|
||||||
|
# Vindriktning particulate matter sensor
|
||||||
|
- platform: pm1006
|
||||||
|
pm_2_5:
|
||||||
|
name: "Wohnzimmer Feinstaub PM 2.5µm"
|
||||||
|
on_value_range:
|
||||||
|
- above: 0
|
||||||
|
below: 35
|
||||||
|
then:
|
||||||
|
- text_sensor.template.publish:
|
||||||
|
id: pm25_warn
|
||||||
|
state: "grün"
|
||||||
|
- above: 35
|
||||||
|
below: 85
|
||||||
|
then:
|
||||||
|
- text_sensor.template.publish:
|
||||||
|
id: pm25_warn
|
||||||
|
state: "orange"
|
||||||
|
- above: 85
|
||||||
|
then:
|
||||||
|
- text_sensor.template.publish:
|
||||||
|
id: pm25_warn
|
||||||
|
state: "rot"
|
||||||
|
# Analog photo diode voltage
|
||||||
|
- platform: adc
|
||||||
|
pin: 32
|
||||||
|
name: "Spannung Photodiode"
|
||||||
|
attenuation: 11db
|
||||||
|
update_interval: 1s
|
||||||
|
internal: true
|
||||||
|
on_value_range:
|
||||||
|
- below: 0.25
|
||||||
|
then:
|
||||||
|
light.turn_on:
|
||||||
|
id: co2_light
|
||||||
|
brightness: 30%
|
||||||
|
- above: 0.4
|
||||||
|
then:
|
||||||
|
light.turn_on:
|
||||||
|
id: co2_light
|
||||||
|
brightness: 60%
|
6
esphome/livingroom/partitions.csv
Normal file
6
esphome/livingroom/partitions.csv
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
nvs, data, nvs, 0x009000, 0x005000,
|
||||||
|
otadata, data, ota, 0x00e000, 0x002000,
|
||||||
|
app0, app, ota_0, 0x010000, 0x1C0000,
|
||||||
|
app1, app, ota_1, 0x1D0000, 0x1C0000,
|
||||||
|
eeprom, data, 0x99, 0x390000, 0x001000,
|
||||||
|
spiffs, data, spiffs, 0x391000, 0x00F000
|
|
Loading…
Reference in New Issue
Block a user