Instead of adding devices one by one, The Things Stack supports multiple methods of adding multiple end devices at once. Adding multiple devices is also referred to as importing devices.
There are two ways to import devices in The Things Stack - using Console or CLI.
The Things Stack supports importing end devices in JSON and CSV format:
- To import devices that are in a JSON file (for example, the one you created by following Migrating End Devices from V2 or Exporting Devices from ChirpStack), use The Things Stack JSON format (identified by
the-things-stack
). The JSON format data format is documented in the JSON File Reference. - To import devices that are in a CSV file, use the The Things Stack CSV (identified by
the-things-stack-csv
). The CSV data format is documented in the CSV File Reference, including a handy Excel template.
Import devices via the Console
Open your application and click the button Import end devices
Select the File format and upload the file (e.g. devices.json
or devices.csv
).
You can specify Fallback values for Frequency plan and LoRaWAN® and Regional Parameters version, in case the import file does not specify these settings for the device.
You can also expand the Advanced claiming and component settings to set targeted components, and set the claim authentication code to be generated.
Start the import by clicking the Import end devices button.
Wait for the end devices to be successfully imported. In case any device fails, you will see a relevant error message in the console.
If the import was successful, your devices are added to the list of end devices in your application.
Import devices via the CLI
To complete these steps, you need the have the latest version of ttn-lw-cli
installed on your system.
To import a file in The Things Stack, run the following command with ttn-lw-cli
:
# JSON format
ttn-lw-cli end-devices create --application-id <application-id> < devices.json
# CSV format
ttn-lw-cli end-devices template from-data --local-file devices.csv --format-id the-things-stack-csv \
| ttn-lw-cli end-devices template execute \
| ttn-lw-cli end-devices create --application-id <application-id>
This will import your devices in The Things Stack. In case any device import fails, you will see a relevant error message at the end of the output.
If the import was successful, you will see your devices added to the list of end devices in your application.
See the following video from The Things Network youtube channel for instructions.
Show video
Claim devices using Claim Authentication Code
Devices can be added in bulk together with their ownership information, through a process of device claiming using their claim authentication codes.
Claiming devices can be done using The Things Stack Console or the CLI, for single or multiple devices.
To claim a single device, first navigate to your application in The Things Stack Console and click the + Register end device button.
Select the Enter end device specifics manually, then provide Frequency plan, LoRaWAN version and Regional Parameters version.
In the Provisioning information section, fill in the JoinEUI of The Things Join Server and Confirm.
Then, enter the DevEUI, Claim authentication code and End device ID of a device that you wish to claim.
Finish by clicking Register end device.
To claim a single end device via the CLI, issue the following command:
ttn-lw-cli create <application-id> <device-id> \
--dev-eui <dev-eui> \
--app-eui <app-eui> \
--frequency-plan-id <frequency plan> \
--lorawan-version <lorawan-version> \
--lorawan-phy-version <lorawan-phy-version> \
--supports-join \
--claim-authentication-code.value <claim-authentication-code>
To claim multiple devices, you need to create a JSON file containing devices info with defined claim_authentication_code
. An example of an end device object:
{
"ids": {
"device_id": "my-device",
"dev_eui": "0102030405060708",
"join_eui": "0102030405060708"
},
"name": "My Device",
"description": "Living room temperature sensor",
"lorawan_version": "MAC_V1_0_2",
"lorawan_phy_version": "PHY_V1_0_2_REV_B",
"frequency_plan_id": "EU_863_870_TTN",
"supports_join": true,
"claim_authentication_code": {
"value": "1234"
}
}
Then, issue the CLI command to import the JSON file as explained above in Import devices via the CLI.
Note:
Thejoin-server-enabled
option in the CLI configuration has to be set to false
when claiming devices using the CLI.