Je nám líto, váš prohlížeč nepodporuje JavaScript!
Přihlásit se

Odběr energetických dat v reálném čase prostřednictvím MQTT brokera (vydání 2025)

1. Úvod

IAMMETER-Cloud je profesionální platforma pro monitorování energie a správu fotovoltaických systémů. Kromě výkonných funkcí vizualizace a vytváření přehledů nabízí IAMMETER-Cloud také flexibilní datová rozhraní. To umožňuje uživatelům s individuálními požadavky používat IAMMETER-Cloud jako datové middleware a získávat data programově pomocí kódu.

Existují dva hlavní způsoby, jak získávat data z IAMMETER-Cloud pomocí kódu:

  • Odběr dat prostřednictvím MQTT brokera IAMMETER (hlavní téma tohoto článku)
  • Volání oficiálních API IAMMETER-Cloud

Tento průvodce vysvětluje, jak se přihlásit k odběru témat MQTT IAMMETER, interpretovat datové struktury (pro jednofázové i třífázové elektroměry) a implementovat funkční příklady v Pythonu a Node.js.


2. Přehled MQTT brokera IAMMETER

Poznámka: Broker MQTT IAMMETER byl původně navržen jako vývojová a testovací služba pro pohodlí a není součástí standardní nabídky IAMMETER-Cloud (i když funguje stabilně již více než 5 let). Pro produkční nasazení nebo nasazení ve velkém měřítku doporučujeme zprovoznit vlastní MQTT broker.

Konfigurace MQTT brokera IAMMETER

Parametr Popis
Adresa brokera mqtt.iammeter.com
Port 1883 (bez SSL)
Uživatelské jméno / Heslo Musí být vytvořeno v IAMMETER Cloud → Nastavení → Nastavení MQTTSnímek obrazovky nastavení MQTT
Formát tématu device/{SN}/realtime
Formát dat JSON

⚠️ Důležité: Nepoužívejte zde své přihlašovací údaje k IAMMETER Cloud. V panelu IAMMETER Cloud musíte vytvořit vyhrazené uživatelské jméno a heslo MQTT.

Konfigurace elektroměru IAMMETER pro režim MQTT

Nastavte svůj elektroměr IAMMETER do režimu odesílání MQTT (viz průvodce konfigurací firmwaru) a zadejte parametry MQTT brokera IAMMETER.

Nastavení elektroměru do režimu odesílání MQTT a konfigurace parametrů MQTT brokera IAMMETER


3. Formát tématu MQTT

Každé zařízení IAMMETER publikuje svá data v reálném čase pod následujícím tématem:

device/{SN}/realtime

Kde {SN} je sériové číslo vašeho elektroměru. Pokud je například SN vašeho zařízení DA2BED94, téma bude:

device/DA2BED94/realtime

K tomuto tématu se můžete přihlásit k odběru a přijímat průběžná měřicí data v reálném čase.


4. Formát dat

4.1 Formát dat jednofázového elektroměru

Jednofázový elektroměr IAMMETER publikuje data v reálném čase ve formátu JSON takto:

{
  "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]
}
Index Pole Popis Jednotka
1 Voltage Aktuální síťové napětí V
2 Current Aktuální síťový proud A
3 Power Činný výkon W
4 Forward Energy Odebraná energie (spotřeba) kWh
5 Reverse Energy Dodaná energie (přetok, solární) kWh
6 Frequency Frekvence sítě Hz
7 Power Factor Aktuální účiník PF

🟢 Poznámky:

  • Kladný výkon → spotřeba energie
  • Záporný výkon → vývoz energie (např. solární přetok)

4.2 Formát dat třífázového elektroměru (WEM3080T / WEM3046T / WEM3050T)

Třífázové elektroměry IAMMETER publikují data v podobném formátu JSON se třemi poli, která odpovídají jednotlivým fázím.

{
  "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]
  ]
}

Pole Datas je seznam obsahující tři pole, přičemž každé odpovídá fázi A, B a C. Každé vnitřní pole má stejnou strukturu jako jednofázové pole Data.

Index Pole Popis Jednotka
1 Voltage Fázové napětí V
2 Current Fázový proud A
3 Power Činný výkon W
4 Forward Energy Odebraná energie kWh
5 Reverse Energy Dodaná energie kWh
6 Frequency Frekvence sítě Hz
7 Power Factor Účiník fáze PF

Kromě dat činného výkonu se po zapnutí měření jalového výkonu zobrazí také sekce EA v následující podobě:

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

Tato sekce zobrazuje data jalového měření, která se objevují pouze při zapnuté funkci testu jalového výkonu (viz snímek obrazovky níže).

Zapnutí měření jalového výkonu v elektroměru

Každé pole představuje jednu ze tří fází (A, B, C) a zobrazuje jalový výkon (Q v kVar) a jalovou energii (kVARh).

Q (kVar): Jalový výkon — kladná hodnota = induktivní, záporná hodnota = kapacitní kVARh: Jalová energie — každá fáze obsahuje dvě hodnoty kVARh: jednu pro induktivní zátěž a jednu pro kapacitní zátěž.


5. Příklad v Pythonu: Odběr dat v reálném čase

Níže je funkční skript v Pythonu využívající knihovnu paho-mqtt.

import paho.mqtt.client as mqtt
import json

# Konfigurace MQTT brokera
MQTT_BROKER = "mqtt.iammeter.com"
MQTT_PORT = 1883
MQTT_USER = "your_mqtt_username"  # Nastavte v IAMMETER Cloud → Nastavení MQTT
MQTT_PASS = "your_mqtt_password"
TOPIC = "device/DA2BED94/realtime"  # Nahraďte vlastním SN zařízení

# Zpětné volání po připojení k brokeru
def on_connect(client, userdata, flags, rc):
    if rc == 0:
        print("✅ Úspěšně připojeno k MQTT brokeru IAMMETER")
        client.subscribe(TOPIC)
        print(f"📡 Přihlášeno k odběru tématu: {TOPIC}")
    else:
        print(f"❌ Připojení selhalo s kódem {rc}")

# Zpětné volání po přijetí zprávy
def on_message(client, userdata, msg):
    payload = json.loads(msg.payload.decode())
    print("📊 Přijata data v reálném čase:")
    print(json.dumps(payload, indent=2, ensure_ascii=False))

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

# Připojení k brokeru a spuštění smyčky
client.connect(MQTT_BROKER, MQTT_PORT, 60)
client.loop_forever()

6. Příklad v Node.js

Doporučujeme vyzkoušet tento zajímavý open-source projekt: Využívá Node.js k odběru dat v reálném čase z MQTT brokera IAMMETER a k jejich vizualizaci v webovém rozhraní, čímž vytváří skvělý dashboard v reálném čase.

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


7. Praktické případy použití

  1. Automatizace chytré domácnosti (Smart Home) Integrujte data o výkonu v reálném čase do Home Assistant nebo Node-RED a spouštějte akce automatizace (např. zapnutí topení při vysoké solární výrobě).
  2. Lokální vizualizace dat Ukládejte příchozí data MQTT do InfluxDB a vizualizujte je pomocí dashboardů Grafana.
  3. Soukromý cloud nebo edge computing Získávejte data o výkonu v reálném čase přímo přes MQTT pro vlastní analýzy nebo řídicí logiku, aniž byste se spoléhali na IAMMETER Cloud.

8. Řešení problémů

Problém Možná příčina / Řešení
Nelze se připojit k brokeru Zkontrolujte, zda jsou uživatelské jméno a heslo MQTT správně nastaveny v IAMMETER Cloud.
Žádná přijatá data Ověřte formát tématu (device/{SN}/realtime) a ujistěte se, že je elektroměr online.
Zpoždění dat Zkontrolujte stabilitu sítě nebo sílu signálu Wi-Fi.
Více elektroměrů Můžete odebírat více témat současně (jedno pro každé SN).

9. Závěr

Pomocí MQTT brokera IAMMETER můžete snadno získat přístup k datovým tokům energie v reálném čase ze svých zařízení IAMMETER. Jedná se o výkonnou a flexibilní metodu pro vytváření lokálních dashboardů, chytrých automatizací nebo systémů optimalizace energie založených na AI.


📘 Odkazy


Chcete, abych vytvořil verzi příspěvku ve formátu Markdown (připravenou k publikaci na oficiálním blogu IAMMETER, se zvýrazněním syntaxe a neporušenými odkazy na vložené obrázky)?

Nahoru