Умная кухонная подсветка для 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 лента выглядит так:
Отмечу еще один момент. На шести метровую кухню хватило одного датчика движения, расположенного ближе к мойке, на границе первой трети от входа.
#ESP8266 - Часы с большими символами на дисплее 1602a
ESP Block - Мини приложение для Android - Кнопки включение и отключения светодиодов!
Нерабочие ножки у датчика htu21?
Доброго времени суток. Не так давно получил датчик htu21d и при подключении к ESP32 обнаружил, что он не работает, в Home Assistant он не определялся, хотя питание на датчик шло, я решил, что датчик повредили при доставке или китайцы просто положили нерабочий.
Но сейчас выясняется, что датчик работает, если его подключить вот так:
Китайцы положили нерабочие ножки к рабочему датчику? Или я где-то сильно затупил и до сих пор не могу понять где.
P.S. С esp8266 с подобными ножками у меня была такая же ситуация - с ними он отказывался работать, зато при подключении "на соплях", как на фото выше - всё работало отлично.
#ESP Block - Разработка блоков - WS2811 в ESP 32 & 8266
Arduino - ESP 8266 - Telegramm Bot!
ESP 8266 - Зуммер 8Bit
Как подготовить машину к долгой поездке
Взять с собой побольше вкусняшек, запасное колесо и знак аварийной остановки. А что сделать еще — посмотрите в нашем чек-листе. Бонусом — маршруты для отдыха, которые можно проехать даже в плохую погоду.