I'm currently developing an update strategy for IoT devices running embedded Linux. With Azure Device Update for IoT Hub.
I have read a lot of MS documentation regarding this topic. But I am missing the part of how to connect all services together, so they do what I want.
What I know:
- The c-sdk is there to talk to and form the device.
- The Device Update Agent to receive the Updates.
- The Delivery Optimization SDK to get a reliable download.
What I want:
- Send Telemetry data for the device
- Invoke Methods on the device
- Deploy an Update Image to my IoT Devices from a central Point (IoT Hub).
- Automatically start the download when a new Patch is viable.
- Have one Client App that does all of this.
What I have:
- The Client Side of the update is implemented with rauc. I just need a way to deliver the update file to the device.
- I can send Telemetry, edit device Twins and invoke Methods using the iot-sdk-c.
- I created an IotHub with Device Update and connected my devices with the Device Update Agent
- I created an Update-Artifact and imported it, and created a new deployment for my target group.
- I was the able to simulate a successful download with the AducIotAgent.
My Problem:
I don't know how to connect all these parts together so that, when I deploy a new artifact, all compatible devices start the download by themselves, or if I am even on the right path. My next step would be to simply invoke a method which downloads the update file and passes it to my rauc updater, but that would defeat the purpose of Device Update and Update Agent, at least with my current understanding of them. I have an additional problem with the Device Agent which I explained on github, but I don't think that this is related.
Furthermore, I read that the Device Update uses PnP interfaces and in this guide they are using iot-dps to register new devices, but before I read further into these topics I would like to know if is suited for my case.
Thank you for your questions, please see some responses below.
ii. Package Update: Getting Started using Ubuntu Server 18.04 x64 Package agent iii.Device Update for Azure IoT Hub tutorial for Azure-Real-Time-Operating-System