群组管理

描述

涂鸦云支持群组管理体系:可以创建群组,修改群组名称,管理群组设备,通过群组管理多个设备,解散群组。 涂鸦智能提供一些设备群组控制的接口。这里的群组控制是指WiFi群组,目前只有群控的功能。群组功能默认关闭,如果需要开通群组功能,联系我们业务人员

群组列表获取

群组未创建,获取可创建群组的设备列表

//群组未创建,入参groupId传0
TuyaHomeSdk.newHomeInstance("homeId").queryDeviceListToAddGroup(groupId, "productId", new IGetDevsFromGroupByPidCallback() {
    @Override
    public void onSuccess(List<GroupDeviceBean> bizResult) {

    }

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

    }
});

群组已经创建,获取群组的设备列表

TuyaHomeSdk.newHomeInstance("homeId").queryDeviceListToAddGroup(groupId, "productId", new IGetDevsFromGroupByPidCallback() {
    @Override
    public void onSuccess(List<GroupDeviceBean> bizResult) {

    }

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

    }
});

创建群组

TuyaHomeSdk.newHomeInstance("homeId").createNewGroup("productId", "name", devIds, new ICreateGroupCallback() {
    @Override
    public void onSuccess(long groupId) {
            //返回groupId
    }

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

    }
});

编辑群组

TuyaHomeSdk.newGroupInstance(groupId).updateDeviceList(deviceIds, new IResultCallback() {
                @Override
                public void onError(String s, String s1) {

                }

                @Override
                public void onSuccess() {

                }
            });

解散群组

TuyaHomeSdk.newGroupInstance(groupId).dismissGroup(new IResultCallback() {
                @Override
                public void onError(String s, String s1) {

                }

                @Override
                public void onSuccess() {

                }
            });

修改群组名称

TuyaHomeSdk.newGroupInstance(groupId).renameGroup(titleName, new IResultCallback() {
            @Override
            public void onError(String s, String s1) {

            }

            @Override
            public void onSuccess() {
                           }
        });

群组操控

实例化

* 群组实例化
* @param groupId 群组Id
ITuyaGroup mITuyaGroup= TuyaHomeSdk.newGroupInstance(groupId);

群组dp控制回调

* 注册群组回调事件
* @param listener 回调
mITuyaGroup.registerGroupListener(new IGroupListener() {
            @Override
            public void onDpUpdate(long l, String s) {

            }

            @Override
            public void onGroupInfoUpdate(long l) {

            }

            @Override
            public void onGroupRemoved(long l) {

            }
        });

* 注销群组回调事件
mITuyaGroup.unRegisterGroupListener();

发送群组控制命令

* 发送群组控制命令
* @param command 控制命令
* @param listener 回调
mTuyaGroup.publishDps(String command,IControlCallback listener);

代码范例

//群组开灯代码片段
LampBean bean = new LampBean();
bean.setOpen(true);
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put(STHEME_LAMP_DPID_1, bean.isOpen());
mTuyaGroup.publishDps(JSONObject.toJSONString(hashMap),callback)

注意事项

群组的发送命令返回结果,是指发送给云端成功,并不是指实际控制设备成功。

群组数据获取

本地获取群组数据,需要初始化Home(调用getHomeDetail()或者getHomeLocalCache)之后,才能取到数据

/**
* 本地获取群组数据bean
* @param groupId 群组id
* @return GroupBean  群组数据类
*/
TuyaHomeSdk.getDataInstance().getGroupBean(long groupId);

/**
* 本地获取群组数据列表
* @return  List<GroupBean>  群组列表
*/
TuyaHomeSdk.getDataInstance().getGroupDeviceList(long groupId);

群组数据销毁

//群组数据销毁,建议退出群组控制页面的时候调用。
mITuyaGroup.onDestroy();

results matching ""

    No results matching ""