智能设备
概述
智能设备是指安装了我们智能元件的资产,智能元件能与我们的系统进行交互,帮助客户随时了解资产的状态以及识别资产中sku的信息等,同时可以下发相应的命令给设备。
注意:
- 下列接口中需要的
project_code,请从我们的客户成功经理(CSM)处获取。
查询设备
接口说明
根据设备的资产码、hub_code等查询查询Smartware信息
请求信息
| 配置说明 | 参数值 |
|---|---|
| URL | /smartware?asset_code=CB408AGD21060111&hub_code=CBSTEST30607e18f2&smart_id=sdt33455 |
| Method | GET |
请求参数
| 参数名 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| smart_id | string | 设备的主键id。smart_id/hub_code/asset_code 至少传一个 | 否 |
| hub_code | string | 设备的hub_code。 smart_id/hub_code/asset_code 至少传一个 | 否 |
| asset_code | string | 资产码。 smart_id/hub_code/asset_code 至少传一个 | 否 |
响应数据
data数据格式
| 参数名 | 类型 | 描述 |
|---|---|---|
| smartware | object | Smartware 信息 |
| + smart_id | string | 设备id |
| + hub_code | string | 设备hub code |
| + asset_code | string | 冰柜资产码 |
| store | object | Store 信息 |
| + code | string | Store code |
| project | object | Project 信息 |
| + code | string | Project code |
响应数据样例
json
{
"code": 0,
"message": "success",
"data": {
"smartware": {
"smart_id": "d1c79add-a725-432c-81a3-6d5ae2d0ce25",
"hub_code": "CBSTEST30607e18f2",
"asset_code": "CB408AGD21060111"
},
"store": {
"code": "TEST001"
},
"project": {
"code": "P0"
}
}
}绑定项目
接口说明
将设备和对应的项目进行绑定,以便后续图像识别时能找到正确的模型
请求信息
| 配置说明 | 参数值 |
|---|---|
| URL | /smartware/project |
| Method | POST |
| Content-Type | application/json |
body参数
| 参数名 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| smartware | object | Smartware 信息 | 是 |
| + smart_id | string | 设备主键id。smart_id/hub_code/asset_code 至少传一个 | 否 |
| + hub_code | string | 设备的hub_code。smart_id/hub_code/asset_code 至少传一个 | 否 |
| + asset_code | string | 资产码。smart_id/hub_code/asset_code 至少传一个 | 否 |
| project | object | 项目信息 | 是 |
| + code | string | 项目 code | 是 |
Body数据样例
json
{
"smartware": {
"smart_id": "d1c79add-a725-432c-81a3-6d5ae2d0ce25",
"hub_code": "CBSTEST30607e18f2",
"asset_code": "CB408AGD21060111"
},
"project": {
"code": "P0"
}
}响应数据
data数据格式
| 参数名 | 类型 | 描述 |
|---|---|---|
| smartware | object | Smartware 信息 |
| + smart_id | string | 设备id |
| + hub_code | string | Hub code |
| + asset_code | string | 冰柜资产码 |
响应数据样例
json
{
"code": 0,
"message": "success",
"data": {
"smartware": {
"smart_id": "d1c79add-a725-432c-81a3-6d5ae2d0ce25",
"hub_code": "CBSTEST30607e18f2",
"asset_code": "CB408AGD21060111"
}
}
}绑定门店
接口说明
将设备和门店进行绑定。门店相关信息请查看门店。
请求信息
| 配置说明 | 参数值 |
|---|---|
| URL | /smartware/store |
| Method | POST |
| Content-Type | application/json |
Body参数
| 参数名 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| smartware | object | Smartware 信息 | 是 |
| + smart_id | string | 设备主键id。smart_id/hub_code/asset_code 至少传一个 | 否 |
| + hub_code | string | 设备的hub_code。smart_id/hub_code/asset_code 至少传一个 | 否 |
| + asset_code | string | 资产码。smart_id/hub_code/asset_code 至少传一个 | 否 |
| store | object | Store 信息 | 是 |
| + code | string | Store code | 是 |
Body数据样例
json
{
"smartware": {
"smart_id": "d1c79add-a725-432c-81a3-6d5ae2d0ce25",
"hub_code": "CBSTEST30607e18f2",
"asset_code": "CB408AGD21060111"
},
"store": {
"code": "TEST001"
}
}响应数据
响应数据样例
json
{
"code": 0,
"message": "success"
}解绑门店
接口说明
将设备和门店解绑。门店相关信息请查看门店。
请求信息
| 配置说明 | 参数值 |
|---|---|
| URL | /smartware/store |
| Method | DELETE |
| Content-Type | application/json |
Body参数
| 参数名 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| smartware | object | Smartware 信息 | 是 |
| + smart_id | string | 设备主键id。smart_id和hub_code必须传一个 | 否 |
| + hub_code | string | 设备hub_code。smart_id和hub_code必须传一个 | 否 |
Body数据样例
json
{
"smartware": {
"smart_id": "d1c79add-a725-432c-81a3-6d5ae2d0ce25",
"hub_code": "CBSTEST30607e18f2"
}
}响应数据
响应数据样例
json
{
"code": 0,
"message": "success"
}获取设备列表
接口说明
根据客户信息获取设备列表
请求信息
| 配置说明 | 参数值 |
|---|---|
| URL | /smartware/list |
| Method | GET |
请求参数
| 参数名 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| page_index | int | 页码信息,默认为第一页:1 | 否 |
| page_size | int | 每页数量,默认10,最大100 | 否 |
响应数据
data数据格式
| 参数名 | 类型 | 描述 |
|---|---|---|
| total | long | 设备总数量 |
| page | object | 分页信息 |
| + index | int | 页码 |
| + size | int | 每页数量 |
| results | []object | 结果集 |
| + smart_id | string | 设备id |
| + hub_code | string | 设备hub码 |
| + asset_code | string | 资产编码 |
| + fridge_temp | int | 设定的目标温度,℃ |
| + fridge_min_temp | int | 温控最小温度,℃ |
| + fridge_max_temp | int | 温控最大温度,℃ |
| + fridge_temp_alarm_delay | int | 温度报警延时时间,分钟 |
| + create_time | long | 创建时间,毫秒级时间戳 |
| + status | int | 设备状态,0-unactived; 1-running; 2-faulty; 3-broken; 4-recycled |
响应数据样例
json
{
"code": 0,
"message": "success",
"data": {
"total": 1000,
"page": {
"index": 1,
"size": 10
},
"results": [
{
"smart_id": "008d01a1-8e33-451f-86f4-ba3a7b2daa89",
"hub_code": "P31SZ11205M21030001-11E7",
"asset_code": "CB408AGD21060201",
"fridge_temp": 24,
"fridge_min_temp": 1,
"fridge_max_temp": 33,
"fridge_temp_alarm_delay": 10,
"create_time": 1622174400000,
"status": 1
}
]
}
}修改设备配置参数
接口说明
根据设备信息修改设备配置参数
请求信息
| 配置说明 | 参数值 |
|---|---|
| URL | /smartware/config |
| Method | PUT |
| Content-Type | application/json |
Body参数
| 参数名 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| smart_id | string | 设备主键id。smart_id/hub_code/asset_code 至少传一个 | 否 |
| hub_code | string | 设备的hub_code。smart_id/hub_code/asset_code 至少传一个 | 否 |
| asset_code | string | 资产码。smart_id/hub_code/asset_code 至少传一个 | 否 |
| fridge_temp | string | 设定的目标温度,整数,℃ ,最小0,最大8 | 否 |
| fridge_min_temp | string | 温控最小温度,整数,℃ ,最小-50,最大99,必须和fridge_max_temp同时设置 | 否 |
| fridge_max_temp | string | 温控最大温度,整数,℃ ,最小-50,最大99,必须和fridge_min_temp同时设置 | 否 |
| fridge_temp_alarm_delay | string | 温度报警延时时间,整数,分钟 | 否 |
Body数据样例
json
{
"smart_id": "008d01a1-8e33-451f-86f4-ba3a7b2daa89",
"hub_code": "P31SZ11205M21030001-11E7",
"asset_code": "CB408AGD21060201",
"fridge_temp": "24",
"fridge_min_temp": "1",
"fridge_max_temp": "33",
"fridge_temp_alarm_delay": "10"
}响应数据
响应数据样例
json
{
"code": 0,
"message": "success"
}查询设备配置参数
接口说明
根据设备信息查询设备配置参数
请求信息
| 配置说明 | 参数值 |
|---|---|
| URL | /smartware/config |
| Method | GET |
请求参数
| 参数名 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| smart_id | string | 设备主键id。smart_id/hub_code/asset_code 至少传一个 | 否 |
| hub_code | string | 设备hub_code。smart_id/hub_code/asset_code 至少传一个 | 否 |
| asset_code | string | 资产码。smart_id/hub_code/asset_code 至少传一个 | 否 |
响应数据
data数据格式
| 参数名 | 类型 | 描述 |
|---|---|---|
| fridge_temp | int | 设定的目标温度,℃ |
| fridge_min_temp | int | 温控最小温度,℃ |
| fridge_max_temp | int | 温控最大温度,℃ |
| fridge_temp_alarm_delay | int | 温度报警延时时间,分钟 |
响应数据样例
json
{
"code": 0,
"message": "success",
"data": {
"fridge_temp": 24,
"fridge_min_temp": 1,
"fridge_max_temp": 33,
"fridge_temp_alarm_delay": 10
}
}下发设备控制命令
接口说明
下发对指定设备的控制命令
请求信息
| 配置说明 | 参数值 |
|---|---|
| URL | /smartware/control |
| Method | PUT |
| Content-Type | application/json |
Body参数
| 参数名 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| smart_id | string | 设备主键id。smart_id/hub_code/asset_code 至少传一个 | 否 |
| hub_code | string | 设备hub_code。smart_id/hub_code/asset_code 至少传一个 | 否 |
| asset_code | string | 资产码。smart_id/hub_code/asset_code 至少传一个 | 否 |
| fridge_compressor | int | 控制压缩机开关;0-不控制;1-开;2-关;3-智能模式 | 否 |
| fridge_light | int | 控制灯条开关;0-不控制;1-开;2-关;3-智能模式 | 否 |
Body数据样例
json
{
"smart_id": "008d01a1-8e33-451f-86f4-ba3a7b2daa89",
"hub_code": "P31SZ11205M21030001-11E7",
"asset_code": "CB408AGD21060201",
"fridge_compressor": 1,
"fridge_light": 1
}响应数据
响应数据样例
json
{
"code": 0,
"message": "success"
}查询设备状态信息
接口说明
根据设备信息查询设备状态
请求信息
| 配置说明 | 参数值 |
|---|---|
| URL | /smartware/state |
| Method | GET |
请求参数
| 参数名 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| smart_id | string | 设备主键id。smart_id/hub_code/asset_code 至少传一个 | 否 |
| hub_code | string | 设备hub_code。smart_id/hub_code/asset_code 至少传一个 | 否 |
| asset_code | string | 资产码。smart_id/hub_code/asset_code 至少传一个 | 否 |
响应数据
data数据格式
| 参数名 | 类型 | 描述 |
|---|---|---|
| fridge_temp | float64 | 冰柜此时的温度值,℃ |
| fridge_latest_temp_time | long | 温度最后上报时间,毫秒级时间戳 |
| fridge_compressor | int | 控制压缩机开关;0-不控制;1-开;2-关;3-智能模式 |
| fridge_light | int | 控制灯条开关;0-不控制;1-开;2-关;3-智能模式 |
| longitude | float64 | 位置经度 |
| latitude | float64 | 位置纬度 |
| latest_gps_time | long | 最后上报位置信息时间,毫秒级时间戳 |
| alarms | []object | 有效报警列表 |
| + type | string | 报警类型,temp=温度,gps=位置 |
| + data | object | 具体报警信息 |
| + + degree | string | 温度值,type=temp才存在 |
| + + time | long | 报警时间,毫秒级时间戳 |
| + + diff | string | 偏移值,单位米,type=gps时存在 |
| latest_heartbeat_time | int | 最后一次上报心跳时间,毫秒级时间戳 |
| is_power_supply | bool | 是否供电,true = 外接电源,false代表使用电池 |
响应数据样例
json
{
"code": 0,
"message": "success",
"data": {
"fridge_temp": 12.22,
"fridge_latest_temp_time": 1622174400000,
"fridge_compressor": 1,
"fridge_light": 1,
"longitude": 126.63333,
"latitude": 38.75000,
"latest_gps_time": 1622174400000,
"alarms":[
{
"type": "temp",
"data":{
"degree": "66.11",
"time": 1622174400000
}
},
{
"type": "gps",
"data":{
"diff": "2.22",
"time": 1622174400000
}
}
],
"latest_heartbeat_time": 1622174400000,
"is_power_supply": true
}
}获取设备识图信息
接口说明
获取设备识图信息
请求信息
| 配置说明 | 参数值 |
|---|---|
| URL | /smartware/ir/result?capture_end_time=1646618412000&capture_start_time=1646618411000&image_filter=latest&store_code=5177er67378273888287321&smart_id=sdt33455 |
| Method | GET |
请求参数
| 参数名 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| store_code | string | 门店code码,和smart_id、asset_code、hub_code有一个必填 | 否 |
| smart_id | string | 设备主键id,和store_code、asset_code、hub_code有一个必填 | 否 |
| asset_code | string | 资产码,和store_code、smart_id、hub_code有一个必填 | 否 |
| hub_code | string | hub code,和store_code、asset_code、smart_id有一个必填 | 否 |
| capture_start_time | long | 拍照开始时间戳(毫秒) | 否 |
| capture_end_time | long | 拍照结束时间戳(毫秒) | 否 |
| image_filter | string | 图片筛选条件, latest=最新(默认) | 否 |
响应数据
data数据格式
| 参数名 | 类型 | 描述 |
|---|---|---|
| store | string | 门店信息 |
| + code | string | 门店code |
| photos | []object | 拍照的图片信息,每个smartId会有一张图片信息 |
| + smartware | string | Smartware |
| + + smart_id | string | Smartware id |
| + + hub_code | string | Hub code |
| + capture_time | long | 拍照时间,毫秒时间戳 |
| + image_url | string | 照片url |
| + data | object | 识图信息 |
| + + sku_list | []object | sku列表 |
| + + + sku_id | string | sku id |
| + + + sku_name | string | sku名称 |
| + + + sku_count | int64 | sku数量 |
| + + + category | string | sku类别 |
| + + + manufacturer | string | sku制造商 |
| + + + flavor | string | sku风味 |
| + + + sub_brand | string | sku子品牌 |
| + + + pack_type | string | sku包装类型 |
| + + + pack_size | string | sku包装尺寸 |
| + + + sub_category | string | sku子分类 |
| + + + unit | string | sku单位 |
| + + locations | []object | sku坐标列表 |
| + + + box_id | string | box id |
| + + + box_type | int32 | box type,0=未知类型 1=模型框 2= embedding框 10=价签框 11= POSM框 |
| + + + sku_id | string | sku Id |
| + + + linked_box_id | int64 | 关联的box id |
| + + + position | object | sku位置 |
| + + + + index | int32 | 位置序号 |
| + + + + row | int32 | 行号,具体规则见行列示意图 |
| + + + + col | int32 | 列号,具体规则见行列示意图 |
| + + + + stacking | string | 堆信息,0=无堆放,如果存在堆放,值为1~n |
| + + + bounding_box | object | 坐标框 |
| + + + + x_min | float64 | 左上角x坐标, 具体位置见box示意图 |
| + + + + y_min | float64 | 左上角Y坐标, 具体位置见box示意图 |
| + + + + x_max | float64 | 右下角x坐标, 具体位置见box示意图 |
| + + + + y_max | float64 | 右下角y坐标, 具体位置见box示意图 |
| + + qualities | []object | 照片质量,具体见Task识图质量说明 |
| + + + id | string | 质量id |
| + + + name | string | 质量名称 |
| + + metrics | []object | 指标项,具体含义见api说明,具体见Task识图指标说明 |
| + + + id | string | 指标项id |
| + + + name | string | 指标项名称 |
| + + + value | string | 指标项值 |
| + + sales | []object | 销量信息 |
| + + + sku_id | string | Sku id |
| + + + sku_name | string | Sku name |
| + + + count | int64 | 该sku在这次照片中的销量 |
假设拍摄了一张350X640的照片,则(1,1)对应的真实坐标为(350,640),x_min、x_max、y_min、y_max需要按照相应比例计算真实坐标位置,box示意图如下:
行列的示意图如下:
响应数据样例
json
{
"code": 0,
"message": "",
"data": {
"store": {
"code": "TEST001"
},
"photos": [
{
"smartware": {
"smart_id": "d1c79add-a725-432c-81a3-6d5ae2d0ce25",
"hub_code": "CBSTEST30607e18f2"
},
"capture_time": 1646618412000,
"image_url": "https://f-dev.clobotics.cn/4/0040ca4d85f5e5ef7354102f486ef843.jpg",
"data": {
"sku_list": [
{
"sku_id": "1047441",
"sku_name": "Coke Original Sparkling Can 180 ml",
"sku_count": 7,
"brand": "Coke",
"category": "Sparkling",
"manufacturer": "Coca-Cola",
"flavor": "",
"sub_brand": "Original",
"pack_type": "Can",
"pack_size": "180",
"sub_category": ""
}
],
"locations": [
{
"sku_id": "1044059",
"bounding_box": {
"x_min": 0.46711602807044983,
"y_min": 0.7578532695770264,
"x_max": 0.481109082698822,
"y_max": 0.771846354007721
},
"position": {
"index": 0,
"row": 1,
"col": 2,
"stacking": 0
},
"box_id": 0,
"box_type": 0,
"linked_box_id": 0
},
{
"sku_id": "1044059",
"bounding_box": {
"x_min": 0.5359848141670227,
"y_min": 0.7501513361930847,
"x_max": 0.5499778389930725,
"y_max": 0.7641443610191345
},
"position": {
"index": 0,
"row": 1,
"col": 3,
"stacking": 0
},
"box_id": 0,
"box_type": 0,
"linked_box_id": 0
}
],
"qualities": [
{
"id": "23",
"name": "test"
}
],
"metrics": [
{
"id": "16",
"name": "Purity",
"value": "58%"
}
],
"sales": [
{
"sku_id": "1044059",
"sku_name": "cool",
"count": 2
}
]
}
}
]
}
}获取门店或设备每日汇总数据
接口说明
根据门店或者设备Id获取每日汇总信息
请求信息
| 配置说明 | 参数值 |
|---|---|
| URL | /smartware/ir/summary/daily?date=2022-03-01&metrics=sales&store_code=5177er67378273888287321&smart_id=sdt33455 |
| Method | GET |
请求参数
| 参数名 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| store_code | string | 门店code码,和smart_id、asset_code、hub_code有一个必填 | 否 |
| smart_id | string | 设备主键id,和store_code、asset_code、hub_code有一个必填 | 否 |
| asset_code | string | 资产码,和store_code、smart_id、hub_code有一个必填 | 否 |
| hub_code | string | hub code,和store_code、asset_code、smart_id有一个必填 | 否 |
| date | string | 查询时间, yyyy-MM-dd,默认取当前的时间T-1 | 否 |
| metrics | string | 数据项,sales=销量,多个数据项以","(英文逗号)隔开,现阶段只有sales这个数据项 | 否 |
响应数据
data数据格式
| 参数名 | 类型 | 描述 |
|---|---|---|
| store | string | 门店信息 |
| + code | string | 门店code |
| data | []object | 每个设备的每日汇总信息 |
| + smartware | object | Smartware |
| + + smart_id | string | 设备主键id |
| + + hub_code | string | 设备的hub code |
| + photo_count | int64 | 照片数量 |
| + sales | []object | 销量信息 |
| + + sku_id | string | Sku id |
| + + sku_name | string | Sku name |
| + + count | int64 | 该sku在统计周期内的销量 |
响应数据样例
json
{
"code": 0,
"message": "",
"data": {
"store": {
"code": "TEST001"
},
"data": [
{
"smartware": {
"smart_id": "d1c79add-a725-432c-81a3-6d5ae2d0ce25",
"hub_code": "CBSTEST30607e18f2"
},
"sales": [
{
"sku_id": "1044059",
"sku_name": "cool",
"count": 100
}
]
}
]
}
}