This is the command-line-interface (CLI) for the SimpleIOT framework.
SimpleIOT abstracts out IoT device connectivity and hides the underlying details so you can focus on your application's unique features.
In the SimpleIOT world, an installation supports the following concepts:
pressure
, each unique Device will have its own instance of pressure
. You can get/set values associated with each Device instance by name.Data elements are bi-directional so that updates go from the devices to or from the cloud back to the device. It is up to the firmware to handle what to do with values received from the cloud.
This CLI can be used by both backend administrators as well as end-users.
As an Administrator, you need to:
aws configure
command.With this CLI, you can:
As a User, you can:
set
and get
operations.The CLI can be installed on systems running at least Windows 10 or MacOS Big Sur. It requires pre-installation of Python (Users + Administrators) and Docker Desktop (Administrators).
Administrators can install and remove the backend cloud for a SimpleIOT deployment. They can also invite new users to the Team so they can interact with an existing installation.
Before creating a backend, you need to make sure you have an AWS account created and a user account configured via the AWS Command Line Interface.
NOTE
This will require downloading and setting up an account with AWS IAM Administrative Privileges. If you are not allowed to have AWS admin privileges, a list of fine-grain IAM privileges will be released along with the SimpleIOT back-end sources. These can be used to create only the privileges needed by the system.
This is a one-time operation. Once configured, you may proceed with the following steps. You can configure multiple named profiles using the aws config
command. During installation, you will be prompted to choose which profile you would like to use. If only one account is configured, it will be considered the default profile.
For all Users:
Additionally, for Administrators:
Installing these may require other dependencies on Windows or Mac. Once installed, the system may need to be rebooted.
Open a powershell (Windows) or terminal (Mac) terminal window, then run:
pip install simpleiot-cli
Once installed, you can test the command-line interface:
% iot help
Usage: iot [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
auth User Authentication
cloud Cloud backend provisioning
data Data set and retrieve
datatype Model DataType management
device Device provisioning
firmware Generate sample source
location Location management
model Manage Models
project Project management
team Team management (CLI only)
template Project Template management
toolchain Project Template management
twin Manage Digital 3D Twin files
update OTA Firmware Updates
To uninstall simpleiot-cli
use the pip
command:
% pip uninstall simpleiot-cli
Note that this only removes the CLI itself. If you have installed other items, like the compiler toolchain or actual projects, those must be removed before reinstalling.
If the CLI was used to create a cloud backend, it should be deleted via:
% iot cloud uninstall
Be careful if you have allowed others access to this team. This command will permanently delete the entire backend infrastructure, including user accounts and all provisioned AWS IOT Things and certificates.
Once simpleiot-cli
is installed, you can verify that it is operational by running the iot --help
command. If this returns an error, your version of Python may be missing or not up-to-date. To verify, open a Powershell or Terminal window and enter:
% python --version
Python 3.9.4
You should get a version higher than 3.9. If not, please update or install the latest version of Python. If the python command is not found, re-run the Python installer and check the box that asks if it should be added to the PATH.
This could be due to a variety of reasons, including:
aws configure
has not been run properly.~/.aws
are not valid.Please check and remedy these problems before proceeding.
This project is licensed under the Apache-2.0 License.