我正在尝试在 Ubuntu VM 桌面上使用 Google Assistant SDK 对智能家居环境进行建模。我想在 https://developers.google.com/actions/smarthome/guides/对开发人员文档中列出的所有设备类型进行建模,并研究用于控制它们的命令。但是,当我尝试为 CAMERA 创建设备模型时,我收到一条错误消息,指出可用的设备类型仅限于 LIGHT、SWITCH 和 OUTLET。有谁知道是否/如何可以按照所述扩展设置中的可用设备类型列表?
1 回答
目前,不支持其他设备类型。原因是因为Types与Traits。
类型是对设备是什么的非常通用的描述:灯泡、插座或开关。此描述在您进行远程执行的情况下更有用。诸如“打开我的灯”之类的短语将获得该类型的所有设备。使用 Assistant SDK,目前不支持远程执行,因此您使用的实际类型不太重要。
特征是一段元数据,描述了可以对设备执行的操作。“打开”、“变红”或“将亮度设置为 20%”都是与不同特征相关的内容。
这些相同的类型和特征也存在于Smart Home API的上下文中,其中设备本身没有嵌入智能助理,但仍然存在并通过云到云的集成在生态系统中工作。
当我构建相机时,规范讨论了如何返回特定属性以及SYNC
意图。
"attributes": {
"cameraStreamSupportedProtocols": ["hls", "dash"],
"cameraStreamNeedAuthToken": true,
"cameraStreamNeedDrmEncryption": false
}
使用 Assistant SDK 注册设备时,不会SYNC
要求您返回这些属性。因此,当用户发送EXECUTE
意图时,具有 Assistant SDK 的设备无法知道这些值。
其他一些设备类型(例如恒温器)也是如此。由于 SDK 不支持SYNC
或不QUERY
支持意图,因此助手将不知道如何处理需要额外设置或参数的操作。
目前,Assistant SDK 仅支持智能家居设备可用的类型和特征的子集。
如果您确实想要一个设备可以同时使用 Assistant SDK 和其他特性,例如CameraStream
,您将需要有两个路径/脚本。
- 首先是实际的 Assistant SDK 集成,它将处理音频输入和输出,而无需向该模型注册任何特征
- 您还需要有一个智能家居云集成,它将支持该
CAMERA
类型并在调用与相机相关的命令时提醒您的客户。
这确实有需要间接谈论你的相机的缺点,即。“显示前门摄像头”。但是,它会让你有能力做到这两点。Assistant SDK 确实使用您的帐户,因此除了其他类型的查询之外,任何智能家居命令都可以使用。
相反,如果您只想对不同的设备类型进行建模,而不需要在每个设备中嵌入 Google 助理,那么您可以创建每种设备类型并构建基于云的集成。