Умный дом в котором я живу. Лампы Xiaomi или дело об исчезнувшем Lan control
Привет, я давненько не писал про умный дом. Причина - я решаю задачки, которые не интересны большинству (биодинамическое освещение, оптимизация работы вентиляции и кондиционирования).
Но тут без объявления войны yeelight отрубил в последней прошивке ( v2.0.6_0041) lan control у моей настольной лампы Xiaomi Mi Smart LED Desk Lamp Pro.
Сделано это разумеется "для безопасности пользователей и по настоятельной просьбе Xiaomi"
Саппорт на форуме пишет, что выпустил версию прошивки, которая решает проблему для написавших им в личку пользователей, но этот квест я не прошел.
Судя по отзывам в интернете это же касается Yeelight Bedside Lamp 2
Если у вас все работает и вы используете локальное управление - решение простое.
Отрубаем доступ в интернет лампам (приведет к потере контроля лампочек в Yeelight и Mihome)
Отрубить лампочкам доступ в интернет (я думаю, это справедливо для всех лампочек Yeelight). Для этого надо знать айпи лампочки и прописать в файрволе правило, запрещающее лампам выход в инетрнрет.
Для микротика это выглядит так :
/ip firewall filter add chain=forward src-address=192.168.x.x action=reject
Далее решение проблемы (проверенs лично на Xiaomi Mi Smart LED Desk Lamp Pro).
1. Без потрошения лампочки и доработки напильником.
1.1 Сбросить лампу (кнопка снизу подставки).
1.2 Сопрягаем лампочку заново в yeelight
1.3 В HA прилетит сообщение, что обнаружено устройство HomeKit и надо его сопрячь.
1.4 Теперь по коду - на подставке лампы ищем вот такой штрихкод
1.5 И вводим циферки в формате xxx-xx-xxxДля нашего примера это 123-45-678
Все, лампа залетела в HA.
Можно закрыть лампе доступ в интернеты во избежание
Вариант 2 (на свой страх и риск и только Xiaomi Mi Smart LED Desk Lamp Pro)
В лампочке стоит контроллер ESP32 (фотки сперты с форума Нome-Аssistant)
Соотвественно цепляем RXD, TXD и GND к USB-UART контроллеру (в моем случае классика cp2102)
Проверяем, что подпаялись правильно:
esptool flash_id
Делаем дамп прошивки
esptool.py -b 115200 --port /dev/ttyUSB0 read_flash 0x00000 0x400000 lamp_backup_4M.bin
В ESPHome cоздаем проект, в котором дописываем в проект прошивки из репозитория https://github.com/richardklingler/yeelight
(на всякий случай оставлю копию здесь)
sensor:Ну и шьемя как обычно - 1-й раз по проводу, далее по OTA
- platform: rotary_encoder
id: rotation
pin_a: GPIO26
pin_b: GPIO27
resolution: 2
on_value:
then:
- if:
condition:
# Провекрка нажатия клавиши при вращении
lambda: 'return id(button).state;'
then:
# Корректировка цветовой температуры
- lambda: |-
auto min_temp = id(light1).get_traits().get_min_mireds();
auto max_temp = id(light1).get_traits().get_max_mireds();
auto cur_temp = id(light1).current_values.get_color_temperature();
auto new_temp = max(min_temp, min(max_temp, cur_temp + (x*20)));
auto call = id(light1).turn_on();
call.set_color_temperature(new_temp);
call.perform();
else:
# Регулировка яркости
- light.dim_relative:
id: light1
relative_brightness: !lambda |-
return x / 10.0;
# Сброс энкодера
- sensor.rotary_encoder.set_value:
id: rotation
value: 0
binary_sensor:
- platform: gpio
id: button
pin:
number: GPIO33
inverted: True
mode: INPUT_PULLDOWN
on_click:
then:
# Установка полной яркости
- if:
condition:
light.is_on: light1
then:
- light.turn_off:
id: light1
else:
- light.turn_on:
id: light1
brightness: 100%
color_temperature: 2700 K
output:
- platform: ledc
pin: GPIO2
id: output_cw
min_power: 0.03
power_supply: power
- platform: ledc
pin: GPIO4
id: output_ww
min_power: 0.03
power_supply: power
power_supply:
- id: power
pin: GPIO12
enable_time: 0s
keep_on_time: 0s
light:
- platform: cwww
id: light1
default_transition_length: 0s
constant_brightness: true
name: "Xiaomi Mi Smart LED Desk Lamp Pro"
cold_white: output_cw
warm_white: output_ww
cold_white_color_temperature: 5000 K
warm_white_color_temperature: 2600 K
Благодарю форум Нome-Аssistant https://community.home-assistant.io/t/hacking-yeelight-fw-en...
За кучу полезной информации для написания прошивки. Кто-то даже грозился выложить проект на гитхаб, но что-то беглый гуглеж не показывает ответа.Репозиторий найден, ссылка в посте
Отдельное спасибо хочется выразить Xiaomi и Yeelight за стимул к написанию свободных прошивок для их продукции.
Умный дом
138 постов2.2K подписчиков