
Данная инструкция описывает подключение регуляторов к Home Assistant, а также установку образа Home Assistant на виртуальную машину под Windows на ноутбук или персональный компьютер. По запросу могу скинуть образ системы для установки на Raspberry Pi4 с автоматизациями и дополнениями.
Устройства обмениваются сообщениями через MQTT, протокол обмена данными в умных домах и IoT. Этот протокол очень легкий, работает через Mosquitto или EMQX брокеры, передает сообщения между программами по сети IP, имеет прикладной уровень. Он часто используется шлюзами, серверами и контроллерами, лежит между всеми экосистемами и одинаково работает по всему миру. Это самый массовый протокол обмена, самый массовый DIY, самый массовый промышленный IoT. Не требует и не зависит от интеграции сторонних сервисов, облаков и протоколов, например, Zigbee, Z-Wave, Tuya, Алиса, Modbus.
Список приборов:
1. Насос дозатор ph
2. Насос дозатор удобрений TDS
3. Регулятор углекислого газа
4. Диммер ШИМ регулятор 12-24 В
5. Расходомер для подключения 11 датчиков Холла
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.
8. Заходим на страницу 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).
9. Конфигурируем файл configuration.yaml по следующей схеме:
purge_keep_days: 365 # Храним данные 365 дня
mqtt: # протокол получения/отправки данных с сенсоров
sensor:
- name: "1. pH уровень Прибор №1" # по названию создаются «entity_id»; после сохранения появляются в списке объектов для автоматизации
state_topic: "ph014/phValue" # Названия топиков (ph001/phValue и т.д.) узнаем на странице брокера Mosquitto
unit_of_measurement: "pH"
expire_after: 60
-----
Содержание
Настройка Telegram и текстовых уведомлений
Приведенный образ содержит ряд настроенных автоматизаций, другие можно делать по аналогии. Дополнительная информация на сайте Home Assistant.
1. В HA в разделе -> Устройства и службы -> Добавить интеграцию -> Telegram
2. В телеграм находим BotFather -> вводим /start -> вводим /newbot -> вводим /token вводим токен в настройки интеграции.
3. Узнаем chat_id через бота @userinfobot
4. В интеграциях вносим добавить разрешенный chat_id
5. Входим в появившегося бота -> Добавляем авторизацию.
Настройка NTFY и текстовых уведомлений
Если, по каким либо причинам, интеграция телеграма не работает, можно воспользоваться приложением ntfy. Необходимо установить приложение на телефон через google.play, создать подписку со сложным названием. Затем в ХА устанавливаем интеграцию ntfy, создаем тему с названием подписки. Теперь можно делать уведомления с помощью ntfy.
Настройка сценариев и изменение настроек приборов по сценарию
Каждый прибор с сетевым модулем, изготовленный после 15.10.2025, может принимать команды по протоколу mqtt посредством отправки по топику. Например, если прибор ph001, то топик для отправки ему команд имеет вид "ph001/cmd". В приведенном образе диска присутствуют настроенные сценарии автоматизации в качестве примеров.
Схема команд, которые прибор может интерпретировать: Для одиночной отправки конкретного значения {"0":номер команды, "9":значение}, либо в схеме автоматизации для изменения через поля - {{{("0":номер команды,"9":(states('Вспомогательный объект') | int)} | tojson }}. Вспомогательный объект создаем на странице "Устройства и службы" (Числовое или текстовое поля для внесения числа, переключатель и т.д.).
Номера команд для ph регулятора:
111 - изменение нижней границы диапазона (0.00-14.00) - {{{("0":111,"9":(states('Вспомогательный объект') | float * 100)} | tojson }}
222 - изменение верхней границы диапазона (0.00-14.00) - {{{("0":222,"9":(states('Вспомогательный объект') | float * 100)} | tojson }}
333 - изменение времени работы насосов (0-3600 сек) - {{{("0":333,"9":(states('Вспомогательный объект') | int)} | tojson }}
444 - изменение времени ожидания (0-3600 мин) - {{{("0":444,"9":(states('Вспомогательный объект') | int)} | tojson }}
555 - ВКЛ/Выкл левого насоса (0/1) - {{{("0":555,"9":(states('Вспомогательный объект') | int)} | tojson }}
666 - ВКЛ/Выкл правого насоса (0/1) - {{{("0":666,"9":(states('Вспомогательный объект') | int)} | tojson }}
Номера команд для TDS регулятора:
000 - изменение границы диапазона (0-9000) ppm - {{{("0":000,"9":(states('Вспомогательный объект') | int)} | tojson }}
111 - изменение времени работы 1 насоса (0-3600 сек) - {{{("0":111,"9":(states('Вспомогательный объект') | int)} | tojson }}
222 - изменение времени работы 2 насоса (0-3600 сек) - {{{("0":222,"9":(states('Вспомогательный объект') | int)} | tojson }}
333 - изменение времени работы 3 насоса (0-3600 сек) - {{{("0":333,"9":(states('Вспомогательный объект') | int)} | tojson }}
444 - изменение времени ожидания между насосами (0-3600 мин) - {{{("0":444,"9":(states('Вспомогательный объект') | int)} | tojson }}
555 - изменение времени ожидания следующего цикла (0-3600 мин) - {{{("0":555,"9":(states('Вспомогательный объект') | int)} | tojson }}
666 - ВКЛ/Выкл левого 1 насоса (0/1) - {{{("0":666,"9":(states('Вспомогательный объект') | int)} | tojson }}
777 - ВКЛ/Выкл левого 2 насоса (0/1) - {{{("0":777,"9":(states('Вспомогательный объект') | int)} | tojson }}
888 - ВКЛ/Выкл левого 3 насоса (0/1) - {{{("0":888,"9":(states('Вспомогательный объект') | int)} | tojson }}
123 - принудительный старт цикла прокачки (0/111) - {{{("0":123,"9": 111 | int)} | tojson }}, используется для синхронизации нескольких устройств. Синхронизация необходима в случае, когда дозируют более трех растворов. При этом один ТДС регулятор выбирают в качестве главного, через него измеряют минерализацию раствора. Как только ведущий прибор запускает цикл дозирования, состояние его топика "tds001/startCycle" меняется от "0" до "111", а по окончании дозирования возвращается к "0". У ведомого прибора устанавливают границу TDS на ноль и удаляют датчик. В автоматизации триггером является смена состояния ведущего устройства, объекта "tds001/startCycle" с "0" до "111", а действием является публикация в топик ведомого устройства (например, tds023/cmd) команды на принудительный запуск цикла {{{("0":123,"9": 111 | int)} | tojson }}. Перед публикацией следует создать задержку на время работы главного прибора, тогда растворы дозируются последовательно.
Визуализация данных и построение графиков
Полученные от приборов данные визуализируются на странице «Обзор» и в виде графиков на странице «История». Задаем дату и время, выбираем объекты. Для изменения состава панели сверху справа - "Редактировать".
Удаленное подключение к 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 удаленно.
