К сожалению, ваш браузер не поддерживает JavaScript!

Подписка на данные об энергии в режиме реального времени через брокер MQTT (издание 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. Вам необходимосоздайте специальное имя пользователя и пароль MQTTна панели управления IAMMETER Cloud.

Настройте счетчик IAMMETER для использования режима MQTT

Настройте свой измеритель IAMMETER наРежим загрузки MQTT(видетьруководство по настройке прошивки) и введите параметры брокера IAMMETER MQTT.

Переведите счетчик в режим загрузки MQTT и настройте параметры брокера IAMMETER MQTT.


3. Формат темы MQTT

Каждое устройство IAMMETER публикует свои данные в реальном времени по следующей теме:

устройство/{SN}/в реальном времени

Где{СН}— это серийный номер вашего счётчика. Например, если серийный номер вашего устройстваDA2BED94, тема будет:

устройство/DA2BED94/в реальном времени

Вы можете подписаться на эту тему, чтобы получать непрерывные данные измерений в режиме реального времени.


4. Формат данных

4.1 Формат данных однофазного счетчика

Однофазный счетчик IAMMETER публикует данные в реальном времени в формате JSON следующим образом:

{
«Метод»: «1-272»,
«Mac»: «B0F8932A295C»,
«Версия»: «i.91.062T6»,
«Сервер»: «em»,
«Серийный номер»: «DA2BED94»,
«Данные»: [227.02, 1.81, 296.0, 21699.98, 0.00, 50.01, 0.72]
}
показатель Поле Описание Единица измерения
1 Напряжение Текущее линейное напряжение V
2 Текущий Ток линии тока А
3 Сила Активная мощность W
4 Вперед Энергия Импортированная энергия (потребленная) кВтч
5 Обратная энергия Экспортируемая энергия (поставляемая, солнечная) кВтч
6 Частота Частота сети Гц
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]
]
}

Данныеэто список, содержащийтри массива, каждый из которых соответствуетфазы A, B и C. Каждый внутренний массив имеет ту же структуру, что и однофазный.Данныемножество.

показатель Поле Описание Единица измерения
1 Напряжение фазное напряжение V
2 Текущий фазный ток А
3 Сила Активная мощность W
4 Вперед Энергия Импортируемая энергия кВтч
5 Обратная энергия Экспорт энергии кВтч
6 Частота Частота сети Гц
7 фактор силы Коэффициент мощности фазы ПФ

В дополнение к данным о реальной мощности, когдаИзмерение реактивной мощностивключен, вы также увидитеЭАраздел следующим образом:

«ЭА»: {
«Реактивный»: [
[-111,0, 0,000, 176,750],
[-113,0, 0,000, 179,110],
[-114,0, 36,120, 144,410]
]
}

В этом разделе показаноданные реактивных измерений, который появляется только тогда, когдареактивная тестовая функциявключен (см. скриншот ниже).

Включить реактивное измерение в счетчике

Каждый массив представляет три фазы (A, B, C), показываяреактивная мощность (Q в кВар)иРеактивная энергия (кварч).

Q (кВар):Реактивная мощность — положительная = индуктивная, отрицательная = емкостнаякВАР·ч:Реактивная энергия — каждая фаза включает два значения кВАР·ч: одно дляиндуктивная нагрузкаи один дляемкостная нагрузка.


5. Пример Python: подписка на данные в реальном времени

Ниже представлен рабочий скрипт Python, использующийpaho-mqttбиблиотека.

импорт paho.mqtt.client как mqtt
импорт json

# Конфигурация брокера MQTT
MQTT_BROKER = "mqtt.iammeter.com"
MQTT_PORT = 1883
MQTT_USER = "your_mqtt_username" # Задано в IAMMETER Cloud → Настройки MQTT
MQTT_PASS = "your_mqtt_password"
TOPIC = "device/DA2BED94/realtime" # Замените серийным номером вашего устройства

# Обратный вызов при подключении к брокеру
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.

8. Устранение неполадок

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

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

С использованиемБрокер IAMMETER MQTT, вы можете легко получить доступпотоки данных об энергии в реальном временис ваших устройств IAMMETER. Это мощный и гибкий метод созданиялокальные панели управления, интеллектуальная автоматика или системы оптимизации энергопотребления на основе искусственного интеллекта.


📘 Рекомендации


Хотите, чтобы я сделалВерсия блог-поста в формате Markdown(готово к публикации в официальном блоге IAMMETER, с подсветкой синтаксиса и встроенными ссылками на изображения)?

верхний