Child pages
  • How to Define your Data and your Devices
Skip to end of metadata
Go to start of metadata

Welcome to the Labeeb IoT Data Model space!

This page is dedicated to the description of the internal Labeeb IoT Data Models.

Overview

Labeeb IoT adopts a generic and application-agnostic data model to enable the definition and management of any IoT device and related data.

An example of mapping between a typical IoT device to Labeeb IoT Data Model is shown below:

As shown in the below figure, an IoT device can be associated to a single device template. A device template might be linked to 1 or more data models. A data model might be linked to 1 or more devices templates. A data type might be linked to 1 or more data models.



Detailed Descriptions

Data Model EntityDescriptionExamples
Data Type

A Labeeb IoT Data Type aims at describing a single data record which is sent by an IoT device or application.

Each Data Type should have at least:

  • A user-defined name (e.g. speed, temperature, cpu_level, etc.)
  • A predefined type (e.g. integer, double, string, boolean, etc.)

Each Data Type might have:

  • A unit
  • A user-defined value expression filter (e.g. #value > 0)
  • A user-defined timestamp expression filter (e.g. #dateTime!=null)
  • A user-defined location expression filter (e.g. #latitude!=null and #longitude!=null)
  • A user-defined accuracy profile
  • A predefined storage option
  • etc.

Examples of Data Types:

  • Name=Speed
  • Name=Heading
  • Name=Latitude
  • Name=Longitude
  • Name=Temperature
  • Name=Humidity
  • Name=Wind Level
  • etc.
Data Model

A Labeeb IoT Data Model aims at grouping a set of Data Types which share the same logic or application domain.

Each Data Model should have at least:

  • A user-defined name
  • A user-defined data accuracy profile
  • A list of already existing Data Types

Each Data Model might also have:

  • A description

Examples of Data Models:

  • Name=Environment (linked to the above Data Types: Temperature, Humidity, Wind Level)
  • Name=Mobility (linked to the above Data Types: Speed, Heading, Latitude, Longitude)
Device Template

A Labeeb IoT Device Template aims at defining a group of devices which share the same features and capabilities.

Each Device Template should have at least:

  • A user-defined name
  • A time zone
  • A user-defined heartbeat profile
  • A password
  • A list of already existing Data Models

Each Device Template might also have:

  • A description
  • A static GPS location

 Examples of Devices Templates:

  • Name=Tracking Device (linked to the above Mobility data model)
  • Name=Weather Station (linked to the above Environment data model)
Device

A Labeeb IoT Device aims at defining a specific IoT device and should be linked to an existing Device Template.

Each Device should have at least:

  • A user-defined name (or identifier)
  • A user-defined device template

Each Device should might also have:

  • A user-defined model
  • A user-defined firmware version
  • A user-defined heartbeat profile
  • A predefined device type
  • A user-defined static GPS location
  • etc.

Examples of Devices:

  • Name=123465789 (linked to the above Tracking Device template)
  • Name=station 1 (linked to the above Weather Station template)