Перейти к содержимому

💡 Диммер — LED Strip

🧩 Матрица поддержки плат

4 платы Wi-Fi 2 Zigbee варианта
ПлатаWi-FiZigbee
ESP32 (classic)
ESP32-C3 SuperMini
ESP32-C6 SuperMini (рек.)🐝 C6 Router
ESP32-H2🐝 H2 Router
ESP8266 NodeMCU

🎛️ Типы лент (параметр led_type)

ЗначениеЛентаПлатформа ESPHomeЭффекты
addressable (по умолч.)WS2812B / NeoPixelneopixelbus (RMT/GPIO)6 адресных + Пульсация
pwm_monoОдноцветная (12/24 В через MOSFET)monochromatic + LEDC/PWMПульсация, Стробоскоп, Мерцание
pwm_rgbRGB без адресации (3 MOSFET)rgb + LEDC/PWM+ Случайный цвет

🔌 Подключение

Адресная лента WS2812B (addressable)

СигналGPIOПримечание
DIN (данные)GPIO18через резистор 300–500 Ом
5 Vвнешний БПне от платы при > 10 LED
GNDGNDобщий минус

Одноцветная или RGB через MOSFET (pwm_mono / pwm_rgb)

Каждый канал подключается через N-channel MOSFET (IRLZ44N, STP55NF06L и аналоги):

ESP GPIO ──[10k]── GATE
DRAIN ──── «-» ленты
SOURCE ─── GND (общий с ESP и БП)
«+» ленты ── к «+» БП (12 В или 24 В)
КаналGPIOpwm_monopwm_rgb
Mono / RGPIO18R
GGPIO19G
BGPIO20B

⏰ Расписание

Расписание работает прямо на устройстве — не нужны автоматизации в HA:

  1. В HA откройте устройство → найдите 4 сущности number: час/минута включения и выключения.
  2. Выставьте нужное время (например, включение 08:00, выключение 22:30).
  3. Включите switch.расписание_активно.
  4. Каждые 30 с прошивка проверяет время и переключает ленту.

✨ Эффекты

Эффектaddressablepwm_monopwm_rgb
Радуга
Бегущий огонь
Мерцание (addressable)
Бегающий огонёк
Фейерверк
Пульсация
Стробоскоп
Мерцание (PWM)
Случайный цвет

📁 Структура шаблона

  • Директорияfirmwares/ci-overrides/mihazzzold.espHome_Dimmer/
    • led-strip.yaml.j2
    • Директория_includes/
      • runtime.yaml.j2 Wi-Fi, API, OTA (esp32 + esp8266)
      • logic.yaml.j2 light (addressable/pwm_mono/pwm_rgb), schedule_check
      • maintenance.yaml.j2 расписание (4×number + switch), OTA
      • diagnostics.yaml.j2 uptime, RSSI, heap
    • hardware.yaml схема подключения по платам

📦 Сборка

Окно терминала
# Адресная лента (по умолчанию)
py -3.13 scripts/flasher.py --local `
-f firmwares-external/mihazzzold.espHome_Dimmer/led-strip.yaml.j2 `
--board-profile esp32c6-supermini -a run --port COM5 -y
# Одноцветная PWM
py -3.13 scripts/flasher.py --local `
-f firmwares-external/mihazzzold.espHome_Dimmer/led-strip.yaml.j2 `
--board-profile esp32c6-supermini -a run --port COM5 -y `
--var led_type=pwm_mono
# RGB PWM
py -3.13 scripts/flasher.py --local `
-f firmwares-external/mihazzzold.espHome_Dimmer/led-strip.yaml.j2 `
--board-profile esp32c6-supermini -a run --port COM5 -y `
--var led_type=pwm_rgb

Параметры шаблона

ПараметрПо умолчаниюОписание
led_typeaddressableТип ленты: addressable / pwm_mono / pwm_rgb
led_count30Количество LED (только для addressable)
led_strip_pinиз board_profileПин данных (addressable / mono)
led_r_pin / led_g_pin / led_b_pinиз board_profileПины каналов RGB (только pwm_rgb)
use_ha_timetruefalse = SNTP (автономно без HA)
serial_numberСерийный номер устройства
friendly_name_overrideИмя в Home Assistant

OTA-каналы: mihazzzold.espHome_Dimmer.{esp32,esp32c3,esp32c6,esp8266}.

🏠 Home Assistant

Сущности после добавления устройства:

СущностьТипОписание
light.led_лентаlightУправление (вкл/выкл, яркость, цвет, эффекты)
switch.расписание_активноswitchВключить расписание
number.расписание_включение_ч/минnumberВремя включения
number.расписание_выключение_ч/минnumberВремя выключения

🐝 Zigbee-вариант

Полная реализация (не scaffold) — кластеры On/Off, Level Control, Color Control (HS→RGB), RMT-драйвер, кнопка паринга GPIO9.