Подключение регуляторов к сетевому интерфейсу Home Assistant

Значения ph от двух датчиков в одном пресноводном аквариуме в течение двух дней. значение TDS в стакане.
Значения ph от двух датчиков в одном пресноводном аквариуме в течение двух дней. Значение TDS в стакане с водой. Можно наблюдать снижение водородного показателя в ночное время (накопление CO2) и возрастание ph днем с активизацией фотосинтеза

 

Данная инструкция описывает подключение регуляторов к Home Assistant.
Список приборов:

1. Насос дозатор ph
2. Насос дозатор удобрений TDS

Home Assistant (HA) — это open-source платформа для автоматизации умного дома, совместимая с устройствами различных производителей. Она позволяет создавать сложные сценарии автоматизации, интегрировать голосовых ассистентов и управлять системой через веб-интерфейс или мобильные приложения.

Это мощный, перспективный и бесплатный инструмент автоматизации систем культивирования растений и животных. Его функционал включает, но отнюдь не исчерпывается приведенными ниже возможностями. Широкое распространение  Home Assistant и живое сообщество обеспечивают его дальнейшее развитие.

Текущие данные от приборов в режиме реального времени
Текущие данные от приборов в режиме реального времени. Вывод и порядок строк настраивается

Установка системы Home Assistant и подключение прибора

1. Скачиваем и устанавливаем VMware Workstation (версия от 15)
2. Запрашиваем ссылку на образ с установленной системой и дополнениями. Размер сервера около 30 гб.
3. Открываем и запускаем образ в программе VMware Workstation.
4. В окне виртуальной машины VMware узнаем присвоенный локальный ip адрес (IPv4) сервера Home Assistant, например, 192.168.0.247.
5. Входим в home-assistant по адресу — homeassistant.local:8123 (логин и пароль — admin). Если страница недоступна, входим по адресу ip, указанному в окне виртуальной машины с добавлением порта 8123, например, 192.168.0.247:8123 (логин и пароль — admin).
6. На странице «MQTT» (Настройки -> Устройства и Службы -> MQTT) перенастроить ip адрес на свой, указанный выше. На этом этапе обязательно сделать резервную копию системы («Take Snapshot» в программе VMware) виртуальной машины. К нему можно откатить, если возникнут ошибки.
7. В настройках регулятора на странице (192.168.4.1) указать SSID, пароль вашей Wi-Fi сети, а также ip адрес виртуальной машины, указанный выше.

При включении регулятора в сеть, в течение 1 минуты он создает точку доступа Wi-Fi (SSID и пароль указаны на приборе). Для соединения с ней через телефон необходимо отключить в настройках телефона автоматическое подключение к мобильному интернету. Как только подключение с прибором установлено, на странице по адресу 192.168.4.1 изменяют настройки: SSID Wi-Fi сети, пароль, ip адрес сервера (MQTT servers).

Чтобы прибор подключился к локальной сети, SSID должен быть открытым, затем его можно снова скрыть.

Настройка подключения прибора к локальной Wi-Fi сети и MQTT серверу
Настройка подключения прибора к локальной Wi-Fi сети и MQTT серверу

После ввода данных и нажатия «Save Settings» прибор перезагрузится, подключится к локальной сети и начинает отправлять данные по протоколу MQTT.

Заходим на страницу Home Assistant. В интерфейсе брокера Mosquitto нажимаем «Настроить», в строке «Подписаться на топик» указываем решетку — «#» и жмем «Подписаться». После правильного конфигурирования настроек регуляторов появятся полученные данные в виде топиков. Каждый топик отвечает за прием одного типа данных (текущее значение ph; время дозирования и т.д.). Отписываемся и запоминаем названия топиков (ph001/phValue и т.д.), они нужны для настройки конфигурационного файла (configuration.yaml). Прием данных не зависит от того, нажата ли кнопка «Подписаться».

Интерфейс брокера Mosquitto
Интерфейс брокера Mosquitto

 

Если данные не появляются в интерфейсе MQTT  последовательно проверяют следующие настройки:

Прибор не подключается к Wi-Fi сети. Проверяют список подключенных устройств в настройках роутера. Должно присутствовать устройство ESP с номером. При возникновении ошибки, как правило, в сетевых настройках прибора на странице 192.168.4.1 неправильно введены данные Wi-Fi сети (ssid или пароль), либо ssid сети скрыт.

Если прибор присутствует в списке подключенных устройств роутера, но данные не приходят значит в сетевых настройках прибора на странице 192.168.4.1 неправильно введены ip адрес, логин и пароль от MQTT сервера. Либо неправильно указан ip  адрес в настройках MQTT сервера (см. пункт 6).

8. Конфигурируем файлы configuration.yaml и automations.yaml по общей схеме, меняем названия («name») приборов на свои, при этом автоматически создаются  метки «entity_id». Внесение названия приборов («name») приводит к созданию меток — «entity_id» (отображаются выпадающим списком слева), которые используются для автоматизации. Последующее изменение «name» также приводит к изменению«entity_id».

Названия топиков (ph001/phValue и т.д.) узнаем на странице брокера Mosquitto.

Настройка конфигурационных файлов, Telegram и текстовых уведомлений

Входим на страницу File-editor и настраиваем файлы по примерам, представленным ниже. Очень важно соблюдать синтаксис и порядок строк в файле. Затем сохраняем изменения и перезагружаем Home Assistant, чтобы  изменения вступили в силу.

В приведенных файлах настроены уведомления о недоступности приборов, а также снижении показаний ph ниже установленных значений. По аналогичной схеме можно настроить собственные уведомления.

Пример содержания файла configuration.yaml

Ссылка на файл configuration.yaml

Строки под «mqtt» содержат информацию о датчиках.  Следует внести названия приборов («name»), полученный по протоколу MQTT топик («state topic»), единицу измерения («unit_of_measurement»; топики с одинаковой единицей измерения выводятся на одном графике), проверку доступности прибора («expire_after»; в случае отключения прибора, через заданное количество секунд состояние меняется на недоступный — «unavailable»). Внесение названия приборов («name») приводит к созданию меток — «entity_id» (отображаются выпадающим списком слева), которые используются для автоматизации. Последующее изменение «name» также приводит к изменению«entity_id».

Согласно приведенным настройкам, история сохраняется в течение 2 последних дней («purge_keep_days: 2»). Желательно, устанавливать время удаления записей, чтобы не перегружать память.

Ниже («platform: filter») приведен пример получения сглаженных графиков для лучшей визуализации.

В файле configuration.yaml имеются строки настройки телеграмм бота («telegram_bot» и «notify»), их можно удалить, либо ввести свой номер токена и «chat_id». Для их получения создаем чат бота, переходим в botfather, нажимаем «/token», вставляем токен в строку:

https://api.telegram.org/botYOUR_TOKEN/getUpdates

Найдите «chat_id» в ответе API. Значение  «chat_id» также можно найти в канале @userinfobot — «/start».

Непосредственно формат оповещения (текст, названия датчиков, форма уведомления) определяют в конфигурационном файле automations.yaml.

Пример содержания файла automations.yaml

Ссылка на файл automations.yaml

Визуализация данных и построение графиков

Полученные от приборов данные визуализируются на странице «Обзор» и в виде графиков на странице «История». Задаем дату и время, выбираем объекты.

Удаленное подключение к Home Assistant

Для удаленной работы с интерфейсом с помощью телефона предложено множество решений и программных продуктов. Например, простой и быстрый способ предлагает программа Tailscale. Устанавливаем ее из каталога дополнений. Входим под своим google логином. Устанавливаем на телефон программу Tailscale и также входим под своим google логином. В интерфейсе программы на мобильном устройстве можно видеть присвоенный ip адрес удаленного доступа. Вносим ip адрес в адресную строку браузера: x.x.x.x:8123, добавляя порт 8123, входим в Home Assistant.

Просмотр показаний приборов с мобильного устройства в программе Tailscale
Просмотр показаний приборов с мобильного устройства в программе Tailscale

Если по какой либо причине вам не удается скачать и установить программу Tailscale, можно воспользоваться программой Zerotier One.
1. В интерфейсе Home Assistant скачиваем дополнение «Zerotier One».
2. На официальном сайте (my.zerotier.com/) входим под своим гугл аккаунтом и создаем сеть («Create a network»).
3. Копируем «Network ID» с сайта в конфигурацию дополнения «Zerotier One» на виртуальной машине, сохраняем и запускаем дополнение. Дополнение попытается подключиться к вашей сети на Zerotier.
4. На сайте my.zerotier.com/ авторизируем («Authorized») новое устройство.
5. Скачиваем приложение Zerotier для мобильного устройства. Создаем сеть с указанным «Network ID». Теперь мобильное устройство попытается подключиться к вашей сети на Zerotier.
6. На сайте my.zerotier.com/ авторизируем («Authorized») новое устройство.
7. В списке авторизированных устройств появятся два устройства — телефон и сервер Home Assistant.
7. Копируем ip адрес, присвоенный устройству сервера Home Assistant.
8. На мобильном устройстве вводим в поисковую строку браузера этот ip адрес с портом 8123, например, 172.29.178.55:8123 и входим в Home Assistant удаленно.

 

Похожие статьи:

Регулятор углекислого газа

Автоматизированная система замены воды (AWES) для пресноводного аквариума

Мониторинг состояния водной среды на основе Arduino

Насос дозатор удобрений TDS

ph контроллер для гидропоники — точное измерение и регулировка pH

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

× три = шесть