--- title: Trend description: Instructions on how to integrate Trend binary sensors into Home Assistant. ha_category: - Binary Sensor - Utility ha_release: 0.28 ha_iot_class: Local Push ha_quality_scale: internal ha_domain: trend ha_platforms: - binary_sensor ha_integration_type: integration --- The `trend` platform allows you to create sensors which show the trend of numeric `state` or`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. ## Configuration To enable Trend binary sensors in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry binary_sensor: - platform: trend sensors: cpu_speed: entity_id: sensor.cpu_speed ``` {% configuration %} sensors: description: List of your sensors. required: true type: map keys: entity_id: description: The entity that this sensor tracks. required: true type: string attribute: description: > The attribute of the entity that this sensor tracks. If no attribute is specified then the sensor will track the state. required: false type: string device_class: description: Sets the [class of the device](/integrations/binary_sensor/), changing the device state and icon that is displayed on the frontend. required: false type: string friendly_name: description: Name to use in the Frontend. required: false type: string invert: description: > Invert the result. A `true` value would mean descending rather than ascending. required: false type: boolean default: false max_samples: description: Limit the maximum number of stored samples. required: false type: integer default: 2 min_gradient: description: > 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. required: false type: string default: 0.0 sample_duration: description: > The duration **in seconds** to store samples for. Samples older than this value will be discarded. required: false type: integer default: 0 {% endconfiguration %} ## 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. 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. ## 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: ```yaml 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: ```yaml 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 ```