字段名 | 描述 |
---|---|
id | 设备ID |
create_time | 创建时间 |
update_time | 更新时间 |
sort | 设备排序 |
ext1 | 扩展字段 |
ext2 | 扩展字段 |
ext3 | 扩展字段 |
name | 设备名称 |
user_id | 绑定的用户ID |
equipment_id | 绑定的超体ID |
api_key | 设备的api_key |
enable | 是否启用;0:禁止(默认),1:启用 |
is_online | 是否在线;0:离线,1:在线 |
device_id | 设备SM |
设备管理接口
1432字约5分钟
2025-04-10
使用设备管理接口可以进行查询设备列表
、更新设备
、解绑设备
。
查询设备列表
适用对象: 第三方服务端请求
请求URL: https://api.espai.fun/devices/list
请求方式: POST
请求参数:
字段名 | 类型 | 必填 | 描述 |
---|---|---|---|
name | string | 否 | 设备名称 |
api_key | string | 否 | 设备的api_key,用户设备相关配置的密钥;注意:不是open_api_key |
device_id | string | 否 | 设备SM;例如:FC:01:2C:DB:14:30 ;注意非32位ID |
bin_id | string | 否 | 固件ID |
version | string | 否 | 固件版本 |
enable | string | 否 | 是否启用;0:禁止(默认),1:启用 |
is_online | string | 否 | 是否在线;0:离线,1:在线 |
type | string | 否 | 设备类型;0:对话设备(默认),1:终端设备 |
page | string | 否 | 分页查询当前页;默认当前第1页 |
limit | string | 否 | 分页查询查询条数;默认查询9999条 |
注意:当所有参数都不传时,默认查询当前用户下的所有设备,返回设备列表。
参数示例:
{
"name": "小琅",
"api_key": "你自己设备对应的api_key",
"device_id": "FC:01:2C:DB:14:30",
"bin_id": "0",
"version": "1.22.34",
"enable": "1",
"is_online": "1",
"type": "0",
"page": "1",
"limit": "10"
}
返回参数:
字段名 | 类型 | 必填 | 描述 |
---|---|---|---|
success | boolean | 是 | 结果标识;true:成功,false:请求失败 |
totalNumber | number | 是 | 返回的数据总数 |
message | string | 是 | 返回的消息;例如:请求成功 或其他异常信息 |
data | array | 是 | 返回的数据列表 |
设备信息:
字段名 | 描述 |
---|---|
wifi_ssid | 设备连接wifi名称 |
wifi_pwd | 设备连接wifi密码 |
net_ip | 配网IP |
version | 固件版本 |
bin_id | 固件ID |
nation | 设备所在国家 |
province | 设备所在省 |
city | 设备所在市 |
type | 设备类型;0:对话设备(默认),1:终端设备 |
memory | 凝忆晶胞 |
latitude | 维度 |
longitude | 经度 |
user_name | 绑定的用户名 |
user_phone | 绑定的用户号码 |
返回示例:
{
"success": true,
"message": "请求成功",
"data": [
{
"id": "2cf661bb42b642018ee13af7150b8310",
"create_time": 1744180142741,
"update_time": 1744268200431,
"sort": null,
"ext1": null,
"ext2": null,
"ext3": null,
"name": "小琅",
"user_id": "87215a4192654cea8781a1a596d23cae",
"equipment_id": "679f9af935e047639ddb98f35e103e8f",
"api_key": "",
"enable": "1",
"is_online": "0",
"device_id": "FC:01:2C:DB:14:30",
"wifi_ssid": "联域科技",
"wifi_pwd": "lykj987654321",
"net_ip": "xxx.xxx.xxx.xxx",
"version": "1.22.34",
"bin_id": "0",
"nation": "China",
"province": "Guangdong",
"city": "Guangzhou",
"type": null,
"memory": "用户问候,助手以“乌鸦哥”的身份回应,并提出可以帮助用户。",
"latitude": "23.1181",
"longitude": "113.2539",
"user_name": "琳琅",
"user_phone": 15916888888
}
],
"totalNumber": 1
}
错误示例:
{
"success": false,
"message": "系统错误:xxx",
"code": 500
}
代码示例:
Nodejs
const axios = require('axios');
// 定义请求头部
const headers = {
'authorization': 'esp_ai平台的32位open_api_key',
'Content-Type': 'application/json'
};
// 定义要发送的数据
const data = {
"name": "小琅",
"api_key": "你自己设备对应的api_key",
"device_id": "FC:01:2C:DB:14:30",
"bin_id": "0",
"version": "1.22.34",
"enable": "1",
"is_online": "1",
"type": "0",
"page": "1",
"limit": "10"
};
// 发送POST请求
axios.post('https://api.espai.fun/devices/list', data, {headers})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
更新设备
适用对象: 第三方服务端请求
请求URL: https://api.espai.fun/devices/update
请求方式: POST
请求参数:
字段名 | 类型 | 必填 | 描述 |
---|---|---|---|
id | string | 是 | 设备ID |
name | string | 否 | 设备名称 |
version | string | 否 | 固件版本 |
enable | string | 否 | 是否启用;0:禁止(默认),1:启用 |
wifi_ssid | string | 否 | 设备连接wifi名称 |
wifi_pwd | string | 否 | 设备连接wifi密码 |
net_ip | string | 否 | 配网IP |
bin_id | string | 否 | 固件ID |
nation | string | 否 | 设备所在国家 |
province | string | 否 | 设备所在省 |
city | string | 否 | 设备所在市 |
longitude | string | 否 | 经度 |
latitude | string | 否 | 纬度 |
localData | json | 否 | 设备本地数据 |
参数示例:
{
"id": "2cf661bb42b642018ee13af7150b8310",
"name": "小琅",
"version": "1.22.34",
"enable": "1",
"wifi_ssid": "联域科技",
"wifi_pwd": "lykj987654321",
"net_ip": "192.168.3.71",
"bin_id": "0",
"nation": "China",
"province": "Guangdong",
"city": "Guangzhou",
"longitude": "113.2539",
"latitude": "23.1181",
"localData": {
"wifi_ssid": "联域科技",
"wifi_pwd": "lykj987654321"
}
}
返回参数:
字段名 | 类型 | 必填 | 描述 |
---|---|---|---|
success | boolean | 是 | 结果标识;true:成功,false:请求失败 |
message | string | 是 | 返回的消息;例如:修改成功 或其他异常信息 |
data | json | 是 | 返回的已变更的数据,参考设备信息 |
返回示例:
{
"success": true,
"message": "修改成功",
"data": {
"version": "1.22.34",
"name": "小琅",
"enable": "1",
"wifi_ssid": "联域科技",
"wifi_pwd": "lykj987654321",
"net_ip": "192.168.3.71",
"bin_id": "0",
"nation": "China",
"province": "Guangdong",
"city": "Guangzhou",
"latitude": "23.1181",
"longitude": "113.2539",
"update_time": 1744274870626
}
}
错误示例:
{
"success": false,
"message": "系统错误:xxx",
"code": 500
}
{
"success": false,
"message": "缺失参数:id",
"code": 401
}
代码示例:
Nodejs
const axios = require('axios');
// 定义请求头部
const headers = {
'authorization': 'esp_ai平台的32位open_api_key',
'Content-Type': 'application/json'
};
// 定义要发送的数据
const data = {
"id": "2cf661bb42b642018ee13af7150b8310",
"name": "小琅",
"version": "1.22.34",
"enable": "1",
"wifi_ssid": "联域科技",
"wifi_pwd": "lykj987654321",
"net_ip": "192.168.3.71",
"bin_id": "0",
"nation": "China",
"province": "Guangdong",
"city": "Guangzhou",
"longitude": "113.2539",
"latitude": "23.1181",
"localData": {"wifi_ssid": "联域科技", "wifi_pwd": "lykj987654321"}
};
// 发送POST请求
axios.post('https://api.espai.fun/devices/update', data, {headers})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
解绑设备
适用对象: 第三方服务端请求
请求URL: https://api.espai.fun/devices/del
请求方式: POST
请求参数:
字段名 | 类型 | 必填 | 描述 |
---|---|---|---|
id | string | 是 | 设备ID |
参数示例:
[
{
"id": "b93ec353967441ada8d31b4910a3032d"
}
]
返回参数:
字段名 | 类型 | 必填 | 描述 |
---|---|---|---|
success | boolean | 是 | 结果标识;true:成功,false:请求失败 |
message | string | 是 | 返回的消息;例如:解绑成功 或其他异常信息 |
返回示例:
{
"success": true,
"message": "解绑成功"
}
错误示例:
{
"success": false,
"message": "系统错误:xxx",
"code": 500
}
{
"success": false,
"message": "解绑失败,请传入需要解绑的数据"
}
{
"success": false,
"message": "设备未找到,请检查!"
}
代码示例:
Nodejs
const axios = require('axios');
// 定义请求头部
const headers = {
'authorization': 'esp_ai平台的32位open_api_key',
'Content-Type': 'application/json'
};
// 定义要发送的数据
const data = [{"id": "b93ec353967441ada8d31b4910a3032d"}];
// 发送POST请求
axios.post('https://api.espai.fun/devices/del', data, {headers})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});