瀏覽代碼

添加设备配置格式定义

miricy 1 年之前
父節點
當前提交
34ee33640b
共有 1 個文件被更改,包括 301 次插入0 次删除
  1. 301 0
      product/deviceconfig.md

+ 301 - 0
product/deviceconfig.md

@@ -0,0 +1,301 @@
+## 设备配置数据格式
+
+GET 请求URL:
+[https://dev.izhiju.cn/device/config](https://dev.izhiju.cn/device/config)
+
+请求头参数:
+Content-Type: application/json
+
+查寻参数:
+
+
+| 参数名   | 参数类型 | 值                    | 说明                                                                                     |
+| -------- | -------- | --------------------- | ---------------------------------------------------------------------------------------- |
+| package  | string   | cn.izhiju.android.xxx | 获取配置的应用包名,必须字段如:cn.izhiju.android.panela                                        |
+| key      | string   | 平台相关的密钥        | 应用获取升级的密钥,必须字段                                                              |
+| deviceId | string   | ac:bc:cd:ee:11:22     | 设备ID或MAC地址,必须字段,后台添加限制时保持一致即可,智能家居应用目前定为大写MAC去冒号 |
+| type     | string   | 0b11111111 |  获取哪些配置 0和不传为所有,高位在前低位在后,从低到高,1位为设备,2为场景,3为区域,组合7为所有  |
+
+返回结果:
+
+1. 成功,状态码200,返回如下内容:
+
+```json
+{
+  "version": "1.0",
+  "devices":[
+    {
+        "id":    1,
+        "pid":    1,
+        "areaId":    "区域id",
+        "area":    "区域名称",
+        "name":    "0001",
+        "displayName":    "设备显示名称",
+        "type":    "设备类型",
+        "subtype":    "设备子类型",
+        "channels":[{//缓存的设备状态,或初始默认值,可不存在
+                "name": "action",
+                "type": "STRING",
+                "mode": "READ_WRITE",
+                "value": "off"
+                }],
+        "config":  //所有设备整体配置
+        {
+            "address": "12345678", //地址
+            "ports": [1,2,3,4,5], //多端口 当为继电器窗帘时,继电器按顺序排列1为开,2为关端口,当为空调时,按数组顺序 1,2,3为一二三档对应的继电器端口,4为制冷,5为制热端口,当为风扇或新风时,1,2,3为一二三档对应的继电器端口,当为浴霸时,1,2为灯光,3,4为取暖,5,6为排风
+            "broadcast":    false,//跨网关是否广播  false为不广播,true为广播
+            "sub_address":["22","33","44"],  //如485协议窗帘,第一个即窗帘485地址,当为空调时,第一个为空调外机地址,第二个为内机地址,433协议窗帘时为遥控器id,433设备对应的遥控码,3字节16进制字符串格式, 取值范围 0-16777215(小端在后比如20:000014)
+            "device_control":"protocol", //protocol(协议),central(继电器)
+            "control_type":    2,  //控制类型 0协议类型,1为继电器,当为窗帘时1为单信号,2继电器断信号,3继电器双信号,4为干节点
+            "keep_time": 5, //--门锁为单信号时,控制延时上锁时间,默认值为5秒,范围(1到30秒)如门禁开后5秒后自动上锁
+            "icons":["internal://array_light","http://www.abc.com/img/light.png"],//设备图标列表
+            "order":    1,//排序,值越小越靠前,相同的值按设备先后顺序
+            "temp": 30,//默认温度
+            "humidity": 60,//默认湿度
+            "speed":3 ,//空调,风扇风力档位数量,默认为3档,低,中,高
+            "modes": ["","","",""],//支持模式列表 fan,cool,heat,auto,saving,dehumidify,sleeping,fan_inner(内循环),fan_side(旁通)/heat_exchange(热交换)
+            "bus":"canbus",//设备接入总线或协议类型,canbus/network/serial/RS485/zigbee/bluetooth/dali/knx/plc-iot
+            "associated_sensor":    //关联传感器,如温湿度传感器,第一个为环境温湿度传感器,当为地暖时,第二个为报警温度传感器,默认45度
+                          [{"name":"humiture1","calibration":10},
+                                     {"name":"humiture2", //关联传感器2,设备唯一的名称
+                                             "calibration":5  //校正温度度数
+                                             }],
+            "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_lock":    //关联的锁,如门锁,窗锁,门禁等
+            //智能控制面板配置
+            "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小时制
+            //门禁面板配置
+            "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,
+        "areaId":    "CAN区域",
+        "area":    "区域名称",
+        "name":    "0001",
+        "displayName":    "灯光",
+        "type":    "light",
+        "subtype":    "light_plat",
+        "config":  
+        {
+            "address": "12345678", //地址
+            "ports": [1],  //端口
+            "broadcast":    false //跨网关是否广播  false为不广播,true为广播
+        }
+    },
+    {
+        "id":    2,
+        "pid":    1,
+        "areaId":    "CAN区域",
+        "area":    "区域名称",
+        "name":    "0002",
+        "displayName":    "窗帘",
+        "type":    "curtain",
+        "subtype":    "canbus",
+        "config":  
+        {
+            "address": "12345678",
+            "ports": [1,2], //多端口 当继电器窗帘或空调时用,窗帘1为开,2为关端口
+            "broadcast":    false,
+            "sub_address":"22",
+            "control_type":    "1",//控制类型 1协议类型,2继电器单信号,3继电器断信号,4继电器双信号
+        }
+    },
+    {
+        "id":    2,
+        "pid":    1,
+        "areaId":    "CAN区域",
+        "area":    "区域名称",
+        "name":    "0002",
+        "displayName":    "窗帘",
+        "type":    "curtain",
+        "subtype":    "canbus",
+        "config":  
+        {
+            "address": "12345678",
+            "port": 1,
+            "ports": [1,2], //多端口 当为继电器窗帘时,继电器1为开,2为关端口
+            "broadcast":    false,
+            "sub_address":"22",  //协议窗帘子地址,如485协议窗帘,子地址为22
+            "control_type":    2,  //控制类型 1协议类型,2继电器单信号,3继电器断信号,4继电器双信号
+        }
+    },
+    {
+        "id":    1,
+        "pid":    1,
+        "areaId":    "CAN区域",
+        "name":    "2001",
+        "displayName":    "can面板",
+        "type":    "panel",
+        "subtype":    "canbus",
+        "config":  
+        {
+            "address": "12345678",
+            "port": 1,
+            "broadcast":    false,
+            "associated_sensor":    ["humiture1","humiture2"],//关联传感器
+            "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",
+            "lock_end_time":    "23:59:59"
+        }
+    }],
+
+    "scenes":[
+        {
+        "id":    1,
+        "pid":    1,
+        "areaId":    "区域id",
+        "area":    "区域名称",
+        "name":    "0001",
+        "displayName":    "设备显示名称",
+        "type":    "scene",
+        "subtype":    "work",
+        "config":  
+        {
+            "scene":[
+                {
+                   "name": "0001",
+                   "channels":[{
+                       "value": "off",
+                        "name": "action",
+                        "type": "STRING"}]
+                },
+                {
+                    "name": "0002",
+                    "channels": [{
+                        "value": "off",
+                        "name": "action",
+                        "type": "STRING"}]
+                }
+            ],  //场景默认配置,不区分时令,一般处理非温控类设备,不管哪个季节都执行
+            "summer":[],//夏季配置,处理温控类设备,夏季要执行的场景
+            "winter":[],//冬季配置,处理温控类设备,冬季要执行的场景
+        }
+      }
+    ],
+    
+    "areas":[
+        {
+            "id":"1",
+            "pid":"1",
+            "name":"区域名称",
+            "groupable":true,//是否可分组显示,可分组为分类目录,不可分组为叶目录
+        },
+        {
+            "id":"2",
+            "pid":"1",
+            "name":"区域名称",
+            "groupable":false,//是否可分组显示,可分组为分类目录,不可分组为叶目录
+        }
+    ]
+}
+```
+
+
+## 配置中的各字段数据库定义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"]}
+        ]
+    }
+    
+]
+```