From 96a691f8f488fa063429490d416145f30a6da10f Mon Sep 17 00:00:00 2001 From: Joshua King Date: Tue, 10 Feb 2026 20:58:09 -0500 Subject: [PATCH] added in led controller --- esp32-led-controller.yaml | 158 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 esp32-led-controller.yaml diff --git a/esp32-led-controller.yaml b/esp32-led-controller.yaml new file mode 100644 index 0000000..44b4d74 --- /dev/null +++ b/esp32-led-controller.yaml @@ -0,0 +1,158 @@ +substitutions: + device_name: esp32-led-controller + friendly_name: "LED Strip Controller" + +esphome: + name: ${device_name} + friendly_name: ${friendly_name} + +esp32: + board: esp32-c3-devkitm-1 + framework: + type: arduino + +# 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_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: neopixelbus + type: GRB + variant: WS2812 + pin: GPIO7 + num_leds: 60 + name: "${friendly_name}" + id: led_strip + + # Default color on boot + restore_mode: RESTORE_DEFAULT_OFF + + # Color correction for more accurate colors (optional) + # Uncomment and adjust if your LEDs look too blue/green + # color_correct: [100%, 100%, 100%] + + # 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"