Отопление под контролем. Погодозависимое управление

29 марта 2020, 16:15

В предыдущей статье  я рассказывал о том, как организовать взаимодействие контроллера Wiren Board 6 (WB6) с отопительным котлом при помощи универсального шлюза OpenTherm-Modbus.

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

Чем лучше утеплен дом, тем меньше его теплопотери и тем более пологой будет для этого дома отопительная кривая. Отопительные кривые рассчитаны для температуры в помещении 20°C. Если в помещении требуется иная температура, то кривая сдвигается вверх или вниз на определенную величину. Чем ниже температура теплоносителя, запрашиваемая от котла, тем меньше расход топлива. Значит, если при потеплении на улице котел будет подавать в отопительную систему менее горячий теплоноситель, то при сохранении комфорта в доме мы получим экономию топлива.

Котлы с интерфейсом управления OpenTherm, как правило, имеют возможность изменять мощность горелки в пределах от 20% до 100%. И это их свойство очень полезно для реализации погодозависимого управления. Вместо работы в режиме тактирования (вкл/выкл) котел плавно понижает мощность горелки для уменьшения температуры теплоносителя. При этом мы наблюдаем выдаваемую горелкой мощность в процентах в канале Modulation шлюза. Еще одним плюсом работы котла в режиме модуляции горелки является увеличение ресурса самого котла.

Исходные данные

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

Снаружи дома в правильном месте (на северной стороне) установлен датчик температуры воздуха. Данные с датчика наружной температуры должны быть доступны в WB6. Вплоть до того, что это могут быть данные с виртуального устройства или данные от внешней погодной станции. Для оперативного управления отоплением воспользуемся пультом управления ПУ-3, с которым нас познакомил в своей статье Александр Попов (@Popov_Alexander).

Реализация

После подключения универсального шлюза в предыдущей статье в интерфейсе WB6 имеется информация о состоянии котла. На WB6 создаем виртуальное устройство Thermo_Regulator. Для этого в WEB-интерфейсе WB6 заходим в меню Scripts и создаем новый скрипт Thermo_Reg.js

Жмем «Сохранить» вверху окна редактирования. В закладке Devices увидим новое устройство. С помощью этого устройства мы можем управлять работой отопления.

В поле OutsideTemp отображается температура на улице с внешнего датчика. Ползунком RoomTempSetpoint устанавливаем желаемую температуру в помещениях дома. Ползунком K устанавливаем коэффициент отопительной кривой. Этот коэффициент зависит от характеристик дома, в основном, от теплопроводности стен. Он подбирается опытным путем один раз и в дальнейшем его менять нет необходимости. Выключатель enabled позволяет выбрать автоматический (on) или ручной (off) режим задания целевой температуры теплоносителя для котла. В автоматическом режиме вычисленное значение целевой температуры отображается положением ползунка Setpoint. В ручном режиме можно самостоятельно задать для котла требуемое значение целевой температуры теплоносителя, передвинув ползунок. 

Расчет температуры теплоносителя, в зависимости от температуры на улице, можно реализовать на WB6 средствами правил wb-rules, но я выбрал альтернативный вариант – средствами node-red на этом же WB6 создал flow «Погодозависимый регулятор». Это стало возможным благодаря наличию в репозитории специализированной ноды node-red-contrib-wirenboard автора Andrej_Popov.

С помощью этих нод из WB6 считываются значения коэффициента температурной кривой K, величина желаемой температуры в помещении, текущая уставка целевой температуры котла, температура на улице и состояние виртуального переключателя управления «Авто/Ручное» и все эти данные записываются в соответствующие переменные flow. Каждые 300 секунд, то есть раз в 5 минут, функция «Вычисление температуры подачи по кривой» производит вычисление целевой температуры для котла по формуле, найденной в статье. Если переключатель стоит в положении «Автоматическое управление» ( enabled = 1), то вычисленное значение температуры записывается в канал Setpoint виртуального устройства thermo_reg. Если переключатель в положении «Ручное управление» ( enabled = 0), то в канале Setpoint остается значение, заданное ползунком вручную. Текущее значение температуры теплоносителя в котле индицируется на настенном пульте ПУ-3 на месте дополнительной температуры. Значение уставки желаемой температуры в помещении отправляется с ПУ-3 в канал RoomTempSetpoint виртуального устройства thermo_reg. 

Данный пример еще далек от совершенства, хотя и выполняет основные функции. Его следует рассматривать, как Application Notes – пример применения или отправную точку для тех, кто хочет оценить возможность тех или иных технических решений. Здесь можно добавить автоматическое понижение температуры в помещениях при отсутствии в доме людей, и восстановление комфортной температуры заблаговременно перед приездом обитателей дома. Можно менять температуру в помещении в зависимости от времени суток. Возможность такая есть . Её надо только реализовать в Вашем проекте по Вашим потребностям. Но это еще не все возможности, которые можно получить от связки WB6 и универсального шлюза OpenTherm-Modbus. И об этом – в следующий раз.


Все новости мира умных домов - t.me/SprutAI_News или Instagram
Остались вопросы? Мы в Telegram - @SprutAI

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. (Haggard)
    (Haggard) отредактировано 9 месяцев назад

    Во фрагменте кода №89 flow «Погодозависимый регулятор» у функции  "Вычисление температуры подачи по кривой", нужно исправить (Setpoint & gt; 80) на (Setpoint > 80)

    • Константин Бродкин (KVBr)
      Константин Бродкин (KVBr) 9 месяцев назад
      Проверил еще раз - в функции " Вычисление температуры подачи по кривой" (строка 9) именно так и написано:
      if (Setpoint > 80) { Setpoint = 80 }
      Если вычисленное значение целевой температуры превышает +80 градусов, то ограничить целевую температуру значением +80 градусов.

      • (Haggard)
        (Haggard) отредактировано 9 месяцев назад

        Константин, я не про арифметическую ошибку в коде, там все верно. При копировании фрагмента кода №89 и сразу импортировать его во flow, у меня в функции появляется ошибка т.к. знак  > в сравнении if кода на сайте заменился на  & gt; Точно так же произошла замена и во фрагменте кода №91. 

  2. Константин Бродкин (KVBr)
    Константин Бродкин (KVBr) 9 месяцев назад

    При проверке я тоже скопировал фрагмент с сайта, импортировал его во flow в оболочке node-red на своем тестовом компьютере и получил  if (Setpoint > 80) { Setpoint = 80 }
    Странно...

  3. (Haggard)
    (Haggard) 9 месяцев назад
    1000x_image.png?1592214464
  4. Константин Бродкин (KVBr)
    Константин Бродкин (KVBr) 9 месяцев назад

    Вот что я вижу со своего компьютера в репозитории на сайте sprut.ai:
    Браузер FireFox
    Тем не менее, спасибо Вам за внимательное прочтение статьи.
    Желаю Вам успеха в достижении поставленных целей!

    1000x_image.jpg?1592214980
    • (Haggard)
      (Haggard) 9 месяцев назад

      Значит это у меня google chrome так замену делает. Если кто столкнется, комментарии в помощь.

      За все Ваши статьи, спасибо!

      • (BobaQPE)
        (BobaQPE) месяц назад

        У меня при импорте тоже пришло gt.

        Спасибо

К списку статей

Устройства в материале

Wiren Board 6

Производитель: WirenBoard

Шлюз OpenTherm-ModBUS

Производитель: Невотон

Скидки для сообщества

Wiren Board

+7 495 150-66-19
Промокод:
SPRUTDELIVERY
Размер скидки:
0%
Вы получите бесплатную доставку.

Z-Wave Ukraine

+380 68 641 9670
Промокод:
Sprut-UA
Размер скидки:
15%

Тематические чаты

Похожие статьи

27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
25 сентября 2020, 11:49
Сенсорный монитор для управления умным домом. Настройка и использование.
30 августа 2019, 07:28
Несколько нетривиальных способов использования датчика открытия окон/дверей от Xiaomi/Aqara.
02 июля 2020, 07:24
Я хочу поделиться своей разработкой: "умным открывателем пластикового окна". В статье вы найдете все необходимое, чтобы повторить проект и изготовить собственный привод для открывания окна с использованием штатной фурнитуры окна.
18 февраля 2020, 17:06
В данной статье описывается сборка слаботочного эл. щита на базе Wiren Board 6, а так же силового щита для небольшой квартиры.
09 ноября 2018, 17:31
В данной статье рассматривается определенный подход инсталляции и конфигурации базовой среды, для последующей возможности простой, в плане настройки, автоматизации УД с помощью симбиоза HomeAssistant и Node-RED.
09 января 2019, 17:34
Небольшая статья о том, зачем нужна малина, почему автоматизации в HomeKit это не очень хорошо и чем USB стик лучше отдельного шлюза.
04 апреля 2019, 17:48
Расскажу о том за ~1 час перевезти УД с 2мя USB стиками с Raspberry PI на Synology NAS.
23 сентября 2019, 08:52
Node-RED - пошаговая инструкция для новичков.
02 ноября 2020, 11:22
В этой статье рассмотрим как из датчика открытия сделать датчик вибрации или термодатчик. Сразу скажу, что применение таких датчиков специфическое, но это лишь статья и мои мысли, а вы можете взять и сделать что-то своё.