
В этой статье я хотел бы описать свой личный опыт по подключению теплого плёночного пола к умному дому под управлением системы Domoticz.
Сам тёплый пол. В моём случае используется корейская плёнка премиум класса HeatPlus 11, заявленная мощность порядка 220 Ватт на квадратный метр. В качестве исполнительных устройств — управляемые реле Sonoff Basic и Sonoff TH16 с прошивкой ESPEasy. Общее управление осуществляет система умного дома Domoticz.

Рассказывать о укладке самого теплого пола много не буду, тут все просто — делаем по инструкции. «Пирог» тёплого пола получился такой:
- Деревянное перекрытие
- OSB 12мм для выравнивания пола и придания ему жесткости
- Фольгированная теплоизоляция Стенофон толщиной 5 мм
- Маты теплого пола HeatPlus 11
- Ламинат
Подключение матов теплого пола осуществлялось методом пайки проводов к медным жилам, провод медный, многожильный, сечение 2.5 квадрата.
Дальнейшее описание будет о теплом поле в спальне, в остальных местах все сделано по аналогии. Площадь спальни около 25 квадратных метров, площадь уложенных матов с учетом мебели составила около 10 квадратных метров. Теоретическое потребление электроэнергии должно составить 2.2 кВт/час
Электронная начинка

В качестве исполнительного устройства я использовал умное реле Sonoff TH16 с прошивкой ESPEasy. Датчик температуры пола ds18b20. Температуру в помещении измеряет датчик температуры Xiaomi.
Настройка GPIO выходов на Sonoff TH16 представлена на скриншоте ниже.

После довольно долгих экспериментов получилась такая конфигурация. За что отвечает каждый «task»:
- Температура с датчика DS18b20. Датчик установлен под теплым полом, показывает текущую температуру плёночного теплого пола. Нужен для контроля, что бы не перегреть плёнку.
- Реле. Отвечает за подачу питания на непосредственно сам теплый пол
- Кнопка на корпусе. Ручное управление полом на случай отключения Domoticz
- Виртуальная кнопка (нет привязки к GPIO). По этой переменной реле получает сигналы от умного дома на включение/отключение. Эта кнопка отвечает за начало цикла подогрева.
Часть управления логикой работы вынесена из Domoticz непосредственно с сам Sonoff TH16. Это сделано по двум причинам. Первое — ручное управление на случай отключения/поломки ядра умного дома — а именно сервера с работающим на ним ПО Domoticz. Второе безопасность — максимальная температура пола задана в самом Sonoff, при её достижении он самостоятельно отключает питание на теплый пол, не дожидаясь сигнала от умного дома. Это нужно на случай глюков и отключений Domoticz. Код внутренней логики представлен ниже:
on Temp#Temperature<33 do if [HeatingStart#Start]=1 gpio,12,1 else gpio,12,0 endif endon on ButtonHeat#Switch=1 do if [HeatingStart#Start]=1 TaskValueSet 4,1,0 SendToHTTP *.*.*.*,8080,/json.htm?type=command&param=switchlight&idx=***&switchcmd=Off else TaskValueSet 4,1,1 SendToHTTP *.*.*.*,8080,/json.htm?type=command&param=switchlight&idx=***&switchcmd=On endif endon on Temp#Temperature>35 do gpio,12,0 endon on System#Boot do gpio,12,0 endon
Исходя из кода видно что ручное управление меняет статус виртуальной кнопки, которая в свою очередь запускает цикл подогрева в зависимости от температуры. В моем случае получается что при включении пол греется до 35 градусов, потом отключается. Как только температура упадёт ниже 33 градусов он опять включается. И так по кругу, пока не будет достигнута нужная температура в комнате и не поступит команда от Domoticz на отключение (или не произойдет ручное отключение нажатием кнопки на корпусе).
Domoticz и управление теплым полом



В Domoticz’е теплый пол у меня представлен двумя виртуальными кнопками и датчиком температуры. Первая кнопка отвечает за запуск скрипта, вторая за передачу команд на сам теплый пол (хотя это можно было сделать в коде, но так вроде как «изящнее» получается 🙂 ).
Ниже представлен код с подробными комментариями, дополнять думаю что то не нужно. Код написан на языке dzVents.
-- 27.03.2019 by Sl1ng3R -- Логический термостат для управления теплым полом return { on = { devices = { 'Спальня. Обогрев', 'Спальня' } }, execute = function(domoticz, device) local TargetTemp = 22 -- Заданная температура (возможно перевести на setPoint от термостата) local HeatButton = domoticz.devices('Спальня. Обогрев') -- Логический выключатель обогрева в комнате local BedroomTemp = domoticz.devices('Спальня') -- Температура в комнате local HeatStart = domoticz.devices('Спальня. Теплый пол') -- Логический выключатель теплого пола if (BedroomTemp.temperature < TargetTemp and HeatButton.state =='On') then -- Если температура в комнате ниже 22 и нажата кнопка обогрева if (HeatStart.state =='Off') then -- Если теплый пол выключен HeatStart.switchOn() -- то включаем его elseif (HeatStart.state =='On') then -- если уже был включен, ничего не делаем end elseif (BedroomTemp.temperature > TargetTemp and HeatButton.state =='On') then -- Если температура в комнате выше 22 (либо уже нагрели, либо подогрев вообще не нужен) и нажата кнопка обогрева if (HeatStart.state =='On') then -- Если теплый пол включен HeatStart.switchOff() -- то выключаем его elseif (HeatStart.state =='Off') then -- если он уже выключен HeatStart.switchOff() -- то на всякий случай повторяем команду, бывали случаи когда из за потери связи команда не проходила end elseif (HeatButton.state =='Off') then -- Если кнопка обогрева выключена if (HeatStart.state =='On') then -- а теплый пол включен HeatStart.switchOff() -- то выключаем его elseif (HeatStart.state =='Off') then -- если пол уже выключен HeatStart.switchOff() -- то на всякий случай повторяем команду, бывали случаи когда из за потери связи команда не проходила end end end }
Управление реле из Domoticz’а происходит посредством http запросов на sonoff th16. Пример запроса виден на картинке ниже:

По итогу у меня получился следующий «цикл» — если включен обогрев в спальне, умный дом смотрит какая сейчас температура, если она ниже 22 (как в скрипте задано), то он посылает команду sonoff’у на включение, тот в свою очередь в цикле греет пол с 33 до 35 градусов. Когда температура в комнате становится выше 22 градусов — умный дом даёт команду sonoff’у на отключение. Вот в принципе и все. Система у меня работает уже около трех недель, пока полёт нормальный, мелкие глюки были устранены в процессе эксплуатации.
Если кому то интересно понимать на сколько это экономично, ниже скриншот логов включения теплого пола (на лишние off не обращайте внимание, это перестраховка на случай падения wifi в доме и не прохождения команды до sonoff’а).

Получается что за ночь теплый пол включался всего три раза, примерно на 20 минут. Это при условии что на улице было -6 градусов и ветер. Ниже лог температуры в помещении:

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