Kevin Niemiller: Hello, everyone. It is now two minutes after the hour so we're going to go ahead and get started. I want to first thank all of you for joining the Deeper Dive webinar today. Today's topic is on combining the power of Senet in Losant to build a full stack LoRaWAN solution. I am Kevin Niemiller, a Solutions Architect here at Losant. I will be hosting this webinar and helping with Q&A at the end. We also have Dave Kjendal, the CTO and CEO at Senet. Dave will show us how to onboard a LoRaWAN sensor and gateway, configure the Senet and LoRaWAN network server and then use the Losant platform to receive, parse and visualize LoRaWAN data as well as implement real-time alerts and notifications. Before we go any further, I want to provide a couple of housekeeping items. The webinar is being recorded and the replay will be made available to you in a few ways. After this webinar, we'll send you an email with a link to the replay and the webinar will also be made available on Losant's YouTube page as well as on our Deeper Dive webpage. Throughout the webinar, you may have questions that you'd like to ask. I would like to point out a couple of key features in the Zoom conference. You can use the Q&A feature or the chat feature to post questions and I’ll be monitoring those throughout the call. At the end of the call, I’ll moderate a Q&A session with the posted questions. Let's do a quick review of Losant and our enterprise IoT platform. Losant is an application enablement platform. What that means is that Losant provides enterprises with the building blocks to create their own IoT products. Our platform consists of five key components to help customers achieve that — end-user experiences, a visual workflow engine, data visualization, which also includes integration with Jupyter Notebooks, devices and data sources and edge compute. Our customers and partners utilize these five components to create the robust IoT products they put in front of their end users. Losant is a leader in the industrial, telecommunications and smart environment spaces and we've offered this platform for all sorts of customers ranging from start-ups to companies in the Fortune 100. If you are interested in learning more, please reach out and we would be happy to set up some time for a much more in-depth conversation. While Losant provides a software foundation for IoT, there are many other components that have to come together to create this IoT application. We've surrounded ourselves with a great ecosystem of partners. This includes strategic partners with whom we share sales and go to market strategies, solution partners who work with clients to develop end-to-end IoT applications and lastly, technology partners that can provide hardware, connectivity and other services to complete an IoT solution. Senet is a great example of one of our technology partners. Before I pass the webinar to Dave to walk us through building a full stack LoRaWAN solution using Senet and Losant, I do want to cover some of the reasons that we at Losant enjoy working with the Senet team with their network server and why we choose to recommend send it to our customers. Senet is the largest public LoRaWAN network in North America. They have a qualified device ecosystem and marketplace which makes it easy to find the correct sensors and gateways that meet the requirements you have for your solution. This also simplifies the process of connecting these devices to the Senet network server. The last point on here really speaks to how great their team is to work with. They were able to quickly get started with Losant and start building very powerful LoRaWAN solutions like the Losant Senet application template that Dave will be walking us through. Speaking of that Senet application, template let me switch tabs now. If you remember, anytime you create a new application in Losant, you can start from a blank application or an application template that we have here. If I scroll down like I just did, you can find the Senet application template and by clicking on it, we can learn more and also create an application from it. This is a README to help you get started but as I mentioned, Dave will go through all of this today. I think this is a great time to pass the webinar to you, Dave. Thank you for being here with us today. We look forward to hearing more about you, Senet and this complete LoRaWAN solution you're going to walk through.
Dave Kjendal: Thank you, Kevin and thank you everyone for attending this webinar. As Kevin said, we're very excited to share some of the knowledge that we've gained collaborating with Losant to enable you to create very interesting LoRaWAN solutions very easily. I’m going to start off, just a quick introduction to myself and Senet as well. As Kevin said, I’m the Chief Technology Officer and Head of Operations here at Senet. In addition to that work, I am also heavily engaged as are many of the people here at Senet with the LoRa Alliance, the non-profit that curates the specifications for the technology that we're going to be demonstrating today. In the LoRa Alliance, I’m also engaged in the board of directors, a member of the board of directors and chair several committees, work in many communities as do many of the people here at Senet. It's a really exciting place to work. Technology is always evolving. We have a great stable platform. The LoRa Alliance was actually founded in 2015 and the first specifications released at that time as well. Those specifications and minor revisions of them are still in wide use throughout the ecosystem today. So, it's a very stable technology that makes it very easy to create low-power wide-area solutions. A little bit about Senet, so Senet's been around for about 10 years. We are a privately held start-up company and got our start building vertically integrated IoT solutions specifically for tank monitoring. Back in 2014, prior to the LoRa Alliance initiatives, we pivoted to a horizontal play to provide core network connectivity for the new technology at the time of LoRaWAN as well as providing public network connectivity here in the United States. One of the things that makes the Senet offering very unique is the capability that we have of enabling our customers as well as the developers who use our platform to use the public network that we've deployed throughout North America as well as bring their own gateways to that mix. We call that technology the Senet Low Power Wide Area Virtual Network. When gateways are brought to that in production services, then we will do rev sharing with those providers who are providing the network connectivity as our customers all take advantage of that. So very, very unique capability. In addition to that, very recently over the last couple of months, we've announced connectivity offerings integrated with our platform that can be seamlessly taken advantage of by our customers. Those include access to the Helium Network. The Helium Network spans over 600,000 gateways at last count, I believe, throughout the world, as well as new connectivity with satellite providers as well. LoRaWAN itself is a really interesting and important connectivity option when you're looking at IoT solutions. This is a very complementary option to many of the other communications technologies you may be familiar with like WiFi or cellular, things like that, Bluetooth. LoRaWAN really sits in unique space there. It runs on unlicensed spectrum. That means it's available and there are frequency bands around the world that support this. It's available without any additional cost to use that frequency. So, that's different than typically what you see for cellular options. The specification that supports it has recently been introduced as a standard in ITU available worldwide. That specification and the alliance that creates it are all open for anyone to take advantage of and to participate in. Again, if you're interested in that space, I strongly encourage you to take a look at getting engaged in that process. LoRaWAN itself really focuses on primarily battery-powered devices that are very low-cost and are delivering very long-range connectivity. Again, not all those things are true of all the applications in LoRaWAN but generally speaking, those are kind of the three key fundamentals of what to find in a good LoRaWAN solution. LoRaWAN has built-in security AES-128 end to end. So, from the application on the end-device, the application in the cloud is all capable of end to end privacy. That's built into the specification. There is no or insecure option in the LoRaWAN standard. The physical layer technique itself, the LoRa modulation is extremely robust, very, very reliable. It enables the devices to successfully deliver messages well below the noise floor. In addition to that, the LoRaWAN technology and the specification, the standard that supports the protocol, they enable a wide range of applications. Fixed devices, mobile devices, nomadic devices, fully bi-directional communication, that includes things like being able to do firmware updates over the air in LoRaWAN. We can do that in a very unique way that's very, very cost effective and very, very power effective. Very different than what you see from any other communication technology out there. Of course, we also have the ability to support GEO location. Obviously, this can be done with GPS-based trackers and things like that but there's other interesting techniques that can be applied here that are also very effective. Those can include triangulation with signal strength, trilateralization with differential time of arrival. Those techniques can get you down into the tens of meters of accuracy, so really not so bad at all. There are also new silicon solutions out there that provide assisted GPS, WiFi-based looping, Bluetooth-based snooping that can all yield very, very again, cost-effective and power effective GEO location solutions for tracking both indoors and outdoors. What we're going to be looking at today though is a smart building application. So, quick high-level summary of that. One of the things that we've noticed and I’m sure everyone else has over the last several years experiencing all the challenges of the COVID-19 pandemic has been that there are interesting use cases that now are showing up or have shown up that really dovetail into providing a safer workspace, more efficient management of those workspaces. We're going to just look at a real small segment of that today. We're looking at a solution that will provide indications around the air quality, indications around office space use as well. We'll get into some of the details. One of the things that we noticed in our building, and we actually prototyped a complete solution for the building that we're in that does all these things at even more detail than we're going to show you here, but we're really, we're looking at two things specifically that we thought were very important. One of them was tracking VOCs, all the organic compounds as well as CO2 presence in the air. Those are good indicators that align with the proper ventilation of the spaces. Everyone knows now that proper ventilation is one of the key tools to combat COVID spread or really, any airborne infectious disease spread. We're looking at areas of the building where those may be issues. Maybe we have good ventilation some areas, poor in other ones. Then we have the building management company rearrange the HVAC system to provide better ventilation all around. The other kind of interesting use case that we're going to be modeling here as well is the building occupancy component. We have these sensors deployed all throughout our building space. Every single office, all of the shared spaces all have these sensors. These can be used really for two interesting use cases. Everyone knows that a lot of people have been working from home more and more. We went through periods of time where there were very few people in the offices. There are two interesting things that come about from that. One, as an employee, if you're in a shared space, maybe you're uncomfortable with that. You want to make sure nobody else is in that space if you're going to be there. Again, these devices can now show you which spaces are in use, which ones have been used recently. The second thing it can do is you can work with the building maintenance company to provide guidance around where the cleaning needs to be done. Again, we went through a period with COVID where you really wanted to do much deeper cleaning but most of the space was not being used. It's a really challenging human factor problem to get the cleaning staff to really be as diligent as they need to be when they see that 90% of the spaces don't have anything that actually even needs to be cleaned. Now, we can pinpoint that. We can show them exactly what needs to be cleaned, what offices were used, what shared spaces were used. They can focus on those areas without wasting their time looking at the spaces that hadn't been used throughout the week. In order to deliver this solution, we're going to really consider three different components. On the right-hand side, you see a probably not detailed enough, but complex enough for the slide, a vertical technology stack on what's required in order to deliver an IoT solution. We're going to look at the three different components here. At the physical layer as it were, we have Milesight. Milesight, we're going to be using at one of their gateways, the UG65 indoor gateway and one of their sensors the AM107 environmental sensor. We'll get a little bit more detail on that. Next, in the middle as it were, the connectivity layer, this is going to be running on Senet. With Senet, that core platform enables really two critical components. One of them is the onboarding and management of the physical network. Whether that's our customer, you doing that or whether that's Senet managing that network or one of our operator partners running those networks, that enables them to plan the network design, deploy the gateways, manage the connectivity, make sure that it's meeting all the customer needs, also onboard the applications themselves. They onboard devices onto that connectivity platform when we give them the visibility, our customers the visibility then to identify and manage any of the potential RF issues, instrument the devices and then seamlessly integrate them with an IoT platform and with Losant in this case. We're going to be looking at how we do that integration northbound from Senet to Losant and what some of the tricks are that we can use in order to make that a little bit more seamless. Again, all of this is pretty straightforward. It looks a little complicated on the right side but you'll see over the next several minutes that it really is quite simple. As I mentioned on the Milesight side, we have the sensors. This is a really unique and powerful sensor. We're looking at the AM107, a seven-function device that is battery powered, can last years on those batteries deployed and is providing information sensors around temperature, humidity, CO2 levels, VOC levels. Those two are somewhat unique. So, you got to make sure you get a device that specifically is measuring those. Barometric pressure, ambient light and PIR motion. We're really using the CO2 and VOC in order to measure the air quality specifically. Temperature and humidity certainly have a comfort index associated with them which can be important in building management as well. And then we're looking at light and PIR as really, the key indicators for space occupancy. This particular sensor has an e-ink display. It's displaying the curve value. As you're walking around the office, you can see exactly what it is at a glance as well as communicating those back over the network to the cloud platform so that you can action that in a consistent way for the enterprise. The gateway that we're going to be using is the Milesight UG65, a very elegant little gateway. It’s really quite capable. Supports connectivity, backhaul connectivity of ethernet, POE powered if desired, WiFi as well as cellular. So, all three are the backhaul connectivity options. Obviously, it has a LoRaWAN frontend that supports eight channels of 125 kilohertz plus one 500 kilohertz channel of connectivity on the LoRaWAN side. A very robust operating temperature range. This particular device is also suitable for outdoor installation if it's oriented in the correct direction. Again, very, very capable little gateway here. We're going to manage and onboard those devices on the Senet developer portal. This is where you would register on the Senet platform in order to get a free account to couple with the Sandbox account that you would get on the Losant side. On this platform, we will connect and register the LoRaWAN end devices. We will connect and manage the gateways that are going to be supporting that connectivity and we're going to configure the streaming as well. So, identifying the notification target in this case, the Losant Webhook that we will configure to send the device data to. Quick view, we have two little slides here to look at the solution architecture. On the right-hand side is the physical components. We have the sensors, we have the gateway that's connected. In our case, that's WiFi, as we're connecting to the gateway via WiFi back into our cloud services. The cloud services that Senet provides are really composed of three different components. We have the network server in the LoRaWAN space. Everyone's very familiar with this. Manages the radio access network, manages the performance of the sensors, does dynamic data rate control for performance optimization, battery optimization on the end devices. Connected to those are two other back-end systems, one of those, we call the join server. That provides the security credentials to the network server for those end devices. It's the root of trust in this little system that we have. The join server may be hosted by your network operator by Senet but can also exist outside of the network operator as a distinct third-party application for even improved separation of functions from a security perspective. Finally, we have the application server. The application server is instanced per connection to the northbound IoT platform. We have an IoT application server instance here that's representing the communication to the Losant platform. The encryption and decryption at the LoRaWAN side is done at that application server. Again, like the joint server, that's something that can be externalized outside of the network operator domain for enhanced end to end application-level privacy. Some quick things, again, a slightly simpler view of this. The data flow from the end device sends the LoRaWAN information. Again, can receive LoRaWAN traffic as well to and from the gateway. The gateway then builds an encrypted tunnel to the Senet core network. The LoRaWAN traffic still remains encrypted over that tunnel and is delivered inside of the secure tunnel to the Senet core network. The Senet core network makes any device provisioning, configuration, optimizations from the RF perspective at that point. You can send downlink commands to the device to optimize it. It then decrypts the Losant message and creates another message to the Losant Webhook. Again, that's going to be secured in this case. So, a secure tunnel from Senet to Losant to deliver that information to the IoT platform where the binary payloads can be decoded, the information can be stored and it can be represented to the end customer as meaningful data. What do you need in order to get started, and we'll walk you through all of these with the exception of the first one? So, assuming that you've created your Sandbox account. You'll need to have a Losant Sandbox account. The template README as Kevin just showed you earlier, contains all of these instructions as well so follow those instructions. The next step is going to be — create a Senet developer portal account. I’ll show you how to do that. Once you're in your Senet developer portal account, you're going to configure and register the Milesight gateway. In this case, we'll show you the Milesight gateway. We're going to register the Milesight device and then we are going to configuration the northbound notification target to deliver messages from Senet to the Losant Webhook. With that, we're going to break away from the slides for a moment and move over to the live demo. As we mentioned, this is the Senet developer portal login portal.seneco.io. You can create a new account here. Again, there's no charge for that. It comes with access to a handful of devices and gateways that you can register. We log in here. You would be presented with more or less a blank screen. We already have these two registered here. But I want to show you real briefly, how we would go through the registration of first, the gateway and then the end device. On the gateway side, we're going to take a quick view here of the local login account, admin account on the Milesight gateway. This is connecting to the Milesight gateway over its local area network interface. We're going to look at a couple of things here specifically. What's most important is the packet forwarder side. The packet forwarder side, we have it already configured here. We're going to use the Semtech basic station configuration. But if we were to quickly walk you through that, it is still the Semtech basic station type. We're going to use a custom packet forwarder registration here. If I can bring you to the Senet documentation. Senet documentation walks you through exactly what's required in order to do this. We're going to grab the URL that we would have displayed here. Enter that here and we would save that. That is the key component that is required. Once that's saved, there's only one additional thing that needs to be configured which is the certificate file. That certificate file again, can be downloaded from Senet here download, the TLS certificate, and imported into the gateway. At that point now, the gateway will be making a secure connection to the Senet core network. That's all that's required on the gateway side. If we were to actually register the gateway by hand. Again, this is what you would do. After you've configured the gateway ready to point at Senet, really, the order doesn't matter too much, we're going to quickly enter a few items here. In this case, we would actually be selecting Semtech basic station as the type. We would be entering the manufacturer serial number and EUI that were present here in the gateway configuration as well. At that point, we're ready to register. I want to make sure that the channels match the channels that are configured in the gateway and then we're off to the races on the gateway side. Likewise on the device side, a very simple methodology here. When you are sent the device, on the back of the device, there's a QR code. That QR code will contain the relevant information, most specifically the device UI. In the case of these devices, you're going to also specify some additional information. If I can type AM107 in there. That way, we configure the keys, the join EUI that came from the device manufacturer and the key that came from the device manufacturer. Register the device. Now, you're ready to go. Everything's going to start working. If we look from the Senet portal side, if we look at the gateway information, we can show you here. For the gateway, all of the transactions that are being received by that gateway, it's going to show you the information that's coming back through. Actually, sorry. This is not the gateway. That's the device. I clicked the wrong one. Let me grab the gateway. On the gateway side, showing all the transactions that come in from the gateway, the encrypted payloads that are there. Obviously from a LoRaWAN perspective, this is going to be receiving all kinds of different traffic. Some of it's yours, some of it's not. The traffic that's not yours, it's not going to be decrypted for you. But this gives you the performance of that gateway. We can look at some basic statistics for devices and transactions that have been received, transactions that have been filtered as well. On the device details side, we're going to be able to now see the details. This is the actual unencrypted payload that we're going to be sending up the Webhook to Losant. We'll get into what's done with that as well. The different kinds of messages, uplinks, downlinks, join requests, those sort of things will all be displayed here. RF information, a little chart describing some of the RF information with different parameters that we can look at as well and a summary of all of the information that's going on. Now, when it comes to getting the information delivered up into Losant, then the next thing that we're going to be doing is we're going to be implementing a device target which is what's created here. This device URL is the URL that we will have gotten from Losant when we created a Webhook. We come in here, we add a Webhook. We click on this. We've got the URL right here that we can use. So, we can click on that and that gets delivered back to the notifier configuration as well. We're going to use a simple HTTP forward to correspond with that. It is still encrypted so it is still 443. There's a wide variety of other techniques that could be used as well, MQTT, things like that but this is the one that the vast majority of customers will also use. We can look at additional fields that we're going to be sending up as well as the payload, the application binary payload. Some of these can be very, very valuable. Specifically, a couple of them that we're going to be using in this case, we're going to be using the device type, so this type field here and we're going to be using the tags field. May also be interesting to get location information delivered, various other kinds of information that can be delivered as enhanced metadata consumed potentially by your workflows in Losant. As I mentioned, we're going to be sending the type up. This is something that we consider just a little bit of a secret insider handshake. Our device type here is actually going to be used in the Losant workflow to steer the traffic to the correct decoder. We could have dozens and dozens of different kinds of devices all flowing through that same Webhook and all being processed by a single workflow in the Losant platform. We're going to show you one but in our large demo implementations, we have literally dozens and dozens of different devices that are all being processed by that and parsed correctly and then delivered to different functions. So, we'll get into that in just a second here. All right. We started with the Webhook of course. The next component that we want to look at is the workflow that is going to process the data that's delivered to that webbook. Here, we have the AM107 Webhook input node. We're going to be coming through that. A couple of things that are again, I want to highlight in the workflow, I won't go through every single detail here, one of them is that we're going to automatically create the device shadow in Losant on the basis of it being received from Senet to that Webhook. That's what we're doing here. We're going to look up the device. We're going to match it based upon the device EUI, which is the globally unique 64-bit identifier that's defined as the device identifier in LoRaWAN. We're going to extract that information we just talked about. We can look here, we're going to use a little function to extract some device type information and we're going to store that on the payload. We're going to switch here based upon that device type that we decoded out of the input payload. We have a real simple switch here. Again, we've got something that have dozens and dozens of devices. We've got one which is our AM107. Based on receiving that AM107, now we're going to come over, create a device. We're going to make sure that we don't have a device already in the system. If we don't, we're going to create it. We're going to create it using a recipe that's included with a template that has all of the information associated with that AM107, all the attributes, some important tags that are going to be there. Some of those tags will be influenced by the creation event itself. If we already have a device, a shadow created, we're going to skip that step and go right to the AM107 decoder. The AM107 decoder is a custom node and that custom node... Sorry. That's not my custom node. I’ll click over to my custom node. A custom node is really going to do one very important component. Before I get to that, I’m going to flip back to the slides for just one minute to show you how we would create a decoder. LoRaWAN is a very, very efficient communications mechanism, very, very low bit rate. Consequence of that is almost all data moved over LoRaWAN is in a packed binary format. There are certainly techniques that some implementers use, proto buffs and various things like this. In this case, this is a variant of a well-known encoding mechanism. It's not completely standard. It's customized a bit by the folks at Milesight but it's very typical. We have one byte that describes the channel so that you might have a device for example, that has three temperature sensors on it. So, you would have channel one, two and three and then a byte that describes the type of sensor. In this case, we're looking at a channel three. 67 is our type, which is the temperature. And then we have a number of bytes that represent the data coming from that separate temperature. In the documentation from Milesight, they will describe this to you. That's what we have on the left-hand side here. Here's a channel, here's our temperature. It's a 16-bit integer and it's little endian encoded. It's encoded as a number in tenths of a degree Celsius. That's what we have over here, is a little code snippet that's just kind of making sure we have everything you need. There's our channel, channel number three. There's our sensor type. It's the temperature reading. Here we are, we're going to read into our temperature attribute. We're going to do a 16-bit little endian read of two bytes are at location two and we are going to divide that by 10 to get actual degrees centigrade. That, if we flip back here, is what is exactly is in our decoder function. So, in addition to the temperature, which is this snippet right here, we're also decoding all the other information that's coming there. So, the status of the battery, relative humidity, the light levels, infrared, light motion counters, CO2 levels, VOC, pressure, everything else is coming back through that and being stored on the workflow payload. If I pop back... I think I didn't pop that far enough. And we catch a few more of these, I’ll show you kind of live what that looks like through there. As those are being processed, what we're going to be seeing... That gets stored in our device. This is the device shadow as it's represented here. You can see that we have a running representation of the data that's coming through from the end device after it's gone through that decoder. Here's our CO2 level. Here's infrared level, light level, motion count, pressure, so on and so forth. Here's the original payload, binary payload that was sent up from Senet and delivered there. We have a few other things that we can use to calculate some other important information, specifically the sequence number and the join ID that we use to identify messages were dropped over the air coming up to the system or not. All right. That really kind of wraps up the component. I guess the final thing I can say here is when we were looking at the workflow after we do the AM107 decoder, we actually do a basic decoding of a bunch of information that always comes up from Senet. That's the tags fields, the RRSI, SNR, those sorts of things. And then ultimately, we store that information on the device. That's what the device state attribute node is doing right there. This now is processing all the data, bringing everything through. What does that look like? We can now represent that to the end customer, the building management staff or the employee who's going to see if that room is a good room to book for tomorrow's meeting. They can come in and look at information, current temperature. This is in my office right now and I am feeling a little flush. It's a little bit warm in here but not overly bad. We can look at the overall volatile organic compounds, CO2 levels. This spike here is clearly me on the phone earlier today speaking in front of it in CO2 levels. I see reasonable levels in all of these. We would be concerned with CO2 levels that were above 7-, 800 parts per million and we would be concerned about VOC levels that were in excess of 1,000 parts per billion, I believe, is my parts per correct there. Again, that can then drag and it would drag over here and represent in this widget a color coded of concern there. If we saw areas that were outside of what we were expecting, that would color code the widget. We have a representation of the occupancy of the device as well. I’m sitting right in front of it so we're very occupied. If we had many devices in this, they could all be represented here, both in our floor plan as well as in a summary table that listed the devices now again where we can, in this case, the link will actually take you directly to... I’ll click on it here, see where it brings me. It'll bring me back to my Senet portal where we will then be able to see the Senet view of that device. If you had an overall summary with many devices, these links could bring you to the Losant detailed dashboard for that specific device as well. Okay. One of the final things that I wanted to show you here today was how we can take and turn all of this information into additional actionable information. One of the things that we wanted to show was the event system. We're looking now at a specific set of attributes or a specific attribute that's coming from that end device. The attribute we're looking at is the motion counter, the motion detection counter. The end device itself can debounce that so you don't get continuous motion counts. We have defeated that for this device so that it's always kind of reporting information. We can also debounce that in Losant OS as well and we're in fact doing that right now. What we have here is we have a device state monitor. This is monitoring a change to that motion count. When we get a change to the motion count so we're looking at our devices are AM107 devices and we're looking for this specific attribute, the motion count attribute. When we get a trigger on that, we're going to come in and we're going to look and A, make sure motion was really detected and then we're going to come in. We're going to create an event. This event will be used to send an email to for example, the cleaning staff to say, "Hey, you know what, this room got used. You should clean it tomorrow morning or clean it tonight." But we don't want to send that continuously. So, we're going to see if the event already exists. So, we're going to look that event up. We're going to look that event up by the device ID that had the event and by the specific event type that we're using. So, this is a motion event. If the event does not exist, we're then going to go ahead and create a new event for that, identifying the device and the event type, the motion event type. We're going to then send an email to a few of us to let us know that that space has been occupied, that motion has been detected there. If the event already does exist, instead of doing that, we're just going to increment the count on that event so that we can keep track of how many times it was used. Maybe we have another threshold that we would use that would say, "Oh, once we got to this level, it's an emergency someone's got to go in and clean that." You might use this in a restroom for example. Like okay, it's great. It got used. We'll clean it tonight or it's been used 100 times. Someone needs to go clean it right now and reset that counter. They can go and do that, reset that counter in this event list here. If we click on this event, we'll get information, a direct link to the device so we can get to the device detail information. We can come in and see what the characteristics were of the payload that caused the event to get created. You can see as the event has continued to occur, we're incrementing our detection count time. If we wanted to acknowledge this, restart the entire process all over again, we can simply come in here, acknowledge that event and then it will be recreated the next time that motion event comes through. I think I’ve hit all of the high points of the demo that I was looking for. Just to recap real quickly, what we were attempting to do was show you a really easy to implement, just a couple of moving pieces solution to quickly get gateways, devices connected both to Senet, to use LoRaWAN as well as flowing data through the Losant platform and doing all the interesting work of decoding displaying that moving that on. This is a great kind of kickstarter for that. You can add different kinds of devices different kinds of gateways on the Senet side, add your own decoders, expand that as you like from the template that has been just recently published. At larger scale, you can take these ideas and continue to work on them and invest in them in order to create fully scalable production quality solutions using both Senet and Losant. With that, I would like to thank you all. Maybe Kevin, it's time to move to Q&A.
Kevin Niemiller: That was excellent, Dave. Thank you very much for that great walk through on building a complete LoRaWAN solution. Before we jump into Q&A, I did want to cover a couple of other quick topics. Let me go ahead and share my screen here. First off, we often hear from our customers about the great experience they have working in the Losant platform. If you are one of these people, we would love for you to write a review on Capterra and G2 to help other developers that are looking for a great IoT platform experience. Next, I want to mention a save the date. Losant will be attending Realcomm on June 15th and 16th in Orlando, Florida. If you will be there as well, we would love to meet you so please find us there or reach out to us ahead of time to set up a meeting. We have a couple of additional resources on the slide to help you get started with your IoT product. These include a deeper dive on incorporating BACnet into your smart environment, a template library to help you with smart or with real-time alerting, a huddle room monitoring application template that provides you with a dashboard and end user experience to get up and running quickly and documentation on the dashboard image overlay block that can be used with floor plans for buildings. Finally, I want to mention a couple of great resources that we provide to help you build your IoT product on the Losant platform. Losant University is a great place to get started. Our thorough documentation and active forums are fantastic tools to help. For reference on applications we have built, check out replays of our past Deeper Dives. If you are ready to start building, try out one of our hands-on tutorials. The hands-on tutorials will walk you through building different parts of your IoT solution or IoT product such as reporting device state over MQTT or configuring single sign-on all the way to building an end user experience. Okay, Dave. Let's get into some questions now. The first question I have is going to be for you. We saw the sensor that you're using displaying degree C, this is at the very beginning of your presentation. Can it also display Fahrenheit as well?
Dave Kjendal: Yeah. Absolutely. There's maybe three different ways to answer that question. On the physical device itself, the AM107, you can configure that screen to display in in Celsius or Fahrenheit. In terms of how the data is delivered from the device over the network, that is always going to be tenths of degrees Celsius. If you want it in Fahrenheit, you have two choices there once you get to processing the data in Losant, you can either change the decoder function to convert it directly into Fahrenheit as you're decoding the binary payload or what we do is we actually use typically the handlebar helpers that are present in the Losant UI display blocks to do a runtime conversion, a display time conversion from Celsius to Fahrenheit if that's more convenient for your audience.
Kevin Niemiller: Great. Thank you. This next question, I’ll go ahead and take. It says, and correct me if I’m wrong, Dave, but does Milesight device support the BACnet protocol? I do not believe the Milesight device supports BACnet but I do want to mention that the Losant platform does support BACnet. So, you could use the AM107 and any other LoRaWAN sensors throughout your building and send that data to the Senet network server and then to Losant. From there, Losant can integrate with your BACnet system to provide orchestration with other systems and equipment in your building. Okay, another one for you, Dave. Is it possible to send a downlink message from Losant through the Senet network server to the end device to do things like updating a configuration setting of the end device or sending a command to an end device?
Dave Kjendal: Absolutely. We haven't demonstrated that in this template but we certainly have implemented that in ours. There's two use cases that we find kind of particularly interesting. One of them is some of these sensors are fairly complex and they can be configured in many, many different ways. Literally dozens of different configuration options which can be really difficult to do in a kind of a binary translation way. What we've done is we create a template, a dashboard in Losant that contains all the configuration variables along with a selection that you use to identify the device. So, the device ID or the device name in this case, that WI or can even be a representation of many different devices like all of the Milesight AM107 devices. When you press the button in that dashboard, it then executes a workflow that goes in and sends downlink messages via API from Losant to Senet. Senet then sends them through all the appropriate gateways to all the different devices that you're trying to configure to get them to very easily do a mass reconfiguration of a whole set of devices all at once, so very powerful. The other use case that's also very important is when we talk about alarm systems. When we're working about something that is critically important to be delivered, LoRaWAN is not a guaranteed delivery protocol. It’s a best effort protocol. If you want guaranteed delivery, that's a coordination between what the device does and what your application in Losant is doing. What we do in that case is we actually have a handler. So, when it is received, we get an alarm condition from a device. Say there was a tamper detection on a door or something like that, that tamper detection would go off on the device. The device would start sending the alarm up to Losant. As we process in Losant, we would we detect that an alarm condition has occurred and we would send a confirmation back down to the device that would confirm two things — the kind of alarm that we are clearing and a sequence counter that identifies the device exactly which alarm we are clearing. That avoids these hidden state problems where your back end and your device can get out of sync. So, again, very, very powerful.
Kevin Niemiller: Okay. Thank you, Dave. I’ll take this next one. Does this solution support a way to restrict certain access depending on who is logging into the application and interacting with that data? At the beginning of the presentation, I went over five main components of the Losant platform. One of them was end user experiences which allows you to build one multi-tenant application that allows all of your customers to log in and only see the data they have access to. Losant helps with that access control where you can build any type of hierarchy to include each type of end user you have at different levels within that model. For example, with smart environment, you might have a corporate engineer or building management company able to see all buildings or all campuses and then a facilities manager who has access to only one building or one campus. Okay, Dave, we got a couple more. This one will be for you. How often is your device sending data and what are the typical intervals for sending data that you see when using LoRaWAN with these low-power battery operated sensors?
Dave Kjendal: Yeah, great question. For the demonstration here, we actually have this device to be configured to be sending messages very frequently. It's sending them every couple of, like every five minutes and then sending them every time there's a motion which is right next to me so it's all the time. That's not a typical LoRaWAN use-case. Over the last couple of weeks, we've probably used a quarter of the battery on that device doing something like that. Typically speaking, what we're expecting to see with LoRaWAN kinds of applications devices is those devices are usually sending no more frequently than once every 5 minutes, 15 minutes. Typically, it's probably once an hour. Some of the use cases are once every couple of hours, even once a day. Some are even longer than that, once every couple of weeks that they would send. So, keep in mind we can do this LoRaWAN communication over satellite networks and things like that as well. So, in some of those use cases, it really is a long period between the uplinks. In order to be battery efficient, and again, you want to be keeping an eye on those elements as well, certainly if you have a really high bandwidth application, there's other communication technologies that are probably more well-suited than LoRaWAN, WiFi, LTE, various things like that.
Kevin Niemiller: Okay. The next question I’ll take. It says, could you explain reasons why to go MQTT instead of HTTP and vice versa for smart buildings? Which is the preferred protocol? What I’ll say is both are great protocols to use. In the case of LoRaWAN like we're talking today, Dave mentioned a lot of great reasons to use Losant like low cost, low power and long distance. It is a great way to securely send data to the cloud as well as send commands down to the device securely using HTTP to use that over the LoRaWAN network. Once the data gets to the Senet network server, we can get that data to lose and which is a cloud-to-cloud connection using HTTP and a Webhook. If you need to connect to some other equipment like Dave was mentioning, there's some other ways to get around that using 4G and cellular technologies like that. Another way is to use something like the Losant gateway edge agent. That acts as a MQTT client that you can install on your gateway. Since it's an MQTT client, it's actually an outbound connection out of your building to the Losant platform which allows bi-directional data to flow securely between your building and the cloud. Okay. So, I’ll take this next one too. In the case of a customer who would like to do integration with 3D map of buildings with different sensors showing CO2 or temperature levels as well as occupancy, does it integrate with the Losant platform assuming 3D mapping are collected via another tool like CAD or drone mapping? The Losant platform like I just mentioned, you can use end user experiences and you can really use any library that you want in that end user experience in order to use those 3D mapping libraries that we talked about. In our dashboard, we also have a custom HTML block which allows you to use libraries directly in that. Okay, Dave, we have a question about like an alarm hub. You were talking about alarm systems before. Could we do a complete alarm system based on LoRaWAN from the Losant platform, things like an alarm hub, motion detector, door open-close sensors, smoke sensors, leak detection siren all through LoRaWAN?
Dave Kjendal: The answer is absolutely. Again, we've implemented some of those. We did a demonstration for an electric utility around electrical utility pole monitoring. Monitoring impacts and poles being knocked over and temperature warnings for the transformer. All of those generated alarms for different use cases. Those are all represented back into a single dashboard or single set of dashboards really in Losant. What we're looking at there is an overall alarm dashboard where you're looking at issues that may be coming in and then digging into specific. What we would do in the case like this is that particular pole is actually a system device in Losant that has several other device shadows underneath it that are representing the multiple sensors that are monitoring it. From there, you would see exactly what needs to be triaged in order to fix that scenario. Again, the important thing from a functional perspective on the alarm handling is that it's really important to tie that reception of the alarm in Losant platform back into acknowledging the alarm on the end device through the API call from Losant to Senet. Senet then delivers it over the LoRaWAN network to the end device.
Kevin Niemiller: Okay, great. This next one's a quick one since I kind of already mentioned it. Is there a method to overlay maps on the dashboard or other GEO location data? The Losant platform comes with many different blocks to help you get up and running with your data quickly. Some of those are the image overlay block to do building floor plans. There's other ones that allow you to use GPS maps, things like that and you can overlay data onto things like that. Like I mentioned, we have that custom HTML block where you can really use any library you want and really build any block that you want. Okay, next one for you, Dave. Does anything need to change with this template and solution if the sensor is connected to a Helium miner?
Dave Kjendal: The short answer is no. The Helium Network is supported natively for all of our production customers including all of our developer portal accounts as well. There's one slight thing that is important to recognize which is that if the device is going to join our network over Helium, then it needs to be provisioned with credentials from our network. That meant if you get an off-the-shelf device, you might need to reprogram the join EUI in it so that Helium will actually send that traffic to us. That's the only small thing that needs to be done but otherwise, everything will just work. If you've got a development kit device and you're configuring it with the credentials that we gave you, it'll work just seamlessly. You won't even know that there's a difference.
Kevin Niemiller: Okay. And then the last question here I think this will be a two-parter. I’ll take the first part of it and I’ll let you answer. Can I build a custom device onboarding UI in Losant that automates the Senet device registration using a Senet API? In the Losant platform, you can absolutely build a UI like that. It's very easy to build a UI like that using our end-user experiences which I mentioned are dashboarding, and then connect that to really any API. Dave, I’ll let you take over from here to let us know if the Senet API is capable of that.
Dave Kjendal: Yeah, absolutely. We kind of showed you in this template how the device is automatically created in Losant from API calls from Senet. But the reverse is absolutely possible and is probably preferred in many production implementations in which case, the customer actually deploying the devices probably has a workload that they're using where they are hanging the device on the wall, scanning the barcode on the app. That then flows into your Losant application. The information that came from that barcode scan then goes into an API call into Senet that activates the device on Senet so that data now starts to flow from Senet up to up to Losant. That's absolutely possible. Maybe that's a good topic for a future deep dive or a future discussion. You can also do the same thing on the gateway side. Again, if you have customers and your end customers who are hanging gateways and places and you want to simplify the procedure for them. You can also use an API call that runs from your mobile phone through Losant, from Losant down to Senet to go and onboard that gateway at that location. Again, really, the important element there is convey the additional metadata that provides context to that location. So, the gateway belongs to this customer, it's at this location, that kind of thing. Same thing on the device. We just put this motion sensor in this office, it's this kind of a sensor, it belongs to this customer of mine. All of that can be pushed all from the API from the user experience standing in the physical world all the way back through Losant to Senet and then provisioned in our platform.
Kevin Niemiller: Okay. Thank you for that. We're coming up to the end of the hour. I think we're going to go ahead and end the webinar now. I just wanted to go ahead and thank Dave and everyone that joined us today. If you would like to learn more, please check out Losant by visiting the Losant website at losant.com or emailing us at hello@losant.com. For Senet, feel free to reach out to Dave on LinkedIn or send an email to info@senetco.com. Thank you again.
Dave Kjendal: Thank you.