В данном примере используются:
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
Видео: