Skip to content

Transforms

Overview

Signal Transformations allow for taking signals and further processing the data such as running math on, complex functions, and combining with other signals. The output is always one or more unique signals for the asset that can be used like any other signal.

Transformations convert a signal to a new signal with some math applied, a join with other signals, or with more complex processing. The output of a transformation is a unique signal that can be used as a part of the asset for rules, dashboards, etc.

Off the Shelf transforms available within ExoSense

Function Type Description
Linear Gain Standard Linear gain + offset function.
Linear Map Standard Map to new value based on a linear scale.
Join Standard Join multiple signals with basic operations.
Continuous Accumulation Standard Accumulate/Decrement signal values
Infinite Impulse Response (IIR) Standard Infinite Impulse Response
Negative Temperature Coefficient (NTC) Standard Calculate Temperature from NTC sensor
Band Gap Filter Standard Filter in / out of a band gap
Total Mass from Flow Mass Flow Get Total Mass from Flow Mass over time
Total Volume from Flow Volume per Minute Flow Get Volume from Flow Volume over time
Total Volume from Flow Volume per Second Flow Get Volume from Flow Volume over time
Aggregation by Time Interval Windowed Aggregate values by time interval
Rolling Aggregation by Count Windowed Rolling aggregation by count
Rolling Aggregation by Duration Windowed Rolling aggregation by a time duration

Using Transforms

In the Modify Asset Config interface for any given Asset, transforms can be added to the existing signals. Once added, one or more new signals are created.

The output Signals will be listed in Modify Asset Configuration under 'Calculated Signals' and are available for adding rules to, further transformations or analytics, reporting, and dashboard use.

Adding More Transforms

The Exosite IoT Marketplace contains additional Insight modules that can be added to ExoSense by administrators. Custom transformations can be built for transforming of data or analytics. Once added or created, these show up in the Modify Asset Config 'Add Transform' interface.

Custom Transforms

The off-the-shelf standard transformations provided with ExoSense may not cover all use cases. Custom transforms can be created using the ExoSense Insight functionality. You can build your own transforms using the Insight capabilities.

Standard Transform Details

Linear Gain

Allows for applying a scaling factor and offset for a signal using the function: result = gain * input + offset.

Use Cases:

  • Use Linear Scale for applying calibration factors to signals.

Configuration

I/O Details
Inputs 1 Numeric signal
Outputs 1 Numeric signal (Type / Unit can be configured)

Parameters:

Parameter Format Required Description
Gain Number ✔︎ Multiplier of the signal value before the offset is applied. Default to 1. Can be negative.
Offset Number ✔︎ Added to the value after the gain is applied. Default to 0. Can be negative. Can be negative.

Linear Map

Map a signal to new values, based on a linear scale. Enter the original signal's minimum and maximum, and the transformed signal's minimum and maximum. Computes the Linear Map from In Minimum and In Maximum to Out Minimum and Out Maximum (result = (x - inMin) * ∆Out / ∆In + outMin)

Use Cases:

  • Use Linear Mapping to transform a hardwired analog input 4-20mA signal to a 0-100% range signal.

Configuration

I/O Details
Inputs 1 Numeric signal
Outputs 1 Numeric signal (Type / Unit can be configured)

Parameters:

Parameter Format Required Description
In Minimum Number ✔︎ Minimum input value to use in the mapping function.
In Maximum Number ✔︎ Maximum input value to use in the mapping function.
Out Minimum Number ✔︎ Minimum output value to use in the mapping function.
Out Maximum Number ✔︎ Maximum outputs value to use in the mapping function.

Join

Join multiple signals with basic math operations.

  • addition
  • subtraction
  • multiply
  • divide
  • modulo

Evaluation Sequence

Join operations are evaluated top-to-bottom, rather than per standard order of operations.

Triggers

The join transform is triggered for each input signal value, meaning that if both signals have data written to them through a device at the same time, the transform will run twice. If your Join has two signals, A and B, and both values are written into the system at the same time, the function will for example run once for input A (using a previous B value) and once for input B (with the latest A value).

Use Cases:

  • Example: Use Join to add energy meters together for a combined energy usage signal.

Configuration

I/O Details
Inputs 2 to 5 Numeric signals
Outputs 1 Numeric signal (Type / Unit can be configured)

Parameters:

Parameter Format Required Description
First Op Number ✔︎ Math operations to be applied between the First input and Second input.
Second Op Number Math operations to be applied between the Second input and Third input.
Third Op Number Math operations to be applied between the Third input and Fourth input.
Fourth Op Number Math operations to be applied between the Fourth input and Fifth input.
Gain Number ✔︎ Default is 1. Multiplier of the signal value before the offset is applied. Default to 1. Can be negative.
Offset Number ✔︎ Default is 0. Added to the value after the gain is applied. Default to 0. Can be negative. Can be negative.

Continuous Accumulation

This function will Sum (Increment) or Subtract (Decrement) incoming values with an optional starting value (default 0).

Use Cases:

  • Continuous accumulation of a sensor value over the lifetime

Configuration

I/O Details
Inputs 1 Numeric signal
Outputs 1 Numeric signal (Type / Unit can be configured)

Parameters:

Parameter Format Required Description
Value to start from Number ✔︎ Default 0. The starting number for increment/decrementing from

Infinite Impulse Response (IIR)

This function will combine incoming values by an IIR [https://en.wikipedia.org/wiki/Infinite_impulse_response].

Configuration

I/O Details
Inputs 1 Numeric signal
Outputs 1 Numeric signal (Type / Unit can be configured)

Parameters:

Parameter Format Required Description
Weighting Value Number ✔︎ Decimal value between 0 and 1. A value between 0 and 1 excluding to weight prior values

Negative Temperature Coefficient (NTC)

Computes Temperature from an analog voltage value using NTC provided Beta and Resistance at 25°C parameters. [https://en.wikipedia.org/wiki/Temperature_coefficient]

Configuration

I/O Details
Inputs 1 Numeric signal (assumes an analog voltage)
Outputs 1 Temperature signal (℃)

Parameters:

Parameter Format Required Description
Beta Number ✔︎ Beta value from sensor datasheet
Resistance at 25℃ Number ✔︎ Resistance at 25℃ value from sensor datasheet

Band Gap Filter

This function will sort values that are inside and outside of a range into two output signals.

Configuration

I/O Details
Inputs 1 Numeric signal
Outputs 2 signals using the original input signal type/unit

Parameters:

Parameter Format Required Description
Lower Limit Number ✔︎ Exclusive lower limit for band gap
Upper Limit Number ✔︎ Exclusive upper limit for band gap

Flow Transformations:

Total Mass from Flow Mass

Derives the total mass from incoming flow mass rate.

Configuration

I/O Details
Inputs 1 signal of Flow Mass type
Outputs 1 signal of Mass type

Total Volume from Flow Volume per Minute

Derives the total volume from incoming flow volume per minute.

Configuration

I/O Details
Inputs 1 signal of Flow Volume type, units of per minute
Outputs 1 signal of Volume type

Total Volume from Flow Volume per Second

Derives the total volume from incoming flow volume per second.

Configuration

I/O Details
Inputs 1 signal of Flow Volume type, units of per second
Outputs 1 signal of Volume type

Windowed Transforms:

Aggregation by Time Interval

Aggregates signal values over the time window specified.

Configuration

I/O Details
Inputs 1 Numeric signal
Outputs 1 Numeric signal (Type / Unit can be configured)

Parameters:

Parameter Format Required Description
Interval Size Number ✔︎ Interval in seconds for the time window for aggregation
Interval Alignment Number ✔︎ Alignment in Seconds since Unix Epoch to align intervals against
How to combine the values Enum operations ✔︎ Operation for aggregating the data (min, max, mean, sum, count )

Rolling Aggregation by Count

Rolling aggregation of past signal values by count.

Configuration

I/O Details
Inputs 1 Numeric signal
Outputs 1 Numeric signal (Type / Unit can be configured)

Parameters:

Parameter Format Required Description
Number of past values to combine Number ✔︎ Number of values to continuously combine with each new value as a rolling aggregation
How to combine the values Enum operations ✔︎ Operation for aggregating the data (min, max, mean, sum )

Rolling Aggregation by Duration

Rolling aggregation of past signal values in the past time duration (in seconds).

Configuration

I/O Details
Inputs 1 Numeric signal
Outputs 1 Numeric signal (Type / Unit can be configured)

Parameters:

Parameter Format Required Description
Duration in seconds Number ✔︎ Time duration to continuously combine as a rolling aggregation
How to combine the values Enum operations ✔︎ Operation for aggregating the data (min, max, mean, sum )