In this release

We improved aggregation in observation functions. The Aggregate and Arithmetic functions now support both aggregation across sensors, and over time, allowing users to apply Sum, Median, Mean, or Latest Observation aggregations per sensor, in addition to the cross sensor aggregation or formula calculations. Additionally, there are new native aggregate functions for Hourly and Daily averages and sums.

New functionality

ArithmeticFunction – perSensorAggregation

In the previous release, a new ArithmeticFunction was introduced, calculating data from sensors according to a user defined formula. The aggregation function took into consideration only the latest observation values of the observed sensors. Now it is possible to calculate cumulative values. A new property, ‘perSensorAggregation’ represents the type of calculation that will be applied to observation values of the sensor that is included in arithmetic function calculation. Also, we renamed ‘recalculationPeriod’ to ‘period’.

ArithmeticFunction fields:

  • ‘formula’– formula to calculate value. The formula should contain only fields from ‘params’
  • ‘params – map of sensor IDs as value and a sensor alias as a key
  • ‘period’— field indicates the period for collecting necessary calculation data (e.g. period to wait for all observed sensors to send their telemetry). When time is up all counters will be reset. The recalculation period is represented by ISO 8606 Duration format.
  • ‘inputFallbackMode’ – indicates whether the calculation should be done based on all required data or in case of missing data – is neglected. Enum values:
    • RequireCompleteInput (default) – to perform calculation all the values should be provided;
    • AcceptIncompleteInput – calculation could be performed with some missing values.
  • ‘perSensorAggregation’ — the type of aggregation that applies for each sensor before calculation of the formula. Possible values:
    • Sum – sum all the values that were aggregated
    • Median – calculate the median value from the values that were aggregated
    • Mean – calculate the average value.
    • LatestObservation – default value, takes latest observation’s value.

ArithmeticFunction JSON schema:

{
    “formula”: “f(s1,s2)=s1+s2+25″,
    “params”: {
      “s1”: “d3ac6734-c3e1-41ca-af2b-d793f5f281bc”,
      “s2”: “21c979f4-d3a2-44e1-b348-c61dd75d8078”
    },
    “period”: “PT10M”,
    “inputFallbackMode”: “RequireCompleteInput”,
    “ownedBy”: “0a357a4f-053f-453f-ad5d-62f626f183e3”,
    “class”: “ArithmeticFunction”,
    “perSensorAggregation”: “LatesObservation”
}

Native Aggregate Functions

In this release, new native aggregate functions were introduced

Hourly Sum Value

Unset

{
  “key”: “HourlySumValue”,
  “popularName”: “Hourly Sum Value”,
  “period”: “PT60M”,
  “inputFallbackMode”: “AcceptIncompleteInput”,
  “acrossSensorsAggregation”: “Sum”,
  “perSensorAggregation”: “Sum”,
  “class”: “NativeFunction”
}

Daily Sum Value

Unset

{
“popularName”: “Daily Sum Value”,
“period”: “PT24H”,
“inputFallbackMode”:   “AcceptIncompleteInput”,
“acrossSensorsAggregation”: “Sum”,
“perSensorAggregation”: “Sum”,
“class”: “NativeFunction”
}

Hourly Mean Value

Unset

{
  “popularName”: “HourlyMeanValue”,
  “period”: “PT60M”,
  “inputFallbackMode”: “AcceptIncompleteInput”,
  “acrossSensorsAggregation”: “Mean”,
  “perSensorAggregation”: “Mean”,
  “class”: “NativeFunction”
}

Daily Mean Value

Unset

{
  “popularName”: “Daily Mean Value”,
  “period”: “PT24H”,
  “inputFallbackMode”: “AcceptIncompleteInput”,
  “acrossSensorsAggregation”: “Mean”,
  “perSensorAggregation”: “Mean”,
  “class”: “NativeFunction”
}

Breaking changes

AggregateFunction

AggregateFunction extends its functionality to calculate values across sensors and over time.

The function is configured by new parameters:

  • ‘perSensorAggregation’ — the type of aggregation that applies to each sensor before calculation across sensors. Possible values:
    • Sum – sum all the values that were aggregated
    • Median – calculate the median value from the values that were aggregated
    • Mean – calculate the average value.
    • LatestObservation – takes the latest observation’s value.
  • ‘acrossSensorsAggregation’ ( renamed from ‘type’)— the type of aggregation that applies across sensors. Possible values:
    • Sum – sum all the values that were aggregated
    • Median – calculate the median value from the values that were aggregated
    • Mean – calculate the average value.
  • ‘period’— field indicates the period for collecting necessary calculation data (e.g. period to wait for all observed sensors to send their telemetry). When time is up all counters will be reset. The recalculation period is represented by ISO 8606 Duration format.

Also, there is one more change for this function is a renaming of ‘recalculationPeriod’ to ‘period’.

AggregateFunction JSON schema:

{
  “period”: “PT10M”,
  “inputFallbackMode”: “RequiredCompleteInput”,
  “accrosSensorsAggregation”: “Mean”,

  “perSensorAggregation”: “LatestObservation”,
  “ownedBy”: “61bcb8cb-ebfd-4179-85b9-3014c8c14d3a”,
  “class”: “AggregateFunction”
}

AggregateOverTimeValueFunction

AggregateOverTimeValueFunction is no longer available to create and use in ProptechOS. Instead, AggregateFunction can be used. To use it properly acrossSensorsAggregation and perSensorAggregation should be the same and the function should be explicitly assigned to the sensor or the sensor should observe only one other sensor. 

ArithmeticFunction – ‘recalculationPeriod’

The field ‘recalculationPeriod’ field is now ‘period’. This field indicates the period for collecting necessary calculation data (e.g. period to wait for all observed sensors to send their telemetry).  When time is up all counters will be reset. The recalculation period is represented by ISO 8606 Duration format.

Fixes and minor upgrades

Improvements:

  • Added measurement unit Ampere Hour (PLAT-4764)

Defect fixes:

Per Karlberg

Per Karlberg, a distinguished technology executive, demonstrates deep expertise in the nexus of real estate, technology, and ESG. Holding advanced degrees from Lund University, and with key roles as CEO of our company and Co-Founder of ProptechOS, he has shaped the proptech field through significant contributions to real estate technology advancements. His instrumental work in co-authoring “The realestatecore ontology” has facilitated digital transformation and ESG breakthroughs in the real estate sector.

Read his full bio and information here.