คู่มือการตั้งค่า Home Assistant Modbus TCP Energy Meter
คู่มือการตั้งค่า Home Assistant Modbus TCP Energy Meter
Modbus TCP เป็นหนึ่งในวิธีที่เร็วที่สุดในการเชื่อมต่อมิเตอร์พลังงานเข้ากับ Home Assistant มันทำงานผ่านเครือข่ายภายใน ไม่ขึ้นอยู่กับการเชื่อมต่ออินเทอร์เน็ต และเหมาะสำหรับการตรวจสอบพลังงานแบบเรียลไทม์ ระบบอัตโนมัติสำหรับพลังงานแสงอาทิตย์ส่วนเกิน การควบคุมโหลด และ Home Assistant Energy Dashboard
มิเตอร์พลังงาน IAMMETER ปัจจุบันทั้งหมดรองรับ Modbus TCP คุณสามารถรวมเข้ากับ Home Assistant ได้สองวิธี:
- IAMMETER HACS Modbus integration — การกำหนดค่าผ่าน UI สร้าง entities โดยอัตโนมัติ และตั้งค่าช่วงเวลาการสแกนได้
- Home Assistant built-in Modbus integration — การกำหนดค่าแบบ YAML ควบคุม registers และ sensors ได้โดยตรง
คู่มือนี้อธิบายความแตกต่างและช่วยคุณเลือกวิธีการที่เหมาะสม
HACS Modbus หรือ built-in Home Assistant Modbus?
ทั้งสองวิธีอ่านข้อมูล Modbus TCP เดียวกันจากมิเตอร์ ความแตกต่างหลักคือวิธีการกำหนดค่า Home Assistant entities
| คุณสมบัติ | IAMMETER HACS Modbus | Home Assistant built-in Modbus |
|---|---|---|
| การกำหนดค่าฝั่ง HA | UI | YAML |
| การกำหนดค่า Register | สร้างโดย integration | กำหนดด้วยตนเอง |
| ช่วงเวลาการสแกน | กำหนดค่าได้; ค่าเริ่มต้น 3 วินาที | กำหนดค่าได้ต่อ sensor |
| Energy Dashboard metadata | รวมอยู่ใน energy entities ที่รองรับ | ต้องกำหนดค่าใน YAML |
| การค้นหาอัตโนมัติ | SSDP-assisted setup | ไม่มี |
| การทำงานภายในเครือข่าย | ใช่ | ใช่ |
| สามารถใช้ IAMMETER Cloud ต่อเนื่องได้ | ใช่ | ใช่ |
| เหมาะสำหรับ | ผู้ใช้ Home Assistant ทั่วไป | ผู้ใช้ขั้นสูงและ custom registers |
สำหรับผู้ใช้ส่วนใหญ่ HACS Modbus integration เป็นตัวเลือกที่ง่ายกว่า ใช้ Home Assistant built-in Modbus integration เมื่อคุณต้องการกำหนดค่ารายการ register, รูปแบบการตั้งชื่อ entity, กฎการปรับสเกล หรือช่วงเวลา polling สำหรับ sensors แต่ละตัว
หากคุณไม่ต้องการการอัปเดตที่รวดเร็ว ให้เปรียบเทียบทางเลือก HTTP และ MQTT ได้ที่ ภาพรวมการรวมมิเตอร์พลังงานกับ Home Assistant
ก่อนเริ่มต้น
คุณต้องมี:
- มิเตอร์พลังงาน IAMMETER ที่เชื่อมต่อกับ LAN เดียวกับ Home Assistant
- ที่อยู่ IP ของมิเตอร์
- พอร์ต TCP
502ที่สามารถเข้าถึงได้ระหว่าง Home Assistant และมิเตอร์ - เฟิร์มแวร์มิเตอร์รุ่นล่าสุด
- HACS ที่ติดตั้งไว้หากคุณเลือกใช้ IAMMETER HACS integration
แนะนำให้กำหนดที่อยู่ IP คงที่ (reserve) สำหรับมิเตอร์ในเราเตอร์ของคุณ การเปลี่ยนที่อยู่ DHCP เป็นสาเหตุทั่วไปที่ทำให้ Modbus integration ที่ทำงานได้อยู่แล้วใช้งานไม่ได้ในภายหลัง
วิธีที่ 1: กำหนดค่า IAMMETER Modbus ผ่าน HACS
IAMMETER HACS Modbus integration ออกแบบมาสำหรับผู้ใช้ที่ต้องการข้อมูลภายในเครือข่ายที่รวดเร็วโดยไม่ต้องกำหนดค่าแต่ละ register ใน YAML ด้วยตนเอง
ขั้นตอนที่ 1: ติดตั้ง integration
- เปิด HACS ใน Home Assistant
- ค้นหา IamMeter Modbus
- ติดตั้งรุ่นล่าสุด
- รีสตาร์ท Home Assistant หากได้รับแจ้ง
ข้อมูลโปรเจกต์และการอัปเดต:
ใช้รุ่นล่าสุดที่มีให้ การตั้งค่า scan-interval รองรับโดย integration ที่อัปเดตแล้วและถูกส่งต่อไปยัง DataUpdateCoordinator
ขั้นตอนที่ 2: เพิ่มมิเตอร์ใน Home Assistant
- ไปที่ Settings → Devices & services
- เลือก Add integration
- ค้นหา IamMeter Modbus
- ป้อนที่อยู่ IP ของมิเตอร์และพอร์ต Modbus TCP
- เลือกประเภทมิเตอร์หรือการกำหนดค่าเฟสที่เหมาะสม
- ตั้งค่าช่วงเวลาการสแกน หรือคงค่าเริ่มต้นที่ 3 วินาที
- ส่งแบบฟอร์มและยืนยันว่าอุปกรณ์และ entities ถูกสร้างขึ้น
Integration จะสร้าง entities จำนวนที่แตกต่างกันสำหรับมิเตอร์เฟสเดียว, dual-channel และสามเฟส รายการ entities ที่สั้นกว่าไม่ได้หมายความว่ารุ่นเฟสเดียวมีการรองรับ Home Assistant ที่จำกัด
ขั้นตอนที่ 3: ตรวจสอบ entities
เปิดอุปกรณ์ IAMMETER ภายใต้ Settings → Devices & services ขึ้นอยู่กับรุ่น entities ที่มีอาจรวมถึง:
- แรงดันไฟฟ้า (voltage)
- กระแสไฟฟ้า (current)
- กำลังไฟฟ้าจริง (active power)
- ตัวประกอบกำลัง (power factor)
- พลังงานที่นำเข้า (imported energy)
- พลังงานที่ส่งออก (exported energy)
- กำลังไฟฟ้ารีแอคทีฟหรือพลังงานรีแอคทีฟ (reactive power/reactive energy) เมื่อรองรับโดยมิเตอร์และชุด register ที่เกี่ยวข้อง
entities พลังงานที่นำเข้าและส่งออกใช้หน่วย kWh และรวม metadata ที่จำเป็นสำหรับ Energy Dashboard
ขั้นตอนที่ 4: เลือกช่วงเวลาการสแกนที่เหมาะสม
ค่าเริ่มต้นของช่วงเวลาการสแกนคือ 3 วินาที ซึ่งเป็นจุดเริ่มต้นที่เหมาะสมสำหรับแดชบอร์ดแบบเรียลไทม์และระบบอัตโนมัติที่ใช้กำลังไฟฟ้า
จุดเริ่มต้นที่แนะนำ:
| การใช้งาน | ช่วงเวลาการสแกนที่แนะนำ |
|---|---|
| การควบคุมรีเลย์แบบเรียลไทม์หรือโซลาร์ส่วนเกิน | 1–5 วินาที |
| แดชบอร์ดกำลังไฟฟ้าแบบเรียลไทม์ | 3–10 วินาที |
| การตรวจสอบพลังงานทั่วไป | 10–30 วินาที |
การตั้งค่าที่ 1 วินาทีคือคำขอ polling ไม่ใช่การรับประกันว่าแดชบอร์ด Home Assistant ทุกตัวจะรีเฟรชทุกวินาที ความหน่วงของเครือข่าย จำนวน registers โหลดของ recorder และพฤติกรรมการรีเฟรชของ frontend ก็ส่งผลต่อผลลัพธ์เช่นกัน
หลีกเลี่ยงการ polling ที่รุนแรงโดยไม่จำเป็น สำหรับระบบอัตโนมัติส่วนใหญ่ การอัปเดตที่เสถียร 2–5 วินาทีมีประโยชน์มากกว่าช่วงเวลาที่สั้นที่สุดที่เป็นไปได้
วิธีที่ 2: ใช้ Home Assistant built-in Modbus integration
Home Assistant มี Modbus integration มาตรฐาน วิธีนี้ทำงานภายในเครือข่ายทั้งหมดและไม่ต้องใช้ HACS แต่การเชื่อมต่อและ sensors ถูกกำหนดใน YAML
ตัวอย่างต่อไปนี้อ่านแรงดันไฟฟ้าและกำลังไฟฟ้าจริงจากมิเตอร์เฟสเดียว:
modbus:
- name: iammeter_hub
type: tcp
host: 192.168.1.6
port: 502
sensors:
- name: IAMMETER Voltage
slave: 1
address: 0
input_type: holding
data_type: uint16
scale: 0.01
precision: 1
unit_of_measurement: V
device_class: voltage
state_class: measurement
scan_interval: 5
- name: IAMMETER Active Power
slave: 1
address: 2
input_type: holding
data_type: int32
unit_of_measurement: W
device_class: power
state_class: measurement
scan_interval: 5
เปลี่ยน 192.168.1.6 เป็นที่อยู่ IP จริงของมิเตอร์ ตรวจสอบผัง register ที่เกี่ยวข้องก่อนเพิ่ม sensors เพิ่มเติม:
รายการ IAMMETER Modbus registers ทั่วไป
ที่อยู่ต่อไปนี้แสดงบล็อกเฟสมาตรฐานที่ใช้โดยมิเตอร์ IAMMETTER ทั่วไป ควรใช้เอกสาร register ปัจจุบันเป็นข้อมูลอ้างอิงที่เชื่อถือได้เสมอ
| การวัด | เฟส A / เฟสเดียว | เฟส B | เฟส C | ชนิดข้อมูล |
|---|---|---|---|---|
| แรงดันไฟฟ้า (Voltage) | 0 | 10 | 20 | uint16 |
| กระแสไฟฟ้า (Current) | 1 | 11 | 21 | uint16 |
| กำลังไฟฟ้าจริง (Active power) | 2 | 12 | 22 | int32 |
| พลังงานที่นำเข้า (Imported energy) | 4 | 14 | 24 | uint32 |
| พลังงานที่ส่งออก (Exported energy) | 6 | 16 | 26 | uint32 |
ใช้ scale, precision และ word order ที่ระบุสำหรับแต่ละ register อย่าอนุมานการปรับสเกลพลังงานจากตัวอย่างแรงดันไฟฟ้า
หลังจากแก้ไข YAML:
- เรียกใช้การตรวจสอบการกำหนดค่าของ Home Assistant
- รีสตาร์ท Home Assistant
- เปิด Developer tools → States
- ยืนยันว่า entities ใหม่มีค่าที่สมเหตุสมผลและหน่วยที่ถูกต้อง
เพิ่มพลังงานที่นำเข้าและส่งออกไปยัง Energy Dashboard
Home Assistant Energy Dashboard ต้องการ cumulative energy entities ไม่ใช่กำลังไฟฟ้าขณะใดขณะหนึ่ง (instantaneous power)
สำหรับ sensor พลังงาน Modbus ที่กำหนดค่าด้วยตนเอง ให้รวม metadata ที่เหมาะสม:
unit_of_measurement: kWh
device_class: energy
state_class: total_increasing
จากนั้นไปที่ Settings → Dashboards → Energy และเลือก entity พลังงานที่นำเข้าเป็นการใช้ไฟฟ้าจากกริด (grid consumption) และ entity พลังงานที่ส่งออกเป็นการส่งคืนกริด (return to grid)
อย่าเลือก entity กำลังไฟฟ้าจริงที่วัดเป็นวัตต์สำหรับฟิลด์พลังงานใน Energy Dashboard Power แสดงอัตราปัจจุบัน imported/exported kWh จะบันทึกพลังงานสะสม
รุ่น IAMMETER ที่รองรับ
มิเตอร์พลังงาน IAMMETER ปัจจุบันทั้งหมดรองรับทั้ง HACS Modbus และ Home Assistant built-in Modbus integration
| รุ่น | การกำหนดค่ามิเตอร์ | หมายเหตุสำหรับ Home Assistant |
|---|---|---|
| WEM3080 | เฟสเดียว | ชุด entity เฟสเดียว |
| WEM2067 | Dual channel สำหรับการใช้งานเฟสเดียว | ช่องการวัดสองช่อง |
| WEM3080T | สามเฟส | กลุ่ม entity สามเฟส |
| WEM3050T | สามเฟสหรือ split phase | ช่องการวัดสามช่อง |
| WEM3080TD | สามเฟส/สามสายและการเดินสายพิเศษ | ตีความ entities ตามรูปแบบการเดินสาย |
| WEM3046T / WEM3046TE | อินพุต CT ภายนอก 5 A | ใช้อัตราส่วน CT ภายนอก |
WEM3046T และ WEM3046TE วัดเอาต์พุตทุติยภูมิ 5 A ของหม้อแปลงกระแสไฟฟ้าภายนอก เพื่อให้ได้กระแสไฟฟ้า กำลังไฟฟ้า และพลังงานด้านปฐมภูมิที่แท้จริง ต้องใช้อัตราส่วน CT ที่ถูกต้อง นี่คือคุณลักษณะของระบบวัด 5 A CT ไม่ใช่ข้อจำกัดความเข้ากันได้ของ Home Assistant หรือ Modbus
Modbus และ IAMMETER Cloud ทำงานพร้อมกันได้หรือไม่?
ได้ Home Assistant อ่าน Modbus TCP ภายในเครือข่ายในขณะที่มิเตอร์ยังคงอัปโหลดไปยัง IAMMETER Cloud ได้ คุณไม่จำเป็นต้องเปลี่ยนมิเตอร์เป็นโหมดอัปโหลด MQTT เพื่อใช้ Modbus
ซึ่งให้มุมมองเสริมสองแบบ:
- ข้อมูลภายในเครือข่ายที่รวดเร็วและระบบอัตโนมัติใน Home Assistant
- รายงานระยะยาว การวิเคราะห์ค่าไฟฟ้า การวิเคราะห์พลังงานแสงอาทิตย์ และการเข้าถึงระยะไกลใน IAMMETER Cloud
หลีกเลี่ยง Modbus clients ความถี่สูงหลายตัว
ใช้ Modbus TCP polling client ที่ทำงานอยู่หนึ่งตัวต่อมิเตอร์เป็นรูปแบบการติดตั้งที่ปลอดภัย อย่ากำหนดค่า Home Assistant, Node-RED, PLC และ logger อื่นให้ polling มิเตอร์เดียวกันอย่างอิสระที่ความถี่สูง
หากหลายระบบต้องการการวัดสดเดียวกัน ให้ให้ระบบหนึ่งอ่าน Modbus และกระจายข้อมูลต่อ หรือใช้สถาปัตยกรรม MQTT ที่ผู้บริโภคหลายรายสมัครรับข้อมูลจาก broker
การแก้ไขปัญหา
Home Assistant ไม่สามารถเชื่อมต่อกับพอร์ต 502
- ยืนยันว่า Home Assistant และมิเตอร์อยู่ในเครือข่ายที่สามารถเข้าถึงถึงกันได้
- ตรวจสอบที่อยู่ IP ของมิเตอร์และกำหนดที่อยู่คงที่ (reserve) ในเราเตอร์
- ตรวจสอบว่าพอร์ต TCP
502ไม่ถูกบล็อกโดยไฟร์วอลล์หรือกฎ VLAN - ตรวจสอบว่าไม่มี Modbus client อื่นกำลังยึดหรือเปิดการเชื่อมต่อซ้ำๆ
Entities ไม่พร้อมใช้งานหรือค่าไม่เปลี่ยนแปลง
- ยืนยันประเภทมิเตอร์/เฟสที่เลือกใน HACS integration
- สำหรับ YAML ตรวจสอบ slave ID, register address, data type, scale และ word order
- เพิ่มช่วงเวลาการสแกนชั่วคราวเพื่อตัดประเด็นการ polling ที่รุนแรงเกินไป
- รีสตาร์ท integration หลังจากเปลี่ยนที่อยู่ IP ของมิเตอร์
ค่าสูงหรือต่ำเกินไปอย่างไม่สมเหตุสมผล
- ตรวจสอบการปรับสเกล register และ data type
- สำหรับ WEM3046T/WEM3046TE ให้ตรวจสอบอัตราส่วน CT ภายนอก
- ยืนยันว่า entity สอดคล้องกับเฟสหรือช่องการวัดที่คาดหวัง
Entities พลังงานไม่แสดงใน Energy Dashboard
- ใช้ cumulative imported/exported energy ในหน่วย kWh
- ยืนยัน
device_class: energy - ยืนยัน
state_class: total_increasing - อย่าใช้ entity กำลังไฟฟ้าที่วัดเป็นวัตต์
สร้างระบบอัตโนมัติด้วยข้อมูลกำลังไฟฟ้าแบบเรียลไทม์
เมื่อ Modbus entities ทำงานแล้ว Home Assistant สามารถใช้ active power หรือ grid-export power เพื่อควบคุมอุปกรณ์อื่นๆ ตัวอย่างรวมถึง:
- ควบคุมรีเลย์จากข้อมูลกำลังไฟฟ้า Modbus แบบเรียลไทม์
- ชาร์จ EV เมื่อการส่งออกพลังงานแสงอาทิตย์เกินเกณฑ์
- ทำน้ำร้อนด้วยพลังงานแสงอาทิตย์ส่วนเกินที่มีอยู่
- แจ้งเตือนผู้ใช้เมื่อความต้องการใช้ไฟฟ้าในบ้านเกินขีดจำกัด
- ลดโหลดที่ควบคุมได้ก่อนที่จะนำเข้าไฟฟ้าราคาแพงช่วงพีค
ให้มุ่งเน้นที่การสร้างข้อมูลที่เชื่อถือได้ก่อน เพิ่มตรรกะการควบคุมหลังจากตรวจสอบสัญญาณ (sign convention) หน่วย ช่วงเวลาการอัปเดต และพฤติกรรมเมื่อมิเตอร์ไม่พร้อมใช้งาน