Przepraszamy, Twoja przeglądarka nie obsługuje JavaScript!
Zaloguj się

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:

  1. skonfiguruj broker MQTT w WebUI licznika;
  2. podłącz Home Assistant do tego samego brokera;
  3. zdefiniuj wymagane czujniki MQTT w YAML;
  4. 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.

Konfiguracja brokera MQTT w najnowszym WebUI IAMMETER

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:

  1. Przejdź do Settings → Devices & services.
  2. Wybierz Add integration.
  3. Wyszukaj MQTT.
  4. Wprowadź ten sam adres brokera, port, nazwę użytkownika i hasło, których używa licznik.
  5. 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:

  1. uruchom sprawdzanie konfiguracji Home Assistant;
  2. popraw wszelkie błędy YAML, wcięć lub szablonów;
  3. uruchom ponownie Home Assistant, jeśli to konieczne;
  4. otwórz Developer tools → States;
  5. 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}/realtime za 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 Data i Datas z 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 Data dla licznika jednofazowego do struktury Datas.
  • 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

Aktualizacja: 19 lipca 2026 r.

Góra