Оглавление:

ESPHOME SONOF S26 Timed Light: 11 шагов (с изображениями)
ESPHOME SONOF S26 Timed Light: 11 шагов (с изображениями)

Видео: ESPHOME SONOF S26 Timed Light: 11 шагов (с изображениями)

Видео: ESPHOME SONOF S26 Timed Light: 11 шагов (с изображениями)
Видео: Ник Лейн: Происхождение жизни, эволюция, инопланетная жизнь 2024, Июль
Anonim
ESPHOME SONOF S26 Таймерный светильник
ESPHOME SONOF S26 Таймерный светильник

Добрый день. Итак, у меня есть свет в аквариуме, который я хочу включать и выключать в определенное время дня. Мне просто пришлось усложнить себе задачу. Я хочу иметь возможность изменять время его включения и выключения на панели инструментов Home Assistant. Может даже больше.

Так что давай посмотрим, сколько еще я смогу провести в кроличьей норе.

Шаг 1: Шаг 1: Мне нужен способ отправлять время из домашнего помощника

Некоторый поиск в Google помогает. Иногда помогает выдергивание волос, если оно у вас действительно есть: Откройте мой надстройку Visual Studio Code Editor. В папке Config найдите файл configuration.yaml и скопируйте и вставьте кое-что, что я нашел скрытым на каком-то форуме. Извините, если бы вспомнил, я бы подтвердил. Добавлен код и перезапущен домашний помощник.

Шаг 2: Шаг 2: добавлен следующий код в Configuration.yaml

Шаг 2: добавлен следующий код в Configuration.yaml
Шаг 2: добавлен следующий код в Configuration.yaml

input_number:

ft_start_hr:

имя: Часы начала света FT

значок: mdi: запуск часов

мин: 0

макс: 23

шаг 1

# начальный: 13

В первой строке будет входной номер объекта id.

Далее нам нужны детали для этого маленького чувака:

Название будет потрясающим: FT Light Start Hours для этого P. S. FT для Fish Tank… Не то, о чем вы думали, верно?

Далее идет необязательный значок. Есть из чего выбирать, так что сходите с ума… или нет.

Затем мы можем ввести минимальное, максимальное и шаговое значение. Поскольку это часы, я выбрал от 0 до 23 с одиночными шагами.

Изначально у меня было начальное значение, и когда домашний помощник перезапустился, он изменил его на это начальное значение. Я решил прокомментировать это, так как хотел, чтобы Home Assistant попытался запомнить последнее значение, которое я для него установил.

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

Обратите внимание на углубления, поскольку они очень важны.

Таким образом, это даст вам сущности в домашнем помощнике, которые вы сможете настроить.

Вот ссылка на дополнительную информацию о входных числах:

www.home-assistant.io/integrations/input_n…

Шаг 3: Шаг 3: Теперь нам нужно получить информацию для ESPHOME API

Шаг 3. Теперь нам нужно получить информацию для ESPHOME API
Шаг 3. Теперь нам нужно получить информацию для ESPHOME API

датчик:

- платформа: шаблон

датчики:

ft_start_hr:

шаблон_значения: '{{States.input_number.ft_start_hr.state | int}} '

п

Это даст ESPHome API необходимое соединение, а также теперь это целое число, а не причудливый текстовый ползунок:-P

Здесь он принимает состояние входного числа и преобразует его в целое число и сохраняет его в датчике.

Вот еще немного информации о шаблонах:

www.home-assistant.io/integrations/templat…

О, я изменил расширение файла моего файла на текст, чтобы я мог его загрузить … Instructables можно разрушить с помощью yaml …

Шаг 4: Шаг 4: Итак, настройка плагина ESPHome сейчас

Шаг 4: Итак, настройка плагина ESPHome сейчас
Шаг 4: Итак, настройка плагина ESPHome сейчас

Я начал с базовой конфигурации для штекера s-on-off, а затем начал возиться.

Я не буду вдаваться в подробности о том, как прошить штекер S26 с помощью ESPHome, поскольку у Google есть все ответы.

Мой полный файл конфигурации будет доступен для скачивания в конце. Да Да Да…

Итак, давайте начнем со связанной части с Home Assistant:

Нам нужно создать датчики, которые соответствуют датчикам в домашнем помощнике, чтобы они могли разговаривать друг с другом.

Шаг 5: Шаг 5: подключение домашнего помощника ESPHome… Расскажи мне, Скотти

Шаг 5. Подключение домашнего помощника ESPHome… Расскажи мне, Скотти
Шаг 5. Подключение домашнего помощника ESPHome… Расскажи мне, Скотти

датчик:

- платформа: домашний помощник

entity_id: sensor.ft_start_hr

id: id_ft_start_hr

Итак, теперь мы создаем в ESPHome датчик типа homeassistant. Кто бы мог подумать?

Идентификатор объекта должен соответствовать тому, что вы установили в файле configuration.yaml.

Я установил идентификатор, чтобы ESPHome мог ссылаться на этот датчик в своем изобилии мысли.

Шаг 6: Шаг 6: давайте добавим немного времени

Шаг 6: давайте добавим немного времени
Шаг 6: давайте добавим немного времени

Так что, учитывая, что это временная вилка … Давайте добавим немного времени … Или вычтем? Это теперь в прошлом?

Вот некоторые основы компонента времени. Мы можем выбрать другие, но я выбрала помощника по дому. Слишком легко?

esphome.io/components/time.html

Шаг 7: Шаг 7: Интервал

Шаг 7: интервал
Шаг 7: интервал

Нет, это не перерыв, не так ли?

интервал:

- интервал: 1 сек.

тогда:

- лямбда: | -

id (gl_ft_start_hr) = id (id_ft_start_hr).state;

Поэтому я установил интервал в 1 секунду для записи значения датчика от домашнего помощника в глобальную переменную.

Я просто хочу делать это раз в секунду, так как время идет… тик-так

Шаг 8: Шаг 8: Итак, у нас есть время и деньги… Что дальше?

Шаг 8: Итак, у нас есть время и деньги… Что дальше?
Шаг 8: Итак, у нас есть время и деньги… Что дальше?

Поэтому я решил использовать шаблон двоичного датчика, чтобы определить, пора ли включать переключатель, переключатель… реле.

Я создал три переключателя с идентификаторами: start_time_valid, stop_time_valid и run_time_valid

start_time_valid истинно, когда время, установленное для включения реле, уже прошло.

Я использовал вложенные операторы if, чтобы проверить, были ли мы больше или равны требуемым секундам, затем минутам и, наконец, часам.

stop_time_valid истинно, если сейчас до того, как настало время выключить переключатель. Это делается в обратном порядке, чтобы проверить, не прошло ли время, необходимое для выключения реле.

run_time_valid истинно, когда оба start_time_valid и stop_time_valid истинны. Я полагаю, я мог бы просто использовать нормальное и условие для этого. Я только что увлекся лямбдами.

- платформа: шаблон

name: "Время начала действительно"

id: start_time_valid

лямбда: | -

if (id (homeassistant_time).now (). hour> id (gl_ft_start_hr)) {

вернуть истину;

}

иначе if (id (homeassistant_time).now (). hour == id (gl_ft_start_hr) &&

id (homeassistant_time).now (). minute> id (gl_ft_start_mn)) {

вернуть истину;

}

иначе if (id (homeassistant_time).now (). hour == id (gl_ft_start_hr) &&

id (homeassistant_time).now (). minute == id (gl_ft_start_mn) &&

id (homeassistant_time).now (). second> = id (gl_ft_start_ss)) {

вернуть истину;

}

еще {

вернуть ложь;

}

Шаг 9: Шаг 9: Теперь несколько сценариев: «Быть или не быть: вот в чем вопрос»

Шаг 9: Теперь несколько сценариев: «Быть или не быть: вот в чем вопрос»
Шаг 9: Теперь несколько сценариев: «Быть или не быть: вот в чем вопрос»

Хм не тот скрипт чувак!

Поэтому, если я подключу выключатель … или электричество в доме просто снова включится, я хотел, чтобы выключатель знал, должно ли оно быть включено или выключено, и действовал соответствующим образом. (да, мы все идем на уроки актерского мастерства)

Первый идентификатор сценария: verifystatuson, проверяет, должны ли мы действовать, и действуем ли мы соответственно. Я также включил глобальный флаг с id: trackingon, чтобы гарантировать, что этот скрипт запускается только один раз и не мешает другим моим скриптам выполнять свою роль в игре.

У этого есть 3 условия: реле выключено, оно должно быть включено, и я еще не выполнил свою часть работы. Затем это отключит все остальные запущенные скрипты, включит реле и установит флаги отслеживания.

Второй идентификатор скрипта: checkstatusoff - полная противоположность первому. Мы просто проверяем, нужно ли сейчас закрывать шторы. Флаг отслеживания для этого - trackingoff

Я запускаю эти два сценария с интервалом в 1 секунду, чтобы проверять каждую секунду.

Шаг 10: Шаг 10: несколько бонусных скриптов

Шаг 10: несколько бонусных скриптов
Шаг 10: несколько бонусных скриптов

Еще две особенности, которые я хотел добавить: если я выключу свет на резервуаре, он снова включится через 5 секунд, если свет должен быть включен в это время. Кроме того, если свет был выключен, и я хотел включить его, чтобы увидеть своих рыбок, а он был вне расписания, он включился бы на 5 минут. Да 5 минут - это достаточно … Продолжай работать.

Первый идентификатор сценария: relayisoff включит свет на 5 минут, если он выключен по расписанию, а затем выключится.

Второй идентификатор сценария: relayison практически полностью противоположен первому и через 5 секунд снова включит свет, если он должен быть включен. Кто сказал, что вы можете выключить мой свет, мистер!

Вот еще немного информации о скриптах:

esphome.io/guides/automations.html

Некоторая дополнительная информация о скриптах - они не блокируют. Если вы не добавите задержку в лямбду.

Шаг 11: Шаг 11: Несколько заключительных мыслей

Шаг 11: несколько заключительных мыслей
Шаг 11: несколько заключительных мыслей
Шаг 11: несколько заключительных мыслей
Шаг 11: несколько заключительных мыслей

Из домашнего помощника я хотел, чтобы переключатель работал так же, как и кнопка.

Я не назвал локальный переключатель двоичного датчика, так как мне не нужно было видеть его нажатие в домашнем помощнике.

Я не назвал переключатель реле, так как хотел использовать сценарии для переключения из домашнего помощника.

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

Я не проверял, выключаю ли мой домашний помощник, если вилка по-прежнему работает правильно. Я на это надеюсь. Я видел несколько сообщений о некоторых проблемах при потере соединения с Home Assistant API.

Я действительно надеюсь, что это небольшое руководство поможет вам, и, пожалуйста, не стесняйтесь помочь мне сделать его лучше. Я не эксперт и учусь очень медленно. Я просто подумал, что некоторые вещи, которые я научился делать, могут помочь кому-то, кто пытается это понять.

Теперь, чтобы изменить время в домашнем помощнике в зависимости от восхода и захода солнца… + - несколько

Рекомендуемые: