Queries the status of multiple devices at a time.

Description

When you call this operation, you can perform the following operations:

  • You can specify a value for the ProductKey parameter and multiple values for the DeviceName parameter to query the status of devices that belong to a product.
  • You can specify multiple values for the IotId parameter to query the status of devices that belong to different products.
Important You can query the status of up to 50 devices in a call.

QPS limits

Each Alibaba Cloud account can run up to 50 queries per second (QPS).

Note The RAM users of an Alibaba Cloud account share the quota of the account.

Debugging

OpenAPI Explorer automatically calculates the signature value. For your convenience, we recommend that you call this operation in OpenAPI Explorer. OpenAPI Explorer dynamically generates the sample code of the operation for different SDKs.

Request parameters

Parameter Type Required Example Description
Action String Yes BatchGetDeviceState

The operation that you want to perform. Set the value to BatchGetDeviceState.

DeviceName.N RepeatList No light

The names of the devices.

Important If you configure this parameter, you must also specify a value for the ProductKey parameter.
IotInstanceId String No iot_instc_pu****_c*-v64********

The ID of the instance. You can view the ID of the instance on the Overview page in the IoT Platform console.

Important
  • If your instance has an ID, you must specify the ID for this parameter. Otherwise, the call fails.
  • If no Overview page or ID is generated for your instance, you do not need to configure this parameter.

For more information, see Overview.

ProductKey String No a1BwAGV****

The ProductKey of the product to which the device belongs.

Important If you configure this parameter, you must also specify a value for the DeviceName parameter.
IotId.N RepeatList No Q7uOhVRdZRRlDnTLv****00100

The IDs of the devices.

Important The IotId parameter specifies a globally unique identifier (GUID) for the device. The value of the IotId parameter corresponds to a combination of the values of the ProductKey and DeviceName parameters. If you configure this parameter, you do not need to configure the ProductKey or DeviceName parameter. If you specify values for the IotId, ProductKey, and DeviceName parameters, the value of the IotId parameter takes precedence.

In addition to the preceding operation-specific request parameters, you must also configure common request parameters when you call this operation. For more information about common request parameters, see Common parameters.

Response parameters

Parameter Type Example Description
Code String iot.system.SystemException

The error code returned if the call fails. For more information, see Error codes.

DeviceStatusList Array of DeviceStatus

The device status information returned if the call is successful. For more information, see the following parameters that are included in the DeviceStatus parameter.

DeviceStatus
AsAddress String 192.0.2.1

The IP address of the device.

DeviceId String dwnS41bhNxjslDAI****

The ID of the device (expired).

Note This parameter is no longer supported. Do not use this parameter to identify a device. You can use the value of the IotId parameter or a combination of the values of the ProductKey and DeviceName parameters to identify a device.
DeviceName String light

The DeviceName of the device.

IotId String dwnS41bhNxjslDAI****000100

The ID of the device. The ID is the unique identifier that is issued by IoT Platform to the device.

LastOnlineTime String 2020-01-17 16:19:11

The last time when the device was online.

Status String OFFLINE

The status of the device. Valid values: Valid values:

  • ONLINE: The device is online.
  • OFFLINE: The device is offline.
  • UNACTIVE: The device is not activated.
  • DISABLE: The device is disabled.
ErrorMessage String A system exception occurred.

The error message returned if the call fails.

RequestId String E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565

The ID of the request.

Success Boolean true

Indicates whether the call was successful. Valid values:

  • true: The call was successful.
  • false: The call failed.

Examples

Sample requests

https://iot.cn-shanghai.aliyuncs.com/?Action=BatchGetDeviceState
&productKey=a1BwAGV****
&DeviceName.1=device1
&DeviceName.2=device2
&<Common request parameters>

Sample success response

XML format

<BatchGetDeviceStateResponse>
  <DeviceStatusList>
        <DeviceStatus>
              <Status>OFFLINE</Status>
              <DeviceId>dwnS41bhNxjslDAI****</DeviceId>
              <DeviceName>Humidity</DeviceName>
              <AsAddress>192.0.2.1</AsAddress>
              <LastOnlineTime>2020-01-17 16:19:11</LastOnlineTime>
              <IotId>dwnS41bhNxjslDAI****000100</IotId>
        </DeviceStatus>
  </DeviceStatusList>
  <RequestId>3258D872-EDC5-4039-B564-C27ED7176741</RequestId>
  <Success>true</Success>
</BatchGetDeviceStateResponse>

JSON format

{
	"DeviceStatusList": {
		"DeviceStatus": [
			{
				"Status": "OFFLINE",
				"DeviceId": "dwnS41bhNxjslDAI****",
				"DeviceName": "Humidity",
				"AsAddress": "192.0.2.1",
				"LastOnlineTime": "2020-01-17 16:19:11",
				"IotId": "dwnS41bhNxjslDAI****000100"
			}
		]
	},
	"RequestId": "3258D872-EDC5-4039-B564-C27ED7176741",
	"Success": true
}

Error codes

For a list of error codes, see Service error codes.