设备配置数据格式说明文档
版本: 1.0
发布日期: 2024-11-18
历史记录
| 修订日期 | 版本 | 作者 | 说明 |
| --------- | ---- | ---------- | -------- |
| 2024-11-18 | V1.0 | alva.huang | 初始版本 |
[toc]
# 前言
## 概述
本文档旨在说明爱智居设备配置的数据格式,帮助开发人员如何使用api获取配置数据,和解析数据格式,包含API的功能,调用方式,返回结果和错误码。数据格式定义,数据结构,字段说明等。
## 范围说明
此开发文档只针对智能家居面板,门禁,网关等设备。数据格式包含:设备配置列表数据,场景配置列表数据,区域列表数据等。
# 设备配置数据获取接口说明
GET 请求URL:
[https://smart.izhiju.cn/v1](https://smart.izhiju.cn/v1)
请求头参数:
Content-Type: application/json
Authorization: Bearer {{token}}
## HTTP返回状态码说明
200-299 请求成功
400-499 请求失败,客户端参数或信息错误
500-599 请求失败,服务端错误
| 状态码 | 说明 |
|:-------|:---------------------------------------------|
| 200 | 请求成功 |
| 201 | 新增成功 |
| 204 | 删除成功/更新成功 |
| 401 | 请求失败,无权限,没有登陆认证或认证token错误 |
| 403 | 请求失败,无权限 |
| 404 | 请求失败,资源不存在 |
| 405 | 请求失败,请求方法不支持 |
| 406 | 请求失败,参数错误 |
| 400 | 请求失败,参数错误 |
| 408 | 请求失败,请求超时 |
| 415 | 请求失败,不支持的媒体类型 |
| 500 | 请求失败,服务端内部错误 |
## 返回结果规范
```json
{
"code": 200,
"msg": "操作成功",
"data": 一个标准的json对象或者数组对象
}
```
## 背景图片列表
### GET 请求URL
{{api_url}}/v1/device/background
### 返回结果
```json
{
"code": 200,
"msg": "操作成功",
"data": [
{
"id": 1,
"name": "t",
"displayName": "t",
"size": 10,
"imgUrl": "v1/static/xx/1.jpg",
"version": null,
"status": 0,
"isDel": 0,
"createTime": "2024-12-05T11:01:38",
"updateTime": "2024-12-05T11:01:54"
}
],
"time": 1733367719077
}
```
1. 成功,状态码200,返回设备配置列表数据
2. 失败,状态码401,授权失败
3. 具体返回状态码和http标准状态码一致,具体请查看[HTTP状态码](https://www.runoob.com/http/http-status-codes.html)
```json
{
"code": 200,
"msg": "操作成功",
"data": [
{
"id": 背景图片id,
""
}
]
}
```
## 同步设备配置列表数据
### GET请求URL
{{api_url}}/v1/device/sync?{{query_params}}
### HEAD 参数
### 查寻参数
| 参数名 | 参数类型 | 值 | 说明 |
| -------- | ------------ | --------------------- | ------------------------------------------------- |
| deviceId | string | ac:bc:cd:ee:11:22 | 设备ID或MAC地址,必须字段,后台添加限制时保持一致即可,智能家居应用目前定为大写MAC去冒号 |
| type | string | device | 获取哪些配置 all和不传为所有,device为设备配置列表,scene为场景配置列表,area为区域配置列表,all为所有组合配置
### 返回结果
1. 成功,状态码200,返回设备配置列表数据
2. 失败,状态码401,授权失败
3. 具体返回状态码和http标准状态码一致,具体请查看[HTTP状态码](https://www.runoob.com/http/http-status-codes.html)
```json
{
"code": 200,
"msg": "操作成功",
"data": {
"city": {
"location_id": "101010100",
"location_name_en": "Beijing",
"location_name_zh": "北京",
"iso_3166_1": "CN",
"country_region_en": "China",
"country_region_zh": "中国",
"adm1_name_en": "Beijing",
"adm1_name_zh": "北京市",
"adm2_name_en": "Beijing",
"adm2_name_zh": "北京市",
"timezone": "Asia/Shanghai",
"latitude": "39.904987",
"longitude": "116.405289",
"adcode": "110000"
},
"areas": [
{
"id": 1,
"pid": 0,
"name": "三楼",
"groupable": true
}
],
"devices": [
{
"opr": "addOrUpd",
"id": 322,
"pid": 0,
"area_id": 2,
"type": "gateway",
"subtype": "YG003",
"name": "4001",
"display_name": "主网关",
"version": 1,
"config": {
"address": "A51234F85667",
"master": true
}
}
],
"scenes": [
{
"opr": "addOrUpd",
"id": 335,
"pid": 0,
"area_id": 2,
"type": "scene",
"subtype": "scene",
"name": "3001",
"display_name": "场景1",
"description": "场景1",
"version": 1,
"actions": {
"winter": [
{
"name": "0005"
}
],
"summer": [
{
"name": "0004"
}
],
"common": [
{
"name": "0003"
}
]
}
}
]
},
"time": 1733367851249
}
```
## 返回数据格式总体定义说明
1. 数据格式为json,返回数据为数据列表,json中采用驼峰命名方式
### 所有设备具有的配置属性返回数据格式示例
为支持增量同步机制;所有对象新增操作模式字段:opr;枚举有:addOrUpd|del
```json
[
//第一个模板为所有配置,包含必选配置和可选配置,不同设备类型的配置都有说明
{
"id": 1, //设备配置id
"pid": 1, //设备父级id,0为顶级,父级id目前可以是网关id,也可以是面板id,面板下的gpio设备或ble,zigbee设备需要通过面板转发控制的设备,父id为面板id,即面板可以当网关用
"area_id": "区域id",
"area": "区域名称",
"name": "0001", //设备名称,设备唯一名称
"display_name": "设备显示名称",
"type": "设备类型", //entrance_guard 门禁,light ,switch,aircon,curtain,fan,airrefresh
"subtype": "设备子类型",
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"channels":[{//缓存的设备状态,或初始默认值,可选,不传时为空,具体项看设备控制协议定义
"name": "action",
"type": "STRING",
"mode": "READ_WRITE",
"value": "off"
}],
"description": "设备描述",//可选,可为空
"config": //所有设备整体配置
{
"bus": "canbus",//设备接入总线或协议类型,canbus/network/serial/RS485/gpio/zigbee/bluetooth/dali/knx/plc-iot
"control_type": "protocol",//protocol协议类型,relay为继电器,门禁门锁时有single和keep,为窗帘single单信号窗帘相当于按键,off继电器断信号,double继电器双信号窗帘用,touch为干节点按键,可选
"address": "12345678", //地址,canbus或485,蓝牙,zegbee,地址
"port": "1", //端口号,1-16,协议转换器的端口号,或开关,灯对应的单个继电器的端口号,//端口号十六进制字符串 1和01是一样的
"control_bits": [//继电器或协议转换器关联端口控制位,可选,不传为空
{
"name":"curtain_on_port",//curtain_on_port开,curtain_off_port关,//speed1_port风速1档端口,speed1-speed6风速1到6档端口配置,valve_switch_port 冷热阀门控制开关
"type":"touch",//touch为干节点按键,switch为开关
"keep_time":1000,//延时时间,0-65535毫秒
"address":"A2",//485或canbus继电器地址,没有此项为上级adress定义的设备配置地址
"associated_scene":[],//关联的场景列表,可选,不传为空
"value":"1",//端口号十六进制字符串 1和01是一样的
}
],
"broadcast": false,//跨网关是否广播 false为不广播,true为广播
"control_addr":33, //协议窗帘或空调的设备地址(空调是内机地址,窗帘为电机地址0-255),433协议窗帘时为遥控器id,433设备对应的遥控码,3字节取值范围 0-16777215(小端在后比如20:000014)
"hvac_addr": 22,//暖通空调外机地址,0-255
// "device_control":"protocol", //protocol(协议),central(继电器)
"keep_time": 5, //--门锁为单信号时,控制延时上锁时间,默认值为5秒,范围(1到30秒)如门禁开后5秒后自动上锁
"icons":["internal://array_light","http://www.abc.com/img/light.png"],//设备图标列表,默认数组第一个下标图标
"order": 1,//排序,值越小越靠前,相同的值按设备先后顺序
//空调默认24,范围15-35,默认16-32,温湿度默认24
//地暖默认22,范围5-35,默认5-35,温湿度默认24
//新风默认24,范围15-35,默认16-32,温湿度默认24
//空调外机默认5(夏天),范围1-50,默认5-45,温湿度默认24
//浴霸默认40,范围30-45,默认35-42,温湿度默认24
"temp": 24,//默认温度
"temp_min": 20,//温控类设备默认可调最小温度,最低温度不得高于最高温度设置,即小于等于temp_max
"temp_max": 30,//温控类设备默认可调最大温度
"humidity": 60,//默认湿度
"speeds":["1","2","3","auto"] ,//空调,风扇风力档位数量,默认为3档,低,中,高
"auto_speed":true,//风力是否支持自动档,针对空调,新风空调
"is_main": true,//网关设备使用,主网关为true,无或false时为从属网关
"is_gateway": false,//是否为网关设备,如:面板,网关设备不支持控制,只支持场景,如:面板,面板不支持控制,只支持场景,如:面板
"modes": ["","","",""],//支持模式列表 fan,cool,heat,auto,saving,dehumidify,sleeping,fan_inner(内循环),fan_side(旁通)/heat_exchange(热交换)
"associated_sensor": //关联传感器,如温湿度传感器,第一个为环境温湿度传感器,当为地暖时,第二个为报警温度传感器,默认45度
[
{"name":"humiture1","calibration":10,"type":"humiture"},
{"name":"humiture2", //关联传感器2,设备唯一的名称
"calibration":5, //校正温度度数
"alarm_temp":45//报警温度
}],
"associated_scene": //-设备关联的场景,一般是输入类型设备,如干节点输入,按键,传感器等,场景数组中每次只出发一个场景
[
{
"name":"scene1",//场景名称
"mode":"order",// order代表网关或面板循环执行对应数组下标的场景
"expression":"order",//场景执行条件,表达式为真执行,order为执行顺序和下标一致时执行,其他为表达式判断为真时执行
},
{
"name":"scene2",
"mode":"order",// order代表网关或面板循环执行对应数组下标的场景
"expression":"value=12341234",//value为设备属性的某个键,取值后和具体数字或字符串比较,为真时执行
}
],
"card_format":1,//卡数据格式 0为无,1为10位10进制,2为10位10进制反向输出,3为8位16进制,4为8位16进制反向输出,5为8位10进制(id后3字节转换),6为00+8位10进制,7为8位10进制(id后4字节转换),8为5位10进制
"associated_device":[{"name":"lockdevice1","action":"unlock"}], //关联要开的锁,如门锁,窗锁,干节点关联设备
"is_gateway":"", //面板是否连接外网作为app网关代理
//智能控制面板配置 panel
"display_device": //面板上要显示的设备列表
[{
"name": "0001",
"lock": false //是否锁定
}, {
"name": "0003",
"lock": false
}],
"display_scene": //面板上要显示的场景列表
[{
"name": "1009",
"lock": false
}, {
"name": "100A",
"lock": false
}, {
"name": "100B",
"lock": false
}],
"lock_weekday": [1, 2, 3, 4, 5], //一周中哪些天需要锁定
"lock_start_time": "12:00:00", //一天中锁定的开始时间,格式为24小时制
"lock_end_time": "23:59:59", //一天中锁定的结束时间,格式为24小时制
//门禁面板配置 entrance_guard
"camera_type": "IR",// 门禁摄像头类型,IR红外,RGB为全彩,RGB_IR为红外+彩
"brightness": 100,//亮度
"screen_off": 2,//屏幕关闭时间,单位为分钟,0为不关闭,和系统的熄屏列表对应
"volume": 50,//音量设置
"mute": false,//是否静音
"fill_light": false,//是否开启补光灯
"live_detection": false,//是否开启活体检测
"face_valve":0.55,//人脸阀值 0-1
"mask_detection": false//是否开启口罩检测
}
}
]
```
### 温湿度传感器配置数据示例
```json
[
{
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "灯光",
"type": "humiture",
"subtype": "humiture_common", //humiture_common,默认值,通用温湿度
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"bus":"canbus",//设备接入总线或协议类型,canbus/network/serial/RS485/zigbee/bluetooth/dali/knx/plc-iot,默认canbus
"address": "A5", //地址
"port": 1, //端口,只用一个端口的设备取数组第一个值
"temp": 26,//默认温度
"humidity": 50//默认湿度
}
},
{
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "灯光",
"type": "humiture",
"subtype": "humiture_common", //humiture_common,默认值,通用温湿度
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"address": "A5A812344545", //地址蓝牙设备mac地址
"port": 1, //端口,只用一个端口的设备取数组第一个值,保留,蓝牙设备配置时可为空
"bus":"bluetooth",//设备接入总线或协议类型,canbus/network/serial/RS485/zigbee/bluetooth/dali/knx/plc-iot,默认canbus
"temp": 26,//默认温度
"humidity": 50//默认湿度
}
}
]
```
### 灯光开关设备配置数据示例
```json
[
{
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "灯光",
"type": "light",
"subtype": "light_common", //subtype为子类型,light_common为普通灯光,默认值
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"bus":"canbus",
"address": "A5", //地址
"port": 1, //设备端口
}
},
{
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "灯光",
"type": "lightdim",//调光灯,
"subtype": "dimming_single", //"dimming_single", "单路调光灯"/"dimming_color_temp", "调亮度调色温灯",
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"bus":"bluetooth",
"address": "F012345678FF",
"port": 1,
}
},
{
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "灯光",
"type": "lightdim",//调光灯,
"subtype": "dimming_color_temp", //"dimming_single", "单路调光灯"/"dimming_color_temp", "调亮度调色温灯",
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"bus":"canbus",
"address": "11",
"control_bits": [
{
"name":"brightness_port",
"value":1,//端口号
},
{
"name":"dimming_color_port",
"value":2,//端口号
},
],
}
},
{
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "灯光",
"type": "lightrgb",//彩光灯,
"subtype": "lightrgb_common", // "lightrgb_common", "彩灯"/"lightrgb_rgbw", "带白光彩灯"
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"address": "F012345678FF", //地址
"port": 1, //端口,只用一个端口的设备取数组第一个值
"bus":"bluetooth",//设备接入总线或协议类型,canbus/network/serial/RS485/zigbee/bluetooth/dali/knx/plc-iot,默认canbus
}
}
]
```
### 窗帘设备配置数据示例
```json
[
{//继电器窗帘
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "窗帘",
"type": "curtain",
//curtain_horizontal 横窗帘 curtain_horizontal_double 双层横窗帘 curtain_vertical 卷帘 curtain_shutter 百页窗
//curtain_position_horizontal 可定位置开合帘 curtain_position_vertical 可定位置升降帘
"subtype": "curtain_horizontal", //subtype为子类型,light_common为普通灯光,默认值
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"bus":"canbus",
"control_type": "single", //protocol协议类型,为窗帘single单信号窗帘,off继电器断信号,double继电器双信号窗帘
"address": "A5", //地址继电器地址或协议转换器地址
"control_bits":[{
"name":"curtain_on_port",//common_port通用开关,protocol_transition协议转换器端口,curtain_on_port开,curtain_off_port关,speed1风速1档,speed2风速2档,speed3风速3档,valve_switch 阀门控制开关
"value":"1",//端口号
},
{
"name":"curtain_off_port",
"value":"2",
}],
}
},
{//协议窗帘
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "窗帘",
"type": "curtain",
"subtype": "curtain_horizontal",
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"bus":"canbus",
"control_type": "protocol", //控制类型 0协议类型,1为继电器,当为窗帘时1为单信号,2继电器断信号,3继电器双信号
"address": "A5", //地址继电器地址或协议转换器地址
"port": "1", //对应为协议转换器端口,取值范围1-4
"control_addr":"33", //485窗帘为电机地址,0-255,
"remote_id":"FF11A0" //433协议窗帘时为遥控器id,433设备对应的遥控码,3字节16进制字符串格式,
}
},
]
```
### 门锁设备配置数据示例
```json
[
{//继电器门锁窗户锁
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "窗帘",
"type": "lock", //智能锁
"subtype": "door", //subtype为子类型,door为门锁,默认值,window为窗锁
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"bus":"canbus",
"address": "A5", //地址继电器地址或协议转换器地址
"port": "1",
"keep_time":10,//保持时间,单位为秒
}
}
]
```
### 刷卡器设备配置数据示例
```json
[
{
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "窗帘",
"type": "card_machine",
"subtype": "card_machine_common",
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"bus":"canbus",
"address": "A5", //地址继电器地址或协议转换器地址
"port": "1",
"card_format":1,//卡数据格式 0为无,1为10位10进制,2为10位10进制反向输出,3为8位16进制,4为8位16进制反向输出,5为8位10进制(id后3字节转换),6为00+8位10进制,7为8位10进制(id后4字节转换),8为5位10进制
"control_addr": "12", //485协议时为刷卡器地址,0-255
"associated_device":[{"name":"lockdevice1","action":"unlock"}], //关联要开的锁,如门锁,窗锁,干节点关联设备
}
}
]
```
### 浴霸设备配置数据示例
```json
[
{
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "空调",
"type": "bathheater",
"subtype": "bathheater_default", //subtype为子类型,bathheater_default为默认值
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"bus":"canbus",
"control_type": "protocol", //控制类型 protocol协议类型,relay为继电器
"address": "A5", //canbus总线时,地址为继电器地址或协议转换器地址
"speed":6 ,//空调,风扇风力档位数量,默认为3档,低,中,高,取值1-6
"auto_speed":false,//风力是否支持自动档,true支持,false不支持针对空调,新风空调
"control_bits": [//继电器或协议转换器关联端口
{
"name":"speed1_port",//speed1_port风速1档端口,speed1-speed6风速1到6档端口配置,valve_switch_port 冷热水阀门控制开关
"value":1,//端口号
},
{
"name":"speed2_port",//speed1_port风速1档端口,speed1-speed6风速1到6档端口配置,valve_switch_port 冷热水阀门控制开关
"value":2,//端口号
},
{
"name":"speed3_port",//speed1_port风速1档端口,speed1-speed6风速1到6档端口配置,valve_switch_port 冷热水阀门控制开关
"value":3,
},
{
"name":"heater1_port",
"address":"A5",
"value":1,
},
],
"temp": 30,//默认温度
"modes": ["fan","cool","heat","auto"],//支持模式列表 fan,cool,heat,auto,saving,dehumidify,sleeping
"associated_sensor": //关联传感器,如温湿度传感器,第一个为环境温湿度传感器,当为地暖时,第二个为报警温度传感器,默认45度
[{"name":"humiture1","calibration":10,"type":"humiture"},//type为传感器类型
],
}
},
]
### 暖通设备,空调新风地暖配置数据示例
```json
[
{//继电器空调
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "空调",
"type": "aircon",
//aircon_common 默认类型 aircon_fcu 风机盘管 aircon_daikin 大金空调 aircon_haier 海尔空调
//aircon_gree 格力空调 aircon_hisense 海信空调 aircon_midea 美的空调 aircon_hitachi 日立空调
"subtype": "aircon_common", //subtype为子类型,aircon_common为默认值,通用空调
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"bus":"canbus",
"control_type": "relay", //控制类型 protocol协议类型,relay为继电器
"address": "A5", //canbus总线时,地址为继电器地址或协议转换器地址,网络总线时,地址为网络设备mac地址
"control_bits": [//继电器或协议转换器关联端口
{
"name":"speed1_port",//speed1_port风速1档端口,speed1-speed6风速1到6档端口配置,valve_switch_port 冷热水阀门控制开关
"value":"1A",//端口号
},
{
"name":"speed2_port",//speed1_port风速1档端口,speed1-speed6风速1到6档端口配置,valve_switch_port 冷热水阀门控制开关
"value":2,//端口号
},
{
"name":"speed3_port",//speed1_port风速1档端口,speed1-speed6风速1到6档端口配置,valve_switch_port 冷热水阀门控制开关
"value":"1A",//端口号
},
{
"name":"valve_heater_port",
"value":1,
},
{
"name":"valve_cool_port",
"value":"1A",//端口号
}
],
"temp": 26,//默认温度
"temp_min": 18,//温控类设备默认可调最小温度
"temp_max": 30,//温控类设备默认可调最大温度
"speeds":["1","2","3","auto"] ,//空调,风扇风力档位数量,默认为3档,低,中,高 ,//空调,风扇风力档位数量,默认为3档,低,中,高,取值1-6档
"modes": ["fan","cool","heat","auto"],//支持模式列表 fan,cool,heat,auto,saving,dehumidify,sleeping
"associated_sensor": //关联传感器,如温湿度传感器,第一个为环境温湿度传感器,当为地暖时,第二个为报警温度传感器,默认45度
[{"name":"humiture1","calibration":10,"type":"humiture"},//type为传感器类型
{"name":"humiture2", "calibration":5, //校正温度度数
"type":"temperature"}],
}
},
{//协议空调
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "空调",
"type": "aircon",
"subtype": "aircon_common", //subtype为子类型,aircon_common为默认值,通用空调
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"bus":"canbus",
"control_type": "protocol", //控制类型 protocol协议类型,relay为继电器
"address": "A5", //canbus总线时,地址为继电器地址或协议转换器地址,网络总线时,地址为网络设备mac地址
"port": "1", //按数组顺序 1为对应的协议转换器端口,取值范围1-4
"control_addr":"22", //空调内机地址
"hvac_addr": "22",//暖通设备外机地址,0-255
"temp": 26,//默认温度
"speeds":"1,3,5,auto" ,//空调,风扇风力档位数量,默认为3档,低,中,高,取值1-6档
"modes": ["fan","cool","heat",""],//支持模式列表 fan,cool,heat,auto,saving,dehumidify,sleeping
"associated_sensor": //关联传感器,如温湿度传感器,第一个为环境温湿度传感器,当为地暖时,第二个为报警温度传感器,默认45度
[{"name":"humiture2", //关联传感器,设备唯一的名称
"calibration":5, //校正温度度数
}],
}
},
{//继电器地暖
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "空调",
"type": "heater",
//aircon_common 默认类型 aircon_fcu 风机盘管 aircon_daikin 大金空调 aircon_haier 海尔空调
//aircon_gree 格力空调 aircon_hisense 海信空调 aircon_midea 美的空调 aircon_hitachi 日立空调
"subtype": "heater_floor", //subtype为子类型,aircon_common为默认值,通用空调
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"bus":"canbus",
"control_type": "relay", //控制类型 0协议类型,1为继电器
"address": "A5", //canbus总线时,地址为继电器地址或协议转换器地址,网络总线时,地址为网络设备mac地址
"port": 1,
"temp": 30,//默认温度
"temp_min": 5,//温控类设备默认可调最小温度
"temp_max": 30,//温控类设备默认可调最大温度
"associated_sensor": //关联传感器,如温湿度传感器,第一个为环境温湿度传感器,当为地暖时,第二个为报警温度传感器,默认45度
[{"name":"humiture1","calibration":10},//关联传感器,设备唯一的名称,代表关联的环境温湿度传感器
{"name":"humiture2", //关联传感器2,设备唯一的名称,代表关联的地暖地下环境温度传感器,安全控制用
"calibration":5, //校正温度度数
"alarm_temp":45 //报警温度度数
}],
}
},
{//新风
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "空调",
"type": "airfresh", //airfresh_common 默认类型 airfresh_home 新风家用 airfresh_work 新风大楼用
//airfresh_daikin 大金新风 airfresh_net_relay 网络面板继电器新风 airfresh_can_relay canbus继电器新风
"subtype": "airfresh_common", //airfresh_common为默认值,通用新风
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"bus":"canbus",
"control_type": "protocol", //控制类型 0协议类型,1为继电器
"address": "A5", //canbus总线时,地址为继电器地址或协议转换器地址,网络总线时,地址为网络设备mac地址
"port": 1, //按数组顺序 1为对应的协议转换器端口,取值范围1-4,当为继电器新风时,1,2,3分别为1,2,3档对应继电器端口
"control_addr":"22", //新风机地址
"hvac_addr": 22,//暖通设备外机地址,0-255
"temp": 26,//默认温度
"temp_min": 20,//温控类设备默认可调最小温度
"temp_max": 30,//温控类设备默认可调最大温度
"speeds":"1,3,5,auto" ,//空调,风扇风力档位数量,默认为3档,低,中,高,取值1-6档
"modes": ["fan","cool","heat","auto"],//模式列表 fan,cool,heat,auto,saving,dehumidify,sleeping,fan_inner(内循环),fan_side(旁通)/heat_exchange(热交换)
"associated_sensor": //关联传感器,如温湿度传感器,第一个为环境温湿度传感器,当为地暖时,第二个为报警温度传感器,默认45度
[{"name":"humiture2", //关联传感器,设备唯一的名称,代表关联的环境温湿度传感器
"calibration":5, //校正温度度数
}],
}
},
{//空调外机
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "空调",
"type": "aircon-outside",
//airconout_common 默认类型 airconout_onoff 状态外机,只线时外机状态 airconout_home 家用外机 airconout_work 大楼外机
"subtype": "airconout_common", //subtype为子类型,aircon_common为默认值,通用空调
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"bus":"canbus",//设备接入总线或协议类型,canbus/network/serial/RS485/zigbee/bluetooth/dali/knx/plc-iot
"address": "A5", //canbus总线时,地址为继电器地址或协议转换器地址,网络总线时,地址为网络设备mac地址
"port": "1", //按数组顺序 1为对应的协议转换器端口,取值范围1-4
"temp": 26,//默认温度
"modes": ["fan","cool","heat"],//支持模式列表 fan,cool,heat,auto
"associated_sensor": //关联传感器,如温湿度传感器,第一个为环境温湿度传感器,当为地暖时,第二个为报警温度传感器,默认45度
[{"name":"humiture2", //关联传感器,设备唯一的名称,代表关联的环境温湿度传感器
"calibration":5, //校正温度度数
"type":"humiture",
}],
}
},
]
```
### 控制面板设备配置数据格式和说明
1. 选择面板后,遍历面板下所有设备
如果有设备指定协议为spi can/串口 can,则打开spi can/串口 can通道,该设备走spi can/串口 can通道。面板无canbus(通过面板子类型判断)有网络则走网络mqtt
如果设备pid不等于当前面板id,则打开mqtt协议通道,该设备走网络控制。
如果设备pid等于当前面板id,则走设备指定协议通道。
2. 如果设备pid等于当前面板id,设备指定协议通道为zibee/gpio/ble,则通过zibee/gpio/ble通道直接控制设备,并同时通过mqtt广播设备状态。
收到mqtt消息需要控制该设备时,需要通过zib/gpio/ble通道直接控制设备,并同时通过mqtt广播状态。
3. 收到相同设备的多条数据,面板自动过滤重复数据。
( 1、can设备直接走canbus,通过面板子类型判断,面板无canbus(串口或SPI),有网络则走网络mqtt,否则不执行
2、pid不等于当前面板id,走mqtt协议通道,等于当前面板id,则按照设备协议通道走对应的协议。)
```json
[
{//触摸控制面板
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "空调",
"type": "panel",
"subtype": "canbus", //canbus为默认值,canbus/serial/network/network_gpio/dry_contact
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"bus":"canbus",//设备接入总线或协议类型,canbus/network/serial/RS485/zigbee/bluetooth/dali/knx/plc-iot
"address": "1A", //地址为网络设备mac地址
"is_gateway":true,//是否为网关,true为网关,false为普通面板
"associated_sensor": //关联传感器,如温湿度传感器,第一个为环境温湿度传感器,当为地暖时,第二个为报警温度传感器,默认45度
[{"name":"humiture2", //关联传感器,设备唯一的名称
"calibration":5, //校正温度度数
}],
//智能控制面板配置 panel
"display_device": //面板上要显示的设备列表
[{
"name": "0001",
"lock": false //是否锁定
}, {
"name": "0003",
"lock": false
}],
"display_scene": //面板上要显示的场景列表
[{
"name": "1009",
"lock": false
}, {
"name": "100A",
"lock": false
}, {
"name": "100B",
"lock": false
}],
"associated_machine":["AABBCC0011","AABBCC0022","AABBCC0022"],//设备识别码,资源授权给有权限的面板使用
"lock_weekday": [1, 2, 3, 4, 5,6,7], //一周中哪些天需要锁定
"lock_start_time": "12:00:00", //一天中锁定的开始时间,格式为24小时制
"lock_end_time": "23:59:59", //一天中锁定的结束时间,格式为24小时制
"icons":["","",""] //可选,目前是在设备端定义
}
},
]
```
### 门禁面板设备配置数据格式
```json
[
{
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "空调",
"type": "entrance_guard",
"subtype": "guard_face", //guard_face(人脸)/guard_face_card(人脸+刷卡)/guard_face_keypad(人脸+
键盘)/guard_face_card_keypad
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"bus":"network",//设备接入总线或协议类型,canbus/network/serial/RS485/zigbee/bluetooth/dali/knx/plc-iot
"address": "A51234F85667", //地址为网络设备mac地址
"port": 1, //端口为canbus或485本机地址,纯网络面板,端口保留
"associated_machine":["AABBCC0011","AABBCC0022","AABBCC0022"],//设备识别码,资源授权给有权限的面板使用
"brightness": 100,//亮度
"screen_off": 2,//屏幕关闭时间,单位为分钟,0为不关闭,和系统的熄屏列表对应
"volume": 50,//音量设置
"mute": false,//是否静音
"control_type": "local", //local:本地,network:网络
"associated_scene": //-设备关联的场景,一般是输入类型设备,如干节点输入,按键,传感器等,场景数组中每次只出发一个场景
[
{"name":"scene1",//场景名称
"expression":"order",//场景执行条件,表达式为真执行,order为执行顺序和下标一致时执行,其他为表达式判断为真时执行
},
{
"name":"scene2",
"expression":"value=10",//value为设备属性的某个键,取值后和具体数字或字符串比较,为真时执行
}
],
"card_format":1,//卡数据格式 0为无,1为10位10进制,2为10位10进制反向输出,3为8位16进制,4为8位16进制反向输出,5为8位10进制(id后3字节转换),6为00+8位10进制,7为8位10进制(id后4字节转换),8为5位10进制
"associated_device":[{"name":"lockdevice1","action":"unlock"}], //关联要开的锁,如门锁,窗锁,干节点关联设备
"camera_type": "IR",// 门禁摄像头类型,IR红外,RGB为全彩,RGB_IR为红外+彩
"fill_light": false,//是否开启补光灯
"live_detection": false,//是否开启活体检测
"face_valve":0.55,//人脸阀值 0-1
"mask_detection": false,//是否开启口罩检测
}
},
]
```
### 干节点面板和干节点面板关联设备配置数据格式
```json
[
{//干节点面板
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "空调",
"type": "panel",
"subtype": "dry_contact",
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"bus":"canbus",
"control_type": "switch", //控制类型 干节点开关switch固定两个场景,一个开,一个关,干节点轻触touch类型是按顺序序列执行
"control_number":1,//普通面板控制位数,比如2位,4位面板
"control_bits": [
{
"name":"dry_contact",
"address":"12",
"tag":"左床头",
"port": "1A",
"associated_scene": //-设备关联的场景,一般是输入类型设备,如干节点输入,按键,传感器等,场景数组中每次只出发一个场景
[
{"name":"scene1",//场景名称
"mode":"on",//order为顺序执行序列的场景,on,off为开关型执行的场景
},
{
"name":"scene2",
"mode":"off",
}
]
}
],
}
}
]
```
### 网关设备配置数据格式
```json
[
{
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "空调",
"type": "gateway",
"subtype": "YG003", //YG001为默认值,第一代网关YG001,YG002为第二代网关,YG003为第三代网关,
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"address": "A51234F85667", //地址为网络设备mac地址,或can地址或虚拟id
"master":true,//是否为主网关,主网关为true,其他网关为false,主网关可对各子网关进行转发,主网关包含mqtt本地服务
}
},
]
```
### 智能系统场景配置数据格式
```json
[
{
"id": 1,
"pid": 1,
"area_id": "区域id",
"area": "区域名称",
"name": "0001",
"display_name": "设备显示名称",
"type": "scene",
"subtype": "work",
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"actions": //场景动作执行项
{
"common":[
{
"name": "0001",
"channels":[{ //具体数据项看设备控制协议定义
"value": "off",
"name": "action",
"type": "STRING"}]
},
{
"name": "0002",
"channels": [{
"value": "off",
"name": "action",
"type": "STRING"}]
}
], //场景默认配置,不区分时令,一般处理非温控类设备,不管哪个季节都执行
"summer":[],//夏季配置,处理温控类设备,夏季要执行的场景
"winter":[],//冬季配置,处理温控类设备,冬季要执行的场景
}
}
]
```
### 展板配置数据格式
```json
[
{
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "空调",
"type": "display_board",
"subtype": "display_board_common", //display_board_common,display_board_meeting
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"bus":"canbus",//设备接入总线或协议类型,canbus/network/serial/RS485/zigbee/bluetooth/dali/knx/plc-iot
"address": "A51234F85667", //地址为网络设备mac地址
"associated_device":[
{
"name":"0001",
"action":"on"
}
],
}
},
{
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "空调",
"type": "central_control",
"subtype": "central_control_common", //中控
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"bus":"canbus",//设备接入总线或协议类型,canbus/network/serial/RS485/zigbee/bluetooth/dali/knx/plc-iot
"address": "A51234F85667", //地址为网络设备mac地址
"associated_device":[
{
"name":"0001",
"action":"unlock",
}
],
"associated_scene":[
{
"name":"0001",
"mode":"order",
"expression": "value=10"
}
]
}
}
]
```
### 智能系统区域数据格式
```json
[
{
"id":"1",
"pid":"1",
"name":"区域名称",
"groupable":true,//true可分组为分类目录,不可分组为叶目录
"description":"区域描述",
"opr": "操作模式" // addOrUpd 添加或者更新 |del 删除
},
{
"id":"2",
"pid":"1",
"name":"区域名称",
"groupable":false,//false不可分组为分类目录,为叶目录,不可创建子区域,可在区域下创建设备
"description":"区域描述",
"opr": "操作模式" // addOrUpd 添加或者更新 |del 删除
}
]
```
### 组合配置数据格式实例
```json
{
"city": {
"location_id": "101010100",
"location_name_en": "Beijing",
"location_name_zh": "北京",
"iso_3166_1": "CN",
"country_region_en": "China",
"country_region_zh": "中国",
"adm1_name_en": "Beijing",
"adm1_name_zh": "北京市",
"adm2_name_en": "Beijing",
"adm2_name_zh": "北京市",
"timezone": "Asia/Shanghai",
"latitude": "116.405289",
"adcode": "110000"
},
"areas":[
{
"id":"1",
"pid":"1",
"name":"区域名称",
"groupable":true,//是否可分组显示,true可分组为分类目录,可创建子目录,不可创建设备
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
},
{
"id":"2",
"pid":"1",
"name":"区域名称",
"groupable":false,//是否可分组显示,false不可可分组为分类目录,为叶目录,不可创建子区域,可在区域下创建设备
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
}
],
"devices":[
{
"id": 1, "pid": 1,"area_id": "CAN区域", "area": "区域名称", "name": "0001", "display_name": "灯光",
"type": "light",
"subtype": "light_common", //subtype为子类型,light_common为普通灯光,默认值
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"address": "A5", //地址
"ports": [1], //端口,只用一个端口的设备取数组第一个值
"bus":"canbus",//设备接入总线或协议类型,canbus/network/serial/RS485/zigbee/bluetooth/dali/knx/plc-iot,默认canbus
}
},
{
"id": 1,
"pid": 1,
"area_id": "CAN区域",
"area": "区域名称",
"name": "0001",
"display_name": "灯光",
"type": "light",
"subtype": "light_plat",
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"config":
{
"address": "12345678", //地址
"ports": [1], //端口
}
}],
"scenes":[
{
"id": 1,
"pid": 1,
"area_id": "区域id",
"area": "区域名称",
"name": "0001",
"display_name": "设备显示名称",
"type": "scene",
"subtype": "work",
"opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
"actions": //场景动作执行项
{
"common":[
{
"name": "0001",
"channels":[{
"value": "off",
"name": "action",
"type": "STRING"}]
},
{
"name": "0002",
"channels": [{
"value": "off",
"name": "action",
"type": "STRING"}]
}
], //场景默认配置,不区分时令,common始终执行,分季节时common加对应季节的场景
"summer":[],//夏季配置,处理温控类设备,夏季要执行的场景
"winter":[],//冬季配置,处理温控类设备,冬季要执行的场景
}
}
]
}
```
## 配置中的各字段数据库定义json表达
```json
[
{
"id":"123",
"name":"address",
"type":"String", // 值类型 * STRING * LONG * DOUBLE * FLOAT * INTEGER * BYTE * CHAR * BOOLEAN * SHORT * PASSWORD
"value":"aabbccdd", // 值或数组值数组中,以英文逗号分隔,如:["1","2","3"]
"label":"地址",
"min":2,//整数最小值,字符串长度最小值
"max":8,//整数最大值,字符串长度最大值
"isRequired": true,//是否必填
"description":"CAN ID", // 配置项描述
"default":0, // 默认值
"option": // 配置项可选值,只针对单选框、下拉框等类型
[
{
"label": "java-ntp",
"value": "java-ntp"
},
{
"label": "ntpd",
"value": "ntpd"
},
{
"label": "chrony-advanced",
"value": "chrony-advanced"
}
],
},
]
```
## 各设备类型支持的配置项
```json
[
{
"type":"light",
"label":"灯光",
"subtypes":[
{"subtype":"switch","label":"开关型","configs":["address","ports"]},
{"subtype":"rgb","label":"彩灯","configs":["address","ports"]},
{"subtype":"dimmer","label":"可调光灯","configs":["address","ports"]}
]
}
]
```