โมเดลข้อมูลใน 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 ใน API สำหรับ Home ลักษณะที่มาจาก Matter จะเรียกว่าลักษณะ ไม่ใช่คลัสเตอร์

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

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

Traits

ระบบจะสร้างแอตทริบิวต์เวอร์ชัน 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 ใน iOS

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

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

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

ประเภทอุปกรณ์ประกอบด้วยลักษณะจากแหล่งที่มาแหล่งใดแหล่งหนึ่งหรือทั้ง 2 แหล่ง นั่นคือ 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รูปแบบข้อมูลsmart homeพื้นฐาน