FAQ - Template Sensors?
Below are some template sensors. This is done in the modern configuration way that Home Assistant would prefer. You still can use the Legacy way but HA no longer recommended it. Template have also been added to helpers and a lot of these can now be added that way. See below for more information on Template Helpers. Trigger templates still need to be added to the configuration.yaml file.
If you choose to add your template sensor to your configuration.yaml file for it to take effect you have 2 options.
- Go into Developer Tools > YAML and click Template Entities.
- Restart Home Assistant.
Every time you change the code, you will need to do one of the 2 options above for the changes to take effect unless you decided to use a template helper.
Even though the heading may reflect a particular type of sensor, the format can be changed to suit your needs.
I have put them under heading Trigger Sensor, but a lot of the same sensors can also be used as a by-pass switch.
If you are adding multiple sensors to your configuration.yaml file you will only need to put the heading template: once at the top followed will all your sensors below this heading. Example;
template:
# Define state-based template entities
- sensor:
...
- binary_sensor:
...
# Define trigger-based template entities
- trigger:
...
sensor:
...
binary_sensor:
...
Using a Template Helper in Home Assistant
To create a Template Helper:
- Navigate to Settings > Devices & Services > Helpers (tab at the top).
- Click Create Helper and select either Template - Binary Sensor or Sensor, depending on your needs.
- In the âState templateâ field, add the state code from the examples provided (e.g., REF - TS-9).
- Submit your changes. You donât need to restart Home Assistant or reload the template; changes are applied automatically when you click submit.
If you have questions or need assistance with templates, the community is a great resource. Feel free to post a new topic in the forum for help.
Icons In Templates
For all the icons you can choose from Click Here
TEMPLATE SENSORS EXAMPLES BELOW
TRIGGER SENSORS
REF - TS-1
Bee In The Hive Sensor (âThis is a realy nice sensor I loveâ )
The below code is if you would like to add a occupancy âBee In The Hiveâ sensor for your bathroom, toilet, , room, etc. In order for this sensor to work you will need a door sensor (contact sensor) to the room with a motion sensor in the room. Once you create this sensor you will need to set up a group sensors Click Here and add this sensor with your motion sensor into the group. Then use the group as the trigger in the blueprint.
The delay of 10 seconds in the code is if you close the door and your motion sensor is ON. It allows the required time (you can adjust this) so the motion sensor can clear when no one is in the room before this sensor can turn ON. If your motion sensor takes 1 minute to clear then you would put in around 70 seconds. You will have to test it and figure out what works best in your site. To do this just trigger the motion sensor and close the door and stand outside of the room. The light should go OFF after your set delay time in the blueprint. You could also just add your sensors to a dashboard to see what is happening as shown below.
In this example below we will show a Queen Bee entering a bathroom and having a bath.
The idea of this sensor is; once the door is closed we would like to know if anyone (Queen Bee ) is in the room. Below are the different scenarios;
- When the door is closed and the motion sensor get triggered it knows the Queen Bee is in the hive (room) and she canât get out until the door is opened.
- When the door is closed and the motion sensor is already ON, and the 10 second delay passes with the motion sensor is still ON, then we know the Queen Bee is in the hive (room) and she canât get out until the door is opened.
- When the door is closed and the Queen Bee is not in the hive (room) the motion sensor should clear within the 10 second delay, and this sensor will not turn ON and your lights will turn OFF as per normal.
If the Queen Bee is in the room with scenarios 1 or 2, then this sensor will stay ON forever until the door is opened when it will then turn OFF immediately.
The reason for this sensor is; The Queen Bee could be taking a long bath, and no matter how still this Queen Bee bathes while reading her book, thus not triggering the motion sensor, the light will still stay ON. This is also useful when the queen bee has a shower and the motion sensor canât detect her when she is in the shower. Then when she is finished, she opens the door and this turns the sensor OFF immediately (The Queen Bee has left the hive ). The automation then only works with your motion sensor as per normal.
I thought I would have a bit of fun with the description above. Hope you donât mind.
Why we need to group the sensors; When you walk into the room and trigger the motion sensor the light will come ON as per the normal operation of this blueprint. This sensor just adds an additional function that will keep the lights ON when the normal motion sensor may not. Grouping the sensors will allow the automation to function correctly.
The things you will need to change are;
- binary_sensor.your_door_sensor_here = This is your door contact sensor.
- binary_sensor.your_motion_sensor_here = This is your room motion sensor.
The things you can change to your liking are:
- âBee In The Hiveâ = This is the name you would like to call your new sensor.
- device class âoccupancyâ and icon âmdi:account-box-outlineâ. = Change to your liking
- â10â = This is the time your motion sensor must be able to clear once you close the door if not motion is detected.
template:
- trigger:
- platform: state
entity_id: binary_sensor.your_door_sensor_here
to: "on"
- platform: state
entity_id: binary_sensor.your_door_sensor_here
to: "off"
for:
seconds: 10
- platform: state
entity_id: binary_sensor.your_motion_sensor_here
to: "on"
binary_sensor:
- name: "Bee In The Hive"
device_class: occupancy
icon: mdi:account-box-outline
state: >
{{ is_state('binary_sensor.your_door_sensor_here', 'off') and is_state('binary_sensor.your_motion_sensor_here', 'on') }}
REF - TS-2
CCTV Camera Motion Sensor
The below code is if you would like to add a delay to your cameras motion sensor. This can be handy when bugs are flying around triggering the cameras motion sensor providing false triggers.
The things you will need to change are;
- binary_sensor.your_camera_motion_sensor_here = this is your camera motion sensor
The things you can change to your liking are:
- âCCTV Camera Front Yardâ = This is the name you would like to call your new sensor.
- device class âmotionâ and icon âmdi:cctvâ. = Change to your liking
- â2â = This is the time your motion sensor must be ON before it will report a value.
template:
- binary_sensor:
- name: 'CCTV Camera Front Yard'
device_class: motion
icon: mdi:cctv
state: >
{{ is_state('binary_sensor.your_camera_motion_sensor_here','on')}}
delay_on:
seconds: 2
REF - TS-3
Power Sensor
The below code is if you would like to add a power sensor as the trigger. When it is ON and above 85 watts then your sensor will be ON (Detected). When it is below 85 watts then it will be OFF (clear). This can be useful for when your computer is ON and you would like the lights to stay ON. It can prevent you from waving your arms around to keep the lights ON. This can be used in a group sensors Click Here with your motion sensor. It will make sure the lights stay ON when the computer is ON.
TIP: If your computer go into standby mode, make sure you set the power level between standby power consumption and the power consumption when it is running. Then when you forget to turn the computer OFF and your computer goes into standby mode, your lights will still turn OFF.
The things you will need to change are;
- sensor.your_computer_power_sensor_here = this is your sensor that monitors the power
The things you can change to your liking are:
- âWork Computer Powerâ = This is the name you would like to call your new sensor.
- device class âpowerâ and icon âmdi:laptopâ. = Change to your liking
- â85â = This is the power in watts that it must be above for the sensor to be ON (Detected).
template:
- binary_sensor:
- name: "Work Computer Power"
device_class: power
icon: mdi:laptop
state: >
{% if states('sensor.your_computer_power_sensor_here')|float > 85 %}
on
{% else %}
off
{% endif %}
REF - TS-4
ON Sensor
The below code is if you would like to add a sensor for your TV when it is ON. It can be anything you like with an ON / OFF state. In this example it is handy to keep the lights ON when the TV is ON. This can be used in a group sensors Click Here with your motion sensor to make it more reliable so you donât need to wave your hands around when sitting still watching TV. It can also create a switch, light, etc (different domain) into a binary sensor so it can be added as a trigger into the automation.
The things you will need to change are;
- switch.your_tv_sensor_here = this is your ON (TV) sensor.
The things you can change to your liking are:
- âFamily Room TVâ = This is the name you would like to call your new sensor.
- device class ârunningâ and icon âmdi:televisionâ. = Change to your liking
template:
- binary_sensor:
- name: "Family Room TV"
device_class: running
icon: mdi:television
state: >
{{ is_state('switch.your_tv_sensor_here', 'on') }}
REF - TS-5
Garage Door Sensor
The below code is if you would like to add a sensor for when you open the garage door.
TIP: Sometimes you can use the button or the remote receiver that has a quick ON / OFF state. This can be useful as every time you open and or close the garage door the light will turn ON for as long as you set the delay time, to then turn OFF the lights. It is best when you also have a motion sensor in the garage and then use a group sensors Click Here. You will then add the group sensor into the trigger in the automation.
The things you will need to change are;
- switch.your_garage_door_sensor_here = this is your push button and or remote receiver sensor.
The things you can change to your liking are:
- âGarage Door Lightsâ = This is the name you would like to call your new sensor.
- device class âgarage_doorâ and icon âgarage-open-variantâ. = Change to your liking
template:
- binary_sensor:
- name: "Garage Door Lights"
device_class: garage_door
icon: mdi:garage-open-variant
state: >
{{ is_state('switch.your_garage_door_sensor_here', 'on') }}
REF - TS-6
Garage Door Sensor - Auto OFF
The below code is if you would like to add a sensor for when you open the garage door and if the door says open it will automaticity turn OFF after X amount of time (5 minute shown below). This way when you open the garage door your light will turn ON for X amount of time (5 minute shown below) and then turn OFF.
Note: If the door is opened the sensor will go ON. If the door closes the sensor will stay ON until the time has passed.
TIP: When grouped with a motion sensor if your door is opened then garage lights will be ON for X amount of time and then turn OFF if no motion is detected. If your door is open and the lights are OFF then motion will be the trigger to turn the light ON. If the door is closed then motion is the trigger. It is a realy nice way to set up your garage lights.
The things you will need to change are;
- input_boolean.your_garage_door_sensor = this is your garage door sensor.
The things you can change to your liking are:
- âGarage Door Auto Offâ = This is the name you would like to call your new sensor.
- â5â = This is the minutes the sensor will be ON for when your garage door sensor changes to an ON state.
- device class âgarage_doorâ and icon âgarage-open-variantâ. = Change to your liking
template:
- trigger:
- platform: state
entity_id: input_boolean.your_garage_door_sensor
to: "on"
binary_sensor:
- name: "Garage Door Auto Off"
device_class: garage_door
icon: mdi:garage-open-variant
auto_off:
minutes: 5
state: "true"
REF - TS-7
Inverted Sensor
The below code is if you would like to add a sensor that is inverted. If your actual motion sensor is ON this sensor will be OFF. If your actual motion sensor is OFF this sensor will be ON. We have used a motion sensor in this example but it can be any type of entity that you would like to invert the state of.
The things you will need to change are;
- binary_sensor.your_inverted_sensor_here = this is your contact motion sensor.
The things you can change to your liking are:
- âInverted Sensorâ = This is the name you would like to call your new sensor.
- device class âmotionâ and icon âmdi:motion-sensorâ. = Change to your liking
template:
- binary_sensor:
- name: "Inverted Sensor"
device_class: motion
icon: mdi:motion-sensor
state: >
{{ is_state('binary_sensor.your_inverted_sensor_here', 'off') }}
REF - TS-8
By-pass Person Sensor
The below code is if you would like to add a by-pass to disable your automation when someone is in the zone. This can be used if you would like security lighting to only come ON when no one is in the zone.
The things you will need to change are;
- device_tracker.your_phone_here = this is your phone you are tracking.
The things you can change to your liking are:
- âBy-pass When We Are Homerâ = This is the name you would like to call your new sensor.
- device class âpresenceâ and icon âmdi:homeâ. = Change to your liking
# to track one phone then see below.
template:
- binary_sensor:
- name: "By-pass When We Are Home"
device_class: presence
icon: mdi:home
state: >
{{ is_state('device_tracker.your_phone_here', 'home') }}
# If you would like to have more than one phone to track then see below.
template:
- binary_sensor:
- name: "By-pass When We Are Home"
device_class: presence
icon: mdi:home
state: >
{{ (is_state('device_tracker.your_phone_here', 'home')) or (is_state('device_tracker.your_phone_here', 'home')) }}
REF - TS-9
TV Power Sensor with some Safeguards
The below code is if you would like to add an additional TV trigger with your motion sensor to your automation so the lights will stay ON even when you are sitting still watching TV and your TV is ON. This is if you donât have a TV status in HA. You will need to have a smart plug that measures watts (power). We are also going to add some safeguards in so if you restart HA or just if the smart plug becomes unavailable or unknown for a short time the light will stay ON if the light is already ON. Once you created this template binary sensor you will need to group it with your motion sensor.
We are going to show a different way this time to the above templates. You can adopt this method with any of the templates shown here as long as the template is not a trigger template.
Go to Settings / Devices & Services / Helpers Tab at the top / Create Helper / Template / Binary Sensor / Enter in the name you would like to call it and set the device class to power (You can chose anything you like here) and in âState Templateâ paste the code below replacing the two inputs with your entity IDâs
- sensor.smart_plug_current_consumption = Your smart plug
- light.Your_light_or_switch_here = Light or switch used in âLights - Switches - Scenes - Scriptsâ.
{% if states('sensor.smart_plug_current_consumption')|float(0) > 50 %}
on
{% elif is_state('sensor.smart_plug_current_consumption', 'unavailable') and
(is_state('light.Your_light_or_switch_here', 'on')) %}
on
{% elif is_state('sensor.smart_plug_current_consumption', 'unknown') and
(is_state('light.Your_light_or_switch_here', 'on')) %}
on
{% else %}
off
{% endif %}
AMBIENT LIGHT SENSORS
REF - ALS-1
LUX / Illuminance Sensor
This sensor is when your sensor reacts to fast and as a result it turns the lights ON and OFF too fast. This can happen when you have cloudy days and you using the ambient (LUX) sensor for day time. By slowing down the reporting time we can get a better reading so the automation works better. If you can adjust your sensors reporting time then it is best to do it there rather than creating this sensor.
What this sensor does;
- The LUX value is set it to 10. If you would like 20 then you would set it to 20. This will be the same reading that is in your automation.
- When your lux sensor drops below 10 it has to stay below 10 for 1 minute before it will report a value. The value will never be the accurate reading but we are just interested if it is below 10.
- When your lux sensor rises above 10 it has to stay above 10 for 1 minute before it will report a value. The value will never be the accurate reading but we are just interested if it is above 10.
- If the sensor becomes âunavailableâ, âunknownâ or ânoneâ the sensor will report â0.0 lxâ. This is a safe guard so by default the light will come on.
The things you will need to change are;
- sensor.your_sensor_here = this is your lux sensor
The things you can change to your liking are:
- â10â = this is the LUX value you would like to set.
- â1â = This is the time your sensor must be below or above before it will report a value.
- âIlluminance Sensorâ = This is the name you would like to call your new sensor.
template:
- trigger:
- platform: numeric_state
entity_id: sensor.your_sensor_here
below: '10'
for:
minutes: 1
- platform: numeric_state
entity_id: sensor.your_sensor_here
above: '10'
for:
minutes: 1
- platform: state
entity_id: sensor.your_sensor_here
to:
- 'unavailable'
- 'unknown'
- 'none'
for:
minutes: 1
sensor:
name: "Illuminance Sensor"
device_class: illuminance
unit_of_measurement: lx
state: "{{ states('sensor.your_sensor_here') | float(0.0) }}"
REF - ALS-2
LUX / Illuminance Sensor With A Default Value
This sensor is when your sensor keeps going âunavailableâ, âunknownâ or ânoneâ and stops the automation from running. It will report a default LUX value of â0.0 lxâ. Example below of sensor.
The things you will need to change are;
- sensor.your_sensor_here = this is your lux sensor
The things you can change to your liking are:
- âLux Sensor With A Default Valueâ = This is the name you would like to call your new sensor.
- unit_of_measurement âlxâ, device class âilluminanceâ and icon âmdi:brightness-5â. = Change to your liking
template:
- sensor:
- name: "Lux Sensor With A Default Value"
device_class: illuminance
icon: mdi:brightness-5
unit_of_measurement: lx
state: "{{ states('sensor.your_sensor_here')|float(0.0) }}"
CONCLUSION
More information on template sensors can be found on the official Home Assistant website Click Here
I hope this gives you a better understanding on how we can use template sensors in our blueprints.
If I havenât got the template sensor for you? then please let us know and I will add it.
Enjoy
Blacky
Back to FAQ: Click Here
Back to âThe Settings & Best Practice Guidelinesâ Click Here