Что имеем:
  • Двухэтажный таунхаус, предназначенный для круглогодичного проживания
  • Централизованное электроснабжение (как всегда в загородных домах, очень нестабильное)
  • Централизованное холодное водоснабжение
  • Централизованное газоснабжение
  • Газовый отопительный котел Protherm Gepard


Что хотим получить
  • Возможность удаленного мониторинга микроклимата в доме (чтобы на душе было спокойно в случае долгого отсутствия)
  • Возможность удаленного управления этим самым микроклиматом (уменьшить температуру обогрева с целью экономии газа, увеличить температуру перед возвращением домой)
  • Возможность удаленного снятия показаний счетчиков ресурсов, подлежащих оплате (счетчика расчета газа, воды и электроэнергии)
  • Стоимость устанавливаемого оборудования должна быть экономичная
  • Стоимость эксплуатации системы должна быть минимальная


Рассматривать варианты я начал с последнего пункта («минимальные эксплуатационные расходы»). Ибо и так приходится платить за уборку территории, воду, газ и электричество. Соответственно, для целей удаленного мониторинга и управления есть два основных решения:

  1. Управление и мониторинг реализованы при помощи SMS-сообщений
    Положительные стороны
    • Достаточно хорошая помехозащищенность (при нестабильном покрытии попытки доставки SMS будут производиться автоматически средствами оператора связи и/или абонентского устройства)
    • Возможность мониторинга и управления с любого мобильного телефона
    • Наличие готовых решений (от описания возможных реализаций, до имеющихся в продаже готовых устройств)
    Отрицательные стороны
    • Достаточно высокая стоимость обмена данными (даже в случае использования предоплаченных пакетов SMS)
    • Ограниченный размер информационной посылки (при необходимости обмена большим количеством данных скорость обмена падает, а стоимость трафика значительно увеличивается)
  2. Управление и мониторинг реализованы через сеть Интернет
    Положительные стороны
    • Низкая (а в некоторых случаях и нулевая) стоимость обмена данными
    • Значительно больший возможный размер информационной посылки
    • Возможность обмена сравнительно большими объемами данных, что улучшает разрешающую способность мониторинговых систем
    • Небольшое число предлагаемых готовых решений (большинство из которых, к тому же, требует наличия постоянного публичного IP-адреса для обеспечения возможности доступа к устройству из внешнего мира)
    Отрицательные стороны
    • Для мониторинга и управления необходим доступ к сети Интернет
    • В связи с особенностями услуги «Мобильный интернет» у наших операторов (нет возможности получить статический public IP адрес для мобильного устройства по вменяемым ценам) необходимо наличие сервера, на котором будет осуществляться сбор информации с удаленных устройств
    • В случае нестабильного покрытия задача гарантированной доставки данных ложится на программное обеспечение

После изучения найденных на просторах Интернета решений я понял, что ни одно из них меня не устраивает (даже с точки зрения эксплуатационных расходов. Не говоря уже о стоимости самого оборудования). Поэтому будем делать все с нуля. Ладно, не совсем с нуля: у меня есть свободный сервер, который доступен в сети Интернет в режиме 24x7. Ну и все.

Реализация: передача данных и команд управления


Проанализировав предложения «большой тройки» (как для частных лиц, так и M2M), я остановился на мобильном интернете от «Мегафон» с опцией «Интернет планшет». В ней, в отличии от МТС, нет ограничений на использование «только на планшетах», а 20Мб ежедневного включенного бесплатного трафика для телеметрии более чем достаточно. Так как я использую устройство для собственных нужд в качестве физического лица, то никакие явно описанные условия и ограничения оператора не нарушаются.
Итак, в интернет-магазине приобретен USB-модем от оператора, соответствующим образом изменен тарифный план и подключена требуемая опция.

Реализация: управляющий контроллер


Должен быть миниатюрным, стабильно работающим, не требующим внешнего охлаждения, допускать установку ОС Linux (чтобы по максимуму использовать готовые решения, а не изобретать велосипед по каждому случаю), иметь некоторое количество программно управляемых входов/выходов и, как минимум, один порт USB, поддерживающий режим хоста (для подключения USB-модема).
Самым дешевым вариантом оказалось использовать Banana PI, хотя можно взять и ее функциональный прототип Raspberry Pi. Просто Banana в тот момент была доступна за меньшие деньги.
Вот что получилось в итоге (без схемы сопряжения с газовым котлом)
Управляющий контроллер с GPRS-модемом

Реализация: датчики


Мне хотелось иметь информацию о микроклимате во всем доме (2 этажа), соответственно было приобретено 5 цифровых термометров DS18B20. Их размещение: стена на 1-м этаже (температура воздуха на 1-м этаже), батарея на 1-м этаже (температура теплоносителя на 1-м этаже), стена на 2-м этаже и батарея на 2-м этаже (воздух и теплоноситель на 2-м этаже), один датчик вынесен наружу подальше от окон и дверей (чтобы получать информацию о реальной температуре на улице). Все датчики вешаются на одну двухпроводную (в моем случае еще и экранированную) шину. У меня длина кабеля получилась чуть более 20 метров, при этом все датчики работают стабильно и без сбоев.
Для учета расхода газа (мне повезло — у меня установлен газовый счетчик со встроенным магнитом), был использован датчик холла (подробнее см. в соответствующей статье).
Для расширения функционала до встроенной погодной станции был также приобретен датчик атмосферного давления.
Для будущего развития (реализация алгоритмов отопления, использующих понятие «точка росы») был приобретен датчик относительной влажности воздуха, но он пока не используется.

Реализация: управление котлом (теория)


Ох уж этот котел! Ну да, начал я с реализации наблюдения за микроклиматом, а в результате захотелось еще и им управлять. Мой котел поддерживает управление двух видов: «включил/выключил» (если «включил» — будем греть воду до температуры, заданной на консоли котла. Если «выключил» — ничего греть не будем) и цифровое по шине eBus. Последнее является (немецкой) разработкой для управления домашним климатическим оборудованием, но конкретная реализация очень сильно зависит от производителя техники. Для своего котла в продаже я нашел только одно оригинальное устройство-терморегулятор, но оно работает исключительно в автономном режиме что, фактически, ничем не полезнее, чем управлять котлом через его консоль.
После некоторого изучения имеющейся в Интернет информации удалось выкопать некоторые обрывки протокола управления, полученные энтузиастами путем reverse engineering. Я не стал действовать так жестко, как автор этой статьи, но все-таки в результате мне удалось не только поговорить с котлом по душам, но и заставить его выполнять мои команды так, как если бы их выдавал оригинальный терморегулятор. Однако все равно большое спасибо первопроходцам, глядя на которых я понял, что в этой жизни нет ничего невозможного!

Реализация: управление котлом (практика)


Итак, котлом будем управлять по шине eBus. Готовые адаптеры для шины стоят невменяемых денег (да, к тому же, доступны только «под заказ». А зима приближалась, систему надо запускать!), поэтому пришлось вспомнить молодость (и свое увлечение радиотехникой) и разработать собственную схему сопряжения. С гальванической развязкой (ибо память о сгоревшем из-за неисправного блока питания компьютере была еще свежа, а иметь на руках газовый котел со сгоревшей платой управления перед зимой мне не очень улыбалось). Схема пока собрана на макетной плате, но уже доказала свою стабильную работоспособность.
Интерфейсный блок на макетной плате
Интерфейс eBus

Реализация: программное обеспечение


Оригинальная разработка (как серверная часть, так и «прошивка управляющего контроллера»). Для системы визуализации данных (пока) используется бесплатная система мониторинга Zabbix, но планируется все-таки сделать специализированное приложение. Вообще программное обеспечение поддерживает модульную организацию аппаратной части: что в контроллере установлено, то и будет обслуживаться. Нужна вам погодная станция (установили соответствующий модуль) — получите информацию об атмосферном давлении. Нужно вам управление газовым котлом (установили модуль с реле или интерфейс eBus) — сможете им управлять (иначе только наблюдайте за обстановкой в доме). Есть у вас собственный канал Интернет — тогда USB-модем вам не нужен, просто подключите устройство к вашему роутеру при помощи ethernet-кабеля.

Результаты


На новогодние праздники мы с женой уезжали достаточно далеко от нашего дома, но имели возможность в любой момент проконтролировать его состояние. И, в случае необходимости, изменить параметры микроклимата (несколько раз этим пришлось воспользоваться при значительном изменении внешней температуры воздуха, ниже -15C). Во всяком случае заморозки системы отопления не произошло (несмотря на неоднократные перебои с электроснабжением поселка), растущие в доме цветы не замерзли, и газа для отопления мы сожгли не так уж и много. Кстати, значения газового счетчика с точки зрения программы и реальные за два месяца эксплуатации совпали полностью, поэтому платежки по газу можно заполнять даже не посещая свой дом.
Общий вид работающего устройства
Общий вид макета устройства
(внизу — стабилизатор напряжения для газового котла, на него можно не обращать внимания)

Как это выглядит на компьютере


Мониторинг без подключения к газовому котлу
График температуры в доме и за его пределами
Несмотря на автономное подключение, убедиться в работоспособности котла можно по пилообразному графику температуры теплоносителя в батареях отопления. Пустячок, а приятно!

Датчик расхода газа (см. предыдущую публикацию)
График расхода газа (нарастающим итогом)
Пока все выводится нарастающим итогом, но этот график будет изменен на график скорости расхода газа в зависимости от времени.

Погодная станция: внешняя температура
График температуры воздуха вне дома
Ну просто интересно мне знать, что одевать при выходе из дома.

Погодная станция: атмосферное давление
График атмосферного давления
Эк его плющит и коллапсит! Пока понаблюдаем, но можно будет как-нибудь прикрутить и для предсказания погоды.

Мониторинг с подключением управления газовым котлом

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

Надежность и безопасность


Операционная система в управляющем контроллере работает в режиме «только чтение», поэтому устройство не боится неожиданного пропадания электропитания. Аналогично, газовый котел управляется таким образом, чтобы в случае нарушения цепей управления (контроллер обесточен, выключен либо оборван интерфейсный кабель) котел автоматически переходил бы в стандартный режим работы с управлением со своей консоли. Алгоритмы обмена данными оптимизированы под «очень плохие каналы связи» (для работоспособности устройства достаточно наличие хотя бы «временами возникающего» подключения по EDGE, в чем я лично убедился при установке контроллера в пос. Бисерово московской области — покрытие Мегафона там просто никакое).
В настоящее время устройство собирает информацию с датчиков с периодичностью раз в минуту, а обмен с сервером производится раз в 15 минут. В таком режиме максимальная разрешающая способность мониторинга будет 1 минута, а максимально возможная задержка на получение информации 15 минут. При этом запас бесплатного суточного трафика составляет 15Мб из 20Мб предоставляемых в соответствии с тарифной опцией.
Второй тип управления (при помощи SMS) может использоваться тогда, когда необходимо получить информацию или изменить режим работы «здесь и сейчас» (т.е. если мы не хотим ждать 15 минут до очередного сеанса связи с сервером).

Планы на будущее


  • Режим «консервации дома»: автоматическое поддержание температурного режима, который предотвращал бы появление плесени (температура в доме должна быть выше «точки росы») и/или предотвращал заморозку системы отопления (в случае использования в качестве теплоносителя воды, вместо антифриза)
  • Режим поддержания требуемой температуры на заданном этаже с оптимизацией работы котла с точки зрения потребления газа
  • Учет расхода электроэнергии
  • Учет расхода воды
  • Контроль опасных ситуаций (утечка газа, превышение уровня CO, протечка воды и т.п.)
  • Добавление системы автономного электропитания устройства на случай пропадания стационарного питания (хотя, конечно, в этом режиме газовый котел работать не сможет)
  • Что-нибудь еще?


Небольшое маркетинговое исследование


Ну и, напоследок, небольшое маркетинговое исследование. Вышеописанная разработка делалась исключительно «для себя», но с учетом интереса к ней наших друзей и соседей рассматривается вариант создания промышленного варианта такого контроллера.
  • В настоящее время устройство не имеет собственных средств индикации и клавиатуры для управления. Управление и мониторинг возможны через сеть Интернет (основной режим) и посредством SMS (дополнительный режим). Нужно ли делать какую-либо систему индикации (дисплей) и автономного управления (кнопки) с учетом того, что это приведет к увеличению стоимость аппаратной части?
  • В случае управления через Интернет необходимо наличие внешнего сервера. Этот сервер может работать с неограниченным количеством удаленных устройств и, соответственно, индивидуальных потребителей. Но размещение и сопровождение сервера с работоспособностью 24x7 не может быть бесплатным. Готовы ли Вы платить какую-либо абонентскую плату за эту услугу? Если да, то какой ежемесячный размер Вы считаете для себя допустимым?
  • Вопрос, вытекающий из предыдущего: не боитесь ли вы управлять своим домом через облачную платформу? Ну да, есть несколько уровней защиты, есть возможность автономной работы. Даже если контроллер полностью выйдет из строя, то это не приведет ни к каким фатальным последствиям. А все-таки, если подумать?
  • Для промышленного варианта придется разработать и изготовить печатную плату и корпус устройства. Готовы ли Вы оплатить предзаказ на описанное выше устройство с условием поставки готового изделия через 2-3 месяца после оплаты?
  • Конечное устройство будет в коробочном варианте, но для установки температурных датчиков требуется протянуть провод (его длина зависит от контролируемого помещения), установить на нем розетки для датчиков, подключить провод к газовому котлу (через штатный разъем, но все-таки...). Т.е. выполнить некоторые простейшие монтажные работы. Готовы ли вы делать их сами, или предпочитаете получить систему «под ключ»?

Комментарии (17)


  1. shtirlitsus
    21.01.2016 11:50

    работает в режиме «только чтение»

    куда в таком случае пишется rrd изменения температуры?


    1. Vedga
      21.01.2016 11:55

      В оперативку (у бананы ее 1Gb). Раз в 15 минут сеанс связи с сервером. Если сервер подтвердил получение и корректную обработку данных, то из устройства они удаляются. В случае ошибки данные сохраняются до следующего сеанса. Пока что максимальный период отсутствия связи (из-за каких-то работ на сети оператора) был 3 суток. После восстановления связи потерь данных не обнаружено.


  1. synka
    21.01.2016 14:10

    А что за стабилизатор? Мне казалось для котлов ставят бесперебойники, что бы насосы питать.


    1. Vedga
      21.01.2016 14:22

      Пока поставил первый попавшийся на глаза Teplocom ST-555. Прыгающее напряжение он выравнивает, ну и ладно. А по результатам мониторинга за прошедшие 3 холодных месяца полное отключение электропитания было 4 раза на 5-60 минут. За это время дом остыть не успевает. Сам котел вполне способен запуститься самостоятельно. Ну или пнуть его можно удаленно, на крайний-то случай…


      1. synka
        21.01.2016 14:33

        Посмотрел стаб, спасибо. Похоже там не ЛАТР с моторчиком, а более быстрая схема с реле. Кстати у них есть такая приблуда TEPLOCOM GSM. Но так красиво мониторить, как у вас, с графиками, не умеет. В вот сигнализацию о протечке вы могли бы сделать. легко реализовать.


        1. Vedga
          21.01.2016 14:46

          Я тоже сначала хотел купить готовую систему. Но управление через SMS меня не устроило из-за больших эксплуатационных расходов при желаемых объемах передаваемой телеметрии. Т.е. только в качестве аварийного варианта. Адекватных решений для работы через Интернет найти не удалось. Вот и пришлось самому заняться разработкой.


  1. dkopitsa
    21.01.2016 14:33

    тоже делаю аналогичную систему для мониторинга дома.

    Сбор температуры идет через Arduino. К котлу подключены 2 DS18B20 (подача и обратка). В доме и на улице расставлены 4 беспроводных датчика Ambient ws-07, работающих на частоте 433Mhz. Их показания принимает ардуина с помощью RF приемника, и фирменный дисплей. С качественным RF приемником нормально ардуино нормально принимает данные через несколько стен, фактически является мостом между 433Mhz и MQTT сервером.

    В качестве исполнительного механизма — оптореле, подключенное к котлу как комнатный термостат, он необходим для ограничения максимальной температуры. Так же к котлу подключен внешний датчик температуры (фактически — резистор NTC 10k) для управления мощностью котла в зависимости от температуры на улице.

    Общение с Arduino идет через MQTT протокол. Ардуина публикует данные температуры, и получает команду на вкл/выкл котла.
    К MQTT серверу так же подключены управляющий скрипт (если t > 22 — выкл. котел, если меньше — вкл. ) и скрипт для логирования данных.

    Для хранения исторических данных используется классная библиотека graphite, к которой есть с десяток симпатичных веб-интерфейсов. (я использую grafana)


    1. Vedga
      21.01.2016 14:54

      Ардуинка для меня слабовата была. Хотелось быстро собрать систему, управляемую через Интернет. А это означает linux на борту. Из-за этого и взял банану в качестве платформы.

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

      А от чего у вас кормятся уличные беспроводные датчики температуры? Сам хотел их добавить, но с дополнительным датчиком влажности и с питанием от солнечных батарей.


      1. dkopitsa
        21.01.2016 16:33

        Ардуина работает фактически только как датчик+реле. Вся логика, хранение данных и красивости крутятся на домашнем сервере на Linux (в его роли может выступать и малинка).

        eBus нет в моей моделе нет (Protherm Медведь).

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


  1. AlexSam
    21.01.2016 14:49

    Добавление системы автономного электропитания устройства на случай пропадания стационарного питания (хотя, конечно, в этом режиме газовый котел работать не сможет)

    Ну почему же, online ИБП с чистой синусоидой и аккум. Online ИБП в данном случае это не тот который выходит в интернет :) А тот который понижает сетевое до напряжения акума и потом делат из него чистые 220В 50 Гц.


    1. Vedga
      21.01.2016 15:11

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

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


    1. DarkByte
      22.01.2016 20:24

      В чём смысл использования online ИБП для питания газового котла? Разве не достаточно просто чистого синуса на выходе?


  1. berber
    21.01.2016 17:03

    Как проживающий в частном доме с газовым котлом хотел бы задать следующие вопросы:
    1. Пока ещё мало народу покупают котлы с цифровыми интерфейсами. Например, у моего (Gazlux) нет, даже управление мощностью простой 7ми позиционный переключатель-крутилка. Как здесь быть?
    2. Нет ли необходимости в контроле давления в системе? Например, я сам паял систему из пластика, раз в две недели приходится ручками добавлять воду в систему — открывать кран подкачки. Схемы и решения надо бы обдумать.
    3. Стресс-тесты думали производить?
    Хотел бы добавить, что в последнее время часто появляются «железки» для подобных решений, но часто они «сырые» как в с точки зрения аппаратной реализации, так и с функциональной стороны. Но подбор ЦА — это грамотно ;)


    1. Vedga
      21.01.2016 17:33

      1. Для Вашего котла, судя по документации, существует штатный комнатный терморегулятор, работающий по принципу «цепь разорвана — ничего не греем, цепь замкнута — греем до параметров, заданных на консоли котла». Этот вариант у меня схемотехнически предусмотрен (т.е. есть реле, которым можно управлять программно). В этом случае (в отличии от управления по eBus) температурой будет управлять сам контроллер, основываясь на показаниях своих датчиков. А на консоли котла выставляется максимальное значение температуры обогрева.
      2. За три месяца эксплуатации проблем с потерей давления пока не было, но за идею спасибо.
      3. Стресс-тесты пока были такого плана:
      — устройство вырубили/сдохло/оторвали_кабель. Отопление должно продолжать работать в каком-то из аварийных вариантов (т.е. в любом случае мы не должны остаться без тепла);
      — устройство многократно выключают в произвольный момент времени. После включения работоспособность должна сохраняться;
      — при попытке зависания устройство должно самостоятельно делать аппаратный сброс и восстанавливать свою работоспособность;
      — отсутствует связь через Интернет. С устройством можно общаться (запросить состояние или дать команду на изменение режима) посредством SMS;
      — связь через Интернет нестабильная (покрытие «прыгает» от EDGE до LTE). Устройство само пытается выбрать диапазон, в котором в настоящее время покрытие наилучшее. Если все-таки связаться с сервером никак не получилось, то накопленные данные будут отложены до следующего сеанса связи.


  1. berber
    21.01.2016 20:16

    Да, есть такой датчик. Но я решил его не ставить. Вы верно описали режим в этом случае — ставить котёл на максимум, получаем большую амплитуду гистерезиса температур. Зачем лишние нагрузки для системы на расширение- сжатие, у пропилена эти коэффициенты больше, чем у металла.


  1. radz
    24.01.2016 08:53

    Интересная реализация. Абонентка за облако думаю 100-300 рублей в месяц. Само устройство должно уложиться в 5000 тысяч для покупателя, при условии, что Banana у него уже есть.

    Вопросы:
    1) Что за клеммники в верхнем правом углу монтажки на второй фотографии? Где брали?
    2) У меня котёл Viessman Vitopend 100, с двумя крутилками, внутрь пока не лазил. Там есть EBus?


  1. berber
    24.01.2016 09:08

    Да, я на маркетинговое забыл ответить:
    1. Да, индикация необходима. Варианты простая светодиодная (мне на котле её хватает) или LCD
    2. 100-300 рублей в зависимости от набора услуг.
    3. Вариант «железного» перехода на «ручное» управление был бы хорошим вариантом для ослабления паранои.
    4. В зависимости от стоимости устройства, сейчас много кто занимается IoT и его прикладным использованием. Каковы конкурентные преимущества?
    5. Готов сам сделать, хорошо для коммутации использовать надежные разъемы с защитой от переполюсовки.