Skip to content

Commanding Feature – Samples for Publishing MQTT commands to agents

Commanding Feature is a service that provides the APIs to manage delivery jobs to send commands to MQTT agents for execution. The examples below exemplify how to use the provided endpoints:

Prerequisites

Creating a delivery job

The Commanding feature provides functionality for sending MQTT command to a list of agents for execution.

The following validations are performed when a delivery job is created:

  • The provided list of agents must be valid.
  • Maximum number of agents can be 20 in a delivery job.
  • Data size is restricted to 4KB.

A command is sent using the following endpoint:

POST/deliveryJobs

Sample Request:

{
  "name": "firmware update",
  "clientIds": [
    "mytenant_201541ad38a4495a96e2021c762b647f"
  ],
  "data": {
    "additionalProp1": "string",
    "additionalProp2": "string",
    "additionalProp3": "string"
  },
  "createdBy": "user@mailId.com"
}

Sample Response:

{
  "id": "21349765fe45652c8e126814c283a114",
  "name": "firmware update",
  "clientIds": [
    "mytenant_201541ad38a4495a96e2021c762b647f"
  ],
  "tenantId": "mytenant",
  "status": "EXECUTING",
  "data": {
    "additionalProp1": "string",
    "additionalProp2": "string",
    "additionalProp3": "string"
  },
  "createdAt": "2011-08-12T20:17:46.384Z",
  "createdBy": "user@mailId.com"
}

The ID generated tenantId is referenced further to get, delete a delivery job and get all commands for a given delivery job.

For more information, refer Commanding Feature Sync API specifications.

Listing all delivery jobs

Use the following endpoint to list all delivery Jobs:

GET/deliveryJobs

Sample Response:

{
  "_embedded": {
    "deliveryJobs": [
      {
        "id": "21349765fe45652c8e126814c283a114",
        "name": "firmware update",
        "status": "EXECUTING",
        "createdAt": "2011-08-12T20:17:46.384Z"
      }
    ]
  },
  "page": {
    "size": 0,
    "totalElements": 0,
    "totalPages": 0,
    "number": 0
  },
  "_links": {
    "self": {
      "href": "string"
    },
    "first": {
      "href": "string"
    },
    "prev": {
      "href": "string"
    },
    "next": {
      "href": "string"
    },
    "last": {
      "href": "string"
    }
  }
}

For more information, refer Commanding Feature Sync API specifications.

Managing delivery jobs

Here, tenantId, the id generated while Creating a delivery job is used.

  • Use the following endpoint to get a delivery job:

    GET​/deliveryJobs​/{id}
    
  • Use the following endpoint to delete a delivery job:

    DELETE/deliveryJobs​/{id}
    
  • Use the following endpoint to get the all the commands for a given delivery job:

    GET/deliveryJobs​/{id}​/commands
    
  • Use the following endpoint to get the command associated with a delivery job by command id:

GET/deliveryJobs/{id}/commands/{commandId}

For more information, refer Commanding Feature Sync API specifications.


Last update: January 31, 2024

Except where otherwise noted, content on this site is licensed under the Development License Agreement.