Nodes Agent

IoT-LAB MQTT Node agent

Node Agent provides access to the IoT-LAB nodes interactions:

  • update the node firmware
  • reset the CPU
  • power node ON and OFF

Node agent base topic:

{prefix}/iot-lab/node/{site}

Every topics from node agent topics start by this topic prefix

param prefix:configured prefix
param site:site where the agent is run

Topics Summary

  Topic Type
Node agent
{prefix}/iot-lab/node/{site}
  {nodeagenttopic}/error/ Error
Node
  {nodeagenttopic}/{archi}/{num}/ctl/update Request
  {nodeagenttopic}/{archi}/{num}/ctl/reset Request
  {nodeagenttopic}/{archi}/{num}/ctl/poweron Request
  {nodeagenttopic}/{archi}/{num}/ctl/poweroff Request

Node Agent global topics

Error Topic

Asynchronous error messages are posted to error topic. Failure on requests are not duplicated here.

  • {nodeagenttopic}/error/

For format see: Error topic

Node topics

Requests to interact with nodes.

Update firmware

Update node with given firmware. If no firmware is provided empty, default idle firmware is used instead.

archi:supported m3

update request:
Topic: {nodeagenttopic}/{archi}/{num}/ctl/update
Message Topic Payload
Request {topic}/request/{clientid}/{requestid}
Firmware binary or
empty for idle
Reply {topic}/reply/{clientid}/{requestid} empty or error_msg

Reset cpu

Reset node CPU to restart firmware execution.

archi:supported m3

reset request:
Topic: {nodeagenttopic}/{archi}/{num}/ctl/reset
Message Topic Payload
Request {topic}/request/{clientid}/{requestid} empty
Reply {topic}/reply/{clientid}/{requestid} empty or error_msg

Power OFF Node

Power OFF node.

Note:Nodes are powered ON by default.
archi:supported m3, a8

poweroff request:
Topic: {nodeagenttopic}/{archi}/{num}/ctl/poweroff
Message Topic Payload
Request {topic}/request/{clientid}/{requestid} empty
Reply {topic}/reply/{clientid}/{requestid} empty or error_msg

Power ON Node

Power ON node if it has been powered OFF. Powering ON an already powered ON does nothing.

Note:Nodes are powered ON by default.
archi:supported m3, a8

poweron request:
Topic: {nodeagenttopic}/{archi}/{num}/ctl/poweron
Message Topic Payload
Request {topic}/request/{clientid}/{requestid} empty
Reply {topic}/reply/{clientid}/{requestid} empty or error_msg