Skip to main content

Console CLI

This page has not been fully updated to represent the latest state of the Helium Network following the migration to Solana on April 18, 2023.

Introduction

The Command Line Interface (CLI) allows you to interact with the Console API without making HTTP Requests, but instead via a command line prompt. It's ideal for mass provisioning or for integrating onto a production line.

In addition, it has certain high-level features for account setup like importing devices from other network providers.

Installation

Download a compiled release here for your appropriate platform.

API Key

You must activate a Console API key before using the CLI.

The first time you run the CLI, it will prompt you for this key. It will save the key in a local file: .helium-console-config.toml

Usage

Features

You can view the most current commands, features, and documentation by accessing the help menus. For example: helium-console-cli --help or helium-console-cli device --help.

Current high level features are:

  • create and delete devices records, using (app_eui, app_key, dev_eui) or UUID

  • list all device records

  • create and delete labels by UUID

  • create and delete device labels, by using (device_uuid, label_uuid)

  • import devices from The Things Network (TTN\

    )

Examples

Let's create a device:

helium-console-cli device create 000A000100000046 CB67C92DD5898D07872224202DED7E76 DEADBEEF23F23454 foo

You'll get a response with the full record of this new device:

Device {
app_eui: "000A000100000046",
app_key: "CB67C92DD5898D07872224202DED7E76",
dev_eui: "DEADBEEF23F23454",
id: "03f5967a-7c79-42a2-bd5f-6e51015e73e3",
name: "foo",
organization_id: "07273bc4-4bc9-44ec-b4d5-ad320f162e15",
oui: 1,
}

You can view this device again by either (app_eui, app_key, dev_eui) or by id/uuid. For example:

helium-console-cli device get 000A000100000046 CB67C92DD5898D07872224202DED7E76 DEADBEEF23F23454

or

helium-console-cli device get-by-id 03f5967a-7c79-42a2-bd5f-6e51015e73e3

These commands will return the same record as above.

Similarly, you may delete the device:

helium-console-cli device delete 000A000100000046 CB67C92DD5898D07872224202DED7E76 DEADBEEF23F23454

or

helium-console-cli device delete-by-id 03f5967a-7c79-42a2-bd5f-6e51015e73e3

Finally, at any time, you may list all your devices:

helium-console-cli device list

Which will return an array of all your devices:

[
Device {
app_eui: "000A000100000046",
app_key: "CB67C92DD5898D07872224202DED7E76",
dev_eui: "DEADBEEF23F23454",
id: "03f5967a-7c79-42a2-bd5f-6e51015e73e3",
name: "foo",
organization_id: "07273bc4-4bc9-44ec-b4d5-ad320f162e15",
oui: 1,
}
]

TTN Import

To start an import session, use the ttn import command:

helium-console-cli ttn import

You will be prompted for a ttnctl access code, which you can generate by clicking on ttnctl access code here. This single-use access code is valid for 5 minutes. During this time the CLI may use the code to request an OAuth2 token; it expires after 60 minutes.

The CLI's prompts will help you:

  • select to import from a single application or all applications (maximum 10, otherwise the OAuth2 token is "used up")
  • you may import all the devices at once or you may approve device import one by one.
  • you may use the TTN App ID as an automatic label for every device or you may approve device labelling one by one

The import process tolerates attempts to re-import or re-label the same device. As such, you may re-run the script to label devices with the TTN App ID even if you already imported the devices during a previous session.