โมเดลข้อมูลใน iOS

Home API สำหรับ iOS จะแสดงอุปกรณ์ทั้งหมดในระบบนิเวศของ Google Home ใน รูปแบบข้อมูลแบบรวม โมเดลข้อมูลนี้ครอบคลุมอุปกรณ์ทุกประเภท (จาก Google Nest หรือผู้ผลิตบุคคลที่สาม) โดยไม่คำนึงถึงเทคโนโลยีสมาร์ทโฮม พื้นฐาน (เช่น Matter หรือ Cloud-to-cloud) และมี API ทั่วไปสำหรับสร้างประสบการณ์ของผู้ใช้สำหรับทั้งsmart home และนักพัฒนาแอปบนอุปกรณ์เคลื่อนที่

ประเภทอุปกรณ์

ประเภทอุปกรณ์ที่แสดงใน Home API คือการรวมโมเดลข้อมูล Matter และ Cloud-to-cloud บางรายการได้มาจาก Matter โดยตรง บางรายการเป็นส่วนขยายของ ประเภทอุปกรณ์ Matter และบางรายการได้มาจาก Cloud-to-cloud

ประเภทอุปกรณ์มีลักษณะที่ใช้ในการควบคุมและจัดการอุปกรณ์ ลักษณะจะมาจากคลัสเตอร์ Matter และลักษณะ Cloud-to-cloud เช่นเดียวกับ ประเภทอุปกรณ์ และจะแสดงในรูปแบบทั่วไปที่ คล้ายกับคลัสเตอร์ Matter ใน Home API Matterลักษณะที่ได้มาจะเรียกว่าลักษณะ ไม่ใช่คลัสเตอร์

ดังนั้น ประเภทและลักษณะของอุปกรณ์ใน Home API จึงมีไว้เพื่อเป็นMatter-first Matterประเภทอุปกรณ์หรือ ลักษณะจะมีความสำคัญเหนือกว่าCloud-to-cloudแบบอนาล็อก

ดูรายการประเภทอุปกรณ์และลักษณะของอุปกรณ์ได้ที่ประเภทอุปกรณ์ที่รองรับใน iOS

ลักษณะ

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

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

import GoogleHomeTypes

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

import GoogleHomeTypes

typealias OpenCloseTrait = Google.OpenCloseTrait
typealias OnOffTrait = Matter.OnOffTrait
typealias FanDevice = Matter.FanDeviceType

ลักษณะส่วนใหญ่รองรับการใช้งานกับการทำงานอัตโนมัติ และลักษณะบางอย่างใช้ได้ กับการทำงานอัตโนมัติเท่านั้น ดูรายละเอียดเพิ่มเติมได้ที่การรองรับลักษณะของ Automation API ใน Android

องค์ประกอบประเภทอุปกรณ์

API ของบ้านรองรับMatterคลัสเตอร์แอปพลิเคชัน ส่วนใหญ่เป็นลักษณะในโมเดลข้อมูล ลักษณะที่ไม่สอดคล้องกับการควบคุมอุปกรณ์หรือสถานะ และไม่มีประโยชน์สำหรับผู้ใช้ปลายทาง เช่น การเชื่อมโยงและกลุ่ม จะไม่แสดงผ่าน Home API

ลักษณะที่ได้จากCloud-to-cloudลักษณะสมาร์ทโฮมมักจะมี ชื่อเดียวกันระหว่าง Cloud-to-cloud กับ Home API เช่น ใน ตัวอย่างของ OpenCloseTrait ส่วนอื่นๆ จะแสดงเป็นส่วนขยายของMatterลักษณะที่สร้างขึ้นโดยใช้Matter ส่วนขยายเฉพาะของผู้ผลิต ลักษณะเหล่านี้จะช่วยลดช่องว่างสำหรับลักษณะ smart home ที่ฟังก์ชันการทำงานแยกกันระหว่าง SDK Matter กับระบบนิเวศของ Google Home ตัวอย่างที่เฉพาะเจาะจง ของเรื่องนี้คือGoogle*ประเภทอุปกรณ์ที่มาจาก Cloud-to-cloud แต่ยังไม่มีอุปกรณ์ที่เทียบเท่ากับ Matter

ประเภทอุปกรณ์ประกอบด้วยลักษณะจากแหล่งที่มาอย่างน้อย 1 แหล่ง Matter หรือ Cloud-to-cloud

ตัวอย่างเช่น FanDeviceType ประกอบด้วยทั้ง 2 อย่างและมีลักษณะ 3 อย่างดังนี้

  • ลักษณะ IdentifyTrait Matter มีฟังก์ชันทั้งหมดจาก Matter IdentifyTrait
  • ลักษณะ FanControlTrait Matter มีฟังก์ชันทั้งหมดจาก Matter FanControlTrait
  • ExtendedFanControlTrait คุณลักษณะ Google มีฟังก์ชันทั้งหมด จาก smart home FanSpeedTrait ของ Google ที่ไม่ได้ ครอบคลุมอยู่ในคุณลักษณะ FanControlTrait Matter

การประกอบลักษณะประเภทนี้เป็นโมเดลที่ยืดหยุ่นสำหรับฟังก์ชันการทำงานของอุปกรณ์ประเภทต่างๆ อย่างสมบูรณ์ โดยจะแยกsmart homeโมเดลข้อมูลพื้นฐานออก