Template Binary Sensor


The template platform supports sensors which breaks out the state and state_attributes from other entities.

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'

Configuration variables:

  • sensors array (Required): List of your sensors.
    • friendly_name (Optional): Name to use in the Frontend.
    • sensor_class (Optional): The type/class of the sensor to set the icon in the frontend.
    • value_template (Optional): Defines a template to extract a value from the payload.
    • entity_id (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 it’s state.

Examples

In this section you find some real life examples of how to use this sensor.

Sensor 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
        sensor_class: heat

Switch as sensor

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' }}"
        sensor_class: motion
      door:
        value_template: "{{ states.switch.door.state == 'on' }}" 
        sensor_class: opening

Combining multiple sensors, and using entity_id:

This example combines multiple CO sensors into a single overall status. It also shows how to use entity_id

binary_sensor: 
  - platform: template 
    sensors:
      co:
        friendly_name: 'CO'
        sensor_class: 'gas'
        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") -%}
          Off
          {%- else -%}
          On
          {%- endif %}
        entity_id:
          - sensor.bedroom_co_status
          - sensor.kitchen_co_status
          - sensor.wardrobe_co_status