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

Odbieraj dane energetyczne IAMMETER na własnym serwerze

Odbieraj dane energetyczne IAMMETER na własnym serwerze

Liczniki energii Wi-Fi IAMMETER mogą wysyłać dane pomiarowe bezpośrednio do serwera, brokera MQTT lub platformy danych kontrolowanej przez klienta. Pozwala to programistom i integratorom systemów na budowanie własnych systemów EMS, BMS, usług IoT, baz danych lub pulpitów monitorujących bez używania IAMMETER-Cloud jako docelowego miejsca danych.

Ten przewodnik podchodzi do integracji od strony serwera odbierającego:

  • uruchomienie testowego odbiornika;
  • przechwycenie pierwszej przesyłki z licznika;
  • identyfikacja licznika i kanałów pomiarowych;
  • normalizacja i przechowywanie danych;
  • oszacowanie wolumenu danych;
  • przygotowanie odbiornika do wdrożenia produkcyjnego.
Licznik IAMMETER
      │
      │ HTTP/HTTPS, MQTT/MQTTS lub TCP/TLS
      ▼
Usługa odbiorcza klienta
      │
      ├── Dziennik surowych przesyłek
      ├── Baza danych szeregów czasowych lub relacyjna
      ├── EMS / BMS / ERP
      └── Pulpity, raporty i usługi alarmowe

Informacje o możliwościach oprogramowania sprzętowego licznika i formatach adresów znajdziesz w IAMMETER Local API and Open Interface Guide. Informacje o wyborze architektury znajdziesz w Develop Your Own Energy Monitoring System.

1. Wybór architektury odbiornika

Licznik może wysyłać swoje pomiary przy użyciu kilku transportów. System odbiorczy powinien wybrać jedną główną ścieżkę pozyskiwania danych.

Transport Komponent odbiornika Dobry punkt wyjścia dla
HTTP / HTTPS Endpoint webowy Zaplecza REST i najprostsza pierwsza integracja
MQTT / MQTTS Broker MQTT i subskrybent Istniejące platformy IoT i potoki komunikatów
TCP / TLS Nasłuchiwacz socketów Dedykowane kolektory i niestandardowe usługi protokołów

HTTP jest zazwyczaj najłatwiejszym sposobem na sprawdzenie pierwszej przesyłki, ponieważ oficjalny testowy odbiornik można uruchomić za pomocą małego przykładu Node.js. MQTT to dobry wybór, gdy broker jest już częścią systemu. TCP/TLS zapewnia integrację na niższym poziomie, ale wymaga więcej pracy po stronie odbiornika.

Bezpieczne transporty i formaty niestandardowych portów są opisane w bieżącym przewodniku po oprogramowaniu sprzętowym, a nie powtarzane tutaj.

2. Szybki start: odbierz pierwszą przesyłkę przez HTTP

IAMMETER udostępnia oficjalny przykład odbiornika HTTP w Node.js do testowania integracji.

2.1 Uruchom testowy odbiornik

Pobierz przykład z:

Uruchom:

node Server.js

Przykład nasłuchuje na porcie 8000. Po otrzymaniu żądania:

  • zbiera treść żądania HTTP;
  • wyświetla adres URL żądania;
  • wyświetla przesłaną treść;
  • zwraca status HTTP 200 z małą odpowiedzią JSON potwierdzającą sukces.

Przykład jest celowo minimalistyczny. Nie zapewnia uwierzytelniania, trwałości, walidacji, ograniczania szybkości ani bezpieczeństwa produkcyjnego.

2.2 Udostępnij odbiornik w sieci

Przed skonfigurowaniem licznika upewnij się, że:

  • serwer nasłuchuje na oczekiwanym interfejsie i porcie;
  • zapora sieciowa zezwala na połączenie;
  • licznik może rozwiązać nazwę domeny, gdy używana jest domena;
  • dowolna ścieżka NAT, reverse proxy lub VPN działa;
  • końcowy adres URL dociera do zamierzonej ścieżki aplikacji.

W przypadku testu w sieci LAN licznik i odbiornik mogą korzystać z tej samej sieci lokalnej bez dostępu do Internetu. W przypadku odbiornika zdalnego witryna musi mieć trasę do serwera.

2.3 Skieruj licznik do odbiornika

W bieżącym interfejsie WebUI licznika wybierz tryb pracy HTTP i wprowadź miejsce docelowe, takie jak:

{adres-serwera}:8000/upload

Skonfiguruj endpoint HTTP odbiornika w bieżącym interfejsie WebUI IAMMETER

Endpointy HTTPS mogą używać domyślnego portu lub niestandardowego portu. Bieżące reguły adresowania, w tym https://host:port, są udokumentowane w sekcji o oprogramowaniu sprzętowym HTTP/HTTPS.

Po zapisaniu ustawienia sprawdź konsolę odbiornika pod kątem ścieżki żądania i przesłanego JSON-a. Zachowaj tę pierwszą surową przesyłkę jako testową próbkę do późniejszych testów parsera i bazy danych.

3. Zrozumienie struktury przesyłki IAMMETER

IAMMETER używa spójnej podstawowej struktury JSON pomiarów we wszystkich obsługiwanych transportach push. Transport zmienia sposób dostarczania przesyłki, ale model pomiarowy pozostaje spójny.

Przesyłka zazwyczaj zawiera pola na poziomie urządzenia, takie jak:

  • SN — numer seryjny licznika używany do identyfikacji urządzenia;
  • version — wersja oprogramowania sprzętowego licznika;
  • method — metoda komunikatu lub typ przesyłki;
  • Data lub Datas — tablice pomiarowe.

Data jest używane dla pojedynczego kanału pomiarowego. Datas zawiera wiele tablic pomiarowych dla licznika wielokanałowego lub trójfazowego.

Przykład struktury jednokanałowej:

{
  "method": "uploadsn",
  "mac": "B0F8932A295C",
  "version": "i.75.98.71y",
  "server": "em",
  "SN": "12345678",
  "Data": [228.91, 1.61, 225, 15066.47, 0]
}

Nie koduj na sztywno jednej liczby elementów tablicy dla każdego licznika. Liczba kanałów i dostępnych pól zależy od modelu licznika i włączonych funkcji pomiarowych.

Użyj autorytatywnej definicji podczas implementacji parsera:

3.1 Przetwarzanie specyficzne dla modelu

Oddziel przetwarzanie specyficzne dla modelu od odbiornika transportowego.

Na przykład WEM3046T i WEM3046TE mierzą wtórne wyjście 5 A zewnętrznego przekładnika prądowego. Ich wartości muszą zostać przeliczone z odpowiednim przekładem CT, aby uzyskać pomiar po stronie pierwotnej. Jest to cecha licznika i przekładnika CT, a nie różnica HTTP, MQTT czy TCP.

Praktyczny potok pozyskiwania danych rozdziela zatem:

  1. dekodowanie transportu;
  2. walidację JSON;
  3. identyfikację licznika i kanału;
  4. skalowanie lub normalizację specyficzną dla modelu;
  5. przechowywanie i obliczenia biznesowe.

4. Projektowanie modelu danych pozyskiwania

Przechowuj wystarczająco dużo informacji, aby odtworzyć i zdiagnozować oryginalny odczyt.

Przydatny minimalny model obejmuje:

Pole Cel
Numer SN licznika Mapuje przesyłkę na zarejestrowane urządzenie
Indeks kanału lub fazy Rozróżnia dane jednofazowe, split-phase i trójfazowe
Czas odebrania przez serwer Zapewnia spójny znacznik czasu pozyskania
Napięcie (Voltage) Pomiar elektryczny
Prąd (Current) Pomiar elektryczny
Moc czynna (Active power) Import/eksport w czasie rzeczywistym lub dane do obliczeń obciążenia
Import kWh Skumulowana energia importowana
Export kWh Skumulowana energia eksportowana
Wersja oprogramowania sprzętowego Wspomaga rozwiązywanie problemów i kompatybilność parsera
Surowa przesyłka Umożliwia odtwarzanie, audyt i korektę parsera

Dodatkowe pola, takie jak częstotliwość, współczynnik mocy i pomiary mocy biernej, powinny być przechowywane, gdy wybrany model i konfiguracja je udostępniają.

4.1 Przechowuj surowe i znormalizowane dane oddzielnie

W systemach produkcyjnych rozważ przechowywanie:

  • niezmiennego lub krótkoterminowego rekordu surowego pozyskania;
  • znormalizowanych odczytów na poziomie kanału używanych przez aplikację;
  • zagregowanych wartości godzinowych, dziennych i miesięcznych.

Ułatwia to korektę logiki parsowania lub przekładów CT bez utraty oryginalnej przesyłki.

4.2 Używaj czasu odebrania przez serwer ostrożnie

Zarejestruj czas, w którym serwer zaakceptował przesyłkę. Jeśli system biznesowy używa również znacznika czasu urządzenia lub źródła, przechowuj obie wartości oddzielnie, zamiast zastępować jedną drugą.

Opóźnienie sieciowe, ponowne połączenia i kolejkowane przetwarzanie mogą spowodować, że czas pozyskania będzie różnił się od czasu pomiaru. Zdefiniuj znacznik czasu używany przez wykresy, rozliczenia i alarmy przed wdrożeniem produkcyjnym.

5. Implementacja innych typów odbiorników

5.1 Odbiornik MQTT lub MQTTS

W przypadku pozyskiwania przez MQTT system klienta zapewnia:

  • dostępnego brokera MQTT;
  • reguły uwierzytelniania i kontroli dostępu;
  • usługę subskrybenta lub konsumenta;
  • walidację i trwałość przesyłek;
  • monitorowanie stanu brokera i konsumenta.

IAMMETER publikuje dane w czasie rzeczywistym pod tematem urządzenia, takim jak:

device/{SN}/realtime

Skorzystaj z dedykowanego przewodnika dotyczącego konfiguracji brokera, poświadczeń, tematów i kwestii MQTTS:

Home Assistant MQTT Discovery nie jest wymagane do ogólnej integracji z serwerem klienta.

5.2 Odbiornik TCP

IAMMETER udostępnia minimalny przykład nasłuchiwacza TCP w Node.js:

Przykład nasłuchuje na porcie 8000 i wyświetla odebrane dane. Produkcyjny odbiornik TCP musi dodatkowo zapewniać:

  • zarządzanie cyklem życia połączeń;
  • buforowanie i walidację przesyłek;
  • bezpieczną obsługę częściowych lub połączonych fragmentów socketów;
  • identyfikację urządzenia;
  • trwałość i obsługę błędów;
  • monitorowanie i kontrolowane limity zasobów.

Nie zakładaj, że jedno zdarzenie data socketu zawsze odpowiada jednej kompletnej wiadomości aplikacji.

5.3 Odbiornik TLS

Oficjalny przykład TLS demonstruje nasłuchiwacz TLS z kluczem serwera i certyfikatem:

Przed użyciem produkcyjnym zastąp przykładowe certyfikaty i ustawienia certyfikatem, zarządzaniem kluczami i konfiguracją bezpieczeństwa zatwierdzoną przez organizację. Odbiornik powinien rejestrować błędy TLS oddzielnie od błędów walidacji przesyłek.

Formaty adresów po stronie licznika dla TCP i TLS są opisane w przewodniku po interfejsie oprogramowania sprzętowego.

6. Planowanie interwału wysyłania i wydajności serwera

Bieżące oprogramowanie sprzętowe obsługuje interwał wysyłania do stron trzecich wynoszący nawet 2 sekundy. Krótki interwał jest przydatny tylko wtedy, gdy system odbiorczy, magazyn i aplikacja potrzebują dodatkowej rozdzielczości.

Przybliżona liczba rekordów generowanych na licznik:

Interwał wysyłania Rekordów na licznik dziennie 100 liczników dziennie 1 000 liczników dziennie
60 sekund 1 440 144 000 1 440 000
10 sekund 8 640 864 000 8 640 000
2 sekundy 43 200 4 320 000 43 200 000

Te liczby reprezentują zdarzenia wysyłania, a niekoniecznie wiersze bazy danych. Przesyłka trójfazowa może być znormalizowana do kilku rekordów kanałów, a indeksy, przechowywanie surowych przesyłek lub replikowany magazyn zwiększają rzeczywistą objętość bazy danych.

Planowanie wydajności powinno obejmować:

  • szczytową liczbę równoczesnych połączeń;
  • żądania lub komunikaty na sekundę;
  • koszt parsowania JSON;
  • mnożenie wierszy na poziomie kanału;
  • indeksy bazy danych i przechowywanie;
  • pulpity i zapytania agregujące;
  • logi, ponowne próby i magazyn martwych listów;
  • ruch kopii zapasowych i replikacji.

W przypadku sterowania lub automatyzacji z interwałem jednej sekundy w tej samej sieci LAN rozważ Modbus TCP zamiast używania zdalnego potoku wysyłania.

7. Radzenie sobie z niezawodnością i jakością danych

Produkcyjny odbiornik powinien oczekiwać awarii sieci i aplikacji.

7.1 Waliduj każdą przesyłkę

Waliduj co najmniej:

  • składnię JSON;
  • wymagane pola identyfikacyjne;
  • oczekiwaną strukturę tablicy;
  • typy numeryczne i rozsądne zakresy;
  • obsługiwane mapowanie modelu lub kanału;
  • zmiany pól zależne od oprogramowania sprzętowego.

Przechowuj nieprawidłowe przesyłki w kontrolowanej ścieżce diagnostycznej, nie blokując prawidłowych urządzeń.

7.2 Planuj na duplikaty i brakujące wysyłania

Nie zakładaj, że każdy interwał produkuje dokładnie jeden trwale zapisany rekord. Przerwy w sieci, zachowanie przy ponownym połączeniu, ponowne próby serwera lub przetwarzanie aplikacji mogą powodować brakujące lub powtarzające się zdarzenia pozyskiwania.

Zdefiniuj, jak system biznesowy będzie:

  • wykrywać duplikaty rekordów;
  • identyfikować luki;
  • odróżniać cichy licznik od uszkodzonego odbiornika;
  • unikać obliczania energii przez ślepe sumowanie skumulowanych rejestrów kWh;
  • uzgadniać skumulowaną energię po przerwie.

7.3 Monitoruj całą ścieżkę danych

Monitoruj więcej niż tylko proces sieciowy lub socketowy. Przydatne sygnały obejmują:

  • czas ostatniej przesyłki na licznik;
  • liczbę nieprawidłowych przesyłek;
  • czas odpowiedzi odbiornika i wskaźnik błędów;
  • aktywne połączenia TCP/TLS;
  • opóźnienie konsumenta MQTT;
  • opóźnienie zapisu bazy danych;
  • głębokość kolejki;
  • użycie dysku i zadania przechowywania.

8. Zabezpieczenie systemu odbiorczego

W przypadku odbiornika dostępnego z Internetu:

  • preferuj szyfrowany transport obsługiwany przez wdrożenie;
  • ograniczaj narażone porty i źródła sieciowe, gdzie to możliwe;
  • stosuj uwierzytelnianie MQTT i autoryzację tematów;
  • zabezpieczaj endpointy HTTP za pomocą otaczającej sieci lub architektury bezpieczeństwa aplikacji;
  • zarządzaj certyfikatami TLS i kluczami prywatnymi w bezpieczny sposób;
  • unikaj zapisywania poświadczeń lub kompletnych wrażliwych przesyłek w logach aplikacji;
  • ograniczaj szybkość i izoluj nieprawidłowy lub nadużywający ruch;
  • utrzymuj system operacyjny, środowisko uruchomieniowe i zależności w aktualności.

Przejrzyj bieżące zachowanie oprogramowania sprzętowego MQTTS, TLS i HTTPS w przewodniku po oprogramowaniu sprzętowym i otwartym interfejsie przed wyborem projektu bezpieczeństwa.

9. Lista kontrolna wdrożenia produkcyjnego

Licznik i sieć

  • Wersja oprogramowania sprzętowego zapisana i zweryfikowana
  • Numer SN licznika przypisany do właściwej lokalizacji i kanałów
  • Adres docelowy i port zweryfikowane
  • DNS, zapora sieciowa, NAT lub ścieżka VPN przetestowane
  • Wymagany interwał wysyłania potwierdzony

Odbiornik

  • Surowa przesyłka przechwycona z każdego modelu licznika w zakresie
  • Testy parsera utworzone z rzeczywistych próbek przesyłek
  • Obsłużone przesyłki jedno- i wielokanałowe
  • Przetwarzanie przekładu CT WEM3046T/E zweryfikowane tam, gdzie ma zastosowanie
  • Nieprawidłowe i nieobsługiwane przesyłki bezpiecznie izolowane
  • Odbiornik zwraca lub utrzymuje zachowanie oczekiwane przez wybrany transport

Przechowywanie i operacje

  • Zasady dotyczące znaczników czasu udokumentowane
  • Zasady dotyczące duplikatów i brakujących danych udokumentowane
  • Wydajność bazy danych obliczona dla liczby urządzeń i interwału
  • Logi, metryki i alerty ostatniego połączenia na licznik włączone
  • Przechowywanie, kopia zapasowa i odzyskiwanie przetestowane
  • Certyfikaty, poświadczenia i reguły dostępu przejrzane
  • Przerwa w sieci i restart odbiornika przetestowane

10. Powiązana dokumentacja

11. Historyczne zrzuty ekranu konfiguracji licznika

Oryginalna wersja tego dokumentu koncentrowała się na konfiguracji starszego oprogramowania sprzętowego licznika. Te zrzuty ekranu są zachowane tylko dla użytkowników identyfikujących istniejącą instalację. W przypadku nowych integracji użyj bieżącego interfejsu WebUI i najnowszego oprogramowania sprzętowego.

Historyczna strona TCP

Historyczna konfiguracja serwera TCP IAMMETER

Historyczna strona TLS

Historyczna konfiguracja serwera TLS IAMMETER

Historyczna strona HTTP/HTTPS

Historyczna konfiguracja serwera HTTP/HTTPS IAMMETER

Wcześniejsza dokumentacja oprogramowania sprzętowego używała również lokalnej metody konfiguracji /api/uploadinterval i opisywała minimalny interwał sześciu sekund. Bieżące oprogramowanie sprzętowe udostępnia interwał w WebUI i obsługuje udokumentowane minimum 2 sekund.

Ostatnia aktualizacja: 16 lipca 2026 r.

Góra