A **function** is an assignment using logical and mathematical arguments. The result of a function is a real value and is available in form of a virtual sensor. Examples for the application of functions could be the specification of supply temperatures controlled by atmospheric conditions or the summer compensation of extract air temperature.

Each function or rule can be defined in an own editor window using the common programming language. The editor window is divided into one section for the textual definition of the function and another section for the assignment of sensors. The required sensors can easily be assigned via drag & drop from the workspace. These are automatically labelled with reference variables (e.g. I1, I2, …) and can be used for the textual definition. If the required sensor values are not yet imported, a variable without value can be added by click on the “Add”-button. Also the identifiers are labelled accordingly and can be used for the textual definition. In that case the function can only be calculated, as soon as actual sensor values have been assigned to all generated variables. Functions can also be described by rules, fixed values, characteristics, time routines and metrics.

It has to be considered, that in all functions a value with a time stamp has to exist.

**Example:**

The time routine time routine_1 is defined.

In this example I1 stands for the ambient temperature but could generally stand for any data point with a time stamp.

In this function it is defined that if the time routine is active then this is equal to 1 else the function is 0 (I1-I1).

a 1. The definition is as following:

if pathxyz.time routine_1 then 1 else (I1-I1)