MQTT-счетчик энергии для Home Assistant: ручная настройка YAML
Ручная настройка MQTT-счетчика энергии в Home Assistant
MQTT-счетчик энергии может публиковать напряжение, ток, активную мощность, а также импортированную и экспортированную энергию в брокер в вашей локальной сети. Home Assistant подписывается на эти данные и преобразует JSON-значения в сенсорные сущности, которые можно использовать в информационных панелях, автоматизациях и на панели Energy Dashboard.
В этом руководстве описан ручной метод MQTT для счетчиков энергии IAMMETER:
- настройка MQTT-брокера в веб-интерфейсе счетчика;
- подключение Home Assistant к тому же брокеру;
- определение необходимых MQTT-сенсоров в YAML;
- добавление импортированной и экспортированной энергии в Energy Dashboard.
Ручной MQTT дает вам полный контроль над именами сущностей, топиками, шаблонами и метаданными. Если вы предпочитаете, чтобы Home Assistant автоматически создавал устройство и сущности, используйте вместо этого MQTT Discovery.
Ручной MQTT и MQTT Discovery — это разные методы
Оба метода используют MQTT-брокер, но настройка в Home Assistant отличается.
| Feature | Manual MQTT | MQTT Discovery |
|---|---|---|
| Настройка брокера на стороне счетчика | Требуется | Требуется |
| Интеграция MQTT в HA | Требуется | Требуется |
| Определения сенсоров в YAML | Требуется | Не требуется |
| Имена сущностей и шаблоны | Полностью управляются пользователем | Создаются счетчиком |
| Автоматическое создание устройства/сущностей | Нет | Да |
| Лучше всего подходит для | Пользовательских MQTT-систем и определений сущностей | Быстрейшая настройка Home Assistant |
Для данного руководства оставьте HA MQTT Discovery отключенным в веб-интерфейсе счетчика. Этот переключатель требуется только тогда, когда вы хотите использовать автоматическое обнаружение Home Assistant.
Что вам потребуется
- счетчик энергии IAMMETER с актуальной прошивкой;
- MQTT-брокер, доступный как для счетчика, так и для Home Assistant;
- адрес брокера, порт, имя пользователя и пароль;
- серийный номер счетчика;
- доступ к YAML-конфигурации Home Assistant.
Брокер может работать на том же компьютере, что и Home Assistant (в аддоне Mosquitto), на другом сервере в локальной сети или на удаленном хосте. Используйте локальный брокер, если хотите, чтобы полный путь данных оставался внутри локальной сети.
Все текущие счетчики IAMMETER поддерживают ручной MQTT. Однофазные, двухканальные и трехфазные модели публикуют разные структуры JSON-массивов, поэтому шаблоны значений должны соответствовать фактическим данным.
Шаг 1: Настройка MQTT-брокера в веб-интерфейсе счетчика
Откройте локальный веб-интерфейс счетчика и перейдите в Settings. Настройте:
| Setting | Value |
|---|---|
| Run Mode | MQTT |
| Address | Имя хоста/IP и порт MQTT-брокера |
| Username | Имя пользователя брокера (если требуется) |
| Password | Пароль брокера (если требуется) |
| HA MQTT Discovery | Отключено для данного руководства по ручному MQTT |
Сохраните настройки и дайте счетчику переподключиться.

Текущая прошивка веб-интерфейса поддерживает эти настройки брокера напрямую. Вам не нужно настраивать имя пользователя и пароль через устаревшую локальную API-процедуру.
Полные инструкции по настройке на стороне счетчика и для старых версий прошивки см. в разделе публикация данных IAMMETER в MQTT-брокер.
Режим MQTT и IAMMETER Cloud
Когда режим работы счетчика изменен на MQTT, он публикует измерения в ваш брокер вместо загрузки их в IAMMETER Cloud. Поэтому ручной MQTT и IAMMETER Cloud не работают одновременно с одного и того же счетчика.
Если вам нужны Home Assistant и IAMMETER Cloud одновременно, используйте вместо этого локальную интеграцию через HTTP или Modbus TCP. Сравните доступные методы в руководстве интеграция счетчика энергии с Home Assistant.
Шаг 2: Проверка MQTT-топика и полезной нагрузки
IAMMETER публикует измерения в реальном времени по адресу:
device/{SN}/realtime
Замените {SN} на серийный номер счетчика. Например:
device/80123456/realtime
Перед настройкой сенсоров Home Assistant подпишитесь на топик с помощью MQTT-клиента и убедитесь, что сообщения поступают. Это позволит избежать смешивания проблем с YAML с проблемами брокера, учетных данных, брандмауэра или топика.
Однофазный JSON
Однофазный счетчик использует массив Data. Первые пять значений:
| Array position | Measurement |
|---|---|
Data[0] |
Напряжение |
Data[1] |
Ток |
Data[2] |
Активная мощность |
Data[3] |
Импортированная энергия |
Data[4] |
Экспортированная энергия |
Пример:
{
"method": "uploadsn",
"SN": "12345678",
"Data": [228.91, 1.61, 225, 15066.47, 0]
}
Многоканальный и трехфазный JSON
Многоканальные и трехфазные счетчики используют массив Datas. Каждый вложенный массив представляет фазу или измерительный канал:
Datas[0] → фаза/канал A
Datas[1] → фаза/канал B
Datas[2] → фаза/канал C (при наличии)
Внутри каждого массива фазы/канала стандартные позиции:
| Array position | Measurement |
|---|---|
[0] |
Напряжение |
[1] |
Ток |
[2] |
Активная мощность |
[3] |
Импортированная энергия |
[4] |
Экспортированная энергия |
[5] |
Частота (где предусмотрено) |
[6] |
Коэффициент мощности (где предусмотрено) |
Всегда проверяйте фактическое MQTT-сообщение от вашей модели и прошивки перед копированием шаблонов. См. полное определение данных JSON IAMMETER.
Шаг 3: Подключение Home Assistant к брокеру
В Home Assistant:
- Перейдите в Settings → Devices & services.
- Выберите Add integration.
- Найдите MQTT.
- Введите тот же адрес брокера, порт, имя пользователя и пароль, которые использует счетчик.
- Убедитесь, что интеграция MQTT подключилась успешно.
Если Home Assistant уже использует этот брокер, не добавляйте дублирующую интеграцию MQTT. Вручную определенные сенсоры будут использовать существующее подключение к брокеру.
Шаг 4: Добавление ручных MQTT-сенсоров в YAML
В приведенных ниже примерах используется текущая структура конфигурации mqtt: sensor: в Home Assistant. Замените серийный номер в каждом state_topic.
Однофазный счетчик энергии — YAML
mqtt:
sensor:
- name: "IAMMETER Voltage"
unique_id: "iammeter_12345678_voltage"
state_topic: "device/12345678/realtime"
value_template: "{{ value_json.Data[0] | float(0) }}"
unit_of_measurement: "V"
device_class: voltage
state_class: measurement
- name: "IAMMETER Current"
unique_id: "iammeter_12345678_current"
state_topic: "device/12345678/realtime"
value_template: "{{ value_json.Data[1] | float(0) }}"
unit_of_measurement: "A"
device_class: current
state_class: measurement
- name: "IAMMETER Active Power"
unique_id: "iammeter_12345678_active_power"
state_topic: "device/12345678/realtime"
value_template: "{{ value_json.Data[2] | float(0) }}"
unit_of_measurement: "W"
device_class: power
state_class: measurement
- name: "IAMMETER Imported Energy"
unique_id: "iammeter_12345678_import_energy"
state_topic: "device/12345678/realtime"
value_template: "{{ value_json.Data[3] | float(0) }}"
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
- name: "IAMMETER Exported Energy"
unique_id: "iammeter_12345678_export_energy"
state_topic: "device/12345678/realtime"
value_template: "{{ value_json.Data[4] | float(0) }}"
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
unique_id позволяет Home Assistant управлять настройками сущности в интерфейсе. Следите за уникальностью и стабильностью каждого ID. Не изменяйте его только для переименования отображаемой сущности.
Трехфазный счетчик энергии — YAML
В приведенном ниже примере создаются сущности для фазы A. Продублируйте блок для фаз B и C, изменив Datas[0] на Datas[1] и Datas[2], и используйте различные имена и уникальные ID.
mqtt:
sensor:
- name: "IAMMETER Voltage A"
unique_id: "iammeter_80123456_voltage_a"
state_topic: "device/80123456/realtime"
value_template: "{{ value_json.Datas[0][0] | float(0) }}"
unit_of_measurement: "V"
device_class: voltage
state_class: measurement
- name: "IAMMETER Current A"
unique_id: "iammeter_80123456_current_a"
state_topic: "device/80123456/realtime"
value_template: "{{ value_json.Datas[0][1] | float(0) }}"
unit_of_measurement: "A"
device_class: current
state_class: measurement
- name: "IAMMETER Active Power A"
unique_id: "iammeter_80123456_active_power_a"
state_topic: "device/80123456/realtime"
value_template: "{{ value_json.Datas[0][2] | float(0) }}"
unit_of_measurement: "W"
device_class: power
state_class: measurement
- name: "IAMMETER Imported Energy A"
unique_id: "iammeter_80123456_import_energy_a"
state_topic: "device/80123456/realtime"
value_template: "{{ value_json.Datas[0][3] | float(0) }}"
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
- name: "IAMMETER Exported Energy A"
unique_id: "iammeter_80123456_export_energy_a"
state_topic: "device/80123456/realtime"
value_template: "{{ value_json.Datas[0][4] | float(0) }}"
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
Для WEM2067 и других многоканальных моделей создавайте только то количество блоков каналов, которое присутствует в фактических данных Datas.
Избегайте двух блоков mqtt: верхнего уровня
Если configuration.yaml уже содержит раздел mqtt:, добавьте сенсоры в существующий раздел. YAML не может безопасно содержать два независимых ключа верхнего уровня с одинаковым именем.
Для большой конфигурации вы можете хранить MQTT-сенсоры во включаемом файле, но следуйте структуре включения и правилам отступов Home Assistant.
Шаг 5: Проверка конфигурации и загрузка сенсоров
После сохранения YAML:
- выполните проверку конфигурации Home Assistant;
- исправьте любые ошибки YAML, отступов или шаблонов;
- перезапустите Home Assistant (если требуется);
- откройте Developer tools → States;
- убедитесь, что каждая MQTT-сущность имеет правдоподобное значение, единицу измерения, класс устройства и класс состояния.
Значение сущности должно изменяться после поступления нового сообщения на device/{SN}/realtime.
Шаг 6: Добавление импортированной и экспортированной энергии в Energy Dashboard
Панель Energy Dashboard в Home Assistant требует кумулятивных энергетических сущностей. В примерах YAML используется:
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
Перейдите в Settings → Dashboards → Energy и выберите:
- IAMMETER Imported Energy для потребления из сети;
- IAMMETER Exported Energy для отдачи в сеть.
Для трехфазного счетчика выберите структуру сущностей, соответствующую установке и дизайну панели Home Assistant. Вы можете отображать энергию по фазам по отдельности или создать соответствующую общую сущность, но не суммируйте значения, не убедившись, как счетчик сообщает пофазную и общую энергию для выбранного режима подключения.
Не выбирайте сущность активной мощности, измеряемой в ваттах, в поле энергии Energy Dashboard. Мощность — это мгновенная скорость; панель требует кумулятивные кВт·ч.
Выбор интервала публикации MQTT
Текущая прошивка IAMMETER поддерживает интервал публикации MQTT до 2 секунд. Самый короткий интервал не всегда является наилучшей настройкой.
Рекомендуемые начальные точки:
| Use case | Suggested interval |
|---|---|
| Быстрая локальная автоматизация | 2–5 секунд |
| Информационная панель в реальном времени | 5–12 секунд |
| Общий мониторинг | 10–60 секунд |
Учитывайте емкость брокера, рост записей Home Assistant recorder, надежность сети и количество сущностей. Сообщение, содержащее много значений по фазам, может обновить несколько сенсоров Home Assistant одновременно.
Поддерживаемые модели IAMMETER
Все текущие счетчики энергии IAMMETER поддерживают ручной MQTT. Основное различие в Home Assistant — это структура полезной нагрузки и количество измерительных каналов.
| Model | Typical structure | Product information |
|---|---|---|
| WEM3080 | Одиночный массив Data |
Однофазный счетчик энергии |
| WEM2067 | Многоканальный массив Datas |
Двухканальный счетчик для домашней солнечной энергетики |
| WEM3080T | Трехканальный массив Datas |
Трехфазный счетчик энергии |
| WEM3050T | Трехканальный массив Datas |
Домашний трехфазный/расщепленно-фазный счетчик |
| WEM3080TD | Многоканальные данные, зависящие от модели/подключения | WEM3080TD |
| WEM3046T / WEM3046TE | Трехканальные данные с измерением через внешние ТТ 5 А | Трехфазный счетчик с ТТ 5 А |
WEM3046T и WEM3046TE измеряют вторичную обмотку 5 А внешних трансформаторов тока (ТТ). Примените правильный коэффициент трансформации ТТ для получения значений первичной стороны. Это характеристика измерительной системы, а не ограничение MQTT или Home Assistant.
Устранение неполадок
Сообщения MQTT не поступают
- Проверьте адрес и порт брокера в веб-интерфейсе счетчика.
- Подтвердите имя пользователя и пароль.
- Проверьте журналы брокера на наличие ошибок аутентификации или подключения.
- Убедитесь, что счетчик может достичь брокера через любые правила брандмауэра или VLAN.
- Подпишитесь на
device/{SN}/realtimeс помощью независимого MQTT-клиента.
Сообщения поступают, но сущности Home Assistant недоступны
- Убедитесь, что Home Assistant подключен к тому же брокеру.
- Проверьте точный топик и серийный номер.
- Сравните
DataиDatasс фактической полезной нагрузкой. - Проверьте отступы и шаблоны YAML.
- Проверьте журналы Home Assistant после перезагрузки или перезапуска.
Некоторые сущности показывают ноль или неверное измерение
- Не копируйте шаблон однофазного
Dataдля полезной нагрузкиDatas. - Проверьте позицию в массиве согласно определению JSON.
- Подтвердите индекс фазы/канала.
- Для WEM3046T/WEM3046TE подтвердите коэффициент внешнего ТТ.
Энергетические сущности отсутствуют в Energy Dashboard
Убедитесь, что присутствуют все три поля:
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
Также убедитесь, что сущность получила допустимые числовые данные и отображается в Developer tools → States.
Появляются дублирующиеся устройства или сенсоры
Ручной MQTT и MQTT Discovery могут создавать отдельные сущности для одного и того же счетчика. Если вы используете метод YAML, держите HA MQTT Discovery отключенным, если вы намеренно не хотите оба набора и не запланировали уникальные имена сущностей.
Связанные руководства
- Публикация данных IAMMETER в ваш MQTT-брокер
- Использование MQTT Discovery вместо YAML
- Сравнение всех методов интеграции IAMMETER–Home Assistant
- Определение данных JSON IAMMETER
- Обновление прошивки IAMMETER
Обновлено: 19 июля 2026 г.