Creating Cloud Managed Devices
EmbedThis Ioto is a cloud-based management service for embedded devices connected to the Internet.
It is comprised of five components:
- Device Builder
- Ioto Service
- Ioto Device Clouds
- Ioto Device Manager
- Ioto Device Agent
The EmbedThis Device Builder web site helps you to:
- Define, configure, and control your products.
- Manage your device clouds.
- Tailor software upgrades to your needs.
- Manage your subscription and billing for EmbedThis products and services.
The Ioto Service is a cloud application. It provides services for the EmbedThis Builder and manages the assignment of devices into Device Clouds.
Ioto Device Clouds are cloud-based hubs that run in your AWS account and region. They manage routine communications and management for your devices.
Ioto Device Manager is a custom device manager site created for your device cloud. From it, you and your customers can claim and manage individual devices and fleets of devices.
The Ioto Device Agent is a cloud-ready embedded agent for remote device management. It includes an embedded web server, embedded database, HTTP client, MQTT client and extensive AWS IoT cloud integration. The agent communicates with the Ioto Service and Device Clouds for management. See Ioto Agent Documentation for in-depth details about the Ioto Agent.
The work flow for creating cloud managed devices begins with the Builder. The Builder is used to define and configure your products and device clouds.
Creating a Product Definition
For each product type that you wish to manage from the cloud, you need to create a product definition that describes your device and nominates the device agent you wish to utilize.
Downloading the Ioto Device Agent
Next, you download the Ioto device agent from the Builder product list.
To help you evaluate Ioto, your first device is free. Thereafter, a subscription is required.
Customizing Device Specific Logic
Embed the Ioto agent in your device hardware and add your device specific logic. There is extensive documentation available: Ioto Agent Doc.
Creating a Device Cloud
The next step is to create a Device Cloud that will be the central hub for managing your devices.
A Device Cloud is created in an AWS account and region of your choice. You can have multiple device clouds if you require, though most users will need only one cloud for their devices.
Device Cloud Privacy
The Device Cloud is created in your AWS account so you have total control and privacy regarding your device data. Your device data goes directly from your devices to the device cloud in your account. The device data is not sent through EmbedThis servers or other AWS accounts. This is important as jurisdictions are increasingly requiring that data only be stored, processed and managed locally.
When creating device clouds, the builder will create the necessary resources including a DynamoDB device database and service Lambda function in your AWS account.
Once a device cloud is created, you can register a device with the Builder service.
See Device Registration in the Ioto Agent Documentation for more details. When registered, you can "claim" the device for a user. See Device Claiming for details.
Once registered and claimed, the device is under management by the Ioto service. Management commands can be sent from the cloud to the device and device data can be sent upstream from the device to the cloud.
Perhaps the largest task in creating cloud-based managed products is creating this device management application. The size of this task as it is probably the largest single task and expense when creating IoT managed devices.
For this reason, when a device cloud is created, Ioto creates and configures a device manager site for your devices called the Ioto Manager.
The Ioto Manager is a generic (white-label) device manager that can be extensively customized with your logo, product name and device specific data, screens and panels.
Using the Builder, you can configure the Ioto Manager by defining device specific components, including:
- Extension VueJS Components
The schema describes your device entities and their data properties and data types. From this, the Ioto Manager is able to dynamically construct a user interface when guided by the Display.json file.
The Ioto Manager is extremely flexible, however, there are limits, and you may want to create your own manager application that uses the Ioto APIs to provide a bespoke management experience for your devices.
Such a management app should ideally be a Single Page web application authored using VueJS or React. This app will consume data from the Ioto cloud APIs and send device commands to Ioto for relaying to the relevant devices.
Ioto provides a comprehensive suite of API interfaces for you to create your device management application. These APIs cover the following areas:
- Builder HTTP REST API — for managing products, device clouds and software upgrades.
- DynamoDB schema — for querying structured device data.
- Event API — for receiving event notifications over AWS EventBridge.
- MQTT Topic API — for sending and receiving device commands, data and notifications.
As you progress with your design and development, you will probably require support.
EmbedThis offers two types of support:
- Basic Support
- Developer Support
Basic support provides basic guidance covering installation and operational usage of the product.
Developer support provides in-depth developer help for design and implementation issues. This includes embedded development, cloud-based device management, developer coding, debugging issues and support for legacy software versions.
You can purchase support via the Builder interface under the Support menu option. You can also raise and track support issues with the Embedthis support staff.
To Subscribe for additional devices, create device clouds or purchase support, go to the Account/Subscription menu option and review your subscription, then click Confirm to purchase. You can enter a billing card on the Account/Billing page.
You can read more about subscriptions at: Subscriptions.