Overview

UCW plugin modules allow add-ons to extend the functionality of the UCW Platform. UCW plugin modules are commonly used to extend the platform by support of new devices for management and monitoring, sensor types for data processing, new storage systems for data streams etc. Plugin modules for user interface such as dashboards, gadgets, resources, tabpanels and more can be found here.

Using UCW plugin modules

You can use a UCW plugin module by declaring it in your plugin (add-on) descriptor, with the appropriate properties. For example, the following code uses a device adapter to add support for management and monitoring of RaspberryPi devices.

nsys-plugin.xml
<device-adapter key="ucw-device-adapter-raspberry-pi"
                name="UCW RaspberryPi Device Adapter"
                class="com.unitycloudware.adapter.system.device.RaspberryPiDeviceAdapter"
                type="native"
                deviceType="raspberry_pi">
    <description>RaspberryPi Device Adapter for UCW Platform.</description>
</device-adapter>

List of modules

Device Adapter

Device Adapter plugin module allow plugins to add support for management and monitoring of new device.

nsys-plugin.xml
<device-adapter key="ucw-device-adapter-arduino"
                name="UCW Arduino Device Adapter"
                class="com.unitycloudware.adapter.system.device.ArduinoDeviceAdapter"
                type="native"
                deviceType="arduino">
    <description>Arduino Device Adapter for UCW Platform.</description>
</device-adapter>

<device-adapter key="particle-device-adapter"
                name="Particle Device Adapter"
                class="com.unitycloudware.adapter.particle.device.ParticleDeviceAdapter"
                type="remote"
                deviceType="particle"
                settingUri="/particle/device-management/settings"
                importDevicesUri="/particle/device-management/import">
    <description>Device Adapter for Particle Cloud.</description>
</device-adapter>

The root element for the Device Adapter plugin module is device-adapter. It allows the following attributes and child elements for configuration:

Attributes

NameDescription
keyThe unique identifier of the plugin module. You refer to this key to use the resource from other contexts in your plugin, such as from the plugin Java code or JavaScript resources.
nameThe human-readable name of the plugin module. Only used in the plugin's administrative user interface.
classThe class which implements this plugin module. The class you need to provide depends on the module type. For device-adapter it has to implement com.unitycloudware.core.adapter.DeviceAdapter interface.
typeThe type of device adapter. The native* is used for adapters managing device directly. The remote** is used in case we have devices controlled by another platform (e.g. Particle Cloud) and device adapter manage this devices indirectly (e.g. remotely over REST API).
deviceTypeThe type of device (e.g. generic, raspberry_pi, arduino, particle)
settingUriThe URI path to the resource for settings of the device adapter within plugin providing the adapter. Only for device adapters of type remote.
importDevicesUriThe URI path to the resource for import of devices within plugin providing the adapter. Only for device adapters of type remote.

*key, name, class, type and deviceType attributes are required for type native

*key, name, class, type, deviceType, settingUri and importDevicesUri attributes are required for type remote

Elements

NameDescription
descriptionThe description of the plugin module. Use this element to describe the section.


Storage Adapter

Storage Adapter plugin module allow plugins to add support for management and monitoring of new storage system for data streams.

nsys-plugin.xml
<storage-adapter key="ucw-storage-adapter-generic"
                name="UCW Generic Storage Adapter"
                class="com.unitycloudware.adapter.system.storage.GenericStorageAdapter"
                type="native"
                storageType="generic">
    <description>Generic Storage Adapter for UCW Platform.</description>
</storage-adapter>

<storage-adapter key="azure-iot-hub-storage-adapter"
                name="Azure IoT Hub Storage Adapter"
                class="com.unitycloudware.adapter.azure.storage.AzureIoTHubStorageAdapter"
                type="remote"
                storageType="azure-iot-hub"
                settingUri="/azure-iot-hub/storage-management/settings"
    <description>Storage Adapter for Azure IoT Hub.</description>
</storage-adapter>

The root element for the Storage Adapter plugin module is storage-adapter. It allows the following attributes and child elements for configuration:

Attributes

NameDescription
keyThe unique identifier of the plugin module. You refer to this key to use the resource from other contexts in your plugin, such as from the plugin Java code or JavaScript resources.
nameThe human-readable name of the plugin module. Only used in the plugin's administrative user interface.
classThe class which implements this plugin module. The class you need to provide depends on the module type. For storage-adapter it has to implement com.unitycloudware.core.adapter.StorageAdapter interface.
typeThe type of storage adapter. The native* is used for adapters managing local storage. The remote** is used in case we have storage controlled by another platform (e.g. Azure IoT Hub) and storage adapter manage it remotely over REST API.
storageTypeThe type of storage (e.g. generic, postgresql, azure-iot-hub)
settingUriThe URI path to the resource for settings of the storage adapter within plugin providing the adapter. Only for storage adapters of type remote.

*key, name, class, type and storageType attributes are required for type native

*key, name, class, type, storageType and settingUri attributes are required for type remote

Elements

NameDescription
descriptionThe description of the plugin module. Use this element to describe the section.