Tổng quan về Home API cho Android

API Google Home dành cho Android cung cấp một nền tảng API thống 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 là thiết bị được liên kết với cấu trúc và phòng của người dùng.

Home API xác định các thực thể sau đây 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ó 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 nhà cũng như thiết bị để tự động hoá các tác vụ trong nhà.

Hình 1 minh hoạ kiến trúc này:

Sơ đồ mô tả cấu trúc API Home cho một ứng dụng Android
Hình 1: Kiến trúc của Home API cho ứng dụng Android

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. Xem bài viết 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ác cụm này được biểu thị trong Home API dưới dạng Matter các đặc điểm tiêu chuẩn. Home API hỗ trợ bộ cụm tiêu chuẩn như được xác định trong thông số kỹ thuật hiện tại.MatterMatter

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 Home API dưới dạng các đặ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 Cloud-to-cloud chương trình.

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 gọ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.

Sơ đồ mô tả hệ sinh thái Home API cho một ứng dụng Android
Hình 2: Hệ sinh thái Home API cho ứng dụng Android

Hệ sinh thái này bao gồm Công cụ tự động hoá của Google lưu trữ và chạy các quy trình tự động hoá. Các quy trình 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.

Google Home Developer Console được dùng để quản lý tất cả các giai đoạn của 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. Công cụ này giúp đơn giản hoá quy trình phát triển đồng thời cung cấp các công cụ mạnh mẽ và phân phối thông qua hệ sinh thái Google Home.

Ngôn ngữ

Home API dành cho Android được viết bằng Kotlin và cung cấp một giao diện Kotlin đúng cách 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ố lợi thế so với API gói 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:

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 đạ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 vào bộ nhớ đệm các đối tượng hoặc kiểm tra tính bằng nhau 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.

Ánh xạ thuật ngữ

Các thực thể trong Home API ánh xạ đến MatterCloud-to-cloud các khái niệm 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 Câu hỏi nối tiếp, Thông báo