Home assistant привод радиатора

Автоматизация — Управление обогревом помещения в 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 минут выполняется проверка превышения температуры и по необходимости отключение.

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

Источник

Управляем конвектором и термостатом Electrolux из Home Assistant. Часть 1

Предисловие

Около 2-х лет я являюсь пользователем Home Assistant и постепенно обживаюсь устройствами, которые хочется туда интегрировать. Одним из таких устройств стало мое относительно недавнее приобретение: конвектор от Electrolux.

Изначально я рассматривал обычный конвектор, которым планировал управлять через умную розетку. В процессе изучения моделей конвекторов, мой интерес сместился на современные модели, которыми можно управлять через интернет из «коробки». Хотя они и стоят дороже решения с «розеткой», любопытство взяло верх и выбор остановился на модульном конвекторе от Electrolux, который на фоне конкурентов приглянулся по дизайну.

Со своей задачей, как устройство, конвектор справился зимой на отлично. Им я очень доволен.

Боль и первая попытка управления вне приложения

А вот управление через мобильное приложение приносило только огорчение.

Долгое подключение к серверу, иногда с N-го раза. Частая недоступность устройства и переживания за безопасность. Еще ложкой дегтя стало отсутствие решений для интеграции в «умные дома».

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

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

На этом мои руки опустились в надежде позже попытаться еще раз.

Второй опыт

Все изменилось в марте, когда я увидел статью Реверс-инжиниринг протоколов управления конвектором. После ее прочтения появился стимул еще раз попытать счастья и проверить информацию автора.

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

2 вечера ушло на то, чтобы разобраться в алгоритме шифрования

и написать простенький клиент на PHP (так как я долгое время работаю преимущественно с ним) и реализацию алгоритма шифрования на Python.

В процессе выяснил, что для каждого языка есть свои нюансы в функциях шифрования. Пришлось написать решения на Java, Python и PHP, чтобы убедиться, что шифрование/расшифровка работают как нужно. Например, в приложении используется PKCS7Padding, в других же языках нужен PKCS5Padding или же писать свою реализацию.

Таким образом через несколько вечеров уже был клиент на PHP, который позволял логиниться и общаться по TCP с сервером.

По моему мнению получившийся MVP можно было считать успехом. Часть 2

Источник

Как настроить 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

Источник

Автоматизация отопления в умном доме: электрическая термоголовка, Mi Home, Home Assistant, термостат

В этом обзоре мы поговорим о автоматизации управления отоплением в доме и я расскажу про свой собственный кейс, реализованный на электрических термоголовках Danfoss, управляемых розетках и датчиках температуры. Описанный принцип можно применить и для регуляторов теплого пола, электрических радиаторов и даже кондиционеров.

Содержание

  • Термоголовка из обзора Danfoss TWA-A NC 230B — розетка UA — цена на момент публикации 536 грн
  • Термоголовки на Aliexpress (пример — вариантов много)

Термоголовка

В своей реализации я использовал электрическую термоголовку Danfoss TWA-А — для клапанов RA под напряжение 230 В.

Вариант — NC — нормально закрытый, это значит то для открытия клапана, на термоголовку надо подать напряжение.

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

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

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

Крепится эта термоголовка при помощи стопорного винта. Внутри нее скрывается механизм, которые нажимает на клапан перекрывая его, при включении питания он отводится и открывает его.

Установка

Полностью процесс установки можно посмотреть в видеоверсии обзора (ссылка в конце текста)

У меня на батареях стояли обычные механические терморегуляторы, снимаются они легко, без инструментов

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

Только после этого снимается пластиковая скоба — клапан перекрывается

В момент установки температура поверхности батареи была почти 48 градусов. После снятия скобы и перекрытия клапана она стала падать, и через час составляла 23 градуса.

Включаем клапан в розетку, в момент включения потребление составило почти 20 Ватт, почти сразу упало вдвое, и потом плавно уменьшалось, к полному открытию, которое заняло почти 5 минут, до 3 Ватт.

Подробнее — можно посмотреть в видеоверсии обзора (ссылка в конце текста)

В течении 15 минут — температура поверхности батареи поднялась до 49 градусов

Mihome

Управлять этим можно например в Mihome — используя различные связки, например Zigbee датчика и розетки, или wi-fi удлинители или розетки, а температуру брать можно и с увлажнителя и с очистителя воздуха. Скажем при снижении температуры менее 21 градуса — включать

И аналогичный сценарий — на выключение при достижении комфортной температуры, тем самым поддерживая ее в желаемых пределах.

Можно использовать вариант связки какого-то из Bluetooth датчиков, при использовании новой wi-fi розетки с BLE шлюзом — они смогут работать просто в паре друг с другом. Кстати вместо розетки и удлинителя можно использовать и проводной выключатель

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

Home Assistant

Моя конфигурация Home Assistant на github

Новая серия моих уроков по Home Assistant на Youtube

Для тех кто уже наигрался с Mihome — рассмотрим штатный компонент Home Assistant — термостат. Для него нужно создать, если еще нет, раздел климат. Как обычно я выношу его в отдельный файл.

В нем для каждой термоголовки создается отдельная сущность на платформе generic_thermostat. Следующей строкой — его имя в системе, давайте рассмотрим все его параметры

heater — название розетки которая будет управлять нашей термоголовкой

target_sensor — это название датчика температуры, по которому будет работать термостат

target_temp — целевая температура, в градусах С, та которая будет устанавливаться при запуске home assistant

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

min_temp, max_temp — это минимум и максимум на шкале термостата, пределы в которых им можно будет управлять

ac_mode — это режим включает охлаждение, то есть при его активации. розетка heater будет включаться при превышении целевой температуры, а выключаться при понижении

cold_tolerance, hot_tolerance — допуски для включения и выключения, в градусах С. В данном примере — 0,5 градуса, это значит что включаться розетка будет при температуре ниже чем 20,5 С а выключаться при превышении 21,5 С — при целевой температуре 21С.

min_cycle_duration — это минимальный период в котором будет находится термостат в режиме включено или выключено, может быть в секундах или минутах, с учетом времени открытия термоголовки я поставил 5 минут

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

initial_hvac_mode — это состояние термостата после загрузки Home Assistant — может быть выключено, режим поддержания тепла heat или холода — cool

Для отображение термостата в интерфейсе lovelace существует специальная карта

Выглядит она так — по кругу ползунок для установки целевой температуры, в центре большими цифрами — текущая температура, под ней — целевая температура, потом режим работы — Бездействие, когда розетка выключения или Обогрев когда включена, и preset — Дома или Не Дома. Внизу две иконки — Обогрев и выключено и название термостата

Например при заданной температуре в 24С и текущей в 23.8С — она попадает в параметры допуска и термостат не включается. А если повысить до 26С, тогда включается розетка которая открывает термоголовку.

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

Слева пример скрипта который переводит термостат в режим Дома preset_mode: none . Справаскрипт переводит термостат в режим preset_mode: away — Не дома, второй сервис устанавливает целевую температуру в 19 градусов. Режимы Дома и Не дома — имеют свои целевые температуры и помнят изменения до момента перезагрузки сервера.

Это пример одной из моих автоматизаций, которая запускается каждые 5 минут или по смене состояние темплейт сенсора Режим нагрева. Если он включен — термостат переводится в режим Дома, выключен — Не дома.

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

Сейчас у меня трудится четыре термостата, что позволяет не только автоматически поддерживать температуру на комфортном уровне, но и экономить на отоплении не грея воздух тогда, когда никого нет дома.

Видеоверсия обзора

Источник

Оцените статью
Авто Сервис