Home API จะแสดงอุปกรณ์ทั้งหมดในระบบนิเวศของ 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เป็นอันดับแรก ประเภทหรือลักษณะของอุปกรณ์ Matter จะมีความสำคัญเหนือกว่าแอนะล็อก Cloud-to-cloud
ดูรายการประเภทอุปกรณ์และลักษณะของอุปกรณ์ที่รองรับได้ที่ประเภทอุปกรณ์ที่รองรับ
ลักษณะ
ระบบจะสร้างลักษณะเวอร์ชัน Kotlin เพื่อใช้ใน Home API และมีฟีเจอร์เพิ่มเติมสำหรับ Home API โดยเฉพาะ (ไม่พบใน Matter หรือ Cloud-to-cloud) ตัวอย่างเช่น ลักษณะแต่ละรายการจะมีเมธอดสำหรับตรวจสอบว่าลักษณะรองรับแอตทริบิวต์หรือคําสั่งที่เฉพาะเจาะจงหรือไม่ ซึ่งมีประโยชน์เมื่อต้องพิจารณาว่าอุปกรณ์ของผู้ใช้สามารถอ่านสถานะหรือดำเนินการบางอย่างได้หรือไม่ เนื่องจากอุปกรณ์บางเครื่องในประเภทอุปกรณ์หนึ่งๆ อาจไม่ได้มีฟีเจอร์เหมือนกันทั้งหมด
โดยแต่ละลักษณะจะอยู่ในเนมสเปซของตัวเองและต้องนำเข้าทีละรายการเพื่อใช้งาน
ตัวอย่างเช่น หากต้องการใช้Matterลักษณะเปิด/ปิดและประเภทอุปกรณ์แบบเปิด/ปิดของหน่วยปลั๊กอิน ให้นําเข้าแพ็กเกจต่อไปนี้ลงในแอปพลิเคชัน
import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice
สำหรับประเภทอุปกรณ์โรงรถ (จากสมาร์ทโฮมของ Google) ให้ใส่ทั้งแอตทริบิวต์ Matter และ Google ดังนี้
import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice
Android Studio มีฟังก์ชันการทำงานแบบเติมข้อความอัตโนมัติและมักจะจัดการชื่อแพ็กเกจแบบเต็มให้คุณเมื่อเพิ่มบรรทัด import
ลงในไฟล์ต้นฉบับในโปรเจ็กต์ อย่างไรก็ตาม ชื่อแพ็กเกจจะไม่สอดคล้องกันในทุกประเภทและลักษณะของอุปกรณ์ ดูข้อมูลอ้างอิงเพื่อยืนยันว่าชื่อแพ็กเกจถูกต้องสำหรับแต่ละ DeviceType
หรือ Trait
ระบบยังรองรับการใช้ลักษณะร่วมกับการทำงานอัตโนมัติด้วย แต่อาจจํากัด และลักษณะบางอย่างใช้ได้กับการทำงานอัตโนมัติเท่านั้น ดูรายการได้ที่การสนับสนุนลักษณะของ Automation API
องค์ประกอบประเภทอุปกรณ์
Home API รองรับMatterคลัสเตอร์แอปพลิเคชัน 1.3 ส่วนใหญ่ ในฐานะลักษณะในแมเดลข้อมูล ระบบจะไม่แสดงลักษณะที่ไม่สอดคล้องกับการควบคุมหรือสถานะของอุปกรณ์ และไม่มียูทิลิตีใดๆ สำหรับผู้ใช้ปลายทาง เช่น การเชื่อมโยงและกลุ่ม ผ่าน Home API
โดยปกติแล้ว แอตทริบิวต์ที่มาจากแอตทริบิวต์สมาร์ทโฮมของ Cloud-to-cloud จะมีชื่อเดียวกันระหว่าง Cloud-to-cloud กับ Home API เช่น ในตัวอย่างของ OpenClose ส่วนอื่นๆ จะแสดงเป็นส่วนขยายของลักษณะMatterที่สร้างขึ้นโดยใช้ส่วนขยายMatterเฉพาะผู้ผลิต ลักษณะเหล่านี้ช่วยปิดช่องโหว่ของลักษณะ smart home ที่ฟังก์ชันการทำงานแบ่งออกเป็น 2 ส่วนระหว่าง SDK ของ Matter กับระบบนิเวศของ Google Home ตัวอย่างที่เฉพาะเจาะจงของกรณีนี้คือประเภทอุปกรณ์ Google*
ซึ่งมาจาก Cloud-to-cloud แต่ยังไม่มีอุปกรณ์ที่ทำงานร่วมกันได้แบบ Matter
ประเภทอุปกรณ์ประกอบด้วยลักษณะจากแหล่งที่มาแหล่งใดแหล่งหนึ่งหรือทั้ง 2 แหล่ง นั่นคือ Matter หรือ Cloud-to-cloud
เช่น ประเภทอุปกรณ์พัดลมประกอบด้วยทั้ง 2 ประเภทและมีลักษณะ FanControl 2 รายการดังนี้
- ลักษณะ FanControl Matter มีฟังก์ชันการทำงานทั้งหมดจากลักษณะ FanControl Matter
- ลักษณะ ExtendedFanControl ของ Google มีฟังก์ชันการทำงานทั้งหมดจากลักษณะ smart home FanSpeed ของ Google ที่ไม่ครอบคลุมโดยลักษณะ FanControl Matter
การประกอบลักษณะประเภทนี้ให้รูปแบบที่ยืดหยุ่นสําหรับฟังก์ชันการทํางานของประเภทอุปกรณ์ที่สมบูรณ์ โดยแยกรูปแบบข้อมูล smart home พื้นฐานออก