Trend Binary Sensor


The trend platform allows you to create sensors which show the trend of numeric state orstate_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.

Configuration

To enable Trend binary sensors in your installation, add the following to your configuration.yaml file:

# Example configuration.yaml entry
binary_sensor:
  - platform: trend
    sensors:
      cpu_speed:
        entity_id: sensor.cpu_speed

Configuration Variables

sensors

(map)(Required)List of your sensors.

entity_id

(string)(Required)The entity that this sensor tracks.

attribute

(string)(Optional)The attribute of the entity that this sensor tracks. If no attribute is specified then the sensor will track the state.

device_class

(string)(Optional)The type/class of the sensor to set the icon in the frontend.

friendly_name

(string)(Optional)Name to use in the Frontend.

invert

(boolean)(Optional)Invert the result. A true value would mean descending rather than ascending.

Default value: false

max_samples

(integer)(Optional)Limit the maximum number of stored samples.

Default value: 2

min_gradient

(string)(Optional)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.

Default value: 0.0

sample_duration

(integer)(Optional)The duration in seconds to store samples for. Samples older than this value will be discarded.

Default value: 0

Using Multiple Samples

If the optional sample_duration and 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.

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.

Examples

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
        min_gradient: -0.0008
        device_class: cold

      temp_rising:
        entity_id: sensor.outside_temperature
        sample_duration: 7200
        min_gradient: 0.0008
        device_class: heat