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

API Home dành cho iOS hiển thị tất cả các thiết bị trong hệ sinh thái Google Home theo một mô hình dữ liệu thống 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 trình bày trong API Trang chủ 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 để 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 bắt nguồn từ các cụm Matter và các đặc điểm Cloud-to-cloud và được trình bày theo định dạng chung tương tự như định dạng của các cụm Matter. Trong API Trang chủ, các đặc điểm bắt nguồn từ Matter được gọi là đặc điểm, không phải là cụm.

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

Xem Các loại thiết bị được hỗ trợ trên iOS để 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 Swift của các đặc điểm được tạo ra để sử dụng trong API Home và chứa các tính năng bổ sung dành riêng cho API Home (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 hữu ích khi xác định xem việc đọc trạng thái hoặc các hành động 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ị trong cùng một loại thiết bị đều có tất cả các tính năng giống nhau.

Để nhập các đặc điểm và loại thiết bị, hãy nhập mô-đun GoogleHomeTypes vào ứng dụng của bạn:

import GoogleHomeTypes

Ngoài ra, bạn có thể sử dụng typealias cho tên đặc điểm và loại thiết bị để rút ngắn mã và tránh lặp lại không gian tên:

import GoogleHomeTypes

typealias OpenCloseTrait = Google.OpenCloseTrait
typealias OnOffTrait = Matter.OnOffTrait
typealias FanDevice = Matter.FanDeviceType

Hầu hết các đặc điểm đều được hỗ trợ để sử dụng với tính năng Tự động hoá và một số đặc điểm chỉ có sẵn cho tính năng Tự động hoá. Để biết thêm thông tin chi tiết, hãy xem bài viết Hỗ trợ đặc điểm Automation API trên Android.

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

API Trang chủ hỗ trợ hầu hết các cụm ứng dụng Matter dưới dạng các đặc điểm trong mô hình dữ liệu. Những đặc điểm không tương ứng với trạng thái hoặc chế độ điều khiển 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ề OpenCloseTrait. 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 thành Matter SDK 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ụ: FanDeviceType bao gồm cả hai và có 3 đặc điểm:

  • Đặc điểm IdentifyTrait Matter cung cấp tất cả chức năng của Matter IdentifyTrait.
  • Đặc điểm FanControlTrait Matter cung cấp tất cả chức năng của Matter FanControlTrait.
  • Đặc điểm ExtendedFanControlTrait của Google cung cấp tất cả chức năng từ smart home FanSpeedTrait của Google mà đặc điểm FanControlTrait Matter không bao gồm.

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.