Adapters

Introduction

An adapter is a custom software component deployed on IoT Gateway devices executing the ClearBlade Edge.

Each adapter consists of a name, a small number of administrative commands, and a small number of files comprising an adapter's administrative and executable assets. These files consist of executable code, supporting libraries, and shell scripts to administer adapters.

Learn how to create and configure an adapter.

Purpose

Adapters serve as a proxy between the ClearBlade Platform and IoT devices that cannot directly communicate with the ClearBlade Platform. ClearBlade provides various adapters out-of-the-box for different protocols like BLE, CAN bus, ZMQ, AMQP, etc.

Commands

Once an adapter has been successfully deployed to an edge, it can be started, stopped, or restarted using the adapter page’s edge management portion, located within the ClearBlade Platform developers console. The adapter’s status on each edge is determined by the returned output of the status command from the adapter’s configuration, running or stopped. If the adapter is not successfully deployed to an edge, the edge will be found in the Disconnected Edges table.

Shell commands or scripts must be specified in the Configuration section within the adapter’s settings to administer the adapter correctly. Commands are executed from the directory where the edge was started. The currently supported commands are:

Deploy command

An optional command or shell script will run after the files are installed on a ClearBlade Edge.

Start command

A command or shell script will be executed to start a ClearBlade Edge adapter. If a start command is not specified, the adapter must be manually started by connecting to the gateway device (via SSH) and issuing an appropriate start. An adapter can be started on one or multiple edges from the Edge Management table’s Stopped tab.

Stop command

A command or shell script will stop the adapter on a ClearBlade Edge. The stop command is optional. If the stop command is not specified, the adapter must be manually stopped by connecting to the gateway device (via SSH) and issuing an appropriate stop command. An adapter can be stopped or restarted from the Edge Management table’s Running tab on one or multiple edges.

Status command

A command or shell script will determine the adapter's status on a ClearBlade Edge. A shell script that echoes an adapter’s status should be supplied. The shell script should account for and echo the deployed, running, and stopped values.

Undeploy command

A command or shell script will run to uninstall the adapter from a ClearBlade Edge. The undeploy command is optional. If the undeploy command is not specified, the ClearBlade Platform’s default behavior is to remove the adapter files from the directory where the edge is running. The default undeploy behavior would not delete any log files created or remove any files moved to adapter-specific directories.

Logs command

A command or shell script will retrieve any logs printed out by the adapter while running. The logs command is optional. If the logs command is not specified, any log files written by the adapter must be viewed manually (via SSH or SFTP). You can view the adapter logs, determined by executing the adapter configuration’s logs command, by clicking the logs column’s View button in the Edge Management table.

Parameter variables

Adapter parameter variables are predefined and can be used in adapter commands. This helps with making adapters functional with fewer configuration changes.

Adapter variables list

Name

Variable

Usage

Access

Name

Variable

Usage

Access

Platform URL

CB_PLATFORM_IP

${CB_PLATFORM_IP}

Read

System Key

CB_SYSTEM_KEY

${CB_SYSTEM_KEY}

Read

System Secret

CB_SYSTEM_SECRET

${CB_SYSTEM_SECRET}

Read

Edge Name

CB_EDGE_NAME

${CB_EDGE_NAME}

Read

Edge IP

CB_EDGE_IP

${CB_EDGE_IP}

Read

Adapters Directory

CB_ADAPTERS_ROOT_DIR

${CB_ADAPTERS_ROOT_DIR}

Read

Service Account

CB_SERVICE_ACCOUNT

${CB_SERVICE_ACCOUNT}

Read

Service Account Token

CB_SERVICE_ACCOUNT_TOKEN

${CB_SERVICE_ACCOUNT_TOKEN}

Read

HTTP Port

CB_HTTP_PORT

${CB_HTTP_PORT}

Read

Usage

Variables can be referenced from the command configuration using this syntax:

myAdapter ${PLATFORM_URL} ${SYSTEM_KEY}

Service accounts

Users writing the adapter must know what user to run it as. If that user/device is a service account, we’ll provide the token for them automatically.

Start shell script example:

./start.sh -cb_service_account=hello@clearblade.com

If a service account is specified on the command line, the edge will supply the CB_SERVICE_ACCOUNT_TOKEN in the adapter’s environment.

For more information about service accounts, click here.