Благодарности: денежное общество и мойка авто

Умный дом. Трёшка. часть 2. Управление контурами отопления.

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

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

Сразу хочу отметить, что использование в системе отопления теплого пола позволяет снизить затраты на отопление на 10-15 процентов по сравнению с батарейным отоплением, при управлении отоплением количество времени когда клапаны были закрыты составило примерно 40%, при этом топлива за зиму когда работали клапана истрачено на 25% меньше (3 тонны пеллет вместо 4-х) по сравнению с тем, когда клапана не работали. (в первую зиму клапана не работали из-за отсутствия платы реле).

Сначала необходимо сделать контуры отопления отдельно на каждое помещение для того, чтобы регулировать отопление в каждом помещении. Установить на гребенке клапана и на клапана термические сервопривода на 220 вольт. Вот такие как показано на фото из одного моего проекта.

Настраиваем мониторинг температуры в помещениях.

В первую очередь необходимо настроить мониторинг температуры, для этого в помещения необходимо установить датчик температуры чтобы он отправлял данные о температуре на сервер MajorDoMo (далее по тексту МД), реализовать эту задачу можно разными способами, в первых проектах я использовал адаптер DS9490R, в помещениях установлены телефонные розетки которые соеденены паралельно и в которые устанавливаются датчики температуры обжатые следующим образом

Это пожалуй самый простой вариант и быстрый в монтаже и на мой взгляд правильный, но сейчас стоимость за адаптер DS9490R подвалила к 4000 рублей. По такой же схеме подключить в качестве адаптера ESP8266 не получилось, при длинне провода больше 2-3 метров датчики не видились. Ардуино UNO в этой схеме ещё предстоит попробывать, жду Ethernet шилд с Али.

Не важно как будет температура попадать с систему MajorDoMo, главное чтобы она была в каком нибудь свойстве какого нибудь объекта, я рекомендую добавить температурные датчики в качестве свойства к объекту ThisComputer, поскльку у меня три помещения, то и свойства температуры будет 3: temp1, temp2, temp3, добавляем эти свойства в Объекты — Объект: ThisComputer, вкладка Свойства

Как привязать свойства датчика к этому свойству можно найти на официальном сайте МД, например связать датчик температуры ds18b20 к этому свойству необходимо войти в меню Устройства — ESP8266 (Wifi-IoT), выбрать там устройство к которому подключен датчик температуры, нажать кнопку «Редактировать», выбрать вкладку Данные, и напротив датчика температуры установить связанный объект ThisComputer связанное свойство temp1

Теперь мониторинг температуры у нас натроен.

Настройка выключателей клапанов.

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

В принципе в дефолтной системе уже есть один выключатель, заходим в меню Объекты, класс Relays объект Switch, для добавления выключателей просто клонируем данный выключатель. Если нет выключателя, то добавьте класс Relays

У класса Relays должны быть (синим добавленные свойства и методы, их нет в дефолтной настройке МД):

свойства класса Relays: status и esp_status

методы класса Relays: refresh switch turnOff turnOn esp_switch

метод код
turnOn $this->setProperty(«status»,1);
turnOf $this->setProperty(«status»,0);
switch $status=$this->getProperty(«status»);
if ($status) {
$this->callMethod(‘turnOff’);
} else {
$this->callMethod(‘turnOn’);
}
refresh $status=$this->getProperty(«status»);
if ($status) {
$this->callMethod(‘turnOn’);
} else {
$this->callMethod(‘turnOff’);
}
esp_switch $status2=$this->getProperty(«esp_status»);
$status=$this->getProperty(«status»);
if ($status2) {
if ($status) {
$this->callMethod(‘turnOff’);
} else {
$this->callMethod(‘turnOn’);
}
}

Добавляем наш выключатель, назовем его Switch1, Switch2 и т.д.

Далее можно включение сделать двумя способами, либо в одном сценарии, либо в методах turnOff turnOn каждого объекта Switch*, у меня сделано в методах каждого объекта, но скорее всего я переделаю в отдельном сценарии.

Вариант 1. Включение/выключение в методах объекта.

заходим в методы объекта Switch1

у меня методы turnOff и turnOn отличаются от аналогичных методов класса по этому напротив этих метолов стоит красная звездочка (символ астериск)

Нажимаем кнопку «Настроить» напротив методоd turnOff и turnOn и пишем код для этих методов. в таблице коды методов для управления разными силовыми блоками.

Силовой блок turnOff  turnOn примечание

На базе ESP8266 с прошивкой wifi-iot

getURL («http://192.168.1.21/gpio&st=0&pin=13»,0); getURL («http://192.168.1.21/gpio&st=1&pin=13»,0); включение/выключене GPIO13 ESP8266
iMatic exec («python /var/www/imatic.py 16 0»); exec («python /var/www/imatic.py 16 1»); включение/выключене GPIO16 iMatic, скрипт и настройка iMatic тут.

Вариант 2. Включение/выключение в сценарии.

создадим сценарий, например с названием scene_switch

методы класса Relays turnOff turnOn приведем к следующему виду.

метод код
turnOn

$this->setProperty(«status»,1);

callMethod(‘scene_switch’);

turnOf

$this->setProperty(«status»,0);

callMethod(‘scene_switch’);

теперь все включения/выключения делаем в этом сценарии, пишем код в сценарииscene_switch.

теперь для добавления необходимо просто добавить объект Switch и дописать код путем копирования/вставки в скрипт scene_switch.

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

Настройка регулировок.

Теперь нам надо настроить установку температуры в помещениях и температуру в режиме экономии. Добавим в объект ThisComputer свойства temp1u, temp2u, temp3u и temp_econom это будут установки температуры для 1,2 и 3 помещения и для температуры в режиме экономии соответственно.Далее в меню управления добавим раздел Настройки, тип select

Добавим дочерний пункт кнопкой «Добавить»

Пишем название помещения и тип: слайдер

связываем с объектом ThisComputer и со свойством temp1u, устанавливаем максимальное и минимальное значение и шаг

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

при использовании режима экономии необходимо так же сделать переключатель в режим экономии, по умолчанию есть для него свойство ThisComputer.Econom

Настройка автоматического управления контурами отопления.

теперь нам надо написать сценарий, который будет сравнивать температуру и запускать тот или иной метод.

В следующей таблице соответствия реле и температуры помещениям

Помещение реле датчик температуры установка температуры
детская Switch13 ThisComputer.temp1 ThisComputer.temp1u
зал Switch14 ThisComputer.temp2 ThisComputer.temp2u
спальня Switch15 ThisComputer.temp3 ThisComputer.temp3u

В сценариях создадим сценарий Econom

 

Теперь осталось запуск сценария прописать в метод onNewMinute объекта ClockChime в конец добавляем:

На этом настройка закончена, осталось подключить клапана к соответствующим реле.

Поделиться в соц. сетях

Опубликовать в Facebook
Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс