In this release
We introduce AggregateOverTimeValueFunction for consolidating sensor data over time, a new ArithmeticFunction for custom sensor calculations, and a unified AggregateFunction replacing multiple aggregation functions. Additionally, the NativeObservationFunction has been renamed to a NativeFunction, maintaining all predefined functionalities.
New functionality
Observation Functions:
AggregateOverTimeValueFunction
AggregateOverTimeValueFunction – aggregate all the values from one sensor and consolidate them according to the type of function (Sum, Average, Median).
- ‘type’ – the type of aggregation. Possible values:
- Sum – sum all the values that were aggregated
- Median – calculate the median value from the values that were aggregated
- Average – calculate the average value
- ‘periodAggregation’— 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.
AggregateOverTimeValueFunction JSON schema:
ArithmeticFunction
This function intends to calculate value according to the provided function and provided parameters. Params are substituted with observation values provided by observed sensors. Function format ‘f(param1, param2) = … ’. Arithmetic functions are controlled by additional parameters: ‘recalculationPeriod’ and ‘inputFallbackMode’.
- ‘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
- ‘recalculationPeriod’— 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.
ArithmeticFunction JSON schema:
The example calculation formula is:
- s1 – id of <sensor_1>, its observation value will be passed to the function
- s2 – id of <sensor_2>, its observation value will be passed to the function
Breaking changes
Observation Functions:
AggregateFunction
The function aggregates observation values from more than one sensor.
In this release, a new observation function ‘AggregateFunction’ was introduced instead of three different functions such as SumObservationFunction, AverageObservationFunction, and MedianObservationFunction. All these functions had the same format, but different classes. Now, all of them have the same class ‘AggregateFunction’, but the exact functionality is defined with a new field ‘type’. Also, the new field ‘inputFallbackMode’ was introduced.
- ‘type’ – the type of aggregation. Possible values:
- Sum – sum all the values that were aggregated
- Median – calculate the median value from the values that were aggregated
- Average – calculate the average value
- ‘recalculationPeriod’ — 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 missing data neglected. Enum values:
- RequireCompleteInput (default) – to perform calculation all the values should be provided;
- AcceptIncompleteInput – calculation could be performed with some missing values.
NativeFunction
NativeObservationFunction no longer exists in ProptechOS, but instead of this function, NativeFunction was introduced. All the previously predefined functions remain the same.
Fixes and minor upgrades
Improvements:
- Observation Function Twin History (PLAT-4737)
- Possibility to retrieve the Observation function via /json/twin/{id}(PLAT-4727)
- Added opportunity to filter sensors by observation functions: ‘observation_function_ids’ and ‘observation_function_classes’ (PLAT-4728)
Defect fixes:
- Updating sensors via the json/devices endpoint doesn’t work correctly (PLAT-4720)
- Geometry API doesn’t return the full list of geometries (PLAT-4742)

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.