In 2016 I delivered design concepts and a UX design for Custom Device Management extensions in the Watson IoT platform.
What is Custom Device Management
Device Management in the Watson IoT Platform provides capabilities for Operators to perform actions on devices connected to the IoT platform. Basic device management actions include; Download Firmware, Update Firmware, Reboot and Factory Reset.
The device management requires a device management agent, implementing the device management protocol, to be running on devices. The agent is responsible for responding to IoT platform MQTT commands that initiates a device management action.
Custom Device Management extends the basic Device Management actions and enabled client organizations to define their specific actions and have any such actions available in the list of device management actions in the IoT platform user interface.
In my research I found that
- Device and Gateway partners implement a rich set of device management actions on gateways, in device management services, or in external cloud platform. Users’ needs to integrated this external set of actions and make them seamlessly available as delegated actions on devices in the Watson IoT platform.
- Partners are delivering advanced device management for enterprise scale management of firmware. Client using such advanced device management services needs to make them seamlessly available, replacing any standard device management action for selected devices types.
- Custom device management actions will specific to a set of device types. In a typical deployment multiple device management action sets will be required, for multiple independent device partners and service providers.
- Custom device management actions will be downloaded as a device management extension package from a device partner product web page and installed on the IoT Platform.
- Custom device management extension packages will be versioned. Multiple device management extension package versions can run on the platform, or be replaced with a new version.
- Custom device management extension packages needs to be internationalized.
Custom Device Management Design
The custom device management design is enabling
- Extending the built-in capabilities for Device Management in WIoTP
- A consistent user experience for all build-in and custom DM commands
- Supporting delegation of device management 3rd party device, gateway and platform partners
- Definition of a Custom Command Package to declare and upload commands to WIoTP
- Support version and variant management of Custom Command Packages
Hills and Use-cases
As an Operator I need to configure, manage and run 3rd party custom Device Management actions on devices and gateways managed in the IoT Platform
- As an Operator I need to configure an extension for 3rd party DM actions on a device type
- As an Operator I need to select and run a DM action
- As an Operator I need to update my 3rd party DM extension to stay in sync with new FW updates
Install a 3rd party Device Management extension package
The System Operator will go to the 3rd party device provider web or log into the 3rd party cloud service. A device management extension package will be downloaded for a set of 3rd party device types. The System Operator will log into the IoT platform, choose Settings > Extensions and upload and enable the Device Management extension package.
Run a run a 3rd party Device Management action
The System Operator logs into the IoT platform. The operator has permissions to run DM actions and opens the Devices > Actions section. The operator chooses a 3rd part DM action, selects a device / gateway type, selects devices and provides optional information for the action. The operator runs the action and monitors the progress.
Run a run a 3rd party Device Management action from a Device Type or Device
The System Operator may also run the 3rd part DM action directly on supported device types or devices.
Update a 3rd party Device Management extension package
Operators will, as part of a FW update, go to the 3rd party web and retrieve a new Device Management extension package with updated custom commands. The operator may choose to replace the existing package, or alternatively add a new package to maintain devices with different FW version
Custom Commands Extension Package Designs
The UX design in the previous section shows how to use the IoT platform user interface to upload and use Custom Commands Extension Packages.
An extension package is JSON file with a structure defined by Watson IoT Platform
- An extension package has
- A name
- A version
- A description
- A list of supported device types
- A list of custom device management commands
- A command has
- A name
- A description
- A list of parameters (string types) w/ name, description, optionally a default value
- A command specification containing the command string with parameter substitution identifiers
- A sample extension package is provided in IoTP documentation
The custom command design has enabled related designs in 2016
- Usage of custom device management commands in Firmware over the air (FoTA) integrations with business partners