设备配置数据格式说明文档
版本: 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对象或者数组对象 } ``` ## 服务器配置 获取服务器配置信息,包含mqtt服务器地址,ftp服务器地址等。 ### GET 请求URL {{api_url}}/v1/device/configs?deviceId=ac:bc:cd:ee:11:22 ### 请求头参数 Content-Type: application/json Authorization: Bearer {{key}} ### 请求参数 deviceId: 设备唯一标识 key: 用户授权token,服务器为设备分配的长期有有效的授权token,内置在设备中,无需用户手动获取。 ### 返回结果 ```json { "code": 200, "msg": "操作成功", "data": { "custid": "1", "req_ip": "127.0.0.1", "mqtt_username": "bill", "mqtt_password": "activemq", "mqtt_server": "tcp://dev.neucore.com:1783", "upload_server": "https://dev.neucore.com/v1/smrtlibs/neulink/upload2cloud", "ftp_server": "dev.neucore.com", "ftp_username": "neu2ftp", "ftp_password": "123456" }, "time": "1736902247895" } ``` ## 背景图片列表 ### GET请求URL {{api_url}}/v1/device/configs/background?deviceId=ac:bc:cd:ee:11:22 ### 请求头参数 Content-Type: application/json Authorization: Bearer {{key}} ### 请求参数 deviceId: 设备唯一标识 key: 用户授权token,服务器为设备分配的长期有有效的授权token,内置在设备中,无需用户手动获取。 ### 返回结果 ```json { "code": 200, "msg": "操作成功", "data": [ { "id": "1", "name": "111..png", "displayName": "111", "size": "63163", "backgroundPxId": "1", "pxName": "1x2", "imgUrl": "v1/static/project/2025/03/03/default/111.png", "version": 1, "status": 0, "isDel": 0, "createTime": "2025-03-03 11:47:09", "updateTime": "2025-03-03 11:47:09" }, { "id": "2", "name": "312312..png", "displayName": "312312", "size": "49672", "backgroundPxId": "4", "pxName": null, "imgUrl": "v1/static/project/2025/03/07/default/312312.png", "version": 1, "status": 0, "isDel": 0, "createTime": "2025-03-07 06:38:39", "updateTime": "2025-03-07 06:38:39" } ], "time": "1741663562859" } ``` 1. 成功,状态码200,返回设备配置列表数据 2. 失败,状态码401,授权失败 3. 具体返回状态码和http标准状态码一致,具体请查看[HTTP状态码](https://www.runoob.com/http/http-status-codes.html) ```json { "code": 200, "msg": "操作成功", "data": [ { "id": "背景图片id", "" } ] } ``` ## 同步设备配置列表数据 接口需要实现能够通过设备id,获取和这个设备相关联的设备列表,场景列表,区域列表等配置信息。 接口需要实现能够通过设备id, 区域id,获取和这个设备所在区域树中,区域相关联的设备列表,场景列表等配置信息。 ### GET请求URL {{api_url}}/v1/device/configs/sync?deviceId=acbccdee1122&areaId=1&type=all ### 请求头参数 Content-Type: application/json Authorization: Bearer {{key}} ### 查寻参数 | 参数名 | 参数类型 | 值 | 说明 | | -------- | ------------ | --------------------- | ------------------------------------------------- | | deviceId | string | acbccdee1122 | 设备ID或MAC地址,必须字段,后台添加限制时保持一致即可,智能家居应用目前定为大写MAC去冒号 | | type | string | device | 获取哪些配置 all和不传为所有,device为设备配置列表,scene为场景配置列表,area为区域配置列表,all为所有组合配置,不传默认为all | | areaId | string | 1234 | 区域id,可选参数,当包含区域id时,只返回这个区域树中的设备列表和场景列表。 | | groupId | string | 1234 | 面板组id,可选参数,当包含面板组id时,返回这个面板组中的所有面板包含的设备和场景关联的设备配置数据。 当包含面板组id时,忽略区域id参数| ### 返回结果 1. 成功,状态码200,返回设备配置列表数据 2. 失败,状态码401,授权失败 3. 具体返回状态码和http标准状态码一致,具体请查看[HTTP状态码](https://www.runoob.com/http/http-status-codes.html)


```json

{
 "code": 200,
 "msg": "操作成功",
 "data": {
  "city": {
   "location_id": "101010400",
   "location_name_en": "Shunyi",
   "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": "40.128937",
   "longitude": "116.653526",
   "adcode": "110113"
  },
  "areas": [
   {
    "id": "2",
    "pid": "0",
    "name": "1",
    "groupable": false
   }
  ],
  "devices": [
   {
    "opr": "addOrUpd",
    "id": "16",
    "pid": "8",
    "area_id": "2",
    "type": "humiture",
    "subtype": "humiture_common",
    "name": "00000009",
    "display_name": "温湿度",
    "description": "122",
    "version": 2,
    "config": {
     "broadcast": false,
     "bus": "canbus",
     "temp": 24,
     "address": "22",
     "port": "1",
     "humidity": 60
    }
   },
   {
    "opr": "addOrUpd",
    "id": "18",
    "pid": "8",
    "area_id": "2",
    "type": "panel",
    "subtype": "canbus",
    "name": "20000001",
    "display_name": "面板",
    "description": "112",
    "version": 2,
    "config": {
     "broadcast": false,
     "bus": "canbus",
     "address": "1",
     "display_scene": [],
     "associated_machine": [],
     "is_gateway": false,
     "associated_sensor": [
      {
       "type": "humiture",
       "name": "00000009",
       "calibration": 0
      }
     ],
     "lock_end_time": "23:59:59",
     "icons": [],
     "control_bits": [],
     "background": [],
     "lock_weekday": [
      1,
      2,
      3,
      4,
      5,
      6,
      7
     ],
     "display_device": [
      {
       "name": "00000002",
       "lock": false
      },
      {
       "name": "00000005",
       "lock": false
      },
      {
       "name": "00000007",
       "lock": false
      },
      {
       "name": "00000008",
       "lock": false
      }
     ],
     "lock_start_time": "00:00:00"
    }
   },
   {
    "opr": "addOrUpd",
    "id": "8",
    "pid": "0",
    "area_id": "2",
    "type": "gateway",
    "subtype": "YG001",
    "name": "40000001",
    "display_name": "网关",
    "description": "2",
    "version": 2,
    "config": {
     "broadcast": false,
     "bus": "canbus",
     "address": "1",
     "master": true
    }
   },
   {
    "opr": "addOrUpd",
    "id": "9",
    "pid": "8",
    "area_id": "2",
    "type": "light",
    "subtype": "light_common",
    "name": "00000002",
    "display_name": "灯光11",
    "description": "112333333333333333333",
    "version": 2,
    "config": {
     "broadcast": false,
     "bus": "canbus",
     "address": "21",
     "port": "1"
    }
   },
   {
    "opr": "addOrUpd",
    "id": "12",
    "pid": "8",
    "area_id": "2",
    "type": "aircon",
    "subtype": "aircon_common",
    "name": "00000005",
    "display_name": "空调",
    "description": "112",
    "version": 2,
    "config": {
     "broadcast": false,
     "bus": "canbus",
     "temp": 26,
     "modes": [
      "fan",
      "cool",
      "heat"
     ],
     "address": "22",
     "associated_sensor": [
      {
       "type": "humiture",
       "name": "00000009",
       "calibration": 0
      }
     ],
     "control_addr": "1",
     "temp_max": 30,
     "hvac_addr": "1",
     "accessibilities": [
      "smart_up",
      "smart_left",
      "smart_auto"
     ],
     "temp_min": 16,
     "port": "1",
     "speeds": [
      "2",
      "1",
      "3"
     ],
     "control_type": "protocol"
    }
   },
   {
    "opr": "addOrUpd",
    "id": "14",
    "pid": "8",
    "area_id": "2",
    "type": "airfresh",
    "subtype": "airfresh_daikin",
    "name": "00000007",
    "display_name": "新风",
    "description": "112",
    "version": 2,
    "config": {
     "broadcast": false,
     "bus": "canbus",
     "temp": 20,
     "modes": [
      "fan_side",
      "heat_exchange",
      "auto"
     ],
     "address": "12",
     "control_addr": "1",
     "hvac_addr": "1",
     "control_bits": [
      {
       "name": "speed_1_port",
       "value": "1"
      },
      {
       "name": "speed_3_port",
       "value": "1"
      }
     ],
     "port": "1",
     "speeds": [
      "1",
      "3"
     ]
    }
   },
   {
    "opr": "addOrUpd",
    "id": "15",
    "pid": "8",
    "area_id": "2",
    "type": "aircon-outside",
    "subtype": "aircon_outside_common",
    "name": "00000008",
    "display_name": "空调外机",
    "description": "112",
    "version": 2,
    "config": {
     "broadcast": false,
     "bus": "canbus",
     "temp": 26,
     "modes": [
      "fan",
      "cool",
      "heat"
     ],
     "address": "12",
     "associated_sensor": [
      {
       "type": "humiture",
       "name": "00000009",
       "calibration": 0
      }
     ],
     "port": "1"
    }
   }
  ]
 },
 "time": "1741658338428"
}
```

## 返回数据格式总体定义说明 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为干节点按键,可选,默认为 common "address": "12345678", //地址,canbus或485,蓝牙,zegbee,地址 "port": "1", //端口号,1-16,协议转换器的端口号,或开关,灯对应的单个继电器的端口号,//端口号十六进制字符串 1和01是一样的 "control_bits": [//继电器或协议转换器关联端口控制位,可选,不传为空 { "name":"curtain_on_port",//curtain_on_port开,curtain_off_port关,//speed_1_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为广播 "multcast": 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://bg1 internal://bg2 internal://bg3 internal://bg4 为内置图标,http开头为网络图片地址,如无内置图标,则第一个图标为默认图标 "icons":["internal://bg1","http://www.abc.com/img/light.png"],//设备图标列表,默认数组第一个下标图标,档位面板类设备时为面板可选的背景列表 "order": 1,//排序,值越小越靠前,相同的值按设备先后顺序 //空调默认24,范围16-30,默认16-30,温湿度默认24 //由于空调can协议中只留4位给温度,范围修改为16-30 //地暖默认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网关代理 //1、是否区分时令通过每个面板单独配置,默认配置区分时令 //2、不区分时令时无需接收和广播时令,时令设置项禁用 // 3、如果不区分或者区分时不广播时,不发不收,开机不同步。用户点击刷新按钮,则同步最新时令配置。 "is_season":true,//是否区分季节,true:区分季节【winter、summer配置起效】,false:不区分季节【common配置起效】 //智能控制面板配置 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": "区域ID", "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": 24,//默认温度24 "humidity": 50,//默认湿度 "control_type": "protocol", //控制类型 protocol协议类型,relay为继电器 "associated_scene": //-设备关联的场景,一般是输入类型设备,如干节点输入,按键,传感器等,场景数组中每次只触发一个场景 [ {"name":"scene1",//场景名称 "expression":"order",//场景执行条件,表达式为真执行,order为执行顺序和下标一致时执行,其他为表达式判断为真时执行 "lock_weekday": [1, 2, 3, 4, 5], //一周中哪些天需要锁定 "lock_start_time": "12:00:00", //一天中锁定的开始时间,格式为24小时制 "lock_end_time": "23:59:59", //一天中锁定的结束时间,格式为24小时制 }, { "name":"scene2", "expression":"temp=10",//temp为设备属性的某个键,取值后和具体数字或字符串比较,为真时执行,同时支持= < >操作符 "lock_weekday": [1, 2, 3, 4, 5], //一周中哪些天需要锁定 "lock_start_time": "12:00:00", //一天中锁定的开始时间,格式为24小时制 "lock_end_time": "23:59:59", //一天中锁定的结束时间,格式为24小时制 } ], } }, { "id": "1", "pid": "1","area_id": "区域ID", "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": "区域ID", "area": "区域名称", "name": "0001", "display_name": "灯光", "type": "light", // light,灯,light_common,普通灯 // light,灯,light_desk,台灯 // light,灯,light_bar,条形灯 // light,灯,light_ceiling,吸顶灯 // light,灯,light_belt,灯带 // light,灯,light_wall,壁灯 // light,灯,light_corridor,廊灯 // light,灯,light_pendent,吊灯 // light,灯,light_downlight,筒灯 // light,灯,light_spot,射灯 // light,灯,light_flat,平板灯 // light,灯,light_night,夜灯 // light,灯,light_motif,造型灯 // light,灯,light_bedside,床头灯 // light,灯,light_floor,落地灯 // light,灯,light_street,路灯 // light,灯,light_mood,氛围灯 // light,灯,light_mirror,镜灯 "subtype": "light_common", //subtype为子类型,light_common为普通灯光,默认值 "opr": "操作模式", // addOrUpd 添加或者更新 |del 删除 "config": { "bus":"canbus", "address": "A5", //地址 "port": "1", //设备端口 "control_type": "protocol",//protocol协议类型,relay为继电器, } }, { "id": "1", "pid": "1","area_id": "区域ID", "area": "区域名称", "name": "0001", "display_name": "调光灯", "type": "lightdim",//调光灯, "subtype": "dimming_color_temp", //"dimming_single", "单路调光灯" /"dimming_double", "双路调光灯"/ "dimming_color_temp", "调亮度调色温灯", "opr": "操作模式", // addOrUpd 添加或者更新 |del 删除 "config": { "bus":"bluetooth", "address": "F012345678FF", "port": "1", "control_type": "protocol",//protocol协议类型,relay为继电器,dimming_0_10V 0到10V调光,protocol_yunhai 云海协议调光 // 忽略:0x00 单位是秒面板的开关按键生效,如果只是调节亮度色温,启动关闭时间为0x00忽略此时间 // 立即更新到设定值此时间为亮度0~100%的时间,控制器每200ms执行一次, // 需要根据当前值进行计算到设定值需要执行多少次,比如设定启动时间为2S,则每次执行增加为10%, // 设定亮度55%,则需要执行6次到达设定值,色温也是一样的计算方式 "gradient_time": "0",//延时调光时间,单位为秒,此时间为从0调到100的总时间,具体调节按上面注释计算 "control_bits": [ { "name":"brightness_port", "value":"1",//端口号 }, { "name":"dimming_color_port", "value":"2",//端口号 }, ], } }, { "id": "1", "pid": "1","area_id": "区域ID", "area": "区域名称", "name": "0001", "display_name": "灯光", "type": "lightdim",//调光灯, "subtype": "dimming_color_temp", //"dimming_single", "单路调光灯"/ "dimming_double", "双路调光灯"/ "dimming_color_temp", "调亮度调色温灯", "opr": "操作模式", // addOrUpd 添加或者更新 |del 删除 "config": { "bus":"canbus", "address": "11", "gradient_time": "0",//延时调光时间,单位为毫秒,0为无延时,100为有延时,100毫秒后执行调光到下一个亮度值 "control_bits": [ { "name":"brightness_port", "value":"1",//端口号 }, { "name":"dimming_color_port", "value":"2",//端口号 }, ], } }, { "id": "1", "pid": "1","area_id": "区域ID", "area": "区域名称", "name": "0001", "display_name": "调光灯", "type": "lightdim",//调光灯, "subtype": "dimming_double", //"dimming_single", "单路调光灯" /"dimming_double", "双路调光灯"/ "dimming_color_temp", "调亮度调色温灯", "opr": "操作模式", // addOrUpd 添加或者更新 |del 删除 "config": { "bus":"canbus", "address": "01", "control_type": "protocol",//protocol协议类型,relay为继电器,dimming_0_10V 0到10V调光,protocol_yunhai 云海协议调光 // 忽略:0x00 单位是秒面板的开关按键生效,如果只是调节亮度色温,启动关闭时间为0x00忽略此时间 // 立即更新到设定值此时间为亮度0~100%的时间,控制器每200ms执行一次, // 需要根据当前值进行计算到设定值需要执行多少次,比如设定启动时间为2S,则每次执行增加为10%, // 设定亮度55%,则需要执行6次到达设定值,色温也是一样的计算方式 "gradient_time": "0",//延时调光时间,单位为秒,此时间为从0调到100的总时间,具体调节按上面注释计算 "control_bits": [ { "name":"brightness_w_port", //白光端口号 "value":"1",//端口号 }, { "name":"brightness_y_port", //暖光端口号 "value":"2",//端口号 }, ], } }, { "id": "1", "pid": "1","area_id": "区域ID", "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": "区域ID", "area": "区域名称", "name": "0001", "display_name": "开关", "type": "switch", "subtype": "switch", // ventilator(换气开关)/switch(通用开关)/touch(轻触开关)/socket(插座)/power(电源)/rocker(翘板开关) "opr": "操作模式", // addOrUpd 添加或者更新 |del 删除 "config": { "bus":"canbus", "address": "A5", //地址 "port": "1", //设备端口 "control_type": "protocol",//protocol协议类型,relay为继电器 } } ] ``` ### 窗帘设备配置数据示例 ```json [ {//继电器窗帘 "id": "1", "pid": "1","area_id": "区域ID", "area": "区域名称", "name": "0001", "display_name": "窗帘", "type": "curtain", // "curtain_horizontal", "开合帘" //"curtain_horizontal_single", "两键开合帘" //"curtain_vertical", "升降帘" // "curtain_vertical_single", "两键升降帘" //"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": "区域ID", "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": "区域ID", "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,//保持时间,单位为秒 "alarm_type":1,//报警类型,忽略:0x00 锁芯未弹出:0x01 门磁未靠近:0x02 锁芯未弹出+门磁未靠近:0x03 } } ] ``` ### 刷卡器设备配置数据示例 ```json [ { "id": "1", "pid": "1","area_id": "区域ID", "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": "区域ID", "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":"speed_1_port",//speed_1_port风速1档端口,speed1-speed6风速1到6档端口配置,valve_switch_port 冷热水阀门控制开关 "value":"1",//端口号 }, { "name":"speed_2_port",//speed_1_port风速1档端口,speed1-speed6风速1到6档端口配置,valve_switch_port 冷热水阀门控制开关 "value":"2",//端口号 }, { "name":"speed_3_port",//speed_1_port风速1档端口,speed1-speed6风速1到6档端口配置,valve_switch_port 冷热水阀门控制开关 "value":"3", }, { "name":"heater_1_port", //heater_1_port加热端口,heater2_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": "区域ID", "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":"speed_1_port",//speed_1_port风速1档端口,speed1-speed6风速1到6档端口配置,valve_switch_port 冷热水阀门控制开关 "value":"1A",//端口号 }, { "name":"speed_2_port",//speed_1_port风速1档端口,speed1-speed6风速1到6档端口配置,valve_switch_port 冷热水阀门控制开关 "value":"2",//端口号 }, { "name":"speed_3_port",//speed_1_port风速1档端口,speed1-speed6风速1到6档端口配置,valve_switch_port 冷热水阀门控制开关 "value":"1A",//端口号 }, { "name":"valve_heat_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": "区域ID", "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": "区域ID", "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": "区域ID", "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", //控制类型 "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": "区域ID", "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,//默认温度 "control_addr":"22", //空调外机地址,这个地址信息代表协议转换器下面控制的设备地址,窗帘时为电机地址,外机时器外机地址 "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": "区域ID", "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":["","",""], //可选,目前是在设备端定义 "associated_function"://关联功能,如中空,展板,自控设备等 [ { "name":"control_center", //中控 "enable":true,//是否启用,true启用,false禁用 },//中控 { "name":"dashboard", //展板 "enable":true,//是否启用 }, { "name":"sub_device", //自控设备 "enable":true,//是否启用 } ] } }, ] ``` ### 门禁面板设备配置数据格式 ```json [ { "id": "1", "pid": "1","area_id": "区域ID", "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,//是否开启口罩检测 "associated_function"://关联功能,如中空,展板,自控设备等 [ { "name":"control_center", //中控 "enable":true,//是否启用 },//中控 { "name":"dashboard", //展板 "enable":true,//是否启用 }, { "name":"sub_device", //自控设备 "enable":true,//是否启用 } ] } }, ] ``` ### 干节点面板和干节点面板关联设备配置数据格式 ```json [ {//干节点面板 "id": "1", "pid": "1","area_id": "区域ID", "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": "区域ID", "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本地服务 "associated_machine":["AABBCC0011","AABBCC0022","AABBCC0022"],//设备识别码,资源授权给有权限的面板使用 } }, ] ``` ### 智能系统场景配置数据格式 ```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": "区域ID", "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": "区域ID", "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" } ] } } ] ``` ### 智能系统区域数据格式 区域中顶级区域即工程区域,父级为0或空的区域,即工程区域,可作为单个工程唯一id ```json [ { "id":"1", "pid":"0", //父区域id,顶层父级id为0或为空的区域,即为工程, "name":"区域名称", "groupable":true,//true可分组为分类目录,不可分组为叶目录 "description":"区域描述", "opr": "操作模式" // addOrUpd 添加或者更新 |del 删除 }, { "id":"1", "pid":"0", "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": "区域ID", "area": "区域名称", "name": "0001", "display_name": "灯光", "type": "light", "subtype": "light_common", //subtype为子类型,light_common为普通灯光,默认值 "opr": "操作模式", // addOrUpd 添加或者更新 |del 删除 "config": { "address": "A5", //地址 "port": "1", //端口,只用一个端口的设备取数组第一个值 "bus":"canbus",//设备接入总线或协议类型,canbus/network/serial/RS485/zigbee/bluetooth/dali/knx/plc-iot,默认canbus } }, { "id": "1", "pid": "1", "area_id": "区域ID", "area": "区域名称", "name": "0001", "display_name": "灯光", "type": "light", "subtype": "light_plat", "opr": "操作模式", // addOrUpd 添加或者更新 |del 删除 "config": { "address": "12345678", //地址 "port": "1", //端口 } }], //面板组中包含的面板id列表,如包含此项,则面板选择列表只列出panels中存在的面板 // 如不包含此项,面板选择则默认按配置中存在的面板列表显示选取 "panels":["panel1","panel2"], "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","port"]}, {"subtype":"rgb","label":"彩灯","configs":["address","port"]}, {"subtype":"dimmer","label":"可调光灯","configs":["address","port"]} ] } ] ``` ## 设备硬件接口配置 智能面板系列硬件各地址可能不同的pcba板,硬件接口路径会发生变化,为了应用能自动适应硬件,将硬件配置信息单独提取出来,做为配置文件。 硬件变化这部分作为一个配置放在系统上,应用通过读取配置文件来获取硬件配置信息。 android 系统,配置存放路径:/vendor/etc/homeapp/hardware.cfg ```json { "product":"A350", //产品型号,唯一的设备硬件标识,如:A350,A580,A680,A1080 "chip":"S905D3", //芯片型号,唯一的硬件标识,如:S905D3, T950S "board":"A350", //主板型号,唯一的硬件标识,如:A350, S2,be311 "serialport":"/dev/ttyS4", //通讯串口设备文件路径,如:/dev/ttyS4 "serialinter":"/dev/ttyS5", //内部串口通讯设备文件路径,如:/dev/ttyS5 "canbus":"can0", //CAN总线通讯设备文件路径,如:can0 "gpio":[ {"enable":"/sys/class/GPIO_OUT/gpioao8", //GPIO配置,enable为继电器使能引脚,control为控制地址 "enable_on":"1 1", //继电器闭合状态,如:1 "enable_off":"1 2", //继电器断开状态,如:0 "control":"/sys/class/GPIO_OUT/gpioao7", //控制地址,如:/sys/class/GPIO_OUT/gpioao7 "control_on":"1 1", //控制地址闭合状态,如:0 "control_off":"1 2", //控制地址断开状态,如:1 "position":1, //位置,从1开始 ,继电器对应位置 }, {"enable":"/sys/class/GPIO_OUT/gpioao8", //GPIO配置,enable为继电器使能引脚,control为控制地址 "enable_on":"1 1", //继电器闭合状态,如:1 "enable_off":"1 2", //继电器断开状态,如:0 "control":"/sys/class/GPIO_OUT/gpioao7", //控制地址,如:/sys/class/GPIO_OUT/gpioao7 "control_on":"1 1", //控制地址闭合状态,如:0 "control_off":"1 2", //控制地址断开状态,如:1 "position":1, //位置,从1开始 ,继电器对应位置 } ] //GPIO配置列表,gpio对应的继电器地址列表,按顺序排列 } ``` ## 定时任务字段和格式定义 定时任务分为面板定时执行任务和网关定时执行任务 ### 面板定时执行任务 面板定时执行任务,定时任务执行时,面板会按照定时规则,本地执行任务中的场景 面板执行任务只在面板端添加,不通过网关执行 ### 网关定时执行任务 网关定时执行任务,定时任务执行时,网关会按照定时规则,执行任务中的场景 网关定时任务,一般为后台管理任务,只在后台添加 #### 定时任务数据字段定义 | 字段名 | 类型 | 说明 | | ------- | ------- | ------------------------------------- | | bid | String | 定时任务ID,唯一标识,UUID标识 | | type | int | 任务类型,0本地 1网关 | | repeat_mode | int | 任务重复执行模式,0永不重复 1重复 | | open | int | 任务状态,0关闭 1开启 | | year | int | 年,重复执行模式默认为0 | | month | int | 月,重复执行模式默认为0 | | day | int | 日,重复执行模式默认为0 | | weeks | String | 星期,永不重复模式下也需要填写,1-7对应周一到周日 星期用 ,分割 如每天是 “1,2,3,4,5,6,7“ 周一周三周五是 “1,3,5“ | | hour | int | 时 | | minute | int | 分 | | second | int | 秒 | | device_id | String | 面板ID或网关id | | scene_id | String | 场景ID |