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
+103 -107
View File
@@ -35,114 +35,110 @@ input_select:
- 50 - 50
- 60 - 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: template:
- platform: template - sensor:
sensors: - default_entity_id: sensor.purifier_air_quality
purifier_out_of_water: name: Air quality
friendly_name: Water level state: "{{ state_attr('fan.philips_airpurifier', 'pm25') }}"
device_class: problem icon: mdi:weather-windy
value_template: "{{ state_attr('fan.philips_airpurifier', 'water_level') == 0 }}" - default_entity_id: sensor.purifier_humidity
purifier_child_lock: name: Humidity
friendly_name: Child lock unit_of_measurement: "%"
value_template: "{{ state_attr('fan.philips_airpurifier', 'child_lock') }}" device_class: humidity
purifier_display_light: state: "{{ state_attr('fan.philips_airpurifier', 'humidity') }}"
friendly_name: Display light icon: mdi:water
value_template: "{{ state_attr('fan.philips_airpurifier', 'display_light') }}" - default_entity_id: sensor.purifier_temperature
purifier_filter_needs_change: name: Temperature
friendly_name: Filter needs change unit_of_measurement: "°C"
device_class: problem device_class: temperature
value_template: > state: "{{ state_attr('fan.philips_airpurifier', 'temperature') }}"
icon: mdi:thermometer
{{ is_state('sensor.purifier_pre_filter', '0') - default_entity_id: sensor.purifier_preset_mode
or is_state('sensor.purifier_wick_filter', '0') name: Preset Mode
or is_state('sensor.purifier_carbon_filter', '0') state: "{{ state_attr('fan.philips_airpurifier', 'preset_mode') }}"
or is_state('sensor.purifier_hepa_filter', '0') }} 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: script:
+12 -16
View File
@@ -1,19 +1,15 @@
switch: template:
- platform: template - switch:
switches: - default_entity_id: switch.tapo_bedroom
tapo_bedroom: name: Bedroom Camera
friendly_name: "Bedroom Camera" state: "{{ is_state('switch.bedroom_privacy', 'off') }}"
value_template: "{{ is_state('switch.bedroom_privacy', 'off') }}" turn_on:
turn_on: - action: script.tapo_bedroom_on
service: script.tapo_bedroom_on turn_off:
turn_off: - action: script.tapo_bedroom_off
service: script.tapo_bedroom_off icon: "{%if is_state('switch.bedroom_privacy', 'off') %}\n mdi:video\n{% else
icon_template: > %}\n mdi:video-off\n{% endif %}"
{%if is_state('switch.bedroom_privacy', 'off') %}
mdi:video
{% else %}
mdi:video-off
{% endif %}
script: script:
tapo_bedroom_toggle: tapo_bedroom_toggle:
@@ -14,13 +14,12 @@ input_datetime:
has_date: true has_date: true
has_time: false has_time: false
binary_sensor: template:
- platform: template - binary_sensor:
sensors: - default_entity_id: binary_sensor.brita_should_change_filter
brita_should_change_filter: name: Should change Brita filter
friendly_name: Should change Brita filter
device_class: problem device_class: problem
value_template: >- state: >-
{% set liters_check = states('input_number.brita_remaining_liters')|int < 3 %} {% set liters_check = states('input_number.brita_remaining_liters')|int < 3 %}
@@ -5,14 +5,25 @@ binary_sensor:
scan_interval: 10 scan_interval: 10
count: 2 count: 2
- platform: template template:
sensors: - sensor:
cadmium: - default_entity_id: sensor.cadmium
friendly_name: Cadmium name: Cadmium
value_template: >- state: >-
{{ is_state("binary_sensor.cadmium_ping", "on") }} {{ is_state("binary_sensor.cadmium_ping", "on") }}
icon_template: >- icon: >-
{{ is_state("binary_sensor.cadmium_ping", "on") | iif(' mdi:desktop-mac-dashboard', 'mdi:monitor') }} {{ 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 ────────────────────────────────────────────────────────────── # ─── IOTLink ──────────────────────────────────────────────────────────────
@@ -113,18 +124,6 @@ mqtt:
unit_of_measurement: "GB" 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: script:
cadmium_start: cadmium_start:
@@ -7,15 +7,14 @@
# binary_sensors: # binary_sensors:
# - online # - online
binary_sensor: template:
- platform: template - binary_sensor:
sensors: - default_entity_id: binary_sensor.camera_state
camera_state: name: Security camera
friendly_name: Security camera
device_class: safety device_class: safety
value_template: >- state: >-
{{ is_state('camera.mercury_amcrest_1', 'streaming') or is_state('camera.mercury_amcrest_1', 'recording') }} {{ 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') %} {% if is_state('camera.mercury_amcrest_1', 'streaming') or is_state('camera.mercury_amcrest_1', 'recording') %}
mdi:video mdi:video
{% else %} {% else %}
+13 -16
View File
@@ -12,13 +12,12 @@ input_select:
- day - day
- night - night
binary_sensor: template:
- platform: template - binary_sensor:
sensors: - default_entity_id: binary_sensor.bedroom_mode
bedroom_mode: name: Bedroom mode
friendly_name: Bedroom mode state: "{{ states('input_select.bedroom_mode') }}"
value_template: "{{ states('input_select.bedroom_mode') }}" icon: >-
icon_template: >-
{% if is_state('input_select.bedroom_mode', 'day') %} {% if is_state('input_select.bedroom_mode', 'day') %}
mdi:weather-sunny mdi:weather-sunny
@@ -28,9 +27,9 @@ binary_sensor:
mdi:weather-night mdi:weather-night
{% endif %} {% endif %}
someone_sleeping: - default_entity_id: binary_sensor.someone_sleeping
friendly_name: Someone sleeping name: Someone sleeping
value_template: >- state: >-
{% if is_state('input_boolean.guest_bedroom', 'off') %} {% if is_state('input_boolean.guest_bedroom', 'off') %}
{{ is_state('input_select.bedroom_mode', 'night') }} {{ 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') }} {{ is_state('input_select.bedroom_mode', 'night') or is_state('input_select.guest_bedroom_mode', 'night') }}
{% endif %} {% endif %}
sensor: - sensor:
- platform: template - default_entity_id: sensor.house_mode
sensors: name: House mode
house_mode: state: >-
friendly_name: House mode
value_template: >-
{% if is_state('input_boolean.guest_bedroom', 'off') %} {% if is_state('input_boolean.guest_bedroom', 'off') %}
{% if is_state('input_select.bedroom_mode', 'night') %} {% if is_state('input_select.bedroom_mode', 'night') %}
+5 -6
View File
@@ -13,12 +13,11 @@ group:
- binary_sensor.bedroom_left_window_contact - binary_sensor.bedroom_left_window_contact
- binary_sensor.bedroom_right_window_contact - binary_sensor.bedroom_right_window_contact
sensor: template:
- platform: template - sensor:
sensors: - default_entity_id: sensor.open_window_count
open_window_count: name: Open window count
friendly_name: Open windozw count state: >-
value_template: >-
{% set entityStates = states | selectattr('entity_id', 'in', state_attr('group.all_windows', 'entity_id')) %} {% set entityStates = states | selectattr('entity_id', 'in', state_attr('group.all_windows', 'entity_id')) %}
{{ entityStates | selectattr('state', 'eq', 'on') | list | count | int }} {{ entityStates | selectattr('state', 'eq', 'on') | list | count | int }}
+21 -20
View File
@@ -1,40 +1,41 @@
# Depends on Sonos integration (config flow): https://www.home-assistant.io/integrations/sonos # Depends on Sonos integration (config flow): https://www.home-assistant.io/integrations/sonos
binary_sensor: template:
- platform: template - binary_sensor:
sensors: - default_entity_id: binary_sensor.sonos_recoverable
sonos_recoverable: name: Sonos recoverable
friendly_name: Sonos recoverable device_class: problem
value_template: >- state: >-
{% set content_id = state_attr('media_player.master_bedroom', 'media_content_id') %} {% set content_id = state_attr('media_player.master_bedroom', 'media_content_id') %}
{% if content_id == None {% if content_id == None
or content_id.startswith('x-sonos-spotify:spotify') or content_id.startswith('x-sonos-spotify:spotify')
or content_id.startswith('x-sonosapi-hls-static') %} or content_id.startswith('x-sonosapi-hls-static') %}
True true
{% else %} {% else %}
False false
{% endif %} {% endif %}
sonos_is_bedroom_master: - default_entity_id: binary_sensor.sonos_is_bedroom_master
friendly_name: Sonos is Bedroom master name: Sonos is Bedroom master
value_template: >- state: >-
{% set group = state_attr('media_player.master_bedroom', 'group_members') %} {% set group = state_attr('media_player.master_bedroom', 'group_members') %}
{{ group|length > 1 and group[0] == 'media_player.master_bedroom' }} {{ group|length > 1 and group[0] == 'media_player.master_bedroom' }}
sonos_is_living_room_master: - default_entity_id: binary_sensor.sonos_is_living_room_master
friendly_name: Sonos is Living room master name: Sonos is Living room master
value_template: >- state: >-
{% set group = state_attr('media_player.master_bedroom', 'group_members') %} {% set group = state_attr('media_player.master_bedroom', 'group_members') %}
{{ group|length > 1 and group[0] == 'media_player.living_room' }} {{ group|length > 1 and group[0] == 'media_player.living_room' }}
sonos_is_kitchen_grouped: - default_entity_id: binary_sensor.sonos_is_kitchen_grouped
friendly_name: Sonos Kitchen is grouped name: Sonos Kitchen is grouped
value_template: "{{ state_attr('media_player.kitchen', 'group_members')|length > 1 }}" 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: script:
sonos_join_bedroom: sonos_join_bedroom:
@@ -1,10 +1,9 @@
binary_sensor: template:
- platform: template - binary_sensor:
sensors: - default_entity_id: binary_sensor.milena_preferences_enabled
milena_preferences_enabled: name: Milena Preferences
friendly_name: Milena Preferences state: "{{ is_state('device_tracker.iphone_de_yovcheva', 'home') }}"
value_template: "{{ is_state('device_tracker.iphone_de_yovcheva', 'home') }}" icon: >
icon_template: >
{{ {{
is_state('device_tracker.iphone_de_yovcheva', 'home') is_state('device_tracker.iphone_de_yovcheva', 'home')
| iif('mdi:star-settings', 'mdi:star-settings-outline') | iif('mdi:star-settings', 'mdi:star-settings-outline')
+9 -44
View File
@@ -33,23 +33,21 @@ input_boolean:
name: Player 2 home name: Player 2 home
icon: mdi:account icon: mdi:account
binary_sensor: template:
- platform: template - binary_sensor:
sensors: - default_entity_id: binary_sensor.someone_home
someone_home: name: Someone home
friendly_name: Someone home
device_class: presence 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') }} {{ 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 {% 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 {% else %} mdi:account-off-outline
{% endif %} {% endif %}
- default_entity_id: binary_sensor.multisensor_motion
multisensor_motion: name: MultiSensor motion
friendly_name: MultiSensor motion
device_class: motion device_class: motion
value_template: "{{ is_state('sensor.multisensor_6_burglar', '8') }}" state: "{{ is_state('sensor.multisensor_6_burglar', '8') }}"
automation: automation:
@@ -61,24 +59,6 @@ automation:
name: Georgi name: Georgi
input_boolean: input_boolean.georgi_home 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 - alias: Presence · Georgi leaving
trigger: trigger:
@@ -95,21 +75,6 @@ automation:
title: "🏠 *Presence Module · Leaving Home*" title: "🏠 *Presence Module · Leaving Home*"
message: "I notice Georgi has left. Marking as away." 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 - alias: Presence · Leaving home
trigger: trigger:
- platform: state - platform: state
+11 -16
View File
@@ -3,13 +3,17 @@ input_boolean:
initial: off initial: off
floorplan_show_all: floorplan_show_all:
binary_sensor: template:
- platform: template - binary_sensor:
sensors: - default_entity_id: binary_sensor.floorplan_night_mode
floorplan_night_mode: name: floorplan night mode
value_template: >- state: >-
{{ states('sun.sun') == 'below_horizon' {{ states('sun.sun') == 'below_horizon'
or is_state('input_boolean.floorplan_night_mode', 'on') }} 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: sensor:
- platform: time_date - platform: time_date
@@ -17,15 +21,6 @@ sensor:
- "time" - "time"
- "date" - "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: shell_command:
clear_logs: truncate -s 0 /config/home-assistant.log clear_logs: truncate -s 0 /config/home-assistant.log
+5 -6
View File
@@ -6,12 +6,11 @@ group:
- binary_sensor.bedroom_door_contact - binary_sensor.bedroom_door_contact
- binary_sensor.kitchen_door - binary_sensor.kitchen_door
sensor: template:
- platform: template - sensor:
sensors: - default_entity_id: sensor.open_door_count
open_door_count: name: Open door count
friendly_name: Open door count state: >-
value_template: >-
{% set entityStates = states | selectattr('entity_id', 'in', state_attr('group.all_doors', 'entity_id')) %} {% set entityStates = states | selectattr('entity_id', 'in', state_attr('group.all_doors', 'entity_id')) %}
{{ entityStates | selectattr('state', 'eq', 'on') | list | count | int }} {{ entityStates | selectattr('state', 'eq', 'on') | list | count | int }}