Google Home API สำหรับ 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 ซึ่งจัดเก็บและเรียกใช้การทำงานอัตโนมัติที่ช่วยให้คุณทำงานและการตั้งค่าอุปกรณ์ในบ้านได้โดยอัตโนมัติ
Home API ใช้ OAuth 2.0 เพื่อให้สิทธิ์เข้าถึงอุปกรณ์ในบ้าน OAuth ช่วยให้ผู้ใช้ให้สิทธิ์แก่แอปหรือบริการได้โดยไม่ต้องเปิดเผยข้อมูลเข้าสู่ระบบ
Google Home Developer Console ใช้เพื่อจัดการทุกขั้นตอนของโปรเจ็กต์ Home API ตั้งแต่การยืนยันแบรนด์ การพัฒนา การทดสอบ และการรับรอง ไปจนถึงการเปิดตัวในที่สุด ซึ่งจะช่วยปรับปรุงกระบวนการพัฒนาให้มีประสิทธิภาพยิ่งขึ้น พร้อมทั้งมอบเครื่องมือที่มีประสิทธิภาพและการจัดจำหน่ายผ่านระบบนิเวศของ Google Home
ภาษา
Home API สำหรับ Android เขียนด้วยภาษา Kotlin และมีอินเทอร์เฟซ Kotlin ที่ใช้สำนวนซึ่งใช้ Flow เพื่อจัดการสถานะและการสมัครใช้บริการ ซึ่งมีข้อดีหลายประการเหนือ API การสมัครใช้บริการมาตรฐาน
เราขอแนะนำให้คุณทำความคุ้นเคยกับเอกสารประกอบของ Kotlin เกี่ยวกับโครูทีน, โฟลว์ และ Jetpack Compose หากยังไม่เคยอ่าน
- พัฒนาแอป Android ด้วย Kotlin
- เรียนรู้ Kotlin สำหรับ Android
- Kotlin Coroutine ใน Android Codelab ที่เฉพาะเจาะจงเหล่านี้อาจเป็นประโยชน์
- Kotlin Flow ใน 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 |
|---|---|---|
| ลักษณะเฉพาะ | คลัสเตอร์ | ลักษณะเฉพาะ |
| แอตทริบิวต์ | แอตทริบิวต์ | แอตทริบิวต์, สถานะ |
| คำสั่ง | คำสั่ง | คำสั่ง |
| กิจกรรม | กิจกรรม | การตอบกลับเพื่อติดตามผล, การแจ้งเตือน |