Skip to main content

Scripts and utilities for working with the nRF Cloud

Project description

nRF Cloud Utilities

nRF Cloud Utils is a script collection to make it easier to interface with nRF Cloud. A common use-case is to register devices with your account or to run a fota job.

The scripts in this repository mainly use endpoints in the REST API.

The scripts are gathered from various teams and organized according to their programmatic language: Python.

See also the official nRF Cloud documentation.

Install

Run the following command to use this package as a dependency:

pip3 install nrfcloud-utils

Requirements

Do you already have an nRF Cloud account? If not, please visit nrfcloud.com and register. Then, click on the burger on the top-right to get to your user account. Take note of your API key, you will need it soon. Note that if you are part of multiple teams on nRF Cloud, the API key will be different for each one.

To register a device, you need compatible firmware flashed to it. Most scripts work with an AT Host library enabled app or the AT Client sample flashed. However, if you intend to use the Provisioning Service, you will need to enable its library in your firmware or flash the nRF Cloud Multi Service sample.

How-To: Registering devices quickly

Start by creating a local certificate authority (CA). Its contents won't be checked, but you need one to make certificates for your devices. Optionally, pass options to the script to specify owner information.

create_ca_cert

Now, you should have three .pem files containing the key pair and the CA certificate of your CA. The files have a unique prefix.

The fastest way to get your device registered is using the Device Credentials Installer:

device_credentials_installer -d --ca *_ca.pem --ca-key *_prv.pem --coap --verify

Upon success, you can find an onboard.csv file with information about your device. We need this file to register the certificate with your account. If you encounter a No device found error, you might need to specify the serial port using the --port option.

Finally, add the device to your account with the Onboarding script:

nrf_cloud_onboard --api-key $API_KEY --csv onboard.csv

You can also install credentials on many devices in a row using the --append option and add the bulk onboard.csv to your account with the same command.

Congratulations! You have successfully registered your device. When compiling with the nRF Cloud Libraries, make sure to use the correct KConfig options:

CONFIG_NRF_CLOUD_CLIENT_ID_SRC_INTERNAL_UUID=y
CONFIG_NRF_CLOUD_SEC_TAG=16842753

For a more detailed overview of the scripts, see Advanced Usage. There, you can also find details on how to use the Provisioning Service instead of provisioning your devices locally.

Development installation

Clone the repository:

git clone https://github.com/nRFCloud/utils.git nrfcloud-utils
cd nrfcloud-utils

For development mode, you need poetry:

curl -sSL https://install.python-poetry.org | python3 -

Make sure poetry is in your PATH. If you're using bash:

echo 'export PATH=/home/$USER/.local/bin:$PATH' | tee -a ~/.bashrc
source ~/.bashrc

Install package dependencies, development dependencies, and the nrfcloud-utils into poetry's internal virtual environment:

poetry install

Test

Unit tests are included in the tests folder. Each test script corresponds to a script in the sources. Static files used in the tests are put in the tests/fixtures folder. Running the tests depends on a development installation.

poetry run pytest

Check coverage

poetry run pytest --cov=. tests

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nrfcloud_utils-0.0.1.tar.gz (45.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nrfcloud_utils-0.0.1-py3-none-any.whl (57.4 kB view details)

Uploaded Python 3

File details

Details for the file nrfcloud_utils-0.0.1.tar.gz.

File metadata

  • Download URL: nrfcloud_utils-0.0.1.tar.gz
  • Upload date:
  • Size: 45.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.10.12 Linux/6.8.0-52-generic

File hashes

Hashes for nrfcloud_utils-0.0.1.tar.gz
Algorithm Hash digest
SHA256 ac3d052d08d38a8947ee50a8c5a8026dd7ae153a2245800a5a1ab1ea5c397ae4
MD5 557a8a779f30a7899f7486ba335d850e
BLAKE2b-256 0bf8bde6da78bdc9964ef1f553b49977a2702824096e06f40c1bd383ad61df91

See more details on using hashes here.

File details

Details for the file nrfcloud_utils-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: nrfcloud_utils-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 57.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.10.12 Linux/6.8.0-52-generic

File hashes

Hashes for nrfcloud_utils-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 327b840679ac29dc7ae6cf69419f8648c3100e5ee0c186a84cf1e657032b30fc
MD5 1d392f384df270ecc6dc038e1a0c7d9c
BLAKE2b-256 8454deac0291a4c196c4f49cd9c1127ed843491e84bd62bc412b39a3b2864a75

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page