Brandon Cannaday: Hello, everybody and welcome to Losant's Deeper Dive Webinar Series. If this is your first time, welcome. If you've been to one of these before, welcome back. The Deeper Dive Series gives us an opportunity to really take an in-depth look at a specific implementation or use case that is developed on Losant's platform. If you came here looking for a general overview of Losant or maybe Azure, stick with us. You'll still learn a lot but feel free to contact us afterwards and we're more than happy to schedule one of those demos for you. On today's webinar, you've got me. I’m Brandon Cannaday. I am Losant's Chief Product Officer. Since we're talking about Azure and Losant, we were fortunate enough to get experts from both company. We've got Christoph Berlin, Partner Group Program Manager from Microsoft Azure as well as Kevin Niemiller. He is a Solution Architect from Losant.
One of the biggest benefits to joining us live is Q&A. We're using the Zoom webinar product. There is a Q&A button usually along the bottom. Feel free at any time during this presentation, to drop your questions in that panel. We're going to be answering that at the end. If you do have to drop off for whatever reason, don't worry about missing content. This webinar is recorded. So, we're going to send an email to all of you with that replay link and you'll also be able to find this replay on our YouTube channel or losant.com/deeperdive and you'll find the replay for this one and replays for all of our previous Deeper Dive webinars. If you are new to Losant, it's probably important to understand a little bit about what we are before we dive too deep. We're what's called an application enablement platform.
Really, what that means is we provide the Edge and cloud software foundation on which our customers develop and bring to market their own IoT products and services. The Losant platform is made up of a lot of features but today's webinar is going to focus a lot on the Edge Compute but we're going to touch a little bit on End-User Experiences as well. In Losant, kind of a unique functionality for us, that's really where the customer-facing portion of an IoT application is built. That's your Multitenancy, your user authentication as well as developing and hosting the actual user interface itself. We are an industry leading application enablement platform. We serve a variety of customers from small business to Fortune 100 across industrial, manufacturing, telecommunications, smart environments, and transportation. I’d like to bring up this slide because developing an IoT solution does involve a lot of moving pieces.
Not only do you have a platform like Losant but you're going to have your hardware, your sensors, your gateways, maybe a solutions partner to help bring it all together. I do want to point everyone to losant.com/partners. Go ahead and browse that if you are looking for some solutions or technology that might fill a gap in your technology stack. That's a great place to look. Today's webinar incorporates Azure which is definitely one of our technology partners. We do partner with a lot of technology vendors in order to enhance or augment the capabilities of our own platform with new and different functionality. Let's get into it.
Today's webinar is about how to use Azure IoT Edge and Losant Edge Compute. Basically, how to combine those two services as a much more complete Edge deployment and managing solution. For the agenda, I’m going to kick us off and talk about just why in general, why we thought Losant and Azure make such compelling technology and really why we wanted to bring them together. Then, I’m going to hand it off to Christoph and he's going to give us an overview into Azure IoT Edge. And then Kevin is going to take us through a step-by-step technical demonstration of how to actually develop a real-world equipment monitoring solution using both Azure IoT Edge and Losant. One of the best ways to talk about you know why would we bring these technologies together is through a real-world use case. In Losant, we have a number of customers OEMs or industrial equipment manufacturers introducing an IoT service to offer alongside the equipment they sell. This technology is specifically important for fielded equipment.
You can see in the picture, that's a generator that might sit behind a hospital or a school. It's out in the field. Unlike a manufacturing environment, a technician really isn't able to walk around and gain physical access to all of this equipment. It's very important that the OEM is able to remotely deploy manage and update their Edge computing stack. A really common way to get an IoT service incorporated into a piece of equipment is through a retrofit, introducing a small gateway, it's sometimes directly inside the enclosure. That gateway is what acts as a bridge between the controller running on the equipment and the cloud platform. However, there's a lot of technology that has to exist between a gateway. It's not as easy as — well, we'll just put a gateway in the enclosure and all of a sudden, we have IoT.
This stack on the right really does a good job of illustrating where Losant ends and where Azure begins and why they're so important to work together. The very top, you've got the Edge Workflow. That is the business logic. That is the intelligence that knows how to interface with your controller, do that local processing, that actual Edge computing and finally, report that up to the cloud. Losant provides the Edge Agent. That's what receives and processes those Edge Workflows that runs on the gateway but Losant doesn't provide the tools to manage and deploy the Edge Agent itself. So, right where we end, that's exactly where Azure picks up. Azure's system is a container management environment. It's perfectly designed to take that Edge Agent and make sure that is deployed to your gateways and more importantly, when Losant does deploy or security fixes or bug updates, it's very easy, using the Azure tools, to get that deployed to your equipment.
All of that technology does need to exist. It's not something you as the OEM really should be spending your time investing in. This technology is not going to really add value to your customer. What adds value to your customers and your product is at the very top, that Edge workflow, the customer specific business value. It's really important to lean on a third-party ecosystem to deliver the rest of that stack so you can focus on what's important. Doing this technology, this platform level technology, it's very difficult to do right in terms of security and scalability but very easy to do wrong. So, if you can piggyback on the expertise of Losant and Azure, you're going to get something in the market a lot faster, a lot more scalable and more importantly, much more secure. With that, I’d like to toss it over to Christoph Berlin. He's going to take us through an overview of Azure IoT Edge. Christoph.
Christoph Berlin: Absolutely. First of all, thanks so much for having me. You have a German in Redmond using Zoom. That can only go well. Let me just share my slides here very quickly. I hope everyone can actually see it. If not — yell. What I will really talk about today is really about how Losant and Azure really work together, how we actually complement each other and how can we actually leveraging each other's strengths. Microsoft as you know, we have the Azure platform. The Azure platform by now has quite a bit of offerings throughout the entire portfolio ranging from MLAI cognitive services, storage, compute and so on and so forth. Within the Azure portfolio, you also have the Azure IoT offering. The IoT offering itself is really a subset that specifically talks about not only the connectivity state but also, the solutions that actually support you out in the field that are used in order to actually turn data into insights.
At the end of the day, it is nearly impossible within the webinar, to talk about the entire portfolio. As Brandon mentioned earlier, what we will actually talk about is really the Edge offering. Azure IoT Edge for us, is really about the managed compute offering that really takes pretty much this old client server model that we have seen for decades within the industry and really brings it pretty much in a modern age of managed embedded software. What it really means is it is a runtime that allows you to pretty put workloads on top of it but without having to run around with a USB stick or any of the sort but to have an entire workflow management as well as the DevOps lifecycle with it. Azure IoT Edge talks to IoT hub under the cover, that is, for the customers, it is actually not that important. It is much more about looking at the manageability of these things.
If you take the Azure IoT Edge, there are several things in there as Brandon mentioned earlier, that are fundamental to us at scale but certainly must be pretty much common core for customers, whether it is security, whether it is enclave support, whether it is attestation. Another one that is very important is support for offline operations. Keep in mind that for us, offline operations do not mean disconnected state. Two very fundamental things. Let me actually quickly explain. Disconnect means that you pretty much plan on an operation that really says — I’m here. I’m connected to my cloud ingestion point. I’m manageable but from time to time, I have internet and intermittent connectivity failures. Whether a cell service dies or has an outage, whether someone digs up the cable, anything else, but the system is disconnected.
The Edge platform underneath, completely manages all of that. It has features such as store and forward that pretty much keeps the state local. Once you actually come in and the connectivity is reinstated, that it just uploads the latest data up that is available. It also makes sure that security is not compromised because it's at this particular point of disconnected state, it pretty much establishes its own security protocol for certain attestation. But what it also does is we have complete offline modes where you for example, says, — you know what, this particular Edge device is not meant for talking all the time but we really run it in an offline mode and only from time to time, we have certain connectivities. All of these states which are fundamental to a platform are pretty much managed through our offering with IoT Edge. It really comes down to the fact of pretty much building a great foundation to enable solutions such as Losant.
If you look at the Better Together story, it is really about this element of — we provide common core services on our Azure platform as well as on our Edge availability platform. While I will not go to the extent of say you can bring Azure to the Edge — it's actually not possible, what you can do however, is you can bring repeatable building blocks such as functions, modules, execution environments, really down to the Edge and have it run local versus in the cloud. Let me actually give you a really good example. Cognitive services or let's actually take specifically vision kits. You have a module that pretty much detects, let's say worker safety in these days, that needs to detect that people are wearing face masks. You certainly don't want to upload every picture or every video stream to the cloud and analyze it there. So, you pretty much have it run locally. These two things combined is pretty much what enables the Edge and also the Edge Workloads.
Then on top of it, having Losant available with these best of breed solutions and market leading industrial insights is pretty much the perfect fit in order to really get this to work. From a pure high-level point of view and really bringing it a little bit notched down away from cognitive services and offline modes and online modes and all these things, how Edge devices today really work is that you pretty much have two different topologies. You have devices talking directly to the cloud ingestion point, which also is your identity management point as well as trust point or you have an Edge device. An Edge device pretty much, the difference is that it kind of functions run locally. I mean, at the end of the day, you can also have devices sitting behind it. There's one third option that I will talk later on about it where you actually have Edges talking to Edges, which is a little bit of a mind bender but I will explain very quickly later on how it works.
If you really go into this function that you have today is that really, it is about that you have an IoT device, traditionally, you upload it to the cloud ingestion point. You turn data into insights, you take an action based on the business insights that you actually learn and you drive it back to the insights. The beauty about the Edge device is that you can take some of the functions really, down to the Edge device. And you can actually say — I don't want to upload everything to the cloud. I want to have certain functions run local because either it is not possible to upload or there's no business justification for it or it is simply not needed. Things such as anomaly detection, stream analytics, certain alerting and so on and so forth.
What you really do is you establish this inner loop of the actual solution all up. That is what we really enable with the IoT Edge platform, to pretty much take these things, pretty much take the solutions that are cloud-based in a, what we call cloud-consistent manner down to the Edge device. The way it works is relatively straightforward and yet sometimes a little bit complicated is — you have these services in Azure. And of course, you have Losant on top of it that pretty much has the industrial expertise to pretty much say — not only do I have a modular container but I have a modular container for equipment monitoring. You have these, let's call it generic services here and those are available but what you do is you pretty much take some of those functions and you actually say — I want to turn some of them.
I want to make them pretty much Edge aware and I really turn them into a self-executable container. And pretty much put those in a registry to say this is my particular logic and there for example, there are routes in between that says the data has to go from here to there because you don't want to skip certain elements. What the overall solution really does then in Azure IoT hub combined with Losant is that we pretty much take the solution and then really bring it down to the Edge device to pretty much say we want to have these things available down at the bottom. When there's an update, when there is a life cycle change, when there is an outage, when there is disaster recovery, it's pretty much all cloud managed because at the end of the day, you just bring these things down to the Edge device again and you have the same consistent runtime available. All of these things combined are really something that helps. Another element, to quickly move forward, is that there's also this concept of provisioning services where you have the Edge device with the IoT app itself where you even have a zero touch provisioning Experience where you say this is a pre-registered device.
It comes online. It pretty much knows exactly what needs to be built, what needs to be deployed and when it comes online, it pretty much self-provisions itself. All of these things combined is pretty much what we do under the hood in order to actually enable these things in a very automatic fashion. Losant, with your technologies and with your offerings, is leveraging that. That's why we are partnering so closely and jointly, we're enabling your customers with regards to these cloud managed Edge running solutions. Earlier on — to quickly move through these slides here, is early on, I also talked about a third element of potential topologies. There is this concept of what we kind of internally refer to as nested Edges.
When you for example, go into an industrial setting and you have let's say an ISA-95 environment or any Purdue network or any custom regulations, your assets, including your IoT Edge device cannot always talk to a cloud ingestion point. It's possible if you cheat by simply creating a proxy server but it's not meant to be that way. What we also just announced and what we actually already have in public preview is what we really call nested Edges, which is more about Edge topologies that pretty much provision these things, provision certain layers on top of each other. Imagine a factory — not equipment out in the field. That is different, you have a single layer. But if you go into an industrial setting where you can actually say there are different functions for different Edge devices and you really build on top of each other so that you not only adhere to the isolation but that you adhere also to the overall safety regulations with regards to the deployment topology.
The last thing, and then I will hand over to Kevin, is the thing that I really want folks to take away is that the Edge device today has this image of being an industrial gateway and all these things. And it's absolutely fine, particularly if you go for field hardware or field infrastructure, you connect ruggedized and all these things. What I also encourage you to think about is how even to think about the next level up with regards to really having complete appliances. For example, we have Azure Stack Edge, we have Stack HDI, which is pretty much the even bigger version of a horsepower than Azure Stack Edge. All of those, they naturally have more horsepower. They have more features.
They have for example, ML capabilities built into the silicon and all these things. But the important thing is here that the deployment for Edge as well as the workload management and Losant running on top of it enabling our customers and all things, is exactly the same. That is what we are referring to cloud consistency, so that you have one solution no matter what deployments you have really at the Edge and you really scale with the ability to really make it custom for the customers in order to support their needs. Okay. At this point, I will hand it over to Kevin and to really have a deeper look into the element, how does it really work and how we're also working together because it's actually quite cool.
Kevin Niemiller: Thank you, Christoph, for your great overview on Azure IoT Edge. If you can go ahead and stop sharing, Christoph, I’ll go ahead and share my screen. Thank you. Okay. I should be sharing my screen now. In this technical walkthrough, my goal is to onboard a new generator to my Losant End-User Experience. I am going to use Azure IoT for device management, which will enable me to deploy the Losant Edge Agent to a gateway connected to a generator. I will then use the Losant IoT platform to build and deploy an Edge workflow that will stream real-time data from the generator into the Losant platform where I can use that data in a Losant End-User Experience like the one you see here. The End-User Experience that I’m actually going to use for this demo came from a Losant Application Template.
You can see that we have a lot of them here. We have Deeper Dives on most of these application templates. We definitely have one on Additional Equipment Monitoring. I used this application template to get started for what I’m going to be doing today in this demo and just to show that, you can see that page here. Out of the box, this is the Losant End-User Experience that I get. I can log into this web application and start viewing this data. You can see over here on the side, we have five generators. My goal today is to add that sixth generator. Before we jump into that, I want to quickly level-set on what exactly the Losant Edge Compute offering is, which we also call the Losant Edge Agent. The Losant Edge Agent is deployed as a Docker image. You can pull this directly from our Docker Hub repo onto your gateway or as we show today, using Azure IoT hub with our new Azure marketplace module.
Once Losant Edge agent is running on a gateway, we can now build Edge Workflows in the cloud and deploy those workflows to one or many gateways at the click of a button. As those workflows run on your gateway in your environment, we can do live debugging of those workflows in the cloud as well as update and redeploy those workflows. The Losant Edge Agent supports many industrial connectors out of the box. You can see a couple of them listed below such as OPC UA Modbus and BACnet. Okay. Let's jump in. Here is the agenda that I want to walk through. This is the same image that Brandon showed before. What we're going to do is we're actually going to start at the bottom of this image with our hardware, with that Edge device, our gateway. We're going to configure an Azure IoT Edge device within Azure cloud.
We're going to install Azure IoT on our hardware, on our gateway. We're going to deploy the Losant Edge Agent and then we're going to build that Edge Workflow so we can stream data from the generator into our platform. Again, step one is getting Azure completely set up in both the cloud as well as on our hardware. Let's jump in and see what that looks like now. I’m going to start from the very beginning with Azure just in case people are new to it. What I did was I searched up here for a resource group and I created a new resource group that I called KMN. From there, I added an IoT Hub, which I called KMNIoTHub. I’m going to go ahead and click on that hub. From here, we can click on IoT Edge. Once I’m in IoT Edge, I can add as many gateways as I need. I went ahead and added one called generator-123456.
This is the IoT Edge device that we're going to be working with. Once I click in here, the one piece of information that we need when we go to install Azure IoT Edge on our gateway is this primary connection string and it's really easy to copy it by using this Copy button here. Let's flip over to our gateway now. To install Azure IoT Edge on our gateway, which is something that I’ve already done, I followed a tutorial that Azure had out there. It basically took me three command line commands to get up and running with that. While I was running those three commands, it put a file on my gateway as well. All I had to do was copy that primary connection string in there and save it. That's what kicks off the connection between my gateway and the Azure Cloud.
The tutorial that I used is also going to be shown here at the end with a link when Brandon shows that. To show that Azure IoT Edge is properly set up on my gateway, I’m going to type in IoT Edge list and you'll see that we didn't get any errors. We see these two system modules currently running on my gateway — Edge Agent and Edge Hub. If we flip back to Microsoft Azure here, you'll see those two system modules listed down here as well. What those do is anytime your gateway is running, these are running too and this helps facilitate the communication between the gateway and Azure's cloud. Right now, we're doing pretty good. We got the three steps done below. We have Azure IoT set up both in the cloud and on the device. Let's now jump in and deploy the Edge Agent. To do that, we're going to have to create a device within Losant, an Edge compute device.
Every Losant Edge Agent has a Edge Compute device tied to it so that we can send down workflows to that device. If we jump back into the Azure Cloud here, you'll see that there's a button up here called Set Modules. I’m going to go ahead and click that now. You'll see that down here there's an IoT Edge Module section. I’m going to click Add. And then for the Losant Edge Agent, I’m going to click Marketplace Module. We can search here. I’m going to type in Losant. You'll see the Losant Edge Agent pop up. I’ll go ahead and click on that. You'll see that it gets added down here to one of our IoT Edge modules. From here, I can click on that and we can start configuring that Edge module. So, the important part here is our image URI. You know with containers when we're deploying them, that you can add a tag on the back side of it as well. Since this one does not have a tag on it, what this means is that this will go out and find the latest Losant Edge Agent and use that one to deploy to your gateway. I always like adding a tag on here. You can find all these tags and all these versions in our Losant documentation.
I like getting a tag on there and updating the name here so it's really easy for me to see which version I’m running. Once we have that set up, we're going to flip over to Environment Variables. From here, you'll see that we have these three pieces of information. Regardless of you going straight to your gateway and pulling the Losant Edge Agent down using Docker Hub or deploying it using Microsoft Azure, you need these three pieces of information from the Losant platform. The first one is the Device ID so we know which device to report to in Losant. And then we need an Access Key and Secret from Losant so that we can securely connect from the gateway to the Losant platform. Let's go ahead and jump into Losant now so we can get that information. As you can see here, I have our five generators which I showed on the front end of our Experience. With the application template, it comes with a device recipe. I’m going to go ahead and click on that device recipe.
You'll see down here that we have device tags, which is a lot of meta information. We'll come back to that here in a minute. We'll flip over to attributes. These are all the attributes that our generator is going to be reporting to the Losant platform. So, all of the time series data that we can look at historically and it allows us to use this data in other places such as our Workflow Engine, Dashboards, our Experience, Jupyter Notebook, things like that. I’m going to call your attention to manifold_temperature right here. We're going to come back to that in a couple minutes. At this point, I’ll click on Recipe Actions, Create Device. I’m going to name this one generator-123456. The important part that came with the recipe is that this is device class Edge Compute, which means we're going to be using the Losant Edge Agent with it. I’ll come down here and fill in some of this metadata as well. I’ll put the serial number in there. I’m also going to put the model number in here.
A lot of these tags we made up. The reason that we're using them is because it makes it easy for us to pull in a subset of our devices. So, maybe based off of group or customer or based off a model so we can easily aggregate that data. Other tags that we have in here like this image tag is going to actually display the image of the generator onto our Experience. I’m going to go ahead and save this device now. Now, to get the Access Key and Secret for this, we can go to two different places. We can either click on Device Actions and click Create Access Key or over here in our nav bar, we can click this icon over here for Access Keys. I’m going to go ahead and click it over here in the nav bar, Access Keys. I’m going to click Add Access Key. I’m going to restrict this to one device or generator. I’ll click Create Access Key.
Copy the Access Key here. Go back over into the Azure Cloud and paste it. Grab the Secret, paste that as well. We still need the Losant device_id. I’ll go ahead and say I have that information. Close the window. Just a quick tip on that before I get the device_id. The reason that I tied this one Access Key and Secret to one device is something that I always recommend our customers to do. The reason is because this Key and Secret allows this device to securely connect to the Losant platform. If we ever want that device to no longer connect to the platform, we can either delete that Access Key altogether or we can change the status back and forth between active and inactive to enable it and disable it. Let's go ahead and get that device_id. If I go to our Device Overview page, we can either click this button here in order to copy that ID or we can go into the generator itself and click on the Copy button up here to get that device_id. I’ll go ahead and click Copy ID. Flip back over to Azure and paste that in here.
At this point, we're ready to go. We can click Update Review and Create and have this Losant Edge Agent deployed to our gateway. Before we do that, I’m going to click on Container, Create Options here and just show this to you. When the Losant Edge Agent is being created on the gateway, this tells us options that we can do of how that container will get started up. If we need to expose certain ports between the host system and the Losant Edge Agent, we can expose those here. The Losant Edge Agent also comes with a lot of different options. One of them is that we can create it into a web server. Another one is we can turn it into a local MQTT broker. We have documentation on all of that. If you want one of those options, you can go read our documentation.
You can specify those options here and then those features will become enabled on your Losant Edge Agent. At this point, I’m going to click Update, Review + Create and now, I’m going to click Create. You'll see down here, we have a new module, the Losant Edge Compute version 1_20_0. You'll see that it has not been reported by the device yet. What's happening now is Azure IoT hub is telling our gateway to pull down that specific version of the Losant Edge Agent that we specified and to start it up and get it to a running state using that Losant device_id Access Key and Secret. If I click Refresh here, we'll see that it is now being reported by that device. We'll flip over here back to our hardware. We'll run that exact same command again. We can see that the Losant Edge Compute version 1_20_0 has been running and we can see that container, that image.
Okay. Now, we're at the point where we can go ahead and build and deploy that Edge Workflow within the Losant platform and push it down to our gateway. Then ultimately, we're going to display that information here in our Losant End-User Experience. You can see that we already created that generator, so we have that up here now. We have our generator in our Losant Experience. I’m going to go ahead and click on that generator so we can see the information associated with it. We are currently simulating every attribute of this generator except for one, which is the manifold temperature. What we're going to do with our Losant Edge Workflow that we're going to build, we're actually going to have that Edge Workflow read from a Modbus device that has the manifold temperature in it. Let's go ahead and do that now. Jump back over here into Losant. I’m going to click on Workflows. We will skip past the Application or Cloud Workflows, past the Experience Workflows into the Edge Workflows. I’m going to go ahead and call this Manifold Temperature.
Again, we pulled down the latest Edge Agent, which is version 1_20. If we were previously running an older version, 1_18, and we pulled down the latest Losant Edge Agent 1_20_0, all of our workflows are backwards compatible so you should have no problem running that. I’ll go ahead and click Create Workflow and I’ll start building that Edge Workflow now. I’m going to drag a timer node over. I’m going to grab the Modbus read node. And then for the time being, I’m going to start with just a debug node so we can see what this data looks like. This debug node allows me to view every time that this Edge workflow runs, I can see live debugging information of it over here. To configure this, I’m going to set this to run every five seconds. I’m going to change our Modbus device to the IP address that it is at. This is the correct port, the correct unit ID.
Our manifold temperature is at holding register one with a length of one. I’m just going to randomly call this manifold_temperature, you can call it anything you want. Same thing down here. I’m just going to randomly call this working.modbusRead. This is telling our workflow where to save that data over here in our debug panel or on our payload. I’m going to go ahead and click Save. I’m going to click the Deploy button. I’m actually going to change this version to v1-debugging, let's say. I’m going to deploy this to our generator. However, you can see that I can select as many Edge agents as I want to deploy this one workflow to. I can even use that tagging mechanism to deploy this one Edge Workflow to all of my generators or use different tags in order to deploy this to some subset of my generators. I’m going to go ahead and click Deploy Version now. What's happening now is we just developed this Edge Workflow in the cloud.
The Losant platform is pushing this workflow down to our gateway running the Losant Edge Agent locally in your local environment. It will start running this workflow, so every five seconds, it will run this. We can see that coming through right now. So, about every five seconds, I’m going to pause it so we can look at this payload. I’m going to go ahead and open this path working.modbusRead.manifold_temperature. You can see here that where we're getting this data, working.modbusRead.manifold_temperature is where we specified that here on our path. Okay. We can see the data coming in, so that's good news. The next step we want to do is actually save that as Device: State data. When we save it as Device: State data, what that will do is actually save it to the Losant cloud to our Digital twin which will then allow us to use it in other places like I mentioned before. In this case, we're going to display it here as our manifold temperature. Let's go ahead and do that now. I’m going to drag the Device: State node over.
I’m going to come over here and right click... Actually, let me go ahead and pull the attribute name first. We want manifold_temperature. So, I’m going to go ahead and copy this attribute name. I’m going to specify that here in my Device: State node. Now, I need the value. I’ll go back to our Debug node, find that value again. The tip is you can go and right click on this path, copy it and now, I’m going to paste it over here. I’m going to use our Templating in order to put that value in here. We have a Losant Deeper Dive, a webinar all about how to do different things with Templating. If you want to learn more about that and the power of Templating, I would suggest going and checking out that Deeper Dive. Now, what we have is a workflow that's going to run every five seconds, pull data from a Modbus device and then ultimately, save that as Device: State to our Digital twin.
We save that. We're going to go ahead and click Deploy here. I'm going to go ahead and X out of this so we can see when it starts running this new information. While it does that, we can go back here and flip onto any of the different versions that we were running before and go ahead and deploy those old versions as well. What's going to happen now is we're going to push this workflow down to our Edge Agent. From there, it's going to start reading the Modbus device information again. It's going to save it as Device: State. When it saves it as Device: State, what it does is it figures out how to get that information from your local gateway running on your local environment, push that securely to the Losant platform so that we can start saving that data here in the platform. You can go ahead and see that we're reporting every five seconds at value now.
Now, that we have that data saved as a Losant device, we can go ahead and flip over into our Experience and see that that data is here now as well. Now, we have this fully connected IoT connected solution running. Let's say that we're running this for a while and Losant comes out with a new Losant Edge Agent and we want to deploy that to our entire fleet. Losant comes out with new versions many times a year. The reason is because it has new features in it, sometimes it'll have bug fixes. If we want to put a new version to our entire fleet because of a bug fix, it's really easy to do. We don't have to do anything on Losant side. All we need to do is go to Azure IoT hub, because that's our device management. I’m going to go ahead and click on Set Modules here again. I’m going to click on our Edge Compute device down here. As we know, I can completely remove this tag because it will pull the latest Losant Edge Agent down or in my case, I can just change it to version 1_21. I’m actually going to update the name to show that as well.
At this point, all I would need to do is click Update, Review + Create. What happens at that point is Azure IoT Hub is going to tell our gateway to stop and remove the currently running container of the Losant Edge Agent and instead, pull down this new version and then get that to a running state using the exact same device ID Access and Key and Secret that it was using before. The important part of that is since we're using the same ID key in Secret, what happens is when the Losant Edge Agent starts running on that gateway for the first time, it's going to check in with the Losant platform and the Losant platform is going to see that it needs to send its specific workflows like that Manifold Temperature Edge Workflow we just built. It will automatically push that workflow down and since our workflows are backwards compatible, it will start running that workflow again without having to make any changes on the Losant side.
That ends the technical walkthrough but I did want to end with a couple of notes. Everything that you saw me do today in Azure and Losant was a manual process of deploying the Edge Agent, creating devices, deploying the workflows and so on. In your implementation, you can keep the same process or automate this process as much as you would like. A couple ideas with that. From the Azure side, you can tag your devices for example, by customer, model number, facility, really, any tag convention you want to come up with. And then use those tags to deploy the Losant Edge agent to all or a subset of your gateways. In Losant, you can automate a lot of the steps as well using our Workflow Engine such as using our device create node to create the Losant devices on the fly and auto provision those devices to the correct Losant Experience group to name a few.
Finally, I hope you saw the power of combining Azure IoT with the Losant enterprise IoT platform. Combining Azure with Losant gave us the ability to have a fully end-to-end IoT connected solution built and deployed by using Azure IoT for device management with Losant's ability to quickly and easily build and deploy Edge workflows, save the data from those workflows to a Losant device, the device's Digital twin... And then build that multitenancy End-User Experience so that your customers can log in and interact with that data. At this point, I’ll pass it back to Brandon. Thank you.
Brandon Cannaday: Thank you, Kevin. That was an excellent technical overview. We're just a couple of minutes from getting into Q&A, so if you haven't already, please drop your questions. Looks like we have a number of them already. Drop your questions into that Q&A form and we'll make sure to get as many of those answered as we can. This slide here is the best place to get started. You want to grab a screenshot of that or it'll certainly be available in the replay as well for those links. The Azure IoT Edge Quickstart, that's what Kevin alluded to. That provides all of the setup instructions to get the Azure side installed on the gateway itself. And then we also have some instructions on our documentation page that kind of goes through what Kevin went through on how to start deploying our Edge Agent and then workflows into our Edge Agent. If you want to get started with this pairing of technology, these are two excellent resources to do so.
For additional learning on Losant itself, we do have a wealth of information available. We've got our documentation. We do have a university, a bunch of video-based training material. We have this Deeper Dive Webinar Series. There's a lot of replays available that go really deep into very specific implementations and use cases, a number of hands-on tutorials on our blog and then our community forum's a great place to ask questions and learn from other Losant developers. Finally, a couple save-the-dates. We do have two more Deeper Dive webinars coming up in March. They're really about that device management and that multitenancy management. The first is designing and implementing an IoT products, multitenancy model.
When you are out there developing an IoT product where you have a lot of different customers or tenants, it's really important to get that multitenancy model correct. We're going to go through some detailed step-by-step instructions on how to model that. And then kind of piggybacking on that, a week later, we're going to show how to do some on-demand device provisioning using QR codes. You can probably picture a lot of, especially consumer IoT products but it's also popular in industrial IoT where the device or equipment will have some kind of code, QR code or barcode that a user can scan with a mobile app to much more easily get that device provisioned to their own account.
You can find those at losant.com/deeperdive. With that, let's get into some questions. I’ll start... There's kind of two that are related which are — do we integrate with Azure Maps and their indoor maps and also, what other future plans do we have for additional integrations? I’ll go ahead and take that one. We do have a number of integrations already. Certainly, the IoT Edge that we just saw is our newest. We do also have a Azure Functions node within that workflow engine. Very powerful way to integrate with almost every Azure service. So, as data is flowing through those workflows, you can use the Azure functions node to kind of call out, maybe enrich that data from a source of information on Azure or invoke some Azure service AI, ML service that may not be available directly in Losant.
That's a great way to do a large number of integrations. In terms of Azure Maps, we don't have a direct integration with that today, certainly worth investigating. When it comes to the End-User Experience, it's pretty straightforward to use really any number of mapping providers that you want. We do have a library template that does demonstrate how to use Google Maps, so a lot of those lessons will apply to either one of those. Christoph, one for you, interesting one on kind of the billing side of the Edge modules. There's a lot of contributions to the Azure marketplace that have kind of that on demand or that subscription billing component where customers can use a third-party service and Azure will take care of the billing. That's not available yet for IoT Edge modules but one of the questions was asking about that. When will it be available or if it will ever be available? Could you take a moment to comment on that?
Christoph Berlin: Oh, happy. It seems like we went straight to 11. This is one of those topics that comes up quite often. The short answer is — yes. It will actually come and it is actually already in the works. We literally call it Edge Billing internally. Don't ever tell marketing about how we simplify these things. I don't know what it will be called at some point but Edge billing is, especially for partners, is something that is already in the works. Now there are, naturally as with always in technology, multiple angles to it. There is pretty much — the license models will heavily depend on how do you actually ship your solutions? The first integration point will actually be that you have the simple out of saying — okay, I have a module price per month. The ability to have pretty much consumption based as well will come a little bit later but it's also in the works. Long story short, yes, it's coming. Yes, it is actually something that we actually behind because it is pretty much needed for the ecosystem. Happy to deep dive later into the details over there but at the same time, there will also be a journey with regards to the different modes of licensing that will be available.
Brandon Cannaday: Awesome. Thank you, Christoph. It's always kind of cool to hear some of this stuff that's upcoming in organizations like Microsoft. The next question...
Christoph Berlin: Oh, if only you would know.
Brandon Cannaday: This next question I think it's probably good for both people to answer because I think Losant and Azure handle it in different ways. We'll start with Kevin on the low set side and then Christoph can comment from the Azure side. The question is when an Edge Agent loses connection to the Losant Cloud, what happens to the data from workflows? Are there limitations of how much backlog can be handled? Kevin, you want to talk about that from the Losant perspective, essentially the magic that happens behind that Device: State node when the connection is offline.
Kevin Niemiller: Yeah, absolutely. That's a great question. When your gateway becomes disconnected to the internet and no longer talking to the Losant platform, your Edge Workflow will continue to run no problem on that gateway. When you use the Device State node in order to send that data up to the Losant platform, it will actually back up all of that information on your hard drive on your gateway and then once the internet connection is re-established, it will go ahead and push up all of that data with the correct timestamps so that the Losant platform will get all of that data. I’ll go ahead and pass it to you, Christoph.
Christoph Berlin: Well, there's not much more to say. Maybe one thing. Kevin is absolutely right. This is actually something that we call store and forward. This is actually one of the examples how leveraging in Edge Common Core platform is pretty much so helpful because you don't have to worry about these things. Naturally, and just being a developer myself, there are limitations to it. I just want everyone to understand that there are limitations that are simply outside of the boundaries of any solution. For example, if you have an Edge device that has, let's say 10 gigabytes of hard disk and you are pretty much having a significant amount of telemetry being sent, you will run out of storage at some point. There are a few corner cases that you have to take care... Or actually not that they have to take care of it, that you have to consider. The way the Edge platform does it is that at some point, you can actually decide what to do in these, let's call it critical scenarios.
Do you do pretty much a rotate, do you do pruning off of old files, do you actually stop ingest? There are different rules that you can apply to say — if I run into the boundaries of physical behavior, literally, because you cannot just magically upgrade the hard disk if it is an extended outage, then you define certain rules with what to do next. Short answer is — absolutely and it happens automatically and quite literally, because this is how the Edge hub and the overall component works, it is still encrypted. It is still pretty much protected. But depending on the outage and how long, then you define certain behavior. Which again, and then I will be quiet, which is different than in offline mode. Disconnect versus offline mode. Disconnect really means that I have to pretty much mitigate a certain situation. Offline mode means that I do not have any plans to talk to the cloud anytime soon. At this point, I have to have a different log rotation or telemetry zipping available.
Brandon Cannaday: All right. Perfect. Thank you. This next question, I think we'll go to Kevin. This person asked, they know Losant and Azure both offer MQTT brokers. Is it possible to use Azure's broker through IoT hub and also Losant for kind of the application side? Kevin, you want to talk about some of the integrations we do there?
Kevin Niemiller: Yeah, absolutely. The Losant platform can act as both the MQTT broker or as an MQTT client. As the broker, you can have many different MQTT clients reporting into our broker. However, like I said, we can also be the MQTT client. We have an integration section within the platform. You can specify all of the details there as far as the host that you want to connect to, so the Azure broker in this case, the authentication method, the topics that you want to pull from. All of that stuff can be done in the Losant platform. We actually have a how-to guide on how to send that device data from Azure to Losant. I’ll go ahead and ask Janet if she can post that how-to guide in the chat. Looks like she just did that for us.
Brandon Cannaday: All right. Awesome. Looks like we got time for maybe one more. Want to make sure we get done before the hour. I just like this question. He's a student from Florida International University. Really asking about skills or experience or certification that we might recommend for a student to really make them stand out from the competition. Their ultimate goal is IoT and cyber security. Christoph, you might be a good person to kick this off. What's your opinions on some skills or education related to IoT?
Christoph Berlin: That's actually a really good question. I can only speak... Well, I cannot speak on behalf of Microsoft but I can speak from the experience at Microsoft. I believe the biggest gap we currently have within the industry is actually lesser specifically about IoT, even though I will explain IoT in a second, it is more about building at cloud scale. What this means is that you actually have the experience to or you spend more time learning about the experience to build distributed systems, to build single management planes and all these things that actually help build these elements at scale. Because one of the challenges that IoT does, and this is what I was referring to earlier, is IoT pushes the boundaries of pretty much every technology out there. IoT is pretty much massive in scale for devices, can be massive in scale for data, can be a harsh environment such as the Saudi Arabian desert and all of these things combined.
So, cloud scale experiences, building a pretty much building distributed models, building or having the ability to really think about a pretty much function and implementation versus complete monolithic blobs and all these things is actually what is most needed. I mean, to be honest, even at Microsoft, this is what we are looking for. I mean, even the customers that you serve, they don't want to worry about the things that really have been hard in the past. They want to think about — how do I get my business logic to work and not — how do I actually build this for highest high-scale data ingest input.
Brandon Cannaday: Yeah. I 100% agree with that. Kevin, do you have anything to add? You've kind of a unique perspective being a solutions architect, you do help directly with customers as they develop their products. Is there some common skill sets that you see that are needed as part of those solutions you're building?
Kevin Niemiller: Yeah. What's great about IoT is that I really enjoy hardware as well as software as well, so I get to combine both of those together. So, anything you can read up on Edge and hardware and those types of gateway. But when you want to learn the IoT side with software, I really think Losant is a good place to kind of dig in and learn about that. Losant offers a Losant University, which will take you through and I think that is a great tool, in order to learn about IoT in general and how the Losant platform uses and integrates with IoT.
Brandon Cannaday: All right. Makes sense. That's all the time that we have. Really appreciate you joining us. Christoph, really quickly, if somebody is listening and interested in talking about partnerships or pursuing Azure as a solution, what's the best way for them to get in contact with your organization to have that conversation?
Christoph Berlin: Well, the easiest path is just drop me a note. email@example.com. Simply because we have many different paths of partnership engagements, angles, teams and everything else. The fastest path is... Let me actually say it differently. Let me be a little bit more corporate here. There is pretty much, if you are officially seeking, I recommend to go for the OCP Partnership portal, which is the one commercial partner. Just go for Microsoft OCP and you find it. They will help with the overall partner engagement, partner framework, NDA and all these things. If it is really about getting a quick answer as to — does it make sense, is there interest in all these things — happy to answer these questions directly. Like I said, firstname.lastname@example.org simply because sometimes, I mean, at the end of the day, we're all human. Just shoot a note and we can talk about it.
Brandon Cannaday: Perfect. For the Losant side, the slide up here. Feel free to reach out to us email@example.com or find a contact form on our website if you want to talk partnership or if you saw something today that might be a good fit for an IoT service you'd like to bring to market. With that, I appreciate, Christoph, you taking your time today and also, Kevin. Thank you to everyone else for joining us on this Deeper Dive and we'll see you next time.
Christoph Berlin: Thanks so much for the opportunity.