Mô hình dữ liệu trên Android

Home API cho Android trình bày tất cả các thiết bị trong hệ sinh thái Google Home trong một mô hình dữ liệu hợp nhất. Mô hình dữ liệu này bao gồm tất cả các loại thiết bị (từ Google Nest hoặc nhà sản xuất bên thứ ba), bất kể công nghệ nhà thông minh cơ bản (chẳng hạn như Matter hoặc Cloud-to-cloud) và cung cấp một giao diện API chung để xây dựng trải nghiệm người dùng cho cả nhà phát triển smart home và ứng dụng di động.

Loại thiết bị

Các loại thiết bị có trong Home API là sự hợp nhất của các mô hình dữ liệu MatterCloud-to-cloud. Một số được lấy trực tiếp từ Matter, một số là phần mở rộng của các loại thiết bị Matter và một số được lấy từ Cloud-to-cloud.

Các loại thiết bị chứa những đặc điểm dùng để điều khiển và quản lý thiết bị. Giống như các loại thiết bị, đặc điểm được lấy từ các cụm Matter và đặc điểm Cloud-to-cloud, đồng thời được trình bày ở định dạng chung tương tự như định dạng của các cụm Matter. Trong Home API, các đặc điểm có nguồn gốc từ Matter được gọi là đặc điểm chứ không phải cụm.

Do đó, các loại thiết bị và đặc điểm trong Home API được thiết kế theo hướng Matter. Loại thiết bị hoặc đặc điểm Matter được ưu tiên hơn loại thiết bị hoặc đặc điểm Cloud-to-cloud tương tự.

Hãy xem bài viết Các loại thiết bị được hỗ trợ trên Android để biết danh sách các loại thiết bị và đặc điểm của chúng.

Đặc điểm

Các phiên bản Kotlin của đặc điểm được tạo để sử dụng trong Home API và có các tính năng bổ sung dành riêng cho Home API (không có trong Matter hoặc Cloud-to-cloud). Ví dụ: mỗi đặc điểm đều có các phương thức để kiểm tra xem một đặc điểm có hỗ trợ một thuộc tính hoặc lệnh cụ thể hay không. Điều này rất hữu ích khi xác định xem việc đọc trạng thái hoặc một số thao tác nhất định có thể được thực hiện trên thiết bị của người dùng hay không, vì không phải tất cả các thiết bị thuộc một loại thiết bị đều có tất cả các tính năng giống nhau.

Mỗi đặc điểm nằm trong không gian tên riêng và phải được nhập riêng để sử dụng.

Ví dụ: để sử dụng đặc điểm Matter Bật/Tắt và loại thiết bị Đơn vị bổ trợ Bật/Tắt, hãy nhập các gói sau vào ứng dụng của bạn:

import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice

Đối với Loại thiết bị Gara (từ nhà thông minh của Google), hãy kết hợp Matter và các đặc điểm của Google:

import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice

Android Studio có chức năng tự động hoàn thành và thường xử lý tên gói đầy đủ cho bạn khi thêm các dòng import vào tệp nguồn trong dự án. Tuy nhiên, tên gói không nhất quán trên tất cả các loại và đặc điểm của thiết bị. Hãy xem thông tin tham khảo để xác minh tên gói chính xác cho từng DeviceType hoặc Trait.

Các đặc điểm cũng được hỗ trợ để sử dụng với tính năng Tự động hoá, nhưng có thể bị hạn chế và một số đặc điểm chỉ có sẵn cho tính năng Tự động hoá. Để xem danh sách, hãy xem phần Tính năng hỗ trợ đặc điểm Automation API trên Android.

Thành phần loại thiết bị

Home API hỗ trợ hầu hết các cụm ứng dụng Matter dưới dạng đặc điểm trong mô hình dữ liệu. Những đặc điểm không tương ứng với chế độ điều khiển hoặc trạng thái thiết bị và không mang lại tiện ích nào cho người dùng cuối (chẳng hạn như Liên kết và Nhóm) sẽ không được hiển thị thông qua Home API.

Các đặc điểm bắt nguồn từ đặc điểm nhà thông minh Cloud-to-cloud thường có cùng tên giữa Cloud-to-cloud và Home API, chẳng hạn như trong ví dụ về OpenClose. Các thuộc tính khác được biểu thị dưới dạng phần mở rộng của đặc điểm Matter, được tạo bằng phần mở rộng dành riêng cho nhà sản xuất Matter. Những đặc điểm này giúp thu hẹp khoảng cách cho đặc điểm smart home, trong đó chức năng được chia giữa SDK Matter và hệ sinh thái Google Home. Một ví dụ cụ thể về điều này là các loại thiết bị Google* đến từ Cloud-to-cloud nhưng chưa có các loại tương tự Matter.

Các loại thiết bị bao gồm các đặc điểm của một hoặc cả hai nguồn, Matter hoặc Cloud-to-cloud.

Ví dụ: Loại thiết bị Quạt bao gồm cả hai và có 3 đặc điểm:

  • Đặc điểm Identify Matter cung cấp tất cả chức năng từ Matter Identify.
  • Đặc điểm FanControl Matter cung cấp tất cả chức năng của đặc điểm Matter FanControl
  • Đặc điểm ExtendedFanControl của Google cung cấp tất cả chức năng từ đặc điểm smart home FanSpeed của Google không thuộc phạm vi của đặc điểm FanControl Matter

Loại thành phần đặc điểm này cung cấp một mô hình linh hoạt cho chức năng hoàn chỉnh của loại thiết bị, trừu tượng hoá các mô hình dữ liệu smart home cơ bản.