- PVSM.RU - https://www.pvsm.ru -

Умная хрущёвка на максималках

Моя статья про проводной умный дом [1] была популярной на Хабре (159 тысяч просмотров) — в ней я описал положительный опыт от идеи до реализации умного дома в новостройке.

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

  1. мониторинг приборов учета;
  2. датчики контроля: домофона, температуры, шума, открытия дверей, ...;
  3. единая панель управления умным домом;
  4. подъездное видеонаблюдение;
  5. настенный дисплей для текущего времени и температуры за окном;
  6. освещение в квартире, включая кнопку «выключить всё»;
  7. удаленное обесточивание квартиры;
  8. удаленное перекрытие воды.

Умная хрущёвка на максималках - 1
3D модель этой двухкомнатной квартиры 47 кв.м, которая была автоматизирована, нарисованная в Sweet Home 3D

Мониторинг счётчиков воды и электричества

Начну рассказ с самого начала — в 2016 году мне потребовался удаленный сбор показаний квартирных счетчиков.
Для этого, чтобы не устанавливать «считывающие накладки», в любом случае, была необходима замена обычных счётчиков воды и электроэнергии на счетчики с соответствующим интерфейсом. И вариантов этого интерфейса было доступно всего два:

  1. Цифровой RS485.
  2. Импульсным выход.

Если говорить о счётчиках на воду, то разница в цене по этим двум вариантам составляла примерно 10 раз. Обычный счетчик на воду с импульсным выходом стоил рублей на 200 больше обычного, то есть где-то 400...600 рублей, а счетчик воды с RS485 стоил порядка 3...5 тысяч рублей.

Из-за большой ценовой разницы я выбрал модель с импульсным выходом Valtec VLF-R-IL [2] (сейчас эта модель уже не производится).

Была еще одна особенность, из-за того что я живу в Перми — возникла проблема просто найти и купить эти счётчики с импульсным выходом — их не было в наличии и фактически я потратил целый месяц на ожидание доставки по России — ведь нельзя просто купить в Китае счётчик и установить — это оборудование, которое должно «поверяться» и обладать соответствующим сертификатом, иначе на учёт его не поставить. В Москве, насколько я знаю, подобных проблем нет и наоборот управляющие компании заставляют устанавливать счётчики на воду с импульсных выходом.

Умная хрущёвка на максималках - 2
Счётчики на воду с импульсным выходом сразу после установки и опломбирования

Следующим моим шагом стал выбор счетчика электрической энергии — и здесь тоже надо иметь ввиду, что он тоже должен обладать всеми необходимыми бумагами и сертификатами для постановки на учёт — ведь я слышал, что иногда ставят даже два счётчика:

  1. Первый — «отчётный» — для учёта, перед поставщиком электроэнергии.
  2. Второй — без российских документов с популярного китайского сайта, который устанавливают сразу после первого для использования в целях домашней автоматизации — чтобы можно было удаленно считывать показания. Обычно через цифровой интерфейс RS485.

Умная хрущёвка на максималках - 3
Однофазный однотарифный счетчик Меркурий 201.5 сразу после установки и опечатывания

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

Как оказалось позже — однофазные электросчетчики Меркурий достаточно популярны для домашней автоматизации и при цене счетчика, сопоставимой с аналогичными счетчиками других производителей можно получить устройство, которое полностью совместимо с современными системами домашней автоматизации. Для этого надо лишь иметь адаптер USB -> RS485 [3], стоимость которого составляет менее 100 рублей (в Китае). Этот адаптер может работать с любым микрокомпьютером у которого есть USB-порт, например, из линейки Raspberry Pi, которые часто используются в качестве сервера для домашней автоматизации, для запуска Home Assistant или любого другого [4] программного хаба.

Сам скрипт опроса электросчетчика Меркурий написан энтузиастами и выполняется из командной строки, а также может быть интегрирован в любую систему домашней автоматизации. Мой конкретный пример интеграции для RS485 в другой квартире, где установлен Меркурий 200, который я сделал уже позже, можно посмотреть, например, на форуме [5] или просто поискать варианты в поиске [6].

Умная хрущёвка на максималках - 4
Элемент скрипта для получения данных с электросчетчика Меркурий 200

Однако в 2016 году после установки счетчиков без цифрового RS485 мне понадобилось устройство считывания этих импульсов.

Выбор учетного и управляющего контроллера

Поскольку я выбрал и установил три счетчика с импульсными выходами, мне надо было иметь какое-то устройство, которое было бы всегда на связи с ними и круглосуточно считывало бы эти импульсы, конвертируя их в «человеческий формат». Я стал искать подобный контроллер и нашёл несколько вариантов:

  1. Контроллер с программируемой логикой ОВЕН [7].
  2. Модули счётчика импульсов от разных производителей, например вот [8].
  3. Универсальный проводной контроллер Мега [9] с возможностью интеграции в систему умного дома.

Расскажу обо всем подробнее. Перед тем как покупать что либо, я решил обратиться с запросом к первому найденному варианту — к ОВЕН и в его техподдержке мне буквально написали, что моя идея влетит в копеечку. Ответ техподдержки:

"В целом система получается достаточно дорогостоящей + реализация ПО под Вашу задачу – сложное.
...
Можно и более дешевый, но WEB-визуализации у них нет. Тут потребуется Scada система уже для ПК. WEB-визуализацией обладает только ПЛК323 и СПК207. У них в маркировке указано WEB при заказе.
Но, к любому ПЛК, по любому интерфейсу связи можно сделать визуализацию (это не WEB-визализация). Также, у наших коллег есть опыт применения iRidium Mobile для реализации приложений для смартфонов/планшетов, для управления контроллерами. Еще, как вариант, применение ПЛК110 [М02]. По Ethernet к роутеру.
Также рекомендую посмотреть каталог проектов http://www.owen.ru/projects с фильтрацией по «Решения для автоматизации инженерных систем зданий».

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

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

Поэтому я продолжил гуглить дальше и в поисках третьего варианта и в итоге наткнулся на Мегу — проект Андрея Буртового из города Тольятти, который вырос из простого хобби в коммерческий проект. В нём подкупало соотношение цены и заявленных возможностей — по цене комплект (контроллер и модуль только с аппаратно-конфигурируемыми входами) выходил примерно на уровне второго варианта — простого счетчика импульсов с веб-интерфейсом. Но при этом появлялась возможность интеграции с существующими программными хабами [4].

Умная хрущёвка на максималках - 5
После выбора и монтажа оборудование в 2016 году «сердце» начинающей умнеть квартиры выглядело так. От обилия блоков питания я потом избавился (фото ниже)

Провода всё таки нужны

Поскольку все три найденных решения были проводными, мне пришлось тянуть витую пару UTP cat.5E до каждого из счетчиков. Ещё я захотел добавить несколько недорогих датчиков и поскольку выбранный контроллер Мега был проводной мне пришлось разработать схему что и куда надо протянуть, чтобы удовлетворить все потребности в проводах. Ещё решил поставить следующие датчики:

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

Схема протяжки витой пары выглядела так:

Умная хрущёвка на максималках - 6

Схема прокладки витой пары в двухкомнатной квартире 47 кв. м. и на лестничной площадке

Штроб в квартире не было сделано — всю витую пару удалось протянуть в пластиковых коробах (размером 15х10 мм), расположенных чуть выше уровня плинтуса.

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

Также мне пришлось разработать схему подключения датчиков непосредственно к контроллеру. Схема подключения датчиков к Меге в варианте 2016 году ниже:

Умная хрущёвка на максималках - 7
Схема подключений датчиков на Мега-328

Через пару лет в 2018 году я заменил Мегу-328 на более новую 2561 и избавился от аналоговых датчиков, которые иногда работали некорректно и зависали, а для исправления требовалась полная перезагрузка контроллера. После замены я поставил больше точных цифровых датчиков c I2C интерфейсом, объединив их на нескольких портах:

Умная хрущёвка на максималках - 8
Схема подключений на Мега-2561

Датчики температуры

Для измерения температуры часто используются датчик DS18B20, который представляет из себя цифровой термометр с интерфейсом 1-Wire, который может снимать показания в диапазоне -55...125°C. Для конкретно моего контроллера DS18B20 датчики можно подключать шиной — это значит по нескольку датчиков на один порт, что очень экономит порты, и из-за этого автоматизация выходит ещё дешевле.
Умная хрущёвка на максималках - 9
Внешний вид датчика DS18B20 для закрепления установки на батарее отопления

В Home Assistant эти данные с одного порта разбираются очень просто — у каждого из этих температурных датчиков есть свой уникальный адрес, по которому они и распознаются контроллером [10].

Главный недостаток DS18B20 — они реально очень мелкие и поэтому электрику с ними работать сложно и непривычно.

Умная хрущёвка на максималках - 10
Датчик DS18B20 в термоусадке, закрепленный на батарее отопления

Интеграция квартирного домофона в общую систему

Квартирный домофон тоже подключен к общей системе, но только в информационном режиме — вызов виден, но открыть дверь нельзя. Подключение осуществляется через датчик U-Sensor (5В), [11]который подключен параллельно домофонной трубке (координатный домофон).

Для справки — я недавно нашел решение, которое позволит не только видеть вызов, но и открыть дверь, но пока прочитал про это только в чужой статье [12].

Датчики температуры на холодную и горячую воду

Поскольку я уже не раз сталкивался с тем, что горячая вода была не всегда так уж и горяча, я решил добавить датчики температуры на воду, которые бы непрерывно фиксировали температуру для того чтобы контактировать с управляющей компанией, если будут проблемы с температурой воды. В качестве датчиков температуры воды я решил использовать цифровой термометр DS18B20 [13], который выпускается в разных исполнениях, в том числе и в водозащищенном.

Умная хрущёвка на максималках - 11
Цифровые термометр DS18B20 с интерфейсом 1-wire, закрепленные на стяжках.

Дисплей у двери

Вообще, я нашел идеальный формат панели управления у двери в своей статье на Хабре [14], но это случилось только в начале 2020 года. А этот дисплейчик для отображения времени и погоды за окном у входной двери был установлен гораздо раньше, за пару лет до этого момента, и работает до сих пор.

Умная хрущёвка на максималках - 12
Внешний вид — OLED дисплей 128х64 на SSD1306 с управлением по I2C в коробке заводского изготовления

Дисплеем надо управлять и в данном случае я делаю это через контроллер Мега, посылая управляющие сигналы с управляющего программного хаба. Вот мои варианты правил управления этим дисплеем для систем openHAB [15] и Home Assistant [16].

Датчик шума внутри умного дома

Это отдельная и очень длинная история, которая растянулась на несколько лет поисков из-за того, что я хотел использовать дешевые датчики, но как оказалось, для корректного получения уровня шума в децибелах, это невозможно.

Почему я вообще заинтересовался шумом? Существует допустимый уровень шума, который установлен в законе о санитарно-эпидемиологическом благополучии населения, а также СанПиН 2.1.2.2645-10 и СН 2.1.8.562-96. По этим правилам дневное время — это время с 7:00 до 23:00, ночное — с 23:00 до 7:00. Нормальный уровень фонового шума для жилых комнат и квартир днем — 40 децибел, ночью — 30 децибел. Максимальный уровень непостоянного шума — 55 децибел в дневное время и 45 децибел в ночное. Нарушением считается любой звук, который превышает норму и мешает жильцам в любое время, кроме новогодней ночи.

Сначала я пытался использовать дешевые модули, которые заявлены как модули детекции шума [17], подключая их к АЦП контроллера Мега чтобы определить уровень шума, но это было безрезультатно. Одна из попыток на фото ниже:

Умная хрущёвка на максималках - 13
Один из датчиков, подключенных к аналого-цифровому преобразователю (АЦП) Меги

Умная хрущёвка на максималках - 14
Так выглядел датчик, приведенный выше в веб-интерфейсе Меги

Контроллер видел эти дешевые датчики, получал с них какие-то цифры, но эти значения с реальным уровнем шума никак не коррелировались.

Первые пару лет уровень шума хоть и очень опосредованно удавалось получать с USB микрофона [18], воткнутого в порт Raspberry Pi через bash-скрипт, выполнение которого вызывалось из openHAB:
#!/bin/bash

/usr/bin/arecord -D plughw:1,0 -d 15 -f S16_LE /home/openhabian/USB_dB.wav 2>/dev/null;
sleep 15;
sox /home/openhabian/USB_dB.wav -n stat 2>&1 | sed -n 's#^Maximum amplitude:[^0-9]*([0-9.]*)$#1#p';

Вот мой скрипт на GitHub [19]. Полученное значение Volume adjustment пересчитывалось в децибелы уже внутри правил автоматизации OpenHAB [20]. Конечно это был «костыль», но хотя бы, опосредовано, он работал.

В 2016 году я даже пытался найти формулу для расчета корректного значения уровня шума в децибелах, основанную на показаниях шумомера в Nexus 5 и значениях, получаемых с USB микрофона и вывел её (на скриншоте ниже y = -0,0000067x3+...). Это несколько месяцев работало, но потом уровень получаемых с микрофона цифр неожиданно уплыл и больше не возвращался. После этого я нашел другую формулу [21]: [dB = 20 x log10(A)], которая и показана в файле с правилами для openHAB [20].

Умная хрущёвка на максималках - 15
Попытка вывести формулу, основанную на показаниях шумомера в Nexus 5 и значениях, полученных с USB микрофона

Недостатками решения с USB микрофоном были:

  1. Возможное нарушение конфиденциальности — хотя звук в привычном понимании и не записывался и анализировался только wav файл, но это все же был USB микрофон.
  2. Невозможность выноса — удлинить USB кабель больше чем метра на три не представляется возможным.
  3. Неточность — уровень измерений плавал — и в какой-то момент из графика было понятно что шум усилился, но на сколько сильно это произошло в реальности было непонятно.

Эпопея с поиском доступного решения завершилась только в 2019 году, когда мне подсказали решение — плату Gravity: Analog Sound Level Meter от DFRobot [22], которая хоть и вышла по цене около 3,5 тысячи рублей, но закрыла все проблемы и с расстоянием и с конфиденциальностью и конечно же с точностью.

Умная хрущёвка на максималках - 16
Плата измерения уровня шума от американского производителя DFRobot

Для модуля измерения уровня шума даже не потребовалось сложное правило пересчета — внутри Home Assistant это происходит на уровне описания элемента [23]:

  - platform: mqtt
    name: "Датчик шума"
    device_class: signal_strength
    state_topic: "megad/7/36"
    value_template: "{{ (value_json.value|float/1023*3.3*50) | round(1) }}"    
    unit_of_measurement: "dBA"

Итог

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

  • Полную беспроводную автоматизацию всего освещения.
  • Кнопку «выключить всё».
  • Полное удаленное обесточивание квартиры (включая и сам сервер управления вместе с контроллером) и обратное удаленное включение.
  • Электронакладки (устройства поворота) для кранов на воду.

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

Автор: Михаил Шардин [24].

1 июня 2020 г.

Автор: Михаил Шардин

Источник [25]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/diy/353552

Ссылки в тексте:

[1] про проводной умный дом: https://habr.com/ru/post/489610/

[2] Valtec VLF-R-IL: https://valtec.ru/catalog/pribory_ucheta/schetchiki_dlya_vody/vodoschetchik_universalnyj_s_impulsnym_vyhodom_bez_sgonov.html

[3] адаптер USB -> RS485: https://aliexpress.ru/wholesale?trafficChannel=main&d=y&CatId=0&SearchText=rs485+usb&ltype=wholesale&SortType=total_tranpro_desc&groupsort=1&page=1

[4] или любого другого: https://www.mysensors.org/controller

[5] на форуме: http://www.ab-log.ru/forum/viewtopic.php?f=1&t=1180&start=60#p35862

[6] в поиске: https://yandex.ru/search/?text=%D0%BC%D0%B5%D1%80%D0%BA%D1%83%D1%80%D0%B8%D0%B9%20230%20linux&lr=50

[7] Контроллер с программируемой логикой ОВЕН: https://owen.ru/

[8] вот: http://ttronics.ru/?menu=msi6e

[9] Мега: https://www.ab-log.ru/smart-house/ethernet/megad-328

[10] свой уникальный адрес, по которому они и распознаются контроллером: https://github.com/empenoso/Home-Assistant_two-bedroom-flat/blob/master/configuration.yaml#L83

[11] U-Sensor (5В), : https://www.ab-log.ru/smart-house/ethernet/u-sensor

[12] чужой статье: https://mysku.ru/blog/diy/79838.html

[13] цифровой термометр DS18B20: https://market.yandex.ru/catalog--radiodetali-i-elektronnye-komponenty/61856/list?text=DS18B20&local-offers-first=0

[14] в своей статье на Хабре: https://habr.com/ru/post/482800/

[15] openHAB: https://github.com/empenoso/openHAB_two-bedroom-flat/blob/master/openhab%202.2.0/rules/default.rules#L90

[16] Home Assistant: https://github.com/empenoso/Home-Assistant_two-bedroom-flat/blob/master/automations.yaml#L47

[17] дешевые модули, которые заявлены как модули детекции шума: https://www.google.ru/search?q=sound+detection+module

[18] USB микрофона: https://www.aliexpress.com/wholesale?SearchText=Mini+USB+2.0+Microphone+MIC+Audio+Adapter+Portable

[19] на GitHub: https://github.com/empenoso/openHAB_two-bedroom-flat/blob/master/openhab%202.2.0/exec/USB_dB.sh#L1

[20] правил автоматизации OpenHAB: https://github.com/empenoso/openHAB_two-bedroom-flat/blob/master/openhab%202.2.0/rules/default.rules#L262

[21] другую формулу: https://forum.arduino.cc/index.php?topic=376308.0

[22] Gravity: Analog Sound Level Meter от DFRobot: https://wiki.dfrobot.com/Gravity__Analog_Sound_Level_Meter_SKU_SEN0232

[23] на уровне описания элемента: https://github.com/empenoso/Home-Assistant_two-bedroom-flat/blob/master/configuration.yaml#L102

[24] Михаил Шардин: https://www.facebook.com/mikhail.shardin

[25] Источник: https://habr.com/ru/post/503646/?utm_source=habrahabr&utm_medium=rss&utm_campaign=503646