Beklager, nettleseren din støtter ikke JavaScript!
Logg inn

Abonner på sanntids energidata via MQTT-broker (2025-utgaven)

1. Introduksjon

IAMMETER-Cloud er en profesjonell plattform for energiovervåking og administrasjon av solcelleanlegg. I tillegg til sine kraftige visualiserings- og rapporteringsfunksjoner tilbyr IAMMETER-Cloud også fleksible data-grensesnitt. Dette gjør at brukere med tilpassede behov kan bruke IAMMETER-Cloud som en datamellomvare og hente data programmatisk gjennom kode.

Det er to hovedmåter å hente data fra IAMMETER-Cloud med kode:

  • Abonnere på data via IAMMETERs MQTT-broker (fokus for denne artikkelen)
  • Kalle opp IAMMETER-Clouds offisielle API-er

Denne guiden forklarer hvordan du abonnerer på IAMMETERs MQTT-emner, tolker datastrukturene (for både enfase- og trefasemålere) og implementerer fungerende Python- og Node.js-eksempler.


2. Oversikt over IAMMETER MQTT-brokeren

Merk: IAMMETER MQTT-brokeren ble opprinnelig designet som en utviklings- og testtjeneste for enkelhets skyld og er ikke en del av det standard IAMMETER-Cloud-tilbudet (selv om den har vært stabil og i drift i over 5 år). For produksjon eller storskala utrulling anbefaler vi at du setter opp din egen MQTT-broker.

Konfigurasjon av IAMMETER MQTT-brokeren

Parameter Beskrivelse
Broker-adresse mqtt.iammeter.com
Port 1883 (ikke-SSL)
Brukernavn / Passord Må opprettes i IAMMETER Cloud → Innstillinger → MQTT-innstillingerSkjermbilde av MQTT-innstillinger
Emneformat device/{SN}/realtime
Nyttelastformat JSON

⚠️ Viktig: Ikke bruk påloggingsdetaljene dine for IAMMETER Cloud her. Du må opprette et dedikert MQTT-brukernavn og passord i IAMMETER Cloud-kontrollpanelet.

Konfigurere IAMMETER-måleren til å bruke MQTT-modus

Sett IAMMETER-måleren til MQTT-opplastingsmodus (se fastvarekonfigurasjonsguiden) og skriv inn parametrene for IAMMETER MQTT-brokeren.

Sett måleren til MQTT-opplastingsmodus og konfigurer IAMMETER MQTT-brokerparameterne


3. MQTT-emneformat

Hver IAMMETER-enhet publiserer sanntidsdataene sine under følgende emne:

device/{SN}/realtime

Der {SN} er serienummeret til måleren din. For eksempel, hvis enhetens SN er DA2BED94, vil emnet være:

device/DA2BED94/realtime

Du kan abonnere på dette emnet for å motta kontinuerlige sanntidsmåledata.


4. Dataformat

4.1 Dataformat for enfasemåler

En enfaset IAMMETER-måler publiserer sanntidsdata i JSON-format som følger:

{
  "method": "1-272",
  "mac": "B0F8932A295C",
  "version": "i.91.062T6",
  "server": "em",
  "SN": "DA2BED94",
  "Data": [227.02, 1.81, 296.0, 21699.98, 0.00, 50.01, 0.72]
}
Indeks Felt Beskrivelse Enhet
1 Spenning Gjeldende linjespenning V
2 Strøm Gjeldende linjestrøm A
3 Effekt Aktiv effekt W
4 Fremover energi Importert energi (forbruk) kWh
5 Tilbakemating Eksportert energi (innmating, sol) kWh
6 Frekvens Nettfrekvens Hz
7 Effektfaktor Gjeldende effektfaktor PF

🟢 Merknader:

  • Positiv effekt → energiforbruk
  • Negativ effekt → energieksport (f.eks. solinnmating)

4.2 Dataformat for trefasemåler (WEM3080T / WEM3046T / WEM3050T)

Trefase IAMMETER-målere publiserer data i et lignende JSON-format, med tre matriser som tilsvarer hver fase.

{
  "method": "4-9",
  "mac": "849DC2CEC625",
  "version": "i.91.062T6",
  "server": "em",
  "SN": "CB0A0CFB",
  "EA": {
    "Reactive": [
      [-111.0, 0.000, 176.750],
      [-113.0, 0.000, 179.110],
      [-114.0, 36.120, 144.410]
    ]
  },
  "Datas": [
    [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]
  ]
}

Datas er en liste som inneholder tre matriser, der hver tilsvarer fase A, B og C. Hver indre matrise har samme struktur som enfasemålerens Data-matrise.

Indeks Felt Beskrivelse Enhet
1 Spenning Fasespenning V
2 Strøm Fasestrøm A
3 Effekt Aktiv effekt W
4 Fremover energi Importert energi kWh
5 Tilbakemating Eksportert energi kWh
6 Frekvens Nettfrekvens Hz
7 Effektfaktor Faseeffektfaktor PF

I tillegg til de aktive effektdataene vil du, når måling av reaktiv effekt er aktivert, også se EA-delen som følger:

"EA": {
  "Reactive": [
    [-111.0, 0.000, 176.750],
    [-113.0, 0.000, 179.110],
    [-114.0, 36.120, 144.410]
  ]
}

Denne delen viser reaktive måledata, som bare vises når den reaktive testfunksjonen er aktivert (se skjermbildet nedenfor).

Aktiver reaktiv måling i måleren

Hver matrise representerer de tre fasene (A, B, C) og viser reaktiv effekt (Q i kVar) og reaktiv energi (kVARh).

Q (kVar): Reaktiv effekt — positiv = induktiv, negativ = kapasitiv kVARh: Reaktiv energi — hver fase inkluderer to kVARh-verdier: én for induktiv last og én for kapasitiv last.


5. Python-eksempel: Abonner på sanntidsdata

Nedenfor er et fungerende Python-skript som bruker paho-mqtt-biblioteket.

import paho.mqtt.client as mqtt
import json

# MQTT Broker configuration
MQTT_BROKER = "mqtt.iammeter.com"
MQTT_PORT = 1883
MQTT_USER = "your_mqtt_username"  # Set in IAMMETER Cloud → MQTT Settings
MQTT_PASS = "your_mqtt_password"
TOPIC = "device/DA2BED94/realtime"  # Replace with your own device SN

# Callback when connected to the broker
def on_connect(client, userdata, flags, rc):
    if rc == 0:
        print("✅ Connected to IAMMETER MQTT Broker successfully")
        client.subscribe(TOPIC)
        print(f"📡 Subscribed to topic: {TOPIC}")
    else:
        print(f"❌ Connection failed with code {rc}")

# Callback when a message is received
def on_message(client, userdata, msg):
    payload = json.loads(msg.payload.decode())
    print("📊 Received real-time data:")
    print(json.dumps(payload, indent=2, ensure_ascii=False))

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

# Connect to the broker and start the loop
client.connect(MQTT_BROKER, MQTT_PORT, 60)
client.loop_forever()

6. Node.js-eksempel

Vi anbefaler at du prøver dette interessante open-source-prosjektet: Det bruker Node.js til å abonnere på sanntidsdata fra IAMMETER MQTT-brokeren og visualisere dem i et web-grensesnitt, og skaper et kult sanntidsdashboard.

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


7. Praktiske bruksområder

  1. Smarthjem-automatisering Integrer sanntids effektdata i Home Assistant eller Node-RED for å utløse automatiseringshandlinger (f.eks. starte en varmeovn når solproduksjonen er høy).
  2. Lokal datavisualisering Lagre innkommende MQTT-data i InfluxDB og visualiser dem med Grafana-dashboards.
  3. Privat sky eller edge computing Hent sanntids effektdata direkte via MQTT for tilpasset analyse eller kontrolllogikk, uten å være avhengig av IAMMETER Cloud.

8. Feilsøking

Problem Mulig årsak / løsning
Kan ikke koble til broker Kontroller at MQTT-brukernavnet/-passordet er riktig angitt i IAMMETER Cloud.
Ingen data mottatt Kontroller emneformatet ditt (device/{SN}/realtime) og påse at måleren er online.
Dataforsinkelse Kontroller nettverksstabiliteten eller Wi-Fi-signalstyrken.
Flere målere Du kan abonnere på flere emner samtidig (ett per SN).

9. Konklusjon

Ved å bruke IAMMETER MQTT-brokeren kan du enkelt få tilgang til sanntidsstrømmer av energidata fra IAMMETER-enhetene dine. Det er en kraftig og fleksibel metode for å bygge lokale dashboards, smarthjem-automatiseringer eller AI-baserte energiopptimiseringssystemer.


📘 Referanser


Ønsker du at jeg lager en Markdown-formatert blogginnleggsversjon (klar til publisering på IAMMETERs offisielle blogg, med syntaksutheving og innebygde bildelenker intakt)?

Topp