Craig Baldwin: …everyone. Welcome to today’s Take a Deeper Dive webinar with Losant. Sorry about that. Brad [Phonetic 00:00:10] just sent a message. So we’re just getting started. I want to allow for a few more minutes for everyone to come in. For those of you who haven’t been with us before, welcome, this is, I believe, the fourth in our series of Deeper Dive webinars. Today, you have myself, Craig Baldwin, I'm Partnerships Director at Losant, as well as Scott Allen, a Solutions Engineer, who’ll be taking us through the Inventory Tracking Solution architecture and a real-use case that we've used it with. As a quick review of Losant, and the platform we provide to the marketplace, the Losant platform is broken up into five key components. Edge Compute, Devices and Data Sources, Data Visualization, Visual Workflow Engine, and End-User Experiences. Today, a lot of what we’ll do, we’ll focus on just a couple of these key components, but we encourage you to check out the platform in our documentation, afterwards, to get a deeper understanding of each of them and how they work when creating a solution. These are just some of the customers that we work with today. So these are entities who are leveraging and using the Losant platform in order to build their own solutions or applications. So let’s talk Inventory Tracking. Today, Scott is going to take us through an Inventory Tracking Solution that he has built using the Losant toolset. So with that, I'm actually going to stop my share and pass it over to Scott. Apologies, guys, we’re going to give Scott just a couple of minutes. He's having trouble connecting, and then we’ll get him online. So let’s just talk a little bit about what the goals are of a typical Inventory Tracking Solution, especially, those that we see with the Losant platform. First and foremost, is to know the actual inventory count of a particular asset, not an estimate of each item. What can be done utilizing Losant tools is to display an inventory status and how the levels are changing over a period of time. This allows to highlight any unusual trends and how the inventory is changing and, of course, drawing the insights about that change within your operations. The other big thing is sort of a real-time notification alert. With the right personnel, enabling or allowing them to know when inventory is low, or even in some cases if inventory is building up, how that can be taken care of, so providing real-time alerts and notifications are a big piece. Let’s back out and see if Scott is available. Sorry about that, guys. Here you go. Here’s a list of those bullets. Using an example of how that would work using Losant…let me put this in a full screen…here’s an architecture. In our office, today, we actually have a couple of scales which are talking serial to a Losant Edge Compute device. In this case, that device is some type of Linux gateway that is running the Losant Edge agent. The Edge agent is being utilized to read that serial information as it comes in. We’re then able to take that raw serial data and pass it via MQTT up to the Losant platform, the cloud platform, that is. As it gets up to Losant, you're now able to harness all the other tools that we provide for visualization, long-term storage, setting up cloud and application workflows, and then, of course, for many of our customers, the end-output is some type of end-user experience of visualization. So taking that important data and then sharing it with your clients. Within the office, here’s a setup that we have. We have a couple of bolts that are sitting on the scales and we’re able to tell, in real-time, what is going on with those bolts, how many we have. The particular Edge gateway device that we’re using in this case is Advantech UNO [Phonetic 00:04:58], and then you can see the sensors that are associated with those scales right here. So reading serial from the scales, and then sending it out to the Advantech gateway, which is running the Edge agent, and then the data gets passed on to the Losant cloud. On the left, we have six bolts, on the right, two. And you can see the scale…excuse me, the transceivers in this place…in this case, excuse me. So I think we have Scott with us now. I'm going to go ahead and pass things over to Scott. I've stopped the share of my screen so that he can take over and jump into the demo.
Scott Allen: All right. Hello, everyone. Sorry, I was a little late. Thanks, Craig, for that introduction about inventory tracking. Today, we want to show you an example of an Inventory Tracking model that is really essential in manufacturing and other process management. For Inventory Tracking goals, it’s essential that it does a few key items. One of them is that you know the actual inventory of each item, not an estimate, by either through its weight or its count you know the actual inventory. Next, that you can display the inventory status and how the levels are changing over a period of time. Also, you can highlight any unusual trends on how your inventory is changing, and you can alert the right personnel or process when inventory is getting low. Before we get into the example that we have here, I wanted to show you the architecture of this particular system that we’re using. We’re going to see that we are connected to two physical scales that are weighing components on it, and they have a serial output that we are now connecting to a Losant Edge Compute device which can read the serial input, process it, and send that information up to the Losant platform by way of a secure MQTT connection. There we’re using our dashboard, our connection processes, workflows, everything that we normally see, and then, of course, we output it to our dashboards and End-User Experiences like our other applications. Before we get into the application itself, I want to take a minute and show you the environment that we currently have set up. Here we have our setup using the scales, the Edge device, and the serial converters. So let me focus on each one of these here. The silver boxes, or the silver platforms, that you see, that are holding the blue bins and the bolts in them, those are our actual industrial scales. Very precise, able to tell us by weight, we can easily calculate how many units we have on each scale, and it is communicating to our Edge devices through serial. With these particular scales, we’re actually using a converter, so that way we can plug a USB connection into our Edge device. So that’s what these black devices are here that we’re highlighting. They are the USB converters. Finally, up here, we have our Edge Compute device. This particular device is from Advantech, a partner of ours, but we have a lot of other supported Edge Compute devices. They're from Dell, from HP, Raspberry Pis. We have a list on the Losant website if you are interested in those. And, really, any computer that is running Linux and can support Docker containers, is able to run as our Edge Compute Agent. The agent is software that’s running on that, that enables us to download workflows to the device, and really specify how we get information from the devices and send it up the cloud. Okay, so now, let me show you our actual application. We’re going to start here with a dashboard that we have that is monitoring the individual scales, the two scales that we have here. One for a container of nuts and one for bolts. This is information that I am controlling manually for the sake of our demonstration today. When we have the scales working automatically, we’ll see a constant display of information coming across. But we have indicators here, showing you, first of all, the last reported status, the number of nuts and bolts that we have received from each of the scales. We have a time history chart, showing us how that information has changed over the last hour. And then, we also have an indicator here showing us the status as far as, in this case, we have eight of each particular device and that inventory is acceptable to us. Now, let me change this so that we get down to a lower number for one of our items, the nuts here, and we’ll see that the tank, or the container, is showing the number of inventory has gone low, and also our inventory status here went from green to yellow and it’s telling us that it’s low. And if the worst were to happen, and we run out of a particular part, then we’re going to see a zero and that it’s out. Now, one of the real keys of using an inventory management system is making sure that you have enough inventory on hand. If you have too much, well, that’s an extra cost and that’s something that you’ve got to store, if you don’t have enough, you have a situation like we have here where the process has to stop while we add more inventory and then get things back to the way they should. So I will do that right now. Say, we restock the parts, our inventories are okay, and the process continues. Down here, at the bottom, we also have a comparison of the two inventory levels and an indicator that tells us if the inventory is balanced or not. By changing, again, one of the components, where we have more of one than another, we’re going to get the red indicator here, that the inventory is out of balance. Now, also, on our dashboard, we have a layout of where we have the scales currently operating, those are the two green circles that you have here, and you may have noticed that as I change the inventory levels, those green circles change to yellow and red, indicating their status. So let me bring that back here so that everything’s in balance, and let me show you what we did in order to create this particular environment. Let’s start with the devices. We have three devices, one is the Edge gateway, that we have here, and the other is the scales reporting the number of bolts and nuts that we have. These particular scales we’re tracking as peripheral devices because they use the Edge gateway to communicate to the Losant platform, and we have defined several attributes for each of the scales. First of all, we’re going to collect the weight from that particular scale. We’re going to convert that weight into the number of units that we have there. We have a restock status. In other words, is the current inventory good? Does it need restocking or are we out? We have the coordinates of where we put that indicator on our indoor floorplan. And we also have a connector for when the device is connected or not. Besides the attributes, we've also added some device tags for each of the devices. The device tags don’t change for each reporting of data. They are static values. So really the important one that we have here is the path for that particular scale. Since these devices are reporting through a serial interface and it’s USB, the Edge device really doesn’t know when it gets a reporting from a scale what's a nut and what's a bolt. It’s just passing the information through. But part of the information that’s passed is the path for that particular device, and that’s how the cloud layer knows that this particular weight is for a nut or which is a bolt. Also, for each device, we have a unit weight, what does an individual nut weigh, an individual bolt, and also, at what level of inventory do we want to mark that as being low, so that we can restock that particular inventory. So the devices are very straightforward. Now, let’s look at the workflows involved. Since we are using an Edge device, there is an Edge workflow that is collecting information from the scales, and those are the ones that you see here. The Edge workflow point of view, we have two scales sending the information to us. Since we don’t what's a nut or a bolt, we’re just calling them left and right in this case. Each one will have a serial path, that way we know exactly what serial port is sending the information, and at what speed we’re doing it. Also, for serial devices, we can send a command to it as soon as we recognize that the port is open. In this case, we’re sending a command of WC, which is write continuously. So when the scale is open, running automatically, it’s going to be sending, I believe, 70 readings per second of the weight on that particular scale. One of the other things we define for a serial device is a delimiter we use, in this case, each reading is separated by a return and new line, and so that way, we can process that stream properly and make sure that we’re treating each register as its own process. Now, for each one of these, we are using the same throttle command to send information up to the cloud platform. As I said, these are reporting very quickly, 70 times a second, which is really too much for the cloud platform to keep up with, so what we’re doing is using a throttle node as a way to send information to the cloud every two seconds. So we set our parameter here, that we’re sending at 30 times a minute or every two seconds, and we’re going to send the same data path that was reported to us. That would be the path of the device itself and its weight. So once we get that we actually send that information up to the cloud platform, and that’s really all we have the Edge agent doing. We have one other function, but I’ll come back around to that in just a few minutes. So we’ve sent the information up to our MQTT connection. The next thing I’ll show you is a workflow happening in the cloud environment of how we’re interpreting that information. Here we’re receiving the MQTT message, and the next thing we do is we decode the JSON that we’re receiving through that message into a device parameter that we can work with. We’re going to get a device reading based upon the path of that device, and that’s where we associate a path with a nut or a path with a bolt. With that then, we have to do a little bit of calculations. In this case, what we’re doing is we’re going to calculate the number of units by taking the total weight that was reported here and dividing it by the unit weight that we stored as one of the tags in the device. We’re putting the result in our working structure under the name of units and that way we can start checking, first of all, the inventory levels. If you remember, another tag we had for each device, is at what threshold do we want to show that something needs to be restocked. That’s the tag that we have here. And if our number of working units is less than or equal to that amount, we want to set the status, so that’s what this conditional is doing. First of all, if that conditional is not true, in other words, our inventory is greater than that threshold, we’re going to set that inventory status equal to zero, meaning everything is okay. However, if it’s not, in other words, our current inventory level is equal to the threshold or less, right now, we’re going to set the inventory status equal to one, in other words, it’s getting low. After that, we want to check to see is the inventory…is the working units equal to zero. If that’s the case, then we’re going to set the inventory status equal to two, which we consider a critical level, but regardless of which path we used, here’s where we’re going to set the device state, and that way, we can process that in another way. We’re going to actually move from this workflow to another workflow which is processing all of the conditions that we have in how we’re getting that information. Back on the dashboard, you may remember, we have this indicator here, that tells us if the two inventory statuses are balanced, in other words, are they equal or not. This particular workflow is the one that will enable us to determine that. Here’s what we’re going to do in a case like that. When the device is reported from the previous workflow, it comes to this workflow, and the first thing we’re going to do, first of all, make sure that the device state that we received is the one that is defining the number of units. There are other reporting that’s going on with the device, and not all of them contain the units. So we want to make sure that the units are defined in this, that way we don’t have any errors reported in our workflow. If it does have the units reported, the first thing we’re going to do is we’re going to store that unit as a variable in our application, using the key of its trigger ID and units. So we’re taking the data units from that payload and we’re going to store it in that value. Next, we’re going to get the latest reported units from both the nuts and the bolts, regardless of which one we just stored, and we’re getting it from local memory rather than doing another query against our time series of data. This is a faster way of getting the information because we’re going through this workflow a lot and we want to make sure that we get everything processed as quickly as possible. So we’re getting both the nuts’ and the bolts’ last units reported, and then we’re doing a conditional. And this is, are the number of…first of all, do we have the correct number of units for each one? So we’re doing a quick check there, again, just to make sure if one of them hasn’t reported, we don’t get an error in this particular workflow. So next, we’re going to check, are the two equal? So what we’re doing is we’re taking the absolute value of the difference between them and determine if they're equal to zero. Now, if they are not equal, we want to report that. One of the things that I wanted to show on the dashboard is that we have a list of events. Let me move one of these down to where it is out of balance. We see the indicator change right away. We’ve reduced the number of nuts here, and if I refresh this particular block, we’re going to see an event. We’ve talked about events on some of our other Deeper Dives, but for those of you that weren’t with us, an event is something that you can define within your workflow like we did, that allows you to track instances of a problem. In this case, our nuts and bolts inventory are out of balance. This is something that can be manually resolved or recognized. So if I were to say, well, I filled it myself, and I can add that and submit it, or we can have the system do that for you automatically. So you're here, where we have the balance, so now, I'm going to come down, and this is what we saw before, when things are out of balance, we’re going to see if an event has already been created for this particular incident. Since we’re are checking things so quickly, we don’t want to bombard people with messages and events that all of this is out of balance, so instead, we only want to report it once for every incident. So if the event already has been reported, we’re not going to do anything else. That’s what this particular condition is checking. However, if it has not been reported, this is the first time that we’ve done it, we want to add an event to the list, and you see here is the summary, here’s the description of that, so that we can report it being out of balance. The other thing that we could do besides adding an event is we could send an email or a text message out to our inventory manager, or the operator who’s in charge of this, just to let them know you're getting to a point where you need to add inventory. Also, if you're system is connected to an ERP process, our system could actually create an order for more inventory and place that order through your ERP system. It all depends on the level of connectivity that you need between them. Then after we have the event, we also have…we store the event ID for that and that keeps us from adding different events with the same incident. Now, let me go up here to the other path and that is that our inventory is in balance. So in other words…we’ll come over here and I will…we add particular inventory so that we can get things back in balance. You can see that our indicator here has happened, and if I refresh our events…I may have been a little fast…the event will disappear because our workflow is automatically handling that for you. So if the inventories get back into balance, we see if an event exists for this incident, in this case, one did, so what we’re going to do is modify that event. We’re going to mark it as resolved with a comment here of the inventory is re-balanced. Of course, you can add much more complicated messages here, if you want to add specifics as far as the weight levels and things like that, we can include those in those messages as well. And then, the last thing we’re going to do is clear that event out of our local variable. That way if the next time we get out of sync again we’ll create a different event for it. So that is how we are monitoring our inventory. Now, through our demonstration here, we’ve been focusing on a more industrial process where we've got the scales, and how people are bolting pieces together. However, the same type of application can be used with different equipment in a completely different inventory to give you the same type of results. For example, hospitals may want to use an inventory tracking system to track their pharmaceuticals, and when they're being used, and when they need to be restocked. We also have a customer of ours that is using this, something very similar to this, where they are putting plates in their cafeteria on a scale. As people come in and they take their plates, they're monitoring the weight on the scales, and that way they know what are the more popular areas of their cafeteria, just by using the same type of technology. So this is very flexible. It allows us to use many different industries, many different types of equipment, it all depends on what you need to track. Now, the last thing I wanted to show you here is a way that we can actually send commands from the dashboard back to the scales. So I'm going to unlock this particular block here and you can see we've got two buttons here. One’s called Tare Nuts and Tare Bolts. Tare being the term to have scales recalibrate themselves. If we think that our weights are getting off, that happens from time to time, what we would do is take everything out of the bin that is being measured, and we would send a command, either to the nut scale or the bolt scale, to recalibrate. So these buttons would actually send a command back to the workflow, to the actual device. And this what we’re seeing here, where we’re sending the command to Tare Left or Tare Right, and this is being performed on the Edge agent, and what it’s going to do is write on the same serial path that we got the information from, and we’re going to send it a series of commands. First of all, we’re going to send a return, that way if it’s reporting a lot of information it’s going to stop. We’re going to wait a second, and then we’re going to send another command, in this case, the Tare command, telling it to reset as if there was nothing on the scale. Then we’re going to wait again, and send another command to say, okay, start writing continuously again. We refilled the bin with the proper inventory, and that way, the scales will start reporting more accurate information. Just something you’ll need to do from time to time, but it is an illustration of how we can go back from our dashboard through the workflow down to the Edge agent, to have it write to the serial device and then start reporting again. My goal through this demonstration was to show you how easy it is to use the Losant platform, both the Edge and the cloud, plus to use serial nodes as a way to control your device. Now, I'm going to send it back to Craig so that we can answer any questions that have come up, and I’ll do that right now. Craig.
Craig: Awesome. Thank you so much, Scott. I’m glad we got you on there because I was really…
[Laughter]
Craig: Fantastic. At this point, I want to share a couple resources with the group. First and foremost, I said this earlier, but for those of you who have not been in the platform, we would encourage you to check out the toolset. If you go directly to losant.com you can actually create your own free developer sandbox account where you can begin building. We don’t really limit the feature set. So everything is accessible, it’s just a matter of how much data you're allowed to use. As you get up and running, you definitely want to check out our documentation. So at docs.losant.com, there's some fantastic referential information on every single feature within the Losant platform. We also have the forums. So the forums are a wonderful place to really discover and learn and ask sort of the how-to questions. Many of them have been asked before and have been answered by our community or our internal engineering team, but that’s a great place to go if you’re having trouble or stuck, please, check out the forums. Then we have some newer pieces of content that we’ve added recently. One is Losant University. So this is really a video-based content that goes deeper into some of the features in the platform to help you as you're trying to ramp up your knowledge of Losant and build with the tools. And then Hands-On Tutorials. We have some Deeper Dive [Inaudible 00:32:14] tutorials that are available. All of these links are out there at losant.com, you’ll be able to get to them. We’d encourage you to use each of those. One quick update. We will be doing another webinar April 30th. I’d encourage you to go and sign up. This will be a platform update. This is going to be quite a significant webinar for us as we share about a new feature that’ll be launching soon. So please, check out that particular webinar and sign up if you haven’t done so already. At this point, actually, we’re going to take this time to go ahead and answer some of the questions that we’ve received during the course of the webinar. The first one that we got earlier was what brand of scales are you using? I've got a couple of other folks on the call today from the Losant site. Brandon Cannaday, our Head of Products; Taron Foxworth, who leads education and is our technical evangelist. They're going to help out answering some of these. But, actually, Scott, this might be a good one for you. Do you know the brand of scales that we use for this particular demo?
Scott: Yes. These two scales are from Loadstar Sensors. They are in their industrial-scale section. They have different sizes and different capacities. But it’s Loadstar Sensors.
Craig: Awesome. Thanks, Scott. The next question we had was, and I know you mentioned this a little bit, Scott, earlier in the demo, but how would I integrate with SAP or some type of reordering inventory system? Maybe, Brandon, since you lead product, that’s a good question for you to talk about, how we integrate with some other platforms or tools, or in this case, ERPs that are out there?
Brandon Cannaday: Yeah, absolutely. Most ERPs expose the ability to invoke their transactions or applications through REST interface and SAP, specifically, they have a great edition called SAP Gateway, which kind of exposes everything through an OData REST interface, and we can directly invoke that using the workflow’s HTTP node. So if you're comfortable with an automated reordering system, that would certainly speed some stuff up, you can directly create those purchase acquisitions through the workflow engine, or you can certainly do what Scott had mentioned as well, essentially automatically send an email to maybe somebody in your purchasing department saying, we need to restock up on X, Y or Z, and then that person can enter the data into the appropriate ERP system, based on your checks and balances and controls.
Craig: Awesome. Thank you, Brandon. Another question we had is, can I offer an inventory solution similar to this to my customers? I’ll actually go ahead and try to answer that one. The answer is absolutely yes. What's cool about Losant is a lot of our customers and partners will use the toolset, and a very good example earlier was, with Scott, to use internally, for internal stakeholders. Many times that just means using workflows and dashboards. However, just as commonly if not more, our customers and partners are developing applications that they can take to market and sell under their own brand. That’s really where the Experiences piece of Losant comes into play. There's nothing stopping you from going out and offering your own inventory tracking solution with Losant under your brand. And in those instances, those end-users typically would have no idea that Losant is the technology being utilized to do that. Hopefully, we’re just an easier way for you to get that solution to market. Another question that we’ve received earlier which is, can you track inventory without using scales? Can I track it in other ways? Honestly, that’s a good question. Probably more of a business question, but Taron, maybe you want to jump in and try to answer that one.
Taron Foxworth: Yeah, 100%. In this case, we just decided to use the Loadstar Sensors, and they happened to expose serial that we can readjust [Inaudible 00:36:29] Losant. But really, since Losant, we think about the platform as kind of data up, as long as data can get to us, you can kind of leverage all the tooling that we have to build new experiences. So it doesn’t really matter what it’s actually tracking, the actual hardware, as long as we can get the data. The best way to know if we can the data is kind of one of two ways. One, things connect directly to Losant via MQTT or HTTP, or a lot of customers decide to use our Edge agent like we showed in this example. And the Edge agent allows access to some local protocols, whether they might be Modbus [Phonetic 00:37:02], Allen-Bradley [Phonetic 00:37:03] but in this case, we use serial. So either way, you can use any kind of sensor as long as they can get to Losant, it doesn’t really matter where they're coming from. In this sense, you can actually also have one application that uses multiple different types of tracking, all [Inaudible 00:37:21] to Losant.
Craig: Awesome. Thank you, Taron. Here’s another good question for you, actually. I think this question is really about using other types of sensors, kind of on the back of what you just said, in this example, load cells, vibration sensors, other things that may not actually be talking serial, but other digital methods to a cloud or to an Edge agent. So more of a general question, but can we support different sensor types and different protocols? Taron, maybe you can talk a little bit about the capabilities not only at the cloud level, but then on the Edge side of things as well.
Taron: Yeah, so the nice thing is that in Losant because we’re just kind of representing your devices in the cloud, the data source, the data origination [Phonetic 00:38:16] like I mentioned before, could really be any type of protocol. We’ve seen examples of, say, there's 50 different ways of tracking motion in the room, but they all give you a different [Inaudible 00:38:29], they all give you a different way to track motion and all have their own positive benefits. So in that case, it’s really nice to take all those different types of ways you can track motion in the room and then combine that to really give you kind of an arrogated [Phonetic 00:38:44] view. And that’s really where Losant shines, is that you could use multiple methods of tracking and then combine that to say, this is the most correct answer that we can define. Or we can use multiple different types of tracking for single sources and say, you know what, this item over here is using the Loadstar scales, this item over here is using RFID presence to detect how many, you name it, but to us, to Losant, that’s just one thing. It’s one number. So it’s really nice because you can have that abstraction layer between your hardware and the actual experience that you're building on top of that.
Craig: Awesome. Thanks, Taron. Here’s another great question that we received, and it says, can you build this so that each location serves as a source of multiple sensor outputs? So in this case, they have approximately 500 locations, each with anywhere from 5 to 15 sensors of different types. So maybe there's [Inaudible 00:39:40] sort of accommodating for those different sensors and perhaps even get into the tagging aspect of what we do on the device management side. Taron, do you want to take this one? I think this should be another great one for you as well.
Taron: Yeah, these questions really [Inaudible 00:39:54] one another. It’s great. In this case, now that we…so say, we’ve connected multiple different types of sensors to Losant, now, we’re at the level of, okay, how do I start to basically tie these devices to certain entities? That’s where, kind of, Craig mentioned we have device tags. So then, I would recommend and say, okay, you can have a certain group of devices. All these devices are tagged with one location, and then a nice thing is that once you get into the experience layer, you can say, all right, I'm going to build an experience, but I want this view to be of this location’s view. And then behind the scenes, you can use a workflow to say, okay, let’s pull all the devices with that tag, let’s say, Location A, and then let’s look at all the weights for Location A, and then we can display that in that one experience for that one location, kind of have that multi-tenant experience that is leverage using Losant’s tools.
Craig: Awesome. Thanks, Taron. So with that, we've completed all the questions. One thing I wanted to point out quickly before everyone leaves, this platform update on April 30th is actually going to be about our new Stats Notebook feature. So that’s going to be much more about sort of batch processing of information, doing analytics within the platform. If those are things that interest you, or you've been asking yourself, how can I achieve this with Losant, we’re going to have some great answers for you on that particular webinar. So with that, we’re going to end it. Thank you, everyone, for joining us. We will be sending a recording to everyone that’s with us today and those who missed the webinar. I hope you have a great day and, please, reach out directly if you have any questions.