# ABSDK 接口文档
## ABRet 返回值说明
| 字段 | 说明 | 备注 |
|------|------|------|
| **code** | 00000成功
Xxxxx失败 | 错误码:
00000 成功
0xxxx 系统级错误
1xxxx 权限级
2xxxx 操作级 |
| **msg** | 错误信息 | code为00000以外时,该字段有效
该字段只提供概要的错误信息。具体错误原因可参考下面提到的code含义表 |
| **key=> value** | 附带信息, 如 seq => 123111 | code为00000时,该字段有效 |
---
## API 接口
### 0. 取得实例对象
**方法签名:** `ABSDK getInstance()`
**参数:** 无
**返回值:**
ABSDK实例
### 1. 登录
**方法签名:** `ABRet loginWithUsername(String username, String password)`
**参数说明:**
- username:用户名
- password:密码
**返回值:**
ABRet:
code String 处理结果(00000成功,00000以外失败)
msg String 错误信息
dicdatas Map 返回数据
token String TOKEN(后续访问用token,有效期2小时,过期后需重新获取)
### 2. 验证token状态
**方法签名:** `ABRet isValidateToken()`
**参数:** 无
**返回值:**
ABRet:
code String 处理结果(00000成功,00000以外失败)
msg String 错误信息
dicdatas Map 返回数据
status String TOKEN状态(0:无效 1:有效)
### 3. 发送红外按键指令(请在登录后使用)
**方法签名:** `ABRet sendIr(String irDevName, String irKey)`
**参数说明:**
- irDevName: 红外设备名称
- irKey:按键KEY
**返回值:**
ABRet:
code String 处理结果(00000成功,00000以外失败)
msg String 错误信息
### 4. 控制窗帘(请在登录后使用)
**方法签名:** `ABRet curtainCtrl(String ctDevName, AB_CT_ACTION action, int percent)`
**参数说明:**
- ctDevName: 窗帘名称
- action:动作(请使用下面2个已在库中定义好的常量)
- OPEN 打开窗帘
- ADJUST 校准窗帘
- PAUSE 暂停(使窗帘停止运动)
- percent:窗帘打开百分比(0~100)
- ※该参数只需要在【打开窗帘】时使用
**返回值:**
ABRet:
code String 处理结果(00000成功,00000以外失败)
msg String 错误信息
### 5. 主机红外下载 (请在登录后使用)
**方法签名:** `ABRet downloadIrCodes(List irInfos)`
**参数说明:**
- irInfos 红外码值信息(请传入IrInfo类型的数据)
**返回值:**
ABRet:
code String 处理结果(00000成功,00000以外失败)
msg String 错误信息
dicdatas Map 返回数据
ret List 导入结果(可通过IrInfo中的status判断每个红外码的下载成功或失败)
---
## IrInfo 说明
| 字段 | 说明 | 备注 |
|------|------|------|
| **irDevName** | 设备区分 | 红外设备名称 |
| **key** | 红外KEY | |
| **code** | 红外码值 | |
| **status** | 红外下载结果 | 0:失败
1:成功 |
### 6. 控制插座(请在登录后使用)
**方法签名:** `ABRet sockCtrl(String soDevName, String status)`
**参数说明:**
- soDevName: 插座名称
- status:插座状态(0:关闭 1:打开)
**返回值:**
ABRet:
code String 处理结果(00000成功,00000以外失败)
msg String 错误信息
### 7. 控制开关(请在登录后使用)
**方法签名:** `ABRet switchCtrl(String switchDevName, String status, String no)`
**参数说明:**
- switchDevName: 开关名称
- status:开关状态(0:关闭 1:打开)
- no:开关键序号(
- 1开开关:空
- 2开开关:no值和开关键对应如下
- 1:对应2开开关上最下侧按键
- 3:对应2开开关上最上侧按键
- 3开开关:no值和开关键对应如下
- 1:对应3开开关上最下侧按键
- 2:对应3开开关上中间按键
- 3:对应3开开关上最上侧按键
- )
**返回值:**
ABRet:
code String 处理结果(00000成功,00000以外失败)
msg String 错误信息
### 8. 控制射灯开关(请在登录后使用)
**方法签名:** `ABRet lightStatusCtrl(String lightDevName, String status)`
**参数说明:**
- lightDevName: 射灯名称
- status:灯的状态 0:关灯 1:开灯
**返回值:**
ABRet:
code String 处理结果(00000成功,00000以外失败)
msg String 错误信息
### 9. 控制射灯的色调饱和度(请在登录后使用)
**方法签名:** `ABRet lightHSCtrl(String lightDevName, String h, String s)`
**参数说明:**
- lightDevName: 射灯名称
- h:色调值 0~254
- s:饱和度 0~254
**返回值:**
ABRet:
code String 处理结果(00000成功,00000以外失败)
msg String 错误信息
### 10. 控制射灯的亮度(请在登录后使用)
**方法签名:** `ABRet lightVCtrl(String lightDevName, String v)`
**参数说明:**
- lightDevName: 射灯名称
- v:亮度 0~254
**返回值:**
ABRet:
code String 处理结果(00000成功,00000以外失败)
msg String 错误信息
### 11. 取得开关状态(请在登录后使用)
**方法签名:** `ABRet getSwitchStatus(String switchDevName)`
**参数说明:**
- switchDevName: 开关名称
**返回值:**
ABRet:
code String 处理结果(00000成功,00000以外失败)
msg String 错误信息
dicdatas Map 返回数据
btns String 开关数(1:1开开关 2:2开开关 3:3开开关)
status List 开关状态数组(0:关闭 1:开启)
### 12. 取得插座状态(请在登录后使用)
**方法签名:** `ABRet getSockStatus(String soDevName)`
**参数说明:**
- soDevName: 插座名称
**返回值:**
ABRet:
code String 处理结果(00000成功,00000以外失败)
msg String 错误信息
dicdatas Map 返回数据
status String 插座状态(0:关闭 1:开启)
### 13. 取得门磁状态(请在登录后使用)
**方法签名:** `ABRet getDoorStatus(String doorDevName)`
**参数说明:**
- doorDevName: 门磁名称
**返回值:**
ABRet:
code String 处理结果(00000成功,00000以外失败)
msg String 错误信息
dicdatas Map 返回数据
status String 门磁状态(0:关闭 1:开启)
### 14. 取得温湿度情报(请在登录后使用)
**方法签名:** `ABRet getThStatusByDevName(String thDevName)`
**参数说明:**
- thDevName: 温湿度名称
**返回值:**
ABRet:
code String 处理结果(00000成功,00000以外失败)
msg String 错误信息
dicdatas Map 返回数据
temperature String 温度
humidity String 湿度
### 15. 取得人体活动传感器情报(请在登录后使用)
**方法签名:** `ABRet getHdStatus(String hdDevName)`
**参数说明:**
- hdDevName: 人体活动传感器名称
**返回值:**
ABRet:
code String 处理结果(00000成功,00000以外失败)
msg String 错误信息
dicdatas Map 返回数据
status String 人体活动状态(0:无活动 1:有活动)
lightIntensity String 光感强度(1:亮 2:正常 3:昏暗 4:黑)
### 16. 取得一氧化碳传感器情报(请在登录后使用)
**方法签名:** `ABRet getCoStatus(String coDevName)`
**参数说明:**
- coDevName: 一氧化碳传感器名称
**返回值:**
ABRet:
code String 处理结果(00000成功,00000以外失败)
msg String 错误信息
dicdatas Map 返回数据
concentration String 一氧化碳浓度
### 17. 控制一氧化碳蜂鸣(请在登录后使用)
**方法签名:** `ABRet coCtrlBySoDevName(String coDevName, String interval)`
**参数说明:**
- coDevName: 一氧化碳名称
- interval:蜂鸣时间(单位:秒)
**返回值:**
ABRet:
code String 处理结果(00000成功,00000以外失败)
msg String 错误信息
### 18. 红外学习
**方法签名:** `ABRet studyIrByIrDevName(String irDevName, String irKey)`
**参数说明:**
- irDevName: 红外设备名称
- irKey:按键KEY
**返回值:**
ABRet:
code String 处理结果(00000成功,00000以外失败)
msg String 错误信息
---
## 返回值 CODE 含义
| CODE | 含义 |
|------|------|
| 00000 | 处理成功 |
| 00001 | 数据库操作失败 |
| 10001 | TOKEN不存在或长度不足 |
| 10002 | TOKEN已失效 |
| 10003 | TOKEN中的SN号不正 |
| 10004 | 签名不存在 |
| 10005 | 时间戳不存在 |
| 10006 | 签名不正确 |
| 20000 | 请求超时 |
| 20001 | 用户名或密码不存在 |
| 20002 | 用户不存在或已暂停使用 |
| 20003 | 登录失败次数过多 |
| 20004 | 用户名或密码不正确 |
| 20005 | 本地用户权限不足 |
| 20101 | 服务器端URL或酒店名或房间号或APIKEY不存在 |
| 20201 | 红外KEY不存在 |
| 20202 | 红外码值不存在 |
| 20203 | 红外设备不存在 |
| 20204 | 红外码库导入失败 |
| 20205 | 红外发射失败 |
| 20206 | 红外设备已离线 |
| 20301 | 参数不正_CMD0不存在 |
| 20302 | 参数不正_CMD1不存在 |
| 20303 | 参数不正_PAYLOAD不存在 |
| 20304 | 窗帘设备不存在 |
| 20305 | 窗帘设备控制失败 |
| 20306 | 窗帘设备已离线 |
| 20501 | 参数不正_插座状态不存在 |
| 20502 | 插座设备不存在 |
| 20503 | 插座设备控制失败 |
| 20504 | 插座设备已离线 |
| 20601 | 参数不正_开关状态不存在 |
| 20602 | 参数不正_开关类型不存在(标识几开开关) |
| 20603 | 开关设备不存在 |
| 20604 | 开关设备控制失败 |
| 20605 | 开关设备已掉线 |
| 20701 | 参数不正_射灯操作类型不存在 |
| 20702 | 参数不正_射灯操作类型不正确 |
| 20703 | 参数不正_射灯开关状态不存在 |
| 20704 | 参数不正_射灯色调饱和度不存在 |
| 20705 | 参数不正_射灯亮度不存在 |
| 20706 | 射灯设备不存在 |
| 20707 | 射灯设备控制失败 |
| 20801 | 参数不正_设备名称不存在 |
| 20802 | 端末设备不存在 |
| 20803 | 端末状态属性不存在 |
| 20804 | 参数不正_报警时长不正确 |
| 20805 | 端末设备已离线 |
| 20806 | 设备控制失败 |