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

Subskrypcja danych o zużyciu energii w czasie rzeczywistym za pośrednictwem brokera MQTT (edycja 2025)

1. Wstęp

chmura IAMMETERto profesjonalna platforma do monitorowania energii i zarządzania fotowoltaiką. Oprócz zaawansowanych funkcji wizualizacji i raportowania, IAMMETER-Cloud oferuje również elastyczne interfejsy danych. Dzięki temu użytkownicy o niestandardowych wymaganiach mogą korzystać z IAMMETER-Cloud jakooprogramowanie pośredniczące w przetwarzaniu danych, pobieranie danych programowo za pomocą kodu.

Istnieją dwa główne sposoby uzyskania danych z IAMMETER-Cloud za pomocą kodu:

  • Subskrybuj dane za pośrednictwemBroker MQTT firmy IAMMETER(temat tego artykułu)
  • Zadzwoń do oficjalnego przedstawiciela IAMMETER-CloudPszczoła

W tym przewodniku wyjaśniono, jak subskrybować tematy MQTT IAMMETER, interpretować struktury danych (dla liczników jednofazowych i trójfazowych) oraz implementować działające przykłady w językach Python i Node.js.


2. Przegląd brokera MQTT IAMMETER

Notatka:Broker MQTT IAMMETER został pierwotnie zaprojektowany jakousługa rozwoju i testowaniadla wygody i nie jest częścią standardowej oferty IAMMETER-Cloud (chociaż działa stabilnie i od ponad 5 lat). W przypadku wdrożeń produkcyjnych lub na dużą skalę zalecamy skonfigurowaniewłasny broker MQTT.

Konfiguracja brokera MQTT IAMMETER

parametr Opis
Adres brokera mqtt.iammeter.com
Port 1883(bez SSL)
Nazwa użytkownika / Hasło Musi zostać utworzony wIAMMETER Cloud → Ustawienia → Ustawienia MQTTZrzut ekranu ustawień MQTT
Format tematu urządzenie/{SN}/czas rzeczywisty
Format ładunku JSON

⚠️ Ważny:DonieUżyj tutaj swoich danych logowania do chmury IAMMETER. Musiszutwórz dedykowaną nazwę użytkownika i hasło MQTTw panelu IAMMETER Cloud.

Konfigurowanie miernika IAMMETER do korzystania z trybu MQTT

Ustaw miernik IAMMETER naTryb przesyłania MQTT(Widziećprzewodnik konfiguracji oprogramowania sprzętowego) i wprowadź parametry brokera MQTT IAMMETER.

Ustaw licznik w trybie przesyłania MQTT i skonfiguruj parametry brokera MQTT IAMMETER


3. Format tematu MQTT

Każde urządzenie IAMMETER publikuje swoje dane w czasie rzeczywistym w następującym temacie:

urządzenie/{SN}/czas rzeczywisty

Gdzie{SN}to numer seryjny Twojego licznika. Na przykład, jeśli numer seryjny Twojego urządzenia toDA2BED94, tematem będzie:

urządzenie/DA2BED94/w czasie rzeczywistym

Możesz zapisać się na ten temat, aby otrzymywać ciągłe dane pomiarowe w czasie rzeczywistym.


4. Format danych

4.1 Format danych licznika jednofazowego

Jednofazowy licznik IAMMETER publikuje dane w czasie rzeczywistym w formacie JSON w następujący sposób:

{
„metoda”: „1-272”,
„mac”: „B0F8932A295C”,
„wersja”: „i.91.062T6”,
„serwer”: „em”,
„numer seryjny”: „DA2BED94”,
„dane”: [227,02, 1,81, 296,0, 21699,98, 0,00, 50,01, 0,72]
}
indeks Pole Opis Jednostka
1 Woltaż Aktualne napięcie linii V
2 Aktualny Prąd linii prądu A
3 Moc Moc czynna W
4 Energia do przodu Energia importowana (zużywana) kWh
5 Odwrócona energia Energia eksportowana (z sieci, słoneczna) kWh
6 Częstotliwość Częstotliwość sieci Hz
7 współczynnik mocy Aktualny współczynnik mocy PF

🟢 Uwagi:

  • Moc dodatnia → zużycie energii
  • Moc ujemna → eksport energii (np. zasilanie z energii słonecznej)

4.2 Format danych licznika trójfazowego (WEM3080T / WEM3046T / WEM3050T)

Trójfazowe liczniki IAMMETER publikują dane w podobnym formacie JSON, z trzema tablicami odpowiadającymi każdej fazie.

{
„metoda”: „4-9”,
„mac”: „849DC2CEC625”,
„wersja”: „i.91.062T6”,
„serwer”: „em”,
„SN”: „CB0A0CFB”,
„EA”: {
„Reaktywna”: [
[-111,0, 0,000, 176,750],
[-113,0, 0,000, 179,110],
[-114,0, 36,120, 144,410]
]
},
„Dane”: [
[225,9, 1,260, 194,0, 305,110, 0,000, 49,99, 0,87],
[225,8, 1,260, 193,0, 302,690, 0,000, 49,99, 0,86],
[225,9, 1,260, 192,0, 300,890, 0,000, 49,99, 0,86]
]
}

Danejest listą zawierającątrzy tablice, każdy odpowiadającyfaza A, B i C. Każdy wewnętrzny układ ma taką samą strukturę jak układ jednofazowyDaneszyk.

indeks Pole Opis Jednostka
1 Woltaż napięcie fazowe V
2 Aktualny prąd fazowy A
3 Moc Moc czynna W
4 Energia do przodu Energia importowana kWh
5 Odwrócona energia Eksportowana energia kWh
6 Częstotliwość Częstotliwość sieci Hz
7 współczynnik mocy Współczynnik mocy fazowej PF

Oprócz danych o rzeczywistej mocy, kiedyPomiar mocy biernejjest włączony, zobaczysz równieżEAsekcja w następujący sposób:

„EA”: {
„Reaktywne”: [
[-111,0, 0,000, 176,750],
[-113,0, 0,000, 179,110],
[-114,0, 36,120, 144,410]
]
}

Ta sekcja pokazujereaktywne dane pomiarowe, który pojawia się tylko wtedy, gdyreaktywna funkcja testowajest włączony (patrz zrzut ekranu poniżej).

Włącz pomiar reaktywny w liczniku

Każda tablica przedstawia trzy fazy (A, B, C), pokazującmoc bierna (Q w kVar)orazEnergia bierna (kVARh).

Q (kVar):Moc bierna — dodatnia = indukcyjna, ujemna = pojemnościowakVARh:Energia bierna — każda faza obejmuje dwie wartości kVARh: jedną dlaobciążenie indukcyjnei jeden dlaobciążenie pojemnościowe.


5. Przykład w Pythonie: subskrypcja danych w czasie rzeczywistym

Poniżej znajduje się działający skrypt Pythona wykorzystującypaho-mqttbiblioteka.

import paho.mqtt.client jako mqtt
import json

# Konfiguracja brokera MQTT
MQTT_BROKER = „mqtt.iammeter.com”
MQTT_PORT = 1883
MQTT_USER = „twoja_nazwa_użytkownika_mqtt” # Ustaw w chmurze IAMMETER → Ustawienia MQTT
MQTT_PASS = „twoje_hasło_mqtt”
TOPIC = „device/DA2BED94/realtime” # Zastąp własnym numerem seryjnym urządzenia

# Wywołanie zwrotne po połączeniu z brokerem
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("✅ Połączono z brokerem MQTT IAMMETER pomyślnie")
client.subscribe(TOPIC)
print(f"📡 Zasubskrybowano temat: {TOPIC}")
else:
print(f"❌ Połączenie nie powiodło się z kodem {rc}")

# Wywołanie zwrotne po odebraniu wiadomości
def on_message(client, userdata, msg):
payload = json.loads(msg.payload.decode())
print("📊 Odebrano dane w czasie rzeczywistym:")
print(json.dumps(payload, indent=2, Ensure_ascii=False))

# Zainicjuj MQTT klient
client = mqtt.Client()
client.username_pw_set(MQTT_USER, MQTT_PASS)
client.on_connect = on_connect
client.on_message = on_message

# Połącz się z brokerem i rozpocznij pętlę
client.connect(MQTT_BROKER, MQTT_PORT, 60)
client.loop_forever()

6. Przykład Node.js

Polecamy wypróbować ten ciekawy projekt open-source: UżywaNode.jssubskrybować dane w czasie rzeczywistym z brokera IAMMETER MQTT i wizualizować je winterfejs użytkownika sieci web, tworząc świetny panel sterowania w czasie rzeczywistym.

🔗 https://github.com/lewei50/iammeterJS


7. Praktyczne przypadki użycia

  1. Inteligentna automatyka domowaZintegruj dane dotyczące zużycia energii w czasie rzeczywistymAsystent domowylubWęzeł-CZERWONYaby uruchomić działania automatyzacyjne (np. włączenie ogrzewania przy dużym poborze energii słonecznej).
  2. Wizualizacja danych lokalnychPrzechowuj przychodzące dane MQTT wNapływDBi zwizualizuj to sobiePanele Grafana.
  3. Prywatna chmura lub przetwarzanie brzegowePobieraj dane dotyczące zużycia energii w czasie rzeczywistym bezpośrednio przez protokół MQTT na potrzeby niestandardowych analiz lub logiki sterowania bez konieczności korzystania z usługi IAMMETER Cloud.

8. Rozwiązywanie problemów

Wydanie Możliwa przyczyna / rozwiązanie
Nie można połączyć się z brokerem Sprawdź, czy nazwa użytkownika i hasło MQTT są prawidłowo ustawione w chmurze IAMMETER.
Nie otrzymano danych Sprawdź format swojego tematu (urządzenie/{SN}/czas rzeczywisty) i upewnij się, że licznik jest w trybie online.
Opóźnienie danych Sprawdź stabilność sieci i siłę sygnału Wi-Fi.
Wiele metrów Możesz subskrybować wiele tematów jednocześnie (jeden na numer seryjny).

9. Wnioski

UżywanieBroker MQTT IAMMETER, możesz łatwo uzyskać dostępstrumienie danych energetycznych w czasie rzeczywistymz urządzeń IAMMETER. To potężna i elastyczna metoda budowanialokalne panele sterowania, inteligentne automatyzacje lub systemy optymalizacji zużycia energii oparte na sztucznej inteligencji.


📘 Bibliografia


Czy chcesz, żebym zrobiłWersja wpisu blogowego w formacie Markdown(gotowe do opublikowania na oficjalnym blogu IAMMETER, z wyróżnianiem składni i osadzonymi linkami do obrazów)?

Szczyt