diff --git a/atom.xml b/atom.xml index 6f601081a5..86ad78a69a 100644 --- a/atom.xml +++ b/atom.xml @@ -4,7 +4,7 @@
The template
platform supports sensors which breaks out the state
and state_attributes
from other entities. The state of a template binary sensor can only be on
or off
.
To enable template binary sensors in your installation, add the following to your configuration.yaml
file:
The template
platform supports sensors which breaks out the state
and
+state_attributes
from other entities. The state of a Template Binary Sensor
+can only be on
or off
.
To enable Template Binary Sensors in your installation, add the following to
+your configuration.yaml
file:
# Example configuration.yaml entry
binary_sensor:
- platform: template
sensors:
sun_up:
- value_template: '{{ states.sun.sun.attributes.elevation > 0}}'
- friendly_name: 'Sun is up'
+ friendly_name: "Sun is up"
+ value_template: >-
+ {{ states.sun.sun.attributes.elevation|float > 0 }}
Configuration variables:
-(map)(Required)List of your sensors.
+(string)(Optional)Name to use in the frontend.
+(string | list)(Optional)Add a list of entity IDs so the sensor only reacts to state changes of these entities. This will reduce the number of times the sensor will try to update its state.
+(device_class)(Optional)The type/class of the sensor to set the icon in the frontend.
+Default value: None
+(template)(Required)Defines a template to set the state of the sensor.
+(time)(Optional)The amount of time the template state must be met before this sensor will switch to on
.
(time)(Optional)The amount of time the template state must be not met before this sensor will switch to off
.
If you are using the state of a platform that takes extra time to load, the
+Template Binary Sensor may get an unknown
state during startup. This results
+in error messages in your log file until that platform has completed loading.
+If you use is_state()
function in your template, you can avoid this situation.
+For example, you would replace
+{{ states.switch.source.state == 'on' }}
+with this equivalent that returns true
/false
and never gives an unknown
+result:
+{{ is_state('switch.source', 'on') }}
In this section you find some real life examples of how to use this sensor.
-This example indicates true if a sensor is above a given threshold. Assuming a sensor of furnace
that provides a current reading for the fan motor, we can determine if the furnace is running by checking that it is over some threshold:
This example indicates true if a sensor is above a given threshold. Assuming a
+sensor of furnace
that provides a current reading for the fan motor, we can
+determine if the furnace is running by checking that it is over some threshold:
sensor:
- platform: template
sensors:
furnace_on:
- value_template: {{ states.sensor.furnace.state > 2.5 }}
- friendly_name: 'Furnace Running'
+ friendly_name: "Furnace Running"
device_class: heat
+ value_template: "{{ states('sensor.furnace')|float > 2.5 }}"
Some movement sensors and door/window sensors will appear as a switch. By using a template binary sensor, the switch can be displayed as a binary sensors. The original switch can then be hidden by customizing.
+Some movement sensors and door/window sensors will appear as a switch. By using +a Template Binary Sensor, the switch can be displayed as a binary sensors. The +original switch can then be hidden by +customizing.
binary_sensor:
- platform: template
sensors:
movement:
- value_template: "{{ states.switch.movement.state == 'on' }}"
device_class: motion
+ value_template: "{{ is_state('switch.movement', 'on') }}"
door:
- value_template: "{{ states.switch.door.state == 'on' }}"
device_class: opening
+ value_template: "{{ is_state('switch.door', 'on') }}"
entity_id
This example combines multiple CO sensors into a single overall
status. When using templates with binary sensors, you need to return
-True
or False
explicitly. entity_id
is used to limit which
+true
or false
explicitly. entity_id
is used to limit which
sensors are being monitored to update the state, making computing this
sensor far more efficient.
binary_sensor:
- platform: template
sensors:
co:
- friendly_name: 'CO'
- device_class: 'gas'
+ friendly_name: "CO"
+ device_class: gas
+ entity_id:
+ - sensor.bedroom_co_status
+ - sensor.kitchen_co_status
+ - sensor.wardrobe_co_status
value_template: >-
- {%- if is_state("sensor.bedroom_co_status", "Ok")
- and is_state("sensor.kitchen_co_status", "Ok")
- and is_state("sensor.wardrobe_co_status", "Ok") -%}
- False
- {%- else -%}
- True
- {%- endif %}
- entity_id:
- - sensor.bedroom_co_status
- - sensor.kitchen_co_status
- - sensor.wardrobe_co_status
+ {{ is_state('sensor.bedroom_co_status', 'Ok')
+ and is_state('sensor.kitchen_co_status', 'Ok')
+ and is_state('sensor.wardrobe_co_status', 'Ok') }}
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.
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.
# Determine when the washing machine has a load running.
binary_sensor:
- platform: template
- name: Washing Machine
- value_template: '{{ states.sensor.washing_machine_power.state > 0 }}'
- off_delay:
- minutes: 5
+ sensors:
+ washing_machine:
+ friendly_name: "Washing Machine"
+ off_delay:
+ minutes: 5
+ value_template: >-
+ {{ states('sensor.washing_machine_power')|float > 0 }}
This example is determining if anyone is home based on the combination of device tracking and motion sensors. It’s extremely useful if you -have kids/baby sitter/ grand parents who might still be in your +have kids/baby sitter/grand parents who might still be in your house that aren’t represented by a trackable device in home -assistant. This is providing a composite of wifi based device tracking -and z-wave multisensor presence sensors.
+assistant. This is providing a composite of WiFi based device tracking +and Z-Wave multisensor presence sensors.binary_sensor:
- platform: template
sensors:
people_home:
+ entity_id:
+ - device_tracker.sean
+ - device_tracker.susan
+ - binary_sensor.office_124
+ - binary_sensor.hallway_134
+ - binary_sensor.living_room_139
+ - binary_sensor.porch_ms6_1_129
+ - binary_sensor.family_room_144
value_template: >-
- {%- if is_state("device_tracker.sean", "home")
- or is_state("device_tracker.susan", "home")
- or is_state("binary_sensor.office_124", "on")
- or is_state("binary_sensor.hallway_134", "on")
- or is_state("binary_sensor.living_room_139", "on")
- or is_state("binary_sensor.porch_ms6_1_129", "on")
- or is_state("binary_sensor.family_room_144", "on")
- -%}
- True
- {%- else -%}
- False
- {%- endif %}
- entity_id:
- - device_tracker.sean
- - device_tracker.susan
- - binary_sensor.office_124
- - binary_sensor.hallway_134
- - binary_sensor.living_room_139
- - binary_sensor.porch_ms6_1_129
- - binary_sensor.family_room_144
+ {{ is_state('device_tracker.sean', 'home')
+ or is_state('device_tracker.susan', 'home')
+ or is_state('binary_sensor.office_124', 'on')
+ or is_state('binary_sensor.hallway_134', 'on')
+ or is_state('binary_sensor.living_room_139', 'on')
+ or is_state('binary_sensor.porch_ms6_1_129', 'on')
+ or is_state('binary_sensor.family_room_144', 'on') }}
To get your ZigBee binary sensors working with Home Assistant, follow then instructions for the general ZigBee Home Automationcomponent.
+To get your ZigBee binary sensors working with Home Assistant, follow the instructions for the general ZigBee Home Automation component.