1. 家庭关系管理

HomeBean 字段信息

字段 类型 描述
name String 家庭名称
lon double 经度
lat double 纬度
geoName String 家庭地理位置名称
homeId long 家庭 ID
admin boolean 管理员身份
rooms List<RoomBean> 所有房间列表
deviceList List<DeviceBean> 所有设备列表
groupList List<GroupBean> 所有群组
meshList List<BlueMeshBean> 网关设备
sharedDeviceList List<DeviceBean> 收到的共享设备
sharedGroupList List<GroupBean> 收到的共享群组
homeStatus int 家庭状态(1:等待接受 2:接受 3:拒绝)

1.1. 获取家庭列表

接口说明

void queryHomeList(ITuyaGetHomeListCallback callback)

参数说明

参数 说明
callback 结果回调

示例代码

TuyaHomeSdk.getHomeManagerInstance().queryHomeList(new ITuyaGetHomeListCallback() {
        @Override
        public void onSuccess(List<HomeBean> homeBeans) {
            // do something
        }
        @Override
        public void onError(String errorCode, String error) {
            // do something
        }
    });

1.2. 添加家庭

接口说明

void createHome(String name, double lon, double lat, String geoName, List<String> rooms, ITuyaHomeResultCallback callback)

参数说明

参数 说明
name 家庭名称
lon 经度
lat 纬度
geoName 家庭地理位置名称
rooms 房间列表
callback 结果回调

示例代码

TuyaHomeSdk.getHomeManagerInstance().createHome(name, lon, lat, geoName, rooms, new ITuyaHomeResultCallback() {
        @Override
        public void onSuccess(HomeBean bean) {
            // do something
        }
        @Override
        public void onError(String errorCode, String errorMsg) {
            // do something
        }
    });

1.3. 家庭列表信息变化回调

1.3.1. 新增一个家庭回调

有:家庭的增加、删除、信息变更、分享列表的变更和服务器连接成功的监听

接口说明

void registerTuyaHomeChangeListener(ITuyaHomeChangeListener listener)

参数说明

参数 说明
listener 监听器

示例代码

// 定义监听
ITuyaHomeChangeListener listener = new ITuyaHomeChangeListener() {
        @Override
        public void onHomeInvite(long homeId, String homeName) {
            // do something
        }
        @Override
        public void onHomeRemoved(long homeId) {
            // do something
        }
        @Override
        public void onHomeInfoChanged(long homeId) {
            // do something
        }
        @Override
        public void onSharedDeviceList(List<DeviceBean> sharedDeviceList) {
            // do something
        }
        @Override
        public void onSharedGroupList(List<GroupBean> sharedGroupList) {
            // do something
        }
        @Override
        public void onServerConnectSuccess() {
            // do something
        }
        @Override
        public void onHomeAdded(long homeId) {
            // do something
        }
    };
// 注册监听
TuyaHomeSdk.getHomeManagerInstance().registerTuyaHomeChangeListener(listener);

1.3.2. 删除一个家庭回调

接口说明

void unRegisterTuyaHomeChangeListener(ITuyaHomeChangeListener listener)

参数说明

参数 说明
listener 监听器

示例代码

// 定义监听
ITuyaHomeChangeListener listener = new ITuyaHomeChangeListener() {
        @Override
        public void onHomeInvite(long homeId, String homeName) {
            // do something
        }
        @Override
        public void onHomeRemoved(long homeId) {
            // do something
        }
        @Override
        public void onHomeInfoChanged(long homeId) {
            // do something
        }
        @Override
        public void onSharedDeviceList(List<DeviceBean> sharedDeviceList) {
            // do something
        }
        @Override
        public void onSharedGroupList(List<GroupBean> sharedGroupList) {
            // do something
        }
        @Override
        public void onServerConnectSuccess() {
            // do something
        }
        @Override
        public void onHomeAdded(long homeId) {
            // do something
        }
    };
// 在某个地方注册监听
TuyaHomeSdk.getHomeManagerInstance().registerTuyaHomeChangeListener(listener);
// ...
// 取消注册监听
TuyaHomeSdk.getHomeManagerInstance().unRegisterTuyaHomeChangeListener(listener);

1.3.3. MQTT 服务连接成功回调

接口说明

void onServerConnectSuccess()

示例代码

// 定义监听
ITuyaHomeChangeListener listener = new ITuyaHomeChangeListener() {
        @Override
        public void onHomeInvite(long homeId, String homeName) {
            // do something
        }
        @Override
        public void onHomeRemoved(long homeId) {
            // do something
        }
        @Override
        public void onHomeInfoChanged(long homeId) {
            // do something
        }
        @Override
        public void onSharedDeviceList(List<DeviceBean> sharedDeviceList) {
            // do something
        }
        @Override
        public void onSharedGroupList(List<GroupBean> sharedGroupList) {
            // do something
        }
        @Override
        public void onServerConnectSuccess() {
            // do something
        }
        @Override
        public void onHomeAdded(long homeId) {
            // do something
        }
    };
// 在某个地方注册监听
TuyaHomeSdk.getHomeManagerInstance().registerTuyaHomeChangeListener(listener);
// ...
// 取消注册监听
TuyaHomeSdk.getHomeManagerInstance().unRegisterTuyaHomeChangeListener(listener);

2. 家庭信息管理

2.1. 获取家庭的详细信息

获取家庭下的所有数据,包括设备、群组、房间等

接口说明

void getHomeDetail(ITuyaHomeResultCallback callback)

参数说明

参数 说明
callback 获取结果的回调

示例代码

TuyaHomeSdk.newHomeInstance(10000).getHomeDetail(new ITuyaHomeResultCallback() {
        @Override
        public void onSuccess(HomeBean bean) {
            // do something
        }
        @Override
        public void onError(String errorCode, String errorMsg) {
            // do something
        }
    });

2.2. 修改家庭信息

2.2.1. 新版接口

接口说明

void updateHome(String name, double lon, double lat, String geoName, List rooms, boolean overWriteRoom, IResultCallback callback)

参数说明

参数 说明
name 家庭名称
lon 当前家庭的经度
lat 当前家庭的纬度
geoName 地理位置的地址
rooms 房间信息
overWriteRoom 是否覆盖已有房间
callback 结果回调

示例代码

TuyaHomeSdk.newHomeInstance(10000).updateHome(name, lon, lat, geoName, rooms, overWriteRoom, new IResultCallback() {
        @Override
        public void onError(String code, String error) {
            // do something
        }
        @Override
        public void onSuccess() {
            // do something
        }
    });

2.2.2. 老版接口

接口说明

void updateHome(String name, double lon, double lat, String geoName, IResultCallback callback)

参数说明

参数 说明
name 家庭名称
lon 当前家庭的经度
lat 当前家庭的纬度
geoName 地理位置的地址
callback 结果回调

示例代码

TuyaHomeSdk.newHomeInstance(10000).updateHome(name, lon, lat, geoName, new IResultCallback() {
        @Override
        public void onSuccess() {
            // do something
        }
        @Override
        public void onError(String code, String error) {
            // do something
        }
    });

2.3. 解散家庭

接口说明

void dismissHome(IResultCallback callback)

参数说明

参数 说明
callback 结果回调

示例代码

TuyaHomeSdk.newHomeInstance(10000).dismissHome(new IResultCallback() {
        @Override
        public void onSuccess() {
            // do something
        }
        @Override
        public void onError(String code, String error) {
            // do something
        }
    });

2.4. 新增房间

接口说明

void addRoom(String name, ITuyaRoomResultCallback callback)

参数说明

参数 说明
name 房间名称
callback 结果回调

示例代码

TuyaHomeSdk.newHomeInstance(10000).addRoom("房间名称", new ITuyaRoomResultCallback() {
        @Override
        public void onSuccess(RoomBean bean) {
            // do something
        }
        @Override
        public void onError(String errorCode, String errorMsg) {
            // do something
        }
    });

2.5. 删除房间

接口说明

void removeRoom(long roomId, IResultCallback callback)

参数说明

参数 说明
roomId 房间 ID
callback 结果回调

示例代码

TuyaHomeSdk.newHomeInstance(10000).removeRoom(roomId, new IResultCallback() {
        @Override
        public void onSuccess() {
            // do something
        }
        @Override
        public void onError(String code, String error) {
            // do something
        }
    });

2.6. 房间排序

接口说明

void sortRoom(List<Long> idList, IResultCallback callback)

参数说明

参数 说明
idList 房间 ID 列表
callback 结果回调

示例代码

TuyaHomeSdk.newHomeInstance(10000).sortRoom(idList, new IResultCallback() {
        @Override
        public void onSuccess() {
            // do something
        }
        @Override
        public void onError(String code, String error) {
            // do something
        }
    });

3. 家庭成员管理

3.1. 添加家庭成员

拥有者可以添加管理员及以下角色,管理员仅仅可以添加普通成员及以下角色

接口说明

MemberWrapperBean 对象中的 autoAccept 字段用于控制是否需要受邀者同意,若为 false 则需要受邀者调用 processInvitation() 方法接受或者同意邀请后才能加入家庭。

void addMember(MemberWrapperBean memberWrapperBean, ITuyaDataCallback<MemberBean> callback)

参数说明

参数 说明
memberWrapperBean 成员信息

MemberWrapperBean数据模型

字段 类型 描述
homeId long 要添加成员的家庭的 id
nickName String 为受邀请者设置的昵称
account String 受邀请账号
countryCode String 受邀请者账号对应国家码
role int 成员角色(查看MemberRole定义类型)
headPic String 为受邀请者设置的头像 nil 时使用受邀请者个人头像
autoAccept boolean 是否需要受邀请者同意接受邀请 true-受邀请账号自动接受该家庭邀请,无需受邀请者确认 false-需要受邀请者同意后才可加入该家庭

示例代码

TuyaHomeSdk.getMemberInstance().addMember(memberWrapperBean, new ITuyaDataCallback<MemberBean>() {
        @Override
        public void onSuccess(MemberBean result) {
            // do something
        }
        @Override
        public void onError(String errorCode, String errorMessage) {
            // do something
        }
    });

3.2. 删除家庭成员

拥有者可以删除管理员及以下角色,管理员仅仅可以删除普通成员及以下角色

接口说明

若成员传入自身 memberId,家庭管理员,普通成员,自定义角色,调用此接口为离开家庭,此时该家庭未解散,设备也不会被重置;拥有者为解散家庭,同时该家庭下所有设备会被重置,效果与上文解散家庭一致。

void removeMember(long memberId, IResultCallback callback)

参数说明

参数 说明
memberId 成员 ID

示例代码

TuyaHomeSdk.getMemberInstance().removeMember(memberId, new IResultCallback() {
        @Override
        public void onSuccess() {
            // do something
        }
        @Override
        public void onError(String code, String error) {
            // do something
        }
    });

3.3. 获取家庭成员列表

接口说明

void queryMemberList(long mHomeId, ITuyaGetMemberListCallback callback)

参数说明

参数 说明
mHomeId 家庭 ID

示例代码

TuyaHomeSdk.getMemberInstance().queryMemberList(mHomeId, new ITuyaGetMemberListCallback() {
        @Override
        public void onSuccess(List<MemberBean> memberBeans) {
            // do something
        }
        @Override
        public void onError(String errorCode, String error) {
            // do something
        }
    });

3.4. 更新成员信息

接口说明

void updateMember(MemberWrapperBean memberWrapperBean, IResultCallback callback)

参数说明

参数 说明
memberWrapperBean 成员信息

示例代码

TuyaHomeSdk.getMemberInstance().updateMember(memberWrapperBean, new IResultCallback() {
        @Override
        public void onSuccess() {
            // do something
        }
        @Override
        public void onError(String code, String error) {
            // do something
        }
    });

3.5. 接受或拒绝家庭邀请

接口说明

void processInvitation(long homeId, boolean action, IResultCallback callBack)

参数说明

参数 说明
homeId 家庭 ID
action 接受/拒绝

示例代码

TuyaHomeSdk.getMemberInstance().processInvitation(homeId, action, new IResultCallback() {
        @Override
        public void onSuccess() {
            // do something
        }
        @Override
        public void onError(String code, String error) {
            // do something
        }
    });

3.6. 对家庭下设备和群组进行排序

接口说明

void sortDevInHome(String homeId, List<DeviceAndGroupInHomeBean> list, IResultCallback callback)

参数说明

参数 说明
homeId 房间 ID
list 房间或者群组列表,这里元素 DeviceAndGroupInHomeBean 包含两个字段。一个是 bizType 表示被排序的对象的类型,比如是群组还是设备,是一个整数类型的枚举,参考 BizParentTypeEnum 对象;另一个是 bizId 表示被排序的对象的 id,比如群组 id 或者设备 id.
callback 结果回调

BizParentTypeEnum 对象的枚举值:

  • LOCATION
  • MESH
  • ROOM
  • GROUP
  • DEVICE

示例代码

List<DeviceAndGroupInHomeBean> list = new ArrayList<>();
List<DeviceBean> deviceList = homeBean.getDeviceList();
List<GroupBean> groupList = homeBean.getGroupList();
for (GroupBean bean : groupList) {
    DeviceAndGroupInHomeBean deviceInRoomBean = new DeviceAndGroupInHomeBean();
    deviceInRoomBean.setBizId(bean.getDevId());
    deviceInRoomBean.setBizType(BizParentTypeEnum.GROUP.getType());
    list.add(deviceInRoomBean);
}
for (DeviceBean bean : deviceList) {
    DeviceAndGroupInHomeBean deviceInRoomBean = new DeviceAndGroupInHomeBean();
    deviceInRoomBean.setBizId(bean.getDevId());
    deviceInRoomBean.setBizType(BizParentTypeEnum.DEVICE.getType());
    list.add();
}
TuyaHomeSdk.newHomeInstance(10000).sortDevInHome(homeId, list, new IResultCallback() {
        @Override
        public void onSuccess() {
            // do something
        }
        @Override
        public void onError(String code, String error) {
            // do something
        }
    });

3.7. 单个家庭信息变化的回调

3.7.1. 注册和注销家庭下面信息变更的监听

接口说明

void unRegisterHomeStatusListener(ITuyaHomeStatusListener listener)

参数说明

参数 说明
listener 监听器

示例代码

// 定义监听
ITuyaHomeStatusListener listener = new ITuyaHomeStatusListener() {
        @Override
        public void onDeviceAdded(String devId) {
            // do something
        }
        @Override
        public void onDeviceRemoved(String devId) {
            // do something
        }
        @Override
        public void onGroupAdded(long groupId) {
            // do something
        }
        @Override
        public void onGroupRemoved(long groupId) {
            // do something
        }
        @Override
        public void onMeshAdded(String meshId) {
            // do something
        }
    };
// 在某个地方注册了监听
TuyaHomeSdk.newHomeInstance(10000).registerHomeStatusListener(listener);
// ...
// 取消注册监听
TuyaHomeSdk.newHomeInstance(10000).unRegisterHomeStatusListener(listener);

4. 房间信息管理

4.1. 更新房间名称

接口说明

void updateRoom(String name, IResultCallback callback)

参数说明

参数 说明
name 新房间名称

示例代码

TuyaHomeSdk.newRoomInstance(10000).updateRoom(name, new IResultCallback() {
        @Override
        public void onSuccess() {
            // do something
        }
        @Override
        public void onError(String code, String error) {
            // do something
        }
    });

4.2. 自定义房间图片

房间可支持自定义 image,成功后可通过 RoomBean.iconUrl 进行获取房间图片地址

接口说明

void updateIcon(File file, IResultCallback callback);

参数说明

参数 说明
file 房间图片
callback 回调

示例代码

TuyaHomeSdk.newRoomInstance(10000).updateIcon(file, new IResultCallback() {
        @Override
        public void onSuccess() {
            // do something
        }
        @Override
        public void onError(String code, String error) {
            // do something
        }
    });

4.3. 添加设备到房间

接口说明

void addDevice(String devId, IResultCallback callback)

参数说明

参数 说明
devId 设备 ID

示例代码

TuyaHomeSdk.newRoomInstance(10000).addDevice(devId, new IResultCallback() {
        @Override
        public void onSuccess() {
            // do something
        }
        @Override
        public void onError(String code, String error) {
            // do something
        }
    });

4.4. 从房间中移除设备

接口说明

void removeDevice(String devId, IResultCallback callback)

参数说明

参数 说明
devId 设备 ID

示例代码

TuyaHomeSdk.newRoomInstance(10000).removeDevice(devId, new IResultCallback() {
        @Override
        public void onSuccess() {
            // do something
        }
        @Override
        public void onError(String code, String error) {
            // do something
        }
    });

4.5. 添加群组到房间

接口说明

void addGroup(long groupId, IResultCallback callback)

参数说明

参数 说明
groupId 群组 ID

示例代码

TuyaHomeSdk.newRoomInstance(10000).addGroup(groupId, new IResultCallback() {
        @Override
        public void onSuccess() {
            // do something
        }
        @Override
        public void onError(String code, String error) {
            // do something
        }
    });

4.6. 从房间中移除群组

接口说明

void removeGroup(Long groupId, IResultCallback resultCallback)

参数说明

参数 说明
groupId 群组 ID

示例代码

TuyaHomeSdk.newRoomInstance(10000).removeGroup(groupId, new IResultCallback() {
        @Override
        public void onSuccess() {
            // do something
        }
        @Override
        public void onError(String code, String error) {
            // do something
        }
    });

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

接口说明

void moveDevGroupListFromRoom(List<DeviceAndGroupInRoomBean> list, IResultCallback callback)

参数说明

参数 说明
list 群组或者设备

示例代码

TuyaHomeSdk.newRoomInstance(10000).moveDevGroupListFromRoom(list, new IResultCallback() {
        @Override
        public void onSuccess() {
            // do something
        }
        @Override
        public void onError(String code, String error) {
            // do something
        }
    });

5. 家庭天气

5.1. 获取家庭天气简要参数

接口说明

该请求返回家庭所在城市的简要天气参数,如天气状况(晴、多云、雨等)、天气图片信息。

void getHomeWeatherSketch(double lon,double lat,IIGetHomeWetherSketchCallBack callback);

参数说明

参数 说明
lon 经度
lat 纬度
callback 回调

WeatherBean 说明

参数 说明
condition 天气情况,比如晴,阴,雨等
temp 温度
iconUrl 天气图标
inIconUrl 天气图标

示例代码

TuyaHomeSdk.newHomeInstance(mHomeId).getHomeWeatherSketch(120.075652,30.306265
  new IIGetHomeWetherSketchCallBack() {
    @Override
    public void onSuccess(WeatherBean result) {
    }
    @Override
    public void onFailure(String errorCode, String errorMsg) {
    }
  });

5.2. 获取家庭天气详细参数

接口说明

获取家庭天气详细参数,如温度、湿度、紫外线指数、空气质量等。

由于天气服务在不同地区的使用的服务不同,不同地区返回的参数有可能不同。

特别的,如果当前家庭账号位置在中国,那么不会返回风速和气压信息。

void getHomeWeatherDetail(int limit, Map<String,Object> unit, IGetHomeWetherCallBack callback);

参数说明

参数 说明
limit 获取的数量
unit 单位
callback 回调

关于单位的更多解释:

tempUnit 摄氏温度:1
华氏温度:2

例如获取摄氏度的时候 unit :

Map<String,Object> units = new HashMap<>();
units.put("tempUnit",1);

示例代码

Map<String,Object> units = new HashMap<>();
units.put("tempUnit",1);

TuyaHomeSdk.newHomeInstance(mHomeId).getHomeWeatherDetail(10, units, new IGetHomeWetherCallBack() {
    @Override
    public void onSuccess(ArrayList<DashBoardBean> result) {

    }

    @Override
    public void onFailure(String errorCode, String errorMsg) {

    }
});

results matching ""

    No results matching ""