За съжаление вашият браузър не поддържа JavaScript!

Абонамент за енергийни данни в реално време чрез 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 настройкиЕкранна снимка на настройките на MQTT
Формат на темата устройство/{SN}/реално време
Формат на полезния товар JSON

⚠️ Важно:Направинеизползвайте вашите данни за вход в IAMMETER Cloud тук. Трябва дасъздайте специално потребителско име и парола за MQTTв таблото за управление на IAMMETER Cloud.

Конфигурирайте IAMMETER измервателен уред за използване на MQTT режим

Настройте вашия IAMMETER наРежим на качване на MQTT(вижтеръководство за конфигуриране на фърмуера) и въведете параметрите на IAMMETER MQTT брокера.

Задайте режим на качване на MQTT на измервателния уред и конфигурирайте параметрите на IAMMETER MQTT Broker


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. Практически случаи на употреба

  1. Умна домашна автоматизацияИнтегрирайте данни за мощността в реално време вДомашен асистентилиВъзел-ЧЕРВЕНза задействане на автоматизирани действия (напр. стартиране на отоплител, когато производството на слънчева енергия е високо).
  2. Визуализация на локални данниСъхранявайте входящите MQTT данни вInfluxDBи го визуализирайте сТабла за управление на Grafana.
  3. Частен облак или периферни изчисленияИзвличайте данни за мощността в реално време директно чрез MQTT за персонализирани анализи или управляваща логика, без да разчитате на IAMMETER Cloud.

8. Отстраняване на неизправности

Проблем Възможна причина / Решение
Не мога да се свържа с брокера Проверете дали вашето MQTT потребителско име/парола са правилно зададени в IAMMETER Cloud.
Няма получени данни Проверете формата на темата си (устройство/{SN}/реално време) и се уверете, че измервателният уред е онлайн.
Закъснение на данните Проверете стабилността на мрежата си или силата на Wi-Fi сигнала.
Няколко метра Можете да се абонирате за няколко теми едновременно (по една на SN).

9. Заключение

ИзползванеIAMMETER MQTT брокер, можете лесно да получите достъппотоци от енергийни данни в реално времеот вашите IAMMETER устройства. Това е мощен и гъвкав метод за изгражданелокални табла за управление, интелигентни автоматизации или системи за енергийна оптимизация, базирани на изкуствен интелект.


📘 Препратки


Искате ли да направяВерсия на публикацията в блога, форматирана в Markdown(готово за публикуване в официалния блог на IAMMETER, с оцветяване на синтаксиса и вградени връзки към изображения)?

Горна част