Найти тему
Alex Smart Home

Yeelight YLKG07YL Smart Dimmer

Оглавление

(Обновлено 27.10.2023)

Описание

Диммер предназаначен для управления светильниками Yeelight, у которых есть возможность подключения по bluetooth.

Умные лампочки Yeelight к нему не подключаются.

Используется батарейка CR2032.

Работает по Bluetooth.

Внешний вид

Диммер Yeelight YLKG07YL Smart Dimmer (вид спереди)
Диммер Yeelight YLKG07YL Smart Dimmer (вид спереди)
Диммер Yeelight YLKG07YL Smart Dimmer (вид сзади)
Диммер Yeelight YLKG07YL Smart Dimmer (вид сзади)

Возможности

  • Одиночное, двойное, тройное и т.д. нажатие, в принципе нет органичений.
  • Вращение влево / вправо, также определяется угол поворота.
  • Вращение влево / вправо при нажатой клавише, также определяется угол поворота.

Подключение к системе умного дома

Создание шлюза на ESP32

Для добавления самый простой способ это использовать шлюз на базе ESP32.

Микроконтроллер ESP32
Микроконтроллер ESP32

Для этого необходимо установить прошивку ESPHome.

Для первичной заливки прошивки проще подключить через USB, в дальнейшем можно будет выполнять обновление по Wi-Fi.

Прошивка для ESPHome

Для подключения диммера потребуются ключи шифрования bluetooth.

Все необходимые параметры для подключения можно получить по инструкциям (см комментарии ниже).

Пример конфигурационного файла на YAML ниже.

esphome:
name: kitchenroom

esp32:
board: nodemcu-32s
framework:
type: arduino


# Enable logging
logger:

# Enable Home Assistant API
api:
password: "12345678"

ota:
password: "12345678"

wifi:
ssid: "XXXXXXXX"
password: "XXXXXXXX"
use_address: 192.168.0.XX


text_sensor:
- platform: template
name: "dimmer action"
id: my_number_action
lambda: |-
return {"None"};
number:
- platform: template
name: "dimmer button"
id: my_number_button
optimistic: true
min_value: -1
max_value: 100
step: 1
initial_value : 0
- platform: template
name: "dimmer rotate"
id: my_number_rotate
optimistic: true
min_value: -100
max_value: 100
step: 1
initial_value : 0
- platform: template
name: "dimmer press"
id: my_number_press
optimistic: true
min_value: -100
max_value: 100
step: 1
initial_value : 0

external_components:
- source: github://dentra/esphome-components

sensor:
- platform: miot_ylkg0xyl
# String (Required), device MAC-address. F8:24:41:C8:6F:35 5d4531a6f4ee7ac9e2bb1e4e
#mac_address: "$device_mac_address"
mac_address: "F8:24:41:C8:6F:35"
# String, (Optional), device bind key. Will use "xiaomi_account" from "miot" if absent to automaticaly get the bindkey.
#bindkey: "$device_bindkey"
bindkey: "5d4531a6f4ee7ac9e2bb1e4e"
# List, Automation (Optional), The automation activated when you make specified action
on_short_press:
# List, Any automation
- then:
- number.set:
id: my_number_button
value: !lambda "return x;"
- text_sensor.template.publish:
id: my_number_action
state: 'short_press'
- text_sensor.template.publish:
id: my_number_action
state: !lambda 'return {("short_press_"+String(x)).c_str()};'
- text_sensor.template.publish:
id: my_number_action
state: ''
- delay: 500ms
- number.set:
id: my_number_button
value: 0
on_long_press:
- then:
- logger.log: knob was long pressed
- number.set:
id: my_number_button
value: !lambda "return -x;"
- text_sensor.template.publish:
id: my_number_action
state: 'long_press'
- text_sensor.template.publish:
id: my_number_action
state: ''
- delay: 500ms
- number.set:
id: my_number_button
value: 0
on_rotate_left:
- then:
- number.set:
id: my_number_rotate
value: !lambda "return -x;"
- text_sensor.template.publish:
id: my_number_action
state: 'rotate_left'
- text_sensor.template.publish:
id: my_number_action
state: ''
- delay: 500ms
- number.set:
id: my_number_rotate
value: 0
on_rotate_right:
- then:
- number.set:
id: my_number_rotate
value: !lambda "return x;"
- text_sensor.template.publish:
id: my_number_action
state: 'rotate_right'
- text_sensor.template.publish:
id: my_number_action
state: ''
- delay: 500ms
- number.set:
id: my_number_rotate
value: 0
on_rotate_left_pressed:
- then:
- number.set:
id: my_number_press
value: !lambda "return -x;"
- text_sensor.template.publish:
id: my_number_action
state: 'rotate_left_pressed'
- text_sensor.template.publish:
id: my_number_action
state: ''
- delay: 500ms
- number.set:
id: my_number_press
value: 0
on_rotate_right_pressed:
- then:
- number.set:
id: my_number_press
value: !lambda "return x;"
- text_sensor.template.publish:
id: my_number_action
state: 'rotate_right_pressed'
- text_sensor.template.publish:
id: my_number_action
state: ''
- delay: 500ms
- number.set:
id: my_number_press
value: 0

Добавление в Home Assistant

Через некоторое время после прошивки ESP32 в Home Assistant появится компонент для подключения ESPHome.

Пример окна интеграции ESPHome
Пример окна интеграции ESPHome

Автоматизация в Home Assistant

Для работы сценария необходимо использовать разные свойства диммера.

Обработка нажатия кнопки

Ниже пример обработки нажатия кнопки.
Например тройное нажатие возвращает свойства:
dimmer action: short_press_3
dimmer button: 3

При длительном нажатии возвращается свойство:
dimmer action: long_press

Пример обработки тройного нажатия кнопки через свойство "dimmer button"
Пример обработки тройного нажатия кнопки через свойство "dimmer button"
Пример обработки тройного нажатия кнопки через свойство "dimmer action"
Пример обработки тройного нажатия кнопки через свойство "dimmer action"

Обработка вращения кнопки

При вращении возвращается свойство "dimmer action":
rotate_right - вращение не нажатой кнопки вправо
rotate_left - вращение не нажатой кнопки влево
rotate_rigth_pressed - вращение нажатой кнопки вправо
rotate_left_pressed - вращение нажатой кнопки влево

Также в следующих свойствах передается в условных единицах угол поворота:
dimmer_rotate - вращение не нажатой кнопки
dimmer_press - вращение нажатой кнопки

Пример обработки вращения вправо через свойство "dimmer rotate"
Пример обработки вращения вправо через свойство "dimmer rotate"

Также можно обрабатывать само значение "dimmer button", "dimmer rotate", "dimmer press" с целью регулировки на определенное значение.

Например можно изменить яркость на 10% или 20%, в зависимости от того какое значение поступило в этом свойстве.

Пример передачи свойства "dimmer rotate" в автоматизацию или в mqtt
Пример передачи свойства "dimmer rotate" в автоматизацию или в mqtt

Видео по теме