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 มีฟังก์ชันการทำงานทั้งหมดจาก MatterIdentifyTrait
- ลักษณะ
FanControlTrait
Matter มีฟังก์ชันการทำงานทั้งหมดจาก MatterFanControlTrait
- ลักษณะ
ExtendedFanControlTrait
Google มีฟังก์ชันการทำงานทั้งหมดจาก smart homeFanSpeedTrait
ของ Google ที่ไม่ครอบคลุมโดยลักษณะFanControlTrait
Matter
การประกอบลักษณะประเภทนี้ให้รูปแบบที่ยืดหยุ่นสําหรับฟังก์ชันการทํางานของประเภทอุปกรณ์ที่สมบูรณ์ โดยแยกsmart homeรูปแบบข้อมูลsmart homeพื้นฐาน