Add delay feature to Threshold sensor (#3168)

* Add delay feature to Threshold sensor

The threshold must be met constantly for on_delay or off_delay amount of time in order to switch to the respective state. Among other things, this allows turning an energy meter in to a "device is running" state, because it can ignore the small periods of time where the energy meter drops to zero.

* Some minor punctuation and rewording a confusing line
This commit is contained in:
Greg Laabs 2017-09-04 16:38:22 -07:00 committed by Pascal Vizeli
parent 6d224fb5ca
commit 3d250af26b

View File

@ -9,7 +9,7 @@ sharing: true
footer: true
logo: home-assistant.png
ha_category: Binary Sensor
ha_iot_class: "Local Polling"
ha_iot_class: "Local Push"
ha_release: 0.34
---
@ -31,6 +31,18 @@ binary_sensor:
threshold: 15
type: lower
entity_id: sensor.random
# If present, sensor will only switch to on if the threshold is met for this amount of time.
on_delay:
hours: 1
minutes: 10
seconds: 5
# Same as above, but for the sensor switching to off.
off_delay:
hours: 1
minutes: 10
seconds: 5
```
Configuration variables:
@ -39,4 +51,25 @@ Configuration variables:
- **threshold** (*Required*): The value which is the threshold.
- **type** (*Required*): `lower` if the value needs to be below the threshold or `upper` if higher.
- **name** (*Optional*): Name of the sensor to use in the frontend. Defaults to `Stats`.
- **on_delay** (*Optional*): The amount of time the threshold must be met before this sensor will switch to on.
- **off_delay** (*Optional*): The amount of time the threshold must be not met before this sensor will switch to off.
## {% linkable_title Examples %}
In this section you find some real life examples of how to use this sensor.
### {% linkable_title Washing Machine Running %}
This example creates a washing machine "load running" sensor by monitoring an energy meter connected to the washer. During the washer's operation, the energy meter will fluctuate wildly, hitting zero frequently even before the load is finished. By utilizing `off_delay`, we can have this sensor only turn off if there has been no washer activity for 5 minutes.
```yaml
# Determine when the washing machine has a load running.
binary_sensor:
- platform: threshold
name: Washing Machine
threshold: 0
type: upper
entity_id: sensor.washing_machine_power
off_delay:
minutes: 5
```