Использование СПО Home Assistant в среде Alt Linux для автоматизации хозяйственной деятельности организации (OSSDEVCONF-2023) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии этого же участника) | |||
;{{SpeakerInfo}}: * {{Speaker|Ростислав Воронин}} * {{Speaker|Игорь Воронин}} <blockquote> В докладе разбираются варианты использования СПО Home Assistant в различных конфигурациях установки для решения задач автоматизации учёта и мониторинга коммунальных услуг промышленных предприятий, научных организаций и частных домов. Home Assistant (HA) — это одна из самых популярных систем организации, автоматизации и управления устройствами умного дома и интернета вещей, объединяющая в себе автоматический сбор данных от устройств большого количества различных брендов. Система написана на Python и имеет открытый исходный код. </blockquote> {{VideoSection}} {{vimeoembed|892800687|800|450}} {{youtubelink|}} |MFHrOjTf7EA}} {{SlidesSection}} [[File:Использование СПО Home Assistant в среде Alt Linux для автоматизации хозяйственной деятельности организации (OSSDEVCONF-2023).pdf|left|page=-|300px]] {{----}} == Thesis == Home Assistant (HA) — это одна из самых популярных систем организации, автоматизации и управления устройствами умного дома и интернета вещей, объединяющая в себе автоматический сбор данных от устройств большого количества различных брендов. [https://www.home-assistant.io/ Система написана на Python] и имеет открытый исходный код. === Возможности HA === Отличительными особенностями НА являются: * наличие большого набора готовых вариантов визуализации данных; * удобный конструктор карточек для визуализации; * возможность интеграции большого количества датчиков и устройств, реализованная через дополнения, устанавливаемые как из официального магазина дополнений, так и созданных сообществом; * возможность и удобство интеграции в НА датчиков собственной разработки и устройств посредством использования протокола MQTT; * наличие постоянно обновляемой официальной документации; * активное сообщество в Телеграм-каналах и форумах, помогающее решить возникающие вопросы; * возможность работы на разнообразных аппаратных платформах; * свободная лицензия и отсутствие затрат на закупку ПО. Указанные особенности позволяют адаптировать и использовать НА не только для систем автоматизации умного дома, но и для автоматизации хозяйственной деятельности организаций. === Установка HA === Возможны различные варианты установки НА. * Core — самый минимальный функционал, все приложения, дополнения и интеграции нужно устанавливать отдельно, вручную. * Supervised — в этом варианте установки из WEB-интерфейса приложения возможно установить максимальный набор приложений. * HAOS — система устанавливается на чистое железо, как ОС, включая и загрузчик. * Возможна установка в окружении Python — vnev. * Возможна установка в контейнере Docker или Docker-composer. * Установка HAOS в виртуальной машине VirtualBox. Как выглядит реально работающая система в режиме CORE, можно посмотреть [http://wiki.umki-kit.ru:8123/ по ссылке] логин/пароль для входа гостем: guest/guest. Кроме процессора AMD/INTEL HA можно устанавливать также и на одноплатный компьютер с процессором архитектуры ARM, разбор нюансов установки [http://wiki.umki-kit.ru/wiki/index.php/Установка_Home_Assistant_на_AltLinux произведён в статье WIKI]. === Особенности установки HA в VirtualBox === Установка в VirtualBox на AltLinux имеет некоторые особенности. На странице загрузки НAOS предлагается для скачивания образ диска в формате VirtualBox (.vdi). Однако версия VirtualBox из репозитория AltLinux немного отстаёт от актуальной версии от Oracle, что выражается в том, что образ диска .vdi не воспринимается данной версией VirtualBox. Однако, если использовать инструменты VirtualBox на компьютере с установленной актуальной версией (например, под Windows или Ubuntu), то можно сконвертировать виртуальный носитель из формата .vdi в формат .vdd (Файл — Инструменты — менеджер виртуальных носителей), перенести .vdd файл на AltLinux и далее из альтлинуксового VirtualBox’а с помощью такого же инструмента сконвертировать .vdd в .vdi. === Пример использования HA для автоматизации хозяйственной деятельности организации === В хозяйственной деятельности организации требуется контролировать и вести учёт ряда коммунальных ресурсов. Обычно это электроэнергия, тепло и водоснабжение. Датчики, которые учитывают эти ресурсы, могут иметь подключение к локальной сети передачи данных, однако значительное число таких датчиков имеют простой выход на последовательный порт, и в этом случае для передачи данных необходимо подключение отдельного контроллера, который может служить шлюзом для передачи данных от устройства до сервера сбора данных. [[File:2023-woronin-img002.png|center|640px|Счетчик насоса подъёма воды]] В качестве примера автоматизации рассмотрим подключение счётчиков воды от артезианской скважины, имеющейся на территории организации. Счётчики используются как для учёта расхода воды внутри организации, в том числе для своевременного обнаружения возможных протечек, так и для организации расчётов с внешними потребителями и для отчётов в контролирующие органы. [[File:2023-woronin-img003.png|center|640px|Посуточный расход воды за 10 дней августа]] В данном случае сбор данных организован по локальной сети, путём отправки периодических запросов от сервера с ОС Альт на контроллеры счётчиков с WEB интерфейсом. Данные собираются запросом CURL c заданной периодичностью и отправляются с использованием mosquitto клиентом в заданные топики НА. Пример использованных команд приведён ниже: Контроллер счётчиков находится по адресу: [http://192.168.1.120], хост с HA: [http://192.168.1.2] По запросу [http://192.168.1.120/inf.cgi] контроллер отдаёт страницу такого содержания: <pre> info... UART0 Ok 47341.130 46683.580 36868.720 1.800 </pre> На этой странице ответа в третьей строке указаны значения 4-х счётчиков. Забираем показания счётчиков командой: <pre> $ curl -s -m 15 --connect-timeout 12 http://192.168.1.120/inf.cgi>/tmp/120.txt </pre> Далее скриптом bash с использованием команды awk из файла /tmp/120.txt парсим значение прокачанной воды для двух счётчиков, это 47341.130 и 46683.580. Передаём эти значения в топики mosquitto НА: <pre> $ 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 </pre> Для приёма данных на стороне НА необходимо выполнить интеграцию с mosquitto, а в конфигурационном файле НА достаточно указать раздел сенсора mqtt: <pre> - sensor: name: "Счетчик артскважины 1" unique_id: water0s device_class: water state_topic: "water/s0" unit_of_measurement: "m³" </pre> Аналогично можно организовать сбор и отображение данных с датчиков температуры, влажности, теплосчетчиков, счётчиков электроэнергии, управление освещением, что может быть полезным и актуальным, например, для агротепличного хозяйства. Если жилой дом снабжён котлом газового отопление с протоколом OpenTherm, то установка контроллера с Home Assistant позволит мониторить затраты на отопление в реальном времени и получать мгновенные сообщения о возникновении нештатных ситуаций. * Телеграм-канал сообщества, https://t.me/homassistant {{----}} [[File:{{#setmainimage:Использование СПО Home Assistant в среде Alt Linux для автоматизации хозяйственной деятельности организации (OSSDEVCONF-2023)!.jpg}}|center|640px]] {{LinksSection}} <!-- <blockquote>[©]</blockquote> --> <references/> [[Категория:OSSDEVCONF-2023]] [[Категория:Open-source projects]] [[Категория:Draft]] |
Текущая версия на 20:58, 3 мая 2024
- Докладчик
В докладе разбираются варианты использования СПО 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