Skip to main content

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)

Source distribution for iotlabmqtt 0.6.2
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page