冲向天空的猪 发表于 2023-11-28 22:31:09

第四十八天 SNot控制服务

控制设备的过程可以通过客户端与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字段相同(如果请求消息中不存在该字段,则回复消息中不会出现该字段)。上述就是控制设备的过程和消息格式的详细说明。
页: [1]
查看完整版本: 第四十八天 SNot控制服务