การสมัครรับข้อมูลพลังงานแบบเรียลไทม์ผ่าน MQTT Broker (ฉบับปี 2025)
1. บทนำ
IAMMETER-Cloud เป็นแพลตฟอร์มการตรวจสอบพลังงานและการจัดการระบบไฟฟ้าโซลาร์เซลล์ระดับมืออาชีพ นอกเหนือจากฟังก์ชันการแสดงภาพและรายงานที่มีประสิทธิภาพแล้ว IAMMETER-Cloud ยังมีอินเทอร์เฟซข้อมูลที่ยืดหยุ่น ซึ่งช่วยให้ผู้ใช้ที่มีความต้องการเฉพาะสามารถใช้ IAMMETER-Cloud เป็น ตัวกลางข้อมูล (data middleware) โดยดึงข้อมูลผ่านโค้ดตามโปรแกรม
มีสองวิธีหลักในการรับข้อมูลจาก IAMMETER-Cloud โดยใช้โค้ด:
- สมัครรับข้อมูลผ่าน IAMMETER MQTT Broker (จุดเน้นของบทความนี้)
- เรียกใช้ APIs อย่างเป็นทางการของ IAMMETER-Cloud
คำแนะนำนี้อธิบายวิธีการสมัครหัวข้อ IAMMETER MQTT ตีความโครงสร้างข้อมูล (สำหรับทั้งมิเตอร์เฟสเดียวและสามเฟส) และสร้างตัวอย่างการทำงานด้วย Python และ Node.js
2. ภาพรวมของ IAMMETER MQTT Broker
หมายเหตุ: IAMMETER MQTT Broker ถูกออกแบบมาเป็น บริการสำหรับการพัฒนาและทดสอบ เพื่อความสะดวก และไม่ใช่ส่วนหนึ่งของบริการมาตรฐาน IAMMETER-Cloud (แม้ว่าจะทำงานได้อย่างเสถียรมานานกว่า 5 ปีแล้ว) สำหรับการปรับใช้ในระดับผลิตหรือขนาดใหญ่ เราขอแนะนำให้ตั้งค่า MQTT broker ของคุณเอง
การกำหนดค่า IAMMETER MQTT Broker
| พารามิเตอร์ | คำอธิบาย |
|---|---|
| ที่อยู่ Broker | mqtt.iammeter.com |
| พอร์ต | 1883 (ไม่ใช้ SSL) |
| ชื่อผู้ใช้ / รหัสผ่าน | ต้องสร้างใน IAMMETER Cloud → Settings → MQTT Settings![]() |
| รูปแบบหัวข้อ | device/{SN}/realtime |
| รูปแบบข้อมูล | JSON |
⚠️ สำคัญ: อย่าใช้ข้อมูลเข้าสู่ระบบ IAMMETER Cloud ของคุณที่นี่ คุณต้อง สร้างชื่อผู้ใช้และรหัสผ่าน MQTT โดยเฉพาะ ในแดชบอร์ด IAMMETER Cloud
การกำหนดค่ามิเตอร์ IAMMETER ให้ใช้โหมด MQTT
ตั้งค่ามิเตอร์ IAMMETER ของคุณเป็น โหมดอัปโหลด MQTT (ดูคู่มือการกำหนดค่าเฟิร์มแวร์) และป้อนพารามิเตอร์ IAMMETER MQTT Broker

3. รูปแบบหัวข้อ MQTT
อุปกรณ์ IAMMETER แต่ละเครื่องจะเผยแพร่ข้อมูลแบบเรียลไทม์ภายใต้หัวข้อต่อไปนี้:
device/{SN}/realtime
โดยที่ {SN} คือหมายเลขซีเรียลของมิเตอร์ของคุณ
ตัวอย่างเช่น หาก SN ของอุปกรณ์คือ DA2BED94 หัวข้อจะเป็น:
device/DA2BED94/realtime
คุณสามารถสมัครรับหัวข้อนี้เพื่อรับข้อมูลการวัดแบบเรียลไทม์อย่างต่อเนื่อง
4. รูปแบบข้อมูล
4.1 รูปแบบข้อมูลมิเตอร์เฟสเดียว
มิเตอร์ IAMMETER แบบเฟสเดียวจะเผยแพร่ข้อมูลแบบเรียลไทม์ในรูปแบบ JSON ดังนี้:
{
"method": "1-272",
"mac": "B0F8932A295C",
"version": "i.91.062T6",
"server": "em",
"SN": "DA2BED94",
"Data": [227.02, 1.81, 296.0, 21699.98, 0.00, 50.01, 0.72]
}
| ดัชนี | ฟิลด์ | คำอธิบาย | หน่วย |
|---|---|---|---|
| 1 | Voltage | แรงดันไฟฟ้าปัจจุบัน | V |
| 2 | Current | กระแสไฟฟ้าปัจจุบัน | A |
| 3 | Power | กำลังงานจริง | W |
| 4 | Forward Energy | พลังงานที่นำเข้า (ที่ใช้ไป) | kWh |
| 5 | Reverse Energy | พลังงานที่ส่งออก ( feed-in, โซลาร์) | kWh |
| 6 | Frequency | ความถี่กริด | Hz |
| 7 | Power Factor | ตัวประกอบกำลังปัจจุบัน | PF |
🟢 หมายเหตุ:
- ค่า Power เป็นบวก → การใช้พลังงาน
- ค่า Power เป็นลบ → การส่งออกพลังงาน (เช่น การป้อนพลังงานโซลาร์)
4.2 รูปแบบข้อมูลมิเตอร์สามเฟส (WEM3080T / WEM3046T / WEM3050T)
มิเตอร์ IAMMETER แบบสามเฟสจะเผยแพร่ข้อมูลในรูปแบบ JSON ที่คล้ายกัน โดยมีสามอาร์เรย์ที่สอดคล้องกับแต่ละเฟส
{
"method": "4-9",
"mac": "849DC2CEC625",
"version": "i.91.062T6",
"server": "em",
"SN": "CB0A0CFB",
"EA": {
"Reactive": [
[-111.0, 0.000, 176.750],
[-113.0, 0.000, 179.110],
[-114.0, 36.120, 144.410]
]
},
"Datas": [
[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]
]
}
Datas คือรายการที่ประกอบด้วย สามอาร์เรย์ แต่ละอาร์เรย์สอดคล้องกับ เฟส A, B และ C
อาร์เรย์ภายในแต่ละอันมีโครงสร้างเดียวกับอาร์เรย์ Data ของเฟสเดียว
| ดัชนี | ฟิลด์ | คำอธิบาย | หน่วย |
|---|---|---|---|
| 1 | Voltage | แรงดันเฟส | V |
| 2 | Current | กระแสเฟส | A |
| 3 | Power | กำลังงานจริง | W |
| 4 | Forward Energy | พลังงานที่นำเข้า | kWh |
| 5 | Reverse Energy | พลังงานที่ส่งออก | kWh |
| 6 | Frequency | ความถี่กริด | Hz |
| 7 | Power Factor | ตัวประกอบกำลังเฟส | PF |
นอกจากข้อมูลกำลังงานจริงแล้ว เมื่อเปิดใช้งาน การวัดกำลังงานรีแอกทีฟ คุณจะเห็นส่วน EA ดังนี้:
"EA": {
"Reactive": [
[-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
import paho.mqtt.client as mqtt
import json
# MQTT Broker configuration
MQTT_BROKER = "mqtt.iammeter.com"
MQTT_PORT = 1883
MQTT_USER = "your_mqtt_username" # Set in IAMMETER Cloud → MQTT Settings
MQTT_PASS = "your_mqtt_password"
TOPIC = "device/DA2BED94/realtime" # Replace with your own device SN
# Callback when connected to the broker
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("✅ Connected to IAMMETER MQTT Broker successfully")
client.subscribe(TOPIC)
print(f"📡 Subscribed to topic: {TOPIC}")
else:
print(f"❌ Connection failed with code {rc}")
# Callback when a message is received
def on_message(client, userdata, msg):
payload = json.loads(msg.payload.decode())
print("📊 Received real-time data:")
print(json.dumps(payload, indent=2, ensure_ascii=False))
# Initialize MQTT client
client = mqtt.Client()
client.username_pw_set(MQTT_USER, MQTT_PASS)
client.on_connect = on_connect
client.on_message = on_message
# Connect to the broker and start the loop
client.connect(MQTT_BROKER, MQTT_PORT, 60)
client.loop_forever()
6. ตัวอย่าง Node.js
เราขอแนะนำให้ลองโปรเจกต์โอเพนซอร์สที่น่าสนใจนี้: มันใช้ Node.js เพื่อสมัครรับข้อมูลแบบเรียลไทม์จาก IAMMETER MQTT broker และแสดงภาพใน เว็บ UI สร้างแดชบอร์ดแบบเรียลไทม์ที่เจ๋ง
🔗 https://github.com/lewei50/iammeterJS
7. กรณีการใช้งานจริง
- ระบบอัตโนมัติภายในบ้านอัจฉริยะ ผสานรวมข้อมูลพลังงานแบบเรียลไทม์เข้ากับ Home Assistant หรือ Node-RED เพื่อเรียกใช้การดำเนินการอัตโนมัติ (เช่น เปิดเครื่องทำความร้อนเมื่อการผลิตพลังงานโซลาร์สูง)
- การแสดงข้อมูลในเครื่อง จัดเก็บข้อมูล MQTT ที่เข้ามาใน InfluxDB และแสดงภาพด้วย แดชบอร์ด Grafana
- คลาวด์ส่วนตัวหรือการประมวลผลที่ขอบ ดึงข้อมูลพลังงานแบบเรียลไทม์โดยตรงผ่าน MQTT สำหรับการวิเคราะห์หรือตรรกะควบคุมที่กำหนดเองโดยไม่ต้องพึ่งพา IAMMETER Cloud
8. การแก้ไขปัญหา
| ปัญหา | สาเหตุ/วิธีแก้ไขที่เป็นไปได้ |
|---|---|
| ไม่สามารถเชื่อมต่อกับ broker | ตรวจสอบว่าชื่อผู้ใช้/รหัสผ่าน MQTT ของคุณถูกตั้งค่าอย่างถูกต้องใน IAMMETER Cloud |
| ไม่ได้รับข้อมูล | ตรวจสอบรูปแบบหัวข้อของคุณ (device/{SN}/realtime) และตรวจสอบว่ามิเตอร์ออนไลน์อยู่ |
| ข้อมูลล่าช้า | ตรวจสอบความเสถียรของเครือข่ายหรือความแรงของสัญญาณ Wi-Fi ของคุณ |
| มิเตอร์หลายเครื่อง | คุณสามารถสมัครรับหลายหัวข้อพร้อมกันได้ (หนึ่งหัวข้อต่อ SN) |
9. บทสรุป
การใช้ IAMMETER MQTT Broker คุณสามารถเข้าถึง สตรีมข้อมูลพลังงานแบบเรียลไทม์ จากอุปกรณ์ IAMMETER ของคุณได้อย่างง่ายดาย มันเป็นวิธีการที่มีประสิทธิภาพและยืดหยุ่นในการสร้าง แดชบอร์ดในเครื่อง, ระบบอัตโนมัติอัจฉริยะ หรือระบบเพิ่มประสิทธิภาพพลังงานที่ใช้ AI
📘 เอกสารอ้างอิง
- คุณสมบัติเฟิร์มแวร์และการสื่อสารของ IAMMETER
- เอกสาร API IAMMETER Cloud และ MQTT
- พัฒนาแดชบอร์ดตรวจสอบพลังงานของคุณเองด้วย NodeJS
คุณต้องการให้ฉันทำ เวอร์ชันโพสต์บล็อกในรูปแบบ Markdown หรือไม่ (พร้อมที่จะเผยแพร่บนบล็อกทางการของ IAMMETER พร้อมการเน้นไวยากรณ์และลิงก์รูปภาพที่ครบถ้วน)?
