TapHome
Społeczność Beta Energia i pomiar

HomeWizard Wi-Fi P1 Meter (HWE-P1)

HomeWizard Wi-Fi P1 Meter (HWE-P1) na porcie P1 inteligentnego licznika DSMR w TapHome przez lokalne HTTP API v1 na porcie 80, bez konta w chmurze. Moc i energia pobierana z sieci i oddawana do sieci, stany liczników taryf, moc, napięcie i prąd poszczególnych faz oraz odczyt licznika gazu.

Packet Parser → HTTP6 urządzeńRewizja 1.0 Ostatnia aktualizacja: 12 listopada 2026

Dodane przez Martin Keller

HomeWizard Wi-Fi P1 Meter (HWE-P1)

Import do aplikacji TapHomeSprzęt › Packet Parser › Dodaj z szablonu

Pobierz szablon
Na tej stronie

Adres w sieci

TapHome łączy się z urządzeniem pod adresem podanym przy imporcie. Nadaj urządzeniu stały adres — rezerwację IP w routerze albo jego nazwę mDNS, jeśli ją obsługuje — inaczej integracja przestanie działać, gdy router zmieni adres.

Przygotowanie sieci

Poradnik integracji

HomeWizard Wi-Fi P1 Meter (HWE-P1) podłącza się do portu P1 inteligentnego licznika energii elektrycznej DSMR i udostępnia jego odczyty w sieci lokalnej. TapHome komunikuje się z nim przez lokalne HTTP API (v1) licznika na porcie 80 — konto w chmurze nie jest potrzebne, a cały ruch pozostaje w sieci LAN. Szablon odpytuje endpoint /api/v1/data i udostępnia moc wymiany z siecią, energię pobraną i oddaną do sieci, wartości poszczególnych faz oraz odczyt licznika gazu.

Ten szablon społeczności zapewnia sześć urządzeń: Energy Import (pobór z sieci), Energy Export (oddawanie do sieci), Phase L1 Power, Phase L2 Power, Phase L3 Power (moc poszczególnych faz) i Gas Meter (licznik gazu).

Podłączenie sprzętu

P1 Meter podłącza się do portu P1 (złącze RJ12) inteligentnego licznika operatora i działa z licznikami jednofazowymi i trójfazowymi.

  • Zasilanie — inteligentne liczniki w standardzie SMR 5.0 lub nowszym zasilają P1 Meter bezpośrednio z portu P1. Starsze inteligentne liczniki wymagają dla P1 Meter zasilacza USB-C. Pobór mocy jest mniejszy niż 1 W.
  • Wi-Fi — licznik łączy się z siecią Wi-Fi 2,4 GHz (802.11 b/g/n).
  • Środowisko — IP51, do użytku wewnątrz pomieszczeń.

Inteligentne liczniki z portem HAN zamiast portu P1 wymagają konwertera HomeWizard HAN.

Konfiguracja

Podłączenie P1 Meter do Wi-Fi

Pierwszą konfigurację wykonujesz w aplikacji HomeWizard Energy (iOS 13 lub Android 8 albo nowszy). Do konfiguracji licznik potrzebuje zabezpieczonej sieci Wi-Fi z dostępem do internetu.

  1. Podłącz P1 Meter do portu P1 inteligentnego licznika (oraz do zasilacza USB-C, jeśli inteligentny licznik jest starszy niż SMR 5.0).
  2. Przytrzymaj przycisk na P1 Meter, aż dioda LED zaświeci na niebiesko.
  3. W aplikacji HomeWizard Energy połącz telefon z własnym punktem dostępowym Wi-Fi licznika i wpisz hasło do Twojej domowej sieci Wi-Fi.
  4. Użyj sieci 2,4 GHz, która jest tą samą siecią (LAN) co TapHome Core.

Włączenie lokalnego API

Lokalne API jest domyślnie wyłączone i trzeba je raz włączyć w aplikacji HomeWizard Energy:

  1. W aplikacji przejdź do Settings → Meters → Twój licznik i włącz Local API.
  2. Zanotuj adres IP licznika — jest widoczny w ustawieniach licznika w aplikacji, znajdziesz go też w routerze.
  3. Sprawdź, czy API działa: otwórz http://<IP ADDRESS>/api/v1/data w przeglądarce w tej samej sieci — powinien pojawić się dokument JSON z najnowszym pomiarem.

API v1 nie ma uwierzytelniania — zakłada się, że licznik i TapHome Core są w tej samej zaufanej sieci lokalnej.

Adres IP

Zarezerwuj dla licznika stały adres IP w ustawieniach DHCP routera, aby adres nie zmienił się po ponownym uruchomieniu routera. Podczas importu szablonu w TapHome wpisz ten adres w parametrze Adres IP.

Częstotliwość aktualizacji

Licznik odświeża dane P1 co sekundę przy inteligentnym liczniku DSMR 5.0 albo co 10 sekund przy starszych wersjach DSMR. Odczyty gazu aktualizują się co 5 minut (DSMR 5.0) albo co godzinę (starsze liczniki). Szablon odpytuje wartości energii elektrycznej co 5 sekund, a odczyt gazu co 60 sekund.

Możliwości urządzenia

Moc i energia sieci

Dwa urządzenia licznika energii elektrycznej dzielą dwukierunkowy pomiar P1 na dwa kierunki, które TapHome śledzi osobno:

  • Energy Import — chwilowa moc pobierana z sieci (kW) i narastający stan licznika poboru (kWh). Stany poboru w taryfie 1 i taryfie 2, częstotliwość sieci, siła sygnału Wi-Fi i model inteligentnego licznika są dostępne jako atrybuty serwisowe.
  • Energy Export — chwilowa moc oddawana do sieci (kW) i narastający stan licznika oddawania (kWh); stany oddawania w taryfie 1 i taryfie 2 są dostępne jako atrybuty serwisowe.

Inteligentny licznik podaje jedną wartość mocy całkowitej ze znakiem (ujemna = oddawanie do sieci); każde urządzenie pokazuje swój kierunek i wskazuje 0, gdy moc płynie w przeciwną stronę. Gdy inteligentny licznik nie podaje łącznego stanu poboru lub oddawania, szablon sumuje taryfę 1 i taryfę 2.

Monitorowanie poszczególnych faz

Phase L1 Power, Phase L2 Power i Phase L3 Power to zmienne tylko do odczytu z mocą czynną każdej fazy w watach. Napięcie i prąd fazy są dostępne jako atrybuty serwisowe każdego urządzenia fazy. Jednofazowe inteligentne liczniki podają tylko L1 — urządzenia L2 i L3 nie pokazują wtedy wartości.

Licznik gazu

Gas Meter to zmienna tylko do odczytu z narastającym odczytem licznika gazu (m³) podawanym przez inteligentny licznik. Jeśli do inteligentnego licznika nie jest podłączony licznik gazu, urządzenie nie pokazuje wartości.

Rozwiązywanie problemów

  • Brak danych / błędy połączenia — sprawdź, czy przełącznik Local API jest nadal włączony w aplikacji HomeWizard Energy i czy http://<IP ADDRESS>/api/v1/data odpowiada w przeglądarce z tej samej sieci co TapHome Core.
  • Wartości przestają się aktualizować po wymianie routera — adres IP licznika prawdopodobnie się zmienił; zarezerwuj stały adres w ustawieniach DHCP routera i zaktualizuj adres IP modułu.
  • Wyszukiwanie licznika w sieci — licznik ogłasza się przez mDNS jako _hwenergy._tcp z nazwą instancji w rodzaju p1meter-<6 hex digits>; rekord TXT api_enabled pokazuje, czy lokalne API jest włączone (1), czy wyłączone (0).
  • Urządzenia faz lub gazu nie pokazują wartości — liczniki jednofazowe nie podają danych L2/L3, a odczyt gazu pojawia się tylko wtedy, gdy do inteligentnego licznika podłączony jest licznik gazu. To oczekiwane działanie, a nie usterka.
  • Brakuje niektórych wartości — API wysyła tylko pola, które udostępnia podłączony inteligentny licznik, więc zestaw widocznych wartości zależy od modelu inteligentnego licznika, a nie od samego P1 Meter.

Dostępne urządzenia 6

Te urządzenia pojawią się w TapHome po imporcie.

HomeWizard Wi-Fi P1 Meter Moduł
Zmienne niestandardowe
P1Data (string) = 0

HomeWizard Wi-Fi P1 Meter

Odczyt (moduł)
VAR response := SENDHTTPREQUEST("/api/v1/data");
IF response.IsSuccess
    P1Data := response.Content;
ELSE
    ADDERROR(response.StatusCode + " (" + response.ReasonPhrase + ")");
END
Energy Import Licznik energii
Atrybuty serwisowe
Import tariff 1
Import tariff 2
Line frequency
Wi-Fi signal
Smart meter model

Energy Import

Odczyt całkowitego zużycia
var total := parsejson(P1Data, "total_power_import_kwh", true);
IF ISNULL(total)
    var t1 := parsejson(P1Data, "total_power_import_t1_kwh", true);
    var t2 := parsejson(P1Data, "total_power_import_t2_kwh", true);
    return(IF(ISNULL(t1), 0, todouble(t1)) + IF(ISNULL(t2), 0, todouble(t2)));
END
return(todouble(total));
Odczyt zapotrzebowania
var p := parsejson(P1Data, "active_power_w", true);
IF ISNULL(p)
    return(0);
END
return(MAX(0, todouble(p)) / 1000);
Atrybuty serwisowe
Import tariff 1
IF(ISNULL(parsejson(P1Data, "total_power_import_t1_kwh", true)), "-", TOSTRING(todouble(parsejson(P1Data, "total_power_import_t1_kwh", true)), "F3") + " kWh")
Import tariff 2
IF(ISNULL(parsejson(P1Data, "total_power_import_t2_kwh", true)), "-", TOSTRING(todouble(parsejson(P1Data, "total_power_import_t2_kwh", true)), "F3") + " kWh")
Line frequency
IF(ISNULL(parsejson(P1Data, "active_frequency_hz", true)), "-", TOSTRING(todouble(parsejson(P1Data, "active_frequency_hz", true)), "F2") + " Hz")
Wi-Fi signal
IF(ISNULL(parsejson(P1Data, "wifi_strength", true)), "-", TOSTRING(todouble(parsejson(P1Data, "wifi_strength", true)), "F0") + " %")
Smart meter model
IF(ISNULL(parsejson(P1Data, "meter_model", true)), "-", parsejson(P1Data, "meter_model", true))
Energy Export Licznik energii
Atrybuty serwisowe
Export tariff 1
Export tariff 2

Energy Export

Odczyt całkowitego zużycia
var total := parsejson(P1Data, "total_power_export_kwh", true);
IF ISNULL(total)
    var t1 := parsejson(P1Data, "total_power_export_t1_kwh", true);
    var t2 := parsejson(P1Data, "total_power_export_t2_kwh", true);
    return(IF(ISNULL(t1), 0, todouble(t1)) + IF(ISNULL(t2), 0, todouble(t2)));
END
return(todouble(total));
Odczyt zapotrzebowania
var p := parsejson(P1Data, "active_power_w", true);
IF ISNULL(p)
    return(0);
END
return(MAX(0, 0 - todouble(p)) / 1000);
Atrybuty serwisowe
Export tariff 1
IF(ISNULL(parsejson(P1Data, "total_power_export_t1_kwh", true)), "-", TOSTRING(todouble(parsejson(P1Data, "total_power_export_t1_kwh", true)), "F3") + " kWh")
Export tariff 2
IF(ISNULL(parsejson(P1Data, "total_power_export_t2_kwh", true)), "-", TOSTRING(todouble(parsejson(P1Data, "total_power_export_t2_kwh", true)), "F3") + " kWh")
Phase L1 Power Zmienna
Atrybuty serwisowe
Voltage
Current

Phase L1 Power

Odczyt
var p := parsejson(P1Data, "active_power_l1_w", true);
IF ISNULL(p)
    return(NaN);
END
return(todouble(p));
Atrybuty serwisowe
Voltage
IF(ISNULL(parsejson(P1Data, "active_voltage_l1_v", true)), "-", TOSTRING(todouble(parsejson(P1Data, "active_voltage_l1_v", true)), "F1") + " V")
Current
IF(ISNULL(parsejson(P1Data, "active_current_l1_a", true)), "-", TOSTRING(todouble(parsejson(P1Data, "active_current_l1_a", true)), "F2") + " A")
Phase L2 Power Zmienna
Atrybuty serwisowe
Voltage
Current

Phase L2 Power

Odczyt
var p := parsejson(P1Data, "active_power_l2_w", true);
IF ISNULL(p)
    return(NaN);
END
return(todouble(p));
Atrybuty serwisowe
Voltage
IF(ISNULL(parsejson(P1Data, "active_voltage_l2_v", true)), "-", TOSTRING(todouble(parsejson(P1Data, "active_voltage_l2_v", true)), "F1") + " V")
Current
IF(ISNULL(parsejson(P1Data, "active_current_l2_a", true)), "-", TOSTRING(todouble(parsejson(P1Data, "active_current_l2_a", true)), "F2") + " A")
Phase L3 Power Zmienna
Atrybuty serwisowe
Voltage
Current

Phase L3 Power

Odczyt
var p := parsejson(P1Data, "active_power_l3_w", true);
IF ISNULL(p)
    return(NaN);
END
return(todouble(p));
Atrybuty serwisowe
Voltage
IF(ISNULL(parsejson(P1Data, "active_voltage_l3_v", true)), "-", TOSTRING(todouble(parsejson(P1Data, "active_voltage_l3_v", true)), "F1") + " V")
Current
IF(ISNULL(parsejson(P1Data, "active_current_l3_a", true)), "-", TOSTRING(todouble(parsejson(P1Data, "active_current_l3_a", true)), "F2") + " A")
Gas Meter Zmienna

Gas Meter

Odczyt
var v := parsejson(P1Data, "total_gas_m3", true);
IF ISNULL(v)
    return(NaN);
END
return(todouble(v));
Połączenie: Packet Parser → HTTP

Parametry importu

Te wartości podajesz podczas importu pliku XML.

Pytanie w aplikacjiDomyślnie
IP addressPodaj przy imporcie

Znalazłeś problem z tym szablonem urządzenia?

Napisz nam, co nie działa, czego brakuje lub jak powinien zachowywać się szablon. Twoja opinia pomaga nam utrzymać katalog dokładnym.

Szablon · portal TapHome HomeWizard Wi-Fi P1 Meter (HWE-P1) Otwórz ten szablon w portalu klienta, aby zastosować go w swoim domu, lub zaproponuj modyfikację i wyślij ją z powrotem do katalogu. Packet Parser → HTTP Zobacz w portalu TapHome