
В данном примере используются:
WS2812B: http://alii.pub/5sw9fh
esp8266: http://alii.pub/5sc0eq
Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.
Для начала нам нужно создать новое устройство в ESPHome. Как это сделать описано в этой статье:
Знакомство с ESPHome. Настройка ds18b20 на esp8266. Интеграция ESPHome в Home Assistant.
На официальном сайте ESPHome описаны возможности управления адресными светодиодами. Там же есть и примеры. Ссылка: https://esphome.io/components/light/index.html#light-effects
Ну а теперь давайте попробуем на основе статьи официального сайта, сделать что-то свое рабочее.
Для начала чтоб добавить устройство с подключенными к нему адресными светодиодами в Home Assistant. Нужно прописать следующее:
light:
  - platform: fastled_clockless
    id: light_1
    name: "ws2812"
    restore_mode: ALWAYS_OFF
    chipset: WS2812B
    pin: GPIO14
    num_leds: 24
    rgb_order: GRB
	 
После того как добавили данный блок и добавили интеграцию в Home Assistant. Мы сможет управлять светодиодами как обычной лампочкой. Меняя яркость и цвет свечения.

Теперь давайте добавим возможность включения и выключения светодиодов с кнопки. Это нам даст возможность использовать светодиоды в какой-нибудь подсветке рабочей зоны на кухне например.
Блок управления с кнопки будет выглядеть следующим образом:
binary_sensor:
  - platform: gpio
    pin:
      number: GPIO0
      mode: INPUT_PULLUP
      inverted: True
    name: "Kitchen Light Button"
    on_press:
        then:
            - light.toggle: light_1
	 
После интеграции данного блока в Home Assistant. У нас появится новое устройство “Бинарный сенсор”. И им также можно будет управлять удалено. Правда это совершенно ненужно.
Так как светодиоды у нас адресные и RGB. То на основе их очень удобно делать разные красивые эффекты. Вот как-раз давайте и добавим некоторые из них.
light:
  - platform: fastled_clockless
    id: light_1
    name: "ws2812"
    restore_mode: ALWAYS_OFF
    chipset: WS2812B
    pin: GPIO14
    num_leds: 24
    rgb_order: GRB
    effects:
      - addressable_rainbow:
          name: Rainbow Effect With Custom Values
          speed: 10
          width: 100
      - random:
          name: "Slow Random Effect"
          transition_length: 30s
          update_interval: 30s
      - random:
          name: "Fast Random Effect"
          transition_length: 4s
          update_interval: 5s
      - strobe:
          name: Water Leak Alarm
          colors:
            - state: True
              brightness: 100%
              red: 0%
              green: 0%
              blue: 100%
              duration: 200ms
            - state: False
              duration: 200ms
            - state: True
              brightness: 100%
              red: 0%
              green: 0%
              blue: 100%
              duration: 200ms
            - state: False
              duration: 400ms
              #####
      - flicker:
      - flicker:
          name: Flicker Effect With Custom Values
          alpha: 95%
          intensity: 1.5%
      - addressable_color_wipe:
      - addressable_color_wipe:
          name: Color Wipe Effect With Custom Values
          colors:
            - red: 100%
              green: 100%
              blue: 100%
              num_leds: 1
            - red: 0%
              green: 0%
              blue: 0%
              num_leds: 1
          add_led_interval: 100ms
          reverse: False
      - addressable_scan:
      - addressable_scan:
          name: Scan Effect With Custom Values
          move_interval: 100ms
          scan_width: 1
      - addressable_twinkle:
      - addressable_twinkle:
          name: Twinkle Effect With Custom Values
          twinkle_probability: 5%
          progress_interval: 4ms
      - addressable_random_twinkle:
      - addressable_random_twinkle:
          name: Random Twinkle Effect With Custom Values
          twinkle_probability: 5%
          progress_interval: 32ms
      - addressable_fireworks:
      - addressable_fireworks:
          name: Fireworks Effect With Custom Values
          update_interval: 32ms
          spark_probability: 10%
          use_random_color: false
          fade_out_rate: 120
	 
Все эффекты демонстративно показаны в видео ниже.
Также тут оставляю ссылку для скачивания текстового файла с данными блоками. Так как с сайта могут копироваться блоки с кривыми пробелами.
Скачать можно от сюда: https://disk.yandex.ru/d/keIMrrUFSlikoQ
Видео: