Интеграция Modbus TCP энергомонитора с Home Assistant: руководство по настройке
Интеграция Modbus TCP энергомонитора с Home Assistant
Modbus TCP — один из самых быстрых способов подключения энергомонитора к Home Assistant. Он работает через локальную сеть, не зависит от подключения к интернету и подходит для мониторинга мощности в реальном времени, автоматизации на основе избытка солнечной энергии, управления нагрузкой и Energy Dashboard Home Assistant.
Все текущие энергомониторы IAMMETER поддерживают Modbus TCP. Вы можете интегрировать их с Home Assistant двумя способами:
- IAMMETER HACS Modbus integration — настройка через UI, автоматически созданные сущности и настраиваемый интервал опроса.
- Home Assistant built-in Modbus integration — настройка через YAML с прямым контролем над регистрами и датчиками.
Это руководство объясняет различия и помогает выбрать правильный метод.
HACS Modbus или встроенный Modbus Home Assistant?
Оба метода считывают одни и те же локальные данные Modbus TCP с энергомонитора. Основное различие заключается в том, как настраиваются сущности Home Assistant.
| Функция | IAMMETER HACS Modbus | Home Assistant built-in Modbus |
|---|---|---|
| Конфигурация на стороне HA | UI | YAML |
| Конфигурация регистров | Создаётся интеграцией | Определяется вручную |
| Интервал опроса | Настраиваемый; по умолчанию 3 секунды | Настраиваемый для каждого датчика |
| Метаданные Energy Dashboard | Включены для поддерживаемых энергетических сущностей | Должны быть настроены в YAML |
| Автоматическое/ассистированное обнаружение | Настройка с помощью SSDP | Нет |
| Локальная работа | Да | Да |
| Возможность продолжать использовать IAMMETER Cloud | Да | Да |
| Лучше всего подходит для | Большинства пользователей Home Assistant | Опытных пользователей и пользовательских регистров |
Для большинства пользователей HACS Modbus integration — более простой вариант. Используйте встроенную Modbus интеграцию Home Assistant, когда вам нужен собственный список регистров, схема именования сущностей, правила масштабирования или интервал опроса для отдельных датчиков.
Если вам не нужны быстрые обновления, сравните альтернативы HTTP и MQTT в обзоре интеграции энергомониторов с Home Assistant.
Перед началом работы
Вам потребуется:
- энергомонитор IAMMETER, подключённый к той же локальной сети, что и Home Assistant;
- локальный IP-адрес энергомонитора;
- доступ к TCP-порту
502между Home Assistant и энергомонитором; - актуальная версия прошивки энергомонитора;
- установленный HACS, если вы выбираете IAMMETER HACS integration.
Рекомендуется зарезервировать IP-адрес энергомонитора в маршрутизаторе. Изменяющийся DHCP-адрес — частая причина того, что работающая Modbus интеграция становится недоступной в будущем.
Метод 1: Настройка IAMMETER Modbus через HACS
IAMMETER HACS Modbus integration предназначена для пользователей, которые хотят получать быстрые локальные данные без ручного определения каждого регистра в YAML.
Шаг 1: Установите интеграцию
- Откройте HACS в Home Assistant.
- Найдите IamMeter Modbus.
- Установите последнюю версию.
- Перезапустите Home Assistant, если будет предложено.
Информация о проекте и релизах:
Используйте последнюю доступную версию. Настройка интервала опроса поддерживается обновлённой интеграцией и передаётся в DataUpdateCoordinator.
Шаг 2: Добавьте энергомонитор в Home Assistant
- Перейдите в Settings → Devices & services.
- Выберите Add integration.
- Найдите IamMeter Modbus.
- Введите IP-адрес энергомонитора и порт Modbus TCP.
- Выберите соответствующий тип энергомонитора или конфигурацию фаз.
- Установите интервал опроса или оставьте значение по умолчанию 3 секунды.
- Отправьте форму и убедитесь, что устройство и сущности созданы.
Интеграция создаёт разное количество сущностей для однофазных, двухканальных и трёхфазных энергомониторов. Более короткий список сущностей не означает, что однофазная модель имеет ограниченную поддержку Home Assistant.
Шаг 3: Проверьте сущности
Откройте устройство IAMMETER в Settings → Devices & services. В зависимости от модели доступные сущности могут включать:
- напряжение;
- ток;
- активная мощность;
- коэффициент мощности;
- импортированная энергия;
- экспортированная энергия;
- реактивная мощность или реактивная энергия, если они предоставляются соответствующим энергомонитором и набором регистров.
Сущности импортированной и экспортированной энергии используют кВт·ч и включают метаданные энергии Home Assistant, необходимые для Energy Dashboard.
Шаг 4: Выберите подходящий интервал опроса
Интервал опроса по умолчанию — 3 секунды. Это практичная отправная точка для живых панелей мониторинга и автоматизации на основе мощности.
Рекомендуемые начальные значения:
| Приложение | Рекомендуемый интервал опроса |
|---|---|
| Управление реле или избытком солнечной энергии в реальном времени | 1–5 секунд |
| Живая панель мощности | 3–10 секунд |
| Общий мониторинг энергии | 10–30 секунд |
Настройка в одну секунду — это запрос опроса, а не гарантия того, что каждая панель Home Assistant будет визуально обновляться раз в секунду. Сетевая задержка, количество регистров, нагрузка регистратора и поведение обновления интерфейса также влияют на результат.
Избегайте излишне агрессивного опроса. Для большинства задач автоматизации стабильное обновление каждые 2–5 секунд более полезно, чем минимально возможный интервал.
Метод 2: Использование встроенной Modbus интеграции Home Assistant
Home Assistant включает стандартную Modbus интеграцию. Этот метод полностью локальный и не требует HACS, но подключение и датчики определяются в YAML.
Следующий пример считывает напряжение и активную мощность с однофазного энергомонитора:
modbus:
- name: iammeter_hub
type: tcp
host: 192.168.1.6
port: 502
sensors:
- name: IAMMETER Voltage
slave: 1
address: 0
input_type: holding
data_type: uint16
scale: 0.01
precision: 1
unit_of_measurement: V
device_class: voltage
state_class: measurement
scan_interval: 5
- name: IAMMETER Active Power
slave: 1
address: 2
input_type: holding
data_type: int32
unit_of_measurement: W
device_class: power
state_class: measurement
scan_interval: 5
Замените 192.168.1.6 на фактический IP-адрес энергомонитора. Проверьте соответствующую карту регистров перед добавлением дополнительных датчиков:
Распространённые регистры Modbus IAMMETER
Следующие адреса иллюстрируют стандартные фазные блоки, используемые распространёнными энергомониторами IAMMETER. Всегда используйте актуальную документацию по регистрам в качестве авторитетного источника.
| Измерение | Фаза A / однофазный | Фаза B | Фаза C | Тип данных |
|---|---|---|---|---|
| Напряжение | 0 | 10 | 20 | uint16 |
| Ток | 1 | 11 | 21 | uint16 |
| Активная мощность | 2 | 12 | 22 | int32 |
| Импортированная энергия | 4 | 14 | 24 | uint32 |
| Экспортированная энергия | 6 | 16 | 26 | uint32 |
Используйте задокументированные масштаб, точность и порядок слов для каждого регистра. Не делайте выводов о масштабировании энергии на основе примера с напряжением.
После редактирования YAML:
- запустите проверку конфигурации Home Assistant;
- перезапустите Home Assistant;
- откройте Developer tools → States;
- убедитесь, что новые сущности имеют правдоподобные значения и единицы измерения.
Добавьте импортированную и экспортированную энергию в Energy Dashboard
Energy Dashboard Home Assistant требует накопительные энергетические сущности, а не мгновенную мощность.
Для вручную настроенного датчика энергии Modbus включите соответствующие метаданные:
unit_of_measurement: kWh
device_class: energy
state_class: total_increasing
Затем перейдите в Settings → Dashboards → Energy и выберите сущность импортированной энергии как потребление из сети, а сущность экспортированной энергии как возврат в сеть.
Не выбирайте сущность активной мощности, измеряемой в ваттах, для поля энергии Energy Dashboard. Мощность показывает текущую скорость; импортированная/экспортированная энергия в кВт·ч записывает накопленную энергию.
Поддерживаемые модели IAMMETER
Все текущие энергомониторы IAMMETER поддерживают как HACS Modbus, так и встроенную Modbus интеграцию Home Assistant.
| Модель | Конфигурация энергомонитора | Примечание для Home Assistant |
|---|---|---|
| WEM3080 | Однофазный | Набор сущностей для одной фазы |
| WEM2067 | Двухканальный для однофазных применений | Два измерительных канала |
| WEM3080T | Трёхфазный | Три фазы/группы сущностей |
| WEM3050T | Трёхфазный или разделённая фаза | Три измерительных канала |
| WEM3080TD | Трёхфазный/трёхпроводной и специальные схемы подключения | Интерпретируйте сущности в соответствии со схемой подключения |
| WEM3046T / WEM3046TE | Внешний вход 5 A CT | Примените внешний коэффициент CT |
WEM3046T и WEM3046TE измеряют вторичный выход 5 A внешнего трансформатора тока. Чтобы получить фактические ток, мощность и энергию на первичной стороне, необходимо применить правильный коэффициент CT. Это особенность измерительной системы с CT 5 A, а не ограничение совместимости с Home Assistant или Modbus.
Могут ли Modbus и IAMMETER Cloud работать одновременно?
Да. Home Assistant считывает Modbus TCP локально, в то время как энергомонитор может продолжать загрузку данных в IAMMETER Cloud. Вам не нужно переключать энергомонитор в режим загрузки MQTT для использования Modbus.
Это даёт вам два взаимодополняющих представления:
- быстрые локальные данные и автоматизация в Home Assistant;
- долгосрочные отчёты, анализ стоимости электроэнергии, анализ солнечной энергии и удалённый доступ в IAMMETER Cloud.
Избегайте нескольких высокочастотных клиентов Modbus
Используйте один активный клиент опроса Modbus TCP на один энергомонитор в качестве безопасной модели развёртывания. Не настраивайте Home Assistant, Node-RED, ПЛК и другое устройство регистрации на независимый опрос одного и того же энергомонитора с высокой частотой.
Если нескольким системам нужны одни и те же измерения в реальном времени, пусть одна система считывает Modbus и перераспределяет данные, или используйте архитектуру MQTT, где несколько потребителей подписываются на брокер.
Устранение неполадок
Home Assistant не может подключиться к порту 502
- Убедитесь, что Home Assistant и энергомонитор находятся в одной доступной сети.
- Проверьте IP-адрес энергомонитора и зарезервируйте его в маршрутизаторе.
- Убедитесь, что TCP-порт
502не заблокирован брандмауэром или правилом VLAN. - Убедитесь, что другой клиент Modbus не удерживает или не переоткрывает соединение.
Сущности недоступны или значения не изменяются
- Проверьте выбранный тип энергомонитора/фазы в HACS integration.
- При использовании YAML проверьте slave ID, адрес регистра, тип данных, масштаб и порядок слов.
- Временно увеличьте интервал опроса, чтобы исключить чрезмерно агрессивный опрос.
- Перезапустите интеграцию после изменения IP-адреса энергомонитора.
Значения неправдоподобно высокие или низкие
- Проверьте масштабирование регистра и тип данных.
- Для WEM3046T/WEM3046TE проверьте коэффициент внешнего CT.
- Убедитесь, что сущность соответствует ожидаемой фазе или измерительному каналу.
Энергетические сущности не отображаются в Energy Dashboard
- Используйте накопительную импортированную/экспортированную энергию в кВт·ч.
- Убедитесь в наличии
device_class: energy. - Убедитесь в наличии
state_class: total_increasing. - Не используйте сущность мощности в ваттах.
Создавайте автоматизации с данными мощности в реальном времени
После того как сущности Modbus заработают, Home Assistant может использовать активную мощность или мощность, отдаваемую в сеть, для управления другими устройствами. Примеры включают:
- управление реле на основе данных Modbus мощности в реальном времени;
- зарядка электромобиля, когда экспорт солнечной энергии превышает порог;
- нагрев воды с использованием доступного избытка солнечной энергии;
- уведомление пользователя, когда потребление в доме превышает лимит;
- снижение управляемой нагрузки перед импортом дорогой электроэнергии по пиковому тарифу.
Сосредоточьтесь на надёжной передаче данных в первую очередь. Добавляйте логику управления только после проверки знака, единиц измерения, интервала обновления и поведения при недоступности энергомонитора.