Craig Baldwin: Hey, everyone. Since we've waited just a couple minutes, we will go ahead and get started with today's webinar. I’d like to say welcome. This is the third installment in our take a Deeper Dive Losant webinar series where, today, we'll be reviewing an equipment monitoring solution. I’d like to introduce myself, Craig Baldwin, I’m the Partnerships Director here at Losant and we'll also have Scott Allen, who's a Solutions Engineer with our team. Scott will be taking us through the demo and showing off some of the components within the Losant platform later today. A couple admin items before we get too far into the webinar. First and foremost, if you have any questions or comments, there are two options. Preferably, we'd like for you to use the Q&A feature where you can ask a question but you can also use the chat and we'll make sure to answer each of those questions at the end of the webinar. The webinar will most likely take about 30 minutes today. We will go over with extra time for questions so if you'd like to jump off at that point, that's totally fine and then you will receive a recording of today's webinar within the next 48 hours. Any items which we are not able to get to, whether those are questions or specific follow-ups you may have, by all means, we will touch base with the group or reach out to you directly and make sure we can address each of those. We'll get into resources for any follow-up questions or sales questions that you may have towards the end of today's webinar. Before we get too far into the solution, I understand that some of you may not actually have been in the Losant platform today. So, what is the Losant platform? It's a set of tightly integrated components primarily cloud-based which enable our customers and partners and developers to build IoT specific applications. We like to break up those components into five pieces. These are really just building blocks or tools which you can utilize when building your own custom solution. The first one is our Edge Compute solution. This is vital for talking to local networks' legacy protocols. We will actually use it today as a part of the equipment monitoring solution. Devices and data sources. This is how our customers, our partners, our developers, model data as it comes into the Losant platform to make it easier to develop with on an ongoing basis. Data visualization is our broad set of dashboarding tools which you can use to set up your own custom visualizations around your data. An individual workflow engine is how all the logic gets applied to that data when you're developing your solution or application. The last piece is end-user experiences. In many scenarios, our customers and partners may be developing solutions which utilize each of these first four components. However, they would like to publish their solution or application in its own custom interface so their end-users actually don't see the Losant brand but see their own brand. This is where end-user experiences come into play. Now, as a part of today's solution we're really going to focus on these first four components and not end-user experiences but there are pretty good materials within our docs in our university which lay out how to use end-user experiences as a part of your overall solution. Some of the customers that we have today. You see here, Bosch, Verizon, Hewlett Packard Enterprise, Procter & Gamble. A lot of the work that we do is in the industrial space. It's asset monitoring, it's asset tracking. But we also see a fair amount of work in what we call the smart environment space. Since most of it is in the industrial space, we're going to focus on that today as a part of our equipment monitoring solution. Let's talk a little bit more about what that looks like. In a lot of the industrial IoT environments that Losant operates, there is almost always some type of Edge component to what we do. What we have here is an architecture slide which lays out how you may use the Edge Compute solution from Losant in combination with the rest of the platform and the components. Commonly in a factory floor environment, I’ll call it generally, there might be a set of equipment or machinery utilizing PLCs that may talk a whole host of protocols like Allen-Bradley Ethernet/IP or OPC UA. The Edge agent, which would most likely sit on some type of Linux gateway, would talk those protocols to those PLCs and extract data to then be sent up securely via MQTT to the Losant cloud. There are other options for talking locally. That could be a SQL database or maybe in your SAP install. These are all components which are vital to extracting data from a current set of assets or in a legacy environment. The Edge Compute is really built to help make that data extraction as easy as possible. We also see scenarios where Losant is used for fielded equipment that's in remote areas. Maybe it's the same type of asset just in a thousand different places. The execution is going to look fairly similar. Losant Edge agent will most likely sit on some type of Linux gateway. That Linux gateway would be pulling diagnostics information from that piece of machinery, perhaps that's via Modbus TPC, serial, many other protocols which are out there today but those are the common ones we see the Edge agent utilize for and then securely, via MQTT connection, send that data to the Losant platform. Once it's in the Losant platform, that's where you can utilize the workflows and the visualization tools in order to set up your business logic alerting a notification. And, as we talked about just a little bit earlier to take it one step further, you're now presenting that information either directly via dashboard tools or an end-user experience, a custom branded application for your internal or external users. To showcase how this may actually look within the platform itself, I’m going to toss it over now to Scott so he can take you through an example that he has to show.
Scott Allen: Okay, great. I’m going to go ahead and share my desktop here. You can see an application that we have created to show equipment monitoring. In this case, we are showing a factory floor that has several CNC machines and also, three packaging lines on the same floor. Now, the methods we're going to talk about today are not specific to those types of machines. So, you could set up something similar for compressors, engines and other type of equipment. It's just a matter of defining your devices and the attributes that you want to track. Now, equipment monitoring is important to several groups, primarily operations, to make sure that each machine and line is operating as much as possible. Also, your equipment maintenance group to predict which systems are in need of repair or schedule preventive maintenance and then the management so that they can see how effective their equipment is in producing whatever the product is. Also, it gives them an idea about how reliable machines are for future purchases and expansion. Now, what I’m showing you here is a Losant dashboard with several different indicators on it to give you different information. Primarily, here at the top, we have a factory layout block. This is one that's based upon a floor plan of the factory. You can see, we've added several markers to show where the equipment is on the floor and also, how well it's operating. Now, here on the left side, we have nine different CNC machines operating. They're represented by the green circles that you see. And the green indicates that the machine is cutting and working properly. A white dot indicates that this machine has stopped for whatever reason. The blue dot indicates that it is currently not cutting and red indicates that it is in an alarm state right now. Now, on the right side of the diagram, we also have diamonds that indicate the three assembly lines that we've created and how well they're working and each one of those are currently working real well with a low defect rate. Now, we'll come back and talk about the particulars of this block in just a minute but I did want to show you the other blocks that we have on this particular dashboard. First of all, for the CNC machines, we have indicator blocks showing the status of each one and this gets updated as each machine reports its information. Here on the right, again for each of the CNC machines, we see its status for the last 24 hours. How often during that time it's been cutting, non-cutting, idle or if it's been in an alarm state for a period time. We can see that here. And in the center, we see an overall status for all nine of the machines and how well it's working. Continuing on down, we've got blocks' line charts showing us the overall part qualities and also another way of showing the status of each of the CNC machines over the last 24 hours, how well it's been performing. And then again, we have kind of a different way of looking at information for each of the nine CNC machines. We can see the quality of the products being produced, its individual status and then also for the last 24 hours, how long it has been cutting, idle, not cutting. Obviously, we can see that there's one machine that's in need of attention here and through this dashboard, that's very obvious so that the right people can get on it and get this machine up and running. We also have some indicators down here at the bottom for the assembly lines. Same type of information, the overall status for the last 24 hours. You can see we can mouse over the pie charts to get numerical data if we want. We have these bar charts showing the last six hours, what's the speed of the line, how many defects have been produced during that time. And then the overall, the effectiveness rate, how many defects have we created, how many pieces have we created total and defective. On this one dashboard, we have the ability of showing you a lot of good information about what's happening on the floor. The advantage of having a dashboard of this type is that it is one that allows your management team and your operators to see what's going on on the floor pretty much at a glance. Here, the whole dashboard is available through the cloud, which means that your team can view it anywhere within the floor. Also, your management can see it if they're traveling for work or want to see it after hours, they can connect. And also, as the next shift arrives, they'll want to see what happened in the previous shift or two and this is a quick way for them to see that most of the machines are operating normally. We do have one CNC machine that looks like it needs some assistance. Lots of different ways that we can see this. The other thing with the factory floor plan, as you saw, all I have to do is select a particular item and we can display information about it right now like its current status. Also, we can move to a second screen to show us details for that particular device. I’m moving to that screen here. We've actually moved away from the standard Losant dashboard into the user experience that Craig mentioned briefly. The user experience is a way that you can create your own website. It's hosted by Losant but you can see we can rebrand it with your logos or your customers' logos and we can see details, more information than what we saw on the overall dashboard. In this case, we can see details on the parameters as far as coolants, how well the vibrations are working on the machine, if there's any bad pressures or temperatures. We can see it all right here. Also, we can look at more details as far as if the cutting tool, how well it's rotating, if it's any problems with that. Again, very obvious here. Again, it allows us to focus on one particular machine as part of the tool. Now, let me go back here to talk about how we have set up this floor plan to provide that information. This is something that you can provide for your own equipment on the floor as well. Let me go here to the chart, really, the edit capabilities for this particular block so we can kind of go through the details of how we mapped all of this. Obviously, you can name it whatever you want it to be and you can decide whether you want to show the last data that you received or more historical data. Now, when it comes to the data that we're actually displaying on this screen, you can define the type of information that you want to show. It can be for a specific machine or a specific type. In this case, we are showing all of the CNC machines and we are showing the assembly lines. The advantage of doing it this way is that if you add a 10th, 11th or 100th CNC machine, once you define your devices in the proper type, that means you don't have to add it specifically to this screen. We will automatically show you the location and status of all of the CNC machines in your factory area. It's not something that you have to go back and add on a case-by-case basis. Now, what we did is we have a blueprint of our factory floor and that's what we use as a basis here and then we define what would be the upper left and the lower right-hand coordinates, 0,0, and the maximum X and Y coordinates for that particular chart. And then for each of the devices that we have, we specify exactly where this particular device is in those X and Y coordinates. Now, as I mentioned before, you have a way of setting up what markers you want to show for each machine and its status. In this case, here in the icon template block, we can set up logic that says — all right, if this is a CNC machine and its current status is cutting, then we want to show that as a green circle on our diagram. Likewise, if it's stopped, we want to show it as the gray. Not cutting is blue and the alarm is the red marker. You can upload these markers that you want to use. So, even if you have specific icons that you want to use, you can upload them to your Losant environment and then just refer to them here. That way, we'll display custom icons rather than just circles and diamonds. The other option we had here was that if we were monitoring an assembly line, then we would show this, instead of a circle, we would show it as a diamond. That way, it's very obvious when we look at the chart, which is which. Now, the other thing that we can configure within this particular block is that bubble pop-up display that you get when you select that particular item. What we did here is we said if this is a CNC machine and you click on it, we're going to display the current status. So, we give it a label. Again, we're looking at the status and giving it proper formatting to make it stand out as far as cutting, stopped or on an alarm. Also, if it is the CNC machine, we're going to give you a link that the user can select to see the details, that's that second dashboard that I showed you. It is a way for you to not only see the current status but to kind of drill down to see the specific data that you want to see. Okay. Now, the next thing I wanted to show you was the actual application behind this dashboard and how we're getting the information. What we're looking at here is the main application and we really have two or three major areas that we want to work with here. One is specifying the devices that we are receiving information from. And next, we also want to have the workflows, sort of how we're processing that information as we receive it. That way, the dashboard and the user interfaces or the user experiences are showing the proper information. Let's start with the devices. I’ll select one of our CNC machines. In this case, in a real environment that we'd be collecting this information, we would be getting this from the Edge Compute device that Craig mentioned. Now, that Edge device is a machine that's local to where the machines are on the same local area network. In this case, it would probably be using ethernet IP as a way to get to talk to the Alan Bradley PLCs that the CNC machines would be using but it could also be using other method or other protocols like OPC UA or Modbus, whatever your equipment is using as a way you can collect that sensor data, we can go get it and then bring it into the Edge device. The Edge device then processes it locally and then sends it up to the cloud and you have control over how much data is sent to the cloud. These machines can report once a second or even faster, with all of their information but that's not practical for a cloud environment. So, you may want to have your Edge compute device send the information up to the cloud once a minute or whatever you think is appropriate for people to see the information. Of course, if there are any alarms detected by the Edge Compute device, that information gets uploaded to the cloud immediately so that we can process it. Now, besides defining the devices, which is maybe your X and Y coordinates, the current condition, its status, whether it's cutting or not, you would also specify device tags. Now, device tags are static information so they don't change from one payload report to another but it is useful for carrying information about that machine. Do you remember on the layout block, we said we only wanted to show equipment for CNC and line types of equipment? This is where I would define that this particular piece of equipment is CNC and so I want to include it on that layout. If I have different types of equipment that I don't want to show on this particular dashboard, I can change the type and that way, it wouldn't show. If I add a device, all I have to do is make sure the type is CNC, give it the proper X and Y coordinates and then it will show on our layout just like the other machines will. Okay, the other thing I wanted to show were the workflows that you would set up. Now, the workflows are ways that we're going to process the information as it's received. In some cases, we may have to do some translation of data to make it something that makes more sense as we're looking at the dashboard. But I wanted to show you a particular workflow for notifying people if something is wrong. Now, when you have remote monitoring of your equipment like this, the information can come very fast and very detailed. So, when you want to notify people that there's an error condition, you've got to be a little bit more specific or you're going to overwhelm everyone with messages. One of the things we can do is set up a workflow — and I’ll show you an example of one here, a brief one — for setting up more efficient messaging maybe to managers or to your floor supervisors as need be. Rather than bombard them with all of these messages as it's being received, you can create something that is a little bit more efficient. What I’ve done is created a workflow here that allows us to check the status of a particular machine over a period of time. In this case, I’ve set up a timer to do it every minute. You could also set it up to run this workflow every time we receive data. It's really up to you as far as how urgent and how quickly does this message have to get out. Now, what I do is once a minute, I will go to a particular machine, and again, I could loop through to get all machines, that's what I would do in the long run, but in this case, I’m looking at a particular machine.I want to say, I want you to count how many times the status alarm is true over the last hour and I wanted to check it as it was reported every 30 seconds. I’m taking the result of that check and putting it into a variable in a working section so it's part of the payload data at this point. Next, I will check to see if the number of alarms in the last hour is greater than a alarm rate that we've set up by one of the device tags. If it is, I’m going to continue through this workflow. If not, I’m going to stop at this point because everything's good and let it process again. The next thing I want to do is, rather than bombard this manager or people with messages every minute or every 30 seconds, I’ve set up a throttle on this workflow and what it does is it allows me to make sure that these messages only get through 12 times an hour or every 5 minutes. That way, the messages they get, they can pay attention to and they're not bombarded by every single device every minute or every 30 seconds that we compare. And then finally, we're going to send a text out. In this case, I put in a phone number that we're going to send this to. We could easily set up a table with all of the managers' information and the way that they can be contacted so that we could contact as many people as we need to. Oh, and I’m sorry, I missed a step here. We figured that the managers are on location during normal work hours. So, we've also set up a condition that says, I really only want to contact these particular people in off-hours or after the first shift is over. So, from 6 PM to 6 AM is when these messages can go out and obviously, you can create as many different conditions as you need to. Like all of our applications, we've tried to create this, both the processing and the display of their information in an easy to use environment that's really made for rapid deployment. This is something that can be created very quickly and can be used immediately by your team. The changes are easy to implement by the development team and to keep your process as efficient but as informative as it needs to be. At this point, we've completed everything that I wanted to show you. I’ll turn this back over to Craig for any questions that he has.
Craig: Awesome. Thank you so much, Scott. We really appreciate it. That was a wonderful demo. I’m going to go ahead and share my screen real quickly and just point out a couple of resources that we have today which are available to each of you before we get into the questions. First and foremost, the Losant documentation at docs.losant.com is by far and away one of our best resources this has all referential information about the platform. Every single feature within the Losant platform is covered here. I would encourage you to look there especially if you're a first-time developer within Losant, this is a wonderful way to get yourself familiar with the feature set and how it may work. The next piece is, we would just encourage you to jump into a Sandbox account if you don't already have one. This is where you can go for free and start developing with Losant, connect your first devices, send some data to the platform, create your own workflows. If you have any questions as you're moving along in your development process, please go to our forums at forums.losant.com. That's another great place to either see previous questions that have been answered by our development community or ask your own and we'll try to get you an answer as soon as we can. The last one is Losant University. Losant University is more video-based content, tutorials and walkthroughs on how to use some of the components that we talked about today. We're in the beginning stages of Losant University and this will continue to evolve and become a pillar of what we do from an education perspective. So, please, if you're still trying to get familiar with the tools or want to learn more, check out Losant University. It's a wonderful resource. At this point, I’m actually going to go to the questions. So, if you have any, please go ahead and ask. I will start with the first one which was — I saw SAP on the diagram. Can you talk a little bit more about how the Edge Compute talks to SAP? Thankfully, today, I actually have a couple panelists with us that are sort of Losant celebrities. One is Taron Foxworth, who is our Head of Education, another is Brandon Cannaday, who leads Product at Losant and the last but not least is Adam Daniel who is our Head of Solutions. With that, this might be a good question on the product side. Brandon, would you mind addressing how SAP might work within the Losant platform and how you could use it within the workflow?
Brandon Cannaday: Yeah, happy to. You may notice, if you've gone through the palette of available nodes, that none of them specifically say SAP but that's because SAP has a wonderful product called SAP Gateway that you can install in your own environment and that essentially takes your entire SAP environment and exposes it as open data protocol or OData. That's just kind of a long way to say a basic REST interface. That makes it really easy to essentially take any information you might have in SAP, two directions, so, you can pull information in and you can kind of send commands back using essentially our built-in HTTP node. This makes it very easy to interface with those REST interfaces. OData's all XML, so you combine that with our built-in XML parsing nodes in order to take that data and read out the important pieces of information. I would definitely investigate SAP Gateway if you are an SAP user. Even if you're not a Losant user, Gateway makes it very easy to interface with your existing information with other services.
Craig: Awesome. Thank you, Brandon. The next question we have listed is — how does the Edge agent communicate with Losant? Does my IT team need to open ports from your cloud to our site? That is an awesome question and especially relevant to a factory floor scenario. Maybe we can ask Adam Daniel, our Head of Solutions how he's tackled this in the past or how you'd suggest developers might use the Edge agent moving forward.
Adam Daniel: So, the primary communication between the Edge agent and our platform is over MQTT. There would be need to be some kind of connection between the outside world and our Edge agent. Typically, in an environment where we've deployed this in the past, it's usually some kind of cellular connection especially in a CBM or remote monitoring scenario.
Craig: Okay. Thank you.
Brandon: I can provide a this is Brandon, I can provide a little clarification to that. I think the question was asking about kind of ports especially in a factory environment, that can be pretty sensitive. IT team doesn't particularly enjoy opening up connections but our Edge agent makes an outbound connection. So, they're not required to open up a port to the outside world. The Edge agent connects from the inside to the outside just like your browser would. If you open up your browser and request any website, you're making a connection out, request information and bringing it back in. Our Edge agent even talks over those standard web ports. So, as long as your IT team is comfortable letting people use browsers and access the internet, the exact same technology, exact same ports can be utilized from the Edge agent connecting up to the cloud. So, very comfortable, very friendly from an IT and a security perspective.
Craig: Awesome. Thank you, guys, and thank you, Brandon for that clarification. Another question that came up during the demo, I believe, was in reference to the 2D positioning chart that was utilized to showcase the factory floor and the CNC machines, I think, we were showing on that factory floor, the particular statuses that we were showing just via the visualization. There was a question about, if we added more assets, would those dynamically show up on that chart? If not, maybe how would we go about dynamically updating that chart with new assets or new devices that might be added to a solution? Brandon, maybe you can help out with that one as well.
Brandon: Yeah, happy too. I would definitely... I see the question as it's written. I would also interpret that as dynamically adding whole new blocks. So, that dashboard had devices distributed on a single block but then there were individual blocks for the status of each device. Dynamically adding data and devices to an individual block is supported. You can get pretty clever with the usage of tags and when new devices show up, they will automatically show up on that position chart, maybe in a time series chart and other things like that. What's not currently supported and believe me, plenty of people asking for it, so it's something we will have to address is what I think is being asked is — how then do you add those additional status indicators to a dashboard itself rather than inside the individual block? What's supported today, new devices will automatically show up within a block but we don't have the support to just dynamically add new blocks to an existing dashboard but it's a great request.
Craig: Awesome. Thank you, Brandon. I have another question here that is about field equipment, sort of the remote monitoring solution especially what we like to call condition-based maintenance sometimes comes into that. Is — what's the best way to get the data back to the cloud, for example, I think cellular was suggested? Adam, this is probably a good one for you. You touched on the earlier but what are common methods of communication for these remote monitoring solutions and would you say that they're primarily cellular?
Adam: I would say the vast majority of our solutions on the field are cellular-based. Wi-fi or any kind of solution like that, we've seen, at least, is not very common on a manufacturing floor just because of interference and issues with that. When you're talking about CBM, you're usually monitoring one single device or one single machine out in the field from an OEM standpoint, maybe you have access to a network, maybe you don't. So, we're definitely seeing cellular being the primary means of communication between the Edge gateway and the cloud.
Craig: Awesome. Thank you, Adam. There's a really good question here as it relates to the capabilities of my team if I have one, to help develop with the Losant platform. It is — what background does my team need in order to do work in Losant? Since Taron is our Head of Education, this might be a great one for you, Taron. What do you commonly see as the background or what would you suggest as a background that would be necessary to be successful with the Losant toolset?
Taron Foxworth: Yeah, I can totally answer that. There's really two answers to this question. I think on one hand, it's really important that the people who work in Losant, they have context to the domain of the problem. If they have that context of that domain, they're able to use the workflow engine, build dashboards pretty easily. But then when you start to build experiences, you kind of get to the more complex things and sometimes, workflows can get complicated. On one hand, someone with context could come into Losant and be really dangerous. That's what I would say the bare minimum. If you have context of the problem, you can be dangerous in Losant. On the other end, if you are probably around like web developer skills, you know simple HTML, CSS and JavaScript, you are really proficient in Losant, you can accomplish a lot of things. And then anyone beyond those skill sets still applies too. So, there's kind of two ways to think about that problem but the context of the domain of the problem and also a web developer. If they have one or two of those things, they'll perform really well within Losant.
Craig: Perfect. Thank you, Taron. There's a quick question about making the recording available. We will send an email to those who were not able to attend the day and we will make the links available. You can actually find previous webinars which we've done but this one as well. The links will be online for you to access the webinar. We'll make sure that gets to YouTube. Another question was — in relation to the visual blocks or the dashboard tools — this is a really good one. It says, I notice a limited number of visual blocks for user experience construction. For example, there is no table where I can put labels to columns and a few devices to rows. Why is it like that? What's the best way to learn how to create new blocks? I think there's probably a couple parts to that. One is, are there some blocks today which may actually help with that table and label and column view? In addition, if a view that I want to depict is not available in our pre-configured blocks, how would I go about doing that within the Losant tools? Brandon, maybe I can toss that one to you on the product side of things.
Brandon: Yeah, happy too. This is a pretty common question. Kind of where do dashboards end and what we call end-user experiences begin. The answer first part about that why are the visual blocks limited is we really think about dashboards as kind of a system level view of what's going on, kind of the application owner, the developers, the builders, the admins of the system. They can build the dashboards and see their environment from that 10,000-foot view. So, in that case, we haven't put a lot of energy into making those overly complicated, overly customizable because we do want those to be very quick to build and very easy to consume that information. Then things flip over to end-user experiences where you get a lot more power to customize what goes out the door but with that power, comes a lot of complexity. We'll be doing one of these Deeper Dives specifically on experiences pretty soon. I know we've been asking a lot about that but that's kind of where that divide occurs. That's how I like to think about it. Dashboards are kind of for you and then as soon as you want to flip over and talk about delivering something custom with essentially full capability to deliver any visual you want, that's where you're go to end-user experiences. And as Taron had said, that's where you'll generally be more successful if you've got a background in kind of web development, HTML, CSS, JavaScript, because that's what that's built on. We are investigating some ways, it's very common, people do want to build that end-user experience within the dashboarding system itself because it is so easy to use and we're exploring a lot of creative ways to kind of bring that drag and drop on a form builder mentality into the end-user experiences functionality as well to make that easier. When it comes to creating new blocks, the most powerful thing we have right now is the Vega or the custom chart which is built, powered by Vega-Lite, which is an open-source charting library. If you can recall from the demo, there were some kind of horizontal graphs that had a whole bunch of vertical sticks showing the status of a piece of equipment over 24 hours. That is not a built-in visual but that is through Vega and their tools were given a lot of capability to create those visuals in kind of any way we would want. If you need to go even farther than that, that's where I would recommend we get over into that experiences side.
Craig: Thank you, Brandon. I appreciate it. That was a wonderful answer. Here's a really great question that I think comes up a lot. Is a third party MQTT broker required to use Losant? Taron, maybe you can help address that one.
Taron: Yeah. We really want to give everyone who works with losing the flexibility to solve the problem the way that they need. The answer generally to questions like this are yes and no. You are totally able to use a third-party broker within Losant. We have an MQTT integration that supports that but we also have our own internal broker. I think as Adam mentioned, our primary method of communication is MQTT. Devices connect to Losant broker and send data in Losant. You have both options to do that.
Craig: Perfect. Thank you, Taron. Here's a wonderful question as it relates to fleet management and one that we've had internally from time to time but we're always looking for great fleet management tools. Alex asks, do you mind suggesting some other fleet management or fleet orchestration tools in addition to balena, formerly known as resin, that might be more palatable at scale. Adam, I know this is something that you've looked at a lot with the work that you've done. Are there other sort of fleet management or fleet orchestration tools that are out there that you might suggest or consider if you were Alex?
Adam: Yeah, there are quite a few. Balena obviously is one, Clear OS is another. Let's see. We've also worked with Advantech, they've got a couple different solutions out there. You're right. At scale, some of these can be quite expensive. We also have, and I would probably say the most common scenario though is we've got clients that are actually leveraging the platform or the Edge agent to manage the fleet on their own. If you have the expertise in-house to, for example, we've got a customer that's currently using Yocto on an Edge gateway. They're actually managing firmware updates and security patches and everything directly through the Edge agents and through the platform directly without the need of an external orchestration or a fleet management platform. No additional cost within the platform but you do have to have the expertise or work with our solutions team in order to put a solution like that in place but it can be done.
Craig: Awesome. Thank you, Adam. We've got a couple of other questions. If you guys want to hang around, we'd be more than happy to have you. If not, you can get the recording of this afterwards. But one is — does the IoT device or sensor need to always send data to the Losant Edge gateway? In other words, can the IoT device sensor send the data directly to Losant through the public cloud? Taron, perhaps this is a good one for you to tackle.
Taron: Generally, when we think about how devices connect, devices can connect directly to Losant, devices can connect via the Edge agent and devices can also connect via third-party integrations or services. We call them data sources. So, the answer is, yes. You can have any one of those three methods or all of them combined to send data to Losant.
Craig: Perfect. Thank you, Taron.
Taron: You're very welcome, Craig.
Craig: There's another one as it relates back to the Edge side of things which is, what are some Edge device makes or models like the one described in the webinar? Maybe this is really just a way for us to suggest or at least talk about some of the ones that we're familiar with, we've used. I know we've got some listed at our Edge agent documentation on the docs page but, Adam, you want to talk about some of the Edge devices or Edge gateways that you've used with the Edge agent or ones that you've enjoyed using in the past?
Adam: Sure. We've got quite a number running the Edge agent in our lab, in the office as well as some out in the field. Dell devices, we've got it running Ubuntu, we've also got it running Clear OS. We've used a number of the Advantech and the BMB devices as well. DFI is another manufacturer that we've played around with. HPE Edge line devices can also be used. It's basically anything that supports Docker, obviously is very easy to deploy our Edge agent to. So just talking small little Edge gateways. Obviously, we can also use something like a Raspberry Pi or something like that from experimental or from a testing standpoint as well.
Craig: Awesome. Thank you, Adam. And just real quickly, we had a follow-up question on one of the previous answers about fleet management. There's a question about, I think you referenced Yocto in some of your discussion. Can you explain a little bit more about what that is and how it can be used specifically as it relates to Yocto?
Adam: Yocto is a Linux distribution. It's meant specifically for lightweight embedded machines. Think of it like an Ubuntu or Debian but much lighter weight. It's just another Linux distribution. It's common on smaller little Linux embedded machines that are for gateways. You basically have to create a recipe, create an image and then you can write that image to the Linux machine.
Craig: Perfect. Thank you, Adam and thanks, Brandon. I saw you just sent a link through the chat as well. So, perfect. There's a question here as it relates to two-factor authentication. The question is, do you find two-factor authentication for Losant admin secure enough? I use two-factor authentication for personal services such as email but for running the platform, it may be risky or at least higher responsibility. Brandon, since you're on the product side, you want to tackle that one?
Brandon: Yeah, sure. We always follow industry best practices and two-factor auth right now kind of is the industry standard for security. Always open to other recommendations if there's some other implementations out there that might be more preferable. We do also do third-party security audits of our entire platform every year where they poke at every part of it including the authentication system and we haven't received any recommendations from them to change that. If you do have some implementations you've seen in other platform areas that make you more comfortable or something we should investigate, definitely drop us a line for what that might be and happy to investigate it.
Craig: Awesome. Thank you, Brandon. There's another question which is coming back to the fleet orchestration via the Losant agent. That is, could I run two Edge agent containers on one Edge gateway just for redundancy while one docker is updating and another is working in case the first docker update fails? Brandon, I know you think a lot about the Edge agent. Maybe this is a question that you can help to answer.
Brandon: Yeah. The answer is, yes, you can run two agents simultaneously but they can't be representing the same actual Losant device. Because what happens, it's an unfortunate limitation of the MQTT spec, it's a little bit limited on what happens when a device connects with the exact same client ID, really the broker spec basically says you closed the previous one. So, then what will happen is the previous one will attempt to reconnect and it will boot the other previous one. So, you get in this infinite cycle of those two clients essentially kicking each other off. That's just a limitation for the broker in MQTT spec. It's a lightweight spec so it doesn't include a lot of capability around that. However, you can run two different agents simultaneously as long as they are represented by two different Losant devices and then through some clever use of that, you can absolutely kind of get this redundancy. Since a lot of the times, Edge agents are simply reporting state on behalf of peripherals, our system and the authentication mechanism of how a gateway is allowed to report state on behalf of peripheral would allow two different gateways report the same peripheral state. So, if you do have a gateway in environment and it's just connected to a bunch of your PLCs, we will certainly allow either of those gateways to report information. So, one can go offline and a second gateway could come up with a different ID and certainly report the same information. It would take a little bit of cleverness but certainly, doable to allow two agents running simultaneously to get that level of redundancy you're looking for.
Craig: Awesome. Thank you, Brandon. It looks like I have just one more question that needs to be answered. That is, where can I upload my factory plan and locate my devices? I think maybe this goes a little bit more into the dashboard blocks and a little bit of what Scott covered. But Taron, can you address where if I had a floor plan or architectural rendering and I wanted to upload that file to then plot my assets, where I would do that and just at a high level, how I would do that?
Taron: Yeah, of course. What you saw in Scott's demo was the indoor position block. This is the block that you're kind of referring to that can display a device's location indoors. Just a recap of how that works is you upload an image, which is the floor plan. That works... Losant has support for files and those files can be pulled with this indoor position block. So, you can upload the image via Losant files and then use that file within the block. And then kind of Scott showed you, you define the parameters on that block. So, here's where 0,0 means and here's what the other end of the rectangle is. And then it's up to you to kind of say, all right, devices are at this location and because you know where the start and end are, you can kind of plot those devices on the indoor position block as necessary. So, generally, there might be a little kind of figuring out where those devices are but once you get a system down, it's pretty easy from there and then your devices will... You can start to automatically add your devices via tag and those kind of things based on their location.
Craig: Awesome. Thank you, Taron. All right, I lied. There's one more question we're going to answer this one and then we'll wrap up the webinar. But the question is, can two Edge agents on the same LAN talk to each other? Brandon, you want to address this one?
Brandon: Yeah, sure. This leads into a really common architecture. We didn't put it in the diagram but a lot of the times, you'll see a multi-tiered Edge deployment where you might have a gateway at one level and those are all rolling up to a gateway at a second level and then so on and so forth. Traditionally, at a sufficiently complex deployment, you'll commonly see three even four layers of this hierarchy. But what that requires is those gateways, they'll talk to each other. Our Edge agent opens up two different services to make that fairly easy. The first and probably easiest is they all ship with a web server built-in. It can be either unencrypted or encrypted. If it's a private network, maybe do unencrypted but you can also drop in an SSL certificate and do fully encrypted as well. So, one agent opens up that web server. The other one, using the standard HTTP node, can post information into it. The other way which might be a little less overhead on your network is UDP. So, just like the HTTP server, the Edge agent does come pre-shipped with a UDP server and then there is a UDP output that will allow you to send UDP datagrams between each Edge agent and they trigger the workflow like any other thing. That will allow you through those two mechanisms, to kind of create these kind of gateway to gateway or maybe this hierarchical flow of information starting peripheral and eventually culminating somewhere in the cloud.
Craig: Awesome. Thank you, Brandon. Just a couple more items before we wrap up here today. One is, we hope you guys save the date for an asset tracking webinar on March 26th and then we will also have another platform update webinar coming after that. For those of you who are not signed up for that one, you can do so at losant.com/deeper-dive-webinar-series. Additionally, we have other resources that go deeper into the Edge agent remote monitoring equipment monitoring solutions. We encourage you to check out our blog which has some really great how-to articles. If you go to losant.com/blog/topic/tutorial, you can find some great resources there as well as an awesome how-to with one of our integration engineers on how to implement remote monitoring with Allen-Bradley PLCs. That's a post that's out there today and I would highly encourage you to check it out if that is a PLC that you have in your environment. With that, we just want to say thank you so much for your time and joining us here today on the webinar. We hope everyone learned a lot of great information. Please follow up directly with questions and we hope to hear from you soon. Thanks everyone. Have a great day.