控制设备的过程可以通过客户端与Gizwits平台建立SSL连接来实现。客户端可以发送特定的字符串内容来控制设备,具体格式如下: jsonCopy Code
{ "cmd": "remote_control_v2_req", "msg_id": <消息ID字符串>, "data": [ { "cmd": "write_attrs" | "write" | "write_v1", "data": { "did": <设备ID字符串>, "mac": <设备Mac地址字符串>, "product_key": <产品标识码字符串>, "binary_coding": <"hex"或"base64",默认为"hex">, "attrs": { "name1": <value1>, "name2": <value2>, ... } } }, ... ]}其中,cmd字段必须为"remote_control_req",msg_id字段可选,用于标识消息,在回复指令中会返回。data字段是一个数组,包含了一个或多个控制指令。 控制指令的具体内容如下: - cmd字段:对于V4产品数据点协议格式,填写"write_attrs";对于V4产品自定义协议格式,填写"write";对于V1产品协议格式,填写"write_v1"。
- source字段:固定填写"noti"。
- data.did字段:设备ID。
- data.mac字段:设备Mac地址,长度为12的字符串,大小写敏感。
- data.product_key字段:设备所属产品的标识码。
- data.binary_coding字段(可选):用于指定Raw数据或数据点扩展类型数据的编码格式。
- data.attrs字段或data.raw字段:对于V4产品数据点协议格式,选择data.attrs;对于V4产品自定义协议格式,选择data.raw;对于V1产品协议格式,选择data.raw。
控制指令中的数据类型说明如下: - 数据点类型:Bool(布尔值,true或false、1或0)、Enum(枚举类型,可以是枚举字符串或枚举下标)、Int(整型数字)、扩展类型(hex或base64编码的byte数组或字符串)。
- 透传类型:Raw(hex或base64编码的byte数组或字符串)。
Gizwits平台会回复以下格式的消息: jsonCopy Code
{ "cmd": "remote_control_v2_res", "msg_id": <消息ID字符串>, "result": { "succeed": [ {"did": <did1字符串>}, {"did": <did2字符串>}, ... ], "failed": [ { "did": <did3字符串>, "reason": <原因字符串> }, { "did": <did4字符串>, "reason": <原因字符串> }, ... ] }}其中,msg_id字段的内容与请求消息中的msg_id字段相同(如果请求消息中不存在该字段,则回复消息中不会出现该字段)。 上述就是控制设备的过程和消息格式的详细说明。
|