GithubHelp home page GithubHelp logo

jonmikeli / azureiotdevicesimulator Goto Github PK

View Code? Open in Web Editor NEW
7.0 6.0 0.0 1.2 MB

Azure IoT Device Simulator implementing many of the features of the Azure IoT Device SDK.

License: GNU Affero General Public License v3.0

C# 99.45% Dockerfile 0.55%
iot iot-device iot-simulator azure-iot azure-iot-sdks iot-device-simulator iot-devkit dot-net-core2 accelerator developer-tools

azureiotdevicesimulator's Introduction

Azure IoT Device Simulator - Readme

This project has for purpose to help IoT developers and testers. The solution is an Azure IoT Device simulator that implements different types of Cloud To Device (C2D) / Device To Cloud (D2C) flows between Microsoft Azure IoT Hub and the simulated device.


For more information:


Example of uses:

  • development tool for developers working in Microsoft Azure IoT solutions (cloud)
  • tester tool in IoT-oriented projects
  • scalable IoT simulation platforms
  • fast and simple development of IoT devices
  • etc

Technical information:

  • .NET Core 2.x
  • Microsoft Azure IoT SDK (Device capabilities, including IoT Hub modules)

Azure IoT Device Simulator logs

Azure IoT Device Simulator Logs


Global features

  • device level simulation (C2D/D2C)
  • module level simulation (C2M/M2C)
  • device simulation configuration based on JSON files
  • module simulation configuration based on JSON files
  • no specific limitation on the number of modules (only limited by Microsoft Azure IoT Hub constraints)
  • simple and lightweight application, containerizable
  • message templates based on JSON (3 message types by default in this first version)
  • implementation of full IoT flows (C2D, D2C, C2M, M2C) - see below for more details

Functional features

Device level (C2D/D2C)

Commands

  • request latency test
  • reboot device
  • device On/Off
  • read device Twin
  • generic command (with JSON payload)
  • generic command
  • update telemetry interval

Messages D2C: The device can send messages of different types (telemetry, error, commissioning).

C2D: Microsoft Azure IoT Hub can send messages to a given device.

Twin Any change in the Desired properties is notified and handled by the device.

The device reports changes in different types of information to the Microsoft Azure IoT Hub.

Module level (C2M/M2C)

The features at the module level are the identical to the device features except for the latency tests.

details.

Global technical features

Functional features are based on these generic technical features:

  • telemetry sent from a device.
  • a device can contain one or many modules.
  • each module behaves independently with its own flows (C2M/M2C) and its configuration settings.
  • the device that contains the modules has its own behavior (based on its own configuration file).
  • telemetry sent from a module.
  • messages received by a device.
  • messages received by a module.
  • commands received by a device.
  • commands received by a module.
  • Twin Desired properties changed notification (for devices).
  • Twin Desired properties changed notification (for modules).
  • Twin Reported properties updates from a device.
  • Twin Reported properties updates from a module.

D2C

Device level

  • IoT Messages
  • Twins (Reported)

Module level (M2C)

  • IoT Messages
  • Twins (Reported)

C2D

Device level

  • Twins (Desired)
  • Twins (Tags)
  • Direct Methods
  • Messages

Module level (C2M)

  • Twins (Desired)
  • Twins (Tags)
  • Direct Methods
  • Messages

More information

  • Details about HOW the solution WORKS are provided in the help section.
  • Details about HOW the solution can be USED are provided in the how to section.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.