Fibaro Home Center 2: управление радиаторами - «Умный Дом и решения»
- Bush
- 07-апр-2017, 08:34
- 0 комментариев
- 1 138 просмотров
Статья написана в 2017 году, когда не было ни радиаторных термостатов Fibaro Heat Controller, ни термостатов тёплого пола Heatit. Тут описаны алгоритмы на Lua, которые могут быть полезными, поэтому не удаляю её.
Продолжаю писать про настройку системы управления климатом на оборудовании Z-Wave.
Задача была описана в посте Управление климатом на Z-Wave: Подбор оборудования. Мы управляем радиаторами и электрическими тёплыми полами в загородном доме. В качестве контроллера используем Fibaro Home Center 2.
Взяты несколько сервоприводов Danfoss с поддержкой Z-Wave и посадочным местом М30х1,5.
Вот он на батарее. При перекрывании линии горячая вода идёт через байпас, минуя радиатор.
Привод работает от двух батареек АА. Вставляем батарейки, выбираем в меню Home Center добавление устройства и сразу привод появляется в интерфейсе.
Он появляется в виде двух устройств — датчика температуры и привода. То есть, мы можем независимо использовать показания датчика температуры и функции привода. Поскольку датчики на приводах нам не нужны, у нас отдельный термостат, я пометил их галочкой «не отображать», чтобы не путаться. Напомню, что задача у меня стоит сделать так, чтобы привод работал по показаниям датчика температуры термостата. Если привод будет ориентироваться по собственному датчику, то температура будет неверной, так как датчик греется от радиатора.
А есть ещё вариант, при котором термостат установлен не на радиаторе в комнате, а на коллекторе радиаторного отопления в другом помещении, там нам датчик температуры не нужен точно.
Также запрограммировал термостат Secure C21. Он накладной, крепится на стену в удобном нам месте. Работает от двух батареек ААА. На экране можно видеть текущую температуру и заданную температуру, меняется режим отображения нажатием на колесо. А когда крутим колесо, меняется уставка температуры.
Термостат также обнаружился в системе как термостат (с которого выставляем температуру) и как датчик температуры, два разных устройства. В итоге комната у меня выглядит следующим образом:
В комнате термостат, датчик температуры и 4 сервопривода.
Программировать совместную работу будем в редакторе сценариев. Там есть блочный редактор (если — и — или — тогда), но в нём нет многих возможностей, и скриптовый редактор. Скрипты мы можем писать на языке LUA (Википедия). Это открытый скриптовый язык, похожий на Java Script или С.
Разобраться в языке достаточно несложно, я читал инструкцию на сайте Fibaro в разделе Support. Написал для начала такой несложный скрипт:
Самая верхняя строчка «11 value» означает, что при измерении параметра value (то есть, уставка температуры) устройства 11 (термостата настенного) этот скрипт выполняется. Мы снимаем уставку термостата, записываем её в переменную temp_set. Затем снимаем с датчика температуры (устройство 12) температуру и записываем в переменную temp. Сравниваем. Если заданная температура выше текущей (в примере у меня написано, что должна быть на 3 градуса выше, это я экспериментировал), то розетку (устройство 3) включаем, если нет, то выключаем.
Работает! Кручу колесо термостата, как только выставляю температуру выше текущей, розетка щёлкает и включается. Каждый раз, когда меняю уставку температуры, скрипт выполняется и сравнивает. По сценарием окно debug, в него выводится информация, которую я задаю командами fibaro:debug.
Аналогично с сервоприводами радиаторов. Я должен сделать скрипт, работающий при изменении состояния уставки температуры или самой температуры на датчике. Если заданная температура выше текущей, то мы выставляем на сервоприводе заведомо высокую уставку температуры, например, 40 градусов, чтобы он открылся. Просто приказать ему открыться мы не можем, такой команды нет. Когда надо закрыться, выставляем уставку 10 градусов. Привод ориентируется при этом по собственному датчику температуры, но заведомо высокая и низкая уставки позволяют нам им управлять.
Это, я хочу сказать, достаточно непродуманно и неудобно. Было бы лучше, если бы была возможность заставить привод ориентироваться по датчику температуры комнаты напрямую, но такой функции я не нашёл. Получается, что на контроллере Fibaro Home Center Lite, где не поддерживаются LUA сценарии, мы не могли бы реализовать такой алгоритм.
При расположении приводов радиаторов на коллекторе разумнее ставить там обычные проводные приводы с питанием 230 вольт, Oventrop или Siemens, а питание на них подавать от модулей Fibaro Relay 2. Модулю реле мы сможем подавать команду включения и выключения напрямую. И такое решение получится дешевле и без батареек, надо только провести питание для релейных блоков в коллекторный шкаф.