deviceconfig.md 63 KB

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

版本: 1.0 

发布日期: 2024-11-18 

历史记录

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

[toc]

前言

概述

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

范围说明

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

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

GET 请求URL: 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 请求失败,服务端内部错误

返回结果规范

{
    "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,内置在设备中,无需用户手动获取。

返回结果

{
 "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,内置在设备中,无需用户手动获取。

返回结果

{
 "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状态码
{
    "code": 200,
    "msg": "操作成功",
    "data": [
        {
            "id": "背景图片id",
            ""
        }
    ]
    
}

同步设备配置列表数据

接口需要实现能够通过设备id,获取和这个设备相关联的设备列表,场景列表,区域列表等配置信息。 接口需要实现能够通过设备id, 区域id,获取和这个设备所在区域树中,区域相关联的设备列表,场景列表等配置信息。

GET请求URL

{{api_url}}/v1/device/configs/sync?deviceId=acbccdee11&areaId=1&type=all

请求头参数

Content-Type: application/json Authorization: Bearer {{key}}

查寻参数

参数名 参数类型 说明
deviceId string acbccdee11 设备ID或MAC地址,必须字段,后台添加限制时保持一致即可,智能家居应用目前定为大写MAC去冒号
type string device 获取哪些配置 all和不传为所有,device为设备配置列表,scene为场景配置列表,area为区域配置列表,all为所有组合配置
areaId string 1234 区域id,可选参数,当包含区域id时,只返回这个区域树中的设备列表和场景列表。

返回结果

  1. 成功,状态码200,返回设备配置列表数据
  2. 失败,状态码401,授权失败
  3. 具体返回状态码和http标准状态码一致,具体请查看HTTP状态码
{
 "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

[
    //第一个模板为所有配置,包含必选配置和可选配置,不同设备类型的配置都有说明
    {
        "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为广播
            "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,范围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//是否开启口罩检测
        }
    }
]

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

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

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

[
   {
    "id": "1", "pid": "1","area_id": "区域ID", "area": "区域名称", "name": "0001", "display_name": "灯光",
    "type":    "light",
    "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_single", //"dimming_single", "单路调光灯"/"dimming_color_temp", "调亮度调色温灯",
    "opr": "操作模式", // addOrUpd 添加或者更新 |del 删除
    "config":  
    {
        "bus":"bluetooth",
        "address": "F012345678FF", 
        "port": "1",  
        "control_type": "protocol",//protocol协议类型,relay为继电器,dimming_0_10V 0到10V调光
        // 忽略:0x00 单位是秒面板的开关按键生效,如果只是调节亮度色温,启动关闭时间为0x00忽略此时间
        // 立即更新到设定值此时间为亮度0~100%的时间,控制器每200ms执行一次,
        // 需要根据当前值进行计算到设定值需要执行多少次,比如设定启动时间为2S,则每次执行增加为10%,
        // 设定亮度55%,则需要执行6次到达设定值,色温也是一样的计算方式
        "gradient_time": "0",//延时调光时间,单位为秒,此时间为从0调到100的总时间,具体调节按上面注释计算
    }
  },
  {
    "id": "1", "pid": "1","area_id": "区域ID", "area": "区域名称", "name": "0001", "display_name": "灯光",
    "type":    "lightdim",//调光灯,
    "subtype":    "dimming_color_temp", //"dimming_single", "单路调光灯"/"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":    "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": "区域ID", "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": "区域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进制字符串格式,
    }
  },
]

门锁设备配置数据示例

[
   {//继电器门锁窗户锁
    "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
    }
  }
]

刷卡器设备配置数据示例

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

浴霸设备配置数据示例

[
   {
    "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为传感器类型
         ],
    }
  },
]

暖通设备,空调新风地暖配置数据示例

[
   {//继电器空调
    "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,则按照设备协议通道走对应的协议。)

[
{//触摸控制面板
    "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,//是否启用
                      }
                    ]
    }
  },
]

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

[
{
    "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,//是否启用
                      }
                    ]

    }
  },
]

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

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

网关设备配置数据格式

[
{
    "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"],//设备识别码,资源授权给有权限的面板使用
    }
  },
]

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

[
        {
        "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": "区域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

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

组合配置数据格式实例

 {
  "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",  //端口
        }
    }],

    "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","port"]},
            {"subtype":"rgb","label":"彩灯","configs":["address","port"]},
            {"subtype":"dimmer","label":"可调光灯","configs":["address","port"]}
        ]
    }
    
]

设备硬件接口配置

android 配置存放路径:/vendor/etc/homeapp/hardware.cfg

{
     "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对应周一到周日
hour int
minute int
second int
panel_id String 面板ID
scene_id String 场景ID