如何获取Google Nest API中enterprises.devices.executeCommand的有效命令?
解决Google Nest API executeCommand命令不支持的问题
问题根源
你遇到的INVALID_ARGUMENT错误,要么是用了设备不支持的命令,要么是命令名称拼写错误——比如你用的sdm.devices.commands.CameraLiveStream.GenerateRtspStream并非官方标准命令名,正确的直播流生成命令是sdm.devices.commands.CameraLiveStream.GenerateStream。
获取设备支持的有效命令
要获取当前设备能执行的所有命令,最可靠的方式是调用你已经成功使用的enterprises.devices.get接口,查看返回结果里的traits字段:
- 每个
trait对应设备的一类功能,比如摄像头的直播流功能对应sdm.devices.traits.CameraLiveStream - 设备支持的命令会直接关联对应
trait,无需额外查文档,从设备详情的traits就能反推
举个enterprises.devices.get返回的片段示例:
{ "name": "enterprises/XXX/devices/YYY", "traits": { "sdm.devices.traits.CameraLiveStream": { "maxVideoResolution": { "width": 1920, "height": 1080 } }, "sdm.devices.traits.CameraMotion": {} } }
如果设备包含sdm.devices.traits.CameraLiveStream trait,就说明它支持sdm.devices.commands.CameraLiveStream.GenerateStream命令。
正确的executeCommand请求示例
以生成直播流为例,请求体应该是这样的:
{ "command": "sdm.devices.commands.CameraLiveStream.GenerateStream", "params": { "videoQuality": "HIGH" } }
常见设备支持的命令参考
- Nest摄像头/门铃通用命令:
- 生成直播流:
sdm.devices.commands.CameraLiveStream.GenerateStream - 停止直播流:
sdm.devices.commands.CameraLiveStream.StopStream - 触发门铃快照:
sdm.devices.commands.DoorbellChime.Snapshot(仅门铃设备支持)
- 生成直播流:
内容的提问来源于stack exchange,提问作者Hiro Shaw
相关产品推荐
相关产品推荐

