Đăng ký dữ liệu năng lượng thời gian thực thông qua MQTT Broker (Phiên bản 2025)
1. Giới thiệu
IAMMETER-đám mâylà một nền tảng giám sát năng lượng và quản lý quang điện chuyên nghiệp. Ngoài các chức năng báo cáo và hiển thị mạnh mẽ, IAMMETER-Cloud còn cung cấp giao diện dữ liệu linh hoạt. Điều này cho phép người dùng có yêu cầu tùy chỉnh sử dụng IAMMETER-Cloud như mộtphần mềm trung gian dữ liệu, truy xuất dữ liệu theo chương trình thông qua mã.
Có hai cách chính để lấy dữ liệu từ IAMMETER-Cloud bằng mã:
- Đăng ký dữ liệu quaNhà môi giới MQTT của IAMMETER(trọng tâm của bài viết này)
- Gọi cho IAMMETER-Cloud chính thứcAPI
Hướng dẫn này giải thích cách đăng ký các chủ đề IAMMETER MQTT, diễn giải cấu trúc dữ liệu (cho cả đồng hồ đo một pha và ba pha) và triển khai các ví dụ Python và Node.js hoạt động.
2. Tổng quan về IAMMETER MQTT Broker
Ghi chú:IAMMETER MQTT Broker ban đầu được thiết kế như mộtdịch vụ phát triển và thử nghiệmđể thuận tiện và không phải là một phần của dịch vụ IAMMETER-Cloud tiêu chuẩn (mặc dù dịch vụ này đã hoạt động ổn định trong hơn 5 năm). Đối với các triển khai sản xuất hoặc quy mô lớn, chúng tôi khuyên bạn nên thiết lậpnhà môi giới MQTT riêng.
Cấu hình môi giới IAMMETER MQTT
| tham số | Sự mô tả |
|---|---|
| Địa chỉ môi giới | mqtt.iammeter.com |
| Cảng | 1883(không phải SSL) |
| Tên người dùng / Mật khẩu | Phải được tạo trongIAMMETER Cloud → Cài đặt → Cài đặt MQTT![]() |
| Định dạng chủ đề | thiết bị/{SN}/thời gian thực |
| Định dạng tải trọng | JSON |
⚠️ Quan trọng:LÀMkhôngsử dụng thông tin đăng nhập IAMMETER Cloud của bạn tại đây. Bạn cầntạo tên người dùng và mật khẩu MQTT chuyên dụngtrong bảng điều khiển IAMMETER Cloud.
Cấu hình Đồng hồ đo IAMMETER để sử dụng Chế độ MQTT
Đặt đồng hồ đo IAMMETER của bạn thànhChế độ tải lên MQTT(nhìn thấyhướng dẫn cấu hình phần mềm) và nhập các tham số IAMMETER MQTT Broker.

3. Định dạng chủ đề MQTT
Mỗi thiết bị IAMMETER đều công bố dữ liệu thời gian thực theo chủ đề sau:
thiết bị/{SN}/thời gian thực
Ở đâu{SN}là số sê-ri của đồng hồ đo của bạn.
Ví dụ: nếu thiết bị của bạn là SNDA2BED94, chủ đề sẽ là:
thiết bị/DA2BED94/thời gian thực
Bạn có thể đăng ký chủ đề này để nhận dữ liệu đo lường liên tục theo thời gian thực.
4. Định dạng dữ liệu
4.1 Định dạng dữ liệu đồng hồ đo một pha
Đồng hồ đo IAMMETER một pha xuất bản dữ liệu thời gian thực theo định dạng JSON như sau:
{
"phương thức": "1-272",
"mac": "B0F8932A295C",
"phiên bản": "i.91.062T6",
"máy chủ": "em",
"SN": "DA2BED94",
"Dữ liệu": [227.02, 1.81, 296.0, 21699.98, 0.00, 50.01, 0.72]
}
| mục lục | Cánh đồng | Sự mô tả | Đơn vị |
|---|---|---|---|
| 1 | Điện áp | Điện áp dòng hiện tại | V |
| 2 | Hiện hành | Dòng điện hiện tại | Một |
| 3 | Quyền lực | Công suất hoạt động | W |
| 4 | Năng lượng chuyển tiếp | Năng lượng nhập khẩu (tiêu thụ) | kWh |
| 5 | Năng lượng ngược | Năng lượng xuất khẩu (nạp vào, năng lượng mặt trời) | kWh |
| 6 | Tính thường xuyên | Tần số lưới | Tần số |
| 7 | hệ số công suất | Hệ số công suất hiện tại | PF |
🟢 Ghi chú:
- Công suất dương → tiêu thụ năng lượng
- Công suất âm → xuất khẩu năng lượng (ví dụ: năng lượng mặt trời)
4.2 Định dạng dữ liệu đồng hồ đo ba pha (WEM3080T / WEM3046T / WEM3050T)
Đồng hồ đo ba pha IAMMETER xuất bản dữ liệu theo định dạng JSON tương tự, với ba mảng tương ứng với mỗi pha.
{
"phương thức": "4-9",
"mac": "849DC2CEC625",
"phiên bản": "i.91.062T6",
"máy chủ": "em",
"SN": "CB0A0CFB",
"EA": {
"Phản ứng": [
[-111.0, 0.000, 176.750],
[-113.0, 0.000, 179.110],
[-114.0, 36.120, 144.410]
]
},
"Dữ liệu": [
[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]
]
}
Dữ liệulà một danh sách chứaba mảng, mỗi cái tương ứng vớigiai đoạn A, B và C.
Mỗi mảng bên trong có cấu trúc giống như mảng một phaDữ liệumảng.
| mục lục | Cánh đồng | Sự mô tả | Đơn vị |
|---|---|---|---|
| 1 | Điện áp | điện áp pha | V |
| 2 | Hiện hành | dòng điện pha | Một |
| 3 | Quyền lực | Công suất hoạt động | W |
| 4 | Năng lượng chuyển tiếp | Năng lượng nhập khẩu | kWh |
| 5 | Năng lượng ngược | Năng lượng xuất khẩu | kWh |
| 6 | Tính thường xuyên | Tần số lưới | Tần số |
| 7 | hệ số công suất | Hệ số công suất pha | PF |
Ngoài dữ liệu công suất thực, khiĐo công suất phản khángđược bật, bạn cũng sẽ thấyEAphần như sau:
"EA": {
"Phản ứng": [
[-111,0, 0,000, 176,750],
[-113,0, 0,000, 179,110],
[-114,0, 36,120, 144,410]
]
}
Phần này hiển thịdữ liệu đo lường phản ứng, chỉ xuất hiện khichức năng kiểm tra phản ứngđược bật (xem ảnh chụp màn hình bên dưới).

Mỗi mảng đại diện cho ba pha (A, B, C), cho thấycông suất phản kháng (Q tính bằng kVar)vàNăng lượng phản ứng (kVARh).
Q (kVar):Công suất phản kháng — dương = cảm ứng, âm = dung khángkVARh:Năng lượng phản ứng — mỗi pha bao gồm hai giá trị kVARh: một chotải quy nạpvà một chotải điện dung.
5. Ví dụ về Python: Đăng ký dữ liệu thời gian thực
Dưới đây là một tập lệnh Python đang hoạt động sử dụngpaho-mqttthư viện.
import paho.mqtt.client as mqtt
import json
# Cấu hình MQTT Broker
MQTT_BROKER = "mqtt.iammeter.com"
MQTT_PORT = 1883
MQTT_USER = "your_mqtt_username" # Thiết lập trong IAMMETER Cloud → Cài đặt MQTT
MQTT_PASS = "your_mqtt_password"
TOPIC = "device/DA2BED94/realtime" # Thay thế bằng mã số định danh thiết bị của bạn
# Gọi lại khi kết nối với broker
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("✅ Đã kết nối thành công với IAMMETER MQTT Broker")
client.subscribe(TOPIC)
print(f"📡 Đã đăng ký chủ đề: {TOPIC}")
else:
print(f"❌ Kết nối không thành công với mã {rc}")
# Gọi lại khi nhận được tin nhắn
def on_message(client, userdata, msg):
payload = json.loads(msg.payload.decode())
print("📊 Đã nhận dữ liệu thời gian thực:")
print(json.dumps(payload, indent=2, ensure_ascii=False))
# Khởi tạo client MQTT
client = mqtt.Client()
client.username_pw_set(MQTT_USER, MQTT_PASS)
client.on_connect = on_connect
client.on_message = on_message
# Kết nối với broker và bắt đầu vòng lặp
client.connect(MQTT_BROKER, MQTT_PORT, 60)
client.loop_forever()
6. Ví dụ về Node.js
Chúng tôi khuyên bạn nên thử dự án mã nguồn mở thú vị này: Nó sử dụngNode.jsđể đăng ký dữ liệu thời gian thực từ nhà môi giới IAMMETER MQTT và trực quan hóa nó tronggiao diện web, tạo ra bảng thông tin thời gian thực thú vị.
🔗 https://github.com/lewei50/iammeterJS
7. Các trường hợp sử dụng thực tế
- Tự động hóa nhà thông minhTích hợp dữ liệu điện năng thời gian thực vàoTrợ lý tại nhàhoặcNode-REDđể kích hoạt các hành động tự động hóa (ví dụ: khởi động lò sưởi khi lượng điện mặt trời tạo ra cao).
- Hình ảnh hóa dữ liệu cục bộLưu trữ dữ liệu MQTT đến trongInfluxDBvà hình dung nó vớiBảng điều khiển Grafana.
- Đám mây riêng hoặc điện toán biênTruy xuất dữ liệu điện năng theo thời gian thực trực tiếp qua MQTT để phân tích tùy chỉnh hoặc logic điều khiển mà không cần dựa vào IAMMETER Cloud.
8. Xử lý sự cố
| Vấn đề | Nguyên nhân có thể / Giải pháp |
|---|---|
| Không thể kết nối với nhà môi giới | Kiểm tra xem tên người dùng/mật khẩu MQTT của bạn đã được thiết lập chính xác trong IAMMETER Cloud chưa. |
| Không nhận được dữ liệu | Xác minh định dạng chủ đề của bạn (thiết bị/{SN}/thời gian thực) và đảm bảo đồng hồ đang hoạt động. |
| Độ trễ dữ liệu | Kiểm tra độ ổn định của mạng hoặc cường độ tín hiệu Wi-Fi. |
| Nhiều mét | Bạn có thể đăng ký nhiều chủ đề cùng lúc (một chủ đề cho mỗi SN). |
9. Kết luận
Sử dụngMôi giới IAMMETER MQTT, bạn có thể dễ dàng truy cậpluồng dữ liệu năng lượng thời gian thựctừ các thiết bị IAMMETER của bạn. Đây là một phương pháp mạnh mẽ và linh hoạt để xây dựngbảng điều khiển cục bộ, tự động hóa thông minh hoặc hệ thống tối ưu hóa năng lượng dựa trên AI.
📘 Người giới thiệu
- Phần mềm IAMMETER & Tính năng giao tiếp
- Tài liệu về IAMMETER Cloud và API MQTT
- Phát triển Bảng điều khiển giám sát năng lượng của riêng bạn bằng NodeJS
Bạn có muốn tôi làm mộtPhiên bản bài đăng trên blog được định dạng Markdown(sẵn sàng để xuất bản trên blog chính thức của IAMMETER, với cú pháp tô sáng và liên kết hình ảnh nhúng còn nguyên vẹn)?
