- Автоматизация — Управление обогревом помещения в Home Assistant
- Задача
- Необходимые компоненты
- Решение для Home Assistant
- Как настроить Home Assistant чтобы термостат включал несколько обогревателей с паузой между включением
- Тестовый стенд
- Виртуальный выключатель
- Zigbee-термостат Moes для теплого пола: возможности, настройка, интеграция в Home Assistant
- Содержание
- Параметры
- Поставка
- Конструкция
- Подключение
- Ручные настройки
- Tuya Smart
- Автоматизации
- Тестирование
- Google Home
- Zigbee2mqtt
- Антиспам
- Home Assistant
- SLS Gateway
- Видео версия
Автоматизация — Управление обогревом помещения в Home Assistant
Наступила осень, на улице похолодало, а отопление включили ещё не везде и тем, кому повезло меньше приходится отапливать помещение при помощи электрических бытовых обогревателей. Включив такой обогреватель часто про него забывают, вспоминая о нем только когда становится совсем жарко после чего открываются окна для проветривания. Такой подход не самым положительным образом сказывается на счете за электричество. Имея дома умную розетку и датчик температуры процесс обогрева можно автоматизировать, нагревая помещение до комфортной температуры, обогреватель при этом может быть любой, главное, чтобы нагрузка была не больше допустимой. Дополнительным бонусом такого подхода может выступать удаленный контроль, например, подходя к дому можно заранее включить обогрев.
Задача
Автоматизировать обогрев помещения при падении температуры ниже заданной. Нижний порог включения на обогрев может выставляться вручную, верхний порог отключения обогрева +3 градуса от температуры включения. Что бы не обогревать улицу, предусмотреть отключение обогрева при открытии окна. Возможность отключения автоматического режима обогрева помещения.
Необходимые компоненты
- Датчик температуры. Например, Xiaomi MiJia temperature & humidity sensor (WSDCGQ01LM)
- Датчик открытия окна окна. Например, Xiaomi MiJia door & window contact sensor (MCCGQ01LM)
- Умная розетка. Например, Xiaomi Aqara socket Zigbee (QBCZ11LM)
- Система автоматизации. Home Assistant
Решение для Home Assistant
Для включения/отключения режима автоматического обогрева и выставления температуры включения обогрева нам понадобятся два дополнительных вспомогательных компонента (хелпера):
- Выключатель типа Toggle для включения/отключения режима автоматического обогрева
- Ползунок типа Number для выставления температуры включения со значениями от 10 до 25 градусов и шагом 1
В меню Configuration -> Helpers -> + добавляем хелперы, но я рекомендую каждый сценарий описывать в отдельном файле. Создадим файл room_heating.yaml в папке .homeassistant/packages/ , в котором будет описан сценарий обогрева комнаты. Подробно про пакеты можно почитать на сайте Home Assistant.
Добавляем хелперы в файл:
На панель Lovelace выводим меню управления обогревом.
Итак, у нас есть умная розетка, датчик температуры и датчик открытия. Создаем автоматизации. Для понимания: xiaomi_socket_room_heater — розетка, xiaomi_temperature_room — датчик температуры, xiaomi_window_sensor_room — датчик открытия, room_auto_heat — выключатель автоматического обогрева, room_heat_temperature — выставленная температура, ниже которой включается обогрев.
Автоматизация номер один. Срабатывание автоматизации происходит при включении автоматического обогрева помещения, розетка включается при следующих условиях: температура на датчике ниже заданной температуры включения обогрева, датчик открытия в состоянии OFF и розетка в состоянии OFF. Добавляем автоматизацию в файл room_heating.yaml .
Добавляем автоматизацию включающую розетку при падении температуры ниже заданной. Включение обогрева произойдет только в том случае если включен автоматический обогрев, датчик открытия в состоянии OFF и розетка в состоянии OFF.
Автоматизация отключающая обогрев в помещении при превышении температуры включения на +3 градуса. Розетка отключается только если она находится в состоянии ON.
Автоматизация отключающая обогрев в помещении при открытии окна, не надо греть улицу :). Розетка отключается только если она находится в состоянии ON.
Последняя автоматизация, каждые 10 минут выполняется проверка превышения температуры и по необходимости отключение.
Последняя автоматизация может показаться излишней, но периодический контроль за включенным оборудованием не помешает.
Как настроить Home Assistant чтобы термостат включал несколько обогревателей с паузой между включением
Я тут продолжаю экспериментировать с Home Assistant. Придумал себе небольшой проект. Решил сделать обогрев одной комнаты на даче.
Для этого я решил купить два обогревателя и подключить каждый из них в умную розетку. В комнате уже есть датчик температуры.
Сервер Home Assistant знает температуру с датчика и может включать-выключать розетки. Ну а дальше дело техники — говорю серверу что я хочу чтобы температура была +24. Home Assistant включает обогреватели и они шпарят до тех пор пока в комнате не будет +24. Потом они выключаются. Температура постепенно падает, через некоторое время они опять включаются и опять добивают температуру до +24.
Если есть один обогреватель, то для того чтобы это настроить в Home Assistant нужно добавить в конфиг всего несколько строк:
Тут как раз указывается умная розетка («switch.smart_plug») и датчик который показывает температуру («sensor.room_temperature»).
Но моя задача — подключить два обогревателя. Можно сделать следующее. Создать группу «group.heater_smart_plugs» и добавить в нее две умные розетки, а в конфиге HA указать:
Когда температура ниже заданной Home Assistant будет включать «виртуальное» устройство «group.heater_smart_plugs» и это будет включать обе розетки.
Так все работает, но мне хотелось чтобы система работала другим образом. Мне бы хотелось чтобы обогреватели включались не одновременно, а с небольшой задержкой. Т.е. сначала включается один обогреватель, проходит несколько секунд и только потом включается второй обогреватель. Ну и так же про выключение. Сначала выключается один, пауза, потом второй.
Я мало что понимаю в электричестве, но мне кажется что ситуация с паузой более правильная. Обогреватели это достаточно мощные устройства, которые дают большую нагрузку. Мне бы хотелось чтобы на электрическую сеть не было сразу большой нагрузки, а нагрузка приходила бы постепенно: вот сейчас включили два киловатта, чуть позже еще два. А не так: не было никакой нагрузки, а тут фигакс и сразу 4 кВт.
Так что я решил убедить Home Assistant что обогреватели нужно включать с паузой.
Тестовый стенд
Мой настоящий сервер HA — это Raspberry Pi 3 B+. Не очень мощное устройство. Плюс на нем уже крутится некоторая автоматизация. Мне очень нравится экспериментировать с конфигурированием Home Assistant не на настоящем продакшн сервере, а на специальном тестовом стенде, который я разворачиваю на своем ноутбуке.
Поднять сервер с HA на ноутбуке невероятно просто. Нужно чтобы на ноуте был установлен Docker, а потом одна команда и Home Assistant работает:
С помощью этой команды я поднял тестовую инсталляцию Home Assistant на которой можно делать все что угодно и это никак не повлияет на работу моего настоящего сервера HA. Плюс, поскольку эта тестовая инсталляция поднята на моем ноутбуке перезагрузка сервера HA выполняется сильно-сильно быстрее чем на Raspberry Pi. Поэтому цикл настройки поправил-перезагрузил-проверил проходит гораздо быстрее и приятнее.
Итак, у меня есть сервер Home Assistant на котором можно играться. К нему не подключены никакие датчики температуры и не подключены никакие розетки. Я решил создать тестовые версии этих устройств.
Вот что у меня получилось. Вот все содержимое файла «configuration.yaml»:
(Я тут завел 2 переменные «input_boolean_1» и «input_boolean_2», каждая из них хранит статус «виртуальной» умной розетки — что она — включена или выключена. И завел переменную «input_number_1» в которой хранится «виртуальная» температура в комнате. Дальше из этой переменной делаю сенсор температуры, а из первых двух переменных делаю switch)
А вот yaml с настройкой интерфейса:
Видео как это работает:
- Можно руками указывать какая сейчас есть температура в комнате
- Включаем термостат, он видит что температура в комнате +5 градусов, это меньше чем желаемая +24, поэтому он включает обогреватель 1
- Постепенно увеличиваем температуру в комнате +9, +13.5, +17.5, +21.5
- Как только температура в комнате становится больше чем заданная температура, термостат выключается
Итак, есть тестовый стенд, который очень похож на то что что у меня есть по настоящему.
Виртуальный выключатель
В конце концов, много раз обратившись за помощью к Жене мне удалось сделать решение которое делает то что мне нужно.
Я сделал виртуальный выключатель. За ним прячутся 2 выключателя и он берет на себе всю логику чтобы включать-выключать эти два выключателя с паузой.
Вот его описание в файле configuration.yaml:
Что тут важно. У выключателя статус может быть либо «on» (включен), либо «off» (выключен). У этого виртуального выключателя статус «on» будет в ситуации когда хотя бы один из двух выключателей включен
- Оба выключены — статус виртуального выключателя «off»
- Один включен — статус виртуального выключателя «on»
- Оба включены — статус виртуального выключателя «on»
При включении этого виртуального выключателя дергается скрипт «turn_on_with_delay», а при выключении — «turn_off_with_delay».
Вот описание этих скриптов в файле configuration.yaml:
Каждый скрипт — это последовательность (sequence) из трех действий. Включить первый, подождать, включить второй. Очень важно что в начале каждой последовательности выполняется действие «выключи другой скрипт». Благодаря этому не происходит проблемы в ситуации, когда этот виртуальный выключатель быстро включается-выключается.
Видео как это работает:
- Включили термостат. Температура в комнате +18, термостат настроен на +24.
- Термостат включил виртуальный выключатель, который тут же включил обогреватель 1, а через паузу обогреватель 2
- Потихоньку растет температура в комнате. Догрели до нужной температуру, тут же выключили обогреватель 1, а через паузу обогреватель 2
Zigbee-термостат Moes для теплого пола: возможности, настройка, интеграция в Home Assistant
Темой сегодняшнего обзора будет очередной устройство из многообразия экосистемы Tuya Smart — zigbee термостат MOES, модель для теплого пола, способная управлять нагрузками мощностью более 3 кВт. Мы рассмотрим его возможности, которые позволяют использовать его и без подключения к умному дому, но не упустим из виду и его работу как в штатной системе управления Tuya. Так же подробно рассмотрена интеграция в Home Assistant через zigbee2mqtt — с решением проблемы большого количества сообщений от термостата. Показана дополнительная настройка аддона File Manager.
Содержание
Купить на Aliexpress — цена на момент публикации обзора $33.49
Параметры
- Модель: Moes BHT-002-GBLZB для теплого пола
- Максимальный ток нагрузки: 16 А
- Рабочее напряжение: 95 — 240 В
- Интерфейс: ZigBee
- Тип: встраиваемый в подрозетник, с нулевой линией
- Размер внешней части: 86 х 86 х 13,2 мм
- Размер внутренней части: 50 х 50 х 24,4 мм
Поставка
Поставляется устройство в коробке из переработанного картона, на ней нашлось место схематическому изображению устройства и логотипу производителя. На боковой части — наклейка с параметрами. Коробка довольно плотная, внутри имеется защитная вставка из противоударной пленки, поэтому все приехало в целости и сохранности.
Вот все что нашлось в коробке разложенное по двум отсекам, сверху термостат — под ним все остальное.
Под остальным я имею в виду —
Инструкцию, она на английском так что вполне читаема, хотя каких-то особенно сложных моментов тут нет.
Внешний аналоговый датчик температуры на проводе длиной в 2,5 метра, сопротивлением в 10 кОм и стандартный винтовой крепеж для подрозетников и отметка о прохождении контроля отдела качества.
Конструкция
Большую часть фронтальной поверхности устройства занимает ЖК экран, под которым находятся 5 кнопок для ручной настройки и управления, слева направо — режим работы, установка времени, включение и выключение и две кнопки установки температуры.
На задней части находятся разъемы для подключения внешнего датчика температуры, питания и нагрузки. Судя по разметке на корпусе — существует, либо разрабатывается версия управляемая по modbus.
Размер задней части позволяет устанавливать термостат и в стандартный круглый подрозетник и в квадратный 86 х 86 мм. Термостат заходит плотно и полностью, хотя с учетом того, что для теплого пола нужны достаточно толстые провода — то лучше устанавливать глубокий или квадратный подрозетник.
Передняя часть термостата с экраном — соединяется с задней только при помощи пазов. Это даже не защелки — экран нужно просто сдвинуть вверх и он снимется. Тем не менее и такое крепление достаточно надежное.
Задняя часть с силовым блоком и черной металлической рамкой — устанавливается в подрозетник и затем крепится к нему.
Соединение с передней частью осуществляется при помощи 9ти жильного кабеля. После закрепления в подрозетнике — экран устанавливается обратно в пазы.
Подключение
Перейдем к подключению, тут все достаточно просто так как все разъемы подписаны. Не устану напоминать — соблюдайте соответствие фаза-ноль, это несложно при помощи обычной индикаторной отвертки.
Контакты для внешнего датчика температуры находятся сбоку, напомню длина кабеля комплектного датчика — 2,5 метра.
Силовая часть — на вход подаем ноль и фазу и подключаем контакты нагрузки — ее роль в моем тестовом стенде выполняет лампочка.
Еще раз крупным планом схема подключения тестового стенда с использованием внешнего датчика температуры и лампочки в качестве имитации нагревательного элемента.
После подачи питания, для включения термостата нужно нажать центральную кнопку, после этого начинает логика термостата, даже без подключения к умному дому. Начнем с ручных настроек.
Ручные настройки
Как я и сказал — термостат способен работать и полностью автономно, причем в двух режимах — ручном и по расписанию, переключает их левая нижняя кнопка. Ручной работает от текущих установок, а расписание — в зависимости от времени и дня недели.
Следующая нижняя кнопка — служит для установки текущего времени, изменять которое можно клавишами со стрелками с левой стороны, затем следует день недели, в виде цифр от 1 до 7, а дальше — настройка расписания. Расписание настраивается отдельно по будним дням и выходным. Устанавливаем время начала периода, затем желаемую температуру в это время.
Таких временных периодов — 4, каждому настраивается своя температура — например ночью и днем прохладнее, а утром и вечером — теплее.
Далее, аналогично, настраиваются 4 временные зоны для субботы, ну или того дня который будет у вас идти под номером 6. И отдельно — для воскресенья, 7 дня. Всего 12 периодов, 4 для будних дней и по 4 отдельно для субботы и воскресенья
Tuya Smart
Теперь перейдем к системам управления. Начнем с родной для термостата — Tuya Smart. Для сопряжения устройство с zigbee шлюзом, подойдет любой экосистемный, нужно в выключенном состоянии зажать правую нижнюю кнопку на 8 секунд, пока экран не начнет мерцать.
В приложении Tuya Smart, нажимаем подключить новое устройство и в разделе мелкой бытовой техники ищем zigbee термостат. Далее указываем шлюз, с которым будет соединено устройство.
Теперь нужно немного подождать пока пройдет процесс синхронизации и термостат появится в общем списке и списке устройств того шлюза который им непосредственно управляет. После этого термостат синхронизирует время и день недели с смартфоном, время корректное — не китайское.
Плагин термостата стандартный — большую часть окна занимает круговой регулятор целевой температуры, в центре — текущая температура. Первая внизу кнопка — включает логику термостата делая регулятор активным. Следующая кнопка — это режимы, ручной и по расписанию, по умолчанию — ручной — hold.
Program — это режим работы по расписанию, само же расписание настраивается третьей кнопкой, все те же 12 режимов, для будних дней субботы и воскресенья, только тут это нагляднее и удобнее.
И последняя, четвертая кнопка — это меню настроек. Родители маленьких детей оценят опцию детской блокировки, отключающей физическое управление термостатом. Здесь же можно откорректировать показания текущей температуры в пределах 9 градусов в обе стороны.
Далее идет настройка верхнего лимита температуры — максимум 45 С. Настройка DeadZone — это гистерезис, по умолчанию 1 градус, максимум 5. Это минимальная разница между текущей и целевой температурой для включения нагрузки. Например по умолчанию — целевая температуры должна быть более чем 1 градус выше текущей. Также тут есть настройка внешнего сенсора, на этом остановимся подробнее.
Здесь есть три опции, каждая состоит из двух букв, запомним их — они нам еще пригодятся. IN — это внутренний, встроенный в сам термостат датчик температуры. Его логично использовать для контроля температуры воздуха.
OU — внешний датчик, тот что идет в комплекте на проводе. Если его отключить от термостата в этом режиме — то на экране появится сообщения об ошибке. Такой датчик можно использовать для контроля температуры теплого пола.
И AL — тут используется 2 датчика, показания текущей температуры — от внутреннего, а внешний используется как предохранитель, контролируя нагрев теплого пола.
Автоматизации
В автоматизациях, термостат, как и подавляющее большинство других устройств экосистемы, может работать как триггер или условие — например отслеживать состояние термостата, включен или выключен.
Так же как триггер или условие можно использовать состояние нагрузки, именно ее тут назвали клапаном, переключение режима и значение текущей температуры.
Кроме этого — термостат работает и как действие автоматизации, тут меньше опций, но все основные есть — включение и выключение термостата, имеется в виду именно термостат а не его нагрузка, изменение режима работы.
Также в автоматизациях можно установить и целевую температуру и лимит ее установки, можно на лету менять тип сенсора.
Тестирование
Тестирование логики термостата в режиме реального времени можно увидеть в видео версии обзора.
Тест проводился так — термостат работает от внешнего датчика, который помещен в лампочку, она выполняет роль нагрузки. Текущая температура — 22 С.
Ставим целевую температуру 25 С, что приводит к включению нагрузки — лампочка, а следом за ней и датчик, начнет нагреваться. Напомню целевая температура должна превышать текущую не меньше чем значение настройки параметра гистерезиса — DeadZone.
После того как температура на датчике сравняется с целевой — термостат отключит нагрузку.
Так же в видео версии можно увидеть скорость работы в связке приложение — термостат и термостат — приложение
Скорость работы через приложение весьма неплохая. Иногда бывают небольшие задержки, но в целом все быстро. В этом Tuya, по моему мнению, превосходит mihome.
Обратная связь — аналогично, интересно что шаг изменения целевой температуры на термостате — 0,5 градуса, а в приложении — 1 градус.
Google Home
Аккаунт Tuya Smart подключается к Google Home и устройства из него пробрасываются в него. Термостат — не исключение, так что владельцы умных колонок и мониторов от Google смогут устанавливать желаемую температуру и при помощи голосовых команд Google Assistant. Скорость отклика тоже достаточно высокая для обеспечения комфортной работы.
Zigbee2mqtt
Термостат поддерживается в интеграции zigbee2mqtt, процесс подключения — стандартный, в веб интерфейсе включаем разрешение добавления новых устройств, а на выключенном термостате — зажимаем правую кнопку на 8 секунд.
После прохождения опроса и интервью — устройство добавляется в систему и появляется в общем списке интеграции.
Термостат имеет стационарное питание и поэтому является роутером для других zigbee устройств — которые могут подключаться к нему, в том числе и другие роутеры. Это позволяет расширять и радиус действия сети и увеличить ее емкость по количеству подключенных устройств.
Интеграция позволяет управлять всеми необходимыми параметрами термостата — часть из которых выведена в веб интерфейсе, на странице устройства, в вкладке Exposes. Отсюда можно установить целевую температуру, включить детскую блокировку, установить режим работы.
Антиспам
Многие слышали о проблеме связанной с этим термостатом, она заключается в том, что устройство генерирует большое количество сообщений, буквально десятки каждую минуту. Но в интеграции есть лекарство, устраняющее эту проблему.
Пользуясь случаям покажу как при помощи аддона File Editor редактировать файлы которые находятся за пределами папки config — на примере правки файлов zigbee2mqtt. Для это в меню Supervisor — Dashboard, выбираем File Editor и переходим в раздел конфигурации. Там необходимо отключить опцию принудительно удерживающую аддон в корневой папке — как показано на правом слайде. После сохранения аддон нужно рестартовать.
После этого, вы сможете, нажав на стрелочку влево, выйти за пределы папки config. Для наших целей нужна папка share, которая находится на одном уровне с config, а в ней — папка аддона zigbee2mqtt.
Здесь нам нужно отредактировать файл devices.yaml, который содержит перечень и настройки подключенных устройств.
Находим подключенный термостат, он представлен двумя строчками — техническим именем и friendly — для отображения в интерфейсе.
Добавляем к нему строку debounce с значением 1, после чего сохраняем измененный файл. Кстати таким же способом добавляются опции и для других устройств, описание которых есть на сайте zigbee2mqtt
После рестарта zigbee2mqtt и применения настроек — количество сообщений значительно уменьшается то 1 — 2 в минуту, что более чем нормально для таких устройств и не создает проблем при работе.
Home Assistant
В Home Assistant устройство состоит из трех сущностей — домена климат, которая является термостатом, замок — это детская блокировка и сенсор качества сигнала.
Расширенная информация о текущих параметрах термостата — доступна в виде атрибутов которые примаплены к сущности климат.
Их можно менять в том числе и через MQTT — я использую очень удобное приложение MQTT Explorer. Покажу как это происходит. В топик с именем устройства, в субтопик set — передается параметр и его значение, например это включение и выключение.
Аналогично и переключение режима работы — ручной или по расписанию. Хотя ручной наверное не самое точное название, скорее это фиксированный режим поддерживающий заданную целевую температуру.
Помните, в разделе про Tuya Smart я говорил запомнить названия для установки сенсора, они состоят из двух букв — вот так можно передавать их в параметр sensor, чтобы менять источник данных по температуре. По этому образу и подобию можно задавать и остальные параметры термостата, если их нет в интерфейсе.
Потому что в интерфейсе, где кстати удобно использовать штатную карточку климата — легко поменять все основные параметры — и целевую температуру и режим, включить и выключить термостат, влазить в MQTT для этого не нужно, а вот тип сенсора — тут отсутствует.
Конечно публиковать изменения сразу в топик MQTT — не очень удобно, тем более что этот процесс можно обернуть в виде шаблонного выключателя. В этом примере — два свича, первый из которых принимает статус включено когда установлен внутренний сенсор, второй — внешний.
А действия этих при включении этих свичей — публикация в топике термостата уже рассмотренных нами значений для параметра сенсор.
При выключении — действия одинаковы — публикация значения AL. Это дает нам нужные три варианта настроек — IN, OUT или AL — когда оба свича будут выключены. Этот код доступен в текстовом виде.
SLS Gateway
И, напоследок, пару слов оSLS шлюзе — здесь термостат тоже поддерживается, правда на момент публикации этого видео, еще не была загружена его картинка, но это никак не влияет на его функциональность.
В Home Assistant пробрасывается чуть по другому — нет сущности детского замка, зато есть сенсоры показывающие тип сенсора и режим. В остальном управление аналогично zigbee2mqtt
Кроме одной очень важной детали — здесь, по крайней мере на дату этого видео, нет решения проблемы для потока сообщений от термостата. Как видно на этих слайдах показывающих историю изменения топика устройства — они идут беспрерывным потоком. Поэтому, пока проблема не будет исправлена, его лучше использовать в zigbee2mqtt