substitutions: device_name: led-controller-polly-a1m friendly_name: "Polly's LED Controller" esphome: name: ${device_name} friendly_name: ${friendly_name} esp32: board: esp32-c3-devkitm-1 framework: type: esp-idf # Enable logging logger: # Enable Home Assistant API api: encryption: key: !secret api_encryption_key # Enable over-the-air updates ota: - platform: esphome password: !secret ota_password wifi: ssid: !secret wifi_iot_ssid password: !secret wifi_password # Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "${friendly_name} Fallback" password: !secret fallback_password captive_portal: # Web server for standalone control (optional, but useful) web_server: port: 80 # LED Light configuration light: - platform: esp32_rmt_led_strip rgb_order: GRB chipset: WS2812 pin: GPIO7 num_leds: 10 name: "${friendly_name}" id: led_strip rmt_channel: 0 # Default color on boot restore_mode: RESTORE_DEFAULT_OFF # Effects - you can enable these for more features! effects: # Basic effects - random: name: "Random" transition_length: 5s update_interval: 7s - strobe: name: "Strobe" colors: - state: true brightness: 100% red: 100% green: 100% blue: 100% duration: 500ms - state: false duration: 250ms - flicker: name: "Flicker" alpha: 95% intensity: 1.5% # Rainbow effects - addressable_rainbow: name: "Rainbow" speed: 10 width: 50 - addressable_color_wipe: name: "Color Wipe" colors: - red: 100% green: 0% blue: 0% num_leds: 1 - red: 0% green: 100% blue: 0% num_leds: 1 - red: 0% green: 0% blue: 100% num_leds: 1 add_led_interval: 100ms reverse: false - addressable_scan: name: "Scan" move_interval: 100ms scan_width: 3 - addressable_twinkle: name: "Twinkle" twinkle_probability: 5% progress_interval: 4ms - addressable_fireworks: name: "Fireworks" update_interval: 32ms spark_probability: 10% use_random_color: true fade_out_rate: 120 # Pulse effect - pulse: name: "Pulse" transition_length: 1s update_interval: 1s # Sensors for monitoring sensor: # WiFi Signal Strength - platform: wifi_signal name: "${friendly_name} WiFi Signal" update_interval: 60s # Uptime - platform: uptime name: "${friendly_name} Uptime" # Text sensors text_sensor: # ESPHome version - platform: version name: "${friendly_name} ESPHome Version" # WiFi info - platform: wifi_info ip_address: name: "${friendly_name} IP Address" ssid: name: "${friendly_name} Connected SSID" # Button to restart ESP32 button: - platform: restart name: "${friendly_name} Restart"