Найти тему
Пикабу

Умная кухонная подсветка для Home Assistant

Доброго дня. Был у меня проект: подсветка на Arduino. rgbw лента, включалась по датчику движения и через определенное время переходила в режим смены цветов. Работало отлично, нареканий не было. Но захотелось больше свободы в управлении. К тому времени уже был настроен home assistant на raspberry pi. Было решено интегрировать подсветку в HA.

EspHome Подходит для этих задач идеально. Нативная интеграция с HA. Обновление прошивки по воздуху. Редактор прямо из панели HA. Лучше не придумаешь. Останавливал только yaml. Я почему-то был уверен, что это язык только для конфигов. Однако, я сильно заблуждался.

Оказалось, yaml умеет и условия и циклы и переменные. Но в моем случае основа это датчик движения. Весь код лучше посмотреть тут.

binary_sensor:

- platform: gpio.

pin: D0.

name:motion_kitchen".

device_class: motion.

id: motion_kitchen.

on_state:

then:

- if:

condition:

and:

- binary_sensor.is_on:motion_kitchen".

- binary_sensor.is_off:led_strip_off_allways".

then:

switch.turn_on: light_white_on.

- if:

condition:

and:

- binary_sensor.is_off:motion_kitchen".

- binary_sensor.is_off: bin_light_on.

- binary_sensor.is_off:led_strip_off_allways".

then:

- switch.turn_off: light_white_on.

- switch.turn_off: super_light.

- delay: 5 min.

- if:

condition:

binary_sensor.is_off:motion_kitchen".

then:

light.turn_off: kitchen_led_line.

При обнаружении движения, проверяются бинарные сенсоры, по факту переключатели, которые описаны ниже и в зависимости от их положений лента включается или не включается ну или не выключается.

-delay: 5 min - Это продолжительность эффекта смены цветов. А так описана сама лента:

light:

- platform: rgbw.

id: kitchen_led_line.

name:kitchen_led_line".

red: red_led.

green: green_led.

blue: blue_led.

white: white_led.

effects:

- random:

name: Fade.

transition_length: 10s.

update_interval: 10s.

output:

- id: white_led.

platform: esp8266_pwm.

pin: D1.

inverted: true.

max_power: 1.

- id: blue_led.

platform: esp8266_pwm.

pin: D2.

inverted: true.

- id: red_led.

platform: esp8266_pwm.

pin: D4.

inverted: true.

transition_length: 10s - За какое время должен изменится цвет update_interval: 10s - через какое время переключить на другой цвет Таким образом получаем плавный эффект перехода от цвета к цвету без задержки на каком-либо. Продолжительность белого цвета регулируется самим датчиком движения. На нем есть механическая регулировка чувствительности и продолжительности.

Отдельно стоит коснуться включения белых диодов и цветных диодов в режиме белого цвета. Light white и Super light.

#Виртуальный выключатель, включает только белый свет.

- platform: template.

name:light white on".

id: light_white_on.

optimistic: yes.

turn_on_action:

- light.turn_on:

id: kitchen_led_line.

brightness: 100%.

color_brightness: 0%.

effect: none.

white: 100%.

red: 0%.

blue: 0%.

green: 0%.

turn_off_action:

- light.turn_on:

id: kitchen_led_line.

brightness: 80%.

effect: Fade.

white: 0%.

#Виртуальный выключатель, включает белый свет вместе с цветными диодами.

- platform: template.

name:super light".

id: super_light.

optimistic: yes.

turn_on_action:

- light.turn_on:

id: kitchen_led_line.

color_mode: RGB_white.

brightness: 100%.

white: 100%.

red: 100%.

green: 75%.

blue: 50%.

turn_off_action:

- if:

condition:

binary_sensor.is_on:motion_kitchen".

then:

- light.turn_on:

id: kitchen_led_line.

brightness: 100%.

color_brightness: 0%.

effect: none.

white: 100%.

red: 0%.

blue: 0%.

green: 0%.

В итоге в HA лента выглядит так:

.
.

Отмечу еще один момент. На шести метровую кухню хватило одного датчика движения, расположенного ближе к мойке, на границе первой трети от входа.

Читайте также.