OpenDTU สำหรับ Hoymiles: Local Monitoring, MQTT และ Home Assistant โดยไม่พึ่ง Cloud.
คู่มือภาพรวม OpenDTU สำหรับ Hoymiles โดยแยก HM/HMS/HMT, RF module ที่ใช้, Local Web UI, MQTT, Home Assistant Auto Discovery และข้อจำกัดที่ต้องตรวจตามรุ่น/Serial
OpenDTU เป็นโครงการ Open Source สำหรับสื่อสารกับ Microinverter บางรุ่นของ Hoymiles และผู้ผลิตบางราย โดยมีเป้าหมายหลักเป็น Local Monitoring/Control ผ่าน ESP32 แทนการพึ่ง DTU + Cloud ของผู้ผลิตในทุกขั้นตอน
ถ้ายังไม่คุ้นว่า ESP32 เป็น MCU/SoC แบบไหนและต่างจาก Development Board อย่างไร อ่าน ESP32 คืออะไร ก่อน แล้วค่อยกลับมาดู OpenDTU ในฐานะ application จริงของ Embedded + RF + MQTT
เอกสารทางการของโครงการระบุว่า OpenDTU สามารถอ่าน Live data, Event log, Inverter information, ส่งข้อมูลผ่าน MQTT, ใช้ Home Assistant MQTT Auto Discovery และมี Web UI/Prometheus endpoint ได้โดยตรง ส่วนความเข้ากันได้ต้องตรวจตาม รุ่น, Serial prefix และ RF module ที่ใช้จริง
แหล่งหลัก:
OpenDTU ไม่ใช่ S-Miles Cloud bridge
บทความเดิมมีข้อความที่ทำให้เข้าใจว่า OpenDTU รับข้อมูลแล้วส่งต่อเข้า S-Miles Cloud ได้ตามปกติ แต่แนวคิดของโครงการจริงคือเป็นทางเลือกของ DTU/Cloud เดิม โดยอ่านข้อมูลจาก Inverter และเปิด Local interfaces ของตัวเอง
สถาปัตยกรรมที่ควรเข้าใจคือ:
Hoymiles microinverter
↓ RF
OpenDTU / ESP32
├─ Local Web UI
├─ MQTT
├─ Home Assistant
└─ Prometheus / API
ดังนั้นถ้าต้องการ Official Hoymiles cloud workflow ให้ใช้ S-Miles/DTU ตาม ecosystem ของ Hoymiles ส่วน OpenDTU เหมาะกับคนที่ต้องการ Local-first monitoring หรือเชื่อมระบบ Automation ของตัวเอง
รุ่น HM กับ HMS/HMT ใช้ RF คนละแบบ
จุดสำคัญที่บทความเดิมเขียนกว้างเกินไปคือคำว่า “รับสัญญาณ 2.4 GHz”
OpenDTU documentation ระบุชัดว่า:
- HM series ใช้
NRF24L01+ - HMS/HMT series ใช้
CMT2300A
และ CMT2300A configuration ต้องเลือก Region/Country/Frequency ให้เหมาะกับอุปกรณ์และข้อกำหนดท้องถิ่น โดยเอกสารระบุย่าน 865 MHz สำหรับ Europe และ 915 MHz สำหรับ US devices เป็นตัวอย่าง
ดังนั้น Hardware ที่ใช้กับ HM ไม่ควรถูกสมมติว่าใช้แทน HMS/HMT ได้ทันที
รองรับ Hoymiles รุ่นไหน
OpenDTU มี Inverter Overview ที่ระบุ Model และ Serial prefix ที่รองรับ เช่นกลุ่ม:
- HM-300/350/400/600/700/800/1000/1200/1500
- HMS หลายรุ่นตั้งแต่ 1T, 2T, 4T
- HMT หลายรุ่นทั้ง 4T และ 6T
แต่ให้ยึดหน้า Compatibility ปัจจุบันเป็นหลัก เพราะ Firmware support เปลี่ยนได้
ข้อควรระวังสำคัญจากเอกสารปัจจุบันคือ Hoymiles รุ่นที่มี Integrated Wi-Fi ซึ่งมี W ในชื่อ เช่น HMS-xxxW ไม่รองรับ OpenDTU
อุปกรณ์พื้นฐาน
OpenDTU รองรับ ESP32 family และ Hardware ขั้นต่ำจะเปลี่ยนตาม Inverter family
ตัวอย่าง:
HM inverter
↓
NRF24L01+
↓
ESP32 + OpenDTU
HMS/HMT inverter
↓
CMT2300A
↓
ESP32 + OpenDTU
OpenDTU Fusion เป็นตัวอย่างบอร์ดที่รวม ESP32-S3 และ RF paths สำหรับทั้ง NRF24 และ CMT2300A ไว้ใน PCB เดียว
Local Monitoring ทำอะไรได้บ้าง
จากเอกสาร OpenDTU ปัจจุบัน ฟังก์ชันที่มี ได้แก่:
- Live inverter data
- Internal event log
- Firmware/hardware information
- Grid profile information
- Inverter power limit
- Inverter on/off command
- MQTT with TLS
- Home Assistant MQTT Auto Discovery
- Web UI
- Prometheus metrics endpoint
อย่างไรก็ตามคำว่า “ทำได้” ไม่ได้แปลว่าทุกรุ่นรองรับทุก command เท่ากัน ควรตรวจ Compatibility และ Firmware version ก่อนใช้ Control feature
เชื่อม Home Assistant ผ่าน MQTT
สำหรับ Home Assistant แนวทางที่ง่ายคือ:
Hoymiles
↓
OpenDTU
↓ MQTT
MQTT Broker
↓
Home Assistant
OpenDTU มี MQTT และ Home Assistant Auto Discovery อยู่แล้ว จึงไม่จำเป็นต้องเขียน Parser protocol ของ Hoymiles ใหม่เองสำหรับ use case ทั่วไป
ถ้าระบบ Monitoring เป็นของจริง ควรแยก:
- Telemetry topics
- Availability
- Retain policy
- Broker authentication/TLS
- Control topics
และอย่าเปิด MQTT/Management UI ออก Internet โดยตรงโดยไม่มี Access control
สำหรับระบบที่เก็บข้อมูลระยะยาว ควรกำหนด data contract เพิ่ม เช่น inverter id, metric, value+unit, measurement_time, availability, quality และ source gateway เพื่อให้ Home Assistant, Database และ Grafana อ่านความหมายเดียวกัน
Retained message ต้องใช้อย่างระวังกับ telemetry เพราะค่าที่ถูก retain อาจถูก consumer ใหม่ตีความเป็นค่าปัจจุบันทั้งที่เก่าแล้ว จึงควรส่ง timestamp/availability และมี stale timeout ฝั่ง consumer ส่วน command topic ควรแยก permission จาก telemetry และหลีกเลี่ยง retained command ที่อาจถูก replay หลัง reconnect
อ่านความต่างของ messaging กับ API ต่อที่ MQTT vs HTTP/API
ใช้ DTU สองตัวอ่าน Inverter เดียวกันพร้อมกันได้ไหม
OpenDTU documentation เตือนว่า หนึ่ง Inverter ควรมี DTU เดียวที่สื่อสารกับมัน และการพยายาม query Inverter เดียวด้วยหลาย DTU อาจเกิดพฤติกรรมที่คาดเดาไม่ได้
ถ้ามี DTU ของ Hoymiles ทำงานอยู่แล้วและต้องการทดลอง OpenDTU ควรวางแผนให้ชัดว่าอุปกรณ์ใดเป็นตัวสื่อสารหลัก ไม่ควรถือว่าเปิดทั้งสองพร้อมกันแล้วจะไม่มีผลกระทบ
เรื่อง Region/Frequency สำคัญกว่าการซื้อ RF module ให้ตรงชื่อ
ใน HMS/HMT OpenDTU มี Region/Country setting สำหรับ CMT2300A และ documentation ระบุให้ผู้ใช้ตรวจข้อกำหนดการส่ง RF ในพื้นที่ด้วย
ดังนั้นอย่าคัดลอก Frequency หรือ Transmit power จาก tutorial ต่างประเทศมาใช้แบบตายตัว ต้องตรวจ:
- Inverter region
- Hardware RF module
- Local radio regulation
- Antenna/coverage
- Power supply quality
OpenDTU เหมาะกับใคร
เหมาะกับงานที่ต้องการ:
- Local monitoring
- Home Assistant integration
- MQTT/Prometheus
- ไม่ให้ Cloud เป็น dependency หลักของ Dashboard
- Lab/Reverse engineering/Automation
แต่ถ้าต้องการ Warranty/support workflow ของผู้ผลิต, Installer commissioning หรือ Official cloud feature บางอย่าง Official Hoymiles DTU/S-Miles อาจยังเหมาะกว่า
สรุป
OpenDTU เป็นสะพานที่ดีระหว่าง Solar Monitoring กับ IoT/Home Assistant แต่ต้องเริ่มจาก รุ่น Inverter + Serial prefix + RF hardware ที่ถูกต้อง
จุดที่ต้องแก้จากความเข้าใจเดิมมีสองข้อใหญ่: HMS/HMT ไม่ได้ใช้ RF แบบเดียวกับ HM และ OpenDTU ควรถูกมองเป็น Local/Open-source monitoring stack ไม่ใช่ S-Miles Cloud gateway โดยอัตโนมัติ

