Faikin Ninja P1P2 — คู่มือ MQTT
Faikin Australia
การควบคุมและตรวจสอบ Faikin Ninja P1P2 ผ่าน MQTT ตั้งแต่การตั้งค่าครั้งแรกไปจนถึงรายการอ้างอิงหัวข้อ คำสั่ง และเซ็นเซอร์ทั้งหมด
คู่มือฉบับสมบูรณ์สำหรับการควบคุมและตรวจสอบ Faikin Ninja P1P2 ผ่าน MQTT ตั้งแต่การตั้งค่าครั้งแรกไปจนถึงรายการอ้างอิงหัวข้อ คำสั่ง และเซ็นเซอร์ทั้งหมด
เนื้อหานี้ครอบคลุมโมดูล Faikin Ninja ที่ติดตั้งกับบัสควบคุม Daikin P1/P2 ได้แก่ VRV และ VRF, Sky Air, รุ่นเชิงพาณิชย์ตระกูล F และระบบท่อลมที่มี Airbase หรือคอนโทรลเลอร์ควบคุมโซน ตลอดคู่มือนี้ หัวข้อฐานตัวอย่างคือ ac/livingroom และ IP ของโบรกเกอร์ตัวอย่างคือ 192.168.1.10 โปรดแทนที่ทั้งสองค่าด้วยค่าของท่านเอง
นี่ไม่ใช่อินเทอร์เฟซ MQTT เดียวกันกับของ Faikin Faikout Ninja ใช้เฟิร์มแวร์คนละตัวและมีโครงสร้างหัวข้อที่ต่างกัน ออโตเมชันที่เขียนไว้สำหรับ Faikout จึงใช้กับ Ninja ไม่ได้ หากท่านมี Faikout โปรดดูคู่มือ MQTT ของ Faikin Faikout แทน หัวข้อที่ 5 มีตารางเปรียบเทียบแบบเคียงข้างกัน
ในหน้านี้
- 1. MQTT ให้อะไรกับท่านบ้าง
- 2. ก่อนเริ่มต้น
- 3. ขั้นตอนที่ 1: ชี้ Ninja ไปยังโบรกเกอร์ MQTT ของท่าน
- 4. ขั้นตอนที่ 2: ยืนยันว่าเชื่อมต่อแล้ว
- 5. โครงสร้างหัวข้อ
- 6. การส่งคำสั่ง
- 7. โซนของระบบท่อลม
- 8. การอ่านสถานะ
- 9. Home Assistant ผ่าน MQTT
- 10. แพลตฟอร์มอื่น
- 11. การจัดการระบบและตัวเลือก
- 12. รายการอ้างอิงเซ็นเซอร์
- 13. การแก้ปัญหา
- 14. สรุปอ้างอิงฉบับย่อ
1. MQTT ให้อะไรกับท่านบ้าง
หน้าเว็บในตัวของ Ninja เพียงพอสำหรับการใช้งานประจำวัน MQTT คือสิ่งที่ท่านต้องการเมื่อจำเป็นต้องให้เครื่องปรับอากาศเป็นส่วนหนึ่งของระบบที่ใหญ่กว่า
- ระบบอัตโนมัติ สั่งงานเครื่องได้จากทุกสิ่ง ไม่ว่าจะเป็นการตรวจจับการมีคนอยู่ ตารางเวลา ฟีดราคาไฟฟ้า เซ็นเซอร์ประตู หรืออุณหภูมิของอีกห้องหนึ่ง
- การวัดค่าอย่างแท้จริง บัส P1/P2 ส่งข้อมูลมากกว่าแค่เปิด ปิด และอุณหภูมิ Ninja เผยแพร่ค่าเทอร์มิสเตอร์ทั้งภายในและภายนอก แรงดันสารทำความเย็น ตำแหน่งวาล์วขยายตัว สถานะคอมเพรสเซอร์และพัดลม ชั่วโมงการทำงาน และรหัสข้อผิดพลาดของเครื่องเอง ข้อมูลส่วนใหญ่นี้มองไม่เห็นจากคอนโทรลเลอร์ติดผนัง
- โซนของระบบท่อลม หากท่านมีคอนโทรลเลอร์ควบคุมโซนของ Daikin แดมเปอร์แต่ละตัวจะกลายเป็นสวิตช์ที่ควบคุมได้ทีละตัว
- รวมทุกอย่างไว้ที่เดียว Home Assistant, Node-RED, openHAB และสิ่งอื่นใดที่สื่อสารด้วย MQTT สามารถมองเห็นอุปกรณ์เดียวกันได้พร้อมกันทั้งหมด
- ทำงานแบบโลคัล MQTT ทำงานบนโบรกเกอร์ของท่านเองบนเครือข่ายของท่านเอง ไม่มีข้อมูลใดออกจากบ้าน และไม่ต้องสร้างบัญชีใด ๆ
2. ก่อนเริ่มต้น
ท่านต้องมีสามสิ่ง
- Ninja เชื่อมต่อกับ WiFi ของท่านแล้ว และเข้าถึงหน้าเว็บของตัวเองได้ หากยังไม่ได้ โปรดทำตาม คู่มือการติดตั้ง ก่อน
- โบรกเกอร์ MQTT บนเครือข่ายของท่าน หากท่านใช้ Home Assistant อยู่ ให้ติดตั้งส่วนเสริม Mosquitto broker ซึ่งใช้เวลาไม่กี่นาทีและให้ทั้งโบรกเกอร์พร้อมชื่อผู้ใช้และรหัสผ่าน หรือจะใช้ Mosquitto หรือโบรกเกอร์ที่เข้ากันได้ตัวใดก็ได้บนเครื่องที่เปิดอยู่ตลอดก็ได้
- หมายเลข IP ชื่อผู้ใช้ และรหัสผ่านของโบรกเกอร์
ท่าน ไม่ จำเป็นต้องมี Home Assistant เพื่อใช้ MQTT และไม่จำเป็นต้องมี MQTT เพื่อใช้ Home Assistant ทั้งสองเป็นทางเลือกที่แยกจากกัน เพียงแต่ทำงานร่วมกันได้ดี
3. ขั้นตอนที่ 1: ชี้ Ninja ไปยังโบรกเกอร์ MQTT ของท่าน
เปิดหน้าเว็บของ Ninja แล้วไปที่ MQTT settings
| ฟิลด์ | สิ่งที่ต้องกรอก |
|---|---|
| Host | IP หรือชื่อโฮสต์ของโบรกเกอร์ เช่น 192.168.1.10 |
| Port | พอร์ตของโบรกเกอร์ 1883 หากท่านไม่ได้เปลี่ยนค่า |
| User | ชื่อผู้ใช้ของโบรกเกอร์ หากมีการใช้งาน |
| Password | รหัสผ่านของโบรกเกอร์ หากมีการใช้งาน |
| Topic | ครึ่งแรกของหัวข้อฐาน เช่น ac |
| Friendly Name | ครึ่งหลัง เช่น livingroom |
สองรายการสุดท้ายสำคัญกว่าที่เห็น Ninja สร้างทุกหัวข้อของตนขึ้นจากสองค่านี้
หัวข้อฐาน = <Topic> / <Friendly Name>
ดังนั้น Topic = ac และ Friendly Name = livingroom จะได้หัวข้อฐานเป็น ac/livingroom และหัวข้อสถานะจะกลายเป็น ac/livingroom/state
เลือกทั้งสองค่า ก่อน ที่ท่านจะสร้างออโตเมชันใด ๆ การเปลี่ยนค่าเหล่านี้ในภายหลังจะเปลี่ยนชื่อทุกหัวข้อ และทำให้ทุกสิ่งที่อ้างถึงหัวข้อเดิมเสียหายอย่างเงียบ ๆ ธรรมเนียมที่มีประโยชน์คือใช้คำนำหน้าร่วมกันหนึ่งค่าสำหรับทุกเครื่องของท่าน (ac) บวกกับชื่อห้องที่จะไม่เปลี่ยนแปลง (livingroom, masterbed, office)
บันทึกค่า แล้วโมดูลจะเชื่อมต่อใหม่และเริ่มเผยแพร่ข้อมูล
4. ขั้นตอนที่ 2: ยืนยันว่าเชื่อมต่อแล้ว
ท่านไม่จำเป็นต้องใช้เทอร์มินัลสำหรับเรื่องนี้ มีสองที่ที่บอกท่านได้ทันที
บนหน้าเว็บของ Ninja เอง
เปิดดูโมดูล ที่ด้านบนของหน้าถัดจากชื่ออุปกรณ์ จะแสดงสถานะการเชื่อมต่อโบรกเกอร์ MQTT connected หมายความว่าโมดูลติดต่อกับโบรกเกอร์ของท่านได้แล้วและกำลังเผยแพร่ข้อมูล
หากไม่มีข้อความนี้ แสดงว่าโฮสต์ พอร์ต ชื่อผู้ใช้ หรือรหัสผ่านไม่ถูกต้อง หรือโบรกเกอร์เข้าถึงไม่ได้จากเครือข่ายที่โมดูลอยู่ โปรดตรวจสอบการตั้งค่า MQTT อีกครั้ง แล้วดูหัวข้อการแก้ปัญหา
ใน Home Assistant
ไม่ต้องเพิ่มอะไรด้วยมือ Ninja เผยแพร่ข้อความ MQTT discovery ของ Home Assistant ดังนั้นเมื่อติดต่อโบรกเกอร์ได้แล้ว Home Assistant จะพบอุปกรณ์เอง ตราบใดที่การผสานรวม MQTT ถูกตั้งค่าไว้แล้วและชี้ไปยังโบรกเกอร์เดียวกัน:
- ไปที่ Settings > Devices & services > MQTT แล้วเปิดรายการอุปกรณ์
- อุปกรณ์ของท่านจะปรากฏภายในไม่กี่วินาที โดยใช้ชื่อตาม Friendly Name ที่ท่านตั้งไว้
- เปิดดูแล้วจะพบทุกอย่างอยู่ครบ ทั้งเอนทิตี climate พร้อมโหมด อุณหภูมิเป้าหมาย ความเร็วพัดลม และบานปรับลม รายการเซ็นเซอร์วินิจฉัยจำนวนมาก และหากท่านมีคอนโทรลเลอร์ควบคุมโซน ก็จะมีสวิตช์สำหรับแต่ละโซนแดมเปอร์ด้วย
ท่านไม่ควรต้องเขียนเอนทิตี climate ใน YAML ด้วยมือสำหรับ Ninja เลย หากพบว่าต้องทำเช่นนั้น แสดงว่ามีบางอย่างผิดพลาดตั้งแต่ต้นทาง
หากท่านต้องการตรวจสอบจากเทอร์มินัล
เป็นทางเลือก และคุ้มค่าเฉพาะเมื่อท่านติดตั้งเครื่องมือไคลเอนต์ mosquitto ไว้อยู่แล้ว:
mosquitto_sub -h 192.168.1.10 -u USER -P PASS -t 'ac/livingroom/#' -v
ท่านควรเห็น ac/livingroom/availability รายงานค่าเป็น online และเพย์โหลด JSON แบบเต็มบน ac/livingroom/state
หากไม่มีข้อมูลเข้ามาเลย ให้ข้ามไปที่หัวข้อการแก้ปัญหา
5. โครงสร้างหัวข้อ
ทุกอย่างแตกออกมาจากหัวข้อฐานที่ท่านสร้างไว้ในหัวข้อที่ 3 เมื่อหัวข้อฐานคือ ac/livingroom:
การปรับอากาศและการควบคุม
| หัวข้อ | ทิศทาง | หน้าที่ |
|---|---|---|
ac/livingroom/power/set |
ท่านเผยแพร่ | เปิดหรือปิดเครื่อง |
ac/livingroom/mode/set |
ท่านเผยแพร่ | โหมดการทำงาน |
ac/livingroom/temp/set |
ท่านเผยแพร่ | อุณหภูมิเป้าหมาย |
ac/livingroom/fan/set |
ท่านเผยแพร่ | ความเร็วพัดลม |
ac/livingroom/vane/set |
ท่านเผยแพร่ | ตำแหน่งบานปรับลมหรือการส่าย |
ac/livingroom/zone/<1..8>/set |
ท่านเผยแพร่ | เปิดหรือปิดโซนแดมเปอร์หนึ่งโซน |
ac/livingroom/state |
โมดูลเผยแพร่ | สถานะทั้งหมดในรูปออบเจ็กต์ JSON เดียว |
ac/livingroom/availability |
โมดูลเผยแพร่ |
online หรือ offline |
ระบบและการจัดการ
| หัวข้อ | ทิศทาง | หน้าที่ |
|---|---|---|
ac/livingroom/system/set |
ท่านเผยแพร่ |
restart, upgrade หรือ factory |
ac/livingroom/system/set_safemode |
ท่านเผยแพร่ | Safe Mode on หรือ off |
ac/livingroom/system/set_min_temp |
ท่านเผยแพร่ | ขีดจำกัดอุณหภูมิเป้าหมายต่ำสุด |
ac/livingroom/system/set_max_temp |
ท่านเผยแพร่ | ขีดจำกัดอุณหภูมิเป้าหมายสูงสุด |
ac/livingroom/system/set_modbus_rtu_id |
ท่านเผยแพร่ | หมายเลขสเลฟ Modbus RTU |
ac/livingroom/system/opt/rqt |
ท่านเผยแพร่ | คำขอตัวเลือกในรูป JSON |
ac/livingroom/system/opt/rps |
โมดูลเผยแพร่ | การสะท้อนกลับของตัวเลือกที่ยอมรับแล้ว |
ac/livingroom/system/info |
โมดูลเผยแพร่ | ข้อมูลเทเลเมทรีของบริดจ์ในรูป JSON |
สำหรับออโตเมชันส่วนใหญ่ ท่านต้องใช้เพียงสามอย่าง คือเผยแพร่ไปยังหัวข้อ .../set และสมัครรับ state และ availability
หากท่านมี Faikout ด้วย
ผลิตภัณฑ์ทั้งสองใช้แนวทางตรงกันข้ามกัน จึงควรดูเปรียบเทียบกัน
| Faikin Faikout | Faikin Ninja P1P2 | |
|---|---|---|
| รูปแบบหัวข้อ |
command/<host>/..., state/<host>
|
<topic>/<name>/... |
| การตั้งค่าควบคุมหนึ่งอย่าง | ข้อความ JSON control เดียวที่มีหลายฟิลด์ |
หนึ่งหัวข้อเล็ก ๆ ต่อหนึ่งการควบคุม |
| การอ่านสถานะ | JSON บน state/<host>
|
JSON บน <base>/state
|
| การมีอยู่ของอุปกรณ์ |
state/<host> เพย์โหลด false
|
<base>/availability เพย์โหลด offline
|
| การตั้งค่า |
setting/<host> ในรูป JSON |
<base>/system/... หลายหัวข้อ |
| ความลึกของข้อมูล | อุณหภูมิห้อง คอยล์ ภายนอก และกำลังไฟ | เพิ่มเทอร์มิสเตอร์ภายนอก แรงดัน พัลส์ EV ชั่วโมงการทำงาน และรหัสข้อผิดพลาด |
| โซน | ไม่รองรับ | รองรับสูงสุด 8 โซนแดมเปอร์ |
6. การส่งคำสั่ง
เผยแพร่สตริงธรรมดาไปยังหัวข้อ .../set ที่เกี่ยวข้อง ไม่มีการห่อด้วย JSON เพย์โหลดคือค่าล้วน ๆ
power/set
| เพย์โหลด | ผลลัพธ์ |
|---|---|
ON |
เปิดเครื่อง โดยเรียกคืนโหมด อุณหภูมิ พัดลม และบานปรับลมล่าสุด |
OFF |
ปิดเครื่อง |
mode/set
| เพย์โหลด | ผลลัพธ์ |
|---|---|
heat |
ทำความร้อน |
cool |
ทำความเย็น |
dry |
ลดความชื้น |
fan_only |
พัดลมอย่างเดียว ไม่ทำความร้อนหรือความเย็น |
off |
ปิดเครื่อง |
temp/set
อุณหภูมิเป้าหมายเป็นตัวเลข เช่น 24 ช่วง 16 ถึง 32 °C โดยปรับ ขั้นละ 1.0 °C ท่านสามารถจำกัดช่วงนี้ให้แคบลงได้ด้วย system/set_min_temp และ system/set_max_temp (หัวข้อที่ 11)
fan/set
ความเร็วที่ใช้ได้ขึ้นอยู่กับชุดภายใน โมดูลจะรายงานเฉพาะค่าที่เครื่องของท่านรองรับจริง หากส่งค่าที่ไม่มีอยู่ ระบบจะไม่สนใจ
| เพย์โหลด | คำอธิบาย |
|---|---|
low |
ต่ำ |
medium |
ปานกลาง |
high |
สูง |
auto |
อัตโนมัติ |
low_auto |
ต่ำอัตโนมัติ (ระบบที่มีโซนและ Airbase) |
medium_auto |
ปานกลางอัตโนมัติ (ระบบที่มีโซนและ Airbase) |
high_auto |
สูงอัตโนมัติ (ระบบที่มีโซนและ Airbase) |
กลุ่มที่พบบ่อยคือ:
-
3 ระดับพร้อมอัตโนมัติ:
low,medium,high,auto -
2 ระดับ:
low,high -
4 ระดับสำหรับระบบโซน/Airbase:
low,medium,low_auto,medium_auto -
6 ระดับสำหรับระบบโซน/Airbase:
low,medium,high,low_auto,medium_auto,high_auto
vane/set
| เพย์โหลด | คำอธิบาย |
|---|---|
1 |
ตำแหน่งที่ 1 บนสุด |
2 ถึง 4
|
ตำแหน่งกลาง |
5 |
ตำแหน่งที่ 5 ล่างสุด |
swing |
การส่ายในแนวตั้งอย่างต่อเนื่อง |
ตัวอย่าง
# On, cooling, 24 C, auto fan, swinging
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/power/set' -m 'ON'
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/mode/set' -m 'cool'
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/temp/set' -m '24'
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/fan/set' -m 'auto'
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/vane/set' -m 'swing'
เนื่องจากการควบคุมแต่ละอย่างมีหัวข้อของตัวเอง ลำดับจึงไม่สำคัญ และท่านส่งเฉพาะรายการที่ต้องการได้
7. โซนของระบบท่อลม
หากมีคอนโทรลเลอร์ควบคุมโซนของ Daikin อยู่บนบัส P1/P2 Ninja จะเปิดและปิดแดมเปอร์แต่ละตัวได้
เผยแพร่ ON หรือ OFF ไปยัง ac/livingroom/zone/<n>/set โดยที่ <n> คือ 1 ถึง 8:
# Open zone 1, close zone 3
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/zone/1/set' -m 'ON'
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/zone/3/set' -m 'OFF'
เพย์โหลดสถานะจะรายงานกลับมาว่า:
| คีย์ | ชนิด | ความหมาย |
|---|---|---|
zone_count |
number | จำนวนโซนที่ตรวจพบ ตั้งแต่ 1 ถึง 8 |
zone_1 … zone_8
|
boolean |
true คือเปิด false คือปิด |
zone_name_1 … zone_name_8
|
string | ชื่อที่ตั้งไว้บนคอนโทรลเลอร์ควบคุมโซน เช่น "Master Bed" |
ใน Home Assistant แต่ละโซนที่ใช้งานอยู่จะถูกค้นพบอัตโนมัติเป็นสวิตช์ของตัวเอง จึงไม่ต้องตั้งค่าใด ๆ
ข้อควรทราบสองข้อ โซนจะปรากฏก็ต่อเมื่อมีคอนโทรลเลอร์ควบคุมโซนอยู่ ดังนั้นในระบบสปลิตธรรมดาจะไม่มีคีย์โซนเลย และการปิดทุกโซนพร้อมกันเป็นวิธีที่ทำให้ระบบท่อลมมีปัญหา ควรเปิดไว้อย่างน้อยหนึ่งโซน หรือปิดเครื่องไปเลยแทน
8. การอ่านสถานะ
โมดูลเผยแพร่ออบเจ็กต์ JSON ที่สมบูรณ์หนึ่งชุดไปยัง <base>/state ทุกครั้งที่มีการเปลี่ยนแปลง
เฉพาะเซ็นเซอร์ที่เครื่องของท่านรายงานจริงเท่านั้นที่จะปรากฏ Ninja จะตรวจจับสิ่งที่ชุดภายในและชุดภายนอกที่เชื่อมต่ออยู่เผยแพร่ออกมา และซ่อนส่วนที่เหลือ ดังนั้นเพย์โหลดของท่านจะสั้นกว่าตัวอย่างด้านล่าง และ Daikin สองเครื่องที่ต่างกันจะให้คีย์ที่ต่างกัน นี่เป็นเรื่องปกติ โปรดเขียนออโตเมชันโดยอิงกับคีย์ที่ท่านเห็นบนเครื่องของท่านเอง
{
"power": "on",
"mode": "cool",
"action": "cooling",
"temperature": 24,
"fan": "auto",
"vane": "swing",
"room_temperature": 25.5,
"outside_temperature": 32.0,
"f_intake_temp": 25.0,
"f_indoor_th1": 18.2,
"f_indoor_th2": 24.8,
"f_outdoor_th1": 32.0,
"f_outdoor_th3": 75.4,
"f_pe_pressure": 0.83,
"f_pc_pressure": 2.40,
"f_drain_pump": false,
"f_electric_heater": false,
"f_comp_operating": true,
"operating": true,
"f_fan_step": 3,
"f_ev_pulses": 240,
"f_id_op_hours": 1250,
"f_error_present": false,
"f_error_code": "",
"f_indoor_model": "FBA100BVMA",
"f_outdoor_model": "RZA100DV1",
"zone_count": 4,
"zone_1": true,
"zone_2": true,
"zone_3": false,
"zone_4": false
}
คีย์ที่ควรรู้จักก่อนคือ:
| คีย์ | ความหมาย |
|---|---|
power |
on หรือ off สิ่งที่ท่านสั่ง |
mode |
โหมดที่ท่านสั่ง |
action |
สิ่งที่เครื่องกำลังทำอยู่จริง ในขณะนี้: cooling, heating, idle เป็นต้น นี่คือค่าที่ควรเฝ้าดู ไม่ใช่ power |
temperature |
ค่าเป้าหมายของท่าน ไม่ใช่อุณหภูมิห้อง |
room_temperature |
อุณหภูมิห้องตามที่เครื่องวัดได้ |
operating |
ระบบกำลังทำงานอยู่หรือไม่ |
f_error_present / f_error_code
|
แฟล็กและรหัสข้อผิดพลาดของ Daikin เอง เช่น "A9-01" |
เครื่องอาจมีค่า "power": "on" พร้อมกับ "action": "idle" ได้ ซึ่งเป็นเรื่องปกติ เพราะเครื่องถึงอุณหภูมิที่ตั้งไว้แล้ว หากท่านต้องการทราบว่าเครื่องทำงานจริงหรือไม่ ให้ดูที่ action, operating หรือ f_comp_operating
โปรดสมัครรับ <base>/availability ด้วย ค่า offline ที่นั่นหมายความว่าโมดูล หลุดการเชื่อมต่อ ซึ่งต่างจากการที่เครื่องปรับอากาศถูกปิด
9. Home Assistant ผ่าน MQTT
เพิ่มการผสานรวม MQTT แล้วชี้ไปยังโบรกเกอร์เดียวกัน เท่านี้ก็เสร็จสิ้นการตั้งค่า Ninja จะประกาศตัวเองและ Home Assistant จะสร้างทุกอย่างให้
สิ่งที่ท่านจะได้รับ:
- เอนทิตี climate พร้อมโหมด
heat,cool,dry,fan_onlyและoffโหมดพัดลมของเครื่องท่าน ตำแหน่งการส่าย1ถึง5และswingและการปรับขั้นละ 1.0 °C - เซ็นเซอร์และไบนารีเซ็นเซอร์ สำหรับทุกเทอร์มิสเตอร์ แรงดัน แอกชูเอเตอร์ ตัวนับชั่วโมง รหัสข้อผิดพลาด และสตริงรุ่นที่เครื่องของท่านรายงาน ส่วนใหญ่จะอยู่ภายใต้หมวด Diagnostic
- สวิตช์ สำหรับแต่ละโซนแดมเปอร์ที่ใช้งานอยู่
Entity ID จะอิงตาม Friendly Name ดังนั้นเมื่อใช้ livingroom ท่านจะได้ climate.livingroom, sensor.livingroom_outside_temperature, switch.livingroom_zone_1 เป็นต้น โปรดตรวจสอบชื่อที่แน่นอนใน Developer tools > States ก่อนเขียน YAML
การ์ดสำหรับแดชบอร์ด
type: vertical-stack
cards:
- type: thermostat
entity: climate.livingroom
- type: entities
title: Zones
entities:
- entity: switch.livingroom_zone_1
name: Living
- entity: switch.livingroom_zone_2
name: Master bed
- entity: switch.livingroom_zone_3
name: Study
- entity: switch.livingroom_zone_4
name: Kids
- type: glance
title: Right now
columns: 3
entities:
- entity: sensor.livingroom_room_temperature
name: Room
- entity: sensor.livingroom_outside_temperature
name: Outside
- entity: binary_sensor.livingroom_compressor_operating
name: Compressor
- type: history-graph
hours_to_show: 24
entities:
- sensor.livingroom_room_temperature
- sensor.livingroom_outside_temperature
- sensor.livingroom_od_pc_pressure
ตัวอย่างออโตเมชัน
ปิดเครื่องเมื่อบ้านเย็นสบายแล้ว โดยใช้ action แทน power เพื่อไม่ให้ทำงานขณะที่เครื่องยังทำงานอยู่:
alias: Living room off when settled
triggers:
- trigger: state
entity_id: climate.livingroom
attribute: hvac_action
to: idle
for: "00:20:00"
conditions:
- condition: numeric_state
entity_id: sensor.livingroom_room_temperature
below: 25
actions:
- action: climate.turn_off
target:
entity_id: climate.livingroom
mode: single
การเฝ้าระวังข้อผิดพลาด
alias: Air conditioner fault
triggers:
- trigger: state
entity_id: binary_sensor.livingroom_ac_error_present
to: "on"
actions:
- action: notify.mobile_app_phone
data:
title: Air conditioner fault
message: >-
Error {{ states('sensor.livingroom_ac_error_code') }} on
{{ state_attr('climate.livingroom','friendly_name') }}.
mode: single
รายการนี้คุ้มค่าที่จะตั้งไว้ รหัสข้อผิดพลาดคือรหัสเดียวกับที่ช่างเทคนิคอ่านได้จากคอนโทรลเลอร์ติดผนัง และการทราบรหัสก่อนโทรเรียกช่างช่วยประหยัดการเดินทางไปหนึ่งครั้ง
10. แพลตฟอร์มอื่น
หัวข้อชุดเดียวกันนี้ใช้ได้ทุกที่ เผยแพร่สตริงไปยัง <base>/…/set และสมัครรับ <base>/state
บรรทัดคำสั่ง mosquitto
# Watch everything for this device
mosquitto_sub -h 192.168.1.10 -u USER -P PASS -t 'ac/livingroom/#' -v
# Turn on and cool to 23
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/power/set' -m 'ON'
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/mode/set' -m 'cool'
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/temp/set' -m '23'
# Open zone 1
mosquitto_pub -h 192.168.1.10 -t 'ac/livingroom/zone/1/set' -m 'ON'
Node-RED
ใช้โหนด MQTT in บน ac/livingroom/state โดยตั้งค่าเอาต์พุตเป็นออบเจ็กต์ JSON ที่แปลงค่าแล้ว จากนั้นอ่าน msg.payload.power, msg.payload.room_temperature เป็นต้น
หากต้องการส่ง ให้ใช้ MQTT out โดยเว้นช่องหัวข้อและเพย์โหลดไว้ว่าง เพื่อให้ค่ามาจากตัวข้อความ เพย์โหลดต้องเป็น สตริง จึงต้องแปลงตัวเลขก่อน
ตั้งค่าทั้งเครื่องในครั้งเดียว:
const base = "ac/livingroom";
return [
{ topic: base + "/power/set", payload: "ON" },
{ topic: base + "/mode/set", payload: "cool" },
{ topic: base + "/temp/set", payload: "24" },
{ topic: base + "/fan/set", payload: "auto" }
];
สไลเดอร์บนแดชบอร์ดที่ควบคุมอุณหภูมิเป้าหมาย:
msg.topic = "ac/livingroom/temp/set";
msg.payload = String(msg.payload);
return msg;
เปิดเครื่องเฉพาะเมื่อขณะนี้ปิดอยู่:
const p = typeof msg.payload === 'string'
? JSON.parse(msg.payload)
: msg.payload;
if (p.power !== "on") {
return [{ topic: "ac/livingroom/power/set", payload: "ON" }];
}
return null;
การสมัครรับ ac/livingroom/availability เป็นวิธีที่ประหยัดในการทำให้แดชบอร์ดเป็นสีเทาเมื่อโมดูลหลุดการเชื่อมต่อ
openHAB
เพิ่ม Thing ของโบรกเกอร์ MQTT จากนั้นเพิ่ม Generic MQTT Thing พร้อมแชนเนลที่ชี้ไปยังหัวข้อต่าง ๆ ใช้แชนเนลชนิดสวิตช์บน ac/livingroom/power/set ที่ใช้ค่า ON/OFF แชนเนลชนิดตัวเลขบน ac/livingroom/temp/set และแชนเนลสถานะที่อ่านจาก ac/livingroom/state ด้วยการแปลงแบบ JSONPATH เช่น $.room_temperature
11. การจัดการระบบและตัวเลือก
รายการเหล่านี้อยู่ภายใต้ <base>/system/ ส่วนใหญ่จะรีบูตโมดูล จึงไม่ควรนำไปผูกกับสิ่งที่ทำงานบ่อย ๆ
system/set
| เพย์โหลด | ผลลัพธ์ |
|---|---|
restart |
รีบูตโมดูลหลังจากประมาณสามวินาที |
upgrade |
ตรวจหาการอัปเดตเฟิร์มแวร์ผ่านอากาศทันที |
factory |
ล้างการตั้งค่าที่บันทึกไว้ทั้งหมด รีเซ็ตกลับสู่ค่าจากโรงงาน และรีบูต |
factory จะล้างการตั้งค่า WiFi และ MQTT ของท่านด้วย โมดูลจึงจะกลับมาที่เครือข่ายตั้งค่าของตัวเองและต้องกำหนดค่าใหม่ทั้งหมด ควรใช้เป็นทางเลือกสุดท้าย
ขีดจำกัดอุณหภูมิ
| หัวข้อ | เพย์โหลด | ผลลัพธ์ |
|---|---|---|
system/set_min_temp |
16 ถึง 32
|
กำหนดค่าเป้าหมายต่ำสุดที่ทุกคนเลือกได้ มีการรีบูต |
system/set_max_temp |
16 ถึง 32
|
กำหนดค่าเป้าหมายสูงสุดที่ทุกคนเลือกได้ มีการรีบูต |
มีประโยชน์ในบ้านเช่าหรือสำนักงาน คือจำกัดช่วงไว้แล้วจะไม่มีใครตั้ง 16 °C ในเดือนกรกฎาคมได้
Safe Mode
system/set_safemode พร้อมค่า on หรือ off มีการรีบูต
Modbus RTU ID
system/set_modbus_rtu_id พร้อมตัวเลขตั้งแต่ 1 ถึง 254 สำหรับการติดตั้งระบบบริหารจัดการอาคารที่ใช้บิลด์ RS485 มีการรีบูต
ตัวเลือกผ่าน MQTT
system/opt/rqt รับออบเจ็กต์ JSON และให้ท่านเปลี่ยนการตั้งค่าหลายอย่างพร้อมกันได้โดยไม่ต้องใช้หน้าเว็บ:
{
"options": {
"homekit": "On",
"mode": "All",
"safemode": "Off",
"webpanel": "On"
}
}
| คีย์ | ค่า | ความหมาย |
|---|---|---|
homekit |
On, Off
|
รองรับ Apple Home |
mode |
All, NoHeat, NoAuto
|
เลือกว่าจะเปิดเผยโหมดใดบ้าง NoHeat เหมาะกับการติดตั้งที่ทำความเย็นอย่างเดียว |
safemode |
On, Off
|
Safe Mode |
webpanel |
On, Off
|
หน้าเว็บในตัว |
ค่าที่ระบบยอมรับจะถูกสะท้อนกลับมาบน system/opt/rps ดังนั้นโปรดสมัครรับที่นั่นเพื่อยืนยัน แทนการคาดเดา
การปิด webpanel จะตัดช่องทางที่ท่านจะกลับเข้ามาเอง ควรทำก็ต่อเมื่อท่านแน่ใจว่า MQTT ทำงานได้
system/info
เผยแพร่เป็นระยะ:
{
"connection_state": "online",
"safe_mode": "Off",
"reset_reason": "Software reset via ESP_RESTART",
"web_panel": "On",
"free_heap": "68.45",
"rssi": "-62",
"bssid": "AA:BB:CC:DD:EE:FF",
"up_time": 172800,
"min_temp": 16,
"max_temp": 32,
"protocol_ver": "P1P2"
}
rssi คือค่าที่ควรเฝ้าดู หากแย่กว่าประมาณ -80 dBm ท่านควรย้ายโมดูลออกจากกล่องโลหะก่อนจะไปโทษสิ่งอื่น
12. รายการอ้างอิงเซ็นเซอร์
ทุกอย่างด้านล่างนี้ ตรวจจับโดยอัตโนมัติ หากเครื่องของท่านไม่รายงานค่าใด คีย์นั้นจะไม่ปรากฏในเพย์โหลดสถานะ และจะไม่มีการสร้างเอนทิตีใน Home Assistant รายการที่สั้นไม่ใช่ความผิดปกติ
รายการหลัก
| คีย์ | ชื่อ | หน่วย | คำอธิบาย |
|---|---|---|---|
room_temperature |
Room Temperature | °C | อุณหภูมิอากาศภายในห้อง |
outside_temperature |
Outside Temperature | °C | อุณหภูมิอากาศภายนอก จากเทอร์มิสเตอร์ภายนอกตัวที่ 1 |
f_intake_temp |
Intake Temperature | °C | อุณหภูมิอากาศกลับที่ชุดภายใน |
เทอร์มิสเตอร์ของชุดภายใน
| คีย์ | ชื่อ | คำอธิบาย |
|---|---|---|
f_indoor_th1 |
Indoor TH1 | ท่อน้ำยาเหลว |
f_indoor_th2 |
Indoor TH2 | ท่อแก๊ส |
f_indoor_th3 |
Indoor TH3 | แผงแลกเปลี่ยนความร้อน |
f_indoor_th4 … f_indoor_th6
|
Indoor TH4 to TH6 | ขึ้นอยู่กับรุ่น |
f_return_air_temp_1f |
Return Air Temp 1F | อุณหภูมิอากาศกลับที่ถอดรหัสแล้ว หากรองรับ |
f_coil_temp_1f |
Coil Temp 1F | อุณหภูมิคอยล์ภายในที่ถอดรหัสแล้ว หากรองรับ |
เทอร์มิสเตอร์และแรงดันของชุดภายนอก
| คีย์ | ชื่อ | หน่วย | คำอธิบาย |
|---|---|---|---|
f_outdoor_th1 |
Outdoor TH1 | °C | อากาศภายนอก |
f_outdoor_th2 |
Outdoor TH2 | °C | แผงแลกเปลี่ยนความร้อนภายนอก |
f_outdoor_th3 |
Outdoor TH3 | °C | ท่อจ่าย |
f_outdoor_th4 |
Outdoor TH4 | °C | ท่อดูด |
f_outdoor_th5, f_outdoor_th6
|
Outdoor TH5, TH6 | °C | ขึ้นอยู่กับรุ่น |
f_pe_pressure |
OD Pe Pressure | MPa | แรงดันด้านต่ำ |
f_pc_pressure |
OD Pc Pressure | MPa | แรงดันด้านสูง |
อุณหภูมิท่อจ่ายและแรงดันทั้งสองค่ารวมกัน คือสิ่งที่ใกล้เคียงการตรวจสุขภาพชุดภายนอกแบบเรียลไทม์มากที่สุด หากท่านพล็อตกราฟตลอดหนึ่งฤดูกาล ค่าที่ผิดปกติจะโดดเด่นออกมาก่อนที่ระบบจะตัดการทำงานเป็นเวลานาน
แอกชูเอเตอร์และสถานะการทำงาน
| คีย์ | ชื่อ | ชนิด | คำอธิบาย |
|---|---|---|---|
f_comp_operating |
Compressor Operating | boolean | คอมเพรสเซอร์ภายนอกกำลังทำงาน |
f_drain_pump |
ID Drain Pump | boolean | ปั๊มระบายน้ำทิ้งของชุดภายใน |
f_electric_heater |
ID Electric Heater | boolean | ฮีตเตอร์ไฟฟ้าเสริม |
f_humidifier |
ID Humidifier | boolean | เครื่องเพิ่มความชื้นของชุดภายใน |
f_anti_freezing |
ID Anti Freezing | boolean | การป้องกันการเกิดน้ำแข็งกำลังทำงาน |
f_solenoid_valve |
OD Solenoid Valve | boolean | โซลินอยด์วาล์วของชุดภายนอก |
f_active_1f |
Loop Active 1F | boolean | ตัวบ่งชี้ว่าลูปกำลังทำงาน |
f_fan_step |
OD Fan Step | step | ระดับสเต็ปของพัดลมชุดภายนอก |
f_ev_pulses |
ID EV Pulses | pulse | ระยะเปิดของวาล์วขยายตัวชุดภายใน |
f_ev1_pulses |
OD EV1 Pulses | pulse | ระยะเปิดของวาล์วขยายตัวชุดภายนอก |
ชั่วโมงการทำงานและข้อผิดพลาด
| คีย์ | ชื่อ | หน่วย | คำอธิบาย |
|---|---|---|---|
f_id_op_hours |
ID Op Hours | h | ชั่วโมงการทำงานของชุดภายใน |
f_id_fan_hours |
ID Fan Hours | h | ชั่วโมงการทำงานของพัดลมชุดภายใน |
f_id_pwr_hours |
ID Pwr Hours | h | ชั่วโมงที่ชุดภายในมีไฟเลี้ยง |
f_error_present |
AC Error Present | — | แฟล็กข้อผิดพลาดที่กำลังเกิดขึ้น |
f_error_code |
AC Error Code | — | รหัสข้อผิดพลาดของ Daikin เช่น "A9-01", "E7-57" ว่างเปล่าเมื่อไม่มีปัญหา |
f_has_error_history |
Has Error History | — | เครื่องเก็บประวัติข้อผิดพลาดไว้หรือไม่ |
f_indoor_model |
Indoor Model | — | สตริงรุ่นของชุดภายใน |
f_outdoor_model |
Outdoor Model | — | สตริงรุ่นของชุดภายนอก |
ในกรณีที่เครื่องเก็บประวัติข้อผิดพลาดไว้ แต่ละเหตุการณ์ที่บันทึกจะมีหมายเลขแถว รหัส วันที่ และหมายเลขเครื่อง:
[
{"row": 1, "code": "A9-01", "date": "17/01/24", "unit": 0},
{"row": 2, "code": "E7-57", "date": "10/11/23", "unit": 0},
{"row": 3, "code": "C2-04", "date": "05/08/23", "unit": 0}
]
เทเลเมทรีของโมดูล
| คีย์ | ชื่อ | หน่วย | คำอธิบาย |
|---|---|---|---|
up_time |
Up Time | s | นับตั้งแต่รีบูตครั้งล่าสุด |
free_heap |
Free Heap | % | RAM ที่ว่าง |
rssi |
RSSI | dBm | ความแรงสัญญาณ WiFi |
bssi |
BSSI | — | BSSID ของแอ็กเซสพอยต์ที่เชื่อมต่ออยู่ |
reset_reason |
Reset Reason | — | สาเหตุที่รีสตาร์ตครั้งล่าสุด |
protocol_ver |
Protocol Version | — | โปรโตคอลที่ใช้งานอยู่ คือ P1P2 |
min_temp, max_temp
|
Target limits | °C | ขีดจำกัดค่าตั้งอุณหภูมิที่กำหนดไว้ |
modbus_rtu_id |
Modbus RTU ID | — | หมายเลขสเลฟที่กำหนดไว้ |
13. การแก้ปัญหา
ไม่มีป้าย MQTT connected บนหน้าเว็บ ตรวจสอบโฮสต์และพอร์ต จากนั้นตรวจชื่อผู้ใช้และรหัสผ่าน หากโบรกเกอร์อยู่คนละ VLAN หรือคนละซับเน็ตกับโมดูล นั่นมักเป็นสาเหตุที่แท้จริง
ป้ายแสดงว่าเชื่อมต่อแล้ว แต่ไม่มีอะไรปรากฏใน Home Assistant ยืนยันว่าการผสานรวม MQTT ของ Home Assistant ชี้ไปยังโบรกเกอร์เดียวกัน การมีโบรกเกอร์สองตัวในเครือข่ายเดียวเป็นความผิดพลาดที่พบบ่อยและทำให้สับสน จากนั้นตรวจสอบว่าเปิดใช้ discovery ในการตั้งค่าของโมดูลแล้ว
เซ็นเซอร์บางตัวหายไป เป็นเรื่องปกติ ระบบเผยแพร่เฉพาะสิ่งที่เครื่องที่เชื่อมต่ออยู่รายงานเท่านั้น และระบบสปลิตขนาดเล็กจะแสดงข้อมูลน้อยกว่า VRV มาก ไม่ใช่ความผิดปกติ
ไม่มีสวิตช์โซน โซนต้องมีคอนโทรลเลอร์ควบคุมโซนของ Daikin อยู่บนบัส P1/P2 หากไม่มี ก็ไม่มีอะไรให้ควบคุม
คำสั่งไม่ทำงาน เพย์โหลดเป็นสตริงธรรมดาและคำนึงถึงตัวพิมพ์เล็กใหญ่ตามที่ระบุไว้ คือ ON และ OFF ต้องเป็นตัวพิมพ์ใหญ่สำหรับการเปิดปิดเครื่องและโซน ส่วนชื่อโหมดต้องเป็นตัวพิมพ์เล็ก การส่งตัวเลขแทนสตริงสำหรับอุณหภูมิจะล้มเหลวในไคลเอนต์บางตัว รวมถึง Node-RED
อุณหภูมิไม่ไปยังค่าที่ต้องการ ตรวจสอบ min_temp และ max_temp ใน system/info อาจมีผู้จำกัดช่วงไว้
หลุดการเชื่อมต่อบ่อย ดูค่า rssi ใน system/info ประมาณ -80 dBm หรือแย่กว่านั้นถือว่าก้ำกึ่ง ให้ย้ายโมดูลออกมานอกกล่องโลหะ
เครื่องเปิดอยู่แต่ไม่มีอะไรเกิดขึ้น ดูที่ action และ f_comp_operating หาก action เป็น idle แสดงว่าถึงอุณหภูมิที่ตั้งไว้แล้ว หากคอมเพรสเซอร์ไม่เคยทำงานและ f_error_present เป็น true ให้อ่านค่า f_error_code แล้วแจ้งรหัสนั้นแก่ช่างผู้ติดตั้งของท่าน
ทุกอย่างหยุดทำงานหลังเปลี่ยนการตั้งค่า การเปลี่ยนชื่อ Topic หรือ Friendly Name จะเปลี่ยนชื่อทุกหัวข้อ ออโตเมชันของท่านยังชี้ไปยังหัวข้อเดิมอยู่
14. สรุปอ้างอิงฉบับย่อ
หัวข้อฐานคือ ac/livingroom โปรดแทนที่ด้วยของท่าน
การอ่าน (สมัครรับ)
| หัวข้อ | เนื้อหา |
|---|---|
ac/livingroom/state |
สถานะ JSON แบบเต็ม |
ac/livingroom/availability |
online / offline
|
ac/livingroom/system/info |
เทเลเมทรีของโมดูลในรูป JSON |
ac/livingroom/system/opt/rps |
การสะท้อนกลับของตัวเลือกที่ยอมรับแล้ว |
การควบคุม (เผยแพร่)
| หัวข้อ | เพย์โหลด |
|---|---|
ac/livingroom/power/set |
ON, OFF
|
ac/livingroom/mode/set |
heat, cool, dry, fan_only, off
|
ac/livingroom/temp/set |
16 ถึง 32
|
ac/livingroom/fan/set |
low, medium, high, auto, low_auto, medium_auto, high_auto
|
ac/livingroom/vane/set |
1 ถึง 5, swing
|
ac/livingroom/zone/1/set … zone/8/set
|
ON, OFF
|
ระบบ (เผยแพร่)
| หัวข้อ | เพย์โหลด |
|---|---|
ac/livingroom/system/set |
restart, upgrade, factory
|
ac/livingroom/system/set_safemode |
on, off
|
ac/livingroom/system/set_min_temp |
16 ถึง 32
|
ac/livingroom/system/set_max_temp |
16 ถึง 32
|
ac/livingroom/system/set_modbus_rtu_id |
1 ถึง 254
|
ac/livingroom/system/opt/rqt |
{"options":{"homekit":"On","mode":"All"}} |
คีย์ที่ควรเฝ้าดู
| คีย์ | เหตุผล |
|---|---|
action |
สิ่งที่เครื่องกำลังทำอยู่จริง ไม่ใช่สิ่งที่ท่านสั่ง |
room_temperature |
อุณหภูมิห้องจริง |
f_comp_operating |
คอมเพรสเซอร์กำลังทำงานหรือไม่ |
f_error_present, f_error_code
|
ข้อผิดพลาด ในรูปรหัสของ Daikin เอง |
rssi |
ระยะเผื่อสัญญาณ WiFi ใน system/info
|
แหล่งข้อมูล: เอกสารโปรโตคอล MQTT ของ Faikin Ninja P1P2 พฤติกรรมที่อธิบายไว้ตรงกับเฟิร์มแวร์ ณ เดือนสิงหาคม 2026 หน้าเว็บของโมดูลท่านเองและค่า system/info ที่เผยแพร่ออกมา ถือเป็นข้อมูลที่ถูกต้องสำหรับเวอร์ชันที่ท่านติดตั้งอยู่ ความพร้อมใช้งานของเซ็นเซอร์แตกต่างกันไปตามชุดภายในและชุดภายนอก