trend platform allows you to create sensors which show the trend of
state_attributes from other entities. This sensor requires
at least two updates of the underlying sensor to establish a trend.
Thus it can take some time to show an accurate state. It can be useful
as part of automations, where you want to base an action on a trend.
To enable Trend binary sensors in your installation,
add the following to your
# Example configuration.yaml entry binary_sensor: - platform: trend sensors: cpu_speed: entity_id: sensor.cpu_speed
List of your sensors.
The attribute of the entity that this sensor tracks. If no attribute is specified then the sensor will track the state.
Sets the class of the device, changing the device state and icon that is displayed on the frontend.
Invert the result. A
true value would mean descending rather than ascending.
The minimum rate at which the observed value must be changing for this sensor to switch on. The gradient is measured in sensor units per second.
Using Multiple Samples
If the optional
max_samples parameters are specified
then multiple samples can be stored and used to detect long-term trends.
Each time the state changes, a new sample is stored along with the sample time. Samples older than
sample_duration seconds will be discarded. The
max_samples parameter must be large enough to store sensor updates over the requested duration. If you want to trend over two hours and your sensor updates every 120s then
max_samples must be at least 60, i.e., 7200/120 = 60.
A trend line is then fitted to the available samples, and the gradient of this
line is compared to
min_gradient to determine the state of the trend sensor.
The gradient is measured in sensor units per second - so if you want to know
when the temperature is falling by 2 degrees per hour,
use a gradient of (-2) / (60 x 60) = -0.00055
The current number of stored samples is displayed on the States page.
In this section you find some real-life examples of how to use this sensor.
This example indicates
true if the sun is still rising:
binary_sensor: - platform: trend sensors: sun_rising: entity_id: sun.sun attribute: elevation
This example creates two sensors to indicate whether the temperature is rising or falling at a rate of at least 3 degrees an hour, and collects samples over a two hour period:
binary_sensor: - platform: trend sensors: temp_falling: entity_id: sensor.outside_temperature sample_duration: 7200 max_samples: 120 min_gradient: -0.0008 device_class: cold temp_rising: entity_id: sensor.outside_temperature sample_duration: 7200 max_samples: 120 min_gradient: 0.0008 device_class: heat