此问题涉及Google智能家居文档this post上的操作,特别是action.devices.EXECUTE部分。
我们对“命令”对象列表与其相关的设备和执行列表之间的确切关系感到有些困惑,特别是关于如何将它们转换为响应。
根据文档,我们认为目的是按顺序处理命令:从上到下。每个命令,对命令中的每个设备ID处理(再次,从上到下)每个执行。
如果我们正确理解了描述,则响应可以在输入中包含每个初始命令最多4个命令(一个用于SUCCESS,PENDING,OFFLINE和ERROR),每个命令都有一个设备ID列表,其结果是适当。
然而,答案中没有提到执行。这是否意味着如果设备的1次执行失败(多次),则响应中的执行会在ERROR下列出,尽管设备的其他执行成功了吗?
例如,如果有一个命令打开灯并将其颜色设置为蓝色。打开它成功,但是一些任意错误会阻止设置颜色,那么响应格式应该是什么样的?
感谢您的阅读。
答案 0 :(得分:2)
命令数组将包含应该使用此命令控制的所有设备。还有一个额外的执行数组,它提供命令和参数。
如果某些设备无法成功控制,则应该为该设备ID返回错误,如文档中所示。
对于任何特定设备,想到一个命令成功但另一个命令失败的情况可能会很奇怪。在这种情况下,您需要考虑最有意义的原因,可能是错误protocolError
或unknownError
。
每个命令都要同时或并行处理。如果您无法进行用户请求的所有更改,则根本不执行任何命令可能会更加一致。因此,您的设备可以打开/关闭,但如果颜色被破坏,如果两个命令同时发送,它将失败。