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