Last Updated on : 2023-04-13 09:31:07download
This topic describes how to control sub-devices that are connected through a Zigbee gateway. The gateway is also a device that can be controlled. For more information, see Device Management.
Class name | Description |
---|---|
IThingGateway | The gateway class provides operations related to a Zigbee gateway, including the capabilities to control, query, and monitor the status of its sub-devices. |
API description
ThingHomeSdk.newGatewayInstance(String devId)
Parameters
Parameter | Description |
---|---|
devId | The device ID of the gateway. |
API description
void getSubDevList(IThingDataCallback<List<DeviceBean>> callback)
Parameters
The parameters are included in the asynchronous callback
. The following code block shows this callback
:
public interface IThingDataCallback<List<DeviceBean>> {
void onSuccess(List<DeviceBean> result);
void onError(String errorCode, String errorMessage);
}
Example
ThingHomeSdk.newGatewayInstance(devId).getSubDevList(new IThingDataCallback<List<DeviceBean>>() {
@Override
public void onSuccess(List<DeviceBean> list) {
}
@Override
public void onError(String errorCode, String errorMessage) {
}
});
API description
void registerSubDevListener(ISubDevListener listener);
Parameters
The following code block shows the parameters for the listener:
public interface ISubDevListener {
/**
* The notification of the change in device DP status.
*
* @param nodeId The value of `nodeId` in the `DeviceBean` field for the sub-device.
* @param dpStr The changed DP data of the sub-device.
*/
void onSubDevDpUpdate(String nodeId, String dpStr);
/**
* The notification of device removal.
*/
void onSubDevRemoved(String devId);
/**
* The notification of an added device.
*/
void onSubDevAdded(String devId);
/**
* The notification that is sent when a sub-device is renamed.
*/
void onSubDevInfoUpdate(String devId);
/**
* The notification that is sent when a sub-device gets online or offline.
*/
void onSubDevStatusChanged(List<String> onlineNodeIds, List<String> offlineNodeIds);
}
Example
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) {
}
});
API description
void unRegisterSubDevListener();
Example
ThingHomeSdk.newGatewayInstance(devId).unRegisterSubDevListener();
API description
void publishDps(String nodeId, String dps, IResultCallback callback)
Parameters
Parameter | Description |
---|---|
nodeId | The node ID of the target sub-device. You can get the value from DeviceBean of the sub-device. |
dps | The list of target DPs in the JSON format to implement device control. |
callback | The success or failure callback. |
Example
ThingHomeSdk.newGatewayInstance(devId).publishDps(subDeviceBean.getNodeId(), "{\"101\": true}", new IResultCallback() {
@Override
public void onError(String code, String error) {
}
@Override
public void onSuccess() {
}
});
API description
Controls all devices that belong to the same group as a sub-device.
void multicastDps(String nodeId, String dps, IResultCallback callback)
Parameters
Parameter | Description |
---|---|
nodeId | The node ID of the target sub-device. You can get the value from DeviceBean of the sub-device. |
dps | The list of target DPs in the JSON format to implement device control. |
callback | The success or failure callback. |
Example
ThingHomeSdk.newGatewayInstance(devId).multicastDps(subDeviceBean.getNodeId(), "{\"101\": true}", new IResultCallback() {
@Override
public void onError(String code, String error) {
}
@Override
public void onSuccess() {
}
});
API description
void broadcastDps(String dps, IResultCallback callback)
Parameters
Parameter | Description |
---|---|
dps | The list of target DPs in the JSON format to implement device control. |
callback | The success or failure callback. |
Example
ThingHomeSdk.newGatewayInstance(devId).broadcastDps("{\"101\": true}", new IResultCallback() {
@Override
public void onError(String code, String error) {
}
@Override
public void onSuccess() {
}
});
Is this page helpful?
YesFeedbackIs this page helpful?
YesFeedback