Files
fresh-home/components/sensors/template.yaml
T
2025-11-14 16:46:44 -05:00

251 lines
9.2 KiB
YAML

platform: template
sensors:
hvac_filter_next_change:
unique_id: templatesensor.hvac_filter_next_change
friendly_name: "HVAC Filter Next Change"
value_template: "{{ strptime(states('input_datetime.filter_last_changed'), '%Y-%m-%d %H:%M:%S') + timedelta(days=90) }}"
hvac_mode:
unique_id: templatesensor.hvac_mode
value_template: '{{states("climate.thermostat")}}'
friendly_name: HVAC Mode
hvac_equipment_running:
unique_id: templatesensor.hvac_equipment_running
value_template: '{{state_attr("climate.thermostat", "equipment_running")|default("none", true)}}'
friendly_name: HVAC Equipment Running
hvac_action:
unique_id: templatesensor.hvac_action
value_template: '{{state_attr("climate.thermostat", "hvac_action")}}'
friendly_name: HVAC Action
clint_status:
unique_id: templatesensor.clint_status
value_template: '{{ states.input_select.clint_status_dropdown.state }}'
friendly_name: 'Clint'
emmett_status:
unique_id: templatesensor.emmett_status
value_template: '{{ states.input_select.emmett_status_dropdown.state }}'
friendly_name: 'Emmett'
bridget_status:
unique_id: templatesensor.bridget_status
value_template: '{{ states.input_select.bridget_status_dropdown.state }}'
friendly_name: 'Bridget'
kristy_status:
unique_id: templatesensor.kristy_status
value_template: '{{ states.input_select.kristy_status_dropdown.state }}'
friendly_name: 'Kristy'
marshall_status:
unique_id: templatesensor.marshall_status
value_template: '{{ states.input_select.marshall_status_dropdown.state }}'
friendly_name: 'Marshall'
tess_status:
unique_id: templatesensor.tess_status
value_template: '{{ states.input_select.tess_status_dropdown.state }}'
friendly_name: 'Tess'
ebin_status:
unique_id: templatesensor.ebin_status
value_template: '{{ states.input_select.ebin_status_dropdown.state }}'
friendly_name: 'Ebin'
people_count:
unique_id: templatesensor.people_count
friendly_name: 'People Count'
value_template: >
{{[ states.input_boolean.clint_home,
states.input_boolean.emmett_home,
states.input_boolean.bridget_home,
states.input_boolean.kristy_home,
states.input_boolean.marshall_home,
states.input_boolean.tess_home,
states.input_boolean.ebin_home,
states.input_boolean.guest_home ]
| selectattr('state', 'eq', 'on') | list | count}}
count_automations:
unique_id: templatesensor.count_automations
value_template: "{{ states.automation | list | length }}"
count_scripts:
unique_id: templatesensor.count_scripts
value_template: "{{ states.script | list | length }}"
count_device_trackers:
unique_id: templatesensor.count_device_trackers
value_template: "{{ states.device_tracker | list | length }}"
count_binary_sensors:
unique_id: templatesensor.count_binary_sensors
value_template: "{{ states.binary_sensor | list | length }}"
count_sensors:
unique_id: templatesensor.count_sensors
value_template: "{{ states.sensor | list | length }}"
count_switches:
unique_id: templatesensor.count_switches
value_template: "{{ states.switch | list | length }}"
count_zones:
unique_id: templatesensor.count_zones
value_template: "{{ states.zone | list | length }}"
count_input_booleans:
unique_id: templatesensor.count_input_booleans
value_template: "{{ states.input_boolean | list | length }}"
count_input_numbers:
unique_id: templatesensor.count_input_numbers
value_template: "{{ states.input_number | list | length }}"
count_input_texts:
unique_id: templatesensor.count_input_texts
value_template: "{{ states.input_text | list | length }}"
count_input_selects:
unique_id: templatesensor.count_input_selects
value_template: "{{ states.input_select | list | length }}"
count_input_datetimes:
unique_id: templatesensor.count_input_datetimes
value_template: "{{ states.input_datetime | list | length }}"
steam1_game:
unique_id: templatesensor.steam1_game
value_template: >-
{% if state_attr('sensor.steam_76561197960668089', 'game') is not none%}
{{ state_attr('sensor.steam_76561197960668089', 'game') }}
{% else %}
{{ states('sensor.steam_76561197960668089') }}
{% endif %}
nonsummer_per_kwh:
friendly_name: 'Non-Summer Rate'
unique_id: templatesensor.non_summer_per_kwh
value_template: 0.100496
icon_template: mdi:currency-usd
unit_of_measurement: '$/kWh'
summernonpeak_per_kwh:
friendly_name: 'Summer Non-Peak Rate'
unique_id: templatesensor.summer_nonpeak_per_kwh
value_template: 0.100649
icon_template: mdi:currency-usd
unit_of_measurement: '$/kWh'
summerpeak_per_kwh:
friendly_name: 'Summer Peak Rate'
unique_id: templatesensor.summerpeak_per_kwh
value_template: 0.149656
icon_template: mdi:currency-usd
unit_of_measurement: '$/kWh'
energy_cost:
unique_id: templatesensor.energy_cost
friendly_name: 'Energy Cost'
value_template: >-
{% if now().month > 9 or now().month < 6 -%}
0.100496
{%- else -%}
{%- if now().weekday() < 5 and now().hour >= 14 and now().hour <= 19 -%}
0.149656
{%- else -%}
0.100649
{%- endif -%}
{% endif %}
icon_template: mdi:currency-usd
unit_of_measurement: '$/kWh'
energy_tariff:
unique_id: templatesensor.energy_tariff
friendly_name: 'Energy Tariff'
value_template: >-
{% if now().month > 9 or now().month < 6 -%}
Non-Summer
{%- else -%}
{%- if now().weekday() < 5 and now().hour >= 14 and now().hour <= 19 -%}
Summer Peak
{%- else -%}
Summer Non-Peak
{%- endif -%}
{% endif %}
general_waste:
unique_id: templatesensor.general_waste
friendly_name: 'General Waste'
icon_template: mdi:trash-can
value_template: >-
{% if is_state('calendar.trash_schedule','on') %}
today
{% elif state_attr('calendar.trash_schedule','offset_reached') %}
tomorrow
{% else %}
future
{% endif %}
# monitored_daily_kwh:
# unique_id: templatesensor.monitored_daily_kwh
# friendly_name: 'Monitored Daily [kWh]'
# icon_template: mdi:flash
# unit_of_measurement: kWh
# value_template: "{{ states('sensor.basement_and_laundry_lights_and_plugs_kwh')|float(default=0) + }}"
#my_room_status
occupied_room_count:
unique_id: temlatesensor.occupied_room_count
friendly_name: Rooms Occupied
value_template: "{{ (expand('group.my_room_status') | selectattr('state', 'eq', 'on')) | list | count |int(default=0) }}"
icon_template: "{{ iif(is_state('group.my_room_status', 'on'), 'mdi:floor-plan','mdi:floor-plan') }}"
speakers_on_count:
unique_id: temlatesensor.speakers_on_count
friendly_name: Speakers On
value_template: "{{ (expand('group.all_my_speakers') | selectattr('state', 'eq', 'playing')) | list | count |int(default=0) }}"
icon_template: "{{ iif(is_state('group.all_my_speakers', 'on'), 'mdi:speaker-multiple','mdi:speaker-off') }}"
lights_on_count:
unique_id: temlatesensor.lights_on_count
friendly_name: Lights On
value_template: "{{ (expand('group.my_lights') | selectattr('state', 'eq', 'on')) | list | count |int(default=0) }}"
icon_template: "{{ iif(is_state('group.my_lights', 'on'), 'mdi:lightbulb-group','mdi:lightbulb-group-off') }}"
open_windows_count:
unique_id: temlatesensor.open_windows_count
friendly_name: Open Windows
value_template: "{{ (expand('group.my_exterior_windows') | selectattr('state', 'eq', 'on')) | list | count |int(default=0) }}"
icon_template: "{{ iif(is_state('group.my_exterior_windows', 'on'), 'mdi:window-open-variant','mdi:window-closed-variant') }}"
open_external_doors_count:
unique_id: temlatesensor.open_external_doors_count
friendly_name: Open External Doors
value_template: "{{ (expand('group.my_exterior_doors') | selectattr('state', 'eq', 'on')) | list | count |int(default=0) }}"
icon_template: "{{ iif(is_state('group.my_exterior_windows', 'on'), 'mdi:door-open','mdi:door') }}"
frigate_person_count:
unique_id: temlatesensor.frigate_person_count
friendly_name: Frigate Person Count
value_template: "{{
states('sensor.boys_room_person_count')|int(default=0) +
states('sensor.computer_area_person_count')|int(default=0) +
states('sensor.dining_room_person_count')|int(default=0) +
states('sensor.entryway_person_count')|int(default=0) +
states('sensor.front_porch_person_count')|int(default=0) +
states('sensor.front_room_person_count')|int(default=0) +
states('sensor.furnace_room_person_count')|int(default=0) +
states('sensor.great_room_person_count')|int(default=0) +
states('sensor.kitchen_person_count')|int(default=0) +
states('sensor.master_bedroom_person_count')|int(default=0) +
states('sensor.nursery_person_count')|int(default=0) +
states('sensor.utility_room_person_count')|int(default=0) +
states('sensor.walkway_person_count')|int(default=0) +
states('sensor.workshop_person_count')|int(default=0)
}}"
icon_template: mdi:human-queue