AWS IoT Device Shadow v1.2.0
AWS IoT Device Shadow client library

AWS IoT Device Shadow library

Device Shadows can make a device’s state available to apps and other services whether the device is connected to AWS IoT or not. AWS IoT thing objects can have multiple named shadows so that your IoT solution has more options for connecting your devices to other apps and services. AWS IoT thing objects do not have any named shadows until they are created explicitly; however, an unnamed, classic shadow is created for a thing when the thing is created.

Description of Device Shadow from AWS IoT documentation

A device's shadow is stored as a JSON document, and available via AWS even if the associated device goes offline. Common use cases for Device Shadow include backing up device state, or sending commands to devices.

Embedded devices often use MQTT to interact with Device Shadow. This library provides a convenience API for handling MQTT topics reserved for Device Shadow. This library is independent of the MQTT library. Applications can use the macros and functions of this library to assemble and parse the Device Shadow MQTT topics, then use any MQTT library to publish/subscribe to those topics. Features of this library include:

  • It is stateless. It does not use any global/static memory.
  • It depends on standard C library (string.h and stdint.h) only.

Memory Requirements

Memory requirements of the Shadow library.

Code Size of AWS IoT Device Shadow (example generated with GCC for ARM Cortex-M)
With -O1 Optimization
With -Os Optimization
Total estimates