房屋管理

更新时间:2022-02-17 06:55:23下载pdf

本文介绍了社区关于房屋信息的获取和管理能力等安卓版接口信息。其中包括创建房屋、查询房屋列表、监听房屋信息变化、查询房屋详细信息、查询房屋天气信息、迁出删除房屋、设置房屋中设备和群组的顺序等。

功能说明

  • 相关类:

    类名 说明
    ITuyaCommunityHouseManager 提供了添加房屋、获取房屋列表以及监听房屋相关的变更的能力。通过 TuyaCommunitySDK.getHouseManagerInstance() 获取
    ITuyaCommunityHouse 提供了获取房屋信息,房屋天气信息,设置房屋中设备和群组的顺序等。通过 TuyaCommunitySDK.newHouseInstance(houseId) 获取
  • TuyaCommunityHouseBean 数据类型:

    属性 类型 说明
    communityId String 小区 ID
    communityName String 小区名称
    houseAddress String 房屋地址
    houseId Long 房屋 ID
    houseName String 房屋名称
    admin Boolean 是否有智家管理权限(包括智家拥有者和管理者)
    auditStatus Integer 房屋审核状态 TuyaCommunityHouseAuditStatus:
    • 0:等待审核
    • 20:审核通过
    • 10:审核驳回
    • 30:房屋迁出
    guestHouse Boolean 是否游客家庭
    userTypeName String 当前用户的成员身份
    memberNum Integer 房屋成员数
    roomUserId String 当前用户的成员 ID
    roomId String 房号 ID
    geoName String 房屋地理位置名称
    longitude Double 经度
    latitude Double 纬度
    dealStatus Integer 加入房屋要求的状态 TuyaCommunityMemberInviteStatus
    • 1:等待接受
    • 2:接受
    • 3:拒绝
    role Integer 房屋成员权限 TuyaCommunityMemberRole
    • -1:自定义成员
    • 0:房屋成员
    • 1:管理员
    • 2:拥有者
    • -999:无效成员,成员会失效
    rooms List<RoomBean> 所有房间列表
    deviceList List<DeviceBean> 所有设备列表
    groupList List<GroupBean> 所有群组
    meshList List<BlueMeshBean> 网关设备
    sharedDeviceList List<DeviceBean> 收到的共享设备
    sharedGroupList List<GroupBean> 收到的共享群组

获取小区列表

添加房屋时,需要先选择小区。

接口说明

void getCommunityList(@Nullable String keyword, double latitude, double longitude, ITuyaCommunityResultCallback<ArrayList<TuyaCommunityListBean>> callback);

参数说明

参数 说明
keyword 小区名称,非必传,用于搜索小区时传入
latitude 维度,非必传,用于显示附近的小区
longitude 经度,非必传,用于显示附近的小区
callback 获取结果的回调
  • TuyaCommunityListBean 数据类型:

    属性 类型 说明
    city String 城市
    hasLocation Boolean 是否含有位置
    list List 小区列表
  • TuyaCommunityBean 数据类型:

    属性 类型 说明
    communityName String 小区名
    communityId String 小区 ID

Java 示例代码

TuyaCommunitySDK.getHouseManagerInstance().getCommunityList(
			keyword, lat, lon, new ITuyaCommunityResultCallback<ArrayList<TuyaCommunityListBean>>() {                    @Override
				public void onSuccess(ArrayList<TuyaCommunityListBean> tuyaCommunityListBeans) {
					// do something
					}
				}

				@Override
				public void onFailure(String s, String s1) {
					// do something
				}
			});

获取房屋空间树列表

添加房屋时,选择小区后,获取小区下空间树的列表,包括楼幢、单元、楼层、房号,根据返回数据中 hasMore 字段判断是否有下级空间。

接口说明

void getCommunityHouseTreeList(String treeId, ITuyaCommunityResultCallback<ArrayList<TuyaCommunityHouseTreeBean>> callback);

参数说明

参数 说明
treeId 空间树 ID,如获取小区下房屋树,传 communityId
callback 获取结果的回调

TuyaCommunityHouseTreeBean 数据类型

属性 类型 说明
spaceTreeName String 小区下层级名,例如 1幢、1单元等
spaceTreeId String 小区下层级 ID,最后一个层级的 spaceTreeId 即为房号 ID
hasMore Boolean 是否含有下一层级

Java 示例代码

    TuyaCommunitySDK.getHouseManagerInstance().getCommunityHouseTreeList(treeId, new ITuyaCommunityResultCallback<ArrayList<TuyaCommunityHouseTreeBean>>() {
            @Override
            public void onSuccess(ArrayList<TuyaCommunityHouseTreeBean> tuyaCommunityHouseTreeBeans) {
                // do something
            }

            @Override
            public void onFailure(String s, String s1) {
                // do something
            }
        });

添加房屋

接口说明

void addHouse(String name, String communityId, String roomId, String userType, @Nullable String expireTime, ITuyaCommunityResultCallback<TuyaCommunityHouseBean> callback);

参数说明

参数 说明
name 房屋的全称,包括小区、楼幢、单元、楼层、房号
roomId 房号 ID,也即房屋选择列表最后一层treeId
userType 成员类型,如业主、家人等,通过 TuyaCommunityMember 类的getMemberTypeList() 获取
expireTime 到期时间,非必传,可以给租客设置到期时间,格式为 yyyyMMdd
callback 获取结果的回调

Java 示例

TuyaCommunitySDK.getHouseManagerInstance().addHouse(name, communityId,
                        roomId, userType, "", new ITuyaCommunityResultCallback<TuyaCommunityHouseBean>() {
                            @Override
                            public void onSuccess(TuyaCommunityHouseBean tuyaCommunityHouseBean) {
                                // do something

                            }

                            @Override
                            public void onFailure(String s, String s1) {
                                // do something
                            }
                        });

获取房屋列表

接口说明

void getHouseList(ITuyaCommunityResultCallback<ArrayList<TuyaCommunityHouseBean>> callback);

参数说明

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

Java 示例

TuyaCommunitySDK.getHouseManagerInstance().getHouseList(new ITuyaCommunityResultCallback<ArrayList<TuyaCommunityHouseBean>>() {
            @Override
            public void onSuccess(ArrayList<TuyaCommunityHouseBean> list) {
                // do something
            }

            @Override
            public void onFailure(String s, String s1) {
                // do something
            }
        });

房屋信息变化监听

房屋信息变化的时机包括房屋添加、删除、审核状态变更、服务器连接成功的监听等。

接口说明

public interface ITuyaHouseChangeListener {
	/**
	* 房屋添加成功houseId
	* 用于多设备数据同步
	*
	* @param houseId
	*/
	void onHouseAdded(long houseId);
houseId	/**
	* 房屋审核状态变更
	* @param houseId    房屋ID
	* @param audit  房屋审核状态:20:审核通过 10:审核驳回 30:房屋迁出
	*/
    void onHouseAuditStatusUpdate(long houseId, @TuyaCommunityHomeAuditStatus int audit);

	/**
	* 房屋删除成功
	* 用于多设备数据同步
	*
	* @param houseId
	*/
	void onHouseRemoved(long houseId);

	/**
	* 分享设备列表变更
	* 用于多设备数据同步
	*
	* @param sharedDeviceList
	*/
	void onSharedDeviceList(List<DeviceBean> sharedDeviceList);

	/**
	* 分享群组列表变更
	* 用于多群组数据同步
	*
	* @param sharedGroupList
    */
    void onSharedGroupList(List<GroupBean> sharedGroupList);

	/**
	* 注册 MQTT 服务连接成功回调
	* 手机连接涂鸦 IoT 云成功,接收到此通知,
	* 本地数据与服务端数据可能会不一致或者无法控制设备,
	* 您可以调用 House 下 getHouseDetail 接口重新初始化数据。
	*/
	void onServerConnectSuccess();
}

新增一个房屋监听

接口说明

void registerTuyaHouseChangeListener(ITuyaHouseChangeListener listener)

参数说明

参数 说明
listener 监听器

删除一个房屋监听

接口说明

void unRegisterTuyaHouseChangeListener(ITuyaHouseChangeListener listener)

参数说明

参数 说明
listener 监听器

Java 示例

// 定义监听
ITuyaHouseChangeListener listener = new ITuyaHouseChangeListener() {
		@Override
		public void onHouseAdded(long houseId) {
			// do something
		}
		@Override
		public void onHouseAuditStatusUpdate(long houseId, int audit) {
			// do something
		}
		@Override
		public void onHouseRemoved(long houseId) {
			// 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
		}
	};
// 注册监听
TuyaCommunitySDK.getHouseManagerInstance().registerTuyaHouseChangeListener(listener);
// ...
// 取消注册监听
TuyaCommunitySDK.getHouseManagerInstance().unRegisterTuyaHouseChangeListener(listener);

查询房屋详细信息

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

接口说明

void getHouseDetail(ITuyaCommunityResultCallback<TuyaCommunityHouseBean> callback)

参数说明

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

Java 示例

TuyaCommunitySDK.newHouseInstance(houseId).getHouseDetail(new ITuyaCommunityResultCallback<TuyaCommunityHouseBean>() {
		@Override
		public void onSuccess(TuyaCommunityHouseBeanonFailure bean) {
			// do something
		}
		@Override
		public void onFailure(String errorCode, String errorMsg) {
			// do something
		}
	});

查询房屋离线的详细信息

获取房屋下的所有离线数据,包括设备、群组、房间等。

接口说明

void getHouseLocalCache(ITuyaHouseResultCallback callback)

参数说明

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

Java 示例

TuyaCommunitySDK.newHouseInstance(houseId).getHouseLocalCache(new ITuyaHouseResultCallback() {
		@Override
		public void onSuccess(HouseBean bean) {
			// do something
		}
		@Override
		public void onFailure(String errorCode, String errorMsg) {
			//sdk cache error do not deal
		}
	});

房屋缓存数据

TuyaCommunityHouseDataManager 提供了缓存数据的访问能力,接口为 TuyaCommunitySDK.getDataInstance()

获取房屋缓存数据前,您应该调用房屋的初始化接口 TuyaCommunitySDK.newHouseInstance("houseId").getHouseDetail() 或者 TuyaCommunitySDK.newHouseInstance("houseId").getHouseLocalCache(),然后 TuyaCommunitySDK.getHouseDataInstance() 接口才会有缓存数据。

获取房屋简单数据

此接口只返回房屋基本信息,包括房屋名称、具体地址、审核状态和房间信息等(不返回设备、群组等列表)。

接口说明

void getHouseInfo(long houseId, ITuyaCommunityResultCallback<TuyaCommunityHouseBean> callback);

参数说明

参数 说明
houseId 房屋ID
callback 获取结果的回调

示例代码

    TuyaCommunitySDK.getHouseManagerInstance().getHouseInfo(houseId, new ITuyaCommunityResultCallback<TuyaCommunityHouseBean>() {
            @Override
            public void onSuccess(TuyaCommunityHouseBean houseBean) {
		// do something
            }

            @Override
            public void onFailure(String s, String s1) {
		// do something
            }
        });

获取房屋审核结果

此接口返回房屋审核结果。

接口说明

void getHouseAuditResult(String communityId, String roomUserId, ITuyaCommunityResultCallback<TuyaCommunityAuditHouseBean> callback);

参数说明

参数 说明
communityId 小区 ID
roomUserId 人房绑定关系 ID
callback 获取结果的回调

示例代码

    TuyaCommunitySDK.getHouseManagerInstance().getHouseAuditResult(communityId, roomUserId, new ITuyaCommunityResultCallback<TuyaCommunityAuditHouseBean>() {
            @Override
            public void onSuccess(TuyaCommunityAuditHouseBean tuyaCommunityAuditHouseBean){
                // do something
            }

            @Override
            public void onFailure(String s, String s1) {
		// do something
            }
        });

修改房屋位置

接口说明

void updateHouseLocation(double lon, double lat,String geoName, ISuccessFailureCallback callback);

参数说明

参数 说明
longitude 经度
latitude 纬度
geoName 房屋地理位置
callback 获取结果的回调

示例代码

    TuyaCommunitySDK.newHouseInstance(item.getHouseId()).updateHouseLocation(lon, lat, new ISuccessFailureCallback() {
                    @Override
                    public void onSuccess() {
			// do something
                    }

                    @Override
                    public void onFailure(String s, String s1) {
			// do something                    }
                });

房屋天气

查询房屋天气简要参数

接口说明

查询房屋所在城市的简要天气参数。包括天气状况(晴、多云、雨等)和天气图片信息。

void getHouseWeatherSketch(double lon, double lat, ITuyaCommunityResultCallback<TuyaCommunityWeatherSketchBean> callback);

参数说明

参数 说明
lon 经度
lat 纬度
callback 获取结果的回调

TuyaCommunityWeatherSketchBean 说明

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

Java 示例

TuyaCommunitySDK.newHouseInstance(mHouseId).getHouseWeatherSketch(lon, lat, new ITuyaCommunityResultCallback<TuyaCommunityWeatherSketchBean>() {
	@Override
	public void onSuccess(TuyaCommunityWeatherSketchBean result) {
		// do something
	}
	@Override
	public void onFailure(String errorCode, String errorMsg) {
		// do something
	}
});

查询房屋天气详细参数

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

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

  • 如果当前房屋账号在中国地区,则不会返回风速和气压信息。

接口说明

void getHouseWeatherDetail(int limit, Map<String, Object> unit, ITuyaCommunityResultCallback<List<TuyaCommunityWeatherBean>> callback);

参数说明

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

unit 说明

unit 键 unit 说明 unit 值
tempUnit 温度单位 °C:1
°F:2
pressureUnit 气压单位 hPa:1
inHg:2
mmHg:3
mb:4
windspeedUnit 风速单位 mph:1
m/s:2
kph:3
km/h:4

例如,获取摄氏度时,可以将 tempUnit 设置为 1

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

Java 示例

Map<String, Object> units = new HashMap<>();
        units.put("tempUnit", 1);   // °C
        units.put("pressureUnit", 1);  // hPa
        units.put("windspeedUnit", 2); // m/s
        TuyaCommunitySDK.newHouseInstance(Utils.getHouseId()).getHouseWeatherDetail(10, units, new ITuyaCommunityResultCallback<List<TuyaCommunityWeatherBean>>() {
            @Override
            public void onSuccess(List<TuyaCommunityWeatherBean> tuyaCommunityWeatherSketchBean) {
		// do something

            }

            @Override
            public void onFailure(String s, String s1) {
		// do something
            }
        });

迁出房屋

用户本人由于产权变更、租期到期或其他原因不属于当前房屋住户时,可迁出房屋。

接口说明

void moveOutHouse(String communityId, String roomUserId, ISuccessFailureCallback callback);

参数说明

参数 说明
communityId 小区 ID
roomUserId 人房绑定关系 ID
callback 获取结果的回调

示例代码

    TuyaCommunitySDK.getHouseManagerInstance().moveOutHouse(communityId, roomUserId, new ISuccessFailureCallback() {
            @Override
            public void onSuccess() {
		// do something
            }

            @Override
            public void onFailure(String s, String s1) {
		// do something
            }
        });

删除房屋

已迁出、待审核、审核不通过的房屋,可以直接删除。

接口说明

void deleteHouse(String communityId, long houseId, ISuccessFailureCallback callback);

参数说明

参数 说明
communityId 小区 ID
houseId 房屋 ID
callback 获取结果的回调

示例代码

TuyaCommunitySDK.getHouseManagerInstance().deleteHouse(communityId, houseId, new ISuccessFailureCallback() {
		@Override
		public void onSuccess() {
	// do something
		}

		@Override
		public void onFailure(String s, String s1) {
	// do something
		}
	});

设置房屋中设备和群组的顺序

接口说明

void sortDeviceOrGroup(List<CommunityDeviceAndGroupInHouseBean> list, ISuccessFailureCallback callback);

参数说明

参数 说明
list 房间或者群组列表。元素 CommunityDeviceAndGroupInHouseBean 包含两个字段:
  • bizType:被排序的对象的类型,例如是群组或者设备,是一个整数类型的枚举,参考 BizParentTypeEnum 对象
  • bizId:被排序的对象的 ID,例如群组 ID 或者设备 ID
callback 获取结果的回调

BizParentTypeEnum 对象的枚举值:

  • LOCATION
  • MESH
  • ROOM
  • GROUP
  • DEVICE

Java 示例

List<CommunityDeviceAndGroupInHouseBean> list = new ArrayList<>();
List<DeviceBean> deviceList = houseBean.getDeviceList();
List<GroupBean> groupList = houseBean.getGroupList();
for (GroupBean bean : groupList) {
	CommunityDeviceAndGroupInHouseBean deviceInRoomBean = new CommunityDeviceAndGroupInHouseBean();
	deviceInRoomBean.setBizId(bean.getDevId());
	deviceInRoomBean.setBizType(BizParentTypeEnum.GROUP.getType());
	list.add(deviceInRoomBean);
}
for (DeviceBean bean : deviceList) {
	CommunityDeviceAndGroupInHouseBean deviceInRoomBean = new CommunityDeviceAndGroupInHouseBean();
	deviceInRoomBean.setBizId(bean.getDevId());
	deviceInRoomBean.setBizType(BizParentTypeEnum.DEVICE.getType());
	list.add();
}
TuyaCommunitySDK.newHouseInstance(houseId).sortDevInHouse(houseId, list, new ISuccessFailureCallback() {
		@Override
		public void onSuccess() {
			// do something
		}
		@Override
		public void onFailure(String code, String error) {
			// do something
		}
	});

	// @param allDeviceBeans Contains all devices and groups in current House.
Collections.sort(allDeviceBeans, new Comparator<DeviceBean>() {
				@Override
				public int compare(DeviceBean o1, DeviceBean o2) {
					return o1.getHouseDisplayOrder() - o2.getHouseDisplayOrder();
				}
			});

注册或注销房屋信息变更的监听

接口说明

void unRegisterHouseStatusListener(ITuyaHouseStatusListener listener)

参数说明

参数 说明
listener 监听器

Java 示例

// 定义监听
ITuyaHouseStatusListener listener = new ITuyaHouseStatusListener() {
		@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
		}
	};
// 注册监听
TuyaCommunitySDK.newHouseInstance(houseId).registerHouseStatusListener(listener);
// ...
// 取消注册监听
TuyaCommunitySDK.newHouseInstance(houseId).unRegisterHouseStatusListener(listener);