To register for access to the DI SDK please fill out an application here

Getting Started


Note: The Distributed intellegence SDK is available at no charge to registered participants in our Developer Program. You will need an account in this Developer Portal. To register for access to the DI SDK please fill out an application here.


If you haven't already done so please review the Distributed Intelligence Introduction material. This provides an overview of the critical topics necessary when developing Itron Riva meter DI Apps.


1. Setup a linux virtual machine (VM), reference agent and IoT Hub cloud environment. See Setting Up the DI Desktop SDK VM and Reference Agent 

Once the development environment is installed and configured the Developer can start building a new Agent by following the steps below 

2. Clone the Reference Agent to provide the skeleton of the new Agent. See the DI Desktop SDK Clone Agent Guide.

It is highly recommended that a Developer does not start developing a new Agent from scratch.

3. Configure the Metrology Simulator to output the desired data. See DI Desktop SDK Metrology Simulator Guide

4. Modify the new Agent to process the data as required and produce the desired events. See How Agents Work (Request access to "How Agents Work" here) for more detail on the following steps:

  1. Change the data that is subscribed to by the new Agent to what is desired. See How Agents Work:  Start up process Step D
  2. Change the logic in the new Agent to process the data as required. Note that the meter uses uClibc and not glibc, so make sure that the C library functions being used are supported and available within uClibc. See How Agents Work: Runtime Process Step F
  3. Change the message format to suit the desired events or alarms. See How Agents Work:  Runtime Process Step G

5.  See Setting Up DI Desktop SDK VM and Reference Agent for how to perform each of the following steps 

  1. Change the Query in the Stream Analytics Job to reflect the new message format. 
  2. Change/replace the SQL Server Table as required. 
  3. Change the Service Bus Message as required. 

6. Develop web-applications to implement the server-side application.