Прошиваем esp8266 прошивкой esp8266_milight_hub и управляем светодиодной лентой из HomeAssistant
MiLight — это множество лампочек и контроллеров для led лент.
esp8266_milight_hub — это прошивка для esp8266, которая превращает есп в milight хаб и позволяющая управлять всеми устройствами milight, включая пульты
Для управления всеми этими устройствами нужен хаб, который стоит в два раза дороже чем есп, и он не поддерживает mqtt. Есть хаб в виде ночника и в виде коробка, очень похожего на rgb контроллер, только чуть больше размером.
В HomeAssistant есть поддержка MiLight, но управляться все это добро будет по протоколу UDP, тогда как прошивка esp8266_milight_hub позволяет управлять и через UDP и через MQTT
Итак, нам нужна esp8266, в моем случае Nodemcu v2, и радиомодуль NRF24L01
Схема подключения:


Далее, чтобы прошить есп, скачаем свежую прошивку esp8266_milight_hub
Когда прошивка будет завершена, есп перезагрузится в режиме точки доступа, у меня это ESP5439838
Подключаемся, переходим по адресу 192.168.4.1 и вводим данные своей сети wifi

После есп перезагрузится, и найдя присвоенный ей ip адрес мы попадаем в веб интерфейс:

Чтобы добавить новую лампочку или контроллер, нужно в течении 1-5 сек после включения его в сеть нажать кнопку «+ Pair» в Milight Hub, предварительно выбрав группу, тип, и введя номер, например 1.
В Settings > MQTT вводим данные брокера, а в графах MQTT topic pattern и MQTT state topic pattern пишем:
MQTT topic pattern:
milight/:device_id/:device_type/:group_id
milight/states/:device_id/:device_type/:group_id
Сохраняем.
Если все управляется из webUI Milight Hub то можно переходить к настройке в HomeAssistant.
В коде уже прописаны комментарии по добавлению:
добавить в lights.yaml:
# Тест MiLight
- name: milight_test_strip
# The command topic is derived by substituting real values for the
# tokens in the setting mqtt_topic_pattern (e.g., "rgb_cct" for
# ":device_type"):
# ______________ Device ID
# ________ Device Type
# | | ___ Group ID
# | | |
# v v v
command_topic: milight/0x1/rgb_cct/1
# This is the same structure as above, but for the setting
# mqtt_state_topic_pattern. esp8266_milight_hub sends state updates
# to this topic.
state_topic: milight/states/0x1/rgb_cct/1
# Use a YAML anchor for common settings so we can just reference
# them for other lights.
<<: &MILIGHT_PARAMS
platform: mqtt
schema: json
color_temp: true
rgb: true
brightness: true
effect: true
effect_list:
- white_mode
- night_mode
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
Думаю, тут и так все ясно.
Скорость реагирования можно посмотреть на видео:




В чем преимущество MQTT в отличии от UPD ? Обратная связь?
Преимущества в возможности подключения к любым хабам, поддерживающих mqtt.
В оригинальной статье схема подключения немного отличается:
D2 (GPIO4) — CE
Какая модель контроллера использовалась для статьи?
FUT039
Спасибо, буду пробовать
Готово — завелось))
Отлично ?
Добрый день подскажите к данному контроллеру возможно подключить обычную rgb ленту,за ране спасибо!
Конечно можно. Только в ha будут доступны для управления ещё и теплый/холодный белый, которых не будет по факту. Если это не смущает, а так, лучше подобрать контроллер под определенные нужды, в вашем случае rgb.
Пробую подключать не работает даже не загорается.
Для контроллера не важно, какую ленту вы подключаете. Можно даже 5 монохромных (белых) подключить и будут светить. Это просто каналы. Вот только неудобно будет управлять. Если даже не горит, проверьте питание, соединения, тип ленты и прочее.
Добрый день. Подскажите я же правильно понимаю что можно таким образом к алисе подключить если выставить её в интернет и использовать навык с http запросами?
Здравствуйте, теоретически да. Но точно не знаю, проверять нужно
Сейчас интеграция в Home Assistant совсем простая.
Пробую сейчас настроить новым способом. После настройки mqtt перестает каким-то образом принимать, передавать команды. Раньше светодиод мигал при приеме команты, сейчас вообще не горит. Хотя в HA все появилось, но не реагирует на нажатия. Причем появился только выключатель, без изменения цветов и прочего. Что не так делаю?