
Данная инструкция описывает подключение регуляторов к 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 должен быть открытым, затем его можно снова скрыть.

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

Если данные не появляются в интерфейсе 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, можно воспользоваться программой 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