Использование СПО Home Assistant в среде Alt Linux для автоматизации хозяйственной деятельности организации (OSSDEVCONF-2023) — различия между версиями

Материал из 0x1.tv

 
(не показаны 2 промежуточные версии этого же участника)
|}}
|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 и имеет открытый исходный код.

Видео

on youtube

Презентация

Использование СПО Home Assistant в среде Alt Linux для автоматизации хозяйственной деятельности организации (OSSDEVCONF-2023).pdf Использование СПО Home Assistant в среде Alt Linux для автоматизации хозяйственной деятельности организации (OSSDEVCONF-2023).pdf Использование СПО Home Assistant в среде Alt Linux для автоматизации хозяйственной деятельности организации (OSSDEVCONF-2023).pdf Использование СПО Home Assistant в среде Alt Linux для автоматизации хозяйственной деятельности организации (OSSDEVCONF-2023).pdf Использование СПО Home Assistant в среде Alt Linux для автоматизации хозяйственной деятельности организации (OSSDEVCONF-2023).pdf Использование СПО Home Assistant в среде Alt Linux для автоматизации хозяйственной деятельности организации (OSSDEVCONF-2023).pdf Использование СПО Home Assistant в среде Alt Linux для автоматизации хозяйственной деятельности организации (OSSDEVCONF-2023).pdf Использование СПО Home Assistant в среде Alt Linux для автоматизации хозяйственной деятельности организации (OSSDEVCONF-2023).pdf Использование СПО Home Assistant в среде Alt Linux для автоматизации хозяйственной деятельности организации (OSSDEVCONF-2023).pdf Использование СПО Home Assistant в среде Alt Linux для автоматизации хозяйственной деятельности организации (OSSDEVCONF-2023).pdf Использование СПО Home Assistant в среде Alt Linux для автоматизации хозяйственной деятельности организации (OSSDEVCONF-2023).pdf Использование СПО Home Assistant в среде Alt Linux для автоматизации хозяйственной деятельности организации (OSSDEVCONF-2023).pdf

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 для автоматизации хозяйственной деятельности организации

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

Счетчик насоса подъёма воды

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

Посуточный расход воды за 10 дней августа

В данном случае сбор данных организован по локальной сети, путём отправки периодических запросов от сервера с ОС Альт на контроллеры счётчиков с 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 позволит мониторить затраты на отопление в реальном времени и получать мгновенные сообщения о возникновении нештатных ситуаций.



Использование СПО Home Assistant в среде Alt Linux для автоматизации хозяйственной деятельности организации (OSSDEVCONF-2023)!.jpg

Примечания и ссылки