В этом кратком обзоре я хочу познакомить вас с бесплатным программным продуктом, предназначенным для автоматизации дома – Home Assistant.
Home Assistant-это open-source платформа для автоматизации, построенная на Python3 и способная работать на различных компьютерах, в т.ч. на Raspberry Pi. Для работы с Home Assistant не требуется клиентское приложение – доступ осуществляется через web-браузер с любого компьютера, планшета или смартфона. Home Assistant обладает системой инструментов для разработчика, позволяет легко интегрировать различные датчики, исполнительные устройства и т.д., что позволит вам создать надежную систему домашней автоматизации даже в том случае, если вы не обладаете необходимыми знаниями в программировании.
Подключение периферии к Home Assistant (датчики, исполнительные устройства и т.д) рассмотрим применительно к кросс-плате, которая ранее разрабатывалась для системы домашней автоматизации, построенной на фреймворке WebIOPi – WebHomePi,что позволит пользователю выбрать более предпочтительную для него систему без замены существующего «железа».
Но это совершенно не говорит о том, что если ранее вы не собирали кросс-плату, то сейчас придется ее делать. Для установки Home Assistant на начальном этапе достаточно будет только Raspberry Pi, к которому, по мере необходимости, будут подключаться дополнительные устройства. Итак, приступим:
Форматируем SD-карту (объемом не менее 4 Гб) программой SDFormatter и заливаем на карту образ. Сделать это можно программой Win32DiskImager.
После копирования образа вставляем SD-карту в Raspberry Pi, обязательно подключаем кабель Ethernet и подаем питание.
Первая загрузка Home Assistant может продолжаться очень долго, до 20-30 минут. За это время система обновится, скачав нужные пакеты из репозитория. После загрузки можно подключаться к Home Assistant через web-интерфейс. Для этого определите IP адрес вашего Raspberry Pi (например, с помощью программы IPScan) и введите в браузере полученный адрес с указанием порта 8123:
После ввода адреса в браузере откроется интерфейс Home Assistant. Если у вас есть включенные в домашнюю локальную сеть устройства, поддерживаемые Home Assistant, то они будут показаны в web-интерфейсе. Например, у меня система сразу нашла оба телевизора Smart-TV Samsung (рис.1):
Рис. 1
Теперь можно приступить к интеграции в систему различных устройств. Для этого в Home Assistant предусмотрен конфигурационный файл configuration.yaml, в который прописываются процедуры (скрипты) работы с определенным девайсом. Существует огромное количество готовых скриптов, которые можно найти на официальном сайте проекта в разделе технической поддержки.
Получить доступ к редактированию конфигурационного файла configuration.yaml, расположенного в папке /config, можно следующими способами (рис.2):
- через сервер SSH посредством программ Putty и WinSCP. Выполнить установку сервера SSH можно в разделе Hass.io. После установки не забываем задать и сохранить пароль для root пользователя;
- через сервер Samba share. Установка также выполняется в разделе Hass.io. После установки и запуска Samba share, в сетевом окружении компьютера появится папка HASSIO с конфигурационными файлами.
Рис. 2
Выше мы условились, что будет отталкиваться от существующей периферии кросс-платы. Поэтому, для начала остановимся на подключении датчиков температуры и влажности DHT22 к пинам 17 и 27 GPIO Raspberry Pi. Открываем конфигурационный файл configuration.yaml в любом текстовом редакторе (лучше всего для этих целей подойдет Notepad++), прописываем в разделе sensor: скрипты работы с датчиками DHT22 и сохраняем изменения в файле (рис.3):
Рис. 3
Отредактировав конфигурационный файл, переходим в раздел «Настройки» – «Общие» и проверяем внесенные изменения (кнопка «Проверить конфигурацию»). В случае ошибок необходимо их исправить и повторно проверить конфигурацию. Если все нормально, то можно перезагрузить сервер.
Здесь хочу обратить внимание на один очень важный момент. Если выполнить перезагрузку сервера с ошибками в конфигурационном файле, то доступ к системе через web-интерфейс будет закрыт – браузер вернет сообщение, что страница недоступна. Поэтому, настоятельно рекомендуется перед внесением любых изменений в configuration.yaml сделать его архивную копию.
После перезагрузки сервера на странице «Обзор» должны отображаться показания температуры и влажности с двух датчиков DHT22 (рис.4).
Рис. 4
Кликнув мышкой по отображаемому значению, можно посмотреть график изменения этого параметра. График легко масштабируется, что позволяет детально изучить динамику изменения контролируемого параметра (рис.5)
Рис. 5
Следующим этапом рассмотрим подключение датчиков DS18B20 по шине 1-wire.
Сначала активируем шину, прописав в файле /boot/config.txt следующую строку:
dtoverlay=w1-gpio
Затем подключаем шину 1-wire в конфигурационном файле (рис.6):
Рис. 6
После проверки конфигурации перегружаем сервер и видим показания датчиков DS18B20 (в нашем случае к GPIO,4 Raspberry Pi их подключено 8 штук) на странице «Обзор» (рис.7).
Рис. 7
Переходим к управлению реле. В конфигурационном файле прописываем номера портов GPIO, к которым подключены реле и их названия. Обратите внимание на параметр invert_logic: - его значение (false или true) определяет логический уровень на выходах GPIO после включения питания (рис.8)
Рис. 8
Проверяем конфигурацию, перегружаем сервер и получаем возможность управления реле из web-интерфейса (рис.9)
Рис. 9
Кликнув мышкой по названию реле, можно посмотреть время его включения и отключения и, следовательно, продолжительность работы нагрузки, подключенной к этому реле (рис.10)
Рис. 10
Аналогичным образом подключаем к Home Assistant 8 дискретных входов кросс-платы. Прописываем в конфигурационном файле номера портов GPIO, выделенных под дискретные входы и их название (рис.11).
Рис. 11
После проверки конфигурации и перезагрузки реле можно контролировать состояние дискретных входов. Активный (замкнутый) вход отображается в интерфейсе «галочкой» (рис.12)
Рис. 12
Журнал изменения состояния входа можно отследить, кликнув мышкой по соответствующему входу (рис.13)
Рис. 13
В разделах «Журнал» и «История» (рис.14) отображаются все действия системы за выбранный период времени, а также графики параметров подключенных к Raspberry Pi датчиков:
Рис. 14
P.S.Возможно, кто-то из участников нашего форума захочет поделиться своим опытом применения или небольшими обзорами различных систем домашней автоматизации, например таких, как OpenHAB, MajorDoMo, Domoticz и т.д? Думаю, что такая информация была бы очень полезной и интересной в плане сравнения различных существующим систем.