Advanced Device Search
This section provides the details on how the advanced device search functions. WSO2 IoT Server maintains the details of the devices that are enrolled with it by running a background task. This task adds a few operations to the devices such as the device_info
, device_location
and the application_list
. If you want to you can add more device operations and execute the advanced search as explained below:
Navigate to the
<IoT_HOME>/core/repository/conf/cdm-config.xml
 file.Add the new operations under the task configurations operations tag as shown below:
<TaskConfiguration> <Enable>true</Enable> <Frequency>600000</Frequency> <TaskClass>org.wso2.carbon.device.mgt.core.task.impl.DeviceDetailsRetrieverTask</TaskClass> <Operations> <Operation> <Name>{OPERATION_CODE}</Name> <RecurrentTimes>{HOW_OFTEN_THE_OPERATION_NEEDS_TO_BE_ADDED}</RecurrentTimes> </Operation> </Operations> </TaskConfiguration>
For
<RecurrentTimes>
define how often the above operation should be called when running the task operationExample: If you define it as 5 that means the operation will be added to the task at every 5th run of the task.
Example:
<TaskConfiguration> <Enable>true</Enable> <Frequency>30000</Frequency> <TaskClass>org.wso2.carbon.device.mgt.core.task.impl.DeviceDetailsRetrieverTask</TaskClass> <Operations> <Operation> <Name>DEVICE_INFO</Name> <RecurrentTimes>1</RecurrentTimes> </Operation> <Operation> <Name>APPLICATION_LIST</Name> <RecurrentTimes>5</RecurrentTimes> </Operation> <Operation> <Name>DEVICE_LOCATION</Name> <RecurrentTimes>1</RecurrentTimes> </Operation> </Operations> </TaskConfiguration>
The user executes the advanced search for devices via the WSO2 device management console or the REST API.Â
- WSO2 IoTS goes through the search request received via the console or the REST API to check for the following details:
Checks if the values provided for Key field match the
D
EVICE_DETAILS
database table properties.Â- If the value you defined for the Key field is not a property in theÂ
D
EVICE_DETAILS
 table, it will then form akey:value
pair and pass the details to theÂD
EVICE_INFO
 database table in WSO2 IoTS.
- Once WSO2 IoTS aggregates all the results for the given search query the final search result will be provided.