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

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

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

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

เตาอบ

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

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

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

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

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

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

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

เพื่อให้ได้ผลลัพธ์ที่ดีที่สุด โปรดตรวจสอบว่าCloud-to-cloudอุปกรณ์เตาอบ ใช้ลักษณะ RunCycle และเผยแพร่ สถานะปัจจุบันโดยการตั้งค่าแอตทริบิวต์ currentRunCycle แอตทริบิวต์นี้สามารถสังเกตได้โดย Home API ผ่านแอตทริบิวต์ OvenCavityOperationalState.phaseList และ OvenCavityOperationalState.currentPhase

อุปกรณ์เตาอบควรเผยแพร่การแจ้งเตือนในอุปกรณ์เกี่ยวกับรอบการทำงานด้วยการอัปเดตแอตทริบิวต์ priority, status และ currentCycleRemainingTime ของ RunCycle ตัวอย่างต่อไปนี้จะส่งเหตุการณ์ OperationalState.OperationCompletion และใช้เพื่อระบุว่าเตาอบเปลี่ยนจากรอบ "อุ่น" เป็นรอบ "อุ่นแล้ว"

{
  "currentRunCycle": [
    {
      "currentCycle": "pre-heating",
      "nextCycle": "pre-heated",
      "lang": "en"
    }
  ],
  "currentTotalRemainingTime": 1200,
  "currentCycleRemainingTime": 300
}

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

เมื่อสร้างการทำงานอัตโนมัติสำหรับเตาอบที่ใช้คลัสเตอร์สถานะการทำงานของช่องเตาอบ ให้อ้างอิงแอตทริบิวต์ currentPhase เพื่อดูว่าเตาอบอยู่ในรอบใด

   sequential {
    val starterNode =
      starter<_>(oven, OvenDevice, OvenCavityOperationalState /* Or OperationalState */)
    condition {
      expression = starterNode.phaseList[operationalState.currentPhase.toUInt()] equals "pre-heated"
    }
    action(speaker, SpeakerDevice) {
    command(AssistantBroadcast.broadcast("Oven Cycle Complete"))
  }
  // Additional actions here as needed
}

ดูตัวอย่างทั้งหมดได้ที่กะพริบไฟและประกาศเมื่อเตาอบถึงอุณหภูมิที่เลือก