Всем привет!
Хочу рассказать как я с помощью Domoticz настроил управление электрическим отоплением небольшого дачного дома. Эта тема будет разбита на две части, в этой я расскажу о настройке режимов температуры, алгоритме автоматизации, а в следующей о том, как настроить удаленное управление с помощью смартфона через интернет.
Для чего мне это понадобилось? Моя дача отапливается электричеством, в теплые летние месяцы отопление почти всегда выключено, но в холодную погоду постоянно включенное отопление потребляет немало электроэнергии. Каждый раз включать и отключать его по приезду тоже не вариант, т.к. нужно много времени, чтобы нагреть остывший дом. Спать в холодной постели удовольствие не большое. Поэтому решил, настроить отопление так, чтобы в мое отсутствие поддерживалась температура в районе 14 - 18 градусов. А когда я планирую приехать на дачу, то даю команду через интернет и к моему приезду дом прогрет до комфортной для человека температуры.
Хочу сделать предупреждение - если вы планируете управлять нагревательными устройствами с помощью системы умный дом, то убедитесь, что не возникнет пожара, если по каким-то причинам нагреватель не будет отключен при достижении заданной температуры! Например, была подана команда на включение, а потом кто-то нечаянно отключил устройство, которое является "мозгом умного дома", мышь провод перегрызла и т.п. Или нагреватель подключен к некачественному реле, у которого контакты "залипли" во включенном состоянии. Так же не стоит экономить и подключать потребители большой мощности через маломощные реле, чтобы те в свою очередь не стали причиной пожара. В общем, все продумайте, чтобы не остаться без имущества. А если в этом не понимаете сами, то обратитесь за помощью к специалистам.
Имейте в виду - я не электрик-профессионал, поэтому используйте то, что написано в данной статье на свой страх и риск, в соответствии со своим пониманием данного вопроса. Примите меры, чтобы не случилось беды! А если я что-то сделал неправильно, то укажите на ошибку и расскажите как надо делать. Разумная критика приветствуется.
В качестве отопительных приборов на даче я использую электрические конвекторы с нагревательными элементами, которые не разогреваются до высокой температуры, чтобы случайно попавший на них мусор не воспламенился. Для предотвращения перегрева, внутри прибора установлен термостат, который размыкает питающую цепь, если отопитель сильно разогрелся. Ну и в добавок имеется термостат, который настраивается пользователем на поддержание определенной температуры внутри помещения. Поэтому, даже если по каким-то причинам отопление будет включено все время, то температура внутри помещения, в моем случае, не поднимется до критических значений.
Итак, имеется роутер D-Link DIR-825I с умным домом, недорогой датчик температуры и влажности, работающий по Zigbee.
Разводка электричества в доме сделана так, что для подключения отопительных приборов используется отдельная линия. Запитываться эта линия будет через Zigbee-реле Tongou TO-Q-SY2-JZT, монтируемое на DIN-рейку в электрическом щитке. По заявлению производителя реле рассчитано на ток 63А. Амперы тут, возможно, "китайские", но отзывы на это реле в основном неплохие, да и отопление у меня больше 10А не возьмет, поэтому установил его со спокойной совестью. К тому же оно имеет встроенный датчик температуры, если он покажет ненормально большую температуру, то, возможно, реле нагревается из-за плохого состояния контактов или превышения нагрузки, и ее (нагрузку) следует в таком случае отключить.
Перейдем к настройке Domoticz. Сначала создадим две пользовательские переменные для установки максимального и минимального значений температуры, затем напишем скрипт, который будет включать и выключать отопление в зависимости от показаний датчика температуры.
Итак, в верхнем меню нажимаем кнопку "Setup", затем "More Options", далее "User variables". Откроется страница создания пользовательских переменных.
В разделе "Edit variable" даем переменной имя ("Variable name"), я указал "min_in_temp" для минимального значения температуры, выбираем тип переменной ("Variable type") - Integer, задаем начальное значение переменной "Variable value" - 14. Точно так же создаем переменную для установки максимального значения температуры. Я создал "max_in_temp" с начальным значением 18.
Теперь создадим скрипт управления обогревателем. Как делаются скрипты я описал в предыдущей статье, поэтому здесь буду излагать без подробностей.
Итак заходим в раздел "Events" и создаем новый блочный скрипт, вот такой:
Значение "Temperature" получаем от датчика температуры, в конфигурации датчика этот параметр у меня так и назван. Если в вашем случае система настроена как-то по другому, то название будет иным. Значение текущей температуры сравнивается со значениями пользовательских переменных, созданных нами на предыдущем шаге, и в зависимости от результата нагреватель включается или отключается. Даем скрипту имя, я назвал его "thermostating", и сохраняем.
Теперь добавим возможность установки нескольких температурных режимов.
Для этого нужно создать виртуальный переключатель. Нажимаем "Setup", затем "Hardware". Ниже таблицы с устройствами заполняем поле "Name", а в "Type" выбираем "Dummy (Does nothing, use for virtual switches only)". Остальное по умолчанию и нажимаем кнопку "Add".
Теперь в верху, в таблице устройств добавилось виртуальное устройство, в моем случае с именем "virt". Нажимаем на "Create virtual sensors".
В открывшемся окошке даем имя "сенсору" (у меня "heating_mode") и выбираем тип "Selector Switch".
Теперь находим наш виртуальный переключатель в таблице устройств (кнопка "Setup", далее "Devices") и "активируем" его, нажав на зеленый значок со стрелочкой справа, далее "Add".
Переходим в раздел "Switches" основного интерфейса и видим там наш переключатель.
У только созданного переключателя по умолчанию имеется четыре состояния, подкорректируем количество состояний и их названия. Нажимаем кнопку "Edit" и попадаем в раздел настройки переключателя:
Поменяем иконку переключателя "Switch Icon". В таблице уровней "Selector Levels" удалим лишний, в данном случае, уровень "Level3", нажав на значок корзины справа в строке таблицы. Другие два уровня переименуем, чтобы было понятнее, нажав на значок карандаша там же в таблице. У меня получилось вот так:
Остальные параметры оставляем как есть и нажимаем кнопку "Save". Теперь переключатель выглядит так:
Off - когда отопление выключено;
weak - режим поддержания невысоких значений температуры;
comfortable - комфортный для человека температурный режим.
Далее переходим к написанию скрипта. Для оценки состояния нашего виртуального переключателя будем использовать текстовое поле, которое находится в разделе "Logic".
Блоки для пользовательских переменных берутся в разделе "Devices" / "User variables". Привожу пример готового скрипта.
При изменении состояния переключателя "heating mode" будут устанавливаться соответствующие значения максимальной и минимальной температур. Скрипт, который мы составляли на предыдущем шаге ("thermostating") будет поддерживать температуру в пределах этих значений.
Слишком узкий температурный диапазон устанавливать не советую, т.к. при слишком частом переключении реле его ресурс будет вырабатываться быстрее.
На этом статью заканчиваю. Продолжение темы читайте тут.
Напомню, что ссылки на скачивание прошивок с "умным домом" для роутеров D-Link можно найти в Telegram-канале @dlink_ru_smart_home.
Рекомендую ознакомится с другими статьями по этой теме:
Часть 1. Запуск системы Domoticz.
Часть 2. Подключение к Domoticz устройств Zigbee.
Часть 3. Настройка Domoticz для работы с MQTT.
Часть 4. Автоматизация, блочные скрипты. Управляем вентиляцией.
Часть 6. Удаленное управление со смартфона, программа IoT MQTT Panel.
Всем доброго здравия! Пока!