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

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

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

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

เตาอบ

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

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

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

Home API Cloud-to-cloud
OvenCavityOperationalState RunCycle

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

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

ตามที่กล่าวไว้ในส่วนก่อนหน้า การติดตั้งใช้งานเตาอบ 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
}

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