Оглавление:
- Шаг 1: Шаг 1: Мне нужен способ отправлять время из домашнего помощника
- Шаг 2: Шаг 2: добавлен следующий код в Configuration.yaml
- Шаг 3: Шаг 3: Теперь нам нужно получить информацию для ESPHOME API
- Шаг 4: Шаг 4: Итак, настройка плагина ESPHome сейчас
- Шаг 5: Шаг 5: подключение домашнего помощника ESPHome… Расскажи мне, Скотти
- Шаг 6: Шаг 6: давайте добавим немного времени
- Шаг 7: Шаг 7: Интервал
- Шаг 8: Шаг 8: Итак, у нас есть время и деньги… Что дальше?
- Шаг 9: Шаг 9: Теперь несколько сценариев: «Быть или не быть: вот в чем вопрос»
- Шаг 10: Шаг 10: несколько бонусных скриптов
- Шаг 11: Шаг 11: Несколько заключительных мыслей
Видео: ESPHOME SONOF S26 Timed Light: 11 шагов (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:49
Добрый день. Итак, у меня есть свет в аквариуме, который я хочу включать и выключать в определенное время дня. Мне просто пришлось усложнить себе задачу. Я хочу иметь возможность изменять время его включения и выключения на панели инструментов Home Assistant. Может даже больше.
Так что давай посмотрим, сколько еще я смогу провести в кроличьей норе.
Шаг 1: Шаг 1: Мне нужен способ отправлять время из домашнего помощника
Некоторый поиск в Google помогает. Иногда помогает выдергивание волос, если оно у вас действительно есть: Откройте мой надстройку Visual Studio Code Editor. В папке Config найдите файл configuration.yaml и скопируйте и вставьте кое-что, что я нашел скрытым на каком-то форуме. Извините, если бы вспомнил, я бы подтвердил. Добавлен код и перезапущен домашний помощник.
Шаг 2: Шаг 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
датчик:
- платформа: шаблон
датчики:
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 сейчас
Я начал с базовой конфигурации для штекера s-on-off, а затем начал возиться.
Я не буду вдаваться в подробности о том, как прошить штекер S26 с помощью ESPHome, поскольку у Google есть все ответы.
Мой полный файл конфигурации будет доступен для скачивания в конце. Да Да Да…
Итак, давайте начнем со связанной части с Home Assistant:
Нам нужно создать датчики, которые соответствуют датчикам в домашнем помощнике, чтобы они могли разговаривать друг с другом.
Шаг 5: Шаг 5: подключение домашнего помощника ESPHome… Расскажи мне, Скотти
датчик:
- платформа: домашний помощник
entity_id: sensor.ft_start_hr
id: id_ft_start_hr
Итак, теперь мы создаем в ESPHome датчик типа homeassistant. Кто бы мог подумать?
Идентификатор объекта должен соответствовать тому, что вы установили в файле configuration.yaml.
Я установил идентификатор, чтобы ESPHome мог ссылаться на этот датчик в своем изобилии мысли.
Шаг 6: Шаг 6: давайте добавим немного времени
Так что, учитывая, что это временная вилка … Давайте добавим немного времени … Или вычтем? Это теперь в прошлом?
Вот некоторые основы компонента времени. Мы можем выбрать другие, но я выбрала помощника по дому. Слишком легко?
esphome.io/components/time.html
Шаг 7: Шаг 7: Интервал
Нет, это не перерыв, не так ли?
интервал:
- интервал: 1 сек.
тогда:
- лямбда: | -
id (gl_ft_start_hr) = id (id_ft_start_hr).state;
Поэтому я установил интервал в 1 секунду для записи значения датчика от домашнего помощника в глобальную переменную.
Я просто хочу делать это раз в секунду, так как время идет… тик-так
Шаг 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: Теперь несколько сценариев: «Быть или не быть: вот в чем вопрос»
Хм не тот скрипт чувак!
Поэтому, если я подключу выключатель … или электричество в доме просто снова включится, я хотел, чтобы выключатель знал, должно ли оно быть включено или выключено, и действовал соответствующим образом. (да, мы все идем на уроки актерского мастерства)
Первый идентификатор сценария: verifystatuson, проверяет, должны ли мы действовать, и действуем ли мы соответственно. Я также включил глобальный флаг с id: trackingon, чтобы гарантировать, что этот скрипт запускается только один раз и не мешает другим моим скриптам выполнять свою роль в игре.
У этого есть 3 условия: реле выключено, оно должно быть включено, и я еще не выполнил свою часть работы. Затем это отключит все остальные запущенные скрипты, включит реле и установит флаги отслеживания.
Второй идентификатор скрипта: checkstatusoff - полная противоположность первому. Мы просто проверяем, нужно ли сейчас закрывать шторы. Флаг отслеживания для этого - trackingoff
Я запускаю эти два сценария с интервалом в 1 секунду, чтобы проверять каждую секунду.
Шаг 10: Шаг 10: несколько бонусных скриптов
Еще две особенности, которые я хотел добавить: если я выключу свет на резервуаре, он снова включится через 5 секунд, если свет должен быть включен в это время. Кроме того, если свет был выключен, и я хотел включить его, чтобы увидеть своих рыбок, а он был вне расписания, он включился бы на 5 минут. Да 5 минут - это достаточно … Продолжай работать.
Первый идентификатор сценария: relayisoff включит свет на 5 минут, если он выключен по расписанию, а затем выключится.
Второй идентификатор сценария: relayison практически полностью противоположен первому и через 5 секунд снова включит свет, если он должен быть включен. Кто сказал, что вы можете выключить мой свет, мистер!
Вот еще немного информации о скриптах:
esphome.io/guides/automations.html
Некоторая дополнительная информация о скриптах - они не блокируют. Если вы не добавите задержку в лямбду.
Шаг 11: Шаг 11: Несколько заключительных мыслей
Из домашнего помощника я хотел, чтобы переключатель работал так же, как и кнопка.
Я не назвал локальный переключатель двоичного датчика, так как мне не нужно было видеть его нажатие в домашнем помощнике.
Я не назвал переключатель реле, так как хотел использовать сценарии для переключения из домашнего помощника.
Я создал переключатель шаблона с именем, чтобы использовать его для переключения с домашнего помощника. Он будет запускать мои сценарии так же, как локальный переключатель на вилке.
Я не проверял, выключаю ли мой домашний помощник, если вилка по-прежнему работает правильно. Я на это надеюсь. Я видел несколько сообщений о некоторых проблемах при потере соединения с Home Assistant API.
Я действительно надеюсь, что это небольшое руководство поможет вам, и, пожалуйста, не стесняйтесь помочь мне сделать его лучше. Я не эксперт и учусь очень медленно. Я просто подумал, что некоторые вещи, которые я научился делать, могут помочь кому-то, кто пытается это понять.
Теперь, чтобы изменить время в домашнем помощнике в зависимости от восхода и захода солнца… + - несколько
Рекомендуемые:
BookWorm Light-Up Подсветка книги и закладка: 13 шагов (с изображениями)
BookWorm Light-Up Книжный светильник и закладка: сделайте эту забавную закладку-книжку-червь, которая также может служить подсветкой для книги! Мы его распечатаем, вырежем, раскрасим и украсим, а они используют его, чтобы осветить ночь, чтобы вы могли читать в темноте. Он сделан всего из нескольких материалов и делает отличные первые фото
Smart Crystal Light String: 9 шагов (с изображениями)
Smart Crystal Light String: По мере приближения Рождества, когда я полностью исследую домашнюю автоматизацию и умные объекты своими руками, я решил в этом году попробовать сделать умную, красивую световую струну с RGB-подсветкой. Я провел много исследований о решениях DIY в сети, с одной стороны какой-то пр
Fairy Light Battery Saver: 8 шагов (с изображениями)
Fairy Light Battery Saver: батарейки CR2032 великолепны, но они не работают так долго, как хотелось бы при использовании светодиодных "Fairy Light". С наступлением праздничного сезона я решил модифицировать несколько 20 световых струн, чтобы они работали от USB-аккумулятора. Я поискал в Интернете и нашел
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: 7 шагов (с изображениями)
Как: установка Raspberry PI 4 Headless (VNC) с Rpi-imager и изображениями: я планирую использовать этот Rapsberry PI в кучу забавных проектов еще в моем блоге. Не стесняйтесь проверить это. Я хотел вернуться к использованию своего Raspberry PI, но у меня не было клавиатуры или мыши в моем новом месте. Прошло много времени с тех пор, как я установил Raspberry
Управляйте своими автоматическими откатными воротами с помощью Home Assistant и ESPHome: 5 шагов (с изображениями)
Управляйте своими автоматическими откатными воротами с помощью Home Assistant и ESPHome: В следующей статье представлены некоторые отзывы о моем личном опыте управления автоматическими откатными воротами, которые я установил в своем доме. Этот затвор, названный «V2 Alfariss», был снабжен несколькими пультами дистанционного управления Phox V2 для управления им. У меня тоже есть