ควบคุมรีเลย์ใน Home Assistant ด้วยกำลังไฟฟ้าแบบเรียลไทม์
ควบคุมรีเลย์ใน Home Assistant ด้วยข้อมูลกำลังไฟฟ้าแบบเรียลไทม์
Home Assistant สามารถใช้กำลังไฟฟ้าที่มิเตอร์พลังงานวัดได้แบบเรียลไทม์เพื่อควบคุมรีเลย์ ปลั๊กอัจฉริยะ หรือคอนแทคเตอร์ จึงเกิดเป็นระบบควบคุมแบบวงปิดอย่างง่าย โดยมิเตอร์ส่งข้อมูลป้อนกลับ Home Assistant ประมวลผลตามตรรกะควบคุม และอุปกรณ์สวิตช์ทำหน้าที่ควบคุมโหลด
ตัวอย่างนี้ใช้มิเตอร์พลังงาน IAMMETER ผ่าน Modbus TCP ร่วมกับปลั๊กอัจฉริยะ Sonoff S26 แต่สามารถนำตรรกะเดียวกันไปใช้กับอุปกรณ์ ESPHome รีเลย์ Tasmota หรือสวิตช์อื่นที่เชื่อมต่อกับ Home Assistant อยู่แล้วได้
ในตัวอย่าง รีเลย์จะเปิดเมื่อกำลังไฟฟ้าที่วัดได้สูงกว่า 1,000 W ต่อเนื่อง และจะปิดเมื่อกำลังไฟฟ้าต่ำกว่า 500 W ต่อเนื่อง ช่องว่างระหว่างสองค่าเกณฑ์ช่วยป้องกันการเปิดและปิดถี่ ๆ เมื่อค่าที่อ่านได้แกว่งอยู่ใกล้ค่าใดค่าหนึ่ง
บทความนี้เป็นตัวอย่างระบบอัตโนมัติ ไม่ใช่คู่มือติดตั้ง Modbus โปรดตั้งค่ามิเตอร์ก่อนโดยทำตามคู่มือตั้งค่ามิเตอร์พลังงาน Modbus TCP ใน Home Assistant
วงจรควบคุมตามกำลังไฟฟ้าทำงานอย่างไร
ระบบประกอบด้วยสามส่วน:
- เซนเซอร์: มิเตอร์พลังงานส่งข้อมูลกำลังไฟฟ้าจริงแบบเรียลไทม์
- ตัวควบคุม: Home Assistant เปรียบเทียบค่านั้นกับค่าเกณฑ์ที่กำหนดไว้
- อุปกรณ์ทำงาน: รีเลย์ ปลั๊กอัจฉริยะ หรือคอนแทคเตอร์ที่มีพิกัดเหมาะสมทำหน้าที่สวิตช์โหลดเป้าหมาย

ในการทดสอบเดิม:
- IAMMETER ส่งข้อมูลผ่านเอนทิตีกำลังไฟฟ้า Modbus;
- Sonoff S26 ทำหน้าที่เป็นสวิตช์ที่ควบคุมได้;
- ใช้กาต้มน้ำไฟฟ้าเพื่อทำให้การเปลี่ยนแปลงของโหลดเห็นได้ชัด;
- Home Assistant ประเมินค่ากำลังไฟฟ้าและควบคุมสวิตช์
ก่อนสร้างระบบอัตโนมัติ
ตรวจสอบว่ามีเอนทิตีต่อไปนี้ใน Home Assistant แล้ว:
- เซนเซอร์กำลังไฟฟ้าจริง เช่น
sensor.iammeter_active_power; - สวิตช์ที่ควบคุมได้ เช่น
switch.sonoff_s26
เซนเซอร์กำลังไฟฟ้าควร:
- รายงานกำลังไฟฟ้าจริงเป็นวัตต์;
- อัปเดตผ่านเครือข่ายภายในได้อย่างเชื่อถือได้;
- ใช้หลักการกำหนดเครื่องหมายบวก/ลบที่คุณเข้าใจ;
- เปลี่ยนเป็นสถานะ
unavailableเมื่ออ่านค่าจากมิเตอร์ไม่ได้ แทนที่จะค้างค่าเก่าไว้อย่างเงียบ ๆ โดยไม่มีกำหนด
สำหรับการเชื่อมต่อ IAMMETER HACS Modbus สามารถกำหนดช่วงเวลาสแกนได้ และค่าเริ่มต้นคือ 3 วินาที ช่วงเวลา 3–5 วินาทีมักเร็วเพียงพอสำหรับระบบอัตโนมัติประเภทนี้ สามารถใช้ช่วงเวลาหนึ่งวินาทีเมื่อจำเป็นจริง ๆ แต่ไม่ใช่ข้อกำหนดของการควบคุมที่เชื่อถือได้
มิเตอร์พลังงาน IAMMETER รุ่นปัจจุบันทั้งหมดรองรับ Modbus TCP รุ่นที่เหมาะสมขึ้นอยู่กับระบบไฟฟ้าและจำนวนช่องวัด:
| รุ่น | การใช้งานทั่วไป |
|---|---|
| WEM3080 | วงจรเฟสเดียวหรือการตรวจสอบกริด |
| WEM2067 | การตรวจสอบบ้านหรือระบบโซลาร์เฟสเดียวแบบสองช่อง |
| WEM3080T | การตรวจสอบระบบสามเฟส |
| WEM3050T | การตรวจสอบบ้านแบบสามเฟสหรือ split-phase |
| WEM3046T / WEM3046TE | งานติดตั้งที่ใช้ CT ภายนอก 5 A |
เหตุใดสองค่าเกณฑ์จึงดีกว่าค่าเดียว
อย่าใช้ค่าเกณฑ์เดียวกันสำหรับทั้งการเปิดและปิดรีเลย์ หากค่าที่อ่านได้เคลื่อนขึ้นและลงผ่านค่านั้นซ้ำ ๆ สวิตช์อาจเปิดปิดถี่เกินไป
ให้ใช้ฮิสเทอรีซิสแทน:
- เปิดเมื่อสูงกว่า 1,000 W;
- ปิดเมื่อต่ำกว่า 500 W
เมื่อค่าอยู่ระหว่าง 500 W ถึง 1,000 W Home Assistant จะคงสถานะเดิมของสวิตช์ไว้ ช่วงตาย 500 W นี้ช่วยให้ระบบมีเสถียรภาพ
ค่าเกณฑ์ในตัวอย่างมีไว้เพื่อประกอบการอธิบาย ควรเลือกค่าโดยพิจารณาจาก:
- ความหมายและเครื่องหมายของกำลังไฟฟ้าที่วัดได้;
- กำลังพิกัดของโหลด;
- พลังงานโซลาร์ส่วนเกินที่มี หากเกี่ยวข้อง;
- ความถี่ในการสวิตช์ที่ยอมรับได้;
- ข้อกำหนดด้านความปลอดภัยทางไฟฟ้าและอุปกรณ์
ระบบอัตโนมัติ 1: เปิดรีเลย์เมื่อสูงกว่าค่าเกณฑ์บน
ระบบอัตโนมัติต่อไปนี้จะเปิดสวิตช์เมื่อกำลังไฟฟ้าสูงกว่า 1,000 W ต่อเนื่องเป็นเวลา 10 วินาทีเท่านั้น:
alias: Power control - turn relay on
description: Turn on the relay after measured power stays above 1000 W
triggers:
- trigger: numeric_state
entity_id: sensor.iammeter_active_power
above: 1000
for: "00:00:10"
conditions:
- condition: state
entity_id: switch.sonoff_s26
state: "off"
actions:
- action: switch.turn_on
target:
entity_id: switch.sonoff_s26
mode: single
แทนที่ ID ของเอนทิตีทั้งสองด้วยเอนทิตีในระบบ Home Assistant ของคุณ
ช่วงเวลา for 10 วินาทีช่วยกรองค่าสูงชั่วขณะ โดยปกติควรยาวกว่าช่วงเวลาสแกนของมิเตอร์ เพื่อให้การตัดสินใจอ้างอิงจากการอัปเดตมากกว่าหนึ่งครั้ง
ระบบอัตโนมัติ 2: ปิดรีเลย์เมื่อต่ำกว่าค่าเกณฑ์ล่าง
ระบบอัตโนมัติที่สองใช้ค่าเกณฑ์ล่าง 500 W:
alias: Power control - turn relay off
description: Turn off the relay after measured power stays below 500 W
triggers:
- trigger: numeric_state
entity_id: sensor.iammeter_active_power
below: 500
for: "00:00:10"
conditions:
- condition: state
entity_id: switch.sonoff_s26
state: "on"
actions:
- action: switch.turn_off
target:
entity_id: switch.sonoff_s26
mode: single
ระบบอัตโนมัติทั้งสองทำงานร่วมกันเป็นตัวควบคุมสถานะแบบง่าย:
| กำลังไฟฟ้าที่วัดได้ | ผลลัพธ์ |
|---|---|
| สูงกว่า 1,000 W เป็นเวลา 10 วินาที | เปิดรีเลย์ |
| ระหว่าง 500 W ถึง 1,000 W | คงสถานะปัจจุบัน |
| ต่ำกว่า 500 W เป็นเวลา 10 วินาที | ปิดรีเลย์ |
ระบบอัตโนมัติ 3: ปิดอย่างปลอดภัยเมื่อไม่มีข้อมูลจากมิเตอร์
วงจรควบคุมต้องมีสถานะเมื่อเกิดความขัดข้องที่ชัดเจน หากมิเตอร์หรือเครือข่ายไม่พร้อมใช้งานขณะที่โหลดเปิดอยู่ Home Assistant ไม่ควรถือว่าค่าล่าสุดยังถูกต้อง
สำหรับโหลดที่ควรปิดเมื่อเกิดความขัดข้อง ให้เพิ่มระบบอัตโนมัตินี้:
alias: Power control - fail safe off
description: Turn off the relay if the power sensor becomes unavailable
triggers:
- trigger: state
entity_id: sensor.iammeter_active_power
to: "unavailable"
for: "00:00:30"
- trigger: state
entity_id: sensor.iammeter_active_power
to: "unknown"
for: "00:00:30"
conditions:
- condition: state
entity_id: switch.sonoff_s26
state: "on"
actions:
- action: switch.turn_off
target:
entity_id: switch.sonoff_s26
mode: single
สถานะ “ปิด” จะเป็นสถานะปลอดภัยที่ถูกต้องหรือไม่ขึ้นอยู่กับการใช้งาน กำหนดพฤติกรรมเมื่อเกิดความขัดข้องก่อนนำรูปแบบนี้ไปใช้กับระบบทำความร้อน ปั๊ม การชาร์จ ระบบทำความเย็น หรือโหลดสำคัญอื่น ๆ
กำหนดค่าตรรกะเดียวกันใน UI ของ Home Assistant
หากต้องการใช้เครื่องมือแก้ไขระบบอัตโนมัติ:
- ไปที่ Settings → Automations & scenes
- สร้างระบบอัตโนมัติใหม่
- เลือก Numeric state เป็นทริกเกอร์
- เลือกเอนทิตีกำลังไฟฟ้าจริงของ IAMMETER
- ตั้งค่า Above 1000 และระยะเวลา 10 วินาที
- เพิ่มสถานะปัจจุบัน
offของสวิตช์เป็นเงื่อนไข - เพิ่ม Switch: Turn on เป็นการทำงาน
- บันทึกและเปิดใช้งานระบบอัตโนมัติ
- สร้างระบบอัตโนมัติสำหรับปิดที่ตรงกันโดยใช้ Below 500



ชื่อเมนูที่แสดงอาจแตกต่างกันตามเวอร์ชันของ Home Assistant แต่ตรรกะเหมือนกับตัวอย่าง YAML
ทดสอบระบบอัตโนมัติอย่างปลอดภัย
ทดสอบแต่ละส่วนแยกกันก่อนอนุญาตให้สวิตช์โดยอัตโนมัติ:
- ยืนยันว่าเอนทิตีกำลังไฟฟ้าเปลี่ยนค่าใน Developer tools → States
- เปิดและปิดรีเลย์ด้วยตนเองจาก Home Assistant
- ใช้ค่าเกณฑ์ทดสอบที่สามารถทำให้ถึงได้อย่างคาดการณ์ได้เป็นการชั่วคราว
- ตรวจสอบค่าเกณฑ์และระยะหน่วงสำหรับการเปิด
- ตรวจสอบค่าเกณฑ์และระยะหน่วงสำหรับการปิด
- ตัดการเชื่อมต่อหรือบล็อกมิเตอร์ชั่วคราว แล้วตรวจสอบพฤติกรรมความปลอดภัยที่ต้องการ
- ตรวจสอบ trace ของระบบอัตโนมัติเพื่อหาการทริกเกอร์ที่ไม่คาดคิด

ในการทดสอบเดิม การเปิดกาต้มน้ำทำให้กำลังไฟฟ้าที่วัดได้เพิ่มขึ้นเป็นประมาณ 1,596 W ซึ่งสูงกว่าค่าเกณฑ์บน เมื่อปิดกาต้มน้ำ ค่าลดลงเหลือประมาณ 64 W ซึ่งต่ำกว่าค่าเกณฑ์ล่าง ค่าเกณฑ์ทั้งสองทำให้สังเกตสถานะรีเลย์ที่เกิดขึ้นได้ง่าย
ปรับตัวอย่างสำหรับการควบคุมพลังงานโซลาร์ส่วนเกิน
รูปแบบเดียวกันนี้สามารถควบคุมโหลดที่ยืดหยุ่นได้เมื่อมีพลังงานโซลาร์ส่วนเกิน แต่ต้องตรวจสอบหลักการกำหนดเครื่องหมายของกำลังไฟฟ้าที่กริดก่อน
ตัวอย่างเช่น ระบบหนึ่งอาจรายงาน:
- ค่าบวกสำหรับการนำเข้าพลังงานจากกริด;
- ค่าลบสำหรับการส่งออกพลังงานไปยังกริด
เอนทิตีหรือ template อื่นอาจแสดงการส่งออกเป็นค่าบวก ค่าเกณฑ์ของระบบอัตโนมัติต้องสอดคล้องกับพฤติกรรมจริงของเอนทิตี
ระบบสำหรับพลังงานโซลาร์ส่วนเกินโดยทั่วไปต้องมี:
- ค่าเกณฑ์การส่งออกขั้นต่ำก่อนเปิด;
- ค่าเกณฑ์การส่งออกที่ต่ำลง หรือค่าเกณฑ์การนำเข้าจากกริดสำหรับปิด;
- ระยะหน่วงที่นานขึ้นเพื่อไม่สนใจความผันผวนสั้น ๆ จากเมฆ;
- ระยะเวลาเปิด/ปิดขั้นต่ำที่เหมาะกับเครื่องใช้ซึ่งถูกควบคุม;
- การทำงานเพื่อความปลอดภัยเมื่อไม่มีข้อมูลจากมิเตอร์
หากต้องการควบคุมการทำน้ำร้อนแบบแปรผันแทนการเปิด/ปิดอย่างง่าย โปรดดูโซลูชันระบบอัตโนมัติพลังงานโซลาร์ของ IAMMETER
ความปลอดภัยด้านไฟฟ้าและการใช้งาน
ระบบอัตโนมัติของ Home Assistant ไม่ได้เปลี่ยนพิกัดทางไฟฟ้าของปลั๊กอัจฉริยะหรือรีเลย์
- อย่าสวิตช์โหลดที่เกินพิกัดแรงดันไฟฟ้า กระแสไฟฟ้า หรือกำลังไฟฟ้าของอุปกรณ์
- คำนึงถึงกระแสกระชากของมอเตอร์ ปั๊ม คอมเพรสเซอร์ และแหล่งจ่ายไฟบางประเภท
- ใช้คอนแทคเตอร์ที่มีพิกัดเหมาะสม เมื่อให้รีเลย์อัจฉริยะควบคุมวงจรกำลังสูงทางอ้อม
- ปฏิบัติตามข้อบังคับด้านไฟฟ้าในพื้นที่ และใช้ช่างไฟฟ้าที่มีคุณสมบัติเหมาะสมเมื่อจำเป็น
- หลีกเลี่ยงการเปิดปิดฮีตเตอร์ คอมเพรสเซอร์ เครื่องชาร์จ EV และอุปกรณ์อื่นที่มีข้อกำหนดระยะเวลาทำงานขั้นต่ำอย่างรวดเร็ว
- มีการควบคุมด้วยตนเองไว้เสมอ และกำหนดสิ่งที่จะเกิดขึ้นหลัง Home Assistant รีสตาร์ต
การแก้ไขปัญหา
ค่ากำลังไฟฟ้าอัปเดต แต่ระบบอัตโนมัติไม่ทำงาน
- ตรวจสอบ ID เอนทิตีในระบบอัตโนมัติ
- ตรวจสอบว่าค่าเป็นตัวเลขและมีหน่วยเป็นวัตต์
- โปรดจำว่าทริกเกอร์สถานะตัวเลขจะทำงานเมื่อค่าข้ามค่าเกณฑ์และครบระยะเวลาที่กำหนด ไม่ได้ทำงานซ้ำขณะที่ค่าอยู่เหนือหรือต่ำกว่าค่าเกณฑ์แล้ว
- ตรวจสอบ trace ของระบบอัตโนมัติ
รีเลย์สวิตช์บ่อยเกินไป
- เพิ่มช่องว่างระหว่างค่าเกณฑ์เปิดและปิด
- เพิ่มระยะเวลา
for - ใช้ช่วงเวลาสแกน Modbus ที่นานขึ้น หากไม่จำเป็นต้องตอบสนองในระดับวินาที
- เพิ่มเวลาขั้นต่ำในการเปิด/ปิดสำหรับเครื่องใช้
รีเลย์ตอบสนองผิดทิศทาง
- ตรวจสอบว่าเอนทิตีแสดงกำลังไฟฟ้าของโหลด การนำเข้าจากกริด หรือการส่งออกไปยังกริด
- ตรวจสอบหลักการกำหนดกำลังไฟฟ้าค่าบวก/ลบ
- ยืนยันว่าใช้เฟสหรือช่องวัดที่ถูกต้อง
เอนทิตี Modbus ไม่พร้อมใช้งาน
- ตรวจสอบที่อยู่ IP ของมิเตอร์และพอร์ต TCP
502 - หลีกเลี่ยงการใช้ไคลเอนต์ Modbus ความถี่สูงหลายตัวกับมิเตอร์เดียวกัน
- ทำตามคู่มือแก้ไขปัญหาการเชื่อมต่อ Modbus TCP
คู่มือ Home Assistant ที่เกี่ยวข้อง
- ตั้งค่ามิเตอร์พลังงาน Modbus TCP ใน Home Assistant
- เปรียบเทียบวิธีเชื่อมต่อ IAMMETER กับ Home Assistant ทั้งหมด
- ตารางรีจิสเตอร์ Modbus TCP ของ IAMMETER
- ตรวจสอบพลังงานโซลาร์ด้วย Home Assistant
- MQTT Discovery ใน Home Assistant
อัปเดต: 19 กรกฎาคม 2026