homeassistant-config/esphome/sleepingroom.yaml
Commander1024 3903d60c74 Introduced the light component.
Adopted rgb_light.
Added brightness based on photodiode voltage.
Added warn levels for particle dust.
Removed actions out of sensors. Will be replaced by actions based on warn lavels.

All values (brightness / colors / voltage) still uncalibrated.
2021-09-03 17:39:32 +02:00

221 lines
5.0 KiB
YAML

esphome:
name: sleepingroom
platform: ESP32
board: nodemcu-32s
# # Dirty hack, because on_value_range does not trigger green if sensor
# # value is within green range on boot.
# on_boot:
# then:
# - output.set_level:
# id: led_green
# level: 58%
# - output.set_level:
# id: led_red
# level: 0%
# - text_sensor.template.publish:
# id: co2_warn
# state: "grün"
wifi:
ssid: "Voltage-legacy"
password: !secret voltage_legacy_psk
use_address: sleepingroom.home
power_save_mode: high
fast_connect: on
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Schlafzimmer Fallback Hotspot"
password: !secret fallback_psk
captive_portal:
# Enable logging
logger:
# 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
# Example configuration entry
light:
- platform: rgb
id: co2_light
name: "CO2 Status LED"
red: led_red
green: led_green
blue: led_blue
# 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: "Schlafzimmer CO2 Warnstufe"
id: co2_warn
- platform: template
name: "Schlafzimmer Feinstaub Warnstufe"
id: pm25_warn
sensor:
# WiFi signal strength
- platform: wifi_signal
name: "WiFi Signalstärke"
update_interval: 60s
# SCD30 CO2 + Temperature + Humidity Sensor
# • Luftqualität Kategorie 1: die LEDs leuchten grün (bis 800 ppm)
# • Luftqualität Kategorie 2: die LEDs leuchten gelb (900-1200 ppm)
# • Luftqualität Kategorie 3: die LEDs leuchten orange (1200 bis 1600ppm)
# • Luftqualität Kategorie 4: die LEDs leuchten rot (ab 1600ppm)
- platform: scd30
i2c_id: bus_a
co2:
name: "Schlafzimmer CO2"
id: co2_value
accuracy_decimals: 1
on_value_range:
- above: 380
below: 800
then:
- text_sensor.template.publish:
id: co2_warn
state: "grün"
- above: 800
below: 1200
then:
- text_sensor.template.publish:
id: co2_warn
state: "gelb"
- above: 1200
below: 1600
then:
- text_sensor.template.publish:
id: co2_warn
state: "orange"
- above: 1600
then:
- text_sensor.template.publish:
id: co2_warn
state: "rot"
temperature:
name: "Schlafzimmer Temperatur"
accuracy_decimals: 2
humidity:
name: "Schlafzimmer 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
- platform: bmp280
i2c_id: bus_a
temperature:
name: "Schlafzimmer Temperatur alt"
oversampling: 16x
pressure:
name: "Schlafzimmer Luftdruck"
address: 0x76
update_interval: 60s
# Vindriktning particulate matter sensor
- platform: pm1006
pm_2_5:
name: "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.3
then:
light.turn_on:
id: co2_light
brightness: 50%
- above: 0.3
then:
light.turn_on:
id: co2_light
brightness: 100%
# IR Receiver, dumps all received values into serial
remote_receiver:
pin:
number: 23
inverted: True
dump: all
# IR Transmitter
remote_transmitter:
pin: GPIO22
# Infrared remotes use a 50% carrier signal
carrier_duty_percent: 50%
# Temporary test switches
switch:
- platform: template
name: Yamaha Power Button
turn_on_action:
- remote_transmitter.transmit_nec:
address: 0x7E81
command: 0x54AB
- platform: template
name: Samsung Power Button
turn_on_action:
- remote_transmitter.transmit_samsung:
data: 0xE0E040BF
nbits: 32
#script:
# - id: startup_animation
# then:
# - delay: 5s
# -