- PMS接口定义
- 简介
- 统一的PMS接口在不同外部文件实现
- 前端请求web应用接口
- (一) 原项目补充—管理只能登录网页操作
- (二) 用户操作有授权的房间内设备
- 2.1.1 获得对app开放的区域列表
- 2.1.2 登录并获得开放区域的授权
- 2.2 获得已登录授权区域的详细信息
- 2.3 操作区域内的网关
- 2.3.1 获取已登录区域内所有网关netways
- 2.3.2 获取已登录区域内指定id的网关netways
- 2.4 操作区域内的继电器类relays
- 2.4.1 获得指定网关的继电器relays列表
- 2.4.2 获取指定id的继电器relay的信息
- 2.4.3 修改指定id的继电器relay的信息
- 2.5 操作区域内的调光类dims
- 2.5.1 获得指定网关的调光类dims列表
- 2.5.2 获取指定id的调光器dim的信息
- 2.5.3 修改指定id的调光器dim的信息
- 2.6 操作区域内的空调类air
- 2.6.1 获取当前网关下所有空调 airs
- 2.6.2 获取指定id的空调air的信息
- 2.6.3 修改指定id的空调air的信息
- 2.7 操作区域内的弱电IO状态信息
- 2.7.1 获得指定网关的传感器lsos列表
- 2.7.2 获取指定id的传感器lsos的信息
- 2.7.3 修改指定id的传感器lsos的信息
- 2.8 操作区域内的场景联动
- 2.8.1 获取当前区域内所有场景 scnes
- 2.8.2 获取区域内指定scn_id的场景scne
PMS接口定义
简介
酒店管理软件PMS有不同品牌
不同厂家的通信接口是完全不同
抽象成统一的数据请求接口
用户登录接口数据统一
不同厂家PMS处理程序写成动态文件存放外部
应用服务器用统一的方式(一样的函数形参)调用外部PMS处理程序
外部PMS处理程序校对之后,用统一的异步返回通知应用服务器
统一的PMS接口在不同外部文件实现
外部PMS验证用户的合法性函数原型声明
/*** 入参userData:* {mobile : 手机号码 (string),area_name : 区域名 (string),pms_json : pms各自的配置文本 (string)* }* 返回,异步返回promise方式* 成功返回参数 无* 异常返回参数 无*/function pmsCheckUserValid(userData){let backPromise = new Promise((resolve, reject) => {// 验证等处理代码 ... ...// ... ...if(true)// 用户合法resolve();else// 不合法的用户reject();});}module.exports = pmsCheckUserValid;// 暴露函数给外部应用程序
前端请求web应用接口
前端给指定的一个项目添加,删除,修改PMS配置信息
前端携带给定的权限对区域内的设备进行操作
(一) 原项目补充—管理只能登录网页操作
1、1 获得项目已接入的PMS信息
方法:get(‘/api/pms/auth_projecks/:projeck_id’)
数据:无
返回:
{"projeck_id" : "项目id (number)","pms_name" : "PMS厂家名 (string)","pms_json" : "{对应的PMS个性化配置信息字json符串} (string)","pms_comment" : "描述 (string)","apptag" : "app标识,如小程序wechat/wecatid,andoird/id,ios/id,pc/id (string)","..." : "..."}
1、2 修改项目已接入的PMS信息
方法:put(‘/api/pms/auth_projecks/:projeck_id’)
数据:
{"pms_name" : "PMS厂家名 (string)","pms_json" : "{对应的PMS个性化配置信息字json符串} (string)","pms_comment" : "描述 (string)","apptag" : "app标识,如小程序wechat/wecatid,andoird/id,ios/id,pc/id (string)","..." : "..."}
注:projeck_id 不能被用户修改,projeck_id不发生作用
返回:
{"projeck_id" : "项目id (number)","pms_name" : "PMS厂家名 (string)","pms_json" : "{对应的PMS个性化配置信息字json符串} (string)","pms_comment" : "描述 (string)","apptag" : "app标识,如小程序wechat/wecatid,andoird/id,ios/id,pc/id (string)","..." : "..."}
1、3 给项目添加pms的接入信息
方法:post(‘/api/pms/auth_projecks’)
数据:
{"projeck_id" : "项目id (number)","pms_name" : "PMS厂家名 (string)","pms_json" : "{对应的PMS个性化配置信息字json符串} (string)","pms_comment" : "描述 (string)","apptag" : "app标识,如小程序wechat/wecatid,andoird/id,ios/id,pc/id (string)","..." : "..."}
注:项目id必须有,其它可选
返回:
{"projeck_id" : "项目id (number)","pms_name" : "PMS厂家名 (string)","pms_json" : "{对应的PMS个性化配置信息字json符串} (string)","pms_comment" : "描述 (string)","apptag" : "app标识,如小程序wechat/wecatid,andoird/id,ios/id,pc/id (string)","..." : "..."}
1、4 删除项目已接入的PMS信息
方法:delete(‘/api/pms/auth_projecks/:projeck_id’)
数据:无
返回:
{"projeck_id" : "项目id (number)"}
(二) 用户操作有授权的房间内设备
说明:
- 用户登录有操作授权的区域
- 操作区域内的网关
- 操作区域内的继电器类开关,窗帘,灯光relay
- 操作区域内的调光类灯光dim
- 操作区域内的场景联动
- 操作区域内的弱电IO状态信息
注意:
新建post不启用
删除delete不启用
只对接get,put
2.1.1 获得对app开放的区域列表
方法:get(‘/api/pms/auth_areas’)
参数: apptag=app标识符,如小程序wx/wechatid,apk/id,ios/id,pc/id
返回:数组
[{"area_id" : "区域id (number)","area_name" : "名字 (string)"},{"..." : "其它信息 (任意类型)"}]
2.1.2 登录并获得开放区域的授权
方法:post(‘/api/pms/auth_login’)
数据:
{"apptag" : "app标识符,如小程序wx/wechatid,apk/id,ios/id,pc/id (string)","area_id": "区域id (number)","mobile" : "用户手机号 (string)"}
返回:成功
{"success" : true}
返回:失败
{"err" : "error message ..."}
返回后的cookie 多了一个pms
{"pms" : {"area_id":"区域id (number)","mobile" : "用户手机号 (string)","..." : "其它信息 (任意类型)"},"..." : "cookie 其它信息"}
2.2 获得已登录授权区域的详细信息
通过获得的pms的cookie,获得授权区域的详细信息
获得授权区域的详细信息
方法:get(‘/api/pms/auth_areas/:area_id’)
数据:无
返回:
{"area_id" : "(number)","area_name" : "(string)","area_type" : "(string)","projeck_id" : "(number)","area_floor" : "(string)","..." : "(其它)"}
2.3 操作区域内的网关
通过已获得俱有pms的cookie
查询该区域内的网关信息
2.3.1 获取已登录区域内所有网关netways
方法:get(‘/api/pms/auth_netways’)
数据:无
返回:数组
[{"net_id": 0,"net_name": "","area_id": "","net_type": "","net_timestamp": 0,"..." : "(其它)"},{"..." : "其它信息 (任意类型)"}]
2.3.2 获取已登录区域内指定id的网关netways
方法:get(‘/api/pms/auth_netways/:net_id’)
数据:无
返回:
{"net_id": 0,"net_name": "","area_id": "","net_type": "","net_timestamp": 0,"..." : "(其它)"}
2.4 操作区域内的继电器类relays
通过已获得俱有pms的cookie
操作该区域内的继电器类relay设备
开关,窗帘,灯光,排气扇
2.4.1 获得指定网关的继电器relays列表
方法:get(‘/api/pms/:net_id/auth_relays’)
数据:无
返回:数组
[{"relay_id": 0,"net_id": 0,"relay_name": "","relay_value": "UNKNOW","relay_flow": 0,"..." : "(其它)"},{"..." : "其它信息 (任意类型)"}]
2.4.2 获取指定id的继电器relay的信息
方法:get(‘/api/pms/auth_relays/:relay_id’)
数据:无
返回:
{"relay_id": 0,"net_id": 0,"relay_name": "","relay_value": "UNKNOW","relay_flow": 0,"..." : "(其它)"}
2.4.3 修改指定id的继电器relay的信息
方法:put(‘/api/pms/auth_relays/:relay_id’)
数据:
{"relay_value": "new_value"}
注:pms 授权不修改其它字段
返回:
{"relay_id": 0,"relay_value": "new_value"}
2.5 操作区域内的调光类dims
通过已获得俱有pms的cookie
操作该区域内的调光类dim设备
调光灯,灯带,阅读灯
2.5.1 获得指定网关的调光类dims列表
方法:get(‘/api/pms/:net_id/auth_dims’)
数据:无
返回:数组
[{"dim_id": 0,"net_id": 0,"dim_name": "","dim_value": 0,"..." : "(其它)"},{"..." : "其它信息 (任意类型)"}]
2.5.2 获取指定id的调光器dim的信息
方法:get(‘/api/pms/auth_dims/:dim_id’)
数据:无
返回:
{"dim_id": 0,"net_id": 0,"dim_name": "","dim_value": 0,"..." : "(其它)"}
2.5.3 修改指定id的调光器dim的信息
方法:put(‘/api/pms/auth_dims/:dim_id’)
数据:
{"dim_value": "new_value (number)"}
注:pms 授权不修改其它字段
返回:
{"dim_id": 0,"dim_value": "new_value (number)"}
2.6 操作区域内的空调类air
通过已获得俱有pms的cookie
操作该区域内的空调air类设备
开关空调,调节风速,切换制冷制热
设置温度
2.6.1 获取当前网关下所有空调 airs
方法:get(‘/api/pms/:net_id/auth_airs’)
数据:无
返回:数组
[{"air_id": 0,"net_id": 0,"POWER": "开/关机 (string)","SPEED": "风速 (string)","MODE": "制冷/制热 (string)","STMP": "16-32度 (number)","..." : "(其它)"},{"..." : "其它信息 (任意类型)"}]
2.6.2 获取指定id的空调air的信息
方法:get(‘/api/pms/auth_airs/:air_id’)
数据:无
返回:
{"air_id": 0,"net_id": 0,"POWER": "开/关机 (string)","SPEED": "风速 (string)","MODE": "制冷/制热 (string)","STMP": "16-32度 (number)","..." : "(其它)"}
2.6.3 修改指定id的空调air的信息
方法:put(‘/api/pms/auth_airs/:air_id’)
数据:
{"POWER": "开/关机 (string)","SPEED": "风速 (string)","MODE": "制冷/制热 (string)","STMP": "16-32度 (number)"}
注:以上字段可单项设置、多项设置
返回:
{"POWER": "开/关机 (string)","SPEED": "风速 (string)","MODE": "制冷/制热 (string)","STMP": "16-32度 (number)"}
2.7 操作区域内的弱电IO状态信息
通过已获得俱有pms的cookie
操作该区域内的IO类lso
清理,勿扰,门磁,窗磁,插卡
2.7.1 获得指定网关的传感器lsos列表
方法:get(‘/api/pms/:net_id/auth_lsos’)
数据:无
返回:数组
[{"lso_id": 0,"net_id": 0,"lso_name": "","lso_value": "UNKNOW","lso_type": "","lso_devID": 0,"lso_order": 0,"..." : "(其它)"},{"..." : "其它信息 (任意类型)"}]
2.7.2 获取指定id的传感器lsos的信息
方法:get(‘/api/pms/auth_lsos/:lsos_id’)
数据:无
返回:
{"lso_id": 0,"net_id": 0,"lso_name": "","lso_value": "UNKNOW","lso_type": "","lso_devID": 0,"lso_order": 0,"..." : "(其它)"}
2.7.3 修改指定id的传感器lsos的信息
方法:put(‘/api/pms/auth_lsos/:lsos_id’)
数据:
{"lso_value": "new_value"}
注:pms 授权不修改其它字段
返回:
{"lso_id": 0,"lso_value": "new_value"}
2.8 操作区域内的场景联动
通过已获得俱有pms的cookie
操作该区域内的场景类scne
查询场景
2.8.1 获取当前区域内所有场景 scnes
方法:get(‘/api/pms/auth_scnes’)
数据:无
返回:数组
[{"scn_id": 0,"area_id": 0,"scn_name": "","scn_type": "","scn_num": 0,"scn_json": "json","scn_ico": "","..." : "(其它)"}]
2.8.2 获取区域内指定scn_id的场景scne
方法:get(‘/api/pms/auth_scnes/:scn_id’)
数据:无
返回:
{"scn_id": 0,"area_id": 0,"scn_name": "","scn_type": "","scn_num": 0,"scn_json": "json","scn_ico": "","..." : "(其它)"}
