ความสามารถในการแลกเปลี่ยนข้อมูล

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

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

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

เตาอบ

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

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

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

API สำหรับ Home 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
}

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