Tổng quan về Home API cho Android

Google Home API 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 quan đến 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:

  • Nhà đại diện cho một ngôi nhà có các phòng và thiết bị.
  • Phòng là một phần của nhà 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 lệnh.
  • Nhóm thiết bị là tập hợp các thiết bị do người dùng xác định trong một cấu trúc.
  • Quy trình tự động hoá là một phần của nhà và sử dụng siêu dữ liệu cũng như 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:

Sơ đồ mô tả cấu trúc Home API cho một ứng dụng Android
Hình 1: Cấu trúc của Home API cho một ứ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à 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ụm, được biểu thị trong Home API dưới dạng các đặc điểm tiêu chuẩn của Matter. Home API hỗ trợ bộ cụm Matter tiêu chuẩn như được xác định trong thông số kỹ thuật hiện tại của Matter.

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 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ợ một nhóm các đặc điểm của 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 gọn để xây dựng, quản lý, bảo mật và tích hợp các trải nghiệm nhà thông minh. Hình 2 cho thấy cách 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 một ứng dụng Android

Hệ sinh thái này bao gồm Công cụ tự động hoá của Google, giúp lưu trữ và chạy quy trình tự động hoá, từ đó cung cấp một cách để tự động hoá các nhiệm 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 nhà. 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, phát triển, thử nghiệm và chứng nhận cho đến khi ra mắt. Nền tảng 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ụ và khả năng phân phối mạnh mẽ 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à gói thuê bao. Điều này mang lại một số lợi ích 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 về coroutine, flow và Jetpack Compose trong Kotlin nếu chưa biết:

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à 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 đối tượng vào bộ nhớ đệm hoặc kiểm tra tính tương đươ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ể nào có mã nhận dạng.

Liên kết thuật ngữ

Các thực thể trong Home API liên kết với 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
Ra lệnh Ra lệnh Ra lệnh
Sự kiện Sự kiện Phản hồi tiếp theo, Thông báo