更新时间:2023-04-13 09:31:08下载pdf
本文介绍如何控制网关下的子设备。网关本身也是个设备,如果要控制网关本身,请参考其他文档,例如 设备管理。
| 类名 | 说明 | 
|---|---|
| IThingGateway | 网关类,封装了 Zigbee 网关的相关操作,包括控制子设备、查询子设备、监听子设备状态等 | 
接口说明
ThingHomeSdk.newGatewayInstance(String devId)
参数说明
| 参数 | 说明 | 
|---|---|
| devId | 网关设备的设备 ID | 
接口说明
void getSubDevList(IThingDataCallback<List<DeviceBean>> callback)
参数说明
该接口的参数为异步回调的 callback,callback 内容如下:
public interface IThingDataCallback<List<DeviceBean>> {
    void onSuccess(List<DeviceBean> result);
    void onError(String errorCode, String errorMessage);
}
示例代码
ThingHomeSdk.newGatewayInstance(devId).getSubDevList(new IThingDataCallback<List<DeviceBean>>() {
    @Override
    public void onSuccess(List<DeviceBean> list) {
    }
    @Override
    public void onError(String errorCode, String errorMessage) {
    }
});
接口说明
void registerSubDevListener(ISubDevListener listener);
参数说明
参数中的监听器接口内容如下:
public interface ISubDevListener {
    /**
     * 当设备功能状态变更时的通知
     *
     * @param nodeId 子设备 nodeId,子设备 DeviceBean 中的 nodeId 字段
     * @param dpStr 子设备变更的设备功能数据
     */
    void onSubDevDpUpdate(String nodeId, String dpStr);
    /**
     * 设备移除时的通知
     */
    void onSubDevRemoved(String devId);
    /**
     * 新增设备时的通知
     */
    void onSubDevAdded(String devId);
    /**
     * 子设备重命名时的通知
     */
    void onSubDevInfoUpdate(String devId);
    /**
     * 子设备在线 or 离线状态变更通知
     */
    void onSubDevStatusChanged(List<String> onlineNodeIds, List<String> offlineNodeIds);
}
示例代码
ThingHomeSdk.newGatewayInstance(devId).registerSubDevListener(new ISubDevListener() {
    @Override
    public void onSubDevDpUpdate(String nodeId, String dpStr) {
    }
    @Override
    public void onSubDevRemoved(String devId) {
    }
    @Override
    public void onSubDevAdded(String devId) {
    }
    @Override
    public void onSubDevInfoUpdate(String devId) {
    }
    @Override
    public void onSubDevStatusChanged(List<String> onlines, List<String> offlines) {
    }
});
接口说明
void unRegisterSubDevListener();
示例代码
ThingHomeSdk.newGatewayInstance(devId).unRegisterSubDevListener();
接口说明
void publishDps(String nodeId, String dps, IResultCallback callback)
参数说明
| 参数 | 说明 | 
|---|---|
| nodeId | 子设备节点 ID,从子设备的 DeviceBean中查询 | 
| dps | 要控制的设备功能列表,格式为 JSON 字符串 | 
| callback | 发送成功或失败的回调 | 
示例代码
ThingHomeSdk.newGatewayInstance(devId).publishDps(subDeviceBean.getNodeId(), "{\"101\": true}", new IResultCallback() {
    @Override
    public void onError(String code, String error) {
    }
    @Override
    public void onSuccess() {
    }
});
接口说明
控制该子设备同一个群组下的所有设备。
void multicastDps(String nodeId, String dps, IResultCallback callback)
参数说明
| 参数 | 说明 | 
|---|---|
| nodeId | 子设备节点 ID,从子设备的 DeviceBean中查询 | 
| dps | 要控制的设备功能列表,格式为 JSON 字符串 | 
| callback | 发送成功或失败的回调 | 
示例代码
ThingHomeSdk.newGatewayInstance(devId).multicastDps(subDeviceBean.getNodeId(), "{\"101\": true}", new IResultCallback() {
    @Override
    public void onError(String code, String error) {
    }
    @Override
    public void onSuccess() {
    }
});
接口说明
void broadcastDps(String dps, IResultCallback callback)
参数说明
| 参数 | 说明 | 
|---|---|
| dps | 要控制的设备功能列表,格式为 JSON 字符串 | 
| callback | 发送成功或失败的回调 | 
示例代码
ThingHomeSdk.newGatewayInstance(devId).broadcastDps("{\"101\": true}", new IResultCallback() {
    @Override
    public void onError(String code, String error) {
    }
    @Override
    public void onSuccess() {
    }
});
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈