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

Monitorowanie Energii przez MQTT w Dockerze i Zaawansowana Konfiguracja

Monitorowanie Energii przez MQTT w Dockerze i Zaawansowana Konfiguracja

Po uruchomieniu podstawowego serwera IAMMETER-Docker można go rozszerzyć do lokalnego serwera monitorowania energii przez MQTT, używać MySQL dla większych zbiorów danych, przesyłać dane słoneczne do PVOutput oraz przyjmować pomiary z kompatybilnych urządzeń firm trzecich.

Ten przewodnik obejmuje zaawansowane ścieżki danych i opcje przechowywania. Informacje o instalacji, woluminach trwałych, pierwszym logowaniu, konfiguracji liczników, kopii zapasowej i aktualizacji kontenerów znajdziesz w Samodzielne monitorowanie energii za pomocą Dockera.

Licznik IAMMETER / kompatybilne urządzenie / własna aplikacja
                         │
             ┌───────────┼───────────┐
             │           │           │
            HTTP        MQTT       REST API
             │           │           │
             └───────────┼───────────┘
                         ▼
                  IAMMETER-Docker
                         │
       ┌─────────────────┼─────────────────┐
       ▼                 ▼                 ▼
 SQLite / MySQL     Subskrybenci MQTT     PVOutput

Używaj tylko interfejsów wymaganych przez projekt. Prosta lokalna instalacja monitorująca nie potrzebuje MySQL, zewnętrznych klientów MQTT ani przesyłania danych.

1. Przed włączeniem zaawansowanych funkcji

Upewnij się, że podstawowa instalacja jest stabilna:

  • kontener IAMMETER-Docker jest uruchomiony;
  • /app/data jest zamapowane na trwałe przechowywanie;
  • host Docker ma stabilny adres LAN;
  • strefa czasowa witryny jest poprawna;
  • co najmniej jeden licznik lub testowe źródło danych działa;
  • domyślne hasła zostały zmienione;
  • istnieje aktualna kopia zapasowa.

Domyślne wdrożenie udostępnia:

  • 5050 dla aplikacji webowej i API;
  • 1883 dla MQTT.

Nie udostępniaj żadnego z tych portów bezpośrednio w Internecie. Użyj zapory sieciowej, VPN lub innej kontrolowanej warstwy dostępu, gdy potrzebny jest dostęp zdalny.

2. Wybór SQLite lub MySQL

IAMMETER-Docker domyślnie używa SQLite dla prostego wdrożenia i obsługuje MySQL dla instalacji z większymi zbiorami danych.

Baza danych Najlepsza dla Zalety Uwagi
SQLite Instalacje domowe, testowe i mniejsze lokalne Brak osobnej usługi bazy danych; łatwa konfiguracja początkowa Baza danych pozostaje powiązana z wolumenem aplikacji
MySQL Większe lub długoterminowe instalacje Osobna usługa bazy danych i lepsze dopasowanie do rosnących zbiorów danych Wymaga wdrożenia bazy danych, poświadczeń, kopii zapasowej i konserwacji

Nie przechodź na MySQL tylko dlatego, że jest dostępny. Używaj go, gdy przewidywana objętość danych, okres przechowywania lub wymagania dotyczące zarządzania bazą danych uzasadniają dodatkową usługę.

2.1 Najpierw przygotuj MySQL

Przed wybraniem MySQL w IAMMETER-Docker:

  1. wdróż dostępny serwer MySQL;
  2. utwórz dedykowaną bazę danych i użytkownika;
  3. ogranicz tego użytkownika do wymaganej bazy danych;
  4. potwierdź dostęp sieciowy z kontenera IAMMETER-Docker;
  5. skonfiguruj regularne kopie zapasowe bazy danych;
  6. bezpiecznie zapisz host bazy danych, port, nazwę i poświadczenia.

Następnie wprowadź ustawienia połączenia MySQL w IAMMETER-Docker i potwierdź, że nowe pomiary są przechowywane.

Konfiguracja MySQL w IAMMETER-Docker

Wykonaj kopię zapasową istniejących danych IAMMETER-Docker przed zmianą trybu bazy danych. Po zmianie zweryfikuj dane historyczne i nowe przesyłane dane.

3. Używanie IAMMETER-Docker jako serwera monitorowania energii MQTT

IAMMETER-Docker zawiera obsługę MQTT dla dwóch różnych kierunków:

  1. Publikowanie do IAMMETER-Docker: licznik lub kompatybilna aplikacja wysyła pomiary do serwera Docker.
  2. Subskrypcja z IAMMETER-Docker: Node-RED, własna usługa lub inny klient MQTT otrzymuje pomiary w czasie rzeczywistym z serwera.

Te ścieżki używają tego samego wzorca tematu, ale różnych trybów uwierzytelniania.

3.1 Temat MQTT

Udokumentowany temat czasu rzeczywistego to:

device/<SN>/realtime

Zastąp <SN> numerem seryjnym zarejestrowanym w IAMMETER-Docker. SN w temacie MQTT i konfiguracji klienta musi być zgodny z licznikiem utworzonym na lokalnej platformie.

3.2 Publikowanie danych energetycznych do IAMMETER-Docker

Dla urządzenia lub aplikacji publikującej:

Ustawienie Wartość
Broker Adres IP lub nazwa hosta serwera IAMMETER-Docker
Port Domyślnie 1883
Uwierzytelnianie ID klienta
ID klienta SN licznika zarejestrowanego w IAMMETER-Docker
Temat device/<SN>/realtime
Ładunek Format danych obsługiwany przez IAMMETER

Publikowanie danych energetycznych do IAMMETER-Docker przez MQTT

Przed użyciem danych produkcyjnych:

  1. zarejestruj SN w IAMMETER-Docker;
  2. opublikuj jeden testowy ładunek;
  3. zweryfikuj pola napięcia, prądu, mocy i energii;
  4. potwierdź liczbę faz lub kanałów;
  5. zweryfikuj jednostki i kierunek mocy czynnej;
  6. dopiero wtedy włącz ciągłe publikowanie.

3.3 Subskrypcja danych energetycznych w czasie rzeczywistym

Dla subskrybenta MQTT:

Ustawienie Wartość
Broker Adres serwera IAMMETER-Docker
Port Domyślnie 1883
Uwierzytelnianie Nazwa użytkownika i hasło IAMMETER-Docker
Temat device/<SN>/realtime

Subskrypcja danych czasu rzeczywistego z IAMMETER-Docker

Typowi subskrybenci obejmują:

  • automatyzacje Node-RED;
  • lokalną usługę przetwarzania danych;
  • klienta debugowania MQTT;
  • bramę przesyłającą wybrane pomiary;
  • własny pulpit nawigacyjny lub usługę powiadomień.

Jeśli Node-RED jest główną aplikacją a przechowywanie historyczne w IAMMETER-Docker nie jest wymagane, licznik może również łączyć się bezpośrednio z Node-RED przez MQTT, Modbus TCP lub lokalne API. Porównaj opcje w przewodniku licznika energii Node-RED.

4. Testowanie i rozwiązywanie problemów MQTT

Zacznij od pojedynczego licznika i dokładnego tematu, zamiast szerokiego wieloznacznego symbola wieloznacznego subskrypcji.

Sprawdź następujące kwestie, gdy nie pojawiają się żadne dane:

  • port 1883 jest zamapowany z kontenera;
  • klient może osiągnąć host Docker przez LAN;
  • SN istnieje w IAMMETER-Docker;
  • ID klienta MQTT i temat używają tego samego SN;
  • temat to device/<SN>/realtime z oczekiwaną wielkością liter;
  • tryby uwierzytelniania publikowania i subskrypcji nie są mylone;
  • ładunek JSON jest zgodny z obsługiwaną kolejnością pól i jednostkami;
  • inny klient MQTT nie rozłącza sesji przez ponowne użycie tego samego ID klienta.

Dla niezawodnych przepływów:

  • używaj unikalnego ID klienta dla każdego subskrybenta;
  • obsługuj ponowne połączenia i duplikaty wiadomości;
  • waliduj ładunek przed zapisaniem go do bazy danych;
  • zapisuj źródłowy SN z każdym przechowywanym pomiarem;
  • używaj izolacji sieciowej zamiast wystawiania nieszyfrowanego portu MQTT publicznie.

5. Przesyłanie danych słonecznych do PVOutput

PVOutput to usługa firm trzecich do udostępniania i porównywania danych o produkcji energii słonecznej i zużyciu energii. IAMMETER-Docker może przesyłać dane witryny do PVOutput.

Użyj tej opcji, gdy IAMMETER-Docker pozostaje lokalnym serwerem zbierania danych, ale PVOutput jest wymagane do publicznego lub zewnętrznego raportowania energii słonecznej.

Przed włączeniem przesyłania:

  1. utwórz lub wybierz odpowiedni system PVOutput;
  2. uzyskaj wymagane poświadczenia PVOutput;
  3. potwierdź, że kanały Grid i Inverter są poprawnie przypisane w IAMMETER-Docker;
  4. sprawdź strefę czasową witryny;
  5. włącz przesyłanie tylko dla zamierzonej witryny;
  6. porównaj dzienną sumę w obu systemach po pierwszym pełnym dniu.

Przesyłanie danych słonecznych IAMMETER-Docker do PVOutput

Przesyłanie do PVOutput wymaga dostępu do Internetu z hosta Docker. Jest oddzielone od lokalnego monitorowania: tymczasowa awaria połączenia PVOutput nie powinna uniemożliwiać licznikowi dalszego przesyłania danych do lokalnego serwera.

6. Odbieranie danych z kompatybilnego urządzenia Tasmota

IAMMETER-Docker zawiera udokumentowany przepływ pracy MQTT dla urządzenia z funkcją pomiaru działającego pod kontrolą Tasmota. Oryginalny przykład używał Sonoff POW R2.

Jest to ścieżka kompatybilności dla obsługiwanych ładunków energii, a nie stwierdzenie, że każde urządzenie Tasmota lub szablon generuje tę samą strukturę pomiarową. Przetestuj rzeczywiste urządzenie i oprogramowanie przed wdrożeniem.

Użyj następującej struktury MQTT dla Tasmota:

Ustawienie Wartość
Host Adres IP IAMMETER-Docker
Port Port MQTT IAMMETER-Docker, zazwyczaj 1883
Klient SN zarejestrowany w IAMMETER-Docker
Użytkownik Pozostaw puste dla tego udokumentowanego przepływu publikowania
Hasło Pozostaw puste dla tego udokumentowanego przepływu publikowania
Temat SN zarejestrowany w IAMMETER-Docker
Pełny temat device/%topic%/%prefix%/

Konfiguracja kompatybilnego licznika Tasmota dla IAMMETER-Docker

Po konfiguracji zweryfikuj każdą zgłoszoną wartość w IAMMETER-Docker, w tym napięcie, prąd, moc czynną, energię i współczynnik mocy, jeśli jest obsługiwany przez urządzenie.

Dane elektryczne Tasmota w IAMMETER-Docker

7. Korzystanie z REST API IAMMETER-Docker

IAMMETER-Docker udostępnia interaktywną dokumentację API na lokalnym serwerze:

http://<docker-host-ip>:5050/docs

REST API może być używane do:

  • przesyłania obsługiwanych pomiarów z własnej bramy;
  • odpytywania danych dla prywatnego pulpitu nawigacyjnego;
  • łączenia lokalnej aplikacji z samodzielnie hostowanym serwerem;
  • testowania ładunków przed automatyzacją integracji.

Utrzymuj dostęp API w zaufanej sieci. Jeśli system zewnętrzny musi łączyć się zdalnie, umieść usługę za odpowiednią bezpieczną warstwą dostępu, zamiast wystawiać port aplikacji bez ochrony.

Dla programistów budujących kompletny odbiornik lub własną platformę zamiast używania IAMMETER-Docker, zobacz Opracuj własny system monitorowania energii.

8. Łączenie lokalnego przechowywania i usług w chmurze

Samodzielne hostowanie nie musi oznaczać, że każda zewnętrzna usługa jest wyłączona. IAMMETER-Docker może być lokalnym systemem rejestracji, podczas gdy wybrane dane są przesyłane gdzie indziej.

Architektura Dane lokalne Zależność od Internetu Najlepsza dla
Tylko lokalnie IAMMETER-Docker Niewymagana po wdrożeniu Prywatność, witryny offline i pulpity LAN
Lokalnie + IAMMETER-Cloud IAMMETER-Docker i IAMMETER-Cloud Wymagana do przesyłania Lokalna kopia plus raporty IAMMETER-Cloud i zdalny dostęp
Lokalnie + PVOutput IAMMETER-Docker i PVOutput Wymagana do przesyłania Użytkownicy energii słonecznej korzystający z PVOutput
Lokalnie + subskrybent MQTT IAMMETER-Docker plus przechowywanie zdefiniowane przez subskrybenta Niewymagana z lokalnym subskrybentem Node-RED, automatyzacja i własne przetwarzanie

Włącz tylko te miejsca docelowe, które służą określonemu celowi. Więcej miejsc docelowych tworzy więcej poświadczeń, zależności sieciowych i ścieżek rozwiązywania problemów.

9. Zaawansowana lista kontrolna wdrożenia

  • Podstawowe zbieranie danych IAMMETER-Docker jest już stabilne.
  • Trwałe dane i kopie zapasowe bazy danych są zweryfikowane.
  • MySQL jest używany tylko wtedy, gdy jego narzut operacyjny jest uzasadniony.
  • Port MQTT 1883 jest osiągalny tylko z zaufanych sieci.
  • Każdy klient MQTT używa odpowiedniego i unikalnego ID klienta.
  • SN licznika, temat i zarejestrowane urządzenie są zgodne.
  • Jednostki ładunku, liczba faz i kierunek mocy zostały przetestowane.
  • Awarie przesyłania PVOutput lub chmury nie przerywają lokalnego zbierania danych.
  • Kompatybilność Tasmota została potwierdzona z rzeczywistym urządzeniem i oprogramowaniem.
  • Zmiany są testowane na jednym liczniku przed zastosowaniem do większego wdrożenia.

10. Historia wersji i uwagi dotyczące starszych wersji

Powyższe sekcje opisują obecnie udokumentowane przepływy pracy IAMMETER-Docker. Oryginalna strona została napisana w okolicach V1.8 i V1.9; poniższa historia jest zachowana dla użytkowników utrzymujących starsze instalacje.

V2.4

V2.3

  • Naprawiono problem z przesyłaniem do PVOutput.

V2.2

  • Dodano logi dla awarii przesyłania do IAMMETER-Cloud.

V2.1

V1.9

  • Dodano obsługę MySQL.
  • Dodano opcję niestandardowego obrazu dla każdego miejsca.

IAMMETER-Docker V1.9

V1.8

  • Dodano przesyłanie MQTT do IAMMETER-Docker.
  • Dodano subskrypcję MQTT danych czasu rzeczywistego.
  • Dodano bezpośrednie przesyłanie do PVOutput.
  • Dodano udokumentowany przepływ pracy Tasmota/Sonoff.

11. Powiązane zasoby

Ostatnia aktualizacja: 17 lipca 2026 r.

Góra