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 following code lets you create an occupancy sensor, called Bee In The Hive, for rooms like your bathroom, toilet, or any other space. To set it up, youâll need a contact sensor on the door and a motion sensor in the room. After creating the Bee In The Hive sensor, you will need to set up a sensor group⌠click here for instructions if needed. When creating the group, add both the Bee In The Hive sensor and your Motion sensor (but not the door contact sensor). Finally, use this group as the trigger in your blueprint.
The 10 second delay in the code allows the motion sensor time to clear once no one is in the room and the door is closed. You may need to adjust this delay to match your sensorâs reset time. For example, if your motion sensor takes around 1 minute to clear, set the delay to approximately 70 seconds. You might need to test it a few times to find the optimal setting for your setup. To do this, trigger the motion sensor, close the door, and stand outside the room. The light should turn OFF after the set delay time in the blueprint. Alternatively, you can add your sensors to a dashboard to monitor their status in real time, as shown below.
In this example, weâll show how our Queen Bee enters the bathroom for a relaxing bath. The purpose of this sensor is to determine when someone (the Queen Bee) is in the room once the door is closed. Hereâs how it works in different scenarios:
- The door closes, and the motion sensor is triggered â This indicates that the Queen Bee is in the hive (the room). She wonât be able to exit without opening the door first.
- The door closes while the motion sensor is already ON â If the motion sensor remains ON after a 10-second delay, we know the Queen Bee is in the hive. She will stay there until the door is opened.
- The door closes, but no one is in the hive â If the Queen Bee isnât in the room, the motion sensor should clear within the 10-second delay. In this case, the occupancy sensor will not turn ON, and the lights will turn OFF as usual.
When scenarios 1 or 2 apply and the Queen Bee is in the room, this sensor will stay ON until the door is opened.
The purpose of this sensor is to keep the light ON for as long as the Queen Bee is in the room, no matter how still she sits reading her book in the bath or taking a shower, where the motion sensor might not detect her. When sheâs done, sheâll open the door, and the sensor will turn OFF right away (signaling the Queen Bee has left the hive ). At this point, your automation will function normally, relying on the motion sensor.
I thought Iâd have a bit of fun with the description above. Hope you donât mind!
The reason we need to group the sensors: When you enter the room and trigger the motion sensor, the light will turn ON as usual, based on the blueprint. The added Bee In The Hive occupancy sensor ensures that the light stays ON in situations where the standard motion sensor alone might not. Grouping the Motion sensor with the Bee In The Hive sensor allows the automation to function smoothly, achieving the intended results.
Below is the code for the Bee In The Hive sensor
The items you need to change:
binary_sensor.your_door_sensor_here
- This is your door contact sensor.
binary_sensor.your_motion_sensor_here
- This is your room motion sensor.
Optional customizations:
"Bee In The Hive"
- The name of your new sensor. Feel free to choose any name you like.
- Device class (
"occupancy"
) and icon ("mdi:account-box-outline"
) - Customize to fit your preferences.
"10"
- The time (in seconds) that your motion sensor needs to clear after the door closes if no motion is detected.
template:
- trigger:
- trigger: state
entity_id: binary_sensor.your_door_sensor_here
to: "on"
- trigger: state
entity_id: binary_sensor.your_door_sensor_here
to: "off"
for:
seconds: 10
- trigger: 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:
- trigger: 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:
- trigger: numeric_state
entity_id: sensor.your_sensor_here
below: '10'
for:
minutes: 1
- trigger: 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