云对云接入文档
平台对平台(云对云)接入文档
- 产品形态
- 账号注册
- 企业认证
- 创建产品
- 导入设备
- 测试设备与后台通讯
- 配置回调地址
- 推送文档
- 语音聊天
产品形态

账号注册
登录以下网址进行注册
https://mp.thisiot.com/#/register
注册完成以后,进行认证,认证完以后,该账号就是管理员账号。

企业认证
需要准备的资料:
- 营业执照
- 法人身份证正面反面
- 公司的Logo
账号注册完以后,登录会自动跳转到认证页面

请如实填写公司资料,提交认证,认证通过后会收到短信通知
创建产品
认证通过以后,登录管理中心-->产品管理--->创建产品。

填写入相关的信息:

导入设备
创建完产品以后,点击设备,或者点击侧栏的设备管理-->设备列表

下载模板,把设备的IMEI号填充到excel文档中。
然后点击导入设备:

选择导入设备
导入后会返回数据的解析结果,确认导入。如果额度不够了,请联系商务。

确保设备状态为在线,如果不在线,请重启设备,或者联系设备提供的厂商协助。
测试设备与后台通讯
设备显示在线以后,点击设备详情,跳转到设备详情页面。

点击查找设备,若设备有提示则设备与后台通讯成功。
配置回调地址
本文档适用于平台对平台的模式。
请贵公司实现以下要求接口:
- POST请求
- 公网可以访,或者可做内网穿透
配置回调地址:
点击设置-->推送设置

填写贵公司的回调地址以及服务器的IP
通过推送的开关来控制推送。
提交配置即可。
推送数据
响应体中的数据格式
{
"success":"true",
"msg":"xxx消息/推送",
"code":123455,
"data": {
xxx数据对象
}
}
- success:true表示成功,false表示失败
- msg:消息说明
- code:消息码
- data:数据对象
令牌
贵公司服务器向物连网平台发起请求调用需要携带令牌。
- 配置好回调地址
- 编写好服务器的接收代码
- 登录管理中心,开启/停止推送令牌

- 令牌有效期为2个小时,在开启推送以后,每隔一个小时则会推送一个新的令牌。贵公司收到新的 令牌后,替换旧的令牌。
- 令牌的code为:28961
- 收到令牌后body中返回字符串:“success”
再看一下这张图吧:

贵公司调用平台接口时,需要携带令牌
- 接口请参考接口文档详细说明
- 把物连网平台推送的令牌携带在header上,key为:Sob-Web-Req-Token
- 同步调用则会有响应结果,异步调用只会响应状态(成功/失败),异步通过推送通知结果。
推送数据code
- 令牌推送:28961
- 心率结果:29000
- 体温结果:29001
- 血氧结果:29002
- 血压结果:29003
- SOS通知:29004
- 围栏警告:29005
- 定位推送:29006
- 跌到警告:29007
- 低电警告:29008
- 脱腕警告:29009
- 步数推送:29010
- 中医数据:29012
- 设备信号:29013
- 设备电量:29014
- 设备版本:29015
- 通用数据:29016
详情请参考前面的响应体格式,数据在data里
推送示例
令牌28961
{
"success": true,
"msg": "令牌推送.",
"code": 28961,
"data": {
"token": "70_RoqqJDBibKxxfZOz"
}
}
- token 令牌,有效期为2个小时,会定时推送,得到新的令牌后,替换旧的
心率结果推送29000
{
"success": true,
"msg": "心率结果推送.",
"code": 29000,
"data": {
"heartRate": 80,
"deviceId": "429244341796756",
"createTime": "2023-12-07 03:35:59"
}
}
- heartRate 心率值,整型
- deviceId 设备ID
- createTime 数据创建时间
体温结果推送29001
{
"success": true,
"msg": "体温测试结果.",
"code": 29001,
"data": {
"deviceId": "429244341796756",
"temp": 36.9,
"createTime": "2023-12-07 03:37:34"
}
}
- deviceId 设备ID
- temp 温度,浮点型
- createTime 数据创建时间
血氧结果推送29002
{
"success": true,
"msg": "血氧数据推送.",
"code": 29002,
"data": {
"deviceId": "429244341796756",
"oxygen": 85,
"createTime": "2023-12-07 03:38:48"
}
}
- deviceId 设备ID
- oxygen 血氧值, 整型
- createTime 数据创建时间
血压结果29003
{
"success": true,
"msg": "血压数据推送.",
"code": 29003,
"data": {
"deviceId": "429244341796756",
"height": 115,
"low": 85,
"createTime": "2023-12-07 03:41:13"
}
}
- deviceId 设备ID
- height 舒张压,整型
- low 收缩压,整型
- createTime 数据创建时间
SOS警告推送29004
{
"success": true,
"msg": "SOS消息.",
"code": 29004,
"data": {
"deviceId": "429244341796756",
"type": "sos",
"msg": "SOS呼救",
"createTime": "2023-12-07 03:42:32"
}
}
- deviceId 设备ID
- type 类型,sos则为SOS求救
- msg 消息内容
- createTime 消息创建时间
离开电子围栏推送29005
{
"success": true,
"msg": "离开电子围栏.",
"code": 29005,
"data": {
"deviceId": "429244341796756",
"type": "rail_out",
"msg": "离开电子围栏.",
"createTime": "2023-12-07 03:42:32"
}
}
- deviceId 设备ID
- type 类型,rail_out则为离开电子围栏
- msg 消息内容
- createTime 消息创建时间
定位推送29006
{
"success": true,
"msg": "位置信息推送.",
"code": 29006,
"data": {
"deviceId": "429244341796756",
"baseDate": "231207",
"baseTime": "034231",
"locatedResult": "A",
"latitude": "23.173798",
"latitudeDirection": "N",
"longitude": "113.275283",
"longitudeDirection": "E",
"speed": "0",
"direction": "0",
"altitude": "0",
"gpsCount": "0",
"gsmRsi": "100",
"batteryLev": "100",
"stepCount": "8103",
"rollTime": "0",
"clientStatus": "00330000",
"cellIndex": "1",
"mcc": "460",
"mnc": "1",
"cellCount": 1,
"wifiCount": 7,
"cellList": [{
"areaCode": "0",
"cellId": "4294967295",
"rsi": "100"
}],
"wifiList": [{
"wifiName": "wifi0",
"mac": "d9:d9:90:09:d9:21",
"rsi": "-100"
}, {
"wifiName": "wifi1",
"mac": "3e:f4:b0:f4:29:8c",
"rsi": "-100"
}, {
"wifiName": "wifi2",
"mac": "3e:19:f4:c7:90:d9",
"rsi": "-100"
}, {
"wifiName": "wifi3",
"mac": "d9:f4:90:8c:21:8c",
"rsi": "-100"
}, {
"wifiName": "wifi4",
"mac": "11:90:19:b0:21:f1",
"rsi": "-100"
}, {
"wifiName": "wifi5",
"mac": "b0:b0:8c:19:29:c7",
"rsi": "-100"
}, {
"wifiName": "wifi6",
"mac": "90:35:09:f4:29:f4",
"rsi": "-100"
}],
"createTime": "2023-12-07 03:42:31"
}
}
- deviceId 设备ID,通常是IMEI号
- baseDate 数据创建的日期
- baseTime 数据创建的时间
- locatedResult GPS定位结果,A为定位成功,V为定位失败
- latitude 纬度
- latitudeDirection 纬度的方向,N为北纬,S为南纬
- longitude 经度
- longitudeDirection 经度的方向,W为西经,E为东经
- speed 速度
- direction 方向
- altitude 海拔
- gpsCount GPS数量
- gsmRsi GPS信号强度
- batteryLev 电池电量
- stepCount 步数
- rollTime 翻滚次数
- clientStatus 客户端的状态,转成二进制,共32位,左边高 16bit 表示报警,右边低16bit 表示状态。0 低电状态1 出围栏状态(目前没用到)2 进围栏状态(目前没用到)3 手环戴上取下状态4 手表运行静止状态16 SOS 报警17 低电报警18 出围栏报警(目前没用到)19 进围栏报警(目前没用到)20 手环拆除报警21 跌倒报警22 震动报警23 断油断电报警24 心率骤降报警25 车辆启动、位移报警26 低温报警27 高温报警28 超速报警
- cellIndex 连接第几个基站
- mcc 国家码
- mnc 地区码
- cellCount 基站个数
- wifiCount wifi个数
- cellList 基站列表
- areaCode 区域码
- cellId 基站ID
- rsi 信号强度
- wifiList WIFI列表
- wifiName wifi名称
- mac mac地址
- rsi 信号强度
- createTime 数据收到时间
跌到警告29007
{
"success": true,
"msg": "跌倒报警.",
"code": 29007,
"data": {
"deviceId": "429244341796756",
"type": "fall_down",
"msg": "跌倒报警",
"createTime": "2023-12-07 03:42:33"
}
}
- deviceId 设备ID
- type 类型,fall_down跌到报警
- msg 消息内容
- createTime 消息创建时间
低电量警告29008
{
"success": true,
"msg": "设备低电.",
"code": 29008,
"data": {
"deviceId": "429244341796756",
"type": "power_low",
"msg": "低电警告",
"createTime": "2023-12-07 03:42:33"
}
}
- deviceId 设备ID
- type 类型,power_low低电量报警
- msg 消息内容
- createTime 消息创建时间
佩戴脱落警告29009
{
"success": true,
"msg": "佩戴脱落.",
"code": 29009,
"data": {
"deviceId": "429244341796756",
"type": "wrist_off",
"msg": "佩戴脱落",
"createTime": "2023-12-07 03:42:33"
}
}
- deviceId 设备ID
- type 类型,wrist_off佩戴脱落
- msg 佩戴脱落
- createTime 消息创建时间
步数推送29010
{
"success": true,
"msg": "步数推送.",
"code": 29010,
"data": {
"createTime":"yyyy-MM-dd HH:mm:ss",
"stepCount": "9787",
"deviceId": "2023-12-07 03:42:33"
}
}
- createTime 推送时间
- stepCount 步数,整型
- deviceId 设备ID
中医数据:29012
{
"success": true,
"msg": "中医数据推送.",
"code": 29012,
"data":{
"createTime":"yyyy-MM-dd HH:mm:ss",
"deviceId":"设备ID",
"imei":"IMEI号",
"uploadtime":"上传时间时间戳",
"params":{
"number":"数量整型",
"data":"数据字符串"
}
}
}
设备信号:29013
{
"success": true,
"msg": "设备信号推送.",
"code": 29013,
"data":{
"createTime":"yyyy-MM-dd HH:mm:ss",
"deviceId":"设备ID",
"signal":"信号强度0~100",
}
}
设备电量:29014
{
"success": true,
"msg": "设备电量推送.",
"code": 29014,
"data": {
"createTime":"yyyy-MM-dd HH:mm:ss",
"deviceId":"设备ID",
"battery":"0~100电量",
}
}
设备版本:29015
{
"success": true,
"msg": "设备版本推送.",
"code": 29015,
"data": {
"createTime":"yyyy-MM-dd HH:mm:ss",
"deviceId":"设备ID",
"version":"版本字符串"
}
}
通用数据:29016
{
"success": true,
"msg": "通用数据推送.",
"code": 29016,
"data": {
"deviceId":"设备ID",
"createTime":"yyyy-MM-dd HH:mm:ss",
"jsonStr":"json字符串"
}
}
设备在线:29017
{
"success": true,
"msg": "设备在线推送.",
"code": 29017,
"data": {
"deviceId":"设备ID",
"createTime":"yyyy-MM-dd HH:mm:ss"
}
}
设备离线:29018
{
"success": true,
"msg": "设备离线推送.",
"code": 29018,
"data": {
"deviceId":"设备ID",
"createTime":"yyyy-MM-dd HH:mm:ss"
}
}
设备心跳:29019
{
"success": true,
"msg": "设备心跳推送.",
"code": 29019,
"data": {
"deviceId":"设备ID",
"createTime":"yyyy-MM-dd HH:mm:ss"
}
}
设备控制指令
调用地址:
正式环境:https://mp.api.thisiot.com/dev
文档地址:
http://8.134.68.15:32606/swagger-ui.html
微聊
微聊主要包括两部分:
- 贵公司后台发送语音到设备上
- 设备上语音推送到贵公司的后台
语音发送
//正式环境
https://mp.api.thisiot.com/md/we-talk/voice/{deviceId}
- 参数 deviceId 类型 path 含义 设备ID
- 参数 voice 类型 formData 含义声音文件,要求小于50kb,amr格式
- 请求方法:POST
文字下发
//测试环境
https://mp.api.thisiot.com/dev/fun/msg-group/{deviceId}
参数 deviceId 类型 path 含义 设备ID
body
{ "msg":"消息内容" }
请求方法:POST
语音接收(推送)
code:29020
内容:
{ "success":true, "code":29020, "msg":"语音消息推送", "data":{ "path":"音频路径", "id":"设备ID", "avatar":"设备头像", "time":"消息时间,时间戳,Long类型", "nickname":"设备昵称", "type":"device保留值", "deviceId":"设备ID" } }
语音转换:收到语音的消息推送,通过path上的url进行下载,内容做以下转换:
服务器和客户端接收 ARM 格式音频数据时需要做以下转译 遇到左边的数据就转译成右边的数据:0X7D 0X01 --> 0X7D 0X7D 0X02 --> 0X5B 0X7D 0X03 --> 0X5D 0X7D 0X04 --> 0X2C 0X7D 0X05 --> 0X2A 服务器和客户端发送 ARM 格式音频数据时需要做以下转译 遇到左边的数据就转译成右边的数据:0X7D --> 0X7D 0X01 0X5B --> 0X7D 0X02 0X5D --> 0X7D 0X03 0X2C --> 0X7D 0X04 0X2A --> 0X7D 0X05