Опыт построения умного дома на Raspberry Pi и открытой платформе OpenHAB. Часть 1
Два года назад у нас появился загородный дом. Только сейчас, во время пандемии, мы поняли, что это была инвестиция, а не трата бабла повышение уровня жизни. Изначально планировали жить на два дома — квартира в городе и дом за городом. Поэтому появилось желание автоматизировать его по максимуму. Ну, как минимум, чтобы зимой можно было прогреть дом перед приездом.
Эта статья не является полной инструкцией что и как делать, а больше сборником куда копать и что почитать или посмотреть, чтобы сделать самому.
Тем не менее вы найдете для себя много полезной информации и ссылок, а главное при минимальных навыках поиска информации в интернете вы сможете сами найти все необходимые пошаговые инструкции. В наш век DIY (Do It Yourself, самоделки), вы все можете получить в виде 5-20 минутных делай-как-я видео инструкций. Нынче никто уже не пишет по-старинке.
Перед началом эпического описания собранной системы несколько наблюдений. Если вы хотите умный дом так как вы хотите, вам придется делать его своими руками. Эта истина все еще свежа как и два года назад. К сожалению, производители с мировым именем выпускают какое-то барахло, непонятно кому и зачем нужное. Вы можете накупить множество различных штук, каждая из которых будет автоматизировать одну определенную задачу, но собрать все воедино в одном приложении — нереально. То одного нет, то другого. Несмотря на весь хайп вокруг IoT, плаг энд плеем это так и не стало.
Для начала расскажу что и как было сделано до начала автоматизации и какие наиболее актуальные задачи стоят.
Итак, характеристики того что есть.
- Дом — 2 этажа, 140 кв.м, брус.
- В доме 15 КВт электроэнергии
- Разводка электрики сделана в щиток на DIN рейку. Щиток правда барахло, надо бы поменять, на что-нибудь получше, но пока довольствуемся тем что есть, уж очень геморройно будет все переделывать…
- Водоснабжение — скважина 35м и колодец 15м. В колодце 2 насоса, один — полив участка, дает где-то 2.5бар, и харьковский скважинный на водоснабжение дома (планируется переезд на скважину, если мы поймем, что там вода лучше). В скважине маленький насос из разряда чтобы был и скважина не заиливалась, что-то типа малыша. Сейчас не используется, но думаем все-таки перейти на него. Вода в дом подается через джилексовский «Краб 24». Точно такой же «Краб 24» стоит в колодце для управления насосом на полив.
- Так как все новое, все освещение изначально делаем только на светодиодах.
- Разводка довольно грамотная, по комнатам. Каждая комната заведена на свой автомат 16А.
- Обогрев организован радиаторами с разводкой пластиковыми трубами по всему дому.
- Теплоноситель в батареях зимний, что-то типа тосола. Но при падении давления предусмотрен клапан добавить давления в систему.
- Обогрев осуществляется электрическим котлом Protherm, 12кВт, достаточно умным, чтобы уметь поддерживать заданную температуру теплоносителя и ограничивать свою мощность двумя-четырьмя-шестью-восемью и двенадцатью киловаттами.
- Горячая вода — два электрических водонагревательных котла. Один на ванную комнату, чтобы можно было мыться и принимать ванну (100л) и один в кухне, мыть посуду, литров 15.
- Канализация — септик Юнилос, живет своей жизнью. Все что нужно — подача электричества.
- Internet Gpon, 70Mb/s. Я когда своим коллегам из Европы рассказываю, что у нас в деревне в 80км от Москвы есть оптика, они делают круглые глаза. Я сам сделал круглые глаза когда уже после покупки дома во второй свой приезд, увидел оптический кабель на столбе напротив моего дома.
- Apple TV. Ну не смотрим мы TV, зато нетфликсы и другие стрим сервисы вполне себе.
Что хотелось иметь:
- Управление котлами (2 водонагревательных), один системы отопления.
- Управление светом на улице в темное время суток. Включать с закатом, выключать с рассветом.
- Управление светом дома из разряда когда-нибудь.
- Управление поливом. У нас есть 12 грядок, засаженных горохом и клубникой. Ну и зелень к шашлыкам.
- Система видеонаблюдения на будущее, пока дом на пультовой охране Дельта.
Забегая вперед, все удалось реализовать, кроме света в доме и видео. Это как оказалось самый очевидная, но и самый бесполезный функционал. Как нибудь все равно сделаю.
Итак, проект начал два года назад не имея большого опыта в домашней автоматизации, зато с опытом системного администрирования Windows. Не сказать что я когда-либо был продвинутым Linux-администратором, но кое что умею. А еще у меня есть коллега, который если что может подсказать.
Первое что пришлось делать — выбирать платформу. Вариантов много, кто-то использует Domoticz, мой же выбор пал на OpenHAB. Во многом благодаря вот этому видеоблогу. Видео на YouTube:
Почему выбор пал на нее:
- Она очень гибкая, можно сделать все что угодно.
- Есть коннектор в мир автоматизации Apple Home Kit.
- Работает на Raspberry Pi.
- Есть свое приложение для телефона и свой Cloud для работы с ним.
Второе — железо. Как работник Broadcom, не могу заставить себя купить какой-нибудь Intel ;))) Есть две вещи, в котором BCM лучше всех в масс-маркет сегменте, это чипы для Raspberry Pi и чипы для роутеров :). Ну а если еще более развернуто, то мне хотелось дополнительно к автоматизации дома на своем собственном проекте посмотреть как обстоят дела в мире embedded-систем, что там с ARM, что там с софтом. Ну и сам по себе комп за 50 баксов (на самом деле дороже из-за корпуса, флэшки и блока питания), это же круто. Очень хотелось попробовать. Это был мой первый RaspPi, поэтому все было интересно.
Кроме этого, для того, чтобы что-то сделать рабочее, нужно чем-то как-то управлять. На связке OpenHAB-RaspPi управлять можно выводами GPIO RaspPi и через WiFi с протоколом MQTT (Mosquito) https://mosquitto.org/man/mqtt-7.html. Если вы еще не знаете, что это, советую почитать про него. Это легковесный message-based протокол, который может работать на самых простых микроконтроллерах. Я честно думал, что буду собирать сам датчики на ардуинках, даже купил две. Но практика показала, что все есть готовое и надо только его правильно подать (перепрошить). Об этом речь пойдет во второй части.
В качестве устройств которыми управлять после недели поисков в интернете и просмотра блогов (видеоблогов, каюсь), выбрал следующие два устройства:
Для того, чтобы запитать такого зверя мне понадобились реле. Паять желания нет, да и кто сейчас такое паяет. Идем в Чип и Дип (не реклама) или любой другой магазин электроники и покупаем. Рублей 300.
Пока писал, подивился, оказывается появились прямо готовые платки с реле для крепления на борду моей малинки. https://www.chipdip.ru/product/rpi-relay-board. Куплю как-нибудь.
Итак, железо собрано. Теперь дело за софтом.
Первый этап — накатываем OpenHABian. Это образ, который надо распаковать на флэшку вашего будущего сервера домашней автоматизации. Качаем отсюда, там же есть подробная инструкция что и как. Потом вставляем флэшку в малинку, подключаем питание и ждем часик. В этот момент установочный скрипт сам все для вас настроит. Далее вы заходите на веб-мордочку и администрируете там. Кроме этого, у системы есть несколько текстовых файлов, которые приходится время от времени править ручками. Sitemap, Items и Rules, предназначенных для различных нужд. Например в Sitemap вы описываете то, что будет в вашем управляющем софте. То есть кнопочки и переключатели-выключатели. В Rules можно писать разные правила, например там я сделал включение-выключение света в темное время суток по астрономическим данным. Items описывает ваши устройства, которыми вы управляете. Прежде чем умело начать всем этим пользоваться, я смотрел пошаговые видео инструкции от уже упомянутого подростка mk-smarthome.
Второй этап — сборка схемы в электрощитке. Установка контактора, блока реле, проводки между ними. С GPIO я подаю сигнал на блок реле, а уже оттуда 220V AC на контактор. Контактор включает 12КВт электропечку.
Ну и третий этап — конфигурируем наше только что собранное в софте OpenHAB.
Я сделал это за первый вечер. Итогом моей работы стало рабочее приложение на айфоне (а также на андроиде или просто в браузере), которое через свое родное облако связывается с моим Raspberry Pi с OpenHAB. Это особо важно при выборе платформы, чтобы самому не заниматься написанием кода для своего телефона, не устанавливать клаужных серваков и.т.д. И все это забесплатно. То есть по цене оборудования. Софт OpenHAB — безвозмезден.
Что омрачило мои занятия — так это борьба Роскомнадзора с Телеграммом. Если помните, они начали банить все IP-подсети подряд. В том числе и github, OpenHAB.org, и.т.д. И если основные ресурсы пришли в себя довольно скоро, то вот OpenHAB, которым в РФ пользуется, видимо, три инвалида включая меня еще год работал с косяками. Нет, не в боевых своих функциях, а в моменты апгрейдов и апдейтов софта. Я год ходил на сайт OpenHAB через анонимайзер-прокси… Это убедило меня, что с IoT в нашей стране все грустно. Еще одно замечание в сторону OpenHAB. Не надо апгрейдить рабочую конфигурацию. Сделайте бэкап всего и вся перед любыми подобными действиями. При переходе на какую-то новую мажорную версию я как-то зимой оставил себя без обогрева… Пришлось сначала подключать все байпассом, чтобы не замерзнуть, а потом полночи чинить сломанную конфигурацию. При переходе на новые версии у них меняются форматы, подходы и.т.д.
Вот так в итоге выглядит мое приложение.
Через пару недель я реализовал программный термостат в OpenHAB, используя беспроводной датчик температуры-влажности на Sonoff TH16 (ардуиноподобный китайский процессор ESP8266 с вайфаем и релюшечки типа уже продемонстрированной сверху). Но обо всем этом во второй части. А пока пишите что вам рассказать поподробней. Во второй части добавлю.
Raspberry Pi Model 3 B — устанавливаем систему управления умным домом Domoticz
После того, как я испытал возможности системы управления умным домом Domoticz на своем настольном компьютере и убедился в том, что она отлично дополняет, а где и заменяет Mi Home — штатную систему Xiaomi — я решил приобрести для нее отдельный одноплатный компьютер — Raspberry Pi. И в этом обзоре я расскажу про свой опыт.
Вступление
Для тех кто не читал мой первый обзор про Domoticz — Domoticz + Xiaomi — строим умный дом, введение. Буквально после первых удачных экспериментов, я загорелся идеей отдельной аппаратной базы для нее, в качестве рабочей платформы настольный ПК не подходит. Выбор свой я остановил, после штудирования пабликов — на Raspberry Pi Model 3 B — компактный но мощный одноплатный компьютер на базе Soc процессора BCM2837 с 4 ядрами Cortex-A53, работающим на частоте 1.2GHz, 1GB ОЗУ и беспроводными модулями Wi-Fi и Bluetoth 4.1.
Комплект
В свой заказ я включил 4 позиции —
Raspberry Pi Model 3 B Motherboard — страница товара
Что интересно в магазине имеется две модификации — китайская и английская. На момент покупки китайская стоила на 7 долларов дешевле, ее я и взял. Чего там китайского — честно говоря для меня загадка.
Корпус для Raspberry Pi Model 3 B — страница товара
Блок питания HN — 528i AC / DC 5V 2A — страница товара
Медные радиаторы для Raspberry Pi — страница товара
Еще для полного комплекта вам понадобится microSD карта — не менее 4 GB и HDMI кабель. У меня в загашнике был и кабель и карта на 32 ГБ, потому покупать не стал.
Что в посылке
Через положенный срок — чуть более двух недель, курьер принес посылку с моим заказом.
Рассмотрим подробнее. Блок питания с вилкой Тип С и разъемом micro-USB.
Заявленный максимальный ток — 2А при напряжении 5 В.
Тестовое включение с нагрузкой в 2А — показывает некоторое проседание напряжения, но в пределах допустимого, блок питания — более-менее честный.
Комплект из трех медных радиаторов в пакетике, для пассивного охлаждения.
Все радиаторы имеют квадтарную форму, два радиатора с штырями и длиной стороны около 12 мм и один плоский со стороной около 15 мм.
Корпус из темного пластика с выдавленным изображением ягоды малины на крышке
Размеры корпуса — примерно 90 на 65 мм
Корпус разбирается на 5 частей — держится все защелках, никаких винтов.
С аксессуарами покончено — пора переходить к самому главному
RASPBERRY PI 3 MODEL B
Raspberry Pi 3 Model B является прямым наследником Raspberry Pi 2 Model B. Плата полностью совместима с предшественником, но наделена большей производительностью и новыми средствами коммуникации:
64-х битным четырёхядерным процессором ARM Cortex-A53 с тактовой частотой 1,2 ГГц на однокристальном чипе Broadcom BCM2837; встроенными Wi-Fi 802.11n и Bluetooth 4.1.
Кроме того, процессор имеет архитектуру ARMv53, а значит вы сможете использовать любимую операционную систему: Debian Wheezy, Ubuntu Mate, Fedora Remix и даже MS Windows 10.
Технические характеристики подробнее
CPU — Broadcom BCM2837, ARM Cortex-A53 Quad Core, 1.2 GHz
Количество ядер процессора — 4
GPU — VideoCore IV 3D
RAM — 1 GB
Хранилище — microSD
Сетевые возможности
Ethernet 10/100
WiFi 2.4G 150 mb/s
Видео вывод — HDMI
USB порты — 4
Беспроводные возможности — Bluetooth
Аудио вывод — 3,5 Jack
85,6 х 53,98 х 17мм, 45 грамм
В коробке имеется документация и буклет по быстрой установке — кстати на английском языке, а так же пакет из плотной коричневой бумаги с компьютером.
На одной из длинных сторон компьютера размещены порты micro USB для питания, полноразмерный порт HDMI, CSI-2 Camera port — для подключения камеры по интерфейсу MIPI, 3,5 мм аудиоразъем. Так же на верхней стороне находится модуль процессора и Ethernet/USB Hub lan9514-jzx
На торцевой стороне скомпонованы 4 USB порта и порт Ethernet
На другой стороне материнской платы находится 40 контактов ввода/вывода общего назначения (GPIO)
На второй торцевой стороны — находится DSI Display Port для подключения штатного дисплея
На нижней стороне платы находится модуль памяти LPDDR2 SDRAM — EDB8132B4PB-8D-F
И micro-SD разъем для карты памяти
Медные радиаторы ставятся на USB/Ethernet Hub и процессор с одной стороны
И на чип памяти с другой. Этот радиатор плоский — не мешает установке платы компьютера в корпус
В корпус все устанавливается отлично, винтовых соединений нет — садится на пластиковые выступы.
Все вырезы на корпусе в точности совпадает с разъемами компьютера
Для запуска нам потребуется внешний монитор (телевизор) с HDMI входом, USB клавиатура, будет удобнее если так же будет и мышка и питания. Монитор, клавиатура и мышка — понадобятся только на момент установки, дальше достаточно будет только блока питания.
Установка операционной системы
Для установки операционной системы, первым делом необходимо загрузить архив с дистрибутивами — отсюда . Пока скачивается почти полутора гигабайтный архив, загружаем утилиту для форматирования SD карты — SD Card Formatter — отсюда. Этот дистрибутив гораздо компактнее — всего 6 МБ, поэтому не теряя времени, устанвливаем программу
и, после установки, вставляем карту памяти в картридер (у вас же есть картридер не правда ли) и запускаем SD Card Formatter. В меню Options необходимо установить “FORMAT SIZE ADJUSTMENT” в “ON”
Дождавшись завершения загрузки большого дистрибутива, открываем полученных архив и распаковываем его содержимое на свежеотформатированную флешку.
Следующий шаг — первый запуск Raspberry Pi (флешку с записанным дистрибутивом, конечно устанавливаем в него). Извините за качество нескольких следующих фото — с экрана телевизора :(
При первом запуске стартует меню выбора операционной системы — что ставить, причем в списке имеется даже версия WIndows 10 для Raspberry Pi. На этом этапе можно выбрать язык (внизу экрана) — русский есть и подключится к Wi-Fi сети — кнопка Wi-Fi networks
Нужная мне опарационка — Raspbian базирующаяся на Linux Debian — представлена в двух вариантах, lite И полном, с графическим интерфейсом. Я выбрал полную версию
После этого можем спокойно идти пить чай с баранками, установка займет довльно длительное время.
Периодически измеряя температуру во время установки, максимально что я видел — 38 градусов.
После завершения установки и перезагрузки компьютера, загружается рабочий стол Raspbian
Единственное что я сделал здесь — это в настройках включил SSH — для того чтобы управлять системой с настольного ПК, все остальное я уже делал через терминал.
Для управления Raspberry с настольного ПК, нам понадобится любая программа терминал, я использую старый добрый Putty
Имя пользователя и пароль по умолчанию — pi и raspberry. Для смены пароля воспользуйтесь командой passwd.
Рекомендую сразу установить статический IP адрес для Raspberry. Узнать текущие адреса можно при помощи команды ifconfig, где
eth0 — это Ethernet
lo — это локальный интерфейс 127.0.0.1
wlan0 — это wi-fi интерфейс
а для того что бы отредактировать файл с настройками — вводим команду
sudo nano /etc/dhcpcd.conf
и в открывшемся файле, пролистав в конец добавляем нужные настройки в зависимости от того какой интерфейс мы будем использовать.
Например мы хотим использовать адрес 192.168.0.222, маска 255.255.255.0, адрес шлюза и DNS — 192.168.0.1
Для Ethernet вставляем
static ip_address=192.168.0.222/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
interface wlan0
static ip_address=192.168.0.222/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
Для выходя из редактора нажимаем ctrl+x
Для сохранения изменений — нажимаем “Y” и затем enter
Установка Domoticz
Большая часть работы по настройке уже закончена, теперь нам нужно установить систему Domoticz. Делается это одной командой —
sudo curl -L install.domoticz.com | sudo bash
Которая инициализирует процесс загурзки и установки системы
В процессе установки, инсталлятор задаст вопросы по поводу места установки и т.п. — все эти моменты я оставил по умолчанию.
После успешной установки, инсталлятор напишет адреса и порты веб интерфейса системы Domoticz
Но, для работы с шлюзом Xiaomi — нам нужна beta версия системы. Обновление до крайней версии беты производится командами
/domoticz
sudo ./updatebeta
После этого, мы можем приступать к добавлению устройств в систему Domoticz — про это я уже рассказывал в своем предыдущем обзоре про нее.
На данный момент я уже перенес все свои рабочие сценарии с Windows версии на Raspberry — кстати стоит добавить что обе системы мирно сосуществуют одновременно. Для обеспечения бесперебойного питания миникомпьютера достаточно использовать PowerBank, который позволяет одновременно питать устройство и получать питание от внешнего источника.
Все мои обзоры устройств Xiaomi в хронологическом порядке — Список
Все мои видео обзоры — YouTube
Надеюсь обзор был полезен и интересен, спасибо за внимание.