更新时间:2024-11-18 11:33:08下载pdf
本文介绍如何控制网关下的子设备。网关本身也是个设备,如果要控制网关本身,请参考其他文档,例如 设备管理。
类名 | 说明 |
---|---|
ITuyaGateway | 网关类,封装了 Zigbee 网关的相关操作,包括控制子设备、查询子设备、监听子设备状态等 |
接口说明
TuyaHomeSdk.newGatewayInstance(String devId)
参数说明
参数 | 说明 |
---|---|
devId | 网关设备的设备 ID |
接口说明
void getSubDevList(ITuyaDataCallback<List<DeviceBean>> callback)
参数说明
该接口的参数为异步回调的 callback
,callback
内容如下:
public interface ITuyaDataCallback<List<DeviceBean>> {
void onSuccess(List<DeviceBean> result);
void onError(String errorCode, String errorMessage);
}
示例代码
TuyaHomeSdk.newGatewayInstance(devId).getSubDevList(new ITuyaDataCallback<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);
}
示例代码
TuyaHomeSdk.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();
示例代码
TuyaHomeSdk.newGatewayInstance(devId).unRegisterSubDevListener();
接口说明
void publishDps(String nodeId, String dps, IResultCallback callback)
参数说明
参数 | 说明 |
---|---|
nodeId | 子设备节点 ID,从子设备的 DeviceBean 中查询 |
dps | 要控制的设备功能列表,格式为 JSON 字符串 |
callback | 发送成功或失败的回调 |
示例代码
TuyaHomeSdk.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 | 发送成功或失败的回调 |
示例代码
TuyaHomeSdk.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 | 发送成功或失败的回调 |
示例代码
TuyaHomeSdk.newGatewayInstance(devId).broadcastDps("{\"101\": true}", new IResultCallback() {
@Override
public void onError(String code, String error) {
}
@Override
public void onSuccess() {
}
});
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈