API Google Home dành cho Android cung cấp một giao diện 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ả thiết bị và thông tin không phải thiết bị liên kết với cấu trúc và phòng của người dùng.
API Home xác định các 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à 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.
- Tự động hoá là một phần của cấu trúc và sử dụng siêu dữ liệu nhà và thiết bị để 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à 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ợ để biết thêm thông tin.
Trong Matter, chức năng của thiết bị được nhóm theo cụm, được biểu thị trong API Home dưới dạng các đặc điểm chuẩn Matter. API Home hỗ trợ tập hợp tiêu chuẩn của 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 biểu thị trong API Home dưới dạng các đặc điểm nhà thông minh của Google. API Home hỗ trợ tập hợp các đặc điểm của nhà thông minh như được xác định trong chương trình Cloud-to-cloud.
Ngoài ra, bạn cũng có thể sử dụng 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. Để tìm hiểu thêm, hãy xem phần Mô hình dữ liệu.
Ngôn ngữ
API Home được viết bằng Kotlin và cung cấp giao diện Kotlin theo quy ước sử dụng Flow để quản lý trạng thái và gói thuê bao. Điều này mang lại một số ưu điểm 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, flow và Jetpack Compose nếu chưa làm quen:
- 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. Sau đây là các lớp học lập trình cụ thể 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ý khỏi 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, hãy đọc về trình tạo loại an toàn Kotlin để 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 API Home đều có một mã nhận dạng đại diện cho giá trị nhận dạng chính của thực thể đó. Mã nhận dạng này là một giá trị nhận dạng duy nhất và ổn định, sẽ không bao giờ thay đổi trong suốt thời gian tồn tạ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 đồng nhất vì siêu dữ liệu của một thực thể có thể thay đổi.
Xem giao diện HasId
để tìm hiểu những thực thể có mã nhận dạng.
Ánh xạ thuật ngữ
Các thực thể trong API Home liên kết với các khái niệm Matter và Cloud-to-cloud như sau:
API Home | 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 | Nội dung trả lời tiếp theo, Thông báo |