Updated on 2023-02-16 GMT+08:00

Topics

When a device connects to IoTDA through MQTT, topics are used in their communication. The following table lists the preset topics in IoTDA.

Category

Topic

Publisher

Subscriber

Function

Device messages

$oc/devices/{device_id}/sys/messages/up

Device

Platform

Used by a device to report a message

$oc/devices/{device_id}/sys/messages/down

Platform

Device

Used by the platform to deliver a message to a device

Device commands

$oc/devices/{device_id}/sys/commands/request_id={request_id}

Platform

Device

Used by the platform to deliver a command to a device

$oc/devices/{device_id}/sys/commands/response/request_id={request_id}

Device

Platform

Used by a device to return a command response

Device properties

$oc/devices/{device_id}/sys/properties/report

Device

Platform

Used by a device to report property data

$oc/devices/{device_id}/sys/gateway/sub_devices/properties/report

Device

Platform

Used by a gateway to report property data in batches

$oc/devices/{device_id}/sys/properties/set/request_id={request_id}

Platform

Device

Used by the platform to set device properties

$oc/devices/{device_id}/sys/properties/set/response/request_id={request_id}

Device

Platform

Used by a device to return a response for property setting

$oc/devices/{device_id}/sys/properties/get/request_id={request_id}

Platform

Device

Used by the platform to query device properties

$oc/devices/{device_id}/sys/properties/get/response/request_id={request_id}

Device

Platform

Used by a device to return a response for a property query. The response does not affect device properties and shadows.

$oc/devices/{device_id}/sys/shadow/get/request_id={request_id}

Device

Platform

Used by a device to query device shadow data from the platform

$oc/devices/{device_id}/sys/shadow/get/response/request_id={request_id}

Platform

Device

Used by the platform to return a response to a device's query of device shadow data

Device events

$oc/devices/{device_id}/sys/events/up

Device

Platform

Used by a device to report an event

$oc/devices/{device_id}/sys/events/down

Platform

Device

Used by the platform to deliver an event

  • {device_id} identifies the target device that messages with a specific topic will be routed to. When a device subscribes to a topic or pushes messages to a topic, the value of this parameter must be replaced with the device ID used for establishing an MQTT connection between the device and the platform.
  • {request_id} is used to uniquely identify a request. If this parameter is carried in a message sent by a device, ensure that the parameter value is unique on the device by using an incremental number or UUID. request_id in the response returned by the device must be the same as that contained in the topic received by the device from IoTDA.
  • When a device subscribes to a topic with the {request_id} parameter, the parameter can be replaced with the number sign (#). For example, when a device subscribes to the command delivery topic $oc/devices/{device_id}/sys/commands/request_id={request_id}, the topic can be specified as $oc/devices/{device_id}/sys/commands/#.
  • IoTDA uses implicit subscription. Devices do not need to subscribe to the downstream system topic. Devices subscribe to the system topic whose QoS is 0 by default. If the downstream system topic whose QoS is 1 is required, devices need to be configured to subscribe to the topic.
  • Except device_id and request_id, other fields are system fields.