From edc91fdce43cebace7e4bd6f1e2fc37329b0b3f5 Mon Sep 17 00:00:00 2001 From: GeorgeSG Date: Sun, 25 Jan 2026 13:13:53 +0200 Subject: [PATCH] Update template sensors to new syntax --- config/packages/devices/bedroom/purifier.yaml | 210 +++++++++--------- config/packages/devices/bedroom/tapo.yaml | 28 +-- .../devices/kitchen/brita_filter.yaml | 11 +- .../packages/devices/living_room/cadmium.yaml | 35 ++- .../packages/devices/living_room/camera.yaml | 13 +- config/packages/modes/house_mode.yaml | 29 ++- config/packages/modules/climate/windows.yaml | 11 +- config/packages/modules/media/sonos.yaml | 41 ++-- .../preferences/preferences_milena.yaml | 13 +- config/packages/modules/presence.yaml | 53 +---- config/packages/modules/system.yaml | 27 +-- config/packages/sensors/doors.yaml | 11 +- 12 files changed, 213 insertions(+), 269 deletions(-) diff --git a/config/packages/devices/bedroom/purifier.yaml b/config/packages/devices/bedroom/purifier.yaml index 08a83d1..5922bf7 100644 --- a/config/packages/devices/bedroom/purifier.yaml +++ b/config/packages/devices/bedroom/purifier.yaml @@ -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: diff --git a/config/packages/devices/bedroom/tapo.yaml b/config/packages/devices/bedroom/tapo.yaml index 9571b48..5e29118 100644 --- a/config/packages/devices/bedroom/tapo.yaml +++ b/config/packages/devices/bedroom/tapo.yaml @@ -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: diff --git a/config/packages/devices/kitchen/brita_filter.yaml b/config/packages/devices/kitchen/brita_filter.yaml index 1a978e6..061a522 100644 --- a/config/packages/devices/kitchen/brita_filter.yaml +++ b/config/packages/devices/kitchen/brita_filter.yaml @@ -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 %} diff --git a/config/packages/devices/living_room/cadmium.yaml b/config/packages/devices/living_room/cadmium.yaml index df583ba..2311d98 100644 --- a/config/packages/devices/living_room/cadmium.yaml +++ b/config/packages/devices/living_room/cadmium.yaml @@ -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: diff --git a/config/packages/devices/living_room/camera.yaml b/config/packages/devices/living_room/camera.yaml index c93f18e..45b3716 100644 --- a/config/packages/devices/living_room/camera.yaml +++ b/config/packages/devices/living_room/camera.yaml @@ -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 %} diff --git a/config/packages/modes/house_mode.yaml b/config/packages/modes/house_mode.yaml index 0c897d8..6b75f6b 100644 --- a/config/packages/modes/house_mode.yaml +++ b/config/packages/modes/house_mode.yaml @@ -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') %} diff --git a/config/packages/modules/climate/windows.yaml b/config/packages/modules/climate/windows.yaml index b23d310..157cc1c 100644 --- a/config/packages/modules/climate/windows.yaml +++ b/config/packages/modules/climate/windows.yaml @@ -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 }} diff --git a/config/packages/modules/media/sonos.yaml b/config/packages/modules/media/sonos.yaml index 266a143..c5ec051 100644 --- a/config/packages/modules/media/sonos.yaml +++ b/config/packages/modules/media/sonos.yaml @@ -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: diff --git a/config/packages/modules/preferences/preferences_milena.yaml b/config/packages/modules/preferences/preferences_milena.yaml index 904004b..bc154b3 100644 --- a/config/packages/modules/preferences/preferences_milena.yaml +++ b/config/packages/modules/preferences/preferences_milena.yaml @@ -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') diff --git a/config/packages/modules/presence.yaml b/config/packages/modules/presence.yaml index eb1448b..0823f40 100644 --- a/config/packages/modules/presence.yaml +++ b/config/packages/modules/presence.yaml @@ -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 diff --git a/config/packages/modules/system.yaml b/config/packages/modules/system.yaml index 4ce0ed3..4ddb242 100644 --- a/config/packages/modules/system.yaml +++ b/config/packages/modules/system.yaml @@ -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 diff --git a/config/packages/sensors/doors.yaml b/config/packages/sensors/doors.yaml index 84f7e58..548392d 100644 --- a/config/packages/sensors/doors.yaml +++ b/config/packages/sensors/doors.yaml @@ -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 }}