ความสามารถในการทำงานร่วมกันใน iOS

อุปกรณ์ในระบบนิเวศของ Google Home สามารถติดตั้งใช้งานได้โดยใช้ Cloud-to-cloud, Matter หรือทั้ง 2 อย่าง อุปกรณ์บางประเภทมีความซับซ้อนมากกว่าประเภทอื่นๆ และเป็นความท้าทายในการพัฒนาเมื่อใช้ Home API ในลักษณะที่ช่วยให้อินเทอร์เฟซกับอุปกรณ์อื่นๆ ในระบบนิเวศทำงานได้อย่างราบรื่น

ความท้าทายอย่างหนึ่งในการติดตั้งใช้งานอุปกรณ์บางประเภทเหล่านี้คืออุปกรณ์อาจประกอบด้วยลักษณะต่างๆ ที่ผสมผสานกัน การผสมผสานบางรายการอาจทำงานได้ไม่ดีเท่ารายการอื่นๆ นอกจากนี้ โมเดลข้อมูล Cloud-to-cloud จะจับคู่กับโมเดลข้อมูล Matter แต่ก็ไม่ได้จับคู่แบบหนึ่งต่อหนึ่งที่ชัดเจนเสมอไป ดูโมเดลข้อมูลใน iOS ซึ่งจะอธิบายโมเดลข้อมูลและการแมปอย่างละเอียดมากขึ้น

หน้านี้มีข้อมูลเพิ่มเติมเกี่ยวกับโมเดลข้อมูลสำหรับอุปกรณ์ที่เฉพาะเจาะจงซึ่งแมปเข้าด้วยกัน และให้คำแนะนำเกี่ยวกับลักษณะที่จะใช้เพื่อติดตั้งใช้งานอุปกรณ์ประเภทต่างๆ เหล่านั้น

เตาอบ

ประเภทอุปกรณ์เตาอบ (OvenDeviceType) และลักษณะของคอมโพเนนต์ไม่ได้ใช้งานง่ายเหมือนประเภทอุปกรณ์อื่นๆ การติดตั้งใช้งานเตาอบใน Matter มีอยู่หลายวิธี แต่บางวิธีอาจไม่สามารถทำงานร่วมกับอุปกรณ์อื่นๆ หรือระบบนิเวศของ Google Home ได้อย่างราบรื่น

การแมปคุณลักษณะ

เราขอแนะนำให้ใช้คลัสเตอร์ Oven Cavity Operational State แทนการติดตั้งใช้งานอุปกรณ์เตาอบ Matter โดยใช้คลัสเตอร์ Oven Mode และ On Off คลัสเตอร์นี้แสดงใน Home API ด้วยลักษณะ OvenCavityOperationalStateTrait และแมปกับลักษณะ Cloud-to-cloud RunCycle โดยจะกำหนดระยะต่างๆ เช่น "การทำความร้อนล่วงหน้า" "ทำความร้อนล่วงหน้าแล้ว" และ "การทำความเย็น"

API สำหรับ Home Cloud-to-cloud
OvenCavityOperationalState RunCycle

โมเดลข้อมูลเตาอบ Cloud-to-cloud มีข้อจำกัด โมเดลข้อมูล Cloud-to-cloud Oven อนุญาตให้มีช่องเดียวเท่านั้น โดยมี RunCycle เดียว ในทางตรงกันข้าม Matter จะจำลองเตาอบแบบหลายช่องเป็นปลายทางของอุปกรณ์ที่มีคลัสเตอร์สถานะการทำงานของช่องเตาอบสำหรับแต่ละช่อง

สำหรับอุปกรณ์เตาอบบางรุ่น การเปลี่ยนรายการเฟสขณะรันไทม์อาจเหมาะสม ตัวอย่างเช่น เตาอบที่รองรับการอุ่นล่วงหน้าอาจมีรายการที่แตกต่างกันในรายการเฟสระหว่างเฟสการอุ่นล่วงหน้าเมื่อเทียบกับเฟสการทำความร้อนหรือการทำความเย็น

ตามที่ได้กล่าวถึงในส่วนก่อนหน้า การติดตั้งใช้งาน Matter Oven ควรติดตั้งใช้งานคลัสเตอร์ Oven Cavity Operational State ซึ่งจำลองใน Home API เป็นลักษณะ OvenCavityOperationalStateTrait

เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด โปรดตรวจสอบว่าอุปกรณ์ Cloud-to-cloud Oven ใช้ลักษณะ 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
}

ใช้เตาอบในการทำงานอัตโนมัติ

เมื่อสร้างการทำงานอัตโนมัติสำหรับเตาอบที่ใช้คลัสเตอร์ Oven Cavity Operational State ให้อ้างอิงแอตทริบิวต์ 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")
    }
  }
}

ดูตัวอย่างที่เสร็จสมบูรณ์ได้ที่หากทีวีเปิดอยู่เมื่อเตาอบทำงานเสร็จ ไฟในห้องนั่งเล่นจะกะพริบและลำโพงอัจฉริยะจะประกาศว่า "เตาอบทำงานเสร็จแล้ว"