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

Samodzielny monitoring energii z Dockerem

Samodzielny monitoring energii z Dockerem

Samodzielnie hostowany system monitorowania energii zapewnia kontrolę nad serwerem monitorującym i danymi elektryczności. Zamiast wysyłać każdy odczyt do publicznej chmury, licznik energii przesyła dane do kontenera Docker działającego na lokalnym serwerze, NAS, Raspberry Pi lub kompatybilnym routerze.

IAMMETER-Docker zapewnia gotowy do uruchomienia lokalny serwer monitorowania energii dla zużycia energii elektrycznej i systemów fotowoltaicznych. Może zbierać pomiary, wyświetlać dane w czasie rzeczywistym i historyczne, udostępniać API oraz opcjonalnie działać jako offline'owy rejestrator danych.

IAMMETER energy meter
        │
        │ Wi-Fi / local network
        ▼
IAMMETER-Docker
        │
        ├── Local web dashboard
        ├── Historical energy data
        ├── REST API
        ├── MQTT
        ├── CSV datalogger
        └── Optional forwarding

IAMMETER-Docker to praktyczna opcja samodzielnego hostingu, ale nie odtwarza każdej funkcji i raportu z IAMMETER-Cloud. Jeśli wciąż wybierasz architekturę, porównaj opcje na stronie rozwiązań samodzielnego monitorowania energii.

🎬 Obejrzyj samouczek wideo IAMMETER-Docker

1. Kiedy należy stosować samodzielnie hostowany system monitorowania energii?

IAMMETER-Docker jest odpowiedni, gdy chcesz:

  • przechowywać dane energetyczne na zarządzanym przez siebie serwerze;
  • monitorować energię w sieci LAN bez polegania na dostępie do Internetu;
  • wdrożyć lokalny panel monitorowania fotowoltaiki;
  • zbierać dane w zdalnej lokalizacji za pomocą offline'owego rejestratora danych;
  • uzyskiwać dostęp do pomiarów przez lokalne REST API lub MQTT;
  • przekazywać wybrane dane do innej platformy;
  • zbudować prywatny panel lub integrację wokół przechowywanych danych energetycznych.

Typowe instalacje obejmują:

  • monitorowanie domowego zużycia energii i fotowoltaiki;
  • warsztaty, biura i małe obiekty komercyjne;
  • zdalne systemy słoneczne i pomieszczenia techniczne;
  • środowiska programistyczne i testowe;
  • projekty, w których wymagana jest lokalna ścieżka danych.

Jeśli potrzebujesz tylko bezpośrednich odczytów licznika dla Home Assistant, Node-RED, PLC lub niestandardowego oprogramowania, wdrażanie pełnego serwera może być niepotrzebne. Zobacz opcje integracji lokalnej i samodzielnego hostingu przed podjęciem decyzji.

2. Czego potrzebujesz

Przed wdrożeniem przygotuj:

  • urządzenie zdolne do uruchomienia Docker, takie jak serwer Linux, NAS, Raspberry Pi lub kompatybilny router;
  • trwałe przechowywanie dla bazy danych aplikacji;
  • port TCP 5050 dostępny dla aplikacji internetowej i API;
  • port TCP 1883, jeśli będzie używana wbudowana usługa MQTT;
  • stabilny adres IP lub rezerwację DHCP dla hosta Docker;
  • licznik energii IAMMETER lub inne źródło danych mogące przesyłać dane w obsługiwanym formacie API.

Host Docker i licznik powinny być w stanie się nawzajem osiągnąć w sieci lokalnej. Do pracy offline dostęp do Internetu nie jest potrzebny po zainstalowaniu obrazu i wymaganego oprogramowania.

3. Wdrażanie IAMMETER-Docker

Obecna wersja na Docker Hub to IAMMETER-Docker V2.4.

3.1 Opcja A: Docker run

Utwórz katalog roboczy i uruchom kontener z trwałym przechowywaniem:

docker run -d \
  --name myiammeter \
  --restart always \
  -p 5050:5050 \
  -p 1883:1883 \
  -e TZ=Etc/UTC \
  -v "$PWD/data:/app/data" \
  iammeter/iammeter

Zmień TZ=Etc/UTC na prawidłową strefę czasową dla monitorowanej lokalizacji. Raporty energetyczne zależą od lokalnej daty i czasu, więc ustaw to przed rozpoczęciem zbierania danych produkcyjnych.

3.2 Opcja B: Docker Compose

Utwórz compose.yaml:

services:
  iammeter:
    image: iammeter/iammeter
    container_name: myiammeter
    restart: always
    ports:
      - "5050:5050"
      - "1883:1883"
    environment:
      TZ: Etc/UTC
    volumes:
      - ./data:/app/data

Uruchom usługę:

docker compose up -d

Sprawdź jej stan:

docker compose ps
docker compose logs --tail=100 iammeter

3.3 Otwórz lokalny panel

Otwórz następujący adres z przeglądarki w tej samej sieci:

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

Domyślne dane logowania:

Username: testuser
Password: 123456

Natychmiast zmień domyślne hasło. Nie udostępniaj portów 5050 ani 1883 bezpośrednio do publicznego Internetu bez odpowiedniej zapory sieciowej, uwierzytelniania i bezpiecznego projektu sieci.

IAMMETER-Docker login

4. Wstępna konfiguracja

Po zalogowaniu:

  1. Utwórz Place dla domu, instalacji słonecznej lub monitorowanego obiektu.
  2. Dodaj Meter.
  3. Wprowadź numer seryjny licznika (SN).
  4. Wybierz prawidłowy typ licznika jednofazowego lub trójfazowego.
  5. Przypisz każdą fazę lub kanał jako Grid, Inverter lub Load.
  6. Potwierdź strefę czasową lokalizacji i strukturę pomiarów przed oceną raportów.

Configure a meter in IAMMETER-Docker

Prawidłowe przypisanie kanałów jest szczególnie ważne w monitorowaniu fotowoltaiki. System musi wiedzieć, który pomiar reprezentuje sieć, falownik lub obciążenie, zanim będzie mógł wyświetlić znaczące wyniki przepływu energii.

5. Podłącz licznik energii IAMMETER

Liczniki IAMMETER mogą przesyłać dane bezpośrednio do lokalnego serwera Docker.

W interfejsie WebUI licznika skonfiguruj przesyłanie HTTP strony trzeciej i użyj adresu hosta Docker:

<docker-host-ip>:5050/api/v1/sensor/uploadsensor

Adres IP hosta Docker musi być osiągalny z sieci Wi-Fi licznika. Użyj tego samego SN licznika, który został dodany do IAMMETER-Docker.

Configure HTTP upload to IAMMETER-Docker

Po zapisaniu konfiguracji licznika:

  1. poczekaj na pierwsze przesłanie;
  2. potwierdź, że licznik pojawia się jako online w IAMMETER-Docker;
  3. porównaj wartości napięcia, mocy i energii z lokalnymi danymi licznika;
  4. zweryfikuj kierunek i przypisanie kanałów przed poleganiem na obliczeniach fotowoltaiki lub importu/eksportu.

Korzystaj jednocześnie z IAMMETER-Cloud

IAMMETER-Docker może opcjonalnie przekazywać dane licznika do IAMMETER-Cloud. Włącz przesyłanie tylko wtedy, gdy potrzebujesz zarówno lokalnego przechowywania, jak i usług IAMMETER-Cloud.

Forward local data to IAMMETER-Cloud

W przypadku instalacji offline lub niezależnej od chmury, pozostaw przesyłanie do chmury wyłączone.

6. Przesyłanie danych z innego urządzenia lub aplikacji

IAMMETER-Docker może również odbierać dane energetyczne przez swoje REST API. Jest to przydatne dla symulatorów, bramek lub aplikacji klienckich, które nie używają licznika IAMMETER.

Utwórz licznik z niestandardowym SN, a następnie używaj tego samego SN w każdym żądaniu API.

Interaktywna dokumentacja API jest dostępna na lokalnym serwerze:

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

IAMMETER-Docker API documentation

Test an IAMMETER-Docker API request

Najpierw przetestuj API na liczniku nieprodukcyjnym. Zachowaj spójność SN, liczby faz, kolejności pól i jednostek, aby dane historyczne pozostały użyteczne.

7. Uruchamianie offline'owego rejestratora danych energii

IAMMETER-Docker V2.4 może zapisywać dane do CSV, gdy zamontowany jest katalog rejestratora. Jest to przydatne w zdalnej instalacji słonecznej, fabryce lub pomieszczeniu technicznym bez niezawodnego połączenia internetowego.

Docker run z przechowywaniem rejestratora

docker run -d \
  --name myiammeter \
  --restart always \
  -p 5050:5050 \
  -p 1883:1883 \
  -e TZ=Etc/UTC \
  -v "$PWD/data:/app/data" \
  -v "$PWD/datalogger:/app/datalogger" \
  iammeter/iammeter

Dla Docker Compose dodaj ten wolumin:

volumes:
  - ./data:/app/data
  - ./datalogger:/app/datalogger

Otwórz stronę rejestratora pod adresem:

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

Strona rejestratora początkowo używa:

Username: admin
Password: admin

Zmień to hasło w ramach wdrożenia. Aby zapoznać się z pełnym przepływem pracy opartym na routerze i eksporcie CSV, zobacz Offline Energy Datalogger z IAMMETER-Docker.

8. MQTT i inne zaawansowane funkcje

Port 1883 jest używany przez usługę MQTT IAMMETER-Docker. Licznik lub inna aplikacja może publikować obsługiwane dane pomiarowe do IAMMETER-Docker, a klienci MQTT mogą subskrybować wartości w czasie rzeczywistym.

IAMMETER-Docker obsługuje również funkcje takie jak:

  • MySQL zamiast domyślnej lokalnej bazy danych dla większych zbiorów danych;
  • publikowanie i subskrypcja MQTT;
  • przesyłanie do PVOutput;
  • kompatybilne dane energetyczne Tasmota;
  • alarmy czasu rzeczywistego i scenariusze rejestratora z interwałem 1 sekundy.

Te funkcje są celowo pominięte w podstawowej ścieżce wdrożenia. Najpierw skonfiguruj i przetestuj podstawowy kontener, a następnie kontynuuj z zaawansowanym przewodnikiem IAMMETER-Docker.

9. Tworzenie kopii zapasowej danych energetycznych

Wolumin /app/data zawiera trwałe dane aplikacji. Regularnie wykonuj kopię zapasową odpowiedniego katalogu hosta.

Bezpieczny podstawowy proces to:

  1. zatrzymaj lub wstrzymaj zapisy do kontenera;
  2. skopiuj kompletny zamontowany katalog data do pamięci kopii zapasowej;
  3. dołącz katalog datalogger, gdy rejestrowanie CSV jest włączone;
  4. zachowaj więcej niż jedną generację kopii zapasowej;
  5. przetestuj przywracanie na osobnym kontenerze przed poleganiem na planie tworzenia kopii zapasowych.

Nie traktuj systemu plików kontenera jako trwałego przechowywania. Jeśli /app/data nie jest zamontowany, usunięcie kontenera może usunąć wraz z nim bazę danych monitorowania.

10. Aktualizacja IAMMETER-Docker

Przed aktualizacją wykonaj kopię zapasową katalogu danych trwałych.

Dla Docker Compose:

docker compose pull
docker compose up -d
docker compose logs --tail=100 iammeter

Dla kontenera utworzonego za pomocą docker run:

  1. zanotuj istniejące porty, strefę czasową i zamontowane woluminy;
  2. pobierz nowy obraz;
  3. zatrzymaj i usuń stary kontener;
  4. utwórz kontener ponownie z tym samym trwałym woluminem;
  5. zweryfikuj logowanie, status licznika i dane historyczne.
docker pull iammeter/iammeter
docker stop myiammeter
docker rm myiammeter

Następnie powtórz oryginalne polecenie docker run. Usunięcie kontenera jest bezpieczne tylko wtedy, gdy dane aplikacji zostały zapisane w prawidłowo zamontowanym i zabezpieczonym katalogu hosta.

11. Rozwiązywanie problemów

Strona internetowa nie otwiera się

  • Sprawdź, czy kontener działa za pomocą docker ps lub docker compose ps.
  • Sprawdź, czy port hosta 5050 nie jest już używany.
  • Przejrzyj logi kontenera.
  • Potwierdź, że zapora sieciowa zezwala na dostęp z sieci lokalnej.

Licznik nie pojawia się jako online

  • Potwierdź, że licznik może osiągnąć adres IP hosta Docker.
  • Sprawdź adres URL przesyłania i port.
  • Potwierdź, że SN w IAMMETER-Docker odpowiada SN licznika.
  • Unikaj używania localhost jako adresu serwera w liczniku; odnosi się on do samego licznika, a nie hosta Docker.
  • Potwierdź, że izolacja klienta lub gościnna sieć Wi-Fi nie blokuje ruchu LAN.

Dane fotowoltaiki wyglądają nieprawidłowo

  • Sprawdź kierunek CT i okablowanie.
  • Potwierdź, który kanał jest przypisany do sieci (Grid), a który do falownika (Inverter).
  • Sprawdź znak mocy czynnej podczas importu i eksportu.
  • Potwierdź strefę czasową przed porównaniem dziennych sum energii.

Dane znikają po odtworzeniu kontenera

  • Potwierdź, że /app/data był zamontowany do trwałego katalogu hosta.
  • Sprawdź uprawnienia katalogu.
  • Przywróć najnowszą zweryfikowaną kopię zapasową, jeśli oryginalny wolumin jest niedostępny.

12. IAMMETER-Docker, IAMMETER-Cloud czy system niestandardowy?

Opcja Najlepsze dla Lokalizacja danych Nakład konfiguracji Główny kompromis
IAMMETER-Docker Gotowy lokalny serwer monitorowania Twój host Docker Niski do średniego Mniej zarządzanych funkcji chmurowych
IAMMETER-Cloud Gotowe monitorowanie, raporty i zdalny dostęp IAMMETER-Cloud Niski Korzysta z hostowanej usługi chmurowej
Home Assistant / Node-RED Encje inteligentnego domu i niestandardowa automatyzacja Twoja własna platforma Średni Projektujesz panel i przepływy pracy
Niestandardowy serwer Produkt, EMS lub specjalistyczny potok danych Twoja infrastruktura Wysoki Tworzysz i utrzymujesz system

Kontynuuj z:

13. Lista kontrolna wdrożenia

  • Host Docker ma stabilny adres LAN.
  • /app/data jest zamontowany do trwałego przechowywania.
  • Strefa czasowa odpowiada monitorowanej lokalizacji.
  • Domyślne hasła zostały zmienione.
  • Porty 5050 i 1883 nie są niepotrzebnie wystawione na Internet.
  • SN licznika i przypisania kanałów są prawidłowe.
  • Lokalne przesyłanie zostało zweryfikowane z rzeczywistymi pomiarami.
  • Przesyłanie do chmury jest włączone tylko w razie potrzeby.
  • Procedury tworzenia kopii zapasowych i aktualizacji zostały przetestowane.
  • Wolumin rejestratora jest zamontowany, jeśli wymagany jest eksport CSV.

Ostatnia aktualizacja: 17 lipca 2026 r.

Góra