Update template sensors to new syntax

This commit is contained in:
GeorgeSG
2026-01-25 13:13:53 +02:00
parent 253f50d378
commit edc91fdce4
12 changed files with 213 additions and 269 deletions

View File

@@ -35,114 +35,110 @@ input_select:
- 50
- 60
sensor:
- platform: template
sensors:
purifier_air_quality:
friendly_name: Air quality
value_template: "{{ state_attr('fan.philips_airpurifier', 'pm25') }}"
icon_template: mdi:weather-windy
purifier_humidity:
friendly_name: Humidity
unit_of_measurement: "%"
device_class: humidity
value_template: "{{ state_attr('fan.philips_airpurifier', 'humidity') }}"
icon_template: mdi:water
purifier_temperature:
friendly_name: Temperature
unit_of_measurement: "°C"
device_class: temperature
value_template: "{{ state_attr('fan.philips_airpurifier', 'temperature') }}"
icon_template: mdi:thermometer
purifier_preset_mode:
friendly_name: Preset Mode
value_template: "{{ state_attr('fan.philips_airpurifier', 'preset_mode') }}"
icon_template: >-
{% set value = state_attr('fan.philips_airpurifier', 'preset_mode') %}
{% if value == 'auto' %}
{{ 'mdi:brightness-auto' }}
{% elif value == 'manual' %}
{{ 'mdi:speedometer-medium' }}
{% elif value == 'sleep' %}
{{ 'mdi:power-sleep' }}
{% elif value == 'allergen' %}
{{ 'mdi:allergy' }}
{% endif %}
purifier_speed:
friendly_name: Speed
value_template: "{{ state_attr('fan.philips_airpurifier', 'percentage') }}"
purifier_allergens:
friendly_name: Allergen index
value_template: "{{ state_attr('fan.philips_airpurifier', 'allergen_index') }}"
icon_template: mdi:weather-windy-variant
purifier_function:
friendly_name: Function
value_template: "{{ state_attr('fan.philips_airpurifier', 'function') }}"
icon_template: >-
{{ is_state_attr('fan.philips_airpurifier', 'function', 'Purification') | iif('mdi:air-purifier', 'mdi:air-humidifier') }}
purifier_pre_filter:
friendly_name: Pre-filter
unit_of_measurement: "Hrs"
value_template: "{{ state_attr('fan.philips_airpurifier', 'pre_filter') }}"
icon_template: mdi:air-filter
purifier_wick_filter:
friendly_name: Wick filter
unit_of_measurement: "Hrs"
value_template: "{{ state_attr('fan.philips_airpurifier', 'wick_filter') }}"
icon_template: mdi:air-filter
purifier_carbon_filter:
friendly_name: Carbon filter
unit_of_measurement: "Hrs"
value_template: "{{ state_attr('fan.philips_airpurifier', 'carbon_filter') }}"
icon_template: mdi:air-filter
purifier_hepa_filter:
friendly_name: HEPA filter
unit_of_measurement: "Hrs"
value_template: "{{ state_attr('fan.philips_airpurifier', 'hepa_filter')}}"
icon_template: mdi:air-filter
purifier_target_humidity:
friendly_name: Target humidity
unit_of_measurement: "%"
value_template: "{{ state_attr('fan.philips_airpurifier', 'target_humidity') }}"
icon_template: mdi:water-percent
purifier_brightness:
friendly_name: Brightness
unit_of_measurement: "%"
value_template: "{{ state_attr('fan.philips_airpurifier', 'light_brightness') }}"
icon_template: mdi:brightness-6
purifier_timer:
friendly_name: Timer
unit_of_measurement: "hrs"
value_template: "{{ state_attr('fan.philips_airpurifier', 'timer') }}"
icon_template: mdi:timer-outline
purifier_time_remaining:
friendly_name: Time remaining
unit_of_measurement: "minutes"
value_template: "{{ state_attr('fan.philips_airpurifier', 'timer_remaining_minutes') }}"
icon_template: mdi:timer-outline
binary_sensor:
- platform: template
sensors:
purifier_out_of_water:
friendly_name: Water level
device_class: problem
value_template: "{{ state_attr('fan.philips_airpurifier', 'water_level') == 0 }}"
purifier_child_lock:
friendly_name: Child lock
value_template: "{{ state_attr('fan.philips_airpurifier', 'child_lock') }}"
purifier_display_light:
friendly_name: Display light
value_template: "{{ state_attr('fan.philips_airpurifier', 'display_light') }}"
purifier_filter_needs_change:
friendly_name: Filter needs change
device_class: problem
value_template: >
{{ is_state('sensor.purifier_pre_filter', '0')
or is_state('sensor.purifier_wick_filter', '0')
or is_state('sensor.purifier_carbon_filter', '0')
or is_state('sensor.purifier_hepa_filter', '0') }}
template:
- sensor:
- default_entity_id: sensor.purifier_air_quality
name: Air quality
state: "{{ state_attr('fan.philips_airpurifier', 'pm25') }}"
icon: mdi:weather-windy
- default_entity_id: sensor.purifier_humidity
name: Humidity
unit_of_measurement: "%"
device_class: humidity
state: "{{ state_attr('fan.philips_airpurifier', 'humidity') }}"
icon: mdi:water
- default_entity_id: sensor.purifier_temperature
name: Temperature
unit_of_measurement: "°C"
device_class: temperature
state: "{{ state_attr('fan.philips_airpurifier', 'temperature') }}"
icon: mdi:thermometer
- default_entity_id: sensor.purifier_preset_mode
name: Preset Mode
state: "{{ state_attr('fan.philips_airpurifier', 'preset_mode') }}"
icon: >-
{% set value = state_attr('fan.philips_airpurifier', 'preset_mode') %}
{% if value == 'auto' %}
{{ 'mdi:brightness-auto' }}
{% elif value == 'manual' %}
{{ 'mdi:speedometer-medium' }}
{% elif value == 'sleep' %}
{{ 'mdi:power-sleep' }}
{% elif value == 'allergen' %}
{{ 'mdi:allergy' }}
{% endif %}
- default_entity_id: sensor.purifier_speed
name: Speed
state: "{{ state_attr('fan.philips_airpurifier', 'percentage') }}"
- default_entity_id: sensor.purifier_allergens
name: Allergen index
state: "{{ state_attr('fan.philips_airpurifier', 'allergen_index') }}"
icon: mdi:weather-windy-variant
- default_entity_id: sensor.purifier_function
name: Function
state: "{{ state_attr('fan.philips_airpurifier', 'function') }}"
icon: >-
{{ is_state_attr('fan.philips_airpurifier', 'function', 'Purification') | iif('mdi:air-purifier', 'mdi:air-humidifier') }}
- default_entity_id: sensor.purifier_pre_filter
name: Pre-filter
unit_of_measurement: "Hrs"
state: "{{ state_attr('fan.philips_airpurifier', 'pre_filter') }}"
icon: mdi:air-filter
- default_entity_id: sensor.purifier_wick_filter
name: Wick filter
unit_of_measurement: "Hrs"
state: "{{ state_attr('fan.philips_airpurifier', 'wick_filter') }}"
icon: mdi:air-filter
- default_entity_id: sensor.purifier_carbon_filter
name: Carbon filter
unit_of_measurement: "Hrs"
state: "{{ state_attr('fan.philips_airpurifier', 'carbon_filter') }}"
icon: mdi:air-filter
- default_entity_id: sensor.purifier_hepa_filter
name: HEPA filter
unit_of_measurement: "Hrs"
state: "{{ state_attr('fan.philips_airpurifier', 'hepa_filter')}}"
icon: mdi:air-filter
- default_entity_id: sensor.purifier_target_humidity
name: Target humidity
unit_of_measurement: "%"
state: "{{ state_attr('fan.philips_airpurifier', 'target_humidity') }}"
icon: mdi:water-percent
- default_entity_id: sensor.purifier_brightness
name: Brightness
unit_of_measurement: "%"
state: "{{ state_attr('fan.philips_airpurifier', 'light_brightness') }}"
icon: mdi:brightness-6
- default_entity_id: sensor.purifier_timer
name: Timer
unit_of_measurement: "hrs"
state: "{{ state_attr('fan.philips_airpurifier', 'timer') }}"
icon: mdi:timer-outline
- default_entity_id: sensor.purifier_time_remaining
name: Time remaining
unit_of_measurement: "minutes"
state: "{{ state_attr('fan.philips_airpurifier', 'timer_remaining_minutes') }}"
icon: mdi:timer-outline
- binary_sensor:
- default_entity_id: binary_sensor.purifier_out_of_water
name: Out of water
device_class: problem
state: "{{ state_attr('fan.philips_airpurifier', 'water_level') == 0 }}"
- default_entity_id: binary_sensor.purifier_child_lock
name: Child lock
state: "{{ state_attr('fan.philips_airpurifier', 'child_lock') }}"
- default_entity_id: binary_sensor.purifier_display_light
name: Display light
state: "{{ state_attr('fan.philips_airpurifier', 'display_light') }}"
- default_entity_id: binary_sensor.purifier_filter_needs_change
name: Filter needs change
device_class: problem
state: >
{{ is_state('sensor.purifier_pre_filter', '0')
or is_state('sensor.purifier_wick_filter', '0')
or is_state('sensor.purifier_carbon_filter', '0')
or is_state('sensor.purifier_hepa_filter', '0') }}
script:

View File

@@ -1,19 +1,15 @@
switch:
- platform: template
switches:
tapo_bedroom:
friendly_name: "Bedroom Camera"
value_template: "{{ is_state('switch.bedroom_privacy', 'off') }}"
turn_on:
service: script.tapo_bedroom_on
turn_off:
service: script.tapo_bedroom_off
icon_template: >
{%if is_state('switch.bedroom_privacy', 'off') %}
mdi:video
{% else %}
mdi:video-off
{% endif %}
template:
- switch:
- default_entity_id: switch.tapo_bedroom
name: Bedroom Camera
state: "{{ is_state('switch.bedroom_privacy', 'off') }}"
turn_on:
- action: script.tapo_bedroom_on
turn_off:
- action: script.tapo_bedroom_off
icon: "{%if is_state('switch.bedroom_privacy', 'off') %}\n mdi:video\n{% else
%}\n mdi:video-off\n{% endif %}"
script:
tapo_bedroom_toggle:

View File

@@ -14,13 +14,12 @@ input_datetime:
has_date: true
has_time: false
binary_sensor:
- platform: template
sensors:
brita_should_change_filter:
friendly_name: Should change Brita filter
template:
- binary_sensor:
- default_entity_id: binary_sensor.brita_should_change_filter
name: Should change Brita filter
device_class: problem
value_template: >-
state: >-
{% set liters_check = states('input_number.brita_remaining_liters')|int < 3 %}

View File

@@ -5,14 +5,25 @@ binary_sensor:
scan_interval: 10
count: 2
- platform: template
sensors:
cadmium:
friendly_name: Cadmium
value_template: >-
template:
- sensor:
- default_entity_id: sensor.cadmium
name: Cadmium
state: >-
{{ is_state("binary_sensor.cadmium_ping", "on") }}
icon_template: >-
icon: >-
{{ is_state("binary_sensor.cadmium_ping", "on") | iif(' mdi:desktop-mac-dashboard', 'mdi:monitor') }}
- switch:
- default_entity_id: switch.cadmium
name: Cadmium
state: '{{ is_state(''binary_sensor.cadmium'', ''on'') }}'
turn_on:
- action: script.cadmium_start
turn_off:
- action: script.cadmium_shutdown
icon: '{{ is_state(''binary_sensor.cadmium'', ''on'') | iif(''mdi:monitor-dashboard'',
''mdi:monitor-off'') }}'
#
# ─── IOTLink ──────────────────────────────────────────────────────────────
@@ -113,18 +124,6 @@ mqtt:
unit_of_measurement: "GB"
switch:
- platform: template
switches:
cadmium:
friendly_name: Cadmium
value_template: "{{ is_state('binary_sensor.cadmium', 'on') }}"
turn_on:
service: script.cadmium_start
turn_off:
service: script.cadmium_shutdown
icon_template: >-
{{ is_state('binary_sensor.cadmium', 'on') | iif('mdi:monitor-dashboard', 'mdi:monitor-off') }}
script:
cadmium_start:

View File

@@ -7,15 +7,14 @@
# binary_sensors:
# - online
binary_sensor:
- platform: template
sensors:
camera_state:
friendly_name: Security camera
template:
- binary_sensor:
- default_entity_id: binary_sensor.camera_state
name: Security camera
device_class: safety
value_template: >-
state: >-
{{ is_state('camera.mercury_amcrest_1', 'streaming') or is_state('camera.mercury_amcrest_1', 'recording') }}
icon_template: >-
icon: >-
{% if is_state('camera.mercury_amcrest_1', 'streaming') or is_state('camera.mercury_amcrest_1', 'recording') %}
mdi:video
{% else %}

View File

@@ -12,13 +12,12 @@ input_select:
- day
- night
binary_sensor:
- platform: template
sensors:
bedroom_mode:
friendly_name: Bedroom mode
value_template: "{{ states('input_select.bedroom_mode') }}"
icon_template: >-
template:
- binary_sensor:
- default_entity_id: binary_sensor.bedroom_mode
name: Bedroom mode
state: "{{ states('input_select.bedroom_mode') }}"
icon: >-
{% if is_state('input_select.bedroom_mode', 'day') %}
mdi:weather-sunny
@@ -28,9 +27,9 @@ binary_sensor:
mdi:weather-night
{% endif %}
someone_sleeping:
friendly_name: Someone sleeping
value_template: >-
- default_entity_id: binary_sensor.someone_sleeping
name: Someone sleeping
state: >-
{% if is_state('input_boolean.guest_bedroom', 'off') %}
{{ is_state('input_select.bedroom_mode', 'night') }}
@@ -38,12 +37,10 @@ binary_sensor:
{{ is_state('input_select.bedroom_mode', 'night') or is_state('input_select.guest_bedroom_mode', 'night') }}
{% endif %}
sensor:
- platform: template
sensors:
house_mode:
friendly_name: House mode
value_template: >-
- sensor:
- default_entity_id: sensor.house_mode
name: House mode
state: >-
{% if is_state('input_boolean.guest_bedroom', 'off') %}
{% if is_state('input_select.bedroom_mode', 'night') %}

View File

@@ -13,12 +13,11 @@ group:
- binary_sensor.bedroom_left_window_contact
- binary_sensor.bedroom_right_window_contact
sensor:
- platform: template
sensors:
open_window_count:
friendly_name: Open windozw count
value_template: >-
template:
- sensor:
- default_entity_id: sensor.open_window_count
name: Open window count
state: >-
{% set entityStates = states | selectattr('entity_id', 'in', state_attr('group.all_windows', 'entity_id')) %}
{{ entityStates | selectattr('state', 'eq', 'on') | list | count | int }}

View File

@@ -1,40 +1,41 @@
# Depends on Sonos integration (config flow): https://www.home-assistant.io/integrations/sonos
binary_sensor:
- platform: template
sensors:
sonos_recoverable:
friendly_name: Sonos recoverable
value_template: >-
template:
- binary_sensor:
- default_entity_id: binary_sensor.sonos_recoverable
name: Sonos recoverable
device_class: problem
state: >-
{% set content_id = state_attr('media_player.master_bedroom', 'media_content_id') %}
{% if content_id == None
or content_id.startswith('x-sonos-spotify:spotify')
or content_id.startswith('x-sonosapi-hls-static') %}
True
true
{% else %}
False
false
{% endif %}
sonos_is_bedroom_master:
friendly_name: Sonos is Bedroom master
value_template: >-
- default_entity_id: binary_sensor.sonos_is_bedroom_master
name: Sonos is Bedroom master
state: >-
{% set group = state_attr('media_player.master_bedroom', 'group_members') %}
{{ group|length > 1 and group[0] == 'media_player.master_bedroom' }}
sonos_is_living_room_master:
friendly_name: Sonos is Living room master
value_template: >-
- default_entity_id: binary_sensor.sonos_is_living_room_master
name: Sonos is Living room master
state: >-
{% set group = state_attr('media_player.master_bedroom', 'group_members') %}
{{ group|length > 1 and group[0] == 'media_player.living_room' }}
sonos_is_kitchen_grouped:
friendly_name: Sonos Kitchen is grouped
value_template: "{{ state_attr('media_player.kitchen', 'group_members')|length > 1 }}"
- default_entity_id: binary_sensor.sonos_is_kitchen_grouped
name: Sonos Kitchen is grouped
state: "{{ state_attr('media_player.kitchen', 'group_members')|length > 1 }}"
- default_entity_id: binary_sensor.sonos_is_bathroom_grouped
name: Sonos Bathroom is grouped
state: "{{ state_attr('media_player.bathroom', 'group_members')|length > 1 }}"
sonos_is_bathroom_grouped:
friendly_name: Sonos Bathroom is grouped
value_template: "{{ state_attr('media_player.bathroom', 'group_members')|length > 1 }}"
script:
sonos_join_bedroom:

View File

@@ -1,10 +1,9 @@
binary_sensor:
- platform: template
sensors:
milena_preferences_enabled:
friendly_name: Milena Preferences
value_template: "{{ is_state('device_tracker.iphone_de_yovcheva', 'home') }}"
icon_template: >
template:
- binary_sensor:
- default_entity_id: binary_sensor.milena_preferences_enabled
name: Milena Preferences
state: "{{ is_state('device_tracker.iphone_de_yovcheva', 'home') }}"
icon: >
{{
is_state('device_tracker.iphone_de_yovcheva', 'home')
| iif('mdi:star-settings', 'mdi:star-settings-outline')

View File

@@ -33,23 +33,21 @@ input_boolean:
name: Player 2 home
icon: mdi:account
binary_sensor:
- platform: template
sensors:
someone_home:
friendly_name: Someone home
template:
- binary_sensor:
- default_entity_id: binary_sensor.someone_home
name: Someone home
device_class: presence
value_template: >
state: >
{{ is_state('input_boolean.guest_mode', 'on') or is_state('input_boolean.georgi_home', 'on') or is_state('input_boolean.player_2_home', 'on') }}
icon_template: >
icon: >
{% if is_state('input_boolean.guest_mode', 'on') or is_state('input_boolean.georgi_home', 'on') or is_state('input_boolean.player_2_home', 'on') %} mdi:account
{% else %} mdi:account-off-outline
{% endif %}
multisensor_motion:
friendly_name: MultiSensor motion
- default_entity_id: binary_sensor.multisensor_motion
name: MultiSensor motion
device_class: motion
value_template: "{{ is_state('sensor.multisensor_6_burglar', '8') }}"
state: "{{ is_state('sensor.multisensor_6_burglar', '8') }}"
automation:
@@ -61,24 +59,6 @@ automation:
name: Georgi
input_boolean: input_boolean.georgi_home
- alias: Presence · Player 2 Arrival detection
use_blueprint:
path: arrival_detection.yaml
input:
person: person.maya
name: Maya
input_boolean: input_boolean.player_2_home
- alias: Presence · Player 2 Arrival best effort
trigger:
- platform: state
entity_id: person.maya
from: "not_home"
to: "home"
for: "00:10:00"
action:
- service: input_boolean.turn_on
entity_id: input_boolean.player_2_home
- alias: Presence · Georgi leaving
trigger:
@@ -95,21 +75,6 @@ automation:
title: "🏠 *Presence Module · Leaving Home*"
message: "I notice Georgi has left. Marking as away."
- alias: Presence · Player 2 leaving
trigger:
- platform: state
entity_id: person.maya
from: "home"
to: "not_home"
for: "00:01:00"
action:
- service: input_boolean.turn_off
entity_id: input_boolean.player_2_home
- service: notify.telegram
data:
title: "🏠 *Presence Module · Leaving Home*"
message: "I notice Maya has left. Marking as away."
- alias: Presence · Leaving home
trigger:
- platform: state

View File

@@ -3,13 +3,17 @@ input_boolean:
initial: off
floorplan_show_all:
binary_sensor:
- platform: template
sensors:
floorplan_night_mode:
value_template: >-
{{ states('sun.sun') == 'below_horizon'
or is_state('input_boolean.floorplan_night_mode', 'on') }}
template:
- binary_sensor:
- default_entity_id: binary_sensor.floorplan_night_mode
name: floorplan night mode
state: >-
{{ states('sun.sun') == 'below_horizon'
or is_state('input_boolean.floorplan_night_mode', 'on') }}
- sensor:
- default_entity_id: sensor.automations_count
name: "Number of automations"
state: "{{ states.automation | count }}"
sensor:
- platform: time_date
@@ -17,15 +21,6 @@ sensor:
- "time"
- "date"
- platform: template
sensors:
sarah_url:
friendly_name: "SARAH's URL"
value_template: !secret sarah_url
automations_count:
friendly_name: "Number of automations"
value_template: "{{ states.automation | count }}"
shell_command:
clear_logs: truncate -s 0 /config/home-assistant.log

View File

@@ -6,12 +6,11 @@ group:
- binary_sensor.bedroom_door_contact
- binary_sensor.kitchen_door
sensor:
- platform: template
sensors:
open_door_count:
friendly_name: Open door count
value_template: >-
template:
- sensor:
- default_entity_id: sensor.open_door_count
name: Open door count
state: >-
{% set entityStates = states | selectattr('entity_id', 'in', state_attr('group.all_doors', 'entity_id')) %}
{{ entityStates | selectattr('state', 'eq', 'on') | list | count | int }}