Skip to main content
Version: 0.12.0

Thin-edge Agent

Thin-edge agent is a set of services that implement the device management operations on a device. Examples of such device management functionality include:

  • software management, checking installed packages and updating these packages
  • configuration management, checking and updating configuration files
  • firmware management, updating the firmware of the device
  • device restart
  • remote access to a console on the device from the cloud
  • log file management, retrieving excerpts from log files
note

In the current version of thin-edge, the agent features are not implemented by a single executable, but by a set of executables:

  • tedge-agent
  • c8y-configuration-plugin
  • c8y-firmware-plugin
  • c8y-log-plugin
  • c8y-remote-access-plugin

The short-term plan is to re-organize these plugins to move the Cumulocity aspects into the Cumulocity mapper and to group the management operations into a single executable.

Thin-edge agent acts as a device connector:

  • listening to operation requests published on the MQTT bus
  • delegating the actual operations to the operating system or other components
  • reporting progress of the requests

Operation MQTT topics​

Operation requests are published by the requesters on operation specific topics:

tedge/commands/req/{operation-type}/{operation-action}

Where the combination of operation-type and operation-action is the well-known name of the operation request, such as:

  • software/update
  • control/restart

The corresponding operation responses are published to associated topics:

tedge/commands/res/${operation-type}/${operation-action}

Here are the topics used by the device management operations

OperationRequest TopicResponse Topic
Get Software Listtedge/commands/req/software/listtedge/commands/res/software/list
Software Updatetedge/commands/req/software/updatetedge/commands/res/software/update
Get Configurationtedge/commands/req/config_snapshottedge/commands/res/config_snapshot
Set Configurationtedge/commands/req/config_updatetedge/commands/res/config_update
Get Logtedge/commands/req/log/gettedge/commands/res/log/get
Restart devicetedge/commands/req/control/restarttedge/commands/res/control/restart
Remote connecttedge/commands/req/control/connecttedge/commands/res/control/connect