คุณสามารถติดตั้งใช้งานอุปกรณ์ในระบบนิเวศของ Google Home ได้โดยใช้ Cloud-to-cloud, Matter หรือทั้ง 2 อย่าง อุปกรณ์บางประเภทมีความซับซ้อนมากกว่าอุปกรณ์อื่นๆ และเป็นความท้าทายในการพัฒนาเมื่อใช้ Home API ในลักษณะที่ช่วยให้การเชื่อมต่อกับอุปกรณ์อื่นๆ ในระบบนิเวศเป็นไปอย่างราบรื่น
ความท้าทายอย่างหนึ่งในการใช้งานอุปกรณ์บางประเภทเหล่านี้คืออุปกรณ์อาจประกอบด้วยชุดค่าผสมของลักษณะต่างๆ การผสมผสานบางอย่างอาจไม่ได้ผลดีเท่าการผสมผสานอื่นๆ นอกจากนี้ Cloud-to-cloud data model ยังแมปกับ Matter data model แต่ไม่ได้แมปแบบ หนึ่งต่อหนึ่งที่ชัดเจนเสมอไป ดูโมเดลข้อมูลใน iOS ซึ่งจะอธิบายโมเดลข้อมูล และการแมปอย่างละเอียด
หน้านี้มีข้อมูลเพิ่มเติมเกี่ยวกับโมเดลข้อมูลสำหรับอุปกรณ์ที่เฉพาะเจาะจงซึ่งเชื่อมโยงกัน และมีคำแนะนำเกี่ยวกับลักษณะที่จะใช้เพื่อติดตั้งใช้งานอุปกรณ์ประเภทดังกล่าว
เตาอบ
อุปกรณ์ประเภทเตาอบ
(OvenDeviceType
)
และลักษณะของคอมโพเนนต์ไม่ได้ใช้งานง่าย
เมื่อเทียบกับอุปกรณ์ประเภทอื่นๆ คุณติดตั้งใช้งานเตาอบใน
Matterได้หลายวิธี แต่ไม่ใช่ทุกวิธีที่จะทำให้การทำงานร่วมกับอุปกรณ์อื่นๆ หรือกับระบบนิเวศของ Google Home เป็นไปอย่างราบรื่น
การแมปลักษณะ
เราขอแนะนำให้ใช้คลัสเตอร์สถานะการทำงานของช่องเตาอบแทนการติดตั้งใช้งานMatterอุปกรณ์เตาอบโดยใช้คลัสเตอร์โหมดเตาอบและเปิด/ปิด
คลัสเตอร์นี้แสดงใน Home API โดยลักษณะ OvenCavityOperationalStateTrait
และแมปกับลักษณะ Cloud-to-cloud
RunCycle
โดยจะกำหนดระยะต่างๆ เช่น "อุ่นก่อน" "อุ่นแล้ว" และ "เย็นลง"
API สำหรับ Home | Cloud-to-cloud |
---|---|
OvenCavityOperationalState
|
RunCycle
|
โมเดลข้อมูลของ Cloud-to-cloud Oven มีข้อจำกัด
Cloud-to-cloud โมเดลข้อมูลเตาอบอนุญาตให้มีเพียงช่องเดียว
ที่มี RunCycle
เดียว ในทางตรงกันข้าม Matterจะจำลอง
เตาอบแบบหลายช่องเป็นอุปกรณ์ปลายทางที่มีคลัสเตอร์สถานะการทำงานของช่องเตาอบ
สำหรับแต่ละช่อง
สำหรับอุปกรณ์ Oven บางรุ่น การเปลี่ยนรายการเฟสที่ รันไทม์อาจเหมาะสม เช่น เตาอบที่รองรับการอุ่นล่วงหน้าอาจมีรายการที่แตกต่างกันในรายการเฟสระหว่างเฟสการอุ่นล่วงหน้ามากกว่าระหว่างเฟสการทำความร้อนหรือการระบายความร้อน
การติดตั้งใช้งานที่แนะนำ
ตามที่กล่าวไว้ในส่วนก่อนหน้า การติดตั้งใช้งานMatterเตาอบ
ควรใช้คลัสเตอร์สถานะการทำงานของช่องเตาอบ ซึ่ง
ได้รับการจำลองใน Home API เป็นลักษณะOvenCavityOperationalStateTrait
เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด โปรดตรวจสอบว่าCloud-to-cloudอุปกรณ์เตาอบ
ใช้ลักษณะ RunCycle
และเผยแพร่
สถานะปัจจุบันโดยการตั้งค่าแอตทริบิวต์ currentRunCycle
แอตทริบิวต์นี้สามารถสังเกตได้โดย Home API ผ่านแอตทริบิวต์
OvenCavityOperationalStateTrait.phaseList
และ
OvenCavityOperationalStateTrait.currentPhase
อุปกรณ์เตาอบควรเผยแพร่การแจ้งเตือนในอุปกรณ์เกี่ยวกับรอบการทำงานด้วยการอัปเดตแอตทริบิวต์ priority
, status
และ currentCycleRemainingTime
ของ RunCycle
ตัวอย่างต่อไปนี้จะส่งผลให้มีการส่งเหตุการณ์
OperationalStateTrait.OperationCompletion
และสามารถใช้เพื่อระบุว่าเตาอบเปลี่ยนจาก
รอบ "อุ่น" เป็นรอบ "อุ่นเสร็จ" แล้ว
{
"currentRunCycle": [
{
"currentCycle": "pre-heating",
"nextCycle": "pre-heated",
"lang": "en"
}
],
"currentTotalRemainingTime": 1200,
"currentCycleRemainingTime": 300
}
ใช้เตาอบในการทำงานอัตโนมัติ
เมื่อสร้างการทำงานอัตโนมัติสำหรับเตาอบที่ใช้คลัสเตอร์สถานะการทำงานของช่องเตาอบ ให้อ้างอิงแอตทริบิวต์ currentPhase
เพื่อดูว่าเตาอบอยู่ในรอบใด
sequential {
let operationalState = starter(
oven,
OvenDeviceType.self,
OvenCavityOperationalStateTrait.self
)
operationalState
condition {
operationalState.phaseList[operationalState.currentPhase.toUInt()].equals("pre-heated")
}
for speaker in speakers {
action(speaker, SpeakerDeviceType.self) {
Google.AssistantBroadcastTrait.broadcast(msg: "Oven Cycle Complete")
}
}
}
ดูตัวอย่างทั้งหมดได้ที่ หากทีวีเปิดอยู่เมื่อรอบการทำงานของเตาอบเสร็จสิ้น ไฟในห้องนั่งเล่นจะกะพริบและลำโพงอัจฉริยะจะออกอากาศว่า "รอบการทำงานของเตาอบเสร็จสิ้น"