Kaa Documentation

Welcome to Kaa documentation

Kaa is a highly flexible and scalable IoT platform for building IoT solutions and managing connected devices.

Features

Device Registry and Provisioning
  • Registration: The platform maintains a registry of connected devices.
  • Provisioning: Kaa allows for automatic or manual provisioning of devices via the Kaa UI or REST API, for example, using QR-code scanning.
Connectivity
  • Multi-protocol Support: Connect your devices using HTTP, HTTPS, MQTT, MQTT over TLS (MQTTS), The Things Network (LoRaWAN), plain TCP, or UDP.
  • Secure Connection: Secure device connections with one-way or two-way TLS using X.509 certificates.
Telemetry and Data Collection
  • Collect unstructured data from devices and transform it into well-structured time series.
Data Visualization
  • Drag-and-Drop UI: Build your dashboards with drag-and-drop UI customization.
  • Rich Widget Set: Use tables, charts, gauges, maps, labels, or build your custom widget.
Device Configuration Management
  • Remote Configuration: Administrators can remotely configure devices using JSON or any other format, changing settings and parameters without needing physical access.
  • Batch Device Configuration: Group devices by type or custom attributes (e.g., location) for configuration updates.
Rule Engine
  • Scenario Automation: Automate scenarios across independent devices based on real-time event processing.
  • Predictive Maintenance: Predict maintenance needs based on current device data combined with historical data.
  • Data Aggregation: Take action based on aggregated data over a specified period.
  • Data Transformation: Transform data from devices before storing it.
Alerts and Notifications
  • The platform can generate alerts and notifications via SMS, email, webhook, and other methods based on specific conditions or thresholds, aiding in proactive management.
Firmware and Software Updates
  • OTA Updates: Kaa supports Over-the-Air (OTA) updates, allowing users to deploy firmware and software updates to devices remotely.
  • Canary OTA Deployment: Group devices by type or custom attributes (e.g., location) for canary OTA deployments.
  • Version Management: The platform can manage different versions of firmware and software across devices.
Command Invocation
  • Remote Command Invocation: Administrators can send commands to devices to control their behavior or operations.
  • Batch Command Invocation: Group devices by type or custom attributes (e.g., location) for remote command invocation.
Assets
  • Organize physical or logical entities, such as devices, vehicles, buildings, rooms, fields within your IoT ecosystem.
  • Hierarchical Structure: Assets can be organized hierarchically, allowing for the creation of a parent-child relationship between assets.
Identity and Access Management
  • Multi-tenancy: Kaa separates tenants into isolated spaces with their own users, permissions, devices, dashboards, applications, etc.
  • Authentication: Kaa ensures that only authenticated users can access secured resources.
  • Authorization: Build any permission topology using a combination of Attribute-Based Access Control (ABAC) and Role-Based Access Control (RBAC), similar to the approach used in AWS IAM policies.
  • Public Solutions: Grant public access to specific dashboards or devices.
Reporting and Analytics
  • Custom Reports: Generate reports based on device data, helping to analyze performance and usage patterns.
  • Report Exports: Export generated reports in CSV, PDF, or JSON formats.
  • Integration with Analytics Tools: Kaa can integrate with external analytics tools for more advanced data analysis and visualization.
Extensibility and Scalability
  • Custom Modules: Supports the development of custom microservices and plugins to extend the platform’s functionality.
  • Horizontal Scalability: The platform can scale horizontally.
  • Open Interfaces: The platform provides REST API, Kafka, NATS, and LogStash to easily integrate with BI systems, data science workflows for ML/AI, data warehouses, and data lakes.

Kaa Cloud

Kaa Cloud is a Platform as a Service (PaaS). Use it in case you want to use the Kaa IoT Platform without the need to set up and maintain your own platform instance and infrastructure. During Kaa Cloud registration you will get a tenant, which represents an isolated space within the Kaa platform where you can create, organize, and manage your resources like devices, applications, dashboards, users, etc.

If you are new to Kaa, Kaa Cloud is your starting point.

Private Deployment

Private deployment is another Kaa usage option. Here you will have your dedicated Kaa Platform instance with the access to every bit of its functionality. Microservice-based architecture will allow you to customise and expand the platform capabilities to your needs. There are two options of private deployment: KaaIoT-hosted and self-hosted. More info is here.

Refer to Platform Architecture Overview documentation section to find out more about the Kaa Platform architecture and how you can utilize it with private deployment option.

Open source kit and open APIs

REST API

Refer to Kaa REST API documentation for integration of custom web UI or mobile app with the Kaa platform. You can also use the same REST API for third-party integrations when you need to communicate data from the Kaa platform to external systems. There you will also find how to authenticate REST API calls to fetch and modify the data in your tenant.

Arduino SDK

In case you use Arduino and want to communicate with Kaa using MQTT, utilize Kaa Arduino SDK. The library provides a client functionality for communicating with Kaa IoT Platform. It comes with example sketches for ESP8266, ESP32 and STM32.

MQTT client for Node.js

Refer to Kaa MQTT client for Node.js in case you need to communicate with Kaa from Node.js environment. The library provides a range of methods to interact with the platform's features. It encapsulates the complexity of MQTT communication, offering a user-friendly interface for IoT applications.

Getting Started

Get started with exploring Kaa features in the documentation menu or jump right to the first tutorial which will help you in connecting your first device.