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