Главная > Умный дом > Ночник с выбором времени горения в карточке Lovelace в Home Assistant

Ночник с выбором времени горения в карточке Lovelace в Home Assistant


19 ноября 2020. Разместил: dimon
Захотелось мне сделать ночник с помощью лампочки Yeelight Color Bulb, но не простой, а с указанием времени сколько ему гореть..

Конечно можно это сделать через MiHome или использовать предустановки в приложении Yeelight. Но это не очень удобно - нельзя просто задать в минутах сколько я хочу чтобы сегодня он горел. А так как я сейчас активно ковыряюсь в Home Assistant, то решил что правильнее это сразу делать там.

Будем делать вот такую красоту:

Ночник с выбором времени горения в карточке Lovelace в Home Assistant

Ночник с выбором времени горения в карточке Lovelace в Home Assistant




1. Сначала заведем переменные (сущности) - выключатель и значение таймера горения ночника.

Делается это в файле configuration.yaml, добавляем в конец файла сущности:


####################################################
#                  Ночник в спальне                #
####################################################
input_number:
  light_timer_minutes:
    name: "Timer (мин)"         # имя
    min: 0                      # значение ОТ
    max: 90                     # значение ДО
    step: 5                     # шаг

input_boolean:
  light_timer_enabled:
    name: "Ночник Switch"       # имя
    initial: off                # начальное значение
    icon: mdi:timelapse         # иконка


2. Перезапускаем инстанс, что бы добавленные сущности стали доступны.

3. Создаем автоматизацию.
Я сначала создаю автоматизацию через Automation Editor GUI, а потом после добавления условия старта (триггера), сохраняю и правлю уже в текстовом редактор.
Мне почему то так оказалось удобнее всего работать.
Причем к графическому редактору автоматизаций я обращаюсь довольно часто, когда не знаю как правильно код записать - создаю в тестовой автоматизации нужную конструкцию, а потом ее код копирую уже в боевую автоматизацию.

Код получился вот такой:


- alias: Turn on the night light in the bedroom
  description: Включить ночник в спальне на выбранное количество минут
  trigger:
  - platform: state
    entity_id: input_boolean.light_timer_enabled
    to: 'on'
  condition: []
  action:
  # Включим лампу
  - type: turn_on
    device_id: c******************************09
    entity_id: light.yeelight_color_0x1d
    domain: light
    brightness_pct: 1
  # Уведомление в Telegram
  - service: notify.me
    data:
      message: "Ночник в спальне включен в {{ states('sensor.time') }} на {{ states('input_number.light_timer_minutes') | int }} минут."
  # Таймер на столько минут сколько выставим слайдером в Lovelace карточке
  - delay:
      minutes: '{{ states(''input_number.light_timer_minutes'') | int }}'
  # Выключим лампу
  - type: turn_off
    device_id: c******************************09
    entity_id: light.yeelight_color_0x0x1d
    domain: light
  # Вернем переключатель в в Lovelace карточке в выключеное состояние
  - service: input_boolean.turn_off
    data:
      entity_id: input_boolean.light_timer_enabled
  mode: single


5. Теперь создадим карточку в интерфейсе Lovelace, тип - entities, в нее выключаем всего две сущности, добавленные в п.1.
В текстовом редакторе она выглядит вот так:

type: entities
entities:
  - entity: input_boolean.light_timer_enabled
  - entity: input_number.light_timer_minutes
title: Ночник в спальне
show_header_toggle: false


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


Added later:

Указанный выше вариант оказался не очень то и удобный - никогда не понятно сколько осталось гореть, и нельзя перезапустить. Поэтому сделал новый пакет с ночником и таймером. Ночник выглядит теперь вот так:

Ночник с выбором времени горения в карточке Lovelace в Home Assistant


Код:



Пакет Night light доступен на GitHub-е

Вернуться назад