Introduction

QuecCloud IoT Platform provides safe and reliable services, facilitates the rapid access of various terminal devices to the network, data transmission, data storage, data management and other complete interaction.

QuecHub is a part of QuecCloud IoT Platform responsible for data transmission between the platform and modules as well as that between the platform and customers’ application servers through APIs offered by QuecCloud.

5 Steps to Get Started

Five steps to gear you up and to help you master QuecCloud IoT Platform.

  • 01

  • 02

  • 03

  • 04

  • 05

AT+QIOTREG=1

+QIOTEVT:3
+QIOTEVT:0

AT+QIOTSEND=3,303132,0x0000

OK

+QLWDATARECV:19.1.0.5,Hello world

AT+QIOTREG=1

+QIOTEVT:3
+QIOTEVT:0

+QIOTEVT:3
+QIOTEVT:0
AT+QIOTSEND=3,303132,0x0000
OK


Access TokenPOSTAccess token properties
Add ModulePOSTAdd device properties
Update ModulePOSTUpdate device properties
Delete ModuleDELETEDelete device properties
Pull Device InformationGETAcquire device properties
Send DataPOSTSend data
Pushing APIsPOSTPush Data to Customer's Server (Pushing API)
Query Historical DataGETQuery historical data

URL: http(s)://api.quectel.com/v1/token


appIdStringRequiredApplication ID
secretStringRequiredApplication Secret

codeIntegerRequired200 indicates the request has succeeded,other values indicate errors
msgStringError description
dataaccess_tokenStringRequiredThe token encapsulating security identity and credentials of the access
expires_inIntegerRequiredThe remaining valid time in seconds

Request Method: HTTP(S) POST

Request:
https://api.quectel.com/v1/token
Content-Type:application/x-www-form-urlencoded
Body:
appId=******&secret=******

Response:
Status Code: 200 OK
Content-Type: application/json
Body:
{
  "code": 200,
  "msg": "",
  "data":{
    "access_token": "******",
    "expires_in": 7000
  }
}

appId
StringRequiredApplication ID
secret
StringRequiredApplication Secret



Request:


Response:

Body:

URL: http(s)://api.quectel.com/v1/module


moduleNameStringRequiredModule name (recommended to be the IMEI number)
imeiStringRequiredIMEI number
imsiStringIMSI number
protocolIntegerRequiredAccess protocols:
1: MQTT
2: CoAP
3: HTTP(S)
typeStringDevice type (such as water meter, electricity meter, etc.)

codeIntegerRequired200 indicates the request has succeeded,other values indicate errors
msgStringError description

Request Method: HTTP(S) POST

Request:
https://api.quectel.com/v1/module
Content-Type:application/x-www-form-urlencoded
Header:
access_token:******
Body:
moduleName=myModule&imei=8637030308225192&protocol=1

Response:
Status Code: 200 OK
Content-Type: application/json
Body:
{
  "code": 200,
  "msg": ""
}

moduleName
StringRequiredModule name (recommended to be the IMEI number)
imei
StringRequiredIMEI number
Protocol
IntegerRequiredProtocol



Request:


Response:

Body:

URL: http(s)://api.quectel.com/v1/module/{imei}


moduleNameStringRequiredModule name (recommended to be the IMEI number)
imeiStringRequiredIMEI number
imsiStringIMSI number
protocolIntegerRequiredAccess protocols:
1: MQTT
2: CoAP
3: HTTP(S)
typeStringDevice type (such as water meter, electricity meter, etc.)

codeIntegerRequired200 indicates the request has succeeded,other values indicate errors
msgStringError description

Request Method: HTTP(S) PUT

Request:
https://api.quectel.com/v1/module/8637030308225192
Content-Type:application/x-www-form-urlencoded
Header:
access_token:******
Body:
moduleName=myModuleNewName&imei=8637030308225192&protocol=2&type=SmokeDetector

Response:
Status Code: 200 OK
Content-Type: application/json
Body:
{
  "code": 200,
  "msg": ""
}

moduleName
StringRequiredModule name (recommended to be the IMEI number)
imei
StringRequiredIMEI number
imsi
StringIMSI number
Protocol
IntegerRequiredAccess protocols:
* 1: MQTT
* 2: CoAP



Request:


Response:

Body:

URL: http(s)://api.quectel.com/v1/module/{imei}


imeiStringRequiredIMEI number

codeIntegerRequired200 indicates the request has succeeded,other values indicate errors
msgStringError description

Request Method: HTTP(S) DELETE

Request:
https://api.quectel.com/v1/module/8637030308225192
Content-Type:application/x-www-form-urlencoded
Header:
access_token:******

Response:
Status Code: 200 OK
Content-Type: application/json
Body:
{
  "code": 200,
  "msg": ""
}

imei
StringRequiredIMEI number



Request:


Response:

Body:

URL: http(s)://api.quectel.com/v1/module/{imei}


imeiStringRequiredIMEI number

codeIntegerRequired200 indicates the request has succeeded,other values indicate errors
msgStringError description
datamoduleNameStringModule name
imeiStringIMEI number
imsiStringIMSI number
typeStringDevice type (such as water meter, electricity meter, etc.)
protocolIntegerAccess protocols:
1: MQTT
2: CoAP
3: HTTP(S)
statusIntegerModule status:
0: offline
1: online
createTimeStringCreate time
swStringFirmware version
ocStringOrdering code of the module
snStringSN number of the module
lastLoginTimeStringLast login time of the module
locationStringLocation information
secretStringDevice key required for MQTT connection
pskStringPSK required for coap/dtls connection

Request Method: HTTP(S) GET

Request:
https://api.quectel.com/v1/module/8637030308225191
Content-Type:application/x-www-form-urlencoded
Header:
access_token:******

Response:
Status Code: 200 OK
Content-Type: application/json
Body:
{
  "code": 200,
  "data": {
    "moduleName": "460060093079197",
    "imei": "1233456778888",
    "imsi": "1233456778888",
    "type": "temperature sensor",
    "protocol": 2,
    "status": 0,
    "createTime": "1521171652",
    "sw": "BC68JAR01A02",
    "oc": "BC68JA-02-STD",
    "sn": "D1A18A40B000176",
    "lastLoginTime": "1523853612",
    "location": "31.249162,121.487899"
    "secret": ""
    "psk": "21b80a94144385d7a02a1c8a3261541f"
  }
}

imei
StringRequiredIMEI number



Request:


Response:

Body:

URL: http(s)://api.quectel.com/v1/module


pageSizeIntegerCapacity of each page (10 pieces of modules’ information by default)
pageNumIntegerPage number (1 by default)
keywordStringKeyword for querying: module name/IMEI number
moduleStatusIntegerModule status
1: online
0: offline
orderByStringSorting the module information by:
moduleName: module name
createTime: create time
descStringAscending/ descending order:
desc: descending
asc: ascending

codeIntegerRequired200 indicates the request has succeeded,other values indicate errors
msgStringError description
totalIntegerRequiredTotal number
pageSizeIntegerCapacity of each page
pageNumIntegerPage number
pagesIntegerTotal number of pages
datamoduleNameStringModule name
imeiStringIMEI number
imsiStringIMSI number
typeStringDevice type (such as water meter, electricity meter, etc.)
protocolIntegerAccess protocols:
1: MQTT
2: CoAP
3: HTTP(S)
statusIntegerModule status:
0: offline
1: online
createTimeStringCreate time
swStringFirmware version
ocStringOrdering code of the module
snStringSN number of the module
lastLoginTimeStringLast login time of the module
locationStringLocation information
secretStringDevice key required for MQTT connection
pskStringPSK required for coap/dtls connection

Request Method: HTTP(S) GET

Request:
https://api.quectel.com/v1/module?pageNum=1&pageSize=2&keyword=86370303082251
Content-Type:application/x-www-form-urlencoded
Header:
access_token:******

Response:
Status Code: 200 OK
Content-Type: application/json
Body:
{
  "code": 200,
  "msg": "",
  "total": 13,
  "pageNum": 1,
  "pageSize": 2,
  "pages": 7,
  "data": [
  {
    "moduleName": "863703030822331",
    "imei": "863703030822331",
    "imsi": "460067093011497",
    "type": "temperature sensor",
    "protocol": 2,
    "status": 0,
    "createTime": "1521171652",
    "sw": "BC68JAR01A02",
    "oc": "BC68JA-02-STD",
    "sn": "D1A18A40B000176",
    "lastLoginTime": "1523853612",
    "location": "31.249162,121.487899"
    "secret": ""
    "psk": "21b80a94144385d7a02a1c8a3261541f"
  },
  {
    "moduleName": "863703030822332",
    "imei": "863703030822332",
    "imsi": "460067093011498",
    "type": "temperature sensor",
    "protocol": 0,
    "status": 0,
    "createTime": "1521171652",
    "sw": "BC68JAR01A02",
    "oc": "BC68JA-02-STD",
    "sn": "D1A18A40B000176",
    "lastLoginTime": "1523853612",
    "location": "31.249162,121.487899"
    "secret": ""
    "psk": ""
  }
  ]
}



Request:


Response:

Body:

URL: http(s)://api.quectel.com/v1/data


imeiStringRequiredIMEI number
dataStringRequiredData to be sent (no more than 512 bytes)

codeIntegerRequired200 indicates the request has succeeded,other values indicate errors
msgStringError description

Request Method: HTTP(S) POST

Request:
https://api.quectel.com/v1/data
Content-Type:application/x-www-form-urlencoded
Header:
access_token:******
Body:
imei=8637030308225192&data=helloword

Response:
Status Code: 200 OK
Content-Type: application/json
Body:
{
  "code": 200,
  "msg": ""
}

imei
StringRequiredIMEI number
data
StringRequiredData to be sent (no more than 512 bytes)



Request:


Response:

Body:

URL: N/A


dataIdIntegerData ID
imeiStringRequiredIMEI number
dataStringData reported by the device
sendTimeStringData send time

Request Method: HTTP(S) POST

Request:
https://xxx.xxx/ (API to be used for data receiving)
Content-Type:application/json
Body:
{
  "dataId": 60056,
  "imei": "863703030822419",
  "data": "helloworld",
  "sendTime": "1530409803"
}

Response: (expected response)
Status Code: 200 OK
Content-Type: text/plain
Body:
success

URL: N/A


dataIdIntegerRequiredData ID
imeiStringRequiredIMEI number
dataStringRequiredData requested to send
addTimeStringTime when data sending request was added
sendStatusIntegerData sending status:
-1: Sending failed
0: Sending request is added but not executed.
1: Sent successfully
sendTimeStringTime when data is sent to the device

Request Method: HTTP(S) POST

Request:
https://xxx.xxx/ (API to be used for data receiving)
Content-Type:application/json
Body:
{
  "dataId": 60056,
  "imei": "863703030822419",
  "data": "helloword",
  "addTime": "1530409503",
  "sendStatus":1,
  "sendTime": "1530409803"
}

Response: (expected response)
Status Code: 200 OK
Content-Type: text/plain
Body:
success

URL: http(s)://api.quectel.com/v1/data


imeiStringRequiredIMEI number
directionIntegerDirection of data flow:
1: uplink
2: downlink
startTimeStringData sending start time of the data to be queried
endTimeStringData sending end time of the data to be queried
orderByStringSorting the data by:
* direction: uplink/downlink
* sendTime: sending time of the date to be queried
descStringAscending/ descending order:
* desc: descending
* asc: ascending
pageSizeIntegerCapacity of each page (10 pieces of historical data by default)
pageNumIntegerPage number (1 by default)

codeIntegerRequired200 indicates the request has succeeded,other values indicate errors
msgStringError description
totalIntegerRequiredTotal number
pageSizeIntegerCapacity of each page
pageNumIntegerPage number
pagesIntegerTotal number of pages
dataimeiStringIMEI
directionIntegerDirection of data flow:
1: uplink
2: downlink
dataStringHistorical data of module
sendTimeStringData sending time

Request Method: HTTP(S) GET

Request:
https://api.quectel.com/v1/data?imei=866971030103324&orderBy=sendTime&desc=desc&pageNum=10&pageSize=2
Content-Type:application/x-www-form-urlencoded
Header:
access_token:******

Response:
Status Code: 200 OK
Content-Type: application/json
Body:
{
  "code": 200,
  "msg": "",
  "total": 5,
  "pageNum": 2,
  "pageSize": 2,
  "pages": 3,
  "data": [
  {
    "imei": "866971030103324",
    "direction": 1,
    "data": "helloword",
    "sendTime": "1530414750"
  },
  {
    "imei": "866971030103324",
    "direction": 1,
    "data": "helloworld",
    "sendTime": "1530414890"
  }
  ]
}

imei
StringRequiredIMEI number



Request:


Response:

Body:

+86 0551-65869386

QuecLocator

Your Easy and Reliable Positioning Service Provider, Securing Accurate Positioning , Anytime, Anywhere.


Introduction

QuecLocator is an Internet of Things location service provided by Quectel, which can be used without any additional hardware.

  • Cellular Positioning
  • Wi-Fi Positioning
  • Hybrid Positioning (Cellular + Wi-Fi)
TechnologyDescriptionScenarioAccuracy
CellularPositioning based on
Cell ID with algorithm
Outdoor, indoor, global coverage500m~1500m
Wi-FiPositioning based on Wi-Fi Access
Point (AP) information with algorithm
Indoor, urban~50m
Cellular + Wi-FiHybrid positioning based on Cell ID
and Wi-Fi AP with algorithm
Anywhere, global coverage~50m

Advantages

Why Use the QuecLocator? There are 5 advantages of QuecLocator.

  • Hybrid positioning technologies
  • Public cloud service infrastructure
  • Lightweight OTT positioning solution
  • Only one AT command to obtain position
  • Secure and no private information collected

QuecLocator Working Process

There is no need for extra GNSS or Wi-Fi modules when using QuecLocator.


AT Commands

Listed below are part of commands relevant to QuecLocator.

1. Configure QuecLocator

AT Command

Test CommandAT+QLBSCFG=?OK
Read CommandAT+QLBSCFG?+QLBSCFG: "asynch",<asynch_mode>
+QLBSCFG: "timeout",<time>
+QLBSCFG: "server",<address>
+QLBSCFG: "token",<token_value>
+QLBSCFG: "timeUpdate",<update_mode>
+QLBSCFG: "withTime",<with_mode>

OK
Write CommandAT+QLBSCFG="asynch"[,<asynch_mode>]If <asynch_mode> is present, configure the mode of AT+QLBS:
OK
Or
ERROR

If <asynch_mode> is omitted, query the current mode of AT+QLBS: +QLBSCFG: "asynch",<asynch_mode>
OK
Write CommandAT+QLBSCFG="timeout"[,<time>]If <time> is present, configure the maximum waiting time:
OK
Or
ERROR
If <time> is omitted, query the maximum waiting time:
+QLBSCFG: "timeout",<time>

OK
Write CommandConfigure Quectel Server interface AT+QLBSCFG="server"[,<server_name>]If <server_name> is present, configure the domain/IP address and port of the server:
OK
Or
ERROR

If <server_name> is omitted, query the domain/IP address and port of the server:
+QLBSCFG: "server",<server_name>

OK
Write CommandAT+QLBSCFG="token"[,<token_value>]If <token_value> is present, configure token value:
OK
Or
ERROR

If <token_value> is omitted, and the <token_value> has been set, query the token value:
+QLBSCFG: "token", "****************"

OK

If <token_value> is omitted, and the <token_value> has not been set:
+QLBSCFG: "token", ""

OK
Write CommandAT+QLBSCFG="timeUpdate"[,<update_mode>]If <update_mode> is present, configure whether to update the time to RTC:
OK
Or
ERROR

If <update_mode> is omitted, query whether the time will be updated to RTC:
+QLBSCFG: "timeUpdate",<update_mode>

OK
Write CommandAT+QLBSCFG="withTime"[,<time_mode>]If <time_mode> is present, configure whether to output the time when calling AT+QLBS:
OK
Or
ERROR

If <time_mode> is omitted, query whether the time will be outputted when calling AT+QLBS:
+QLBSCFG: "withTime",<time_mode>

OK

Parameter

<asynch_mode>The command executing mode of AT+QLBS. In different modes, the response of the command will be different.
0 Synchronous mode
1 Asynchronous mode
<time>The maximum waiting time for data from the server. If there is no any data coming from the server within this time value, the command will be timeout and error code 3827 will be returned. The range is 10-120, and the default value is 60 (unit: second).
<server_name>String type. The domain/IP address and the port of the server. Users can define their own servers as well. The format is “domain/IP address:port”(e.g. “www.queclocator.com:80”). The range of the port is 1-65535. And if the port is not specified, the default port will be 80.
<token_value>String type. The identification token value required for the server. The length is 16 bytes.
<update_mode>Whether to update the time, which is acquired by accessing the server of QuecLocator, to RTC. The default value is 0.
0 Do not update the time to RTC
1 Update the time to RTC
<time_mode>Whether to output the time when calling AT+QLBS. The default value is 0.
0 Do not output the time
1 Output the time

2. Obtain Location by QuecLocator

AT Command

Test CommandAT+QLBS=?OK
Write CommandAT+QLBS= <mode>[,<mac_num>,"<ap_mac1>", <rssi1>[,"<ap_mac2>",<rssi2>[,…]]]If the module is in synchronous mode and location is successful
+QLBS: <loc_result>,<latitude>,<longitude>
OK
Or
+QLBS: <loc_result>

If the module is in asynchronous mode and location is successful
OK
+QLBS: <loc_result>,<latitude>,<longitude>
Or
OK
+QLBS:<loc_result>

Parameter

<mode>Positioning mode
1. Server will only use the first valid information of cell site to get the location
2. Server will use the valid cell information of at least 3 cell sites to get the location through triangulation
3. Manually input Wi-Fi MAC addresses to get the location
<mac_num>The number of inputted Wi-Fi MAC addresses. Range: 2-6
<ap_mac>Wi-Fi MAC addresses of nearby Wi-Fi hotspots
<rssi>Received signal strength indication.
<latitude>Float type. The latitude of the location information. This value is accurate to six decimal places, and the range is from -90.000000 to 90.000000
<longitude>Float type. The longitude of the location information. This value is accurate to six decimal places, and the range is from -180.000000 to 180.000000.
<loc_result>Positioning result. If positioning is successful, it will be 0. if positioning fails, it will be <err>

Note:

1. For complete AT commands and instruction about how to configure and use QuecLocator, please refer to Quectel_QuecLocator_Application_Note.

2. QuecLocator supports Wi-Fi assisted location. For modules that do not support auto Wi-Fi scanning, Wi-Fi information can be input manually through the AT command to get the location as well.

QuecFOTA

1. Introduction

This document mainly introduces how to use the QuecFOTA on QuecCloud platform to upgrade module's firmware in the customer's device.

QuecFOTA refers to FOTA (Firmware Over-The-Air) service on QuecCloud platform, which provides customers with firmware wireless upgrade solutions through QuecCloud platform.

FOTA upgrade function lists on QuecCloud service platform include Quick upgrade, Firmware, Device group and Upgrade campaign.

Figure 1: QuecFOTA Functions

2 User Guide

2.1. Quick Upgrade

Quick Upgrade is provided in QuecFOTA to help users to quickly start a FOTA upgrade for devices. There are 3 steps to start the upgrade.

2.1.1. Step 1/3 Select Device

1.First, log into QuecCloud and click “QuecFOTA” in the navigation bar to enter QuecFOTA page. Then, click “Quick Upgrade” to enter Quick Upgrade Page, as shown below.

Figure 2: Quick Upgrade


2.Click “Get Started” to start with Step 1/3 (Select Devices). Then, select devices to be upgraded through methods “Import Device List File” or “Device Group” in the first dropdown list and finish the corresponding information. Then, click “Next Step” to enter the next step.

Figure 3: Select Devices via Device List File


Figure 4: Select Devices via Device Group


NOTES:

1.A device group needs to be created in Device Group Page first if there is no device group, please refer to Chapter 2.3.

2.Please click “Download Template” to acquire the template of device list file and fill in the device information strictly according to the format, in which the IMEI column must be filled in. After the importing completed, a new device group will be created automatically with a default group name, which will be changed to the same name of the upgrade campaign after Step 2/3. The newly created group can be used for other upgrade campaigns with the same devices.


2.1.2. Step 2/3 Select Target Version

After entering Step 2/3 (Select Target Version), please input “Campaign Name” first. Then, select the target firmware version from “Select Target Version” dropdown list. If the target firmware is not found, please input to select. Then, click “Next Step” to finish selecting the target version.

Figure 5: Select Target Version


NOTES:

1.The package of target firmware version will be added by Quectel, please select the target firmware version directly.

2.Target firmware package can also be added according to practical applications, please refer to Chapter 2.2.


2.1.3. Step 3/3 Create Upgrade Campaign

1.After target firmware version is selected and upgrade campaign name is specified, please specify the limit options for this upgrade campaign in Step 3/3 (Create Upgrade Campaign), as shown in the following figure.

Figure 6: Create Upgrade Campaign


2.Then, click “Activate” to save and activate the FOTA upgrade campaign. If the campaign is not ready to be activated, click “Save” instead to save the campaign only for editing and activating in the future. After Step 3/3 is finished, the page will be turned to Upgrade Campaign Page, which can be viewed by clicking “Upgrade Campaign” in the side navigation menu of QuecFOTA.


NOTES:

1.The limit options in Step 3/3 will take effect after setting, please hover the mouse over question marks after each option to view the instruction.

2.After activated in QuecCloud by clicking “Activate”, the upgrade process of each device will only be triggered by AT command from the device’s side, please refer to Chapter 2.1.4.

Please click the “Details” of corresponding campaign in Upgrade Campaign Page to edit or activate the saved campaign. Activated campaign cannot be edited. Please refer to Chapter 2.4 for details.


2.1.4. Triggered by AT commands

QuecFOTA upgrade process in devices is divided into the process of download triggering and upgrade triggering. After activated in QuecCloud, the upgrade needs to be triggered by AT commands from the device’s side.


Taking the device using BG96 module as an example, AT command AT+QFOTADL=7 is used to trigger download of the firmware, the command and response is shown as below.


//If QuecFOTA is used in China
AT+QFOTADL=7
OK
+QIND: "FOTA","HTTPSTART"
+QIND: "FOTA","HTTPSEND",0
+QIND: "FOTA",0


//If QuecFOTA is used outside China
AT+QFOTADL=7,"http://global-southbound.quectel.com"
OK
+QIND: "FOTA","HTTPSTART"
+QIND: "FOTA","HTTPSEND",0
+QIND: "FOTA",0

AT command AT+QFOTADL=1 is used to trigger upgrade of the firmware, the command and response is shown as below.

//If QuecFOTA is used in China
AT+QFOTADL=1
OK
+QIND: "FOTA","START"


//If QuecFOTA is used outside China
AT+QFOTADL=1,"http://global-southbound.quectel.com"
OK
+QIND: "FOTA","START"

NOTES:

1.Please contact Quectel for technical support for AT commands of other modules.

2.After the upgrade, the upgrade log and report can be viewed in QuecCloud, please refer to Chapter 2.4.3 and Chapter 2.4.4.


2.2. Firmware

2.2.1. Upload Firmware Package

Firmware can be added in Firmware Page according to practical needs. The steps below exhibit how to add a firmware package.

1.After logging into QuecCloud, click “QuecFOTA” in the navigation bar to enter QuecFOTA. Then, click “Firmware” in the side navigation menu to enter Firmware Page. In the Firmware Page, click “Add Firmware” at the upper-right corner to pop up the Add Firmware Window, as shown in the figure below.

Figure 7: Firmware Page


2.Fill in the information of “Current Version”, “Target Version”, “Module Type” and “Version Information”, and click “Select Firmware” to upload the target firmware package.

Figure 8: Add Firmware Information


3.Click “Add”, then the firmware will be added.

NOTES:

The real current version that the module is running, which is used to verify the current version during upgrade, should be filled in “Current Version”. Otherwise, the upgrade will fail due to verification error.


2.3. Device Group

2.3.1. Create New Device Group

A device group needs to be created before upgrade via QuecFOTA. The steps below exhibit how to create a new device group.

1.Click “Device Group” in the side navigation menu to enter Device Group Page. In this page, click “Create Device Group” at the upper-right corner to pop up the Create Device Group Window, as shown in the figure below.

Figure 9: Device Group Page


After entering the group name in “Device Group Name” and selecting the method to add device from the dropdown list of “Add Device”, the required field of corresponding method will be displayed. Then, finish the fields according to different methods and click “Create” to create the device group.

2.There are four methods: “Import by Product” (add by created product category), “Import by IMEI Segment” (add by IMEI number segments of devices), “Import by IMEI List File” (add by IMEI list file) and “Import by IMEI” (add by specific IMEI numbers of devices).

Figure 10: Create Device Group Window


2.3.2. Add/Remove Devices in Created Device Group

  • If there are new devices to be added into a device group that has already been created, click “Detail” in the “Actions” column to enter the corresponding list page of the device group, and then click “Add Device Group” at the upper-right corner to add new devices to the group, as shown in the following figures.
  • Figure 11: Device Group Page


    Figure 12: Device Group Details Page


  • To remove devices in the device group, select the checkbox of corresponding device and click “Remove Device from Group” at the lower-left corner to remove it, as shown in the figure above.

2.4. Upgrade Campaign

If the upgrade campaign has already been added (but not activated) through Quick Upgrade, it can be edited and activated in Upgrade Campaign Page.

After clicking “Save” in Step 3/3 of Quick Upgrade, the upgrade campaign will be added to Upgrade Campaign Page with a state of “Saved”. Click “Upgrade Campaign” in the side navigation menu to enter Upgrade Campaign Page. Then, click “Details” after the saved campaign in the “Actions” column to enter Campaign Information Page.

Figure 13: Upgrade Campaign Page


2.4.1 Modify Information of Saved Upgrade Campaign

2.4.1.1 Edit Name and Options of Saved Upgrade Campaign

In the Campaign Information Page, click “Edit” at the upper-right corner to enter editing mode, as shown in the figure below.

Figure 14: Edit Saved Upgrade Campaign


After relevant information or options are changed, click “Finish Editing” to save the change.

Figure 15: Finish Editing of Upgrade Campaign


2.4.1.2. Add Devices to Saved Upgrade Campaign

New device can be added if needed as long as the upgrade campaign is not activated. Click “Add Devices to Campaign” to pop up Add Device to Campaign Window.

Figure 16: Add Devices to Saved Campaign

Figure 17: Add Device to Campaign


NOTES:

IMEI number must have been added to QuecCloud before adding the device.


2.4.1.3. Activate Saved Upgrade Campaign

When the upgrade campaign is ready to be activated, click “Activate” at the upper-right corner in Campaign Information Page to activate it. After the upgrade is activated, the state of the campaign will turn into “Activated, not upgraded” and the campaign will not be able to be modified any longer.

Figure 18: Activated State


2.4.2. Upgrade Monitor

2.4.2.1. Monitor Upgrade Campaign

After the upgrade campaign is activated and the upgrade is not triggered by AT command, the state of corresponding campaign will be changed to “Activated, not upgraded”. At this time, the upgrade monitor can be viewed by clicking "Monitor" in “Actions” column, as shown below.

Figure 19: Enter Upgrade Monitor Page

Figure 20: Upgrade Monitor Page


NOTES:

After the QuecFOTA upgrade process is triggered by AT commands as described in Chapter 2.1.4, the upgrade information will be changed timely as the upgrade proceeds.


2.4.2.2. Pause/Resume Upgrade Campaign

  • In Upgrade Monitor Page, the upgrade process can be paused by clicking “Pause”, with state in Upgrade Campaign Page correspondingly changed to “Paused”. Then, the upgrade can be resumed by clicking “Resume”.
  • Figure 21: Pause Campaign


    Figure 22: Resume Campaign


  • The upgrade campaign can also be paused or resumed by clicking “Pause” or “Resume” in “Actions” column in Upgrade Campaign Page, as shown in the following figures.

Figure 23: Pause Campaign in Upgrade Campaign Page


Figure 24: Resume Campaign in Upgrade Campaign Page


2.4.2.3. Force Stop Upgrade Campaign

If the upgrade campaign needs to be force stopped, click “Force Stop” in Upgrade Monitor Page, and state of devices that has not be upgraded will change to “Upgrade cancelled” while state of the upgrade campaign will change to “Finished”.

Figure 25: Upgrade Campaign Force Stopped


NOTES:

1.For the upgrade campaign in the upgrading state, the state will only be changed to “Finished” until the upgrade that is already started in the campaign is completed.

2.For the campaign in the state “Activated, not upgraded”, the state will be changed to “Finished” immediately after clicking “Force Stop”.

3.The pause and force stop operations only take effect on devices to be upgraded, but not on the devices that are being upgraded or upgraded.

4.Finished, expired, and force stopped upgrade campaign cannot be re-activated.


2.4.3. Upgrade Report

After the upgrade campaign completes, the upgrade report can be visited to review the upgrade. Click “Report” in the corresponding “Actions” column of the upgrade campaign in Upgrade Campaign Page to view the completed campaign report.

Figure 26: View Upgrade Report


In the Upgrade Report Page, users can export firmware upgrade log of all devices of the campaign by clicking “Export”.

Figure 27: Export Upgrade Log

2.4.4. Upgrade Log

For more detailed information about the device’s upgrade, upgrade log of particular device can be viewed by clicking “Upgrade Log” in the corresponding "Actions" column in Upgrade Monitor Page or Upgrade Report Page to view the upgrade log of a specific device, as shown in the figures below.

Figure 28: View Upgrade Log

Figure 29: Upgrade Log Information

×