deviceconfig.md 48 KB

设备配置数据格式说明文档

版本: 1.0 

发布日期: 2024-11-18 

历史记录

修订日期 版本 作者 说明
2024-11-18 V1.0 alva.huang 初始版本

[toc]

前言

概述

本文档旨在说明爱智居设备配置的数据格式,帮助开发人员如何使用api获取配置数据,和解析数据格式,包含API的功能,调用方式,返回结果和错误码。数据格式定义,数据结构,字段说明等。

范围说明

此开发文档只针对智能家居面板,门禁,网关等设备。数据格式包含:设备配置列表数据,场景配置列表数据,区域列表数据等。

设备配置数据获取接口说明

GET 请求URL: https://smart.izhiju.cn/config/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 请求失败,服务端内部错误

返回结果规范

{
    "code": 200,
    "msg": "操作成功",
    "data": 一个标准的json对象或者数组对象
}

背景图片列表

GET 请求URL

{{api_url}}/v1/device/background

返回结果

{
	"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状态码
{
    "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状态码
{
	"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

[
    //第一个模板为所有配置,包含必选配置和可选配置,不同设备类型的配置都有说明
    {
        "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,//排序,值越小越靠前,相同的值按设备先后顺序
            "temp": 26,//默认温度
            "humidity":    60,//默认湿度
            "speed":3 ,//空调,风扇风力档位数量,默认为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//是否开启口罩检测
        }
    }
]

温湿度传感器配置数据示例

[
   {
    "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//默认湿度
    }
  }
  
]

灯光开关设备配置数据示例

[
   {
    "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
    }
  }
]

窗帘设备配置数据示例

[
   {//继电器窗帘
    "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进制字符串格式,
    }
  },
]

门锁设备配置数据示例

[
   {//继电器门锁窗户锁
    "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,//保持时间,单位为秒
    }
  }
]

刷卡器设备配置数据示例

[
   {
    "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"}],    //关联要开的锁,如门锁,窗锁,干节点关联设备
    }
  }
]

浴霸设备配置数据示例

[
   {
    "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,//默认温度
        "speeds":"1,3,5,auto" ,//空调,风扇风力档位数量,默认为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,//默认温度
        "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,//默认温度
        "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,则按照设备协议通道走对应的协议。)

[
{//触摸控制面板
    "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":["","",""] //可选,目前是在设备端定义
    }
  },
]

门禁面板设备配置数据格式

[
{
    "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,//是否开启口罩检测
    }
  },
]

干节点面板和干节点面板关联设备配置数据格式

[
{//干节点面板
    "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",
                      }
                     ]
          }
        ],
    }
  }
]

网关设备配置数据格式

[
{
    "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本地服务
    }
  },
]

智能系统场景配置数据格式

[
        {
        "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":[],//冬季配置,处理温控类设备,冬季要执行的场景
        }
      }
    ]

展板配置数据格式

[
{
    "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"
            }
        ]
    }
  }
]

智能系统区域数据格式

[
        {
            "id":"1",
            "pid":"1",
            "name":"区域名称",
            "groupable":true,//true可分组为分类目录,不可分组为叶目录
            "description":"区域描述",
            "opr": "操作模式" // addOrUpd 添加或者更新 |del 删除
        },
        {
            "id":"2",
            "pid":"1",
            "name":"区域名称",
            "groupable":false,//false不可分组为分类目录,为叶目录,不可创建子区域,可在区域下创建设备
            "description":"区域描述",
            "opr": "操作模式" // addOrUpd 添加或者更新 |del 删除
        }
]

组合配置数据格式实例

 {
  "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表达

[
            {
              "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"
              }
            ],
              },
        ]  

各设备类型支持的配置项

[
    {
        "type":"light",
        "label":"灯光",
        "subtypes":[
            {"subtype":"switch","label":"开关型","configs":["address","ports"]},
            {"subtype":"rgb","label":"彩灯","configs":["address","ports"]},
            {"subtype":"dimmer","label":"可调光灯","configs":["address","ports"]}
        ]
    }
    
]