IOT SOFTWARE PLATFORM DOCS

Table of Contents

Table of Contents

  • Concepts & Terminology
      • Devices and Assets
      • Solutions, Accounts, Users and User Groups
      • Terminology
  • Time series
      • Definition of a series
      • Definition of a time series
    • Widgets - Time series selection interfaces
      • Naming the series
      • Choice of data source and group by
  • Onboarding
  • Devices Manager
  • Assets Manager
  • Account Manager
  • Tutorials - How To?
  • Smart Solutions
  • LoRaWAN
  • Concepts & Terminology
  • Mobile App
  • Release Notes
  • Integrated LNS
  • APIs
  • dokuwiki
  • Live Demo
IOT SOFTWARE PLATFORM DOCS
You are here: Welcome ! » Concepts & Terminology
Trace: • Concepts & Terminology

Concepts & Terminology

The IOT software platform makes it possible to manage any type of deployment of communicating sensors (“Devices”), installed on machines, in buildings, in an outdoor environment or even on people: “Assets”. It offers all the necessary functionalities, from the management of the sensors and their communication channels (LORAWAN, NB-IOT, SigFox, M2M, Wifi, etc.), the decoding of the data received (“measurements”), any additional processing on the measurements (“smart devices”), the generation of conditional alerts (“rules, alerts and distribution lists”), the development of dashboards (“dashboards”) and the generation of reports.

Devices and Assets

The main concept to remember is that the software platform offers an abstraction model, which allows management of equipment, people or places on which sensors are deployed. This abstraction model, called “Asset”, makes it possible to define all the important characteristics of the equipment to which “Devices” (sensors) are attached. Assets can be grouped to match organization, and can be made up of other assets. Dashboards, reports and alerts are built on the basis of Assets, disregarding the installed sensors. The “Assets” automatically inherit the data collected by the sensors attached to them. The Assets can then be made accessible to users, on the basis of various criteria, in order to coincide with reality. It is of course also possible to work only with Devices, without configuring Assets. But the features will be more limited.

Solutions, Accounts, Users and User Groups

The platform is built on a micro-services architecture, and offers a “multi-tenant” approach which offers the possibility of managing several accounts (“Accounts”) within a “Solution” and of finely defining the rights of access to features and data (“Assets”), by Account and User Group.

More on Users Management: My Users

More on Access Rights in My User Groups

Terminology

Device Any communicating sensor. A device is mainly characterized by its type (Device Type) which allows the platform to apply the correct decoding to the data emitted by the sensor. When data are transmitted by a Device, they are attached to it in the form of “Measurements”, after their decoding.
Measurement Data received from a Device, decoded, and stored as time series. A “measurement” is dated, and includes a series of measurements taken, structured as “measurement type”, “measurement value”, and “measurement unit”.
Asset Any equipment, place, building, room, apartment, person, machine to which one or more sensors (“Devices”) is attached.
Smart Device Virtual device fed with data from real sensors (“Devices”), data on which mathematical transformations and aggregations are applied. The smart device is mainly used on consumption data (energy, machines) in order to convert units, and perform aggregations by day, week, month or year.
Smart Measurement Data calculated, in the form of a time series, based on the formula and aggregations defined in the corresponding smart device.
Rule Definition of the conditions leading to the generation of an alert. The rules are evaluated, depending on the configuration, when data arrives from a sensor (source: “measurement”), at regular intervals (source: “timeout”), in the event of an identified technical problem (source: “system” ) or when passing through a geographical area (source: “geofencing”).
Alert Result of the evaluation of a rule, whose conditions are met. Alerts can be viewed in the web application, but can also be the subject of a push notification (smartphone), the sending of an email or an SMS.
Distribution List Definition of a list of email addresses or telephone numbers to which alerts are sent. It is possible to define the rules concerned by the distribution list, as well as the schedule for sending (real time, summary of alerts once a day or a week, etc.).
Dashboard The “Dashboard” module allows the creation and visualization of one or more dashboards, based on the definition of access rights at the user group level. A dashboard is made up of parameters (e.g. the date, an asset) and a set of “widgets”, visualization modules such as a graph, a table, an image, a heatmap, etc.
Account An account represents the envelope of a project, containing all the Devices, Assets, Users, User Groups, as well as all the configurations (dashboards, smart devices, rules, etc.). An account is administered by one or more Admin users (role: “admin”).
User Any person or system that can access the IOT platform. Each user belongs to a user group, which defines the access rights he has on the Account.
User groups User groups are used to define, for each user in a group, their access rights in the Account: applications, modules, assets, dashboards.
Admin (of the account) A particular role, for a user, which grants him all the rights on an Account.
Solution A solution is an entity that groups together a set of accounts managed by a Super Admin type user (in fact: “Solution Admin”).
Solution Admin The administrator of a solution, who has access to all the Accounts of the solution (via the “Switch Account” option available at the bottom of the navigation bar on the left)

Tags

The notion of TAG makes it possible to define different groupings of objects. It is possible to create TAGS at:

  • Devices
  • Smart Devices
  • Assets
  • Rules

The most common use is defining “tags” for Assets. You can attach one or more tags to an asset, so as to define different sets of assets that share common characteristics. For example, add a “temperature” tag to all assets that have a temperature measurement, or an “electricity” tag to all assets whose electricity consumption is measured.

Adding tags can be done directly at the asset level. We edit the asset and add one or more tags. You can also add tags at the asset type level. Each asset will then inherit the tags defined at the asset type level.

What are tags used for?

Tags are used at different levels:

  • Dashboards: you can define a list of assets (asset selector) based on a tag, in order to display a list of assets, in a selection box, which has the defined tag. Tags can also be defined in a widget of a dashboard, in order to display for example: a list of assets that have a tag, or a geographical map of the corresponding assets
  • Rules (alerts): the ability to define a rule, for the generation of alerts, for all assets that have a tag. For example, generate an alert, for all assets that have temperature, if the temperature is above 30 degrees.
  • Smart Device: the possibility of aggregating data (for example general water consumption) for all assets that have a water meter
  • Report: a filter on assets, or devices, based on a tag.

Examples of TAGS use

Example of using a tag to define a weather station selection box.

Example of using a tag for a rule applied to an over temperature.

Tag Color Coding and Usage:

  • Red Tags: Custom tags created by you.
  • Green Tags (prefixed with ‘energy:’): Tags provided by us, used to define SmartBuilding solutions.

Asset Level Tags:

  • Light Grey Tags: System tags representing the asset type.
  • Dark Grey Tags: System tags indicating the parent context of the asset.

Selection Logic:

  • Use OR between tags of the same type.
  • Use AND between tags of different types.

Example: To target the electricity consumption of all apartment-type assets located on the 1st or 2nd floor of buildings A or B, use the following logic: Energy:Elec AND Apartment AND (Building A OR Building B) AND (Floor 1 OR Floor 2)

Time series

The IOT Factory platform processes time series data which is transformed, analysed and formatted using dashboards and reports. This document covers the underlying concepts and the tools used to visualise them.

Definition of a series

A set that may be empty or composed of one or more single or multiple elements.

Ex: ∅ 

Ex: a,b,c,d,e,f,…

Ex: (a,1),(a,2),(b,1),(b,2),….

Definition of a time series

Set of elements consisting of a timestamp, a value and a unit in the context of the IOT Factory.

Ex: (ts1, a1), (ts2, a2), …


Non-standardised series

The distribution of the series is not regular in frequency.

Standard series

The distribution of the series is at a regular frequency.

At IOT Factory, we have predefined the following frequencies:

  • Quart hourly
  {hh:00:00:000-hh:14:59:999},
  {hh:15:00:000-hh:29:59:59:999},
  {hh:30:00:000-hh:44:59:999},
  {hh:45:00:000-hh:59:59:999}
  • Hourly
  {00:00:00:000-00:59:59:999}, 
  {01:00:00:000-01:59:59:999},
  ..., 
  {23:00:00:000-23:59:59:999}
  • Daily
  {D T00:00:00:000 - D T23:59:59:999}, 
  ..., 
  {D(n)T00:00:00:000 - D(n) T23:59:59:999}
  • Weekly
  {Mon T00:00:00:000 - Sun T23:59:59:999}, 
  ...,
  { Mon T00:00:00:000 - Sun T23:59:59:999}
  • Monthly
  {01/01/YYYY T00:00:00:000 - 31/01/YYYY T23:59:59:999},
  ...,
  { 01/12/YYYY T00:00:00:000 - 31/12/YYYY T23:59:59:999}
  • Yearly
  {01/01/YYYY T00:00:00:000 - 31/12/YYYY T23:59:59:999},
  ...,
  { 01/01/YYYY(n) T00:00:00:000 - 31/12/YYYY(n) T23:59:59:999}

Aggregation methods

On the fly

To obtain a normalised time series, it is possible to extract the (first/)last element of each period and return one value per period.

  1, 2, | 3, 4, 5, |5, 5,| 6, 7, 7, 8, 9,| 10

where the '|' represents the separation between periods.

The result of the on-the-fly aggregation will be a new series with the following elements:

  2 | 5 | 5 | 9 | 10

The result is a series with one element for each period. This element can either keep its timestamp, or be associated with the timestamp of the period to which it belongs. (See note on choosing the first / last element of a period)

  (t1,1), (t2,2) | (t3, 3), (t4,4), (t5, 5) | (t6, 5), (t7, 5) |(t8, 6), (t9, 7), (t10, 7), (t11,8), (t12, 9) | (t13, 10)

where the '|' represents the separation between periods.

The result of the on-the-fly aggregation will be a new series with the following elements:

  (t2,2) | (t5,5) | (t7,5) | (t12,9) | (t13,10)

which use their timestamp as a reference.


OR

The result of the aggregation will be a new series with the following elements:

  (p1 ,2), | (p 2,5), | (p3,5), | (p4 ,9), | (p5,10)

where px represents the time stamp of the period to which they belong.

Notes:

  • On-the-fly aggregations take the timezone into account.
  • On-the-fly aggregations return the timestamp of the measurement, unlike aggregations performed by smartdevices, which return the timestamp of the period.
Via an aggregated smart device

For reasons of performance and information continuity, we prefer to use aggregated smart devices that produce standardised time series for each of the predefined periods. These series are recorded in corresponding collections. Each element of the series is made up of a timestamp, the start value and the end value of the period.

In addition, the aggregations calculated by smart devices take account of the timezone defined in the account settings.

Notes:

If the options are enabled, a smart device can calculate:

  • The delta for the period
  • Signed deltas for the period
  • The highest and lowest values for the period

Selection from a time series

The selection of a time series takes into account :

  • the data source
  • the type of measurement
  • the time range
  • frequency
Data sources

The collections in which the time series are recorded are:

  • Measurements fed by devices
  • Smart measurements fed by smart devices
  • Aggregated smart measurements (quarter hourly, hourly, daily, weekly, monthly, yearly) fed by smart devices
  • Static list values fed by static lists
Measurements

Measurements represent a set of measurements sent by the device at a time t. Each measurement is qualified by a timestamp, a type, an index, a value and a unit.

Ex: to do measurement


The distribution of a series of measurements is variable.

Smart measurements

Smart measurements are the result of transforming data sources into a new value. The smart measurement is qualified by a timestamp, in type, an id, a value and a unit.

  Ex: to do smartmeasurement

Distribution is:

  • Variable, in the case of a \“primary\” smart device;
  • Normalised, in the case of a \“secondary\” smart device, and the frequency is defined by the execution frequency;
  • Variable, in the case of a \“breakdown\” smart device.
Aggregated smart measurements

Aggregated smart devices produce aggregated smart measurements perperiod. The aggregated smart measurement is qualified by a timestamp from the start of the period, a set of measurements representing the first and last measurements of the period.

   Ex: to do aggregated smartmeasurement

The distribution of a series of aggregated smart measurements is standardised.

The type of aggregation of the smart device defines the depth of the aggregated smart measurements (yearly, monthly, weekly, daily, hourly, quart hourly)

Static lists

Static lists are a repository whose measurements do not come from a device. They are encoded manually or imported. Each element in the list is qualified by a timestamp, a type, a value and a unit.

  Ex: to do static list value


The distribution of a static list is variable. It can contain timeless or temporal data (e.g. energy prices, number of employees, etc.).

Data source selection rules

If the data source is a device, then the data source is the measurements collection.

If the data source is a smartdevice WITHOUT frequency precision, then the data source is the smart measurements collection.

If the data source is a smartdevice WITH frequency precision, then the data source is the aggregated smart measurements collection corresponding to the chosen frequency.

If the data source is a static list, then the data source is the staticlist values collection.

Assets can indirectly contain devices, smartdevices or static lists. The rule described above then applies indirectly.

Assets can contain static properties that are not considered to be time series because they do not have a timestamp. (e.g. surface)

Application of the time range selection

A time range is a segment defined by two bounds representing the start date and the end date. The time segment is characterised by the fact that the lower bound is inclusive and the upper bound is exclusive.


By choosing two dates to define the time range ex 01/01/2023(included) to 01/01/2024(not included)

The search can therefore be expressed as follows

  [ 01/01/2023 T 00:00:00:000 - 01/01/2024 T 00:00:00:000 [

Or

  [ 01/01/2023 T 00:00:00:000 - 31/12/2023 T 23:59:59:999 ]

The time range can be defined as follows:

  • Absolute
  • Relative to the present moment
  • Relative to a predefined point in time
  • Relative to the last element in the series

It is also possible to:

  • Refer to a time range in the past/future (Offset)
  • Shift a time range into the past/future (Shift)

Application of frequency selection to data selection

Depending on the data source, we have a distribution within the time range that is either variable or normalised.

By choosing a non-normalised data source, it is possible to define the frequency and normalise it to a normalised distribution.

This is the case with measurements where choosing a frequency results in the calculation of an aggregation on the fly and normalises the distribution.


In the case of aggregated smart measurements, choosing a frequency determines which normalised collection to search for the data in. However, it is not possible to select a frequency lower than the aggregation level defined in the smart device.

Notes:

The choice of frequency and data source is important.
For example, to display the monthly index of a meter over one year, if you select:

  • an aggregated SD, then the search is done in the smartmeasurements_monthly collection. In other words, for one year, we will search for 12 measurement points.
  • a Device, then an aggregation must be performed on the fly. If the acquisition frequency of this device is 1/4h, then we will search for 12 measurement points among 35040 measurement points.

We have set arbitrary limits. For data selection, the search is limited to 60,000 measurement points. This gives access to all the measurement points of a source that transmits at a rate of one measurement every 10 minutes for just over a year. And we have set the limit on the number of measurement points returned at 10,000. i.e. return the hourly minimum over one year of the value of a device that transmits every ten minutes. That's 52560 measurement points analysed and 8760 measurement points returned as the result.

Currently, when we extract the value of an aggregated smart measurement, it's the first that is returned (I want to know what the index of the day is). For aggregations done on the fly, it is the last value of the period that is returned.

Grouping

It is designed to:

  • Group the result of a selection/transformation by time period (e.g. by days, weeks)

  • Group the result of a selection/transformation by type of distinct time period (e.g. by days of the week)

Widgets - Time series selection interfaces

The widgets are varied, but all provide access to data by making a selection from a time series and displaying the result in the form of a graph, table, list, note, comparator, etc.

The selection interface allows you to:

  • Name the series
  • Select a data source
  • Define the step size of the series to be displayed
  • Apply a transformation to the data source
  • Define the time range
  • Choose a display

Data source selection panel

Time range selection panel

Naming the series

If no name is given, then the default name for the series is that of the source. Otherwise, it is the communicated label. The series name is used in graph legends, table column headings, list labels, etc.

Choice of data source and group by

Data source

The data source for a device is a measurement. The data source for a smart device is a value, a delta, a signed delta +/-, first, high, low, last of a smart measurement or an aggregated smart measurement. The data source for a static list is a static list value.

Group by time periods

The group by is used to define the frequency of the desired time series. By default, the group by value is \“none\” and can be set to any value: “quart hourly”, “hourly”, “daily”, “weekly”, “monthly\”, “yearly”, “hours of the day”, “days of the week”, “days of the month”, “months of the year”.

Notes:

  • The group by value is used to determine the type of delta required (e.g. daily_delta) and to search for it in the appropriate aggregation table or, if the source is not aggregated, to enable it to be aggregated on the fly.
  • If a smart device is not aggregated, we do not perform on-the-fly aggregation on smart measurements. We recommend enabling aggregation of the smart device.

Group by time category

In addition to periods, it is possible to group data by time category (e.g. day of week).


The options are :

  • Month of the year (January, \…December)
  • Day of the month (1,\…, 31)
  • Time of day (Monday,\… ,Sunday)


Applying a transformation

The selected data source can undergo several transformations.

Step

By default, the step is set to \“none\”, which means that no additional transformation is applied to the series and it will have the same step as that of the group by.

However, it is possible to work with a series with a step other than the one desired as the result. The step option can be used to target a series with a higher frequency.

For example, to calculate the cost of consumption over a month, the sum of the product of the daily consumption and the daily price must be calculated over the month.


On the other hand, it is possible to work on all the elements of the period or periods defined by the group by. In this case, select the “All” option.

E.g. Calculating the monthly average of the elements in a series requires you to calculate the arithmetic average for each month, and therefore to access ALL the elements in the series and not just one element at a time.


Filters

Applying a filter.

The data source can be filtered. The filter is applied upstream when the data is selected AND before any transformations (e.g. CO2 > 800ppm AND CO2 ⇐ 1200ppm).

Transformation with production of a new series

It is possible to transform each element of a time series, or to transform the time series into another time series by applying one of the following transformation methods:

Minimum, Maximum

Determines the min/max of the initial series and returns:

  • Unordered List Itemnothing if the series is empty
  • the minimum/maximum threshold reached for the whole series (min two points over the whole period)

  • the minimum/maximum per period of the series (one point per period)

Average

Calculates the arithmetic mean of the initial series and returns:

  • nothing if the series is empty
  • the average threshold of the series (two points over the whole period)

  • the period average for the series (one point per period)

Count

Counts the number of occurrences of laundry and returns:

  • Unordered List Itemnothing if the series is empty
  • the number of items in the series (one item for each item in the series over the entire period)
  • the number of items per period in the series (one item per period)

Add / Subtract / Multiplie / Divide

Performs an arithmetic operation on the series and returns

  • Unordered List Item
  • nothing if the series is empty
  • sum / subtract / multiply / quotient the elements of the series with an external element (one point per point of the series over the whole period)

Sum

Sum the initial series and return:

  • Unordered List Itemnothing if the series is empty
  • the sum of the series (one point over the whole period)
  • the sum per period of the series (one point per period)

In Orange, weekly sum of daily consumption

Cumulative Sum

Calculates the cumulative sum of the series and returns:

  • nothing if the series is empty
  • the cumulative sum of the series (one point for each point in the series over the whole period)
  • the cumulative sum per period of the series (one point per period)

Increase / decrease

Used to apply an increase/decrease to the series and returns:

  • nothing if the series is empty
  • The cumulative sum of the series where each point is incremented/decremented by one value (one point per point in the series over the whole period)
  • the cumulative sum per period of the series, where each period is incremented/decremented by one value (one point per period)

Percentage

Returns the percentage of the series

Ratio

Calculating the proportion between two series.

MathJS

The MathJs transformation can be used to perform calculations that are not covered by conventional transformations.
e.g. Calculation of the CO2 savings achieved compared with a reference consumption level.

Defining the time range

The time range panel can be used to define the precise time range to be selected.

The module allows you to make an absolute selection by defining a start and end date and time for the period.

The module allows you to choose a predefined period, with a wide range of options for choosing a time period relative to the present.

The module lets you define custom periods up to the present time or up to the last available value in the series.

The advanced options allow you to:

  • apply an offset to the defined period and move into the past/future;
  • apply a shift and move the defined period into the past/future.

If a date selector is present in the dashboard, then the module can inherit the selected period. The inherited period can be applied as is and selected to define a custom time range, an offset or a shift.

The choices made are displayed directly in the module, so you can see which period is covered.

Previous Next