Использование СПО Home Assistant в среде Alt Linux для автоматизации хозяйственной деятельности организации (OSSDEVCONF-2023)
Материал из 0x1.tv
- Докладчик
В докладе разбираются варианты использования СПО Home Assistant в различных конфигурациях установки для решения задач автоматизации учёта и мониторинга коммунальных услуг промышленных предприятий, научных организаций и частных домов.
Home Assistant (HA) — это одна из самых популярных систем организации, автоматизации и управления устройствами умного дома и интернета вещей, объединяющая в себе автоматический сбор данных от устройств большого количества различных брендов.
Система написана на Python и имеет открытый исходный код.
Содержание
Видео
Презентация
Thesis
Home Assistant (HA) — это одна из самых популярных систем организации, автоматизации и управления устройствами умного дома и интернета вещей, объединяющая в себе автоматический сбор данных от устройств большого количества различных брендов. Система написана на Python и имеет открытый исходный код.
Возможности HA
Отличительными особенностями НА являются:
- наличие большого набора готовых вариантов визуализации данных;
- удобный конструктор карточек для визуализации;
- возможность интеграции большого количества датчиков и устройств, реализованная через дополнения, устанавливаемые как из официального магазина дополнений, так и созданных сообществом;
- возможность и удобство интеграции в НА датчиков собственной разработки и устройств посредством использования протокола MQTT;
- наличие постоянно обновляемой официальной документации;
- активное сообщество в Телеграм-каналах и форумах, помогающее решить возникающие вопросы;
- возможность работы на разнообразных аппаратных платформах;
- свободная лицензия и отсутствие затрат на закупку ПО.
Указанные особенности позволяют адаптировать и использовать НА не только для систем автоматизации умного дома, но и для
автоматизации хозяйственной деятельности организаций.
Установка HA
Возможны различные варианты установки НА.
- Core — самый минимальный функционал, все приложения, дополнения и интеграции нужно устанавливать отдельно, вручную.
- Supervised — в этом варианте установки из WEB-интерфейса приложения возможно установить максимальный набор приложений.
- HAOS — система устанавливается на чистое железо, как ОС, включая и загрузчик.
- Возможна установка в окружении Python — vnev.
- Возможна установка в контейнере Docker или Docker-composer.
- Установка HAOS в виртуальной машине VirtualBox.
Как выглядит реально работающая система в режиме CORE, можно посмотреть по ссылке логин/пароль для входа гостем: guest/guest.
Кроме процессора AMD/INTEL HA можно устанавливать также и на одноплатный компьютер с процессором архитектуры ARM, разбор нюансов установки произведён в статье WIKI.
Особенности установки HA в VirtualBox
Установка в VirtualBox на AltLinux имеет некоторые особенности. На странице загрузки НAOS предлагается для скачивания образ диска в формате VirtualBox (.vdi). Однако версия VirtualBox из репозитория AltLinux немного отстаёт от актуальной версии от Oracle, что выражается в том, что образ диска .vdi не воспринимается данной версией VirtualBox. Однако, если использовать инструменты VirtualBox на компьютере с установленной актуальной версией (например, под Windows или Ubuntu), то можно сконвертировать виртуальный носитель из формата .vdi в формат .vdd (Файл — Инструменты — менеджер виртуальных носителей), перенести .vdd файл на AltLinux и далее из альтлинуксового VirtualBox’а с помощью такого же инструмента сконвертировать .vdd в .vdi.
Пример использования HA для автоматизации хозяйственной деятельности организации
В хозяйственной деятельности организации требуется контролировать и вести учёт ряда коммунальных ресурсов. Обычно это электроэнергия, тепло и водоснабжение. Датчики, которые учитывают эти ресурсы, могут иметь подключение к локальной сети передачи данных, однако значительное число таких датчиков имеют простой выход на последовательный порт, и в этом случае для передачи данных необходимо подключение отдельного контроллера, который может служить шлюзом для передачи данных от устройства до сервера сбора данных.
В качестве примера автоматизации рассмотрим подключение счётчиков воды от артезианской скважины, имеющейся на территории организации. Счётчики используются как для учёта расхода воды внутри организации, в том числе для своевременного обнаружения возможных протечек, так и для организации расчётов с внешними потребителями и для отчётов в контролирующие органы.
В данном случае сбор данных организован по локальной сети, путём отправки периодических запросов от сервера с ОС Альт на контроллеры счётчиков с WEB интерфейсом. Данные собираются запросом CURL c заданной периодичностью и отправляются с использованием mosquitto клиентом в заданные топики НА. Пример использованных команд приведён ниже:
Контроллер счётчиков находится по адресу: [1], хост с HA: [2]
По запросу [3] контроллер отдаёт страницу такого содержания:
info... UART0 Ok 47341.130 46683.580 36868.720 1.800
На этой странице ответа в третьей строке указаны значения 4-х счётчиков.
Забираем показания счётчиков командой:
$ curl -s -m 15 --connect-timeout 12 http://192.168.1.120/inf.cgi>/tmp/120.txt
Далее скриптом bash с использованием команды awk из файла /tmp/120.txt парсим значение прокачанной воды для двух счётчиков, это 47341.130 и 46683.580.
Передаём эти значения в топики mosquitto НА:
$ mosquitto_pub -h 192.168.1.2 -u user -P pwd -t water/s0 -m 47341.130 $ mosquitto_pub -h 192.168.1.2 -u user -P pwd -t water/s1 -m 46683.580
Для приёма данных на стороне НА необходимо выполнить интеграцию с mosquitto, а в конфигурационном файле НА достаточно указать раздел сенсора mqtt:
- sensor: name: "Счетчик артскважины 1" unique_id: water0s device_class: water state_topic: "water/s0" unit_of_measurement: "m³"
Аналогично можно организовать сбор и отображение данных с датчиков температуры, влажности, теплосчетчиков, счётчиков электроэнергии, управление освещением, что может быть полезным и актуальным, например, для агротепличного хозяйства.
Если жилой дом снабжён котлом газового отопление с протоколом OpenTherm, то установка контроллера с Home Assistant позволит мониторить затраты на отопление в реальном времени и получать мгновенные сообщения о возникновении нештатных ситуаций.
- Телеграм-канал сообщества, https://t.me/homassistant