Home API cho iOS trình bày tất 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ị (của 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 nền tảng API chung để xây dựng trải nghiệm người dùng cho cả nhà phát triển 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 Home API là sự hợp nhất của các mô hình dữ liệu Matter và Cloud-to-cloud. Một số loại thiết bị đượ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 để điều khiển và quản lý thiết bị. Giống như loại thiết bị, các đặc điểm được lấy từ 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ụm Matter. Trong Home API, các đặc điểm bắt nguồn 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ế để ưu tiên 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.
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 điểm được tạo để sử dụng trong Home API và chứa 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 có thể đọc trạng thái hoặc thực hiện 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 tất cả thiết bị thuộc một loại thiết bị đều có cùng tính năng.
Để 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 Quy trình tự động hoá và một số đặc điểm chỉ có sẵn cho Quy trình tự động hoá. Để biết thêm thông tin, hãy xem bài viết Hỗ trợ đặc điểm của Automation API trên Android.
Cơ cấu 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. Các cụm cấu hình cấp thấp không cung cấp tiện ích trực tiếp cho người dùng cuối, chẳng hạn như Binding, không được hiển thị trực tiếp thông qua Home API. Hãy xem phần API cấu trúc để biết thêm thông tin về Nhóm thiết bị.
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 thiết bị khác được biểu thị dưới dạng tiện ích của các đặc điểm Matter, được tạo bằng tiện ích dành riêng cho nhà sản xuất Matter. Những đặc điểm này thu hẹp khoảng cách 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ụ:
FanDeviceType
bao gồm cả hai và có ba đặc điểm:
- Đặc điểm
IdentifyTraitMatter cung cấp tất cả chức năng của MatterIdentifyTrait. - Đặc điểm
FanControlTraitMatter cung cấp tất cả chức năng của MatterFanControlTrait. - Đặc điểm
ExtendedFanControlTraitGoogle cung cấp tất cả chức năng của smart homeFanSpeedTraitcủa Google mà không được đặc điểmFanControlTraitMatter hỗ trợ.
Kiểu kết hợp đặ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.
Nhóm thiết bị
Nhóm thiết bị đại diện cho một tập hợp thiết bị do người dùng xác định trong một cấu trúc duy nhất. Tư cách thành viên nhóm được giữ lại trong các dịch vụ của Google và hiển thị cho các thành viên khác trong cấu trúc và các ứng dụng khác có quyền truy cập vào cấu trúc.
Nhóm thiết bị được biểu thị bằng thực thể DeviceGroup, khác với HomeDevice. Mỗi HomeDevice sẽ liệt kê các nhóm mà thiết bị đó thuộc về thông qua GroupMembershipTrait, nhờ đó, ứng dụng của bạn có thể kiểm tra tư cách thành viên của nhóm và lặp lại trực tiếp trên các thiết bị thành viên của nhóm. Ngoài ra, DeviceGroup tuân thủ giao thức HasParts để hiển thị các loại thiết bị được thiết bị thành viên hỗ trợ khi nhắm đến toàn bộ nhóm.
Hãy xem phần API cấu trúc và Điều khiển nhóm thiết bị để biết thêm thông tin về nhóm thiết bị.