Skip to content

Main concepts

The following concepts definitions are essentials in order to explain the capabilities offered by Klas:


MQTT Broker

An MQTT Broker is a server responsible for routing messages between clients in an MQTT (Message Queuing Telemetry Transport) architecture. It follows a publish/subscribe model, where:

  • Clients publish messages to specific topics.
  • Other clients subscribe to those topics to receive messages.

The broker handles client sessions, message delivery, authentication, authorization, and Quality of Service (QoS) levels.


Telemetry

Telemetry refers to the automatic transmission of data from remote devices to a central system. Devices periodically send operational metrics, status, or sensor readings for monitoring, diagnostics, or analytics.


Desired and Reported Configuration

In device management models (e.g., Azure IoT), desired and reported properties are used to synchronize configuration between the cloud and a device:

  • Desired Properties: Configuration settings requested by the cloud.
  • Reported Properties: The actual state or configuration currently applied on the device.

This mechanism ensures state consistency and allows for automated reconciliation of configuration drift.


OTA (Over-The-Air) Updates

Over-The-Air (OTA) Updates allow remote delivery and installation of firmware or software updates to IoT devices. This process eliminates the need for physical access and supports:

  • Security patches
  • Feature enhancements
  • Bug fixes

OTA updates are often versioned, validated, and rolled out progressively to reduce risk.


D-Bus

D-Bus is an Inter-Process Communication (IPC) system commonly used on Linux-based platforms. It enables communication between different processes or applications in a structured and secure manner.

D-Bus supports:

  • Method calls (synchronous or asynchronous)
  • Signal broadcasting
  • Object introspection

It is widely used in system services, embedded platforms, and desktop environments.

Klas Configuration File

KLAS relies on several configuration files.

The sections below provide a detailed explanation of each file and its fields.

config.json

JSON Key Description
config-provisioning-path File path to the provisioning configuration used during device setup.
mqtt-connect-min-retry-interval-seconds Minimum time (in seconds) to wait before retrying an MQTT connection (The delay starts from this value and doubles on each failed attempt until the max value is reached)
mqtt-connect-max-retry-interval-seconds Maximum time (in seconds) to wait between MQTT connection retries.
upload-telemetries-interval-seconds Interval (in seconds) at which telemetry data is sent to the server.
log-level Defines the verbosity of logs (e.g., Debug, Info, Warning, Critical, Fatal).

config-provisioning.json

JSON Key Description
hostname The IP address or domain name of the server to connect to.
port The network port used for the connection.
deviceId A unique identifier for the device or client (For login-password mode, it acts as the login and corresponds to the device ID registered on KAMEA. For self-signed or ca-signed modes, it should match the Common Name (CN) of your device certificate).
mode Provisioning mode (e.g., login-password, self-signed, or ca-signed).
password Password used for authentication or secure connection (Needed only on login-password mode).
trust-store Path to the trust store file containing trusted certificates.
key-store Path to the key store file containing client certificates and private keys (Needed only on self-signed or ca-signed mode).
passphrase Passphrase used to access the key store or private keys (Needed only on self-signed or ca-signed modes).