Provide access to IoT-LAB experiments as MQTT agents.
Protocol documentation IoT-LAB-MQTT Documentation
Developped in the context of ARMOUR European Union project
Installation
Install in server mode on IoT-LAB frontend:
git clone https://github.com/iot-lab/iot-lab-mqtt.git cd iot-lab-mqtt pip install --user -e .[server]
Install in client mode on your computer:
git clone https://github.com/iot-lab/iot-lab-mqtt.git cd iot-lab-mqtt pip install --user .
Add python user install directory to the PATH by appending the following line in your ~/.bashrc:
export PATH="${HOME}/.local/bin:${PATH}"
You can do it with:
echo 'export PATH="${HOME}/.local/bin:${PATH}"' >> ~/.bashrc
# Reload configuration
source ~/.bashrc
If you do not have this, you will need to run the scripts from the repository directory prefixed with "./", so for example ./iotlab-mqtt-clients.
Documentation
The documentation can be generated with:
pip install --user sphinx make -C doc html
Context
Server
To use the tools, you should have use a MQTT broker. For this doc, I will use iot.eclipse.org. Both server and client agents will communicate through this centralized server.
Topics
MQTT is based on publish/subscribe on topics that are URLs.
To prevent collisions, I advise to prefix your URLs with something specific to your experiment and instance. I would say something like:
my/experiment/on/blablabla/IOTLAB_USERNAME/IOTLAB_EXPERIMENT_ID
Providing prefix on the tools uses the --prefix option.
More advanced
See the documentation on the implementation
Running
On the server, you should run the server agents first:
iotlab-mqtt-serial [ARGUMENTS] iotlab-mqtt-radiosniffer [ARGUMENTS] iotlab-mqtt-node [ARGUMENTS] iotlab-mqtt-process [ARGUMENTS]
And on the client, you should run either your client, or the provided example:
iotlab-mqtt-clients serial [ARGUMENTS] iotlab-mqtt-clients radiosniffer [ARGUMENTS] iotlab-mqtt-clients node [ARGUMENTS] iotlab-mqtt-clients process [ARGUMENTS] iotlab-mqtt-clients log [ARGUMENTS]
Arguments
You can get the list of arguments with --help option.
Global MQTT configuration
Broker address, url of the MQTT server:
broker
Broker port, defaults to 1883 (when I wrote it):
--broker-port BROKER_PORT
Topics prefix, your topic namespace:
--prefix PREFIX
Client MQTT configuration
Server agent site name, IoT-LAB site name:
--site IOTLAB_SITE
IoT-LAB API usage configuration
Configuration for server that use IoT-LAB API (radiosniffer). When not provided, the tool tries to detect them from .iotlabrc and current running experiment.
IoT-LAB API username:
--iotlab-user IOTLAB_USERNAME
IoT-LAB API password:
--iotlab-password IOTLAB_PASSWORD
IoT-LAB experiment ID to use:
--experiment-id EXPERIMENT_ID
Metadata
Release files for iotlabmqtt 0.6.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| iotlabmqtt-0.6.2.tar.gz | 61.9 kB | Without provenance | Details for iotlabmqtt-0.6.2.tar.gz |
Release files / iotlabmqtt-0.6.2.tar.gz
| Download URL | iotlabmqtt-0.6.2.tar.gz |
|---|---|
| Size | 61.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7ae5e764e2f45595786cbdff753fd9225db2c5a7fa870d41bda59306b8b2ed42
|
|
BLAKE2b-256 checksum How to use checksums |
2d942f6c9e19a8e4d70dde3a5f9c572265d23c75a5f87d94cb331be69329a5a9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
Security for iotlabmqtt 0.6.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.