Абонамент за енергийни данни в реално време чрез MQTT Broker (издание 2025)
1. Въведение
IAMMETER-облаке професионална платформа за енергиен мониторинг и управление на фотоволтаици. В допълнение към мощните си функции за визуализация и отчетност, IAMMETER-Cloud предоставя и гъвкави интерфейси за данни. Това позволява на потребители с персонализирани изисквания да използват IAMMETER-Cloud катомеждинен софтуер за данни, извличане на данни програмно чрез код.
Има два основни начина за получаване на данни от IAMMETER-Cloud чрез код:
- Абонирайте се за данни чрезMQTT брокерът на IAMMETER(фокусът на тази статия)
- Обадете се на представителя на IAMMETER-CloudAPI
Това ръководство обяснява как да се абонирате за теми на IAMMETER MQTT, да интерпретирате структури от данни (както за еднофазни, така и за трифазни електромери) и да имплементирате работещи примери на Python и Node.js.
2. Преглед на IAMMETER MQTT брокера
Забележка:Брокерът IAMMETER MQTT първоначално е проектиран катоуслуга за разработка и тестванеза удобство и не е част от стандартното предложение на IAMMETER-Cloud (въпреки че е стабилно и работи повече от 5 години). За производствени или мащабни внедрявания препоръчваме да настроитесобствен MQTT брокер.
Конфигурация на IAMMETER MQTT брокер
| параметър | Описание |
|---|---|
| Адрес на брокера | mqtt.iammeter.com |
| Порт | 1883(без SSL) |
| Потребителско име / Парола | Трябва да бъде създадено вIAMMETER Cloud → Настройки → MQTT настройки![]() |
| Формат на темата | устройство/{SN}/реално време |
| Формат на полезния товар | JSON |
⚠️ Важно:Направинеизползвайте вашите данни за вход в IAMMETER Cloud тук. Трябва дасъздайте специално потребителско име и парола за MQTTв таблото за управление на IAMMETER Cloud.
Конфигурирайте IAMMETER измервателен уред за използване на MQTT режим
Настройте вашия IAMMETER наРежим на качване на MQTT(вижтеръководство за конфигуриране на фърмуера) и въведете параметрите на IAMMETER MQTT брокера.

3. Формат на темата на MQTT
Всяко устройство IAMMETER публикува данните си в реално време по следната тема:
устройство/{SN}/реално време
Къде{SN}е серийният номер на вашия измервателен уред.
Например, ако сериен номер на вашето устройство еDA2BED94, темата ще бъде:
устройство/DA2BED94/реално време
Можете да се абонирате за тази тема, за да получавате непрекъснати данни от измервания в реално време.
4. Формат на данните
4.1 Формат на данните на еднофазен измервателен уред
Еднофазен IAMMETER измервателен уред публикува данни в реално време във формат JSON, както следва:
{
„метод“: „1-272“,
„mac“: „B0F8932A295C“,
„версия“: „i.91.062T6“,
„сървър“: „em“,
„SN“: „DA2BED94“,
„Данни“: [227.02, 1.81, 296.0, 21699.98, 0.00, 50.01, 0.72]
}
| индекс | Поле | Описание | Мерна единица |
|---|---|---|---|
| 1 | Напрежение | Текущо мрежово напрежение | V |
| 2 | Текущ | Текущ ток на линията | А |
| 3 | Мощност | Активна мощност | У |
| 4 | Напредна енергия | Вносна енергия (консумирана) | kWh |
| 5 | Обратна енергия | Изнесена енергия (захранване от електричество, слънчева енергия) | kWh |
| 6 | Честота | Честота на мрежата | Hz |
| 7 | фактор на мощността | Текущ фактор на мощността | ПФ |
🟢 Бележки:
- Положителна мощност → консумация на енергия
- Отрицателна мощност → износ на енергия (напр. захранване от слънчева енергия)
4.2 Формат на данните на трифазен измервателен уред (WEM3080T / WEM3046T / WEM3050T)
Трифазните IAMMETER измервателни уреди публикуват данни в подобен JSON формат, с три масива, съответстващи на всяка фаза.
{
„метод“: „4-9“,
„mac“: „849DC2CEC625“,
„версия“: „i.91.062T6“,
„сървър“: „em“,
„SN“: „CB0A0CFB“,
„EA“: {
„Реактивен“: [
[-111.0, 0.000, 176.750],
[-113.0, 0.000, 179.110],
[-114.0, 36.120, 144.410]
]
},
„Данни“: [
[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]
]
}
Данние списък, съдържащтри масива, всеки от които съответства нафаза А, Б и В.
Всяка вътрешна решетка има същата структура като еднофазнатаДаннимасив.
| индекс | Поле | Описание | Мерна единица |
|---|---|---|---|
| 1 | Напрежение | фазово напрежение | V |
| 2 | Текущ | фазов ток | А |
| 3 | Мощност | Активна мощност | У |
| 4 | Напредна енергия | Вносна енергия | kWh |
| 5 | Обратна енергия | Изнесена енергия | kWh |
| 6 | Честота | Честота на мрежата | Hz |
| 7 | фактор на мощността | Фазов фактор на мощността | ПФ |
В допълнение към данните за реалната мощност, когаИзмерване на реактивна мощносте активирано, ще видите същоEAраздел, както следва:
„EA“: {
„Реактивен“: [
[-111.0, 0.000, 176.750],
[-113.0, 0.000, 179.110],
[-114.0, 36.120, 144.410]
]
}
Този раздел показвареактивни данни от измервания, което се появява само когатореактивна тестова функцияе активирано (вижте екранната снимка по-долу).

Всеки масив представлява трите фази (A, B, C), показвайкиреактивна мощност (Q в kVar)иРеактивна енергия (kVARh).
Q (kVar):Реактивна мощност — положителна = индуктивна, отрицателна = капацитивнаkVARh:Реактивна енергия — всяка фаза включва две kVARh стойности: една заиндуктивен товари един закапацитивен товар.
5. Пример на Python: Абониране за данни в реално време
По-долу е показан работещ Python скрипт, използващпахо-мкттбиблиотека.
импортиране на paho.mqtt.client като mqtt
импортиране на json
# Конфигурация на MQTT брокер
MQTT_BROKER = „mqtt.iammeter.com“
MQTT_PORT = 1883
MQTT_USER = „вашето_потребителско_име_за_mqtt“ # Зададено в IAMMETER Cloud → Настройки на MQTT
MQTT_PASS = „вашата_парола_за_mqtt“
TOPIC = „устройство/DA2BED94/реално време“ # Заменете със собствения си сериен номер на устройството
# Обратно извикване при свързване с брокера
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("✅ Успешно свързване с IAMMETER MQTT брокер")
client.subscribe(TOPIC)
print(f"📡 Абониране за тема: {TOPIC}")
else:
print(f"❌ Връзката е неуспешна с код {rc}")
# Обратно извикване при получаване на съобщение
def on_message(client, userdata, msg):
payload = json.loads(msg.payload.decode())
print("📊 Получени данни в реално време:")
print(json.dumps(payload, indent=2, ensure_ascii=False))
# Инициализиране на MQTT клиента
client = mqtt.Client()
client.username_pw_set(MQTT_USER, MQTT_PASS)
client.on_connect = on_connect
client.on_message = on_message
# Свързване с брокера и стартиране на цикъла
client.connect(MQTT_BROKER, MQTT_PORT, 60)
client.loop_forever()
6. Пример с Node.js
Препоръчваме ви да опитате този интересен проект с отворен код: Той използваNode.jsда се абонирате за данни в реално време от брокера IAMMETER MQTT и да ги визуализирате вуеб потребителски интерфейс, създавайки страхотно табло за управление в реално време.
🔗 https://github.com/lewei50/iammeterJS
7. Практически случаи на употреба
- Умна домашна автоматизацияИнтегрирайте данни за мощността в реално време вДомашен асистентилиВъзел-ЧЕРВЕНза задействане на автоматизирани действия (напр. стартиране на отоплител, когато производството на слънчева енергия е високо).
- Визуализация на локални данниСъхранявайте входящите MQTT данни вInfluxDBи го визуализирайте сТабла за управление на Grafana.
- Частен облак или периферни изчисленияИзвличайте данни за мощността в реално време директно чрез MQTT за персонализирани анализи или управляваща логика, без да разчитате на IAMMETER Cloud.
8. Отстраняване на неизправности
| Проблем | Възможна причина / Решение |
|---|---|
| Не мога да се свържа с брокера | Проверете дали вашето MQTT потребителско име/парола са правилно зададени в IAMMETER Cloud. |
| Няма получени данни | Проверете формата на темата си (устройство/{SN}/реално време) и се уверете, че измервателният уред е онлайн. |
| Закъснение на данните | Проверете стабилността на мрежата си или силата на Wi-Fi сигнала. |
| Няколко метра | Можете да се абонирате за няколко теми едновременно (по една на SN). |
9. Заключение
ИзползванеIAMMETER MQTT брокер, можете лесно да получите достъппотоци от енергийни данни в реално времеот вашите IAMMETER устройства. Това е мощен и гъвкав метод за изгражданелокални табла за управление, интелигентни автоматизации или системи за енергийна оптимизация, базирани на изкуствен интелект.
📘 Препратки
- Фърмуер и комуникационни функции на IAMMETER
- Документация за IAMMETER Cloud и MQTT API
- Разработете свой собствен табло за мониторинг на енергията, използвайки NodeJS
Искате ли да направяВерсия на публикацията в блога, форматирана в Markdown(готово за публикуване в официалния блог на IAMMETER, с оцветяване на синтаксиса и вградени връзки към изображения)?
