Google Home API cho Android cung cấp một nền tảng API hợp nhất để cho phép nhà phát triển tương tác với trạng thái của các thực thể trong nhà của người dùng. Các thực thể này có thể mô tả các thiết bị và thông tin không phải thiết bị liên quan đến cấu trúc và các phòng của người dùng.
Home API xác định những thực thể sau mà người dùng có thể tương tác:
- Cấu trúc đại diện cho một ngôi nhà có chứa các phòng và thiết bị.
- Phòng là một phần của cấu trúc và chứa các thiết bị.
- Thiết bị triển khai các đặc điểm chứa thuộc tính, tuân thủ các loại, phát ra sự kiện và phản hồi các lệnh.
- Quy trình tự động hoá là một phần của cấu trúc và sử dụng siêu dữ liệu cũng như các thiết bị trong nhà để tự động hoá các việc cần làm trong nhà.
Hình 1 minh hoạ cấu trúc này:
Các loại thiết bị Home API có thể được hỗ trợ bởi Matter, một tiêu chuẩn mở cho nhà thông minh, hoặc là một thiết bị Cloud-to-cloud trong hệ sinh thái Google Home. Một số loại thiết bị có thể kết hợp chức năng của cả hai. Hãy xem phần Các loại thiết bị được hỗ trợ trên Android để biết thêm thông tin.
Trong Matter, chức năng của thiết bị được nhóm theo các cụm, được biểu thị trong Home API dưới dạng các đặc điểm tiêu chuẩn Matter. Các API Home hỗ trợ bộ tiêu chuẩn gồm các cụm Matter như được xác định trong quy cách Matter hiện tại.
Trong hệ sinh thái Google Home, chức năng của thiết bị được nhóm theo các đặc điểm nhà thông minh. Các đặc điểm này được thể hiện trong Home API dưới dạng đặc điểm nhà thông minh của Google. Home API hỗ trợ bộ đặc điểm nhà thông minh như được xác định trong chương trình Cloud-to-cloud.
Các đặc điểm khác, chẳng hạn như Cụm dành riêng cho nhà sản xuất và Đặc điểm nền tảng, cũng có sẵn. Để tìm hiểu thêm, hãy xem bài viết Mô hình dữ liệu trên Android.
Hệ sinh thái
Hệ sinh thái Google Home cung cấp một nền tảng tinh giản để xây dựng, quản lý, bảo mật và tích hợp trải nghiệm nhà thông minh. Hình 2 cho thấy cách tất cả các thành phần hoạt động cùng nhau.
Hệ sinh thái này bao gồm Google Automation Engine (Công cụ tự động hoá của Google) giúp lưu trữ và chạy các chế độ tự động hoá. Các chế độ này cung cấp một cách để tự động hoá các tác vụ và chế độ cài đặt thiết bị trong nhà.
Home API sử dụng OAuth 2.0 để cấp quyền truy cập vào các thiết bị trong cấu trúc. OAuth cho phép người dùng cấp quyền cho một ứng dụng hoặc dịch vụ mà không cần tiết lộ thông tin đăng nhập của họ.
Google Home Developer Console được dùng để quản lý tất cả các giai đoạn của một dự án Home API, từ xác minh thương hiệu, đến phát triển, kiểm thử và chứng nhận để cuối cùng là ra mắt. Điều này giúp tinh giản quy trình phát triển, đồng thời cung cấp các công cụ mạnh mẽ và khả năng phân phối thông qua hệ sinh thái Google Home.
Ngôn ngữ
Home API cho Android được viết bằng Kotlin và cung cấp một giao diện Kotlin đặc trưng sử dụng Flow để quản lý trạng thái và hoạt động đăng ký. Điều này mang lại một số lợi thế so với API thuê bao tiêu chuẩn.
Bạn nên làm quen với tài liệu Kotlin về coroutine, luồng và Jetpack Compose (nếu chưa):
- Phát triển ứng dụng Android bằng Kotlin
- Tìm hiểu về Kotlin cho Android
- Coroutine của Kotlin trên Android. Các lớp học lập trình cụ thể sau đây có thể hữu ích:
- Flow Kotlin trên Android và cụ thể hơn là StateFlow.
- Trạng thái và Jetpack Compose, cụ thể là hàm
collectAsStateWithLifecycle()
. Hàm này tự động quản lý việc đăng ký và huỷ đăng ký các luồng dựa trên việc giao diện người dùng hiển thị trạng thái đó có thực sự ở nền trước hay không. - Nếu bạn đang làm việc với Automation API, thì việc đọc về các trình tạo loại an toàn của Kotlin sẽ giúp bạn hiểu cách hoạt động của Automation DSL.
Giá trị nhận dạng thực thể
Mỗi thực thể trong Home API đều có một mã nhận dạng chính. Mã nhận dạng này là giá trị nhận dạng duy nhất và cố định, sẽ không bao giờ thay đổi trong suốt vòng đời của thực thể. Bạn có thể dùng mã nhận dạng này để lưu các đối tượng vào bộ nhớ đệm hoặc kiểm tra tính bình đẳng vì siêu dữ liệu của một thực thể có thể thay đổi.
Hãy xem giao diện HasId
để tìm hiểu những thực thể có mã nhận dạng.
Liên kết thuật ngữ
Các thực thể trong Home API ánh xạ đến các khái niệm Matter và Cloud-to-cloud như sau:
Home API | Matter | Cloud-to-cloud |
---|---|---|
Đặc điểm | Cụm | Đặc điểm |
Thuộc tính | Thuộc tính | Thuộc tính, Trạng thái |
Lệnh | Lệnh | Lệnh |
Sự kiện | Sự kiện | Phản hồi theo dõi, Thông báo |