ARTICLE

OpenDTU สำหรับ Hoymiles: Local Monitoring, MQTT และ Home Assistant โดยไม่พึ่ง Cloud.

คู่มือภาพรวม OpenDTU สำหรับ Hoymiles โดยแยก HM/HMS/HMT, RF module ที่ใช้, Local Web UI, MQTT, Home Assistant Auto Discovery และข้อจำกัดที่ต้องตรวจตามรุ่น/Serial

SolarIoTโดย Thospaakเผยแพร่ 10 ก.พ. 2568อัปเดต 15 ต.ค. 2569

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 โดยอัตโนมัติ