Threshold


The threshold integration observes the state of another sensor. If the value is below or higher than the given threshold, then the state of the threshold sensor is changed. It also supports a range if both the upper and lower limits are given.

If the sensor is configured with no hysteresis and the sensor value is equal to the threshold, the sensor is turned off since it is not upper or lower with respect to the threshold.

Configuration

Adding Threshold to your Home Assistant instance can be done via the user interface, by using this My button:

Manual configuration steps
Name

The name the sensor should have. You can change it again later.

Input sensor

The entity providing numeric readings to apply the threshold on.

Hysteresis

The distance the observed value must be from the threshold before the state is changed.

Lower limit

The lower threshold which the observed value is compared against.

Upper limit

The upper threshold which the observed value is compared against.

YAML Configuration

Alternatively, this integration can be configured and set up manually via YAML instead. To enable the Integration sensor in your installation, add the following to your configuration.yaml file:

# Example configuration.yaml entry
binary_sensor:
  - platform: threshold
    entity_id: sensor.random
    lower: 20

Configuration Variables

entity_id string Required

The entity to monitor. Only sensors are supported.

device_class string (Optional)

Sets the class of the device, changing the device state and icon that is displayed on the frontend.

lower float (Optional)

The lower threshold which the observed value is compared against.

upper float (Optional)

The upper threshold which the observed value is compared against.

hysteresis float (Optional, default: 0.0)

The distance the observed value must be from the threshold before the state is changed.

name string (Optional, default: Threshold)

Name of the sensor to use in the frontend.

Examples

Is the temperature rising or falling

The hysteresis parameter can be used in this use-case to avoid frequent state changes around the maximum or the minimum of a temperature curve. We also have to utilize the derivative sensor for this use-case:

sensor:  
  - platform: derivative # will be positive for rising temperatures and negative for falling temperatures
    source: sensor.temperature
    unit_time: min
    name: temperature derivative
    time_window: 00:05:00
binary_sensor:
  - platform: threshold # will switch state not at 0°C/min but 0.1°C/min or -0.1°C/min depending on the current state of the sensor, respectively
    entity_id: sensor.temperature_derivative
    upper: 0
    hysteresis: 0.1 # sensor 
    name: temperature rising