# Integration - Riemann sum integral

The `integration`

platform provides the Riemann sum of the values provided by a source sensor. The Riemann sum is an approximation of an **integral** by a finite sum. The integration sensors is updated upon changes of the **source**. Fast sampling source sensors provide better results. In this implementation, the default is the Trapezoidal method, but Left and Right methods can optionally be used.

## Configuration

To enable Integration Sensor in your installation, add the following to your `configuration.yaml`

file:

```
# Example configuration.yaml entry
sensor:
- platform: integration
source: sensor.current_power
```

### Configuration Variables

Round the calculated integration value to at most N decimal places.

Metric unit to prefix the integration result. Available units are `k`

, `M`

, `G`

and `T`

.

SI unit of time to integrate over. Available units are `s`

, `min`

, `h`

and `d`

.

In case you have an appliance which produces spikey consumption (like an on/off electrical boiler) you should opt for the `left`

method to get accurate readings.

The unit of `source`

together with `unit_prefix`

and `unit_time`

is used to generate a unit for the integral product (e.g. a source in `W`

with prefix `k`

and time `h`

would result in `kWh`

). You can override this behavior by providing a custom value for `unit`

. Note that `unit_prefix`

and `unit_time`

are *also* relevant to the Riemann sum calculation. Even if you provide a custom value for `unit`

, ensure prefix and time accurately reflect the properties of your source data.

## Energy

An `integration`

sensor is quite useful in energy billing scenarios since energy is generally billed in kWh and many sensors provide power in W (Watts).

If you have a sensor that provides you with power readings in Watts (uses W as `unit_of_measurement`

), then you can use the `integration`

sensor to track how much energy is being spent. Take the next configuration as an example:

```
sensor:
- platform: integration
source: sensor.current_power
name: energy_spent
unit_prefix: k
round: 2
```

This configuration will provide you with `sensor.energy_spent`

who will have your energy in kWh.