Извините, ваш браузер не поддерживает JavaScript!
Войти

MQTT-счетчик энергии для Home Assistant: ручная настройка YAML

Ручная настройка MQTT-счетчика энергии в Home Assistant

MQTT-счетчик энергии может публиковать напряжение, ток, активную мощность, а также импортированную и экспортированную энергию в брокер в вашей локальной сети. Home Assistant подписывается на эти данные и преобразует JSON-значения в сенсорные сущности, которые можно использовать в информационных панелях, автоматизациях и на панели Energy Dashboard.

В этом руководстве описан ручной метод MQTT для счетчиков энергии IAMMETER:

  1. настройка MQTT-брокера в веб-интерфейсе счетчика;
  2. подключение Home Assistant к тому же брокеру;
  3. определение необходимых MQTT-сенсоров в YAML;
  4. добавление импортированной и экспортированной энергии в 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

Сохраните настройки и дайте счетчику переподключиться.

Configure the MQTT broker in the latest IAMMETER WebUI

Текущая прошивка веб-интерфейса поддерживает эти настройки брокера напрямую. Вам не нужно настраивать имя пользователя и пароль через устаревшую локальную 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:

  1. Перейдите в Settings → Devices & services.
  2. Выберите Add integration.
  3. Найдите MQTT.
  4. Введите тот же адрес брокера, порт, имя пользователя и пароль, которые использует счетчик.
  5. Убедитесь, что интеграция 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:

  1. выполните проверку конфигурации Home Assistant;
  2. исправьте любые ошибки YAML, отступов или шаблонов;
  3. перезапустите Home Assistant (если требуется);
  4. откройте Developer tools → States;
  5. убедитесь, что каждая 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 отключенным, если вы намеренно не хотите оба набора и не запланировали уникальные имена сущностей.

Связанные руководства

Обновлено: 19 июля 2026 г.

Наверх