Integral
This integrations 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 are updated upon changes of the source. Fast sampling source sensors provide more accurate results. In this implementation, the default is the Trapezoidal method, but Left and Right methods can optionally be used.
Configuration
To add the Integral integration to your Home Assistant instance, use this My button:
If the above My button doesnâ€™t work, you can also perform the following steps manually:

Browse to your Home Assistant instance.

At the top of the screen, select the tab: Helpers.

In the bottom right corner, select the Create helper button.

From the list, select Integral.

Follow the instructions on screen to complete the setup.
YAML configuration
Alternatively, this integration can be configured and set up manually via YAML
as well. To enable the Integration sensor in your installation, add the
following to your configuration.yaml
The configuration.yaml file is the main configuration file for Home Assistant. It lists the integrations to be loaded and their specific configurations. In some cases, the configuration needs to be edited manually directly in the configuration.yaml file. Most integrations can be configured in the UI.[Learn more] file:
# Example configuration.yaml entry
sensor:
 platform: integration
source: sensor.current_power
Configuration Variables
An ID that uniquely identifies the integration sensor. Set this to a unique value to allow customization through the UI.
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 expect that your source sensor will provide several subsequent values that are equal, 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
). Note that unit_prefix
and unit_time
are also relevant to the Riemann sum calculation.
Integration method
Riemann Sum is a approximation of an integral by a finite sum and is therefore intrinsically inaccurate, nonetheless, depending on the method used, values can be more or less accurate.
Regardless of the method used the integration will be more accurate if the source updates more often. If your source is not updated, neither will the Riemann Sum sensor, as all this integration does is calculate the next step in the event of a source update.
Trapezoidal
The trapezoidal
method follows the Trapezoidal rule. This method is the most accurate of the currently implemented methods, if the source updates often, since it better fits the curve of the intrinsic source.
Left
The left
method follows the Left rule. The method underestimates the intrinsic source, but is extremely accurate at estimating rectangular functions which are very stable for long periods of time and change very rapidly (e.g. such as the power function of a resistive load can jump instantly to a given value and stay at the same value for hours). If your source keeps its state for long periods of time, this method is preferable to the trapezoidal
.
Right
The right
method follows the Right rule. The method is similar to the left method, but overestimates the intrinsic source. Again it is only appropriate to be used with rectangular functions.
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
, device_class
of power
), then you can use the integration
sensor to track how much energy is being spent. Take the next manual YAML 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
which will have your energy in kWh, as a device_class
of energy
.