版本 | 日期 | 拟稿和修改 | 说明 |
---|---|---|---|
1.0 | 2017-07-10 | 梁先华 | 初稿 |
1.1 | 2018-06-26 | 梁先华 | 修改 |
本文档详细介绍了Open API的详细说明。
UOA Umeinfo Open API
本文档主要分为三个部分,第一部分概要,第二部分为Open Api的详细说明。
添加系统库:
libicucore.tbd 、 CoreData.framework
工程配置:
Build Settings -> Other Linker Flags 中添加 -ObjC
如果项目支持cocoapods,在podfile文件中配置
source 'https://github.com/andy90s/UMESpecs.git'
pod 'UOASmartHomeSDK'
执行podupdate
即可完成集成。
在AppDelegate中导入头文件
添加SDK初始化方法
/// 注:AppKey 为分配的服务器地址
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[UMInfoOpenAPI initWithAppKey:@"AppKey"];
return YES;
}
初始化只需要在程序启动时初始化一次即可。
/**
登录
@param userName 用户名
@param password 密码
@param license 分配的license字符串 (当为license登录时password为空)
*/
- (void)loginUserName:(NSString *)userName password:(NSString *)password license:(NSString *)license callBack:(success)success failer:(failer)falier;
返回参数 | 类别 | 说明 | 备注 |
---|---|---|---|
authority | int | 权限 | |
gateway | string | 网关ID | |
gateways | jsonArray | 绑定网关列表 | |
name | string | 网关别名 |
返回参数 | 类别 | 说明 | 备注 |
---|---|---|---|
proto_version | string | 协议版本号 | |
status | int | 返回状态码 | 详细状态码查看文档第5条 |
ts | string | 时间戳 |
[UOAUserManager.manager loginUserName:@"username" password:@"password" callBack:^(NSDictionary *jsonDictionary) {
// 登录成功
} failer:^(NSDictionary *jsonDictionary) {
// 登录失败
}];
/**
退出登录
@param userName 用户名
*/
- (void)logout:(NSString *)userName callBack:(success)success failer:(failer)falier;
返回参数 | 类别 | 说明 | 备注 |
---|
/**
获取注册短信验证码
@param usrNumber 用户手机号
*/
- (void)getRegisterCode:(NSString *)usrNumber callBack:(success)success failer:(failer)falier;
返回参数 | 类别 | 说明 | 备注 |
---|
/**
验证注册验证码
@param usrNumber 用户手机号
@param vCode 获取到的验证码
*/
- (void)checkRegisterCode:(NSString *)usrNumber verificationCode:(NSString *)vCode callBack:(success)success failer:(failer)falier;
返回参数 | 类别 | 说明 | 备注 |
---|
/**
注册账号
@param userName 用户手机号
@param password 密码
*/
- (void)registerAccount:(NSString *)userName password:(NSString *)password callBack:(success)success failer:(failer)falier;
返回参数 | 类别 | 说明 | 备注 |
---|
/**
修改密码
@param userName 用户名
@param oldPassword 旧密码
@param newPassword 新密码
*/
- (void)modifyPassword:(NSString *)userName oldPassword:(NSString *)oldPassword newPassword:(NSString *)newPassword callBack:(success)success failer:(failer)falier;
返回参数 | 类别 | 说明 | 备注 |
---|
/**
获取忘记密码验证码
@param userName 用户名
*/
- (void)getForgetPasswordCode:(NSString *)userName callBack:(success)success failer:(failer)falier;
返回参数 | 类别 | 说明 | 备注 |
---|
/**
验证忘记密码验证码
@param userName 用户名
@param vcode 验证码
*/
- (void)checkForgetPasswordCode:(NSString *)userName vCode:(NSString *)vcode callBack:(success)success failer:(failer)falier;
返回参数 | 类别 | 说明 | 备注 |
---|
/**
重置密码
@param userName 用户名
@param newPassword 新密码
*/
- (void)resetPassword:(NSString *)userName newPassword:(NSString *)newPassword callBack:(success)success failer:(failer)falier;
返回参数 | 类别 | 说明 | 备注 |
---|
// 在需要处理的地方 注册通知 注意name为 kUMESmartHomeSpecialNotification
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(#<selectorName>#)name:kUMESmartHomeSpecialNotification object:nil];
返回参数 | 类别 | 说明 | 备注 |
---|---|---|---|
error | string | 错误信息 | |
status | int | 错误码 |
/**
网关开网
@param gateway 网关标识
*/
- (void)allowsScanGateway:(NSString *)gateway callBack:(success)success failer:(failer)falier;
返回参数 | 类别 | 说明 | 备注 |
---|
/**
搜索网关(内网搜索,保持当前WiFi与网关WiFi一致)
*/
- (void)searchGatewaycallBack:(success)success failer:(failer)falier;
返回参数 | 类别 | 说明 | 备注 |
---|---|---|---|
gateway | string | 网关ID | |
name | string | 网关名称 |
/**
绑定网关
@param gateway 网关标识
@param gatewayName 网关名称
*/
- (void)bindGateway:(NSString *)gateway gatewayName:(NSString *)gatewayName userName:(NSString *)userName callBack:(success)success failer:(failer)falier;
返回参数 | 类别 | 说明 | 备注 |
---|
/**
获取网关列表
*/
- (void)getGatewayListCallBack:(success)success failer:(failer)falier;
返回参数 | 类别 | 说明 | 备注 |
---|---|---|---|
firmware | string | 网关硬件版本 | |
software | string | 网关软件版本 | |
alarm | int | 网关下是否布防 | 0撤防 1布防 |
authority | int | 管理员权限 |
/**
检测唯一管理员
@param gateway 网关标识
*/
- (void)checkUniqueAdmin:(NSString *)gateway callBack:(success)success failer:(failer)falier;
返回参数 | 类别 | 说明 | 备注 |
---|---|---|---|
only_admin | int | 是否管理员 | 1-是0-不是 |
/**
解除绑定网关
@param gateway 网关标识
@param userName 用户名
*/
- (void)unbindGateway:(NSString *)gateway userName:(NSString *)userName callBack:(success)success failer:(failer)falier;
返回参数 | 类别 | 说明 | 备注 |
---|
/**
修改网关别名
@param gatewayName 网关名称
@param gatewaytid 网关ID
*/
- (void)updateGatewayName:(NSString *)gatewayName gatewayID:(NSString *)gatewaytid callBack:(success)success failer:(failer)falier;
返回参数 | 类别 | 说明 | 备注 |
---|
/**
消除警告(网关蜂鸣器响)
*/
- (void)eliminateWarning;
- (void)eliminateWarningCallBack:(success)success failer:(failer)falier;
返回参数 | 类别 | 说明 | 备注 |
---|
/**
获取设备组列表
*/
- (void)getDeviceGroupListCallBack:(success)success failer:(failer)failer;
返回参数 | 类别 | 说明 | 备注 |
---|
/**
添加设备组
@param groupName 组名
*/
- (void)addDeviceGroup:(NSString *)groupName CallBack:(success)success failer:(failer)failer;
返回参数 | 类别 | 说明 | 备注 |
---|
/**
删除设备组
@param groupid 设备组ID
*/
- (void)deleteDeviceGroup:(NSInteger)groupid CallBack:(success)success failer:(failer)failer;
返回参数 | 类别 | 说明 | 备注 |
---|
/**
修改设备组名称
@param groupid 设备组ID
@param newGroupName 设备组名称
*/
- (void)updateDeviceGroupName:(NSInteger)groupid newGroupName:(NSString *)newGroupName CallBack:(success)success failer:(failer)failer;
返回参数 | 类别 | 说明 | 备注 |
---|
/**
获取设备列表
*/
- (void)getDeviceListCallBack:(success)success failer:(failer)failer;
返回参数 | 类别 | 说明 | 备注 |
---|---|---|---|
id | Int | 设备组id | |
name | String | 组名称 | |
mac | String | 设备MAC | |
type | int | 设备类型标识 | |
zonetype | int | 设备类型副标识 | |
stamp | int | 设备添加时间 | |
gateway | String | 网关ID | |
gatewayname | String | 网关别名 | |
offline | Int | 是否在线 | 1是离线 0是在线 |
status | JsonObject | 设备状态 | |
clusterid | JsonObject | ||
in_clusterid | JsonArray | 设备属性 | |
out_clusterid | JsonArray | 设备属性 | |
device_only_type | string | 设备类型 | 设备类型表见第4条 |
/**
搜索设备
*/
- (void)searchDeviceCallBack:(success)success failer:(failer)failer;
返回参数 | 类别 | 说明 | 备注 |
---|---|---|---|
mac | string | 设备MAC | |
gateway | string | 网关ID | |
id | int | 设备ID | |
name | string | 设备名 | |
device_only_type | string | 设备类型 | 设备类型表见第4条 |
/**
添加设备
@param groupId 设备组id
@param deviceId 设备id
@param deviceName 设备名称
@param gateway 网关标识
*/
- (void)addDevice:(NSInteger )groupId devcieId:(NSInteger )deviceId deviceName:(NSString *)deviceName gateway:(NSString *)gateway CallBack:(success)success failer:(failer)failer;
返回参数 | 类别 | 说明 | 备注 |
---|
/**
删除设备
@param deviceId 设备id
@param gateway 网关标识
*/
- (void)deleteDevice:(NSInteger )deviceId gateway:(NSString *)gateway CallBack:(success)success failer:(failer)failer;
返回参数 | 类别 | 说明 | 备注 |
---|
/**
修改设备名和分组
@param groupId 设备组id
@param deviceId 设备id
@param deviceName 设备名称
@param gateway 网关标识
*/
- (void)updateDeviceName:(NSInteger )groupId deviceId:(NSInteger )deviceId devcieName:(NSString *)deviceName gateway:(NSString *)gateway CallBack:(success)success failer:(failer)failer;
返回参数 | 类别 | 说明 | 备注 |
---|
/**
获取设备状态
@param deviceId 设备id
@param gateway 网关标识
*/
- (void)getDeviceStatus:(NSInteger )deviceId gateway:(NSString *)gateway CallBack:(success)success failer:(failer)failer;
返回参数 | 类别 | 设备 | 备注 |
---|---|---|---|
onoff | int | 开关灯 | 0表示关 1表示开(所有设备onoff均是) |
level | int | 冷暖灯 | 亮度值 |
time | int | 冷暖灯 | 渐变延时 |
level | int | 可调灯 | 亮度值 |
time | int | 可调灯 | 渐变延时 |
level | int | 彩色灯 | 亮度 |
hue | int | 彩色灯 | 色彩 |
saturation | int | 彩色灯 | 饱和度 |
time | int | 彩色灯 | 渐变延时 |
onoff | int | 窗帘 | 开关 |
level | int | 窗帘 | 位置 |
stop | int | 窗帘 | 停止 |
time | int | 窗帘 | 渐变延时 |
temp | int | 温湿度 | 温度 |
hum | int | 温湿度 | 湿度 |
name | string | 空开 | 设备名 |
addr | int | 空开 | 开关路数 |
voltage | int | 空开 | 电压 |
current | int | 空开 | 电流 |
leakage_current | int | 空开 | 漏电流 |
temperature | int | 空开 | 温度 |
power | int | 空开 | 功率 |
onoff | int | 空开 | 开关状态 |
/**
控制设备
@param device 设备模型
*/
- (void)controlDevice:(UOADevice *)device CallBack:(success)success failer:(failer)failer;
commond 字典实例:
NSDictionary *commond = @{@"onoff":@(1)};
参数 | 类别 | 说明 | 备注 |
---|---|---|---|
onoff | int | 开关灯 | 0表示关 1表示开(所有设备onoff均是) |
level | int | 冷暖灯 | 亮度值 |
time | int | 冷暖灯 | 渐变延时 |
level | int | 可调灯 | 亮度值 |
time | int | 可调灯 | 渐变延时 |
level | int | 彩色灯 | 亮度 |
hue | int | 彩色灯 | 色彩 |
saturation | int | 彩色灯 | 饱和度 |
time | int | 彩色灯 | 渐变延时 |
onoff | int | 窗帘 | 开关 |
level | int | 窗帘 | 位置 |
stop | int | 窗帘 | 停止 |
time | int | 窗帘 | 渐变延时 |
temp | int | 温湿度 | 温度 |
hum | int | 温湿度 | 湿度 |
addr | int | 空开 | 空开的路数 |
zonetype | int | 空开 | 空开设备类型属性 |
onoff | int | 空开 | 空开开关 |
onoff | int | SOB门锁 | |
zonetype | int | SOB门锁 | 门锁的类型副标识 |
/**
读取设备历史记录
@param deviceID 设备ID
@param gatewayID 网关标识
@param start 记录起始条数,默认0开始
@param cnt 一次获取的条数
*/
- (void)getDeviceRecordsWithDeviceID:(NSInteger )deviceID gatewayID:(NSString *)gatewayID start:(NSInteger )start cnt:(NSInteger )cnt callBack:(success)success failer:(failer)failer;
参数 | 类别 | 说明 | 备注 |
---|---|---|---|
message | string | 消息记录 | |
gateway_id | string | 网关ID | |
device_id | int | 设备ID | |
device_type | string | 设备类型 | |
stamp | int | 时间戳 | |
index | int | 索引 |
/**
获取账号下所有没有加入撤布防组的红外门磁设备
*/
- (void)getUnbindProtectionDevicesCallBack:(success)success failer:(failer)failer;
参数 | 类别 | 说明 | 备注 |
---|
/**
添加新的撤布防组
@param groupName 组名
@param devices 安防设备数组 eg: @[@{@"gateway":xxxx,@"id":11,@"zonetype":11},...]
其中gateway-网关标识 id-设备ID zonetype-设备zonetype
*/
- (void)addProtectionGroupWithName:(NSString *)groupName devices:(NSArray <NSDictionary *>*)devices callBack:(success)success failer:(failer)failer;
/**
获取账号下所有撤布防组设备
*/
- (void)getAllInProtectionDevicesCallBack:(success)success failer:(failer)failer;
/**
撤布防组的控制(撤防/布防)
@param groupID 撤布防组ID
@param status 撤防/布防 (1/0)
*/
- (void)removalOrProtectionWithGroupID:(NSInteger )groupID status:(NSInteger )status callBack:(success)success failer:(failer)failer;
/**
删除撤布防分组
@param groupID 撤布防分组组ID
*/
- (void)deleteProtectionGroup:(NSInteger )groupID callBack:(success)success failer:(failer)failer;
修改撤布防分组
@param groupName 撤布防分组名
@param groupID 撤布防分组ID
@param devices 分组下的设备
*/
- (void)editProtectionGroup:(NSString *)groupName groupID:(NSInteger )groupID devices:(NSArray <NSDictionary *>*)devices callBack:(success)success failer:(failer)failer;
/**
曼顿空开读取实时参数
@param gateWay 网关ID
@param device_id 设备ID
*/
- (void)mandun_ammeterInformationGateWay:(NSString*)gateWay device_id:(NSInteger )device_id callBack:(success)success failer:(failer)failer;
/**
曼顿空开电量统计信息
@param gateWay 网关ID
@param device_id 设备ID
*/
- (void)mandun_ammeterStatisticsInformation:(NSString*)gateWay device_id:(NSInteger )device_id callBack:(success)success failer:(failer)failer;
/**
曼顿空开设置配置参数
@param devid 设备ID
@param gwid 网关ID
@param name 设备名称
@param addr 曼顿路数
@param voltage_min 最小电压
@param voltage_max 最大电压
@param current_max 当前电压
@param power_max 功率
*/
- (void)mandun_ammeterConfigurationParametersDevid:(NSInteger )devid gwid:(NSString *)gwid name:(NSString *)name addr:(NSInteger)addr voltage_min:(NSInteger)voltage_min voltage_max:(NSInteger)voltage_max current_max:(NSInteger)current_max power_max:(NSInteger )power_max callBack:(success)success failer:(failer)failer;
/**
曼顿空开自动检测
@param devid 设备ID
@param gwid 网关ID
@param mode 检测模式
@param time 时间间隔
*/
- (void)mandun_ammeterConfigurationParametersDevid:(NSInteger )devid gwid:(NSString *)gwid mode:(NSInteger )mode time:(NSInteger)time callBack:(success)success failer:(failer)failer;
/**
曼顿空开读取配置参数
@param devid 设备ID
@param gwid 网关ID
*/
- (void)mandun_readAmmeterConfigurationParameterDevid:(NSInteger )devid gwid:(NSString *)gwid callBack:(success)success failer:(failer)failer;
/**
手动检测曼顿设备
@param devid 设备ID
@param gwid 网关ID
*/
- (void)mandun_manualTestDevid:(NSInteger )devid gwid:(NSString *)gwid callBack:(success)success failer:(failer)failer;
/**
自动检测曼顿设备
@param devid 设备ID
@param gwid 网关ID
*/
- (void)mandun_autotamicTestDevid:(NSInteger )devid gwid:(NSString *)gwid callBack:(success)success failer:(failer)failer;
/**
转换推送信息
@param info 由极光推送的设备报警信息
@return 转换后信息
*/
- (NSDictionary *)convertPushInformation:(NSDictionary *)info;
参数 | 类别 | 说明 | 备注 |
---|---|---|---|
alarm_message | string | 报警推送消息 | |
gateway_id | string | 网关ID | |
device_id | int | 设备ID | |
time | string | 时间 | |
stamp | int | 时间戳 | |
device_name | string | 设备名称 |
/**
获取场景列表
*/
- (void)getSceneListCallBack:(success)success failer:(failer)failer;
/**
添加场景
@param name 场景名称
@param conditions 启动条件
@param results 结果条件
@param recResults 执行条件
*/
- (void)addSceneWithName:(NSString *)name
conditions:(NSDictionary *)conditions
results:(NSDictionary *)results
recResults:(NSDictionary *)recResults
callBack:(success)success
failer:(failer)failer;
参数 | 类别 | 说明 | 备注 |
---|---|---|---|
devices | array | 设备列表 | |
modes | array | 场景列表 | |
type | int | 1定时2延时 | |
modes | array | 其他场景 |
条件字典实例:
{
"devices":[{
"id":1,
"gateway":"xxxxxxx",
"command":{"onoff":1}
},。。。],
"modes":[{"id":1},{"id":2}]
"time":{"type":1,"value":xxx},
}
/**
删除场景
@param sceneid 场景ID
*/
- (void)deleteSceneWithID:(NSInteger )sceneid callBack:(success)success failer:(failer)failer;
/**
控制场景
@param sceneid 场景ID
@param onoff 开关
*/
- (void)controlSceneWithID:(NSInteger )sceneid onoff:(NSInteger )onoff callBack:(success)success failer:(failer)failer;
/**
修改场景
@param name 场景名称
@param sceneid 场景ID
@param conditions 启动条件
@param results 结束条件
@param recResults 执行条件
*/
- (void)editSceneWithName:(NSString *)name
sceneid:(NSInteger )sceneid
conditions:(NSDictionary *)conditions
results:(NSDictionary *)results
recResults:(NSDictionary *)recResults
callBack:(success)success
failer:(failer)failer;
返回参数 | 类别 | 值 | 说明 | 备注 |
---|---|---|---|---|
device_only_type | string | unknown | 未知设备 | |
device_only_type | string | DoorSensor | 门磁 | |
device_only_type | string | FireSensor | 烟雾报警器 | |
device_only_type | string | WaterSensor | 水浸探测器 | |
device_only_type | string | GasSensor | 可燃气体探测器 | |
device_only_type | string | IRSensor | 人体红外 | |
device_only_type | string | SOS | SOS | |
device_only_type | string | Switch | 墙面开关 | |
device_only_type | string | LightSwitch | 开关灯 | |
device_only_type | string | DimmableLight | 可调灯 | |
device_only_type | string | LevelControlSwitch | 调光开关 | |
device_only_type | string | MobileMeterSocket | 移动计量插座 | |
device_only_type | string | OutLet | 普通插座 | |
device_only_type | string | Repeater | 中继器 | |
device_only_type | string | MobileOutlet | 移动插座 | |
device_only_type | string | TouchPanel | 触摸面板 | |
device_only_type | string | AudibleAndVisualAlarm | 声光报警器 | |
device_only_type | string | CurtainMotor | 窗帘电机 | |
device_only_type | string | ColorDimmableLight | 彩色灯 | |
device_only_type | string | HumiturePM2.5 | 温湿度PM2.5 | |
device_only_type | string | PM2.5 | PM2.5 | |
device_only_type | string | IRRemoteController | 红外遥控器 | |
device_only_type | string | CurtainSwitch | 一路窗帘开关 | 窗帘面板 |
device_only_type | string | IRTransponder | 红外转发器 | |
device_only_type | string | AutomaticDoorController | 自动门控制器 | |
device_only_type | string | MusicPlayer | 背景音乐 | |
device_only_type | string | IntelligentOpen | 智能空开(曼顿) | |
device_only_type | string | CarbonMonoxideDetector | 一氧化碳探测器 | |
device_only_type | string | SOBDoorLock | SOB门锁 | |
device_only_type | string | EGGDoorLock | 蛋贝门锁 | |
device_only_type | string | UDSDoorLock | 友迪斯门锁 | |
device_only_type | string | ThirdPartyDoorLock | 所有的第三方门锁统一类型(用于报警消息统一) |
状态码 | 说明 |
---|---|
0x0 | 成功 |
0x1 | 密码错误 |
0x2 | 用户不存在 |
0x3 | SESSION过期 |
0x4 | 用户已存在 |
0x5 | 密码太短 |
0x6 | 用户名不能为空 |
0x7 | 头信息错误 |
0x8 | Body信息错误 |
0x9 | 无授权 |
0xA | 绑定错误 |
0xB | 没有手机号 |
0xC | 验证码不符合 |
0xD | 验证码过期 |
0xF | 超过绑定网关数量上限 |
0x11 | 没有用户信息 |
0x12 | Session不符合 |
0x13 | 旧密码错误 |
0x14 | 用户已在别处登陆 |
0x15 | 消息ukey不匹配 |
0x12C | 组已存在 |
0x12D | 组不存在 |
0x12E | 组控制参数错误 |
0x1F4 | 设备不存在 |
0x1F5 | 设备读取异常 |
0x1F6 | 设备离线 |
0x1F7 | 设备控制超时 |
0x1F8 | 设备电量低 |
0x1F9 | 设备控制参数错误 |
0x1FA | 未发现新设备 |
0x1FB | 设备已存在 |
0x1FC | PM2.5不存在 |
0x1FD | 温度传感器不存在 |
0x1FE | 烟雾探测不存在 |
0x1FF | 可燃气体不存在 |
0x200 | 水浸不存在 |
0x201 | 门磁不存在 |
0x202 | 红外不存在 |
0x203 | SOS不存在 |
0x204 | 设备已添加 |
0x3e8 | 场景已存在 |
0x3e9 | 场景数量过多 |
0x3eA | 场景不存在 |
0x3eB | 场景参数错误 |
0x3eC | 场景时间条件冲突 |
0x3eD | 场景非法 |
0x7D0 | 不支持的命令 |
0x7D1 | 空对象 |
0x7D2 | 网关挂起,正在停止中 |
0x7D3 | 网关正在启动 |
0x7D5 | 验证码的session超时 |
0x7D6 | 修改分组错误 |
0x7D7 | 网关离线 |
0x7D8 | 没有网关 |
0x7D9 | 网关名已存在 |
0x7DA | 设备名已存在 |
0x7DB | 不支持的json协议版本 |
0x7DC | 不支持的消息号 |
0x7DD | APP与网关版本不一致 |
0x7DE | 已经绑定过该网关 |
-0x1 | 未知错误 |
65535 | 未知错误 |