Подписка на данные об энергии в режиме реального времени через брокер 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![]() |
| Формат темы | устройство/{SN}/в реальном времени |
| Формат полезной нагрузки | JSON |
⚠️ Важный:ДелатьнетИспользуйте здесь свои учетные данные для входа в облако IAMMETER. Вам необходимосоздайте специальное имя пользователя и пароль MQTTна панели управления IAMMETER Cloud.
Настройте счетчик IAMMETER для использования режима MQTT
Настройте свой измеритель IAMMETER наРежим загрузки 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. Практические примеры использования
- Умная домашняя автоматизацияИнтегрируйте данные о мощности в режиме реального времениДомашний помощникилиУзел-КРАСНЫЙдля запуска действий автоматизации (например, включение обогревателя при высокой выработке солнечной энергии).
- Визуализация локальных данныхСохраняйте входящие данные MQTT вInfluxDBи визуализируйте это с помощьюПанели инструментов Grafana.
- Частное облако или периферийные вычисленияПолучайте данные об энергопотреблении в режиме реального времени напрямую через MQTT для пользовательской аналитики или логики управления, не полагаясь на облако IAMMETER.
8. Устранение неполадок
| Проблема | Возможная причина/решение |
|---|---|
| Невозможно подключиться к брокеру | Проверьте правильность настройки имени пользователя и пароля MQTT в облаке IAMMETER. |
| Данные не получены. | Проверьте формат вашей темы (устройство/{SN}/в реальном времени) и убедитесь, что счетчик находится в режиме онлайн. |
| Задержка данных | Проверьте стабильность сети и уровень сигнала Wi-Fi. |
| Несколько счетчиков | Вы можете подписаться на несколько тем одновременно (по одной на SN). |
9. Заключение
С использованиемБрокер IAMMETER MQTT, вы можете легко получить доступпотоки данных об энергии в реальном временис ваших устройств IAMMETER. Это мощный и гибкий метод созданиялокальные панели управления, интеллектуальная автоматика или системы оптимизации энергопотребления на основе искусственного интеллекта.
📘 Рекомендации
- Прошивка и коммуникационные возможности IAMMETER
- Документация по API IAMMETER Cloud и MQTT
- Разработайте собственную панель мониторинга энергопотребления с помощью NodeJS
Хотите, чтобы я сделалВерсия блог-поста в формате Markdown(готово к публикации в официальном блоге IAMMETER, с подсветкой синтаксиса и встроенными ссылками на изображения)?
