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.
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.
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
| 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) |
The notion of TAG makes it possible to define different groupings of objects. It is possible to create TAGS at:
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:
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:
Asset Level Tags:
Selection Logic:
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)
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.
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),….
Set of elements consisting of a timestamp, a value and a unit in the context of the IOT Factory.
Ex: (ts1, a1), (ts2, a2), …
The distribution of the series is not regular in frequency.
The distribution of the series is at a regular frequency.
At IOT Factory, we have predefined the following frequencies:
{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}
{00:00:00:000-00:59:59:999},
{01:00:00:000-01:59:59:999},
...,
{23:00:00:000-23:59:59:999}
{D T00:00:00:000 - D T23:59:59:999},
...,
{D(n)T00:00:00:000 - D(n) T23:59:59:999}
{Mon T00:00:00:000 - Sun T23:59:59:999},
...,
{ Mon T00:00:00:000 - Sun T23:59:59:999}
{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}
{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}
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:
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 selection of a time series takes into account :
The collections in which the time series are recorded are:
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 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:
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 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.).
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)
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:
It is also possible to:
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:
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.
It is designed to:
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:
Data source selection panel
Time range selection panel
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.
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.
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:
In addition to periods, it is possible to group data by time category (e.g. day of week).
The options are :
The selected data source can undergo several transformations.
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.
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).
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:
Determines the min/max of the initial series and returns:
Calculates the arithmetic mean of the initial series and returns:
Counts the number of occurrences of laundry and returns:
Performs an arithmetic operation on the series and returns
Sum the initial series and return:
In Orange, weekly sum of daily consumption
Calculates the cumulative sum of the series and returns:
Used to apply an increase/decrease to the series and returns:
Returns the percentage of the series
Calculating the proportion between two series.
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.
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:
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.