Skip to main content

Device types

This document describes the types of devices nRF Cloud supports, and how they appear in API responses.

Devices

For information about adding devices to your team, see Onboarding to nRF Cloud.

MQTT team devices

An MQTT team device has MQTT permissions to subscribe to the message traffic of all devices associated with your team. It can also publish messages to any device on your team. You can use the certificate for this type of device to connect to the nRF Cloud MQTT broker and receive device traffic for debugging purposes. You can create multiple MQTT team devices associated with a team. For teams on the Developer billing plan, these devices count toward your team limits.

You can create MQTT team devices using the CreateTeamDevice endpoint. For a given MQTT team device, you can get or rotate its certificate, and delete the device. See MQTT Team Devices for the complete list of endpoints. You can list these devices using the same ListDevices endpoint that returns information about a set of devices on your team, including MQTT team devices.

MQTT team device topics

In addition to the MQTT topics listed for all devices, MQTT team devices can access any topic path under the top-level {mqttTopicPrefix} topic. In the following section, {mqttTopicPrefix} is the value of the mqttTopicPrefix JSON field in the response to the FetchAccountInfo endpoint.

note

Attempts to subscribe to MQTT topic paths outside the {mqttTopicPrefix} topic, other than topics allowed for all devices, will cause the MQTT broker to disconnect the device.

You can substitute the MQTT wildcard + character for device IDs to subscribe to events from all devices in the team. You can also use the MQTT wildcard # character at the end of a topic to subscribe to any topic at that level or below.

See the following table for examples.

TopicPurpose
{mqttTopicPrefix}/#Receive any message sent to or from all devices on the same team as the MQTT team device.
{mqttTopicPrefix}/m/d/nrf-12345/#Receive any message sent to or from the device nrf-12345.
{mqttTopicPrefix}/m/d/nrf-12345/d2cReceive any message sent by the device nrf-12345 to the d2c topic (but not to any subtopics).
{mqttTopicPrefix}/m/d/nrf-12345/d2c/#Receive any message sent by the device nrf-12345 to the d2c topic or any subtopic, such as d2c/bulk.
{mqttTopicPrefix}/m/d/+/d2cReceive any message sent by any device on their d2c topic only.
{mqttTopicPrefix}/nrf-12345/shadow/#Receive any message regarding shadow requests and responses sent to or from the device nrf-12345.
{mqttTopicPrefix}/+/shadow/#Receive any message regarding shadow requests and responses sent to or from all devices.
{mqttTopicPrefix}/+/jobs/#Receive any message regarding FOTA jobs sent to or from all devices.

You can also use MQTT team devices to publish messages to any device on the same team. For example, publishing to {mqttTopicPrefix}/m/d/nrf-12345/c2d/r will send the message to the device nrf-12345. Wildcards are not supported for publishing messages.

Software devices

A software device is a software application that runs a client capable of communication with nRF Cloud APIs. An example of this is the nRF Device Simulator, which uses MQTT to simulate device data and behavior.

You can run IoT devices on any type of hardware that supports an MQTT client, such as the Raspberry Pi. The type depends on your implementation for the device type.

Custom devices

nRF Cloud supports custom devices built using Nordic Semiconductor chips and is not limited to development kits.