Ręczna konfiguracja licznika energii MQTT w Home Assistant
Ręczna konfiguracja licznika energii MQTT w Home Assistant
Licznik energii MQTT może publikować napięcie, prąd, moc czynną oraz energię pobraną/oddaną do brokera w sieci lokalnej. Home Assistant subskrybuje te dane i konwertuje wartości JSON na encje czujników, które można wykorzystać w dashboardach, automatyzacjach oraz w Energy Dashboard.
Ten przewodnik opisuje metodę Manual MQTT dla liczników energii IAMMETER:
- skonfiguruj broker MQTT w WebUI licznika;
- podłącz Home Assistant do tego samego brokera;
- zdefiniuj wymagane czujniki MQTT w YAML;
- dodaj energię pobraną i oddaną do Energy Dashboard.
Manual MQTT daje pełną kontrolę nad nazwami encji, tematami, szablonami i metadanymi. Jeśli wolisz, aby Home Assistant automatycznie tworzył urządzenia i encje, użyj zamiast tego MQTT Discovery.
Manual MQTT i MQTT Discovery to różne metody
Obie metody korzystają z brokera MQTT, ale konfiguracja w Home Assistant jest inna.
| Cecha | Manual MQTT | MQTT Discovery |
|---|---|---|
| Konfiguracja brokera po stronie licznika | Wymagana | Wymagana |
| Integracja MQTT w HA | Wymagana | Wymagana |
| Definicje czujników w YAML | Wymagane | Nie wymagane |
| Nazwy encji i szablony | W pełni kontrolowane przez użytkownika | Tworzone przez licznik |
| Automatyczne tworzenie urządzenia/encji | Nie | Tak |
| Najlepsze dla | Niestandardowych systemów MQTT i definicji encji | Najszybszej konfiguracji Home Assistant |
Na potrzeby tego przewodnika pozostaw HA MQTT Discovery wyłączone w WebUI licznika. Ten przełącznik jest wymagany tylko wtedy, gdy chcesz automatycznego wykrywania przez Home Assistant.
Co będzie potrzebne
- licznik energii IAMMETER z aktualnym firmware;
- broker MQTT dostępny zarówno dla licznika, jak i Home Assistant;
- adres brokera, port, nazwa użytkownika i hasło;
- numer seryjny licznika;
- dostęp do konfiguracji YAML w Home Assistant.
Broker może działać na tym samym urządzeniu co Home Assistant, w dodatku Mosquitto broker, na innym serwerze LAN lub na zdalnym hoście. Użyj lokalnego brokera, gdy chcesz, aby cała ścieżka danych pozostała w sieci LAN.
Wszystkie aktualne liczniki IAMMETER obsługują Manual MQTT. Modele jednofazowe, dwukanałowe i trójfazowe publikują różne struktury tablic JSON, dlatego szablony wartości muszą odpowiadać rzeczywistej strukturze danych.
Krok 1: Skonfiguruj broker MQTT w WebUI licznika
Otwórz lokalne WebUI licznika i przejdź do Settings. Skonfiguruj:
| Ustawienie | Wartość |
|---|---|
| Run Mode | MQTT |
| Address | Nazwa hosta/IP i port brokera MQTT |
| Username | Nazwa użytkownika brokera, jeśli wymagana |
| Password | Hasło brokera, jeśli wymagane |
| HA MQTT Discovery | Wyłączone na potrzeby tego przewodnika Manual MQTT |
Zapisz ustawienia i pozwól licznikowi na ponowne połączenie.

Aktualne WebUI firmware obsługuje te ustawienia brokera bezpośrednio. Nie ma potrzeby konfigurowania nazwy użytkownika i hasła przez starą procedurę API lokalnego.
Pełną konfigurację po stronie licznika oraz instrukcje dla starszego firmware znajdziesz w publikowaniu danych IAMMETER do brokera MQTT.
Tryb MQTT a IAMMETER Cloud
Gdy tryb pracy licznika zostanie zmieniony na MQTT, publikuje on pomiary do Twojego brokera zamiast przesyłać je do IAMMETER Cloud. Manual MQTT i IAMMETER Cloud nie działają więc jednocześnie z tego samego licznika.
Jeśli potrzebujesz Home Assistant i IAMMETER Cloud w tym samym czasie, użyj zamiast tego lokalnej integracji HTTP lub Modbus TCP. Porównaj dostępne metody w przewodniku integracji liczników energii z Home Assistant.
Krok 2: Zweryfikuj temat MQTT i strukturę danych
IAMMETER publikuje pomiary w czasie rzeczywistym pod adresem:
device/{SN}/realtime
Zastąp {SN} numerem seryjnym licznika. Na przykład:
device/80123456/realtime
Przed skonfigurowaniem czujników Home Assistant zasubskrybuj temat za pomocą klienta MQTT i potwierdź, że wiadomości docierają. Pozwoli to uniknąć mieszania problemów z YAML z problemami brokera, poświadczeń, zapory sieciowej lub tematu.
JSON dla licznika jednofazowego
Licznik jednofazowy używa tablicy Data. Pierwsze pięć wartości to:
| Pozycja w tablicy | Pomiar |
|---|---|
Data[0] |
Napięcie |
Data[1] |
Prąd |
Data[2] |
Moc czynna |
Data[3] |
Energia pobrana |
Data[4] |
Energia oddana |
Przykład:
{
"method": "uploadsn",
"SN": "12345678",
"Data": [228.91, 1.61, 225, 15066.47, 0]
}
JSON dla licznika wielokanałowego i trójfazowego
Liczniki wielokanałowe i trójfazowe używają tablicy Datas. Każda zagnieżdżona tablica reprezentuje fazę lub kanał pomiarowy:
Datas[0] → faza/kanał A
Datas[1] → faza/kanał B
Datas[2] → faza/kanał C (jeśli występuje)
W każdej tablicy fazy/kanału typowe pozycje to:
| Pozycja w tablicy | Pomiar |
|---|---|
[0] |
Napięcie |
[1] |
Prąd |
[2] |
Moc czynna |
[3] |
Energia pobrana |
[4] |
Energia oddana |
[5] |
Częstotliwość (jeśli dostępna) |
[6] |
Współczynnik mocy (jeśli dostępny) |
Zawsze sprawdzaj rzeczywistą wiadomość MQTT z Twojego modelu i firmware przed kopiowaniem szablonów. Zobacz pełną definicję danych JSON IAMMETER.
Krok 3: Podłącz Home Assistant do brokera
W Home Assistant:
- Przejdź do Settings → Devices & services.
- Wybierz Add integration.
- Wyszukaj MQTT.
- Wprowadź ten sam adres brokera, port, nazwę użytkownika i hasło, których używa licznik.
- Potwierdź, że integracja MQTT została pomyślnie nawiązana.
Jeśli Home Assistant już korzysta z tego brokera, nie dodawaj kolejnej integracji MQTT. Ręcznie zdefiniowane czujniki będą korzystać z istniejącego połączenia brokerowego.
Krok 4: Dodaj ręczne czujniki MQTT w YAML
Poniższe przykłady używają aktualnej struktury konfiguracyjnej mqtt: sensor: w Home Assistant. Zastąp numer seryjny w każdym state_topic.
YAML dla licznika jednofazowego
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 pozwala Home Assistant zarządzać ustawieniami encji w interfejsie. Zachowaj każdy ID unikalny i stabilny. Nie zmieniaj go tylko po to, aby zmienić nazwę wyświetlanej encji.
YAML dla licznika trójfazowego
Poniższy przykład tworzy encje dla fazy A. Powtórz blok dla faz B i C, zmieniając Datas[0] na Datas[1] i Datas[2], oraz używając odrębnych nazw i unikalnych 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
Dla WEM2067 i innych modeli wielokanałowych utwórz tylko tyle bloków kanałów, ile faktycznie występuje w danych Datas.
Unikaj dwóch bloków mqtt: na najwyższym poziomie
Jeśli configuration.yaml zawiera już sekcję mqtt:, dodaj czujniki w ramach istniejącej sekcji. YAML nie może bezpiecznie zawierać dwóch niezależnych kluczy najwyższego poziomu o tej samej nazwie.
W przypadku dużej konfiguracji możesz przechowywać czujniki MQTT w osobnym pliku dołączanym, ale przestrzegaj zasad struktury dołączania i wcięć Home Assistant.
Krok 5: Sprawdź konfigurację i załaduj czujniki
Po zapisaniu YAML:
- uruchom sprawdzanie konfiguracji Home Assistant;
- popraw wszelkie błędy YAML, wcięć lub szablonów;
- uruchom ponownie Home Assistant, jeśli to konieczne;
- otwórz Developer tools → States;
- potwierdź, że każda encja MQTT ma prawdopodobną wartość, jednostkę, device class i state class.
Wartość encji powinna się zmienić po nadejściu nowej wiadomości na device/{SN}/realtime.
Krok 6: Dodaj energię pobraną i oddaną do Energy Dashboard
Energy Dashboard w Home Assistant wymaga encji energii skumulowanej. Przykłady YAML używają:
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
Przejdź do Settings → Dashboards → Energy i wybierz:
- IAMMETER Imported Energy dla poboru z sieci;
- IAMMETER Exported Energy dla oddawania do sieci.
W przypadku licznika trójfazowego wybierz strukturę encji odpowiednią dla instalacji i projektu dashboardu Home Assistant. Możesz udostępnić energię poszczególnych faz osobno lub utworzyć odpowiednią encję sumaryczną, ale nie dodawaj wartości bez potwierdzenia, w jaki sposób licznik raportuje energię fazową i netto dla wybranego trybu okablowania.
Nie wybieraj encji mocy czynnej mierzonej w watach w polu energii Energy Dashboard. Moc to wartość chwilowa; dashboard wymaga skumulowanych kWh.
Wybór interwału publikacji MQTT
Aktualne firmware IAMMETER obsługuje interwał publikacji MQTT do 2 sekund. Najkrótszy interwał nie zawsze jest najlepszym ustawieniem.
Sugerowane wartości początkowe:
| Zastosowanie | Sugerowany interwał |
|---|---|
| Szybka automatyzacja lokalna | 2–5 sekund |
| Dashboard energii na żywo | 5–12 sekund |
| Monitorowanie ogólne | 10–60 sekund |
Weź pod uwagę wydajność brokera, wzrost rejestratora Home Assistant, niezawodność sieci oraz liczbę encji. Wiadomość zawierająca wiele wartości faz może zaktualizować kilka czujników Home Assistant jednocześnie.
Obsługiwane modele IAMMETER
Wszystkie aktualne liczniki energii IAMMETER obsługują Manual MQTT. Ich główną różnicą w Home Assistant jest struktura danych oraz liczba kanałów pomiarowych.
| Model | Typowa struktura | Informacje o produkcie |
|---|---|---|
| WEM3080 | Pojedyncza tablica Data |
Licznik jednofazowy |
| WEM2067 | Wielokanałowa tablica Datas |
Licznik dwukanałowy do domowej fotowoltaiki |
| WEM3080T | Trzykanałowa tablica Datas |
Licznik trójfazowy |
| WEM3050T | Trzykanałowa tablica Datas |
Licznik domowy trójfazowy/split-phase |
| WEM3080TD | Dane wielokanałowe zależne od modelu/okablowania | WEM3080TD |
| WEM3046T / WEM3046TE | Dane trzykanałowe z pomiarem przez zewnętrzne przekładniki 5 A | Licznik trójfazowy 5 A CT |
WEM3046T i WEM3046TE mierzą wtórne wyjście 5 A zewnętrznych przekładników prądowych. Zastosuj odpowiedni przekładni CT, aby uzyskać wartości po stronie pierwotnej. Jest to cecha systemu pomiarowego, a nie ograniczenie MQTT lub Home Assistant.
Rozwiązywanie problemów
Brak wiadomości MQTT
- Sprawdź adres i port brokera w WebUI licznika.
- Potwierdź nazwę użytkownika i hasło.
- Sprawdź logi brokera pod kątem błędów uwierzytelniania lub połączenia.
- Potwierdź, że licznik może osiągnąć brokera przez reguły zapory sieciowej lub VLAN.
- Zasubskrybuj
device/{SN}/realtimeza pomocą niezależnego klienta MQTT.
Wiadomości docierają, ale encje Home Assistant są niedostępne
- Potwierdź, że Home Assistant jest podłączony do tego samego brokera.
- Sprawdź dokładny temat i numer seryjny.
- Porównaj
DataiDatasz rzeczywistą strukturą danych. - Zweryfikuj wcięcia i szablony YAML.
- Sprawdź logi Home Assistant po przeładowaniu lub restarcie.
Niektóre encje pokazują zero lub błędny pomiar
- Nie kopiuj szablonu
Datadla licznika jednofazowego do strukturyDatas. - Sprawdź pozycję w tablicy względem definicji JSON.
- Potwierdź indeks fazy/kanału.
- Dla WEM3046T/WEM3046TE potwierdź przekładnię zewnętrznego CT.
Encje energii nie są widoczne w Energy Dashboard
Potwierdź wszystkie trzy pola:
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
Potwierdź również, że encja otrzymała prawidłowe dane liczbowe i pojawia się w Developer tools → States.
Pojawiają się zduplikowane urządzenia lub czujniki
Manual MQTT i MQTT Discovery mogą tworzyć oddzielne encje z tego samego licznika. Jeśli korzystasz z metody YAML, pozostaw HA MQTT Discovery wyłączone, chyba że celowo chcesz obu zestawów i zaplanowałeś unikalne nazwy encji.
Powiązane przewodniki
- Publikowanie danych IAMMETER do brokera MQTT
- Użyj MQTT Discovery zamiast YAML
- Porównanie wszystkich metod integracji IAMMETER–Home Assistant
- Definicja danych JSON IAMMETER
- Aktualizacja firmware IAMMETER
Aktualizacja: 19 lipca 2026 r.