Leveraging Kaa IOT platform for quick prototyping

With the explosion of the number of smart devices, Remote diagnostic and Monitoring tools are in great demand, to reduce customer support costs and to improve predictive maintenance aspects. Since the complexity and features of the software/firmware of these smart devices have been growing exponentially, the troubleshooting of the devices is becoming more and more complex. But very few of them have matured sufficiently to handle smart devices. Some of the popular commercial remote troubleshooting solutions are LogMeIn and TeamViewer.

Recently at Sequoia, I was trying to develop a quick POC for remote diagnostic and monitoring solutions for multiple smart devices. The system envisaged would have a diagnostic app running on the smart device, a technician console for communicating with the app and a communication link between them. The challenge I had was twofold (a) the company was a startup and had limited resources (b) the short time line available to develop the POC. After considering several possible solutions, I chose Kaa, an IOT platform, that works well for the quick development of a remote diagnostic and monitoring system.

The main considerations in selecting an IOT platform for a low cost diagnostic system were the following,

  • Multi-platform support.
  • Ease of deployment and development.
  • Integration with 3rd party tools; for example, integration with data pipelines for big data processing and analytics.
  • Scope for feature addition to the existing platform.
  • Actively maintained open source project.
  • Detailed documentation and good community support.

Kaa was the perfect choice with the above attributes. Kaa (http://www.kaaproject.org/) is a 100% open source Apache licensed platform. It has good community support and documentation. Kaa provides integration with other data pipelines like Kafka (http://kafka.apache.org/), Flume (https://flume.apache.org/) and Spark(http://spark.apache.org/). The integration with these data pipelines are very useful, especially when planning an analysis on the collected data. It also integrates well with databases like Cassandra, Mongo DB etc.

There are many features in Kaa like Events, Data Collection, Notifications, Profilingetc. The Events feature of Kaa can be used for transferring bidirectional messages between the technician console and the remote diagnostic app running on the smart device. Both unicast and multicast messages between endpoints are supported through Kaa platform. In Remote Diagnostic System, an end point can be an app (diagnostic) on a smart device; the technician console can be a web dashboard, another app on a smart device or even a desktop application.

Endpoint device <=> Kaa Server <=> Endpoint device/Dashboard/a stand-alone desktop application / Bigdata Server / Database

Since Kaa platform supports multitenancy, only the end point application needs to be developed. All the rest of the communication is taken care of by the Kaa platform.

Troubleshooting information was very easy to obtain with the Kaa platform. This information can be used to identify the technical faults of a particular device or to analyze its maximum life span/stability.    Further the analysis possibilities are unlimited; the frequently occurring issues and the pattern of their solutions can used to  train a machine learning model. Such trained models can be used in the future for automating troubleshooting using a bot.

I was impressed by the robustness of the platform including 3rd party support and easy customization options.

Link to artilce on Linkedin