ADX Kusto plug-in for Azure Digital Twins history

Azure Digital Twins is the perfect solution for modeling your (Industrial) IoT metaverse.

Each ‘actor’ in the real world (devices, machines, places, buildings, environments) can be represented in the digital world.

Azure Digital Twins shows the current situation of those actors, complete with relationships and additional business rules.

These rules can also trigger cascading changes through the graph when parents and siblings are influenced by child property changes.

See a previous blog post on working with Azure Digital Twins and representing the environment in a 3D visualization.

But this solution has one weak spot: how about the historical twin property changes caused by the business rules?

I already demonstrated how to store historical raw telemetry as the cold path.

We would like to store the Twin data next to it.

Fortunately, Azure Digital Twins also supports storing historical data in Azure Data Explorer:

This historical data can even be queried together with Azure Digital Twin graph data.

So, the output of an ADT graph query can be joined with a Kusto query!

Let’s check out how this works.

Doorgaan met het lezen van “ADX Kusto plug-in for Azure Digital Twins history”

Azure Data Explorer as a data source for Azure Managed Grafana dashboards

Internet of Things solutions must provide insights, based on data provided by devices and other resources.

Adding dashboards to an IoT solution is the most common way to add that value.

There are a number of popular platforms for custom dashboarding, including Grafana.

Their solution is offered both in a commercial way and as an open-source version.

I have already written a couple of blog posts about working with Grafana, both in the cloud and on the edge.

The cloud version was initially based on VM technology in Azure.

Recently, Azure started offering a managed PaaS version. It takes away the ‘pain’ of managing the environment.

Due to security concerns, Azure Managed Grafana doesn’t currently support custom plugins. According to the website, you’ll have the option to add Grafana Enterprise plugins at a later date.

Personally, Grafana is a nice addition for me to display data stored in Azure Data Explorer next to the dashboarding solution offered by Azure Data Explorer itself (currently in preview).

So, there is now an integration possible between these two worlds.

Let’s check out how Grafana dashboards can be put on top of Azure Data Explorer.

Doorgaan met het lezen van “Azure Data Explorer as a data source for Azure Managed Grafana dashboards”

Fun with NanoFramework, running .Net C# on ESP32

During the latest Flight into Azure IoT, the long haul event, a number of devices were connected to Azure IoT.

One of them was an ESP32 running a .Net application written in C#.


.Net, known for running applications on Windows and Linux, on PCs, laptops, and in the cloud, Can also run on a five-dollar MCU?

Well, yes 🙂

Using the .Net NanoFramework it is made easy to write C# code for embedded systems:

Our mantra is about making it easy to write C# code for embedded systems! And all what we’re doing here is about that. This free and Open Source platform that enables the writing of managed code applications for constrained embedded devices.

.Net NanoFramework

During that TechDays UK event, that ESP32 was connected to Azure, sending simulated telemetry to an IoT Hub (read from files while being controlled using Direct Methods).

In this post, we check out how to get started with the .Net NanoFramework and have some fun with it.

Doorgaan met het lezen van “Fun with NanoFramework, running .Net C# on ESP32”

Using the new IoT Hub CosmosDB routing endpoint

The Azure IoT Hub is your cloud gateway for ingesting telemetry.

The IoT Hub cannot persist incoming messages so these must be forwarded to other Azure services.

Traditionally, the messages are exposed over an Event Hub-compatible endpoint.

More recent, (non-functional) IoT Hub routing is added where specific Azure services can be connected as an endpoint:

At this moment we can define:

  • The build-in endpoint (to keep the original way of distributing messages)
  • Event Hub
  • Service Bus (Topics/Queues)
  • Storage account, blob storage (perfect for cheap cold storage)

Lately, a native endpoint for CosmosDB has been made available.

This takes the pain away of having to set up extra resources between the IoT Hub and CosmosDB, just to transport messages from one resource to another. This is mostly done using a Stream Analytics job or custom Azure Functions.

In this post, let’s check out the new endpoint.

Doorgaan met het lezen van “Using the new IoT Hub CosmosDB routing endpoint”