com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'next_previous_link3' is unknown.

FAQ

How can I change the device status?

All the sample device types provided in WSO2 IoTS are configured so that the device status is demarked as active as soon as you download the agent. That is because the device is considered to be registered with WSO2 IoTS when the agent is downloaded. Having the status as active when you download a device is not mandatory and you can change it when writing the device plugin or APIs for your device. 

For example, in RaspberryPi the device status is configured when writing the APIs in the RaspberryPiServiceImpl.java file by defining ACTIVE as the value for enrolmentInfo.setStatus: 

private boolean register(String deviceId, String name) {
 try {
  DeviceIdentifier deviceIdentifier = new DeviceIdentifier();
  deviceIdentifier.setId(deviceId);
  deviceIdentifier.setType(RaspberrypiConstants.DEVICE_TYPE);
  if (APIUtil.getDeviceManagementService().isEnrolled(deviceIdentifier)) {
   return false;
  }
  Device device = new Device();
  device.setDeviceIdentifier(deviceId);
  EnrolmentInfo enrolmentInfo = new EnrolmentInfo();
  enrolmentInfo.setDateOfEnrolment(new Date().getTime());
  enrolmentInfo.setDateOfLastUpdate(new Date().getTime());
  enrolmentInfo.setStatus(EnrolmentInfo.Status.ACTIVE);
  enrolmentInfo.setOwnership(EnrolmentInfo.OwnerShip.BYOD);
  device.setName(name);
  device.setType(RaspberrypiConstants.DEVICE_TYPE);
  enrolmentInfo.setOwner(APIUtil.getAuthenticatedUser());
  device.setEnrolmentInfo(enrolmentInfo);
  return APIUtil.getDeviceManagementService().enrollDevice(device);
 } catch (DeviceManagementException e) {
  return false;
 }
} 

What are the available device statuses?

WSO2 IoTS supports device statuses so that you are able to manage the device lifecycle anyway you prefer using the following statuses.

CREATED

The device status once a device instance is created.

Example: Downloading the virtual fire alarm device agent.

ACTIVE

The device status once the agent starts to communicate with the device.

Example: When the virtual fire alarm is connected to WSO2 IoTS for the first time, you can configure the plugin so that the device status changes from CREATED to ACTIVE.  

INACTIVEA device that is in the ACTIVE state but there is no communication with the server.
UNREACHABLEIoTS is unable to reach the server therefore, the device status can be configured to be in the UNREACHABLE state.
UNCLAIMEDA device that does not have an owner assigned to it.
SUSPENDEDA device that does not abide by a policy that was enforced on it can be suspended and hence be in the SUSPENDED state.
BLOCKEDIf you want to stop the device from communicating with the server, the device status can be configured to be BLOCKED.
DISENROLLMENT_REQUESTEDThe status of the device once it sends a request to be disenrolled from WSO2 IoTS.
REMOVEDThe status of the status once the device is disenrolled from WSO2 IoTS.

How can I disable authentication for MQTT clients?

You will want to reduce the number of steps for testing purposes and see if the communication works accordingly, in such cases or for any other use case you can disable authentication for MQTT clients by following the simple steps given below:

  1. Open the broker.xml file that is in the <IoT_HOME>/broker/repository/conf directory.
  2. Configure the following fields:
    • Define the <authentication> tag as OPTIONAL.
    • Define the <authorization> tag as NOT_REQUIRED.
    <authentication>OPTIONAL</authentication>
    <authorization>NOT_REQUIRED</authorization>

Why do I need to use the iOS Agent?

The iOS Agent is required to perform the following operations. Therefore, if you need to use any of the following operations with WSO2 IoTS, you need to build the iOS Agent.

  • Report location details to the server.
  • Perform the ring operation.
  • Perform notification operations by sending messages to the device.


com.atlassian.confluence.content.render.xhtml.migration.exceptions.UnknownMacroMigrationException: The macro 'next_previous_links2' is unknown.