ich bin da bisher noch nicht so der Experte, fange gerade erst mit ESP32 an und habe das einfach nur nachgebaut. Dies ist mein flash-code.
esphome:
name: pyramide
friendly_name: Pyramide
esp32:
board: nodemcu-32s
framework:
type: esp-idf
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "7NXDZiLW+lhgbQW8BLNI+NFe85hiFId0p+6cgqUXWGA="
ota:
- platform: esphome
password: "077a7355df565f1700d2acd564938678"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Pyramide Fallback Hotspot"
password: "MfncFIGkCGs4"
captive_portal:
switch:
- platform: gpio
pin: GPIO2
name: "internal_led1"
restore_mode: ALWAYS_ON
internal: true
- platform: gpio
pin: GPIO16
name: "internal_led1"
restore_mode: ALWAYS_ON
internal: true
light:
- platform: esp32_rmt_led_strip
chipset: WS2812
pin: GPIO5
num_leds: 12
rgb_order: GRB
name: "Sensor LED"
binary_sensor:
- platform: gpio
pin: GPIO26
name: "Sensor Bewegung"
device_class: motion
- platform: gpio
pin: GPIO12
name: "Sensor Licht"
device_class: light
filters:
- invert:
- platform: gpio
pin: GPIO27
name: "Sensor Ton"
device_class: sound
filters:
- invert:
- delayed_off: 2s
sensor:
- platform: adc
pin: GPIO36
name: "Sensor Gas"
- platform: scd4x
co2:
name: "Sensor CO2"
temperature:
name: "Sensor Temperatur"
humidity:
name: "Sensor Luftfeuchtigkeit"
update_interval: 60s
# Altitude compensation for more accurate CO2 measurements
altitude_compensation: "171m" # Replace with the altitude of your area!
i2c:
sda: GPIO21 ##sda Anschluss vom CO2 Sensor
scl: GPIO22 ##scl Anschluss vom CO2 Sensor
scan: true
id: bus_a
output:
- platform: ledc
pin: GPIO14
id: rtttl_out
rtttl:
output: rtttl_out
id: my_rtttl
gain: 80%
button:
- platform: template
name: "CO2 manual calibration (only in fresh air for at least 20min)"
entity_category: "config"
on_press:
then:
- scd4x.perform_forced_calibration:
value: 422
- platform: template
name: "Ok"
on_press:
then:
- rtttl.play: "ok:d=8,o=6,b=120:c"
- platform: template
name: "Error"
on_press:
then:
- rtttl.play: "error:d=8,o=4,b=150:c,c"
- platform: template
name: "Star Wars"
on_press:
then:
- rtttl.play: "star_wars:d=16,o=5,b=100:4e,4e,4e,8c,p,g,4e,8c,p,g,4e,4p,4b,4b,4b,8c6,p,g,4d#,8c,p,g,4e,8p"
- platform: template
name: "Alarm"
on_press:
then:
- rtttl.play: "alarm:d=4,o=5,b=120:p,p,8c,8e,8g,8c6,p,p,8c,8e,8g,8c6"
- platform: template
name: "Positiv"
on_press:
then:
- rtttl.play: "positiv:d=8,o=5,b=110:c6,e6"
- platform: template
name: "New Product"
on_press:
then:
- rtttl.play: "new_product:d=16,o=5,b=120:c,e,g,c6"
- platform: template
name: "Pling"
on_press:
then:
- rtttl.play: "Pling:d=16,o=6,b=140:e6,32p,d6"
- platform: template
name: "MI"
on_press:
then:
- rtttl.play: "mi:d=16,o=6,b=95:32d,32d#,32d,32d#,32d,32d#,32d,32d#,32d,32d,32d#,32e,32f,32f#,32g,g,8p,g,8p,a#,p,c7,p,g,8p,g,8p,f,p,f#,p,g,8p,g,8p,a#,p,c7,p,g,8p,g,8p,f,p,f#,p,a#,g,2d,32p,a#,g,2c#,32p,a#,g,2c,a#5,8c,2p,32p,a#5,g5,2f#,32p,a#5,g5,2f,32p,a#5,g5,2e,d#,8d"
web_server:
port: 80
include_internal: false
# Ermittlung der WLAN-Signalstärke alle 60s
- platform: wifi_signal
name: "WiFi Signal"
id: wifi_signal_db
update_interval: 60s
# WiFi signal Signalstärke in %
- platform: copy
source_id: wifi_signal_db
id: wifi_percent
name: "WiFi Signal Prozent"
filters:
- lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
unit_of_measurement: "%"
bis auf die paar Sound-Werte kann man mE nichts kürzen.
Das Seltsame ist ja vielmehr, daß das Teil 2 Monate lang problemlos funktioniert hat.
Hab’s mir nochmal angeschaut, war gar kein D1mini aber da ist wohl was zu warm geworden …
ist die Frage was ich beim nächsten ESP32 besser machen kann.