房间设备管理

更新时间:2024-08-28 01:53:19下载pdf

概述

获取房间下的设备以及场景数据,场景绑定房间信息,可以查看场景相关功能接口。设备以及场景数据使用 RoomInfoBeanRoomInfoBean 的属性字段如下:

属性 类型 描述
ruleList List 房间下的场景列表
deviceSortList List 房间下设备列表信息

SceneInRoom 的属性如下:

属性 类型 描述
ruleId String 场景 ID
ruleName int 场景名称
background String 背景颜色,例如 #ffffff
icon String 场景图标

DeviceOrGroupInRoom 的属性如下:

属性 类型 描述
bizId String 设备和群组 ID
bizType int 类型
  • 设备:BizParentTypeEnum.DEVICE
  • 群组:BizParentTypeEnum.GROUP
displayOrder int 排序信息

这部分接口在 HomeSDK,通过 PluginManager.service(IThingHomePlugin::class.java).newHomeInstance(homeId) 获取接口方法。

获取房间下的设备场景数据

接口说明

 void queryRoomDevSceneList(long roomId, IThingResultCallback<RoomInfoBean> callback);

参数说明

参数 说明
roomId 房间 ID
callback 成功回调

调用示例

    val homePlugin =  PluginManager.service(IThingHomePlugin::class.java)

    homePlugin.newHomeInstance(homeId).queryRoomDevSceneList(id,object :
            IThingResultCallback<RoomInfoBean>{
            override fun onSuccess(result: RoomInfoBean?) {

            }
            override fun onError(errorCode: String?, errorMessage: String?) {

            }
        })

批量修改房间与设备、群组的关系

对房间中的设备和群组排序,以及移动设备或群组(增加或删除设备和群组)。传入排序后的房间 ID,以及将要设置的设备和群组信息,设置成功调用 callback 回调。

接口说明

void moveRoomDevGroupList(long roomId,List<DeviceInRoomBean> devicesInRoom,IFamilyDataCallback<Boolean> callback);

参数说明

参数 说明
roomId 房间 ID
devicesInRoom 设备或群组列表
callback 回调

调用示例

var rooId = 0L //0L...
        var room:TRoomBean? = null//   getRoomList()[0]...
        var devinRoomsList = room?.ids

        devinRoomsList?.sortedBy { it.id } //sort
        devinRoomsList?.removeAt(0)//remove
        //add
        devinRoomsList?.add(DeviceInRoomBean().apply {
            id = "devid"
            type = BizParentTypeEnum.DEVICE.getType()
        })
        devinRoomsList?.add(DeviceInRoomBean().apply {
            id = "groupid"
            type = BizParentTypeEnum.GROUP.getType()
        })
        FamilyManagerCoreKit.getRoomUseCase().moveRoomDevGroupList(rooId, devinRoomsList , object :IFamilyDataCallback<Boolean>{
            override fun onSuccess(result: Boolean?) {

            }

            override fun onError(errorCode: String?, errorMessage: String?) {

            }
        })

添加设备到房间

添加单个已配网设备到房间中,添加成功调用 callback 回调。

接口说明

void addDeviceInRoom(long roomId,String devId,
IFamilyDataCallback<Boolean> callback) ;

参数说明

参数 说明
deviceId 将要添加到房间中的设备 ID
roomId 房间 ID
callback 回调

调用示例

FamilyManagerCoreKit.getRoomUseCase().addDeviceInRoom(homeId, devId , object :IFamilyDataCallback<Boolean>{
            override fun onSuccess(result: Boolean?) {

            }

            override fun onError(errorCode: String?, errorMessage: String?) {

            }
   })

从房间中移除设备

从房间中移除单个设备,但是设备还在当前家庭下没有被删除,只是被移除当前房间。移除成功调用 callback 回调。

接口说明

void removeDeviceFromRoom(long roomId,String devId,IFamilyDataCallback<Boolean> callback) ;

参数说明

参数 说明
devId 将要从房间中移除的设备 ID
roomId 房间 ID
callback 回调

调用示例

FamilyManagerCoreKit.getRoomUseCase().removeDeviceFromRoom(homeId, devId , object :IFamilyDataCallback<Boolean>{
        override fun onSuccess(result: Boolean?) {

        }

        override fun onError(errorCode: String?, errorMessage: String?) {

        }
   })

添加群组到房间

添加群组到房间中,添加成功调用 success 回调。

接口说明

void addGroupInRoom(long roomId,long gId,IFamilyDataCallback<Boolean> callback) ;

参数说明

参数 说明
gId 将要添加到房间中的群组 ID
roomId 房间 ID
callback 回调

调用示例

FamilyManagerCoreKit.getRoomUseCase().addGroupInRoom(homeId, gid , object :IFamilyDataCallback<Boolean>{
        override fun onSuccess(result: Boolean?) {

        }

        override fun onError(errorCode: String?, errorMessage: String?) {

        }
   })

从房间中移除群组

从房间中移除群组,移除成功调用 success 回调。请注意,群组还在当前家庭下没有被移除,只是从当前房间移除。

接口说明

void removeGroupFromRoom(long roomId, long gId, IFamilyDataCallback<Boolean> callback) ;

参数说明

参数 说明
gId 将要从房间中移除的群组 ID
roomId 房间 ID
callback 成功回调

调用示例

FamilyManagerCoreKit.getRoomUseCase().removeGroupFromRoom(homeId, gId , object :IFamilyDataCallback<Boolean>{
        override fun onSuccess(result: Boolean?) {

        }

        override fun onError(errorCode: String?, errorMessage: String?) {

        }
   })