MQTT електромер за Home Assistant: ръчна настройка чрез YAML
Ръчна настройка на MQTT електромер в Home Assistant
MQTT електромерът може да публикува напрежение, ток, активна мощност и внесена/изнесена енергия към брокер във вашата локална мрежа. Home Assistant се абонира за тези данни и преобразува JSON стойностите в сензорни обекти, които могат да се използват в табла, автоматизации и Енергийния панел.
Това ръководство обяснява метода Ръчен MQTT за електромерите IAMMETER:
- настройване на MQTT брокера в WebUI на електромера;
- свързване на Home Assistant към същия брокер;
- дефиниране на необходимите MQTT сензори в YAML;
- добавяне на внесената и изнесената енергия към Енергийния панел.
Ръчният MQTT ви дава пълен контрол върху имената на обектите, темите, шаблоните и метаданните. Ако предпочитате Home Assistant да създаде устройството и обектите автоматично, използвайте вместо това MQTT Discovery.
Ръчният MQTT и MQTT Discovery са различни методи
И двата метода използват MQTT брокер, но настройката на Home Assistant е различна.
| Функция | Ръчен MQTT | MQTT Discovery |
|---|---|---|
| Конфигурация на брокера в електромера | Задължителна | Задължителна |
| MQTT интеграция в HA | Задължителна | Задължителна |
| Дефиниции на сензори в YAML | Задължителни | Не са необходими |
| Имена на обекти и шаблони | Напълно контролирани от потребителя | Създадени от електромера |
| Автоматично създаване на устройство/обекти | Не | Да |
| Най-подходящ за | Персонализирани MQTT системи и дефиниции на обекти | Най-бърза настройка на Home Assistant |
За това ръководство оставете HA MQTT Discovery изключен в WebUI на електромера. Този превключвател е необходим само когато искате автоматично откриване от Home Assistant.
Какво ви е необходимо
- електромер IAMMETER с актуален фърмуер;
- MQTT брокер, достъпен както за електромера, така и за Home Assistant;
- адрес, порт, потребителско име и парола на брокера;
- серийния номер на електромера;
- достъп до YAML конфигурацията на Home Assistant.
Брокерът може да работи на същия компютър като Home Assistant, в добавката Mosquitto broker, на друг сървър в LAN или на отдалечен хост. Използвайте локален брокер, когато искате целият път на данните да остане вътре в LAN.
Всички актуални електромери IAMMETER поддържат Ръчен MQTT. Еднофазните, двуканалните и трифазните модели публикуват различни JSON структури на масива, така че шаблоните за стойности трябва да съответстват на действителния payload.
Стъпка 1: Настройте MQTT брокера в WebUI на електромера
Отворете локалния WebUI на електромера и отидете в Настройки. Конфигурирайте:
| Настройка | Стойност |
|---|---|
| Режим на работа | MQTT |
| Адрес | Име на хост/IP и порт на MQTT брокера |
| Потребителско име | Потребителско име за брокера, ако е необходимо |
| Парола | Парола за брокера, ако е необходимо |
| HA MQTT Discovery | Изключено за това ръководство за Ръчен MQTT |
Запазете настройките и позволете на електромера да се свърже отново.

Актуалният фърмуер на WebUI поддържа тези настройки за брокера директно. Не е необходимо да конфигурирате потребителското име и паролата чрез историческата процедура с локален API.
За пълна конфигурация от страна на електромера и инструкции за по-стар фърмуер вижте публикуване на данни от IAMMETER към MQTT брокер.
Режим MQTT и IAMMETER Cloud
Когато Режимът на работа на електромера се промени на MQTT, той публикува измерванията към вашия брокер, вместо да ги качва в IAMMETER Cloud. Затова Ръчният MQTT и IAMMETER Cloud не работят едновременно от един и същ електромер.
Ако имате нужда от Home Assistant и IAMMETER Cloud едновременно, използвайте локална HTTP или Modbus TCP интеграция. Сравнете наличните методи в ръководството за интеграция на електромер с Home Assistant.
Стъпка 2: Проверете MQTT темата и payload-а
IAMMETER публикува измервания в реално време към:
device/{SN}/realtime
Заменете {SN} със серийния номер на електромера. Например:
device/80123456/realtime
Преди да конфигурирате сензорите в Home Assistant, се абонирайте за темата с MQTT клиент и потвърдете, че съобщенията пристигат. Това предотвратява смесването на отстраняване на проблеми в YAML с проблеми на брокера, идентификационните данни, защитната стена или темата.
JSON за еднофазен електромер
Еднофазният електромер използва масив Data. Първите пет стойности са:
| Позиция в масива | Измерване |
|---|---|
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, когато е налична
Във всеки масив за фаза/канал обичайните позиции са:
| Позиция в масива | Измерване |
|---|---|
[0] |
Напрежение |
[1] |
Ток |
[2] |
Активна мощност |
[3] |
Внесена енергия |
[4] |
Изнесена енергия |
[5] |
Честота, където е предоставена |
[6] |
Фактор на мощността, където е предоставен |
Винаги проверявайте действителното MQTT съобщение от вашия модел и фърмуер, преди да копирате шаблони. Вижте пълното описание на JSON данните на IAMMETER.
Стъпка 3: Свържете Home Assistant към брокера
В Home Assistant:
- Отидете в Настройки → Устройства и услуги.
- Изберете Добавяне на интеграция.
- Потърсете 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 и други многоканални модели създайте само толкова блокове за канали, колкото присъстват в действителния payload Datas.
Избягвайте два блока mqtt: на най-горно ниво
Ако configuration.yaml вече съдържа секция mqtt:, добавете сензорите в съществуващата секция. YAML не може безопасно да съдържа два независими ключа с едно и също име на най-горно ниво.
За голяма конфигурация можете да държите MQTT сензорите в включен файл, но следвайте структурата за включване и правилата за отстъпи на Home Assistant.
Стъпка 5: Проверете конфигурацията и заредете сензорите
След като запазите YAML:
- стартирайте проверката на конфигурацията на Home Assistant;
- коригирайте всички грешки в YAML, отстъпите или шаблоните;
- рестартирайте Home Assistant, ако е необходимо;
- отворете Инструменти за разработчици → Състояния;
- потвърдете, че всеки MQTT обект има правдоподобна стойност, мерна единица, клас на устройството и клас на състоянието.
Стойността на обекта трябва да се промени, след като пристигне ново съобщение на device/{SN}/realtime.
Стъпка 6: Добавете внесената и изнесената енергия към Енергийния панел
Енергийният панел на Home Assistant изисква кумулативни енергийни обекти. YAML примерите използват:
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
Отидете в Настройки → Табла → Енергия и изберете:
- IAMMETER Imported Energy за потребление от мрежата;
- IAMMETER Exported Energy за връщане към мрежата.
За трифазен електромер изберете структурата от обекти, която съответства на инсталацията и дизайна на таблото в Home Assistant. Можете да изложите енергията по фази поотделно или да създадете подходящ обобщен обект, но не събирайте стойности, без да сте потвърдили как електромерът отчита енергията по фази и нетната енергия за избрания режим на свързване.
Не избирайте обекта за активна мощност, измерван във ватове, в поле за енергия в Енергийния панел. Мощността е моментна величина; панелът изисква кумулативни kWh.
Изберете интервал на публикуване по MQTT
Актуалният фърмуер на IAMMETER поддържа интервал на публикуване по MQTT до 2 секунди. Най-краткият интервал не винаги е най-добрата настройка.
Предложени начални стойности:
| Случай на употреба | Предложен интервал |
|---|---|
| Бърза локална автоматизация | 2–5 секунди |
| Табло за енергия в реално време | 5–12 секунди |
| Общ мониторинг | 10–60 секунди |
Съобразете се с капацитета на брокера, нарастването на записа в Home Assistant, надеждността на мрежата и броя на обектите. Съобщение, съдържащо много стойности по фази, може да обнови няколко сензора в Home Assistant наведнъж.
Поддържани модели IAMMETER
Всички актуални електромери IAMMETER поддържат Ръчен MQTT. Основната им разлика за Home Assistant е структурата на payload-а и броят на измервателните канали.
| Модел | Типична структура | Информация за продукта |
|---|---|---|
| WEM3080 | Единичен масив Data |
Еднофазен електромер |
| WEM2067 | Многоканален масив Datas |
Двуканален електромер за домашен солар |
| WEM3080T | Масив Datas с три канала |
Трифазен електромер |
| WEM3050T | Масив Datas с три канала |
Домашен трифазен/разделен фазов електромер |
| WEM3080TD | Многоканални данни според модела/свързването | WEM3080TD |
| WEM3046T / WEM3046TE | Данни с три канала с измерване чрез външен 5 A CT | Трифазен електромер с 5 A CT |
WEM3046T и WEM3046TE измерват 5 A вторичен изход на външни CT. Приложете правилния коефициент на CT, за да получите стойности от първичната страна. Това е характеристика на измервателната система, а не ограничение на MQTT или Home Assistant.
Отстраняване на проблеми
Не пристигат MQTT съобщения
- Проверете адреса и порта на брокера в WebUI на електромера.
- Потвърдете потребителското име и паролата.
- Проверете логовете на брокера за грешки при удостоверяване или свързване.
- Потвърдете, че електромерът може да достигне брокера през правилата на защитната стена или VLAN.
- Абонирайте се за
device/{SN}/realtimeс независим MQTT клиент.
Съобщенията пристигат, но обектите в Home Assistant са недостъпни
- Потвърдете, че Home Assistant е свързан към същия брокер.
- Проверете точната тема и серийния номер.
- Сравнете
DataспрямоDatasс действителния payload. - Проверете отстъпите и шаблоните в YAML.
- Проверете логовете на Home Assistant след презареждане или рестартиране.
Някои обекти показват нула или грешно измерване
- Не копирайте шаблон
Dataза еднофазен електромер при payloadDatas. - Проверете позицията в масива спрямо JSON описанието.
- Потвърдете индекса на фазата/канала.
- За WEM3046T/WEM3046TE потвърдете коефициента на външния CT.
Енергийните обекти липсват в Енергийния панел
Потвърдете и трите полета:
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
Също потвърдете, че обектът е получил валидни числови данни и се появява в Инструменти за разработчици → Състояния.
Появяват се дублирани устройства или сензори
Ръчният MQTT и MQTT Discovery могат да създадат отделни обекти от един и същ електромер. Ако използвате метода с YAML, дръжте HA MQTT Discovery изключен, освен ако съзнателно не искате и двата набора и не сте планирали уникални имена на обектите.
Свързани ръководства
- Публикуване на данни от IAMMETER към вашия MQTT брокер
- Използвайте MQTT Discovery вместо YAML
- Сравнение на всички методи за интеграция IAMMETER–Home Assistant
- Описание на JSON данните на IAMMETER
- Актуализация на фърмуера на IAMMETER
Актуализирано: 19 юли 2026 г.