API ของ Google Home สำหรับ Android มี API แบบรวมเพื่อช่วยให้นักพัฒนาแอปโต้ตอบกับสถานะของเอนทิตีในบ้านของผู้ใช้ได้ เอนทิตีเหล่านี้สามารถอธิบายอุปกรณ์และข้อมูลที่ไม่ใช่อุปกรณ์ที่เชื่อมโยงกับโครงสร้างและห้องของผู้ใช้
Home API จะกำหนดเอนทิตีต่อไปนี้ที่ผู้ใช้โต้ตอบได้
- โครงสร้างแสดงถึงบ้านที่มีห้องและอุปกรณ์
- ห้องเป็นส่วนหนึ่งของโครงสร้างและมีอุปกรณ์
- อุปกรณ์จะใช้ลักษณะที่มีแอตทริบิวต์ เป็นไปตามประเภท ส่ง เหตุการณ์ และตอบสนองต่อคำสั่ง
- การทำงานอัตโนมัติเป็นส่วนหนึ่งของโครงสร้างและใช้ข้อมูลเมตาและอุปกรณ์ในบ้านเพื่อ ตั้งค่างานในบ้านให้ทำงานอัตโนมัติ
รูปที่ 1 แสดงสถาปัตยกรรมนี้
ประเภทอุปกรณ์ Home API อาจได้รับการสนับสนุนจาก Matter ซึ่งเป็นมาตรฐานเปิดสำหรับ สมาร์ทโฮม หรืออาจเป็นอุปกรณ์ Cloud-to-cloud ในระบบนิเวศของ Google Home อุปกรณ์บางประเภทอาจรวมฟังก์ชันการทำงานจากทั้ง 2 อย่าง ดูข้อมูลเพิ่มเติมได้ที่ ประเภทอุปกรณ์ที่รองรับใน Android
ใน Matter ฟังก์ชันการทำงานของอุปกรณ์จะจัดกลุ่มตามคลัสเตอร์ ซึ่งแสดงใน Home API เป็นMatter ลักษณะมาตรฐาน Home API รองรับชุดมาตรฐานของ Matter คลัสเตอร์ตามที่กำหนดไว้ใน Matter ข้อกำหนดปัจจุบัน
ในระบบนิเวศของ Google Home ฟังก์ชันการทำงานของอุปกรณ์จะจัดกลุ่มตามลักษณะสมาร์ทโฮม ซึ่งแสดงใน Home API เป็นลักษณะสมาร์ทโฮมของ Google Home API รองรับชุดลักษณะสมาร์ทโฮมตามที่กำหนดไว้ในโปรแกรม Cloud-to-cloud
นอกจากนี้ ยังมีลักษณะอื่นๆ เช่น คลัสเตอร์เฉพาะของผู้ผลิตและลักษณะของแพลตฟอร์มด้วย ดูข้อมูลเพิ่มเติมได้ที่ โมเดลข้อมูลใน Android
ระบบนิเวศ
ระบบนิเวศของ Google Home เป็นรากฐานที่คล่องตัวสำหรับการสร้าง การจัดการ การรักษาความปลอดภัย และการผสานรวมประสบการณ์การใช้งานสมาร์ทโฮม รูปที่ 2 แสดงให้เห็นว่า คอมโพเนนต์ทั้งหมดทำงานร่วมกันอย่างไร
ระบบนิเวศประกอบด้วย Google Automation Engine ซึ่งจัดเก็บและ เรียกใช้การทำงานอัตโนมัติที่ช่วยให้คุณ ทำงานและตั้งค่าอุปกรณ์ในบ้านโดยอัตโนมัติได้
Home API ใช้ OAuth 2.0 เพื่อให้สิทธิ์เข้าถึงอุปกรณ์ในโครงสร้าง OAuth ช่วยให้ผู้ใช้ให้สิทธิ์แก่แอปหรือบริการได้โดยไม่ต้องเปิดเผยข้อมูลเข้าสู่ระบบ
Google Home Developer Console ใช้เพื่อจัดการทุกขั้นตอนของโปรเจ็กต์ Home APIs ตั้งแต่การยืนยันแบรนด์ การพัฒนา การทดสอบ และการรับรอง ไปจนถึง การเปิดตัวในที่สุด ซึ่งจะช่วยปรับปรุงกระบวนการพัฒนาให้มีประสิทธิภาพยิ่งขึ้น พร้อมทั้งมอบ เครื่องมือที่มีประสิทธิภาพและการจัดจำหน่ายผ่านระบบนิเวศของ Google Home
ภาษา
Home API สำหรับ Android เขียนด้วย Kotlin และมีอินเทอร์เฟซ Kotlin ที่เป็นสำนวนซึ่งใช้ Flow เพื่อจัดการสถานะและการสมัครใช้บริการ ซึ่งมีข้อได้เปรียบหลายประการเหนือกว่า API การสมัครใช้บริการมาตรฐาน
เราขอแนะนำให้คุณทำความคุ้นเคยกับเอกสารประกอบ Kotlin เกี่ยวกับโครูทีน Flow และ Jetpack Compose หากยังไม่เคยทำ
- พัฒนาแอป Android ด้วย Kotlin
- เรียนรู้ Kotlin สำหรับ Android
- โครูทีน Kotlin ใน Android Codelab ต่อไปนี้อาจมีประโยชน์
- โฟลว์ Kotlin ใน Android และโดยเฉพาะอย่างยิ่ง StateFlow
- State และ Jetpack Compose โดยเฉพาะฟังก์ชัน
collectAsStateWithLifecycle()
ฟังก์ชันนี้จะจัดการการ ติดตามและเลิกติดตามโฟลว์โดยอัตโนมัติ โดยขึ้นอยู่กับว่า UI ที่แสดงสถานะนั้น อยู่เบื้องหน้าจริงหรือไม่ - หากคุณกำลังทำงานกับ Automation API การอ่านเกี่ยวกับ ตัวสร้างที่ปลอดภัยตามประเภทของ Kotlin จะเป็นประโยชน์ในการทำความเข้าใจวิธีที่ Automation DSL ทำงาน
ตัวระบุเอนทิตี
เอนทิตีแต่ละรายการใน Home API จะมีรหัสซึ่งแสดงถึงตัวระบุหลัก รหัสนี้เป็นตัวระบุที่ไม่ซ้ำกันและคงที่ซึ่งจะไม่เปลี่ยนแปลงตลอดอายุการใช้งานของเอนทิตี รหัสนี้ใช้เพื่อแคชออบเจ็กต์หรือตรวจสอบ ความเท่ากันได้เนื่องจากข้อมูลเมตาของเอนทิตีอาจเปลี่ยนแปลงได้
ดูอินเทอร์เฟซ HasId
เพื่อดูว่าเอนทิตีใดมีรหัส
การแมปคำศัพท์
เอนทิตีใน Home API จะแมปกับแนวคิด Matter และ Cloud-to-cloud ดังนี้
API สำหรับ Home | Matter | Cloud-to-cloud |
---|---|---|
ลักษณะ | คลัสเตอร์ | ลักษณะ |
แอตทริบิวต์ | แอตทริบิวต์ | แอตทริบิวต์ สถานะ |
คำสั่ง | คำสั่ง | คำสั่ง |
กิจกรรม | กิจกรรม | การตอบกลับติดตามผล การแจ้งเตือน |