MS Ignite 2022, IoT-related sessions and more

Yes, MS Ignite 2022 edition is around the corner again.

This year, there are both online sessions and in-person events, both in Seattle and selected locations all around the world:

The registration is opened already and the session planner is available.

Here is a selection of IoT-related sessions, together with some sessions I like personally.

Doorgaan met het lezen van “MS Ignite 2022, IoT-related sessions and more”

Running HiveMQ MQTT broker on Azure IoT Edge

While working with IoT in general and Azure IoT Edge more specifically, you will always encounter multiple kinds of communication protocols, both in the cloud and on the edge.

In the past, I have posted multiple blogs regarding protocols, seen on the edge like UDP, Modbus RTU, Serial communication, and OPC-UA.

One of the most popular protocols in the world of IoT is MQTT:

MQTT (originally an initialism of MQ Telemetry Transport) is a lightweight, publish-subscribe, machine to machine network protocol

So, it is time to dive into this protocol by running an MQTT broker on the edge and consuming it:

Yes, we are going to deploy a regular MQTT broker as a docker container within Azure IoT Edge (which uses Moby under the covers). Then, we bridge messages sent to MQTT topics to the cloud using Azure IoT Hub.

For this exercise, I have chosen HiveMQ as a broker.

Let’s see how this works.

Doorgaan met het lezen van “Running HiveMQ MQTT broker on Azure IoT Edge”

Exploring full Azure IoT Hub device support using MQTT(s) only

Most of you Azure IoT developers are connecting devices to the Azure cloud using the Azure IoT Device SDKs.

Using these SDKs, you can connect a device to the cloud in an easy and secure way with your favorite programming language like C#, C, Java, Python, or Node.js.

This is the recommended way because it offers a convenient and optimized way to support all Azure IoT Hub features like Device Twin, Direct methods, and Cloud messages. It takes away a lot of the code wiring and you can focus on functionality.

Still, in a few instances, like working with very constrained devices, there could be a need for bare MQTT support:

MQTT is the de-facto standard for stateful communication in the IoT World (btw. Bare AMQP is offered too).

Let’s see how the Azure IoT Hub supports bare MQTT.

Doorgaan met het lezen van “Exploring full Azure IoT Hub device support using MQTT(s) only”

The risk of pinning TLS certificates in IoT solutions and why your awareness is needed

Do you have cloud-connected IoT devices to the Azure IoT Hub and have you specified the specific public ‘Baltimore’ TLS certificate currently in use by the IoT Hub? Do you know customers having (low-powered) devices connected to Azure IoT and possibly pinned that certificate?

Then, please be aware of the following message.

Doorgaan met het lezen van “The risk of pinning TLS certificates in IoT solutions and why your awareness is needed”

Connecting Advantech ICR to Azure IoT using NodeRed

In the past, I have written about that perfect NodeRed node for Azure IoT. Using this node, you can connect to eg. Azure IoT and Azure IoT Central from any NodeRed solution.

I came across the Advantech ICR devices which offer cellular (4G) router connectivity in a ruggedized format and you can add your own custom logic:

You can either put C or Python apps on them and you also can use NodeRed on the V3 and V4 platforms.

Let’s dive into this NodeRed support and have an ICR connected to Azure:

Doorgaan met het lezen van “Connecting Advantech ICR to Azure IoT using NodeRed”

IoT on Microsoft Ignite, November 2021

Update: Videos of various sessions are now available (if applicable).

November 2-4 2021, there is another Microsoft Ignite. Again, this is a virtual events. So, all event sessions are online and Microsoft offers free registration and access.

Join us November 2–4, 2021 to explore the latest tools, training sessions, technical expertise, networking opportunities, and more.

As always, here is a list of IoT related sessions.

Microsoft Ignite: Guide to November 2021 edition aka What to watch / join,  how to connect with people and also to have fun – Vesa Nopanen – My Teams &  Microsoft 365 Day
Doorgaan met het lezen van “IoT on Microsoft Ignite, November 2021”

First look: The Things Network new Azure IoT Hub integration

Right from the start back in 2015, The Things Network supported connecting their LoraWan backend platform to other (cloud) platforms.

Connecting to the Azure cloud was no exception to this.

There was no default integration but the support for the MQTT protocol opened this door. Back then, I already blogged about using MQTT to connect. Based on that logic, bridges appeared for both uplink and downlink messages.

Later on, Microsoft also introduced the secure and flexible IoT Central bridge to connect to The Things Network, based on uplink support for webhooks.

Still, even with the new V3 portal of The Things Network, this integration was still based on either the Webhook integration or the original V3 MQTT interface.

All these techniques require an extra layer of logic between the two clouds.


Finally, a native Azure IoT Hub integration has been made available:

The main features of the Azure IoT Hub Integration are:

  • Devices only need to be registered in the Azure IoT Hub. The related TTN application device registrations are kept in sync by TTN. Just use IoT Hub Device Twin tags to control your TTN device registration
  • Uplink messages appear both as telemetry and as Device Twin reported property updates
  • Downlink messages are sent using the Device Twin desired properties

The current documentation is pretty straight forward (although the DPS service logo is shown, it’s not part of the standard solution).

Let’s check out how this integration works and let’s dive deeper into this solution architecture.

Doorgaan met het lezen van “First look: The Things Network new Azure IoT Hub integration”

Positioning GPS devices on a map using Azure Functions, Azure SignalR Service and Azure Maps

Last year, I bought this RAK7200 Lora Tracker with the idea to track my bicycle in the neighborhood.

This month, I finally found some time to have this device connected to the cloud and map its position.

This tracker from RAK Wireless, running on a rechargeable battery for multiple days, has several sensors aboard and is connected to a Lora network:

RAK7200 LoRa® Tracker | The Things Network

Here you see the payload as presented in The Things Network console:

Potentially, I could even do some alerting based on the movement of the device, even if there is no GPS fix (acceleration, magnetometer).

An uplink payload formatter can be found here. I changed it a bit so the latitude, longitude, etc. are decimals, not strings:

The same goes for the battery power.

Showing a generic location in Azure Maps is not that hard, there are many samples available. But I wanted to have the map updated IN REAL-TIME!

The TTN portal now supports the Azure IoT Hub natively so I was looking for a way to represent the ingested location in Azure Maps.

Azure Maps tiles live inside the browser. I also needed something like Websockets to update the page representing the map. For this, I wanted to use Azure SignalR Service.

Last but not least, I was looking for a lightweight website because I need to host the pages somewhere.

This is the solution I came up with:

Let’s check out how this is done.

Doorgaan met het lezen van “Positioning GPS devices on a map using Azure Functions, Azure SignalR Service and Azure Maps”

The Things Network MQTT integration in Azure

Over the years, I have written multiple articles about working with The Things Network community LoraWan platform.

It all started with this workshop back in 2016 that I built together with my friend Jan Willem Groenenberg where we connected the TTN backend with the Azure Cloud. Over the years, we organized many events based on the workshop.

We needed a ‘bridge’ to bring two worlds together: The Things Network backend applications and the Azure cloud.

I created this TTN azure bridge based on the MQTT protocol supporting a stateful exchange of D2C (uplink) messages from Lora devices to an Azure IoT Hub and supporting C2D (downlink) messages back to the devices.

Since then, the TTN backend migrated twice and now we have this new Version 3 backend with lots of goodies!

I got already some questions about the original bridge and I was informed it is not sufficient anymore so I took some time to revisit the MQTT uplink and downlink support in TTN applications:

We will why this is still a solid solution but we will also look at a possible alternative.

Doorgaan met het lezen van “The Things Network MQTT integration in Azure”

OPC-UA node browsing using Traeger SDK

OPC-UA is a modern protocol to unlock M2M communcation.

The OPC Unified Architecture (UA) is a platform independent service-oriented architecture that integrates all the functionality of the individual OPC Classic specifications into one extensible framework. Building on the success of OPC Classic, OPC UA was designed to enhance and surpass the capabilities of the OPC Classic specifications.

Its popularity is still growing in many markets and for multiple reasons!

Most importantly, from an IoT Developer view, the protocol supports devices to offer a secure communication layers and the exposed tags can be made human readable.

For example, this OPC-UA clients looks at the exposed tags of an OPC-UA server running on an Advantech Wise 710:

In this Prosys OPC-UA client, the tag values are shown:

The nodes are actually mapped Modbus values read from Wise 4012E.

As you can see, it exposes these six values. The potentio meter values shown is made available as a double.

I was asked to provide documentation like this, listing all exposed nodes together with the DataType.

Is it possible to browse nodes?

Doorgaan met het lezen van “OPC-UA node browsing using Traeger SDK”