跳至主要內容

通用穿戴协议


穿戴设备通用协议文档

  • 数据校验签名
  • 数据的结构
  • 签名计算方式
  • 案例

数据结构

数据由以下内容组成:

  • 数据开头标识:[
  • bid(需要登录后台申请)
  • 设备号
  • 协议模块分割符:*
  • 消息内容(开头是命令,后面有内容用消息分割符逗号分割,没有则不需要逗号)
  • 消息长度(十六进制,4个字节,最大支持FFFF)
  • 消息分割符:,
  • 数据结尾标识:]

比如说要发一条登录LK指令

[产品名(bid)*设备号*数据长度*消息内容数据]

对号入座:

[IC01*18239922822332*0002*LK]

比如说一条消息带多段的,体温上报指令:

[IC01*18239922822332*LEN*TEMP,36.2]

签名计算方式

以上内容是目标发出的内容和内容的结构,但是实际发出的内容最终不是这样子的,需要对数据进行签名。

签名内容:

产品名(bid)*设备ID*数据长度*指令秘钥

对以上内容进行md5计算,不够32位,前面补0

再把签名值放到数据开头标识和产品名之间。请查看下方案例:

签名案例

  • 目标发送内容
[IC01*18239922822332*LEN*TEMP,36.2]
  • 秘钥(获取方式请看开头):
VMg3oCnND6NzhfA6dmNfSnBWZuKyLdeY
  • 签名内容
IC01*18239922822332*LEN*TEMPVMg3oCnND6NzhfA6dmNfSnBWZuKyLdeY
  • MD5结果
c5cedc4505342715ce39c317f85b8247
  • 发送内容
[c5cedc4505342715ce39c317f85b8247IC01*18239922822332*LEN*TEMP,36.2]

协议

LK(登录)

  • 客户端上传:

    [fddcd1ed79148e795d7fca0ea66e2599HYK*XXXXXXXXXXXXX*0002*LK]
    

    fddcd1ed79148e795d7fca0ea66e2599为签名内容,HYK为产品名,XXXXXXXXXXXXX设备号,0002数据长度,LK为内容

  • 服务端下发

    [HYK*XXXXXXXXXXXXX*0002*LK]
    

KA(心跳包)

​ 开发时,建议4分钟的心跳包,上线后根据功耗来定,最长支持10分钟的心跳。

  • 客户端上传

    [签名内容HYK*XXXXXXXXXXXXX*0015*KA,20230412,2060,4,59]
    
    • 20230412 日期
    • 2060 步数
    • 4 翻转次数
    • 59 电量百分比
  • 服务端返回

    [HYK*XXXXXXXXXXXXX*0015*KA]
    

PING(绑定查询)

  • 客户端上传

    [签名内容HYK*XXXXXXXXXXXXX*0004*PING]
    
  • 服务端返回:

    [HYK*XXXXXXXXXXXXX*0006*PING,1]
    
    • 1表示已绑定,0表示未绑定

UD/CRUD/AL(位置信息上传)

  • ud为定时周期上传的数据

  • curd为cr指令下发后上传的数据,也就是立即定位上传的数据

  • al为警告数据,比如说SOS时上传的警告数据

  • 客户端上传

    [73e288cc259cd261bcf6a29407f4160dqHYK*860132060004801*00de*UD,日期,时间,定位成功/失败(A/F),纬度,南北纬(N/S),经度,东西经(E/W),速度,方向,海拔,卫星个数,gms信号强度,电量,步数,翻转次数,终端状态,基站个数(不超过5个),MCC国家码,MNC网号,区域码,基站1编号,基站1信号强度,基站1区域码,基站2编号,基站2信号强度,基站2区域码,WIFI数量(按信号强度排序,不超过5个)WIFI1名称,WIFI1Mac地址,WIFI1信号强度,WIFI2名称,WIFI2Mac地址,WIFI2信号强度..]
    

    例子:

    [461c4bd66c8d0ecee5221948290fd935qHYK*860132060004801*00fc*UD,230504,141858,A,22.573816,N,113.851716,E,0.720,0,125,05,93,100,341,0,00000000,1,1,460,17,30538,125800240,68,5,wifi0,e0:24:81:68:21:14,-46,wifi1,90:e7:10:d8:fd:03,-73,wifi2,a8:3b:5c:63:7e:08,-77,wifi3,e0:24:81:66:e7:79,-81,wifi4,34:12:f9:89:54:bd,-83]
    
    • 终端状态说明:

      • 00000000(16 进 制)

        用二进制字符串表示为
        0000 0000 0000 0000 0000 0000 0000 0000 含义如下:
        左边高 16bit 表示报警,右边低16bit 表示状态. Bit 位(0 开始) 含义(1 有效)
        0 低电状态1 出围栏状态(目前没用到)2 进围栏状态(目前没用到)3 手环戴上取下状态4 手表运行静止状态16 SOS 报警17 低电报警18 出围栏报警(目前没用到)19 进围栏报警(目前没用到)20 手环拆除报警21 跌倒报警22 震动报警23 断电报警比如 00200010,即表示00000000001000000000000000010000
        分别是第四位为 1,第21 位为1,对应21位是跌倒报警
        
  • 服务端不会下发

LGZONE(时区时间)

  • 客户端上传

    [签名内容HYK*XXXXXXXXXXXXX*0004*LGZONE]
    
  • 服务端回复

    [HYK*XXXXXXXXXXXXX*001D*LGZONE,+8,08:00:00,2023-10-12]
    
    • +8 表示时区,+为东区,-为西区。+8表示东八区

    • 08:00:00为:HH:mm:ss

    • 2023-10-12:yyyy-MM-dd

temp(温度数据上传)

  • 客户端上传

    [签名内容HYK*XXXXXXXXXXXXX*000f*temp,36.5]
    
    • 36.5 为体温数据
  • 服务端回复:

    [HYK*XXXXXXXXXXXXX*000a*temp]
    

FIND(查找设备)

  • 服务端下发

    [HYK*XXXXXXXXXXXXX*0004*FIND]
    
  • 客户端回复

    [签名内容HYK*XXXXXXXXXXXXX*0004*FIND]
    

CR(立即定位)

  • 服务器下发
[HYK*XXXXXXXXXXXXXXXX*0002*CR]
  • 客户端收到消息后,返回以下内容,并且去进行定位,定位完成后通过UD上传定位数据
[签名内容HYK*XXXXXXXXXXXXXXXX*LEN*CR]

定位完以后,走CRUD命令上传数据。

定位周期设置UPLOAD

  • 服务端下发

    [TDpY4Mron3KAUBCx*XXXXXXXXXXXXXXXX*LEN*UPLOAD,300]
    
    • 300 为周期,单位是秒,为0是则关闭上传
  • 客户端回复

    [TDpY4Mron3KAUBCx*XXXXXXXXXXXXXXXX*LEN*UPLOAD]
    

hrtstart(心率上传周期)

  • 服务器下发

    [HYK*XXXXXXXXXXXXX*LEN*hrstart,300]
    
    • 300 单位秒,周期时间
    • 0则为关闭
    • 1则为单次测量
  • 客户端回复

    [HYK*XXXXXXXXXXXXX*LEN*hrstart]
    

heart(心率上传)

  • 客户端上传

    [HYK*XXXXXXXXXXXXX*LEN*heart,76]
    
  • 服务端回复

    [HYK*XXXXXXXXXXXXX*LEN*heart]
    

RESET(重置)

  • 服务器下发

    [HYK*XXXXXXXXXXXXX*LEN*RESET]
    
  • 客户端回复

    [签名内容HYK*XXXXXXXXXXXXX*LEN*RESET]
    

oxygen(血氧上传)

  • 客户端上传

    [HYK*XXXXXXXXXXXXX*LEN*oxygen,80]
    
  • 80血氧浓度

  • 服务端回复

    [HYK*XXXXXXXXXXXXX*LEN*oxygen]
    

blood(血压上传)

  • 客户端上传

    [HYK*XXXXXXXXXXXXX*LEN*blood,80,110]
    
  • 80收缩压,110舒张压

  • 服务端回复

    [HYK*XXXXXXXXXXXXX*LEN*blood]
    

血压上传周期下发

  • 服务端下发:

    [HYK*XXXXXXXXXXXXX*LEN*bldstart,300]
    
  • 300 血压值上传周期,单位秒

  • 客户端回复

    [HYK*XXXXXXXXXXXXX*LEN*bldstart]
    

SILENCE_TIME(静音时间段设置)

  • 服务器下发

    [HYK*XXXXXXXXXXXXX*LEN*SILENCE_TIME,09:30-12:30-0-1-0111110,13:30-14:30-0-1-0111110,14:30-15:30-0-1-0111110]
    
    • 09:30-12:30-0-1-0111110:开始时间-结束时间-静音开关-震动开关-循环周期;循环周期请参考闹钟的说明
    • 最多5个,可以从后以去配置参数
  • 客户端回复

    [HYK*XXXXXXXXXXXXX*0054*SILENCE_TIME]
    

MESSAGE(文字消息)

  • 服务器下发

    [HYK*XXXXXXXXXXXXX*LEN*MESSAGE,62115c1d8bd54e0b53d14e0067616d88606f002e]
    
    • 62115c1d8bd54e0b53d14e0067616d88606f002e为消息内容
    • 编码格式为unicode:\u6211\u5c1d\u8bd5\u4e0b\u53d1\u4e00\u6761\u6d88\u606f\u002e
  • 客户端回复

    [签名内容HYK*XXXXXXXXXXXXX*LEN*MSG]
    

WIFI_SET(wifi账号密码设置)

  • 服务器下发

    [HYK*XXXXXXXXXXXXX*LEN*WIFI_SET,621176840077006900660069,123456]
    
    • 621176840077006900660069为wifi的名称
    • unicode编码:\u6211\u7684\u0077\u0069\u0066\u0069
    • 123456为wifi密码
  • 客户端回复

    [签名内容HYK*XXXXXXXXXXXXX*LEN*WIFI_SET]
    

TRIGGER_CAMERA(Camera开关)

  • 服务端下发

    [HYK*XXXXXXXXXXXXX*0010*TRIGGER_CAMERA,1]
    
    • 1表示开,0表示关
  • 客户端回复

    [签名内容HYK*XXXXXXXXXXXXX*0010*TRIGGER_CAMERA]
    

TRIGGER_DIAL(拨号盘开关)

  • 服务端下发

    [HYK*XXXXXXXXXXXXX*LEN*TRIGGER_DIAL,1]
    
    • 1为开,0为关
  • 客户端回复

    [HYK*XXXXXXXXXXXXX*LEN*TRIGGER_DIAL]
    

TRIGGER_COCK(报时开关)

  • 服务端下发

    [HYK*XXXXXXXXXXXXX*LEN*TRIGGER_COCK,1]
    
    • 1表示打开,0表示关闭
  • 客户端回复

    [HYK*XXXXXXXXXXXXXXXX*LEN*TRIGGER_COCK]
    

TRIGGER_POWER_DRY(低电报警开关)

  • 服务端下发

    [HYK*XXXXXXXXXXXXXXXX*LEN*TRIGGER_POWER_DRY,1]
    
    • 1表示开,0表示关
  • 客户端回复

    [HYK*XXXXXXXXXXXXXXXX*LEN*TRIGGER_POWER_DRY]
    

TEMP_CYCLE(温度测试周期)

  • 服务端下发

    [HYK*XXXXXXXXXXXXXXXX*LEN*TEMP_CYCLE,300,1]
    
    • 300为温度测试周期,单位为秒
    • 1为开,0为关
  • 客户端回复

    [HYK*XXXXXXXXXXXXXXXX*LEN*TEMP_CYCLE]
    

STEP_CYCLE(计步上传周期)

  • 服务端上传

    [HYK*XXXXXXXXXXXXXXXX*LEN*STEP_CYCLE,300,1,10000]
    
    • 300为上传周期
    • 1为开,0为关
    • 10000为运动目标
  • 客户端回复

    [HYK*XXXXXXXXXXXXXXXX*LEN*STEP_CYCLE]
    

oxstart(血氧上传周期下发)

  • 服务端下发:

    [HYK*XXXXXXXXXXXXXXXX*LEN*oxstart,300]
    
    • 300 周期,单位秒
  • 客户端回复:

    [HYK*XXXXXXXXXXXXXXXX*LEN*oxstart]
    

CENTER(主号下发)

  • 服务端下发

    [HYK*XXXXXXXXXXXXXXXX*LEN*CENTER_PHONE,xxxxxxxxxx]
    
    • xxxxxxxxxx 下发的中心号码,可用于短信指令校验
  • 客户端回复:

    [HYK*XXXXXXXXXXXXXXXX*LEN*CENTER_PHONE]
    

拨打电话

  • 服务端下发:

    [HYK*XXXXXXXXXXXXXXXX*LEN*CALL,xxxxxxxxxx]
    
    • xxxxxxxxxx 目标呼叫号码
  • 客户端回复:

    [HYK*XXXXXXXXXXXXXXXX*LEN*CALL]
    

设备关机

  • 服务端下发

    [HYK*XXXXXXXXXXXXXXXX*LEN*POWEROFF]
    
    • 客户端收到回复后进行设备关机
  • 客户端回复

    [HYK*XXXXXXXXXXXXXXXX*LEN*POWEROFF]
    

设备重置

  • 服务端下发

    [HYK*XXXXXXXXXXXXXXXX*LEN*RESET]
    
    • 客户端收到回复后进行设备重置
  • 客户端回复

    [HYK*XXXXXXXXXXXXXXXX*LEN*RESET]
    

设置体温上传周期

  • 服务端下发

    [HYK*XXXXXXXXXXXXXXXX*LEN*wdstart,300]
    
    • 300 为周期,单位为秒,如果为0则关闭周期上传
  • 客户端回复

    [HYK*XXXXXXXXXXXXXXXX*LEN*wdstart]
    

运动目标和周期下发

  • 服务端下发

    [HYK*XXXXXXXXXXXXXXXX*LEN*STEP_CYCLE,600,1,10000]
    
    • 600 为周期,客户端也可以根据此周期为0时不进行上传
    • 1 为开关,1表示上传运动记录,0表示不上传
    • 10000 为运动目标
  • 客户端回复

    [TDpY4Mron3KAUBCx*XXXXXXXXXXXXXXXX*LEN*STEP_CYCLE]
    

睡眠时间段配置

  • 服务端下发

    [TDpY4Mron3KAUBCx*XXXXXXXXXXXXXXXX*LEN*SLEEP_TIME,20:00-06:00]
    
    • 20:00-06:00 睡眠开始和结束的时间
  • 客户端回复

    [HYK*XXXXXXXXXXXXXXXX*LEN*SLEEP_TIME]
    

久坐提醒开关

  • 服务端下发

    [HYK*XXXXXXXXXXXXXXXX*LEN*sit_up_alarm,1]
    
    • 1 开关,1表示开,0表示关
  • 客户端回复

    [HYK*XXXXXXXXXXXXXXXX*LEN*sit_up_alarm]
    

SOS下发

  • 服务端下发

    [HYK*XXXXXXXXXXXXXXXX*LEN*SOS,0073006F00730031,123456,0073006F00730032,789012,0073006F00730033,345678]
    
    • 0073006F00730031 名称,unicode编码
    • 123456 为号码
    • 一共三组
  • 客户端回复

    [HYK*XXXXXXXXXXXXXXXX*LEN*SOS]
    

联系人下发

  • 服务端下发

    [HYK*XXXXXXXXXXXXXXXX*LEN*PHL,80547cfb4eba0031-17688768988,80547cfb4eba0032-17388768988]
    
    • 80547cfb4eba0031 联系人1名称 unicode编码
    • 17688768988 手机号码
    • 最多50组
  • 客户端回复

    [HYK*XXXXXXXXXXXXXXXX*LEN*PHL]
    

闹钟下发

  • 服务端下发

    [HYK*XXXXXXXXXXXXXXXX*LEN*REMIND,14:26-1-1100100,16:26-1-000000012:25-1-1111011]
    
    • 14:26 时间
    • 1 开关
    • 1100100 重复周期,1表示开,0表示关。每一位第别表示星期:日一二三四五六
  • 客户端回复

    [HYK*XXXXXXXXXXXXXXXX*0035*REMIND]
    

静音时间段下发

  • 服务端下发

    [HYK*XXXXXXXXXXXXXXXX*003b*SILENCETIME2,15:29-19:28-1-1-1100100,12:29-22:29-1-1-1111111]
    
    • 15:29:静音开始时间
    • 19:28:静音结束时间
    • 1 震动开关,1震动,0不震动
    • 1 此时间段静音开关,1表示有效,0表示无效
    • 1100100 循环周期,跟闹钟一样
  • 客户端回复

    [HYK*XXXXXXXXXXXXXXXX*003b*SILENCETIME2]
    

相机开关

  • 服务端下发

    [HYK*XXXXXXXXXXXXXXXX*0010*TRIGGER_CAMERA,1]
    
    • 1表示开关,1为开,0为关
  • 客户端回复

    [HYK*XXXXXXXXXXXXXXXX*0010*TRIGGER_CAMERA]
    

拨号开关

  • 服务端下发

    [HYK*XXXXXXXXXXXXXXXX*LEN*TRIGGER_DIAL,1]
    
    • 1 表示开关,1表示开,0表示关
  • 客户端回复

    [HYK*XXXXXXXXXXXXXXXX*LEN*TRIGGER_DIAL]
    

报时开关

  • 服务端下发

    [HYK*XXXXXXXXXXXXXXXX*LEN*TRIGGER_COCK,1]
    
    • 1 表示开关,1表示开,0表示关
  • 客户端回复

    [HYK*XXXXXXXXXXXXXXXX*LEN*TRIGGER_COCK]
    

低电量报警开关

  • 服务端下发

    [HYK*XXXXXXXXXXXXXXXX*0013*TRIGGER_POWER_DRY,1]
    
    • 1 表示开关,1表示开,0表示关
  • 客户端回复

    [HYK*XXXXXXXXXXXXXXXX*0013*TRIGGER_POWER_DRY]
    

FACTORY(机器重置)

  • 服务端下发

    [HYK*XXXXXXXXXXXXXXXX*LEN*FACTORY]
    
  • 客户端恢复

    [HYK*XXXXXXXXXXXXXXXX*LEN*FACTORY]
    

WT(天气获取)

  • 客户端上传

    [HYK*XXXXXXXXXXXXXXXX*LEN*WT,位置数据(参考UD)]
    
  • 服务端下发

    [HYK*XXXXXXXXXXXXXXXX*LEN*WT,年-月-日,时:分:秒,天气描述,天气编号,当前温度,最低温,最高温,城市名]
    

DLT(解绑设备)

  • 服务端下发

    [HYK*XXXXXXXXXXXXXXXX*LEN*DLT]
    
  • 客户端回复

    [HYK*XXXXXXXXXXXXXXXX*LEN*DLT]
    

视频通话接口(菊风)

  1. 获取登录token、appKey(juhoo_config)

  2. 获取联系人列表:video_contact

  3. 设备端发起呼叫:jup_hoo_call

  4. 收到对方的回复(设备端发起的通话请求,对方接受/拒绝):jup_hoo_reply


  5. 收到对方call发起的通话请求:jup_hoo_request

  6. 回复对方的请求:jup_hoo_response

手表设备获取联系人列表(video_contact)

  • 手表端发送(已签名)

    [0682072c1e64d671542b7af7dbd223c0TDpY4Mron3KAUBCx*23413412888288*000d*video_contact]
    
  • 后台回复:

    [TDpY4Mron3KAUBCx*XXXXXXXXXXXXXXXX*002e*video_contact,1675013279992250370,9ec459279524,1675013279992250371,9ec459274433]
    
    • 1675013279992250370:ID1
    • 9ec459279524:昵称1
    • 1675013279992250371:ID2
    • 9ec459274433:昵称2

获取登录token、appKey(juhoo_config)

  • 手表端发送

    [a7e6bb3000c137f7a72a48f61252e728TDpY4Mron3KAUBCx*XXXXXXXXXXXXXXXX*LEN*jup_hoo_config]
    
  • 后台回复:

    [TDpY4Mron3KAUBCx*XXXXXXXXXXXXXXXX*0084*jup_hoo_config,01lqlyqzRMUy4odjNsi7trGP3WgmOTLooV23ldNUYc+l7u5f1mA=BmKgyUiFDQzLFTcwMDY/Nj40NjY+PzQ/NTQ2Pz4=,efe9f8800a39d96244234097,48838394d96244234893]
    

    token值:01lqlyqzRMUy4odjNsi7trGP3WgmOTLooV23ldNUYc+l7u5f1mA=BmKgyUiFDQzLFTcwMDY/Nj40NjY+PzQ/NTQ2Pz4=

    appKey:efe9f8800a39d96244234097

    秘钥:48838394d96244234893

1. 手表设备发起视频通话请求(自己发起请求:jup_hoo_call)

  • 手表端发送

    [20606c56bfe857a7a96ebe65fca9d56bTDpY4Mron3KAUBCx*XXXXXXXXXXXXXXXX*0022*jup_hoo_call,1675013279992250370,1]
    
    • 675013279992250370:对方设备号,来自行通讯录
    • 1:视频通话,0:语音通话
  • 后台回复:

    [TDpY4Mron3KAUBCx*XXXXXXXXXXXXXXXX*LEN*jup_hoo_call,1]
    
    • 1:对方在线,等待接听;0:对方不在线

2. 平台下发请求结果(对方同意/拒绝:jup_hoo_reply)

  • 后台下发

    [TDpY4Mron3KAUBCx*XXXXXXXXXXXXXXXX*000f*jup_hoo_reply,1]
    
    • 1:对方接受;0:对方拒绝
  • 手表端回复

    [TDpY4Mron3KAUBCx*XXXXXXXXXXXXXXXX*000f*jup_hoo_reply]
    

1. 平台下发通话请求(对方发起请求:jup_hoo_request)

  • 后台下发:

    [TDpY4Mron3KAUBCx*XXXXXXXXXXXXXXXX*0023*jup_hoo_request,XXXXXXXXXXXXXXXX,1]
    
    • 对方的用户ID:XXXXXXXXXXXXXXXX
    • 1:视频通话,0语音通话
  • 手表端回复

    [TDpY4Mron3KAUBCx*XXXXXXXXXXXXXXXX*0023*jup_hoo_request]
    

2. 回复同意还是拒绝通话请求(回复对方:jup_hoo_response)

  • 手表端回复

    [e84c10c682fb83544ec66d5770316566TDpY4Mron3KAUBCx*XXXXXXXXXXXXXXXX*0026*jup_hoo_response,1675013279992250370,1]
    
    • 1675013279992250370:对方ID
    • 1:同意通话
    • 0:拒绝通话
  • 后台回复

    [TDpY4Mron3KAUBCx*XXXXXXXXXXXXXXXX*0010*jup_hoo_response]
    

微聊

  • 设备端指令
  • 数据转换

客户端要求控制音频不要超过30秒,文件过大会导致带宽占用过高

设备端指令

  • 获取联系人列表(参考视频通话的获取/MEMBERS)
  • 群聊
  • 单聊

群聊(所有的联系人都会收到)

群聊,目前协议设备端不支持来源,也就是只有自己和他人

语音消息

  • 客户端上传

    [XT*YYYYYYYYYYYYYYY*LEN*TK,AMR格式音频数据]
    
  • 后台回复

    [XT*YYYYYYYYYYYYYYY*LEN*TK,接收结果]
    
    • 1对方在线,已经转发
    • 0对方不在线,已经缓存消息(有效期N天)
  • 平台下发语音

    [XT*YYYYYYYYYYYYYYY*LEN*TK,AMR 格式音频数据]
    
  • 客户端回复

    [XT*YYYYYYYYYYYYYYY*LEN*TK,接收结果]
    
    • 1为成功
    • 0为失败

文字消息

文字消息的内容,发送都要进行unicode编码,接收要解码,自己手动加\u

  • 后台下发

    [XT*YYYYYYYYYYYYYYY*LEN*MESSAGE,短语内容]
    
  • 客户端回复

    [XT*YYYYYYYYYYYYYYY*LEN*MESSAGE]
    

单聊(目标联系人可以收到)

语音消息

  • 客户端上传

    [XT*YYYYYYYYYYYYYYY*LEN*TKOne,App 账号,秒数,AMR 格式音频数据]
    
    • App账号,对应的是绑定的账号,跟视频通话里的联系人列表是一样的。以此联系为作为微聊的联系人。
  • 后台回复

    [XT*YYYYYYYYYYYYYYY*LEN*TKOne,接收结果]
    
    • 1为发送成功
    • 0为不在线,已缓存
  • 平台下发

    [XT*YYYYYYYYYYYYYYY*LEN*TKOne,App 账号,秒数,AMR 格式音频数据]
    
  • 客户端回复

    [XT*YYYYYYYYYYYYYYY*LEN*TKOne,接收结果]
    
    • 1为成功
    • 0为失败

数据转换

由于设备协议格式的问题,音频数据、图片数据需要做以下的转换:

  • 接收到的数据,遇见左边转右边

    0X7D 0X01 --> 0X7D
    0X7D 0X02 --> 0X5B
    0X7D 0X03 --> 0X5D
    0X7D 0X04 --> 0X2C
    0X7D 0X05 --> 0X2A
    
  • 发送数据,遇到左边转右边

    0X7D --> 0X7D 0X01
    0X5B --> 0X7D 0X02
    0X5D --> 0X7D 0X03
    0X2C --> 0X7D 0X04
    0X2A --> 0X7D 0X05
    

通用数据接口

在云对云的产品形态下,第三方云端可以直接下发内容到设备上,设备也可以直接上传数据到第三方云服务上。

设备上传数据

  • 客户端上传消息

    [XT*YYYYYYYYYYYYYYY*LEN*GEN_MSG_UP,data64]
    
  • 服务端回复

    [XT*YYYYYYYYYYYYYYY*LEN*GEN_MSG_UP]
    

data64是内容,进行base64编码

第三方服务器推送

  • 服务端下发

    [XT*YYYYYYYYYYYYYYY*LEN*GEN_MSG_DOWN,data64]
    
  • 客户端回复

    [XT*YYYYYYYYYYYYYYY*LEN*GEN_MSG_DOWN]
    

TCP转HTTP请求

某些情况下,设备不具备http请求的能力,可以通过此接口,用服务器来代替设备进行http请求。

  • 客户端发送
[XT*YYYYYYYYYYYYYYY*LEN*TCP_HTTP,请求方法,URL,header,body]
  • 请求方法有:POST,GET,PUT,DELETE

  • url:为请求地址

  • header:为头部信息,json格式,需要base64编码

    {
    	"headers":[
    		{
    			"key":"键",
    			"value":"值"
    		},{
    			"key":"键",
    			"value":"值"
    		},{
    			"key":"键",
    			"value":"值"
    		},
    	]
    }
    
  • body要求base64编码

  • 服务端响应

    [XT*YYYYYYYYYYYYYYY*LEN*TCP_HTTP,状态码,响应的体]
    
  • 状态码有http状态码和特殊状态码:5000,请求错误,请稍后重试;4005,不支持该请求方法

  • 相应体base64编码

生成绑定所需的二维码

png 格式(默认推荐)

客户端请求:

[XT*YYYYYYYYYYYYYYY*LEN*CID]

服务端回复:

[XT*YYYYYYYYYYYYYYY*LEN*CID,对应设备 ID 转换成的二维码图片 205*205png 格式]

终端收到数据后需做转码,遇到左边数据需转成右边数据:

0X7D 0X01 --> 0X7D 
0X7D 0X02 --> 0X5B
0X7D 0X03 --> 0X5D
0X7D 0X04 --> 0X2C
0X7D 0X05 --> 0X2A

jpg 格式:

客户端请求:

[XT*YYYYYYYYYYYYYYY*LEN*CID_JPG]

客户端请求:

[XT*YYYYYYYYYYYYYYY*LEN*CID_JPG,对应设备ID转换成的二维码图片 128*128jpg 格式]

终端收到数据后需做转码,遇到左边数据需转成右边数据:

0X7D 0X01 --> 0X7D
0X7D 0X02 --> 0X5B
0X7D 0X03 --> 0X5D
0X7D 0X04 --> 0X2C
0X7D 0X05 --> 0X2A

注:也可以自己生成二维码,二维码内容为https://app.thisiot.com/app/download/cn/1747546271749566466?deviceId=设备ID,把后面的数据换成设备的 IMEI 即可。(生成完需测试通过方可)

提醒指令

与程工约定的:

  • 回家一个时间;
  • 休息两个时间;
  • 睡觉三个时间;
  • 起床三个时间;
  • 喝水一个时间;
  • 自定义服药三个时间
  • 服药三个时间

休息提醒

最多2个时间

  • 后台下发

    [XT*YYYYYYYYYYYYYYY*LEN*REMIND_CH_REST,时间间隔 1,时间间隔 2]
    
  • 设备响应

    [XT*YYYYYYYYYYYYYYY*LEN*REMIND_CH_REST]
    
    • 时间格式 【起始-结束】08:10-10:00,起始为开始休息,结束为休息结束。

回家提醒

最多1个时间

  • 后台下发

    [XT*YYYYYYYYYYYYYYY*LEN*REMIND_CH_HOME,时间]
    
  • 设备响应

    [XT*YYYYYYYYYYYYYYY*LEN*REMIND_CH_HOME]
    
    • 时间格式 HH:mm

睡觉提醒

最多3个时间

  • 平台下发

    [XT*YYYYYYYYYYYYYYY*LEN*REMIND_CH_SLEEP,闹钟1,闹钟2,闹钟3]