1

I have a weather station which is publishing to AWS IoT.

It reports it's state as well as measurements of the environment by publishing to shadows service messages of the format:

{
 "state": {
   "reported": {
      "temperature" : 22,
      "humidity" : 70,
       ....
      "wind" : 234,
      "air" : 345
   }
 }

The station has some interactive properties like _led1 and _led2 which I can also report and update via Shadows service by setting "desired" state. To do that I can send to a device message like that:

{
 "state": {
   "desired": {
      "_led1" : "on",
      "_led2" : "off",
       ....
      "_lock99" : "open"
   }
 }

Thanks to shadow service Whenever device gets online it will receive synchronized state and will turn the leds and locks into desired position.

However, sometimes I want to operate the device in real-time: when troubleshooting a device - I want to send a real-time command to reboot it - and if device is live and receives the message I want to reboot it. If device was offline, then nothing happens (the reboot command never reaches the device).

So what would be the best way to control device in real-time? Still try to play with the shadows service to achieve that? Or simply create a separate topic eg. my-things/{thing_name}/real-time-commands and force device to subscribe to it?

Dimitry K
  • 2,236
  • 1
  • 28
  • 37

0 Answers0