Mô hình dữ liệu

API Home trình bày tất cả thiết bị trong hệ sinh thái Google Home theo 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ả smart home và nhà phát triển ứng dụng di động.

Loại thiết bị

Các loại thiết bị được trình bày trong API Home là sự hợp nhất của 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.

Loại thiết bị chứa các đặc điểm dùng để kiểm soát và quản lý thiết bị. Giống như các loại thiết bị, các đặc điểm được lấy từ các cụm Matter và các đặc điểm Cloud-to-cloud, đồng thời được trình bày ở định dạng phổ biến tương tự như định dạng của các cụm Matter. Trong API Home, các đặc điểm bắt nguồn từ Matter được gọi là traits (đặc điểm) chứ không phải clusters (nhóm).

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

Hãy xem phần Các loại thiết bị được hỗ trợ để 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 API Trang chủ và chứa các tính năng bổ sung dành riêng cho API Trang chủ (không có trong Matter hoặc Cloud-to-cloud). Ví dụ: mỗi đặc điểm 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 hữu ích khi xác định xem có thể thực hiện việc đọc trạng thái hoặc một số hành động nhất định trên thiết bị của người dùng hay không, vì không phải thiết bị nào trong một loại thiết bị cũng có tất cả các tính năng giống nhau.

Mỗi đặc điểm được chứa 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 Bật/Tắt Matter và loại thiết bị Đơn vị cắm Bật/Tắt, hãy nhập các gói sau vào ứng dụng:

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 các đặc điểm của Matter và 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 sẽ 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 thiết bị. Hãy xem tài liệu tham khảo để xác minh tên gói chính xác cho từng DeviceType hoặc Trait.

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

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

API Home hỗ trợ hầu hết các cụm ứng dụng Matter 1.3 dưới dạng các đặc điểm trong mô hình dữ liệu. Các đặ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 cung cấp bất kỳ 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 API Home.

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à API Home, 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ác đặc điểm Matter, được tạo bằng các phần mở rộng dành riêng cho nhà sản xuất Matter. Các đặc điểm này giúp khắc phục khoảng trống cho một đặc điểm smart home, trong đó chức năng được phân 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ó thiết bị tương tự Matter.

Loại thiết bị bao gồm các đặc điểm từ 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ó hai đặc điểm FanControl:

  • Thuộc tính FanControl Matter cung cấp tất cả chức năng từ thuộc tính FanControl Matter
  • Đặc điểm ExtendedFanControl của Google cung cấp tất cả chức năng từ đặc điểm FanSpeed smart home của Google không được đặc điểm FanControl Matter đề cập

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 loại thiết bị hoàn chỉnh, trừu tượng hoá các mô hình dữ liệu smart home cơ bản.