From ee01b56fb6e4700dac7f578d1ab850a8a377c32f Mon Sep 17 00:00:00 2001 From: Commander1024 Date: Sat, 14 Feb 2026 14:55:43 +0100 Subject: [PATCH] Deprecated diy air quality sensor due to dead ESP32 --- esphome/archive/sleepingroom.yaml | 283 ++++++++++++++++++++++++++++++ 1 file changed, 283 insertions(+) create mode 100644 esphome/archive/sleepingroom.yaml diff --git a/esphome/archive/sleepingroom.yaml b/esphome/archive/sleepingroom.yaml new file mode 100644 index 0000000..01f5c5f --- /dev/null +++ b/esphome/archive/sleepingroom.yaml @@ -0,0 +1,283 @@ +substitutions: + name: "sleepingroom" + friendly_name: "Luftqualität Schlafzimmer" + +esphome: + name: ${name} + friendly_name: ${friendly_name} + name_add_mac_suffix: false + project: + name: sensor.${name} + version: "1.0" + min_version: 2021.9.0 + 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" + +esp32: + board: nodemcu-32s + framework: + type: esp-idf + +wifi: + ssid: "Voltage-legacy" + password: !secret voltage_legacy_psk + use_address: ${name}.home + power_save_mode: high + fast_connect: on + min_auth_mode: WPA2 + + # Enable fallback hotspot (captive portal) in case wifi connection fails + ap: + ssid: "Schlafzimmer Fallback Hotspot" + password: !secret fallback_psk + +captive_portal: + +# Enable logging +logger: + level: DEBUG + +# Enable Home Assistant API +api: + encryption: + key: !secret apikey + +# Enable over-the-air updates +ota: + platform: esphome + 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: + id: uartPM + 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 + # * 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 bis 1600ppm) + # • air quality category 4: LED is red (1600-2000ppm) + - platform: scd30 + i2c_id: bus_a + co2: + name: "Schlafzimmer 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: "Schlafzimmer Temperatur" + accuracy_decimals: 2 + filters: + - offset: -2.5 + humidity: + name: "Schlafzimmer Luftfeuchtigkeit" + accuracy_decimals: 1 + # SCD30 temp sensor is a bit off + ambient_pressure_compensation: 1 + automatic_self_calibration: True + address: 0x61 + update_interval: 10s + # Vindriktning particulate matter sensor + - platform: pm1006 + uart_id: uartPM + 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: 12db + update_interval: 1s + internal: true + on_value_range: + - below: 0.25 + then: + light.turn_on: + id: co2_light + brightness: 30% + - above: 0.5 + then: + light.turn_on: + id: co2_light + brightness: 60% + +# IR Receiver, dumps all received values into serial +remote_receiver: + pin: + number: 23 + inverted: True + dump: all + +# IR Transmitter +remote_transmitter: + non_blocking: True + 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