Skip to content

SenseCAP WebAPI Server (Chinese)

Jancee JX | 王静茜 edited this page Jan 6, 2020 · 1 revision

Sensecap-webapi 是基于Java开发的一个项目框架,用于管理和接收控制器及传感器的状态和数据信息

环境

  • JDK1.8+
  • Maven3+
  • Mysql5.7+

快速开始

  1. 请下载项目源码并解压,获取数据库初始化SQL脚本,执行即可 数据库SQL文件

  2. 解压源码,导入IDE,使用maven进行编译即可

  3. 配置application.properties

#默认端口
server.port=9001

#JDBC连接
spring.datasource.url=jdbc:mysql://host:port/dbSenscap4WebApi?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=username
spring.datasource.password=pwd
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver


#switches API地址、apikey、authentication
spring.dev.url=https://cn-api.coolkit.cn:8080
spring.dev.apikey=0f575df2-e7b5-4db3-b7c8-2f83caf60e81
spring.dev.at=481998354c0649219f46f51f86e9f235710551f8


#sensor'sAPI 地址
spring.sensor.url=https://sensecap-openapi.seeed.cc/1.0


#MQTT登录信息,多客户端需保持ClientId唯一
spring.sensor.host=tcp://openstream.api.sensecap.seeed.cc
spring.sensor.ClientId=random

#登录https://sensecap.seeed.cc/ 获取组织ID、秘钥ID、API访问密钥
spring.sensor.OrganizationId=
spring.sensor.APIID=
spring.sensor.APIKey=

秘钥获取

  1. 如果已经正确进行上述配置,可将项目编译打包部署

接口说明

请求地址
本地:http://127.0.0.1:9001
服务器:替换为自己部署地址 
成功返回
{
    "code": 0,
    "msg": "success",
    "data": []
}

1. 获取控制器开关列表 / GET

/dev/list

请求参数
参数 必选 类型 说明
- - -
响应参数类型说明
参数 类型 说明
id int 开关唯一标识
devId string 控制器唯一标识,通常一个控制器有4个引脚
openOutlet int 引脚编号,从0开始,一个只有开和关二种状态的开关对应一个引脚
closeOutlet int 引脚编号,从0开始,三相开关(支持开/关/停止三种状态的开关)需要该引脚,默认为-1,当前您可以通过数据库修改该设置
name string 开关名称
onOff int 开关状态,0:关,1:开,-1:停止
online boolean 是否在线
isuse boolean 是否使用
响应数据
{
    "code": 0,
    "msg": "success",
    "data": [
        {
            "id": 5,
            "devId": "10002dfebf",
            "openOutlet": 0,
            "closeOutlet": -1,
            "name": "灌溉水泵",
            "onOff": 0,
            "online": false,
            "isuse": true
        },
        {
            "id": 6,
            "devId": "10002dfebf",
            "openOutlet": 1,
            "closeOutlet": -1,
            "name": "通风风机",
            "onOff": 0,
            "online": false,
            "isuse": true
        },
        ...
    ]
}

2. 修改传感器名称和启用状态 / PATCH

/dev/update

请求参数
参数 必选 类型 说明
id int 开关唯一标识
name string 修改之后的开关名称
isuse boolean 修改之后是否启用
响应参数类型说明
参数 类型 说明
- -
{
    "code": 0,
    "msg": "success",
    "data": null
}

3. 操作控制器开关 / POST

/dev/switch

请求参数
参数 必选 类型 说明
id int 开关唯一标识
op int 操作,0:关,1:开,-1:停止
响应参数类型说明
参数 类型 说明
- -
响应数据
{
    "code": 0,
    "msg": "success",
    "data": null
}

4. 获取各传感器当前信息 / GET

/sensor/node/currentvalues

请求参数
参数 必选 类型 说明
- - -
响应参数类型说明
参数 类型 说明
dev_eui string 设备eui
dev_name string 设备名称
measure_id int 测量值ID
measure_Name string 测量值名称
class_id int 测量类型ID:1,环境 2,土壤
class_Name string 测量类型名称
battery_status int 电池状态:1,充足 0,缺电
online_status int 设备在线状态:1,在线 0,不在线
sensor_channel int 暂不读取
unit string 测量值单位
value float 测量值读数
minval float 正常值范围的最小值
maxval float 正常值范围的最大值
time long 时间戳
响应数据
{
    "code": 0,
    "msg": "success",
    "data": [
        {
            "dev_eui": "2CF7F12212100097",
            "dev_name": "设备2CF7F12212100097",
            "measure_id": 4107,
            "measure_Name": "光通量",
            "class_id": 2,
            "class_Name": "土壤监测",
            "battery_status": 1,
            "online_status": 0,
            "sensor_channel": 1,
            "unit": "umol/㎡s",
            "value": 3.0,
            "minval": 0.0,
            "maxval": 2000.0,
            "time": 1575178701898
        },
        {
            "dev_eui": "2CF7F12210400097",
            "dev_name": "二氧化碳-2CF7F12210400097",
            "measure_id": 4100,
            "measure_Name": "二氧化碳",
            "class_id": 1,
            "class_Name": "环境监测",
            "battery_status": 1,
            "online_status": 0,
            "sensor_channel": 1,
            "unit": "ppm",
            "value": 374.0,
            "minval": 400.0,
            "maxval": 10000.0,
            "time": 1575179573201
        },
        ...
    ]
}

5. 获取各传感器最近n条测量值 / GET

/sensor/node/recentvalues

请求参数
参数 必选 类型 说明
count int 读取记录数
响应参数类型说明
参数 类型 说明
dev_eui string 设备eui
dev_name string 设备名称
measure_id int 测量值ID
measure_name string 测量值名称
unit string 测量值单位
value float 测量值读数
minval float 正常值范围的最小值
maxval float 正常值范围的最大值
time long 时间戳
响应数据
{
    "code": 0,
    "msg": "success",
    "data": [
        {
            "dev_eui": "2CF7F1221210004C",
            "dev_name": "空气温湿度-2CF7F1221210004C",
            "measure_id": 4097,
            "measure_name": "空气温度",
            "unit": "℃",
            "value": 27.0,
            "minval": -40.0,
            "maxval": 90.0,
            "time": 1575181787444
        },
        {
            "dev_eui": "2CF7F1221210004C",
            "dev_name": "空气温湿度-2CF7F1221210004C",
            "measure_id": 4098,
            "measure_name": "空气湿度",
            "unit": "%RH",
            "value": 47.0,
            "minval": 0.0,
            "maxval": 100.0,
            "time": 1575181787444
        },
        ...
    ]
}

6. 获取各传感器警告记录 / GET

/sensor/node/warnings

请求参数
参数 必选 类型 说明
start long 开始时间戳
end long 结束时间戳
响应参数类型说明
参数 类型 说明
dev_eui string 设备eui
dev_name string 设备名称
measure_id int 测量值ID
measure_name string 测量值名称
unit string 测量值单位
value float 测量值读数
minval float 正常值范围的最小值
maxval float 正常值范围的最大值
time long 时间戳
响应数据
{
    "code": 0,
    "msg": "success",
    "data": [
        {
            "dev_eui": "2CF7F12210400097",
            "dev_name": "二氧化碳-2CF7F12210400097",
            "measure_id": 4100,
            "measure_name": "二氧化碳",
            "unit": "ppm",
            "value": 399.0,
            "minval": 400.0,
            "maxval": 10000.0,
            "time": 1574092262298
        },
        {
            "dev_eui": "2CF7F12210400097",
            "dev_name": "二氧化碳-2CF7F12210400097",
            "measure_id": 4100,
            "measure_name": "二氧化碳",
            "unit": "ppm",
            "value": 395.0,
            "minval": 400.0,
            "maxval": 10000.0,
            "time": 1574095907472
        },
        ...
    ]
}

7. 按时间段获取指定传感器的测量值记录 / GET

/sensor/node/values

请求参数
参数 必选 类型 说明
dev_eui string 设备eui
measure_id int 测量值ID
start long 开始时间戳
end long 结束时间戳
响应参数类型说明
参数 类型 说明
id int 记录ID
dev_eui string 设备eui
measure_id int 测量值ID
channel int -
value float 测量值读数
time long 时间戳
响应数据
{
    "code": 0,
    "msg": "success",
    "data": [
        {
            "id": 78,
            "dev_eui": "2CF7F1221210007C",
            "measure_id": 4104,
            "channel": 1,
            "value": 220.0,
            "time": 1574074321802
        },
        {
            "id": 92,
            "dev_eui": "2CF7F1221210007C",
            "measure_id": 4104,
            "channel": 1,
            "value": 220.0,
            "time": 1574077928137
        },
        ...
    ]
}

8. 获取传感器在线情况 / GET

/sensor/node/resume

请求参数
参数 必选 类型 说明
- - -
响应参数类型说明
参数 类型 说明
classId int 测量类型ID:1,环境 2,土壤
className string 测量类型名称
battery_full int 电池充足的设备数量
battery_poor int 缺电状态的设置数量
onlineCount int 在线设备数量
unlineCount int 不在线设备数量
响应数据
{
    "code": 0,
    "msg": "success",
    "data": [
        {
            "classId": 1,
            "className": "环境监测",
            "battery_full": 7,
            "battery_poor": 0,
            "onlineCount": 0,
            "unlineCount": 7
        },
        {
            "classId": 2,
            "className": "土壤监测",
            "battery_full": 8,
            "battery_poor": 0,
            "onlineCount": 0,
            "unlineCount": 8
        }
    ]
}

9. 获取传感器正常值访问 / GET

/sensor/node/normalranges

请求参数
参数 必选 类型 说明
- - -
响应参数类型说明
参数 类型 说明
measure_id int 测量值ID
measure_Name string 测量值名称
unit string 测量值单位
minval float 正常值范围的最小值
maxval float 正常值范围的最大值
响应数据
{
    "code": 0,
    "msg": "success",
    "data": [
        {
            "measure_id": 4097,
            "measure_Name": "空气温度",
            "unit": "℃",
            "minval": -40.0,
            "maxval": 90.0
        },
        {
            "measure_id": 4098,
            "measure_Name": "空气湿度",
            "unit": "%RH",
            "minval": 0.0,
            "maxval": 100.0
        },
        ...
    ]
}

10. 修改传感器测量值正常范围 / PATCH

/sensor/node/changerange

请求参数
参数 必选 类型 说明
dev_eui string 设备eui
measure_id int 测量值ID
minval float 修改后正常值范围的最小值
maxval float 修改后正常值范围的最大值
响应参数类型说明
参数 类型 说明
- -
响应数据
{
    "code": 0,
    "msg": "success",
    "data": null
}

Clone this wiki locally