主要提供设备完成配网后的相关操作包含设备状态变化监听设备重命名设备固件升级设备移除设备恢复出厂设置等操作 进行设备操作之前确保已经成功 获取家庭下设备群组 功能说明 相关类: 类名 说明 ThingSmartDevice ThingSmartDeviceModel 设备数据模型 ThingSmartDeviceModel 数据模型: 属性 类型 说明 devId NSString 设备唯一 ID name NSString 设备名称 iconUrl NSString 设备图标 URL isOnline Boolean 设备在线状态此状态包含 Wi-Fi局域网或蓝牙在线状态只要其中任意一个网络在线即为在线 isCloudOnline Boolean 设备 Wi-Fi 在线状态 isLocalOnline Boolean 设备局域网在线状态 isShare Boolean 是否为分享设备 dps NSDictionary 设备功能点数据 dpCodes NSDictionary 设备功能点数据表现为键值code-value形式 schemaArray NSArray 设备 DP 规则信息 productId NSString 设备所对应的产品 ID capability NSUInteger 设备产品能力值 deviceType ThingSmartDeviceModelType 设备类型 supportGroup Boolean 是否支持创建群组 gwType NSString v 代表虚拟设备空代表真实设备 pv NSString 设备协议版本Wi-Fi 协议版本或蓝牙协议版本 lpv NSString 设备局域网协议版本默认为空该字段在设备局域网连接成功后才会有值 latitude NSString 纬度 longitude NSString 经度 localKey NSString 设备通信使用的 key uuid NSString 设备 UUID homeId LongLong 设备所在家庭 ID roomId LongLong 设备所在房间 ID upgrading Boolean 是否在升级中 timezoneId NSString 设备时区 nodeId NSString 设备短地址用于区分网关下子设备的唯一地址非子设备类型值为空 parentId NSString 父设备上一级ID非子设备类型值为空子设备用于寻找对应的网关设备 ID蓝牙 Mesh 子设备为 Mesh ID 或对应的网关设备 ID isMeshBleOnline Boolean 设备蓝牙 Mesh 本地在线状态 devKey NSString 标准蓝牙 Mesh 设备蓝牙通信 key standard Boolean 是否为标准化产品设备如果为标准设备可以使用标准设备控制功能 standSchemaModel ThingSmartStandSchemaModel 设备标准 DP 规则信息 activeTime NSTimeInterval 激活时间 homeDisplayOrder NSInteger 设备序号家庭查询设备列表时可通过该属性进行排序 sharedTime LongLong 分享时间 accessType NSInteger 区分设备的接入方式: 0:涂鸦 DP 接入 1:Matter 协议接入 2:TuyaLink 接入 thingModel ThingSmartThingModel 设备物模型当 accessType 取值为 2 时需要用到在需要使用之前通过 - getThingModelWithSuccess:failure: 或 getThingModelWithProductId:productVersion:success:failure: 查询设备物模型 category NSString 设备品类缩写例如 dj 表示灯具详见 类目 Code 列表 初始化设备 根据设备 ID初始化设备控制类 您需要通过 ThingSmartHome 初始化一个 home 实例然后调用 getHomeDetailWithSuccess:failure: 查询家庭详情只有同步过家庭的详情后初始化设备才能成功 错误的设备 ID 可能会导致初始化失败此时设备的实例返回 nil 接口说明 / 查询设备实例如果当前用户没有该设备将会返回 nil @param devId Device ID @return instance / nullable instancetypedeviceWithDeviceId:NSString devId 参数说明 参数 说明 devId 设备 ID 示例代码 ThingSmartDevice device [ThingSmartDevice deviceWithDeviceId:devId] device.delegate self 设备代理监听 实现 ThingSmartDeviceDelegate 代理协议后您可以在设备状态更变的回调中进行处理刷新 App 设备控制面板的 UI 示例代码 Objective-C: - voidinitDevice { self.device [ThingSmartDevice deviceWithDeviceId:@"your_device_id"] self.device.delegate self } #pragma mark - ThingSmartDeviceDelegate - voiddevice:ThingSmartDevice device dpsUpdate:NSDictionary dps { // 设备的 DP 状态发生变化刷新界面 UI } - voiddeviceInfoUpdate:ThingSmartDevice device { //当前设备信息更新例如设备名称修改设备在线离线状态等 } - voiddeviceRemoved:ThingSmartDevice device { //当前设备被移除 } - voiddevice:ThingSmartDevice device signal:NSString signal { // Wi-Fi 信号强度 } - voiddevice:ThingSmartDevice device otaUpdateStatusChanged:ThingSmartFirmwareUpgradeStatusModel statusModel { // 固件升级状态和升级进度回调 // 推荐在通过 -startFirmwareUpgrade: 升级时使用 } - voiddevice:ThingSmartDevice device firmwareUpgradeProgress:NSIntegertype progress:doubleprogress { // 固件升级进度 // 即将废弃建议在通过 -upgradeFirmware:success:failure: 升级时使用 } - voiddevice:ThingSmartDevice device firmwareUpgradeStatusModel:ThingSmartFirmwareUpgradeStatusModel upgradeStatusModel { // 设备升级状态的回调 // 即将废弃建议在通过 -upgradeFirmware:success:failure: 升级时使用 } Swift: func initDevice { device ThingSmartDevicedeviceId: "your_device_id" device.delegate self } // MARK: - ThingSmartDeviceDelegate func device_ device: ThingSmartDevice dpsUpdate dps: [AnyHashable : Any] { // 设备的 DP 状态发生变化刷新界面 UI } func deviceInfoUpdate_ device: ThingSmartDevice { //当前设备信息更新例如修改设备名称设备在线离线状态等 } func deviceRemoved_ device: ThingSmartDevice { //当前设备被移除 } func device_ device: ThingSmartDevice signal: String { // Wi-Fi 信号强度 } func device_ device: ThingSmartDevice otaUpdateStatusChanged statusModel: ThingSmartFirmwareUpgradeStatusModel { // 普通固件PID 版本升级固件的升级状态和升级进度回调包含单点和蓝牙 Mesh 子设备等 // 推荐在通过 -startFirmwareUpgrade: 升级时使用 // 关于 OTA 的可前往固件升级章节查看 } func device_ device: ThingSmartDevice firmwareUpgradeProgress type: Int progress: Double { // 普通固件的升级进度不包含单点和蓝牙 Mesh 子设备 // 即将废弃建议在通过 -upgradeFirmware:success:failure: 升级时使用 } func device_ device: ThingSmartDevice firmwareUpgradeStatusModel upgradeStatusModel: ThingSmartFirmwareUpgradeStatusModel { // 普通固件的升级状态不包含单点和蓝牙 Mesh 子设备 // 即将废弃建议在通过 -upgradeFirmware:success:failure: 升级时使用 } 查询设备信息 查询单个 DP 数据查询后会通过代理 - voiddevice:ThingSmartDevice device dpsUpdate:NSDictionary dps 回调数据 该接口主要是针对不主动发送数据的设备 DP例如倒计时信息查询常规查询 DP 数据值时可通过 ThingSmartDeviceModel.dps 获取 下发格式详见示例 示例代码 Objective-C: - voidqueryDP { // self.device [ThingSmartDevice deviceWithDeviceId:@"your_device_id"] // 查询 dpId 是 "1" 的数据 NSDictionary queryDpInfo @{ @"1": [NSNull null] } [self.device publishDps:queryDpInfo mode:ThingDevicePublishModeAuto success:{ NSLog@"query dp success" } failure:NSError error { NSLog@"query dp failure: @" error }] } Swift: func queryDP { // self.device [ThingSmartDevice deviceWithDeviceId:@"your_device_id"] // 查询 dpId 是 "1" 的数据 let queryDpInfo [ "1": NSNull ] device.publishDpsqueryDpInfo mode: ThingDevicePublishModeAuto success: { print"query dp success" } failure: { error in if let error error { print"query dp failure: error" } } } 修改设备名称 接口说明 - voidupdateName:NSString name success:nullable ThingSuccessHandlersuccess failure:nullable ThingFailureErrorfailure 参数说明 参数 说明 name 设备名称 success 成功回调 failure 失败回调 示例代码 Objective-C: - voidmodifyDeviceName:NSString mame { // self.device [ThingSmartDevice deviceWithDeviceId:@"your_device_id"] [self.device updateName:name success:{ NSLog@"updateName success" } failure:NSError error { NSLog@"updateName failure: @" error }] } Swift: func modifyDeviceName_ name: String { device.updateNamename success: { print"updateName success" } failure: { error in if let e error { print"updateName failure: e" } } } 移除设备 设备被移除后会重新进入待配网状态Wi-Fi 设备默认进入快连模式 接口说明 - voidremove:nullable ThingSuccessHandlersuccess failure:nullable ThingFailureErrorfailure 参数说明 参数 说明 success 成功回调 failure 失败回调 示例代码 Objective-C: - voidremoveDevice { // self.device [ThingSmartDevice deviceWithDeviceId:@"your_device_id"] [self.device remove:{ NSLog@"remove success" } failure:NSError error { NSLog@"remove failure: @" error }] } Swift: func removeDevice { device.remove{ print"remove success" } failure: { error in if let e error { print"remove failure: e" } } } 恢复出厂设置 设备恢复出厂设置后会重新进入待配网状态Wi-Fi 设备默认进入快连模式设备的相关数据会被清除掉 接口说明 - voidresetFactory:nullable ThingSuccessHandlersuccess failure:nullable ThingFailureErrorfailure 参数说明 参数 说明 success 成功回调 failure 失败回调 示例代码 Objective-C: - voidremoveDevice { // self.device [ThingSmartDevice deviceWithDeviceId:@"your_device_id"] [self.device resetFactory:{ NSLog@"reset success" } failure:NSError error { NSLog@"reset failure: @" error }] } Swift: func removeDevice { device.resetFactory{ print"reset success" } failure: { error in if let e error { print"reset failure: e" } } } 查询 Wi-Fi 信号强度 查询设备 Wi-Fi 信号后会通过 ThingSmartDeviceDelegate 的 device:signal: 方法回调 接口说明 - voidgetWifiSignalStrengthWithSuccess:nullable ThingSuccessHandlersuccess failure:nullable ThingFailureErrorfailure 参数说明 参数 说明 success 发送查询 Wi-Fi 强度成功回调 failure 失败回调 示例代码 Objective-C: - voidgetWifiSignalStrength { // self.device [ThingSmartDevice deviceWithDeviceId:@"your_device_id"] // self.device.delegate self [self.device getWifiSignalStrengthWithSuccess:{ NSLog@"get wifi signal strength success" } failure:NSError error { NSLog@"get wifi signal strength failure: @" error }] } #pragma mark - ThingSmartDeviceDelegate - voiddevice:ThingSmartDevice device signal:NSString signal { NSLog@" signal : @" signal } Swift: func getWifiSignalStrength { self.device.getWifiSignalStrengthsuccess: { print"get wifi signal strength success" } failure: { error in if let e error { print"get wifi signal strength failure: e" } } } // MARK: - ThingSmartDeviceDelegate func device_ device: ThingSmartDevice signal: String { print" signal : signal" } 查询网关子设备列表 如果是网关设备可以查询网关下子设备的列表 接口说明 - voidgetSubDeviceListFromCloudWithSuccess:nullable void NSArray <ThingSmartDeviceModel > subDeviceListsuccess failure:nullable ThingFailureErrorfailure 参数说明 参数 说明 success 成功回调网关下的子设备信息 failure 失败回调 示例代码 Objective-C: - voidgetSubDeviceList { // self.device [ThingSmartDevice deviceWithDeviceId:@"your_device_id"] [self.device getSubDeviceListFromCloudWithSuccess:NSArray<ThingSmartDeviceModel > subDeviceList { NSLog@"get sub device list success" } failure:NSError error { NSLog@"get sub device list failure: @" error }] } Swift: func getSubDeviceList { device.getSubDeviceListFromCloudsuccess: { subDeviceList in print"get sub device list success" } failure: { error in if let e error { print"get sub device list failure: e" } } }
来自 : Smart App SDK/商用照明 App SDK/商用照明 App SDK iOS 版/设备管理