diff --git a/binary_sensor.yaml b/binary_sensor.yaml index d3798d2..0376538 100644 --- a/binary_sensor.yaml +++ b/binary_sensor.yaml @@ -4,41 +4,49 @@ workdays: [mon, tue, wed, thu, fri] - platform: tod + unique_id: bd5fb9bd-4cd6-4f50-af01-0c59be740757 name: Night after: sunset before: sunrise - platform: tod + unique_id: f6cba6c9-6de9-48c6-9bb0-d3e052f3d3f8 name: Day after: sunrise before: sunset - platform: tod + unique_id: 869b77f3-3ea7-4de6-b201-2aa9e4661075 name: Quiet time after: '21:00' before: '07:00' - platform: tod + unique_id: 0aa45991-5828-4cf6-b6a4-38189517a265 name: Morning after: '06:30' before: '09:00' - platform: tod + unique_id: 251c62a9-8da4-437f-8a4c-92e407d1afde name: Late Morning after: '09:00' before: '12:00' - platform: tod + unique_id: cd0e6ba6-86ee-419c-a926-5f1aa125648a name: Midday after: '09:00' before: '17:00' - platform: tod + unique_id: 51e388e1-3b50-48d7-8f6e-aa6ae7b846e5 name: Evening after: '17:00' before: '21:00' - platform: tod + unique_id: deb55666-14f4-460e-8e74-94c8d7ba5d4a name: Overnight after: '20:00' before: '06:30' diff --git a/packages/climate.yaml b/packages/climate.yaml index c8335b9..b336d08 100644 --- a/packages/climate.yaml +++ b/packages/climate.yaml @@ -3,18 +3,22 @@ sensor: sensors: master_bedroom_current_temp: friendly_name: "Master Bedroom Current Temp" + unique_id: 40c6b591-09d3-45cd-8cab-9838517cc08a value_template: > {{ state_attr('climate.master_bedroom_aircon','current_temperature') | float }} master_bedroom_outdoor_temp: friendly_name: "Master Bedroom Outdoor Temp" + unique_id: 1a79ac59-0faf-4de5-b546-5d6d5e151dd6 value_template: > {{ state_attr('climate.master_bedroom_aircon','outdoor_temperature') | float }} master_bedroom_target_temp: friendly_name: "Master Bedroom Target Temp" + unique_id: 2ce31844-b115-42b8-8213-feccf24e236c value_template: > {{ state_attr('climate.master_bedroom_aircon','temperature') | float }} master_bedroom_aircon_eco_mode: friendly_name: "Master Bedroom Eco Mode" + unique_id: edf36e23-adcf-4506-80eb-a14f4ea2fce0 value_template: >- {% if is_state_attr('climate.master_bedroom_aircon','preset_mode','eco') %} On @@ -34,6 +38,7 @@ sensor: availability_template: "{{ states('climate.master_bedroom_aircon') not in ['unavailable','unknown'] }}" master_bedroom_aircon_fan_mode: friendly_name: "Master Bedroom Aircon Fan Mode" + unique_id: c0e4f9ba-0c6c-4673-9a75-13f253f2f2e8 value_template: > {{ state_attr('climate.master_bedroom_aircon','fan_mode') }} icon_template: > diff --git a/packages/custom_weather.yaml b/packages/custom_weather.yaml index 873eacf..570995c 100644 --- a/packages/custom_weather.yaml +++ b/packages/custom_weather.yaml @@ -20,6 +20,7 @@ weather: template: - binary_sensor: - name: Heat Threshold + unique_id: 849a08bb-d4e6-40e9-ae42-50f7fb71b727 state: > {% set temp = states('sensor.pirateweather_temperature') | int %} {% set threshold = states('input_number.hot_day_threshold') | int %} @@ -33,6 +34,7 @@ template: current_temp: "{{ states('sensor.pirateweather_temperature') | int }}" threshold: "{{ states('input_number.hot_day_threshold') | int }}" - name: Heat Index Threshold + unique_id: aae2cd89-dde2-4557-923c-b476d1b49b88 state: > {% set feelslike = states('sensor.pirateweather_apparent_temperature') | int %} {% set threshold = states('input_number.heat_index_threshold') | int %} @@ -46,6 +48,7 @@ template: current_temp: "{{ states('sensor.pirateweather_apparent_temperature') | int }}" threshold: "{{ states('input_number.heat_index_threshold') | int }}" - name: Cold Threshold + unique_id: a7c97b91-6d42-433a-a96b-94e39c58d63f state: > {% set temp = states('sensor.pirateweather_temperature') | int %} {% set threshold = states('input_number.cold_day_threshold') | int %} @@ -59,6 +62,7 @@ template: current_temp: "{{ states('sensor.pirateweather_temperature') | int }}" threshold: "{{ states('input_number.cold_day_threshold') | int }}" - name: Overnight Low Threshold + unique_id: 6869e6eb-c8a6-43c8-aa4d-4d50659811b8 state: > {% set temp = states('sensor.pirateweather_temperature') | int %} {% set threshold = states('input_number.overnight_low_threshold') | int%} @@ -72,6 +76,7 @@ template: current_temp: "{{ states('sensor.pirateweather_temperature') | int }}" threshold: "{{ states('input_number.overnight_low_threshold') | int }}" - name: Wind Chill Threshold + unique_id: c734b642-b85d-465c-b3c3-aadbe4a00dc1 state: > {% set feelslike = states('sensor.pirateweather_apparent_temperature') | int %} {% set threshold = states('input_number.wind_chill_threshold') | int %} @@ -132,7 +137,6 @@ sensor: current_forecast: friendly_name: Current Forecast unique_id: c0faea33-2ac3-40f1-8558-584c3f5d6b16 - unit_of_measurement: '' icon_template: mdi:weather-sunny value_template: >- {% set forecast = state_attr('weather.iron_nerd_weather_station','forecast')[0] %} @@ -156,7 +160,6 @@ sensor: current_forecast_detail: friendly_name: Current Forecast Detail unique_id: e5ae9864-70b5-402c-9d2f-c4d6a10085df - unit_of_measurement: '' icon_template: mdi:weather-sunny value_template: >- {%- macro getReport() -%} @@ -277,7 +280,6 @@ sensor: tomorrow_forecast: friendly_name: Tomorrows Forecast unique_id: a8ae26b0-ed26-4568-bb2b-f7c72707b009 - unit_of_measurement: '' icon_template: mdi:weather-sunny value_template: >- {% set forecast = state_attr('weather.iron_nerd_weather_station','forecast')[1] %} @@ -301,7 +303,6 @@ sensor: tomorrow_forecast_detail: friendly_name: Tomorrow Forecast Detail unique_id: 21374ed0-80d1-49ba-817d-3e93eb3865e4 - unit_of_measurement: '' icon_template: mdi:weather-sunny value_template: >- {%- macro getReport() -%} @@ -411,7 +412,6 @@ sensor: current_conditions: friendly_name: Current Conditions unique_id: 70db7e57-08db-48b2-919b-03b5face37b9 - unit_of_measurement: '' icon_template: mdi:weather-sunny value_template: >- {%- macro getReport() -%} @@ -468,7 +468,6 @@ sensor: current_conditions_detail: friendly_name: Current Conditions Detail unique_id: 2b3687d1-bdd5-4551-8c0a-05b1ff617543 - unit_of_measurement: '' icon_template: mdi:weather-sunny value_template: >- {%- macro getReport() -%} @@ -636,7 +635,7 @@ sensor: todays_high_temp: friendly_name: "Today's High Temp" unique_id: 532904af-940b-45cd-af8e-c69d1a9c4531 - unit_of_measurement: '' + unit_of_measurement: '°F' device_class: temperature value_template: >- {% set forecast = state_attr('weather.iron_nerd_weather_station','forecast')[0] %} @@ -644,7 +643,7 @@ sensor: tonights_low_temp: friendly_name: "Tonight's Low Temp" unique_id: 8ddc55b6-4728-4897-a32f-90be970f744b - unit_of_measurement: '' + unit_of_measurement: '°F' device_class: temperature value_template: >- {% set forecast = state_attr('weather.iron_nerd_weather_station','forecast')[0] %} @@ -652,7 +651,6 @@ sensor: clothing_forecast: friendly_name: "Clothing Forecast" unique_id: 8ed2684b-d0ad-402c-bc3c-340cb9b2437a - unit_of_measurement: '' value_template: >- {% if is_state('binary_sensor.overnight', 'off') %} {% set temp = states('sensor.todays_high_temp')|int %} @@ -681,7 +679,6 @@ sensor: clothing_forecast_detail: friendly_name: "Clothing Forecast Detail" unique_id: 13065f50-5eef-4afd-830e-2a2c87f47496 - unit_of_measurement: '' value_template: >- {%- macro getReport() -%} {% if is_state('binary_sensor.morning','on') %} diff --git a/packages/lighting_and_scenes.yaml b/packages/lighting_and_scenes.yaml index a94f78f..6c69a1f 100644 --- a/packages/lighting_and_scenes.yaml +++ b/packages/lighting_and_scenes.yaml @@ -262,6 +262,7 @@ sensor: sensors: basement_studio_lights_brightness_actual: friendly_name: "Basement Studio Lights - Brightness Actual" + unique_id: dee4dc84-a6a0-4150-903e-5b8bd436d962 value_template: > {% set current = state_attr('light.basement_studio_lights','brightness') %} {{ ((current / 255) * 100) | float | round(2) }} @@ -275,6 +276,7 @@ sensor: icon_template: mdi:brightness-percent basement_studio_lights_brightness_intended: friendly_name: "Basement Studio Lights - Brightness Intended" + unique_id: 3542077f-24c6-460c-a73f-fe7bc8413b81 value_template: "{{ state_attr('switch.adaptive_lighting_basement_studio','brightness_pct') | float | round(2) }}" availability_template: > {% if is_state('switch.adaptive_lighting_basement_studio','on') %} @@ -286,6 +288,7 @@ sensor: icon_template: mdi:brightness-percent basement_studio_lights_colortemp_actual: friendly_name: "Basement Studio Lights - Colortemp Actual" + unique_id: 93cb2a2f-c8a7-44bf-813f-26ce349a072f value_template: "{{ state_attr('light.basement_studio_lights','color_temp_kelvin') | int }}" availability_template: > {% if is_state('light.basement_studio_lights','on') %} @@ -297,6 +300,7 @@ sensor: icon_template: mdi:thermometer-lines basement_studio_lights_colortemp_intended: friendly_name: "Basement Studio Lights - Colortemp Intended" + unique_id: 85d4b063-bae8-43c2-9fea-35820b13f26f value_template: "{{ state_attr('switch.adaptive_lighting_basement_studio','color_temp_kelvin') | int }}" availability_template: > {% if is_state('switch.adaptive_lighting_basement_studio','on') %} @@ -308,6 +312,7 @@ sensor: icon_template: mdi:thermometer-lines basement_studio_lights_brightness_diff: friendly_name: "Basement Studio Lights - Brightness Diff" + unique_id: ab24a44c-6c6b-4ae9-b256-52592b0503bb value_template: > {% set current = states('sensor.basement_studio_lights_brightness_actual') | float %} {% set intended = states('sensor.basement_studio_lights_brightness_intended') | float %} @@ -322,6 +327,7 @@ sensor: icon_template: mdi:brightness-percent basement_studio_lights_colortemp_diff: friendly_name: "Basement Studio Lights - Colortemp Diff" + unique_id: fecf7d42-9a5c-471e-9af3-e1a330a6ae3e value_template: > {% set current = states('sensor.basement_studio_lights_colortemp_actual') | float %} {% set intended = states('sensor.basement_studio_lights_colortemp_intended') | float %} diff --git a/packages/presence.yaml b/packages/presence.yaml index 948d38d..065c6b8 100644 --- a/packages/presence.yaml +++ b/packages/presence.yaml @@ -77,7 +77,6 @@ sensor: tony_location: friendly_name: "Tony" unique_id: 2620a9d0-01f0-4af4-8438-a0c860735aab - unit_of_measurement: "" value_template: >- {% set person = states.person.tony_stork.state %} {% if person in ['Home','home'] %} @@ -103,7 +102,6 @@ sensor: tina_location: friendly_name: "Tina" unique_id: 5439165c-f73e-4870-826a-d12c99e35487 - unit_of_measurement: "" value_template: >- {% set person = states.person.christina_stork.state %} {% if person in ['Home','home'] %} @@ -131,7 +129,6 @@ sensor: kallen_location: friendly_name: "Kallen" unique_id: d4b4c324-52aa-41e4-b446-8ba0d6b45cd3 - unit_of_measurement: "" value_template: >- {% set person = states.person.kallen_stork.state %} {% if person in ['Home','home'] %} @@ -280,14 +277,17 @@ template: mqtt: sensor: - name: "Family Status" + unique_id: 47d0cef6-6c95-4e8e-bf89-6c657db6102c state_topic: "house/family/status" payload_available: "online" payload_not_available: "offline" - name: "Family Arrived" + unique_id: a6574daf-5345-43b9-90c8-5e99ce56df0b state_topic: "house/family/arrived" payload_available: "online" payload_not_available: "offline" - name: "Last Outdoor Presence Trigger" + unique_id: f16493e7-0344-4f2b-94b4-2c89ab0e3eb6 state_topic: "house/presence/outdoor/last_trigger" payload_available: "online" payload_not_available: "offline" diff --git a/packages/school.yaml b/packages/school.yaml index fb27cc5..67316ef 100644 --- a/packages/school.yaml +++ b/packages/school.yaml @@ -75,16 +75,19 @@ sensor: - platform: template sensors: school_start_days2go: + unique_id: 94a53e67-c00f-4cc7-9309-f9033a9482f9 value_template: "{{ ((state_attr('input_datetime.school_first_day', 'timestamp')-as_timestamp(now())) | int /60/1440) | round(0) }}" attribute_templates: date: "{{ state_attr('input_datetime.school_first_day','timestamp') | timestamp_custom('%B %d, %Y') }}" unit_of_measurement: 'Days' school_end_days2go: + unique_id: 589c44ec-7e16-4c72-a264-cdf54de409a9 value_template: "{{ ((state_attr('input_datetime.school_last_day', 'timestamp')-as_timestamp(now())) | int /60/1440) | round(0) }}" attribute_templates: date: "{{ state_attr('input_datetime.school_last_day','timestamp') | timestamp_custom('%B %d, %Y') }}" unit_of_measurement: 'Days' vacation_days2go: + unique_id: f1628d87-e58a-4d1a-8a49-a71f0a9ed3e5 value_template: > {% if state_attr('calendar.vacation', 'start_time') %} {{ ((as_timestamp(strptime(state_attr('calendar.vacation', 'start_time'), '%Y-%m-%d'))-as_timestamp(now())) | int /60/1440) | round(0) }} @@ -93,16 +96,19 @@ sensor: {% endif %} unit_of_measurement: 'Days' thanksgiving_break_days2go: + unique_id: 2381e9de-407b-4304-b09a-448c169bbaf2 value_template: "{{ ((state_attr('input_datetime.thanksgiving_break_start', 'timestamp')-as_timestamp(now())) | int /60/1440) | round(0) }}" attribute_templates: date: "{{ state_attr('input_datetime.thanksgiving_break_start','timestamp') | timestamp_custom('%B %d, %Y') }}" unit_of_measurement: 'Days' christmas_break_days2go: + unique_id: 851700f7-c593-4db8-ba4f-001cbffcfc4a value_template: "{{ ((state_attr('input_datetime.christmas_break_start', 'timestamp')-as_timestamp(now())) | int /60/1440) | round(0) }}" attribute_templates: date: "{{ state_attr('input_datetime.christmas_break_start','timestamp') | timestamp_custom('%B %d, %Y') }}" unit_of_measurement: 'Days' spring_break_days2go: + unique_id: cec6e687-8999-4548-991c-02ba546335f5 value_template: "{{ ((state_attr('input_datetime.spring_break_start', 'timestamp')-as_timestamp(now())) | int /60/1440) | round(0) }}" attribute_templates: date: "{{ state_attr('input_datetime.spring_break_start','timestamp') | timestamp_custom('%B %d, %Y') }}" @@ -131,6 +137,7 @@ sensor: {% endif %} kallen_lunch_menu_week: friendly_name: Lunch Menu Week + unique_id: 62ba9dcb-3cd3-4875-8e6f-86bebf542c37 value_template: > {% if is_state('calendar.elementary_school_lunch','on') %} {{ state_attr('calendar.elementary_school_lunch','message') }} @@ -151,6 +158,7 @@ sensor: {% endif %} kallen_lunch_menu_items: friendly_name: Lunch Menu Items + unique_id: a2cb62d7-ae9f-4bab-81c1-81f2006391b2 icon_template: > {% set week = states('sensor.kallen_lunch_menu_week') %} {% if week == 'First Menu' %} diff --git a/packages/security.yaml b/packages/security.yaml index bf0ef63..e703029 100644 --- a/packages/security.yaml +++ b/packages/security.yaml @@ -57,6 +57,7 @@ sensor: sensors: windows_open: friendly_name: "Windows" + unique_id: 780770d2-8b5a-4c96-aee4-459281cc3471 unit_of_measurement: 'open' value_template: >- {% set windows = [ @@ -82,6 +83,7 @@ sensor: {% endif %} doors_open: #! This sensor is only for exterior doors, and interior doors that are NOT excluded from security protocols friendly_name: "Doors" + unique_id: 61b1a98a-51a4-4faa-947d-7883de2430c0 unit_of_measurement: 'open' value_template: >- {% set doors = [ @@ -103,6 +105,7 @@ sensor: {% endif %} interior_doors_open: # This sensor is not used for security purposes, only for information friendly_name: "Interior Doors" + unique_id: 772aa056-881a-4778-ba5b-19e46afc107a unit_of_measurement: 'open' value_template: >- {% set doors = [ @@ -124,6 +127,7 @@ sensor: {% endif %} total_faults: friendly_name: Faults + unique_id: 1629a83a-a46c-4041-9e49-8e54c5195388 unit_of_measurement: 'open' value_template: >- {% set windows_open = states('sensor.windows_open') | int %} diff --git a/packages/sports.yaml b/packages/sports.yaml index 3cb6d94..7e06ee7 100644 --- a/packages/sports.yaml +++ b/packages/sports.yaml @@ -9,6 +9,7 @@ input_boolean: template: - binary_sensor: - name: Michigan Wolverines Inhibit + unique_id: f361b30c-1771-41b3-85ff-ef1e0b6be59c state: > {% if state_attr('sensor.michigan_wolverines','kickoff_in') %} {% if 'months' in state_attr('sensor.michigan_wolverines','kickoff_in') %} @@ -22,6 +23,7 @@ template: false {% endif %} - name: Ohio State Buckeyes Inhibit + unique_id: d5359cb4-427a-46f8-99d6-4313530fde81 state: > {% if state_attr('sensor.ohio_state_buckeyes','kickoff_in') %} {% if 'months' in state_attr('sensor.ohio_state_buckeyes','kickoff_in') %} @@ -35,6 +37,7 @@ template: false {% endif %} - name: Toledo Rockets Inhibit + unique_id: 1f84d3f3-a06e-4745-a593-c21fe3504072 state: > {% if state_attr('sensor.toledo_rockets','kickoff_in') %} {% if 'months' in state_attr('sensor.toledo_rockets','kickoff_in') %} @@ -48,6 +51,7 @@ template: false {% endif %} - name: Minnesota Vikings Inhibit + unique_id: ea60c987-a95b-4024-a9c7-1bc6975e07e2 state: > {% if state_attr('sensor.minnesota_vikings','kickoff_in') %} {% if 'months' in state_attr('sensor.minnesota_vikings','kickoff_in') %} @@ -61,6 +65,7 @@ template: false {% endif %} - name: San Francisco 49ers Inhibit + unique_id: ce2441fa-09d6-4afc-b350-fee3745cdb50 state: > {% if state_attr('sensor.san_francisco_49ers','kickoff_in') %} {% if 'months' in state_attr('sensor.san_francisco_49ers','kickoff_in') %} @@ -74,6 +79,7 @@ template: false {% endif %} - name: Cleveland Guardians Inhibit + unique_id: b0980d47-d762-4f23-97b1-9e88da729d8f state: > {% if state_attr('sensor.cleveland_guardians','kickoff_in') %} {% if 'months' in state_attr('sensor.cleveland_guardians','kickoff_in') %} @@ -87,6 +93,7 @@ template: false {% endif %} - name: Minnesota Twins Inhibit + unique_id: 2987ae95-f55d-4994-b9dd-018278d2f5ad state: > {% if state_attr('sensor.minnesota_twins','kickoff_in') %} {% if 'months' in state_attr('sensor.minnesota_twins','kickoff_in') %} @@ -100,6 +107,7 @@ template: false {% endif %} - name: Los Angeles Dodgers Inhibit + unique_id: 2c6aae6e-eff6-46e5-bee9-311f9bbc0c0e state: > {% if state_attr('sensor.los_angeles_dodgers','kickoff_in') %} {% if 'months' in state_attr('sensor.los_angeles_dodgers','kickoff_in') %} diff --git a/packages/weatheralerts.yaml b/packages/weatheralerts.yaml index 96d5fbb..7e84bfb 100644 --- a/packages/weatheralerts.yaml +++ b/packages/weatheralerts.yaml @@ -54,6 +54,7 @@ sensor: ## You can add your county or city name to friendly_name for personalization ## For example: Weather Alerts for YourCountyName friendly_name: Weather Alerts + unique_id: 32371252-89ff-47b2-86e3-32ef92a05205 unit_of_measurement: Alerts icon_template: mdi:alert-rhombus value_template: >- @@ -229,6 +230,7 @@ sensor: {{ test.count }} weatheralerts_alert_1: friendly_name: Weather Alert 1 + unique_id: 752fb9ae-a61f-41f8-8882-f8d025b892e3 icon_template: mdi:alert-rhombus value_template: >- {% if (states('sensor.weatheralerts') != 'unavailable') and (state_attr('sensor.weatheralerts', 'alerts')[0] != null) or ((states('sensor.weatheralerts') == 'unavailable') and (as_timestamp(state_attr('sensor.weatheralerts', 'alerts')[0].endsExpires) - as_timestamp(now()) > 0)) %} @@ -392,6 +394,7 @@ sensor: {% endif %} weatheralerts_alert_2: friendly_name: Weather Alert 2 + unique_id: 4ecaa8ce-65ec-429f-956c-ac478f1c3d6f icon_template: mdi:alert-rhombus value_template: >- {% if (states('sensor.weatheralerts') != 'unavailable') and (state_attr('sensor.weatheralerts', 'alerts')[1] != null) or ((states('sensor.weatheralerts') == 'unavailable') and (as_timestamp(state_attr('sensor.weatheralerts', 'alerts')[1].endsExpires) - as_timestamp(now()) > 0)) %} @@ -555,6 +558,7 @@ sensor: {% endif %} weatheralerts_alert_3: friendly_name: Weather Alert 3 + unique_id: 0dcc3731-c90e-427a-abd9-dee29a5ed1e1 icon_template: mdi:alert-rhombus value_template: >- {% if (states('sensor.weatheralerts') != 'unavailable') and (state_attr('sensor.weatheralerts', 'alerts')[2] != null) or ((states('sensor.weatheralerts') == 'unavailable') and (as_timestamp(state_attr('sensor.weatheralerts', 'alerts')[2].endsExpires) - as_timestamp(now()) > 0)) %} @@ -718,6 +722,7 @@ sensor: {% endif %} weatheralerts_alert_4: friendly_name: Weather Alert 4 + unique_id: 18f756d2-f3aa-476f-a1c0-12c70f173ead icon_template: mdi:alert-rhombus value_template: >- {% if (states('sensor.weatheralerts') != 'unavailable') and (state_attr('sensor.weatheralerts', 'alerts')[3] != null) or ((states('sensor.weatheralerts') == 'unavailable') and (as_timestamp(state_attr('sensor.weatheralerts', 'alerts')[3].endsExpires) - as_timestamp(now()) > 0)) %} @@ -881,6 +886,7 @@ sensor: {% endif %} weatheralerts_alert_5: friendly_name: Weather Alert 5 + unique_id: c9690a26-84e8-439d-9718-469b227c4d66 icon_template: mdi:alert-rhombus value_template: >- {% if (states('sensor.weatheralerts') != 'unavailable') and (state_attr('sensor.weatheralerts', 'alerts')[4] != null) or ((states('sensor.weatheralerts') == 'unavailable') and (as_timestamp(state_attr('sensor.weatheralerts', 'alerts')[4].endsExpires) - as_timestamp(now()) > 0)) %} @@ -1043,6 +1049,7 @@ sensor: None {% endif %} weatheralerts_alert_1_last_changed: + unique_id: 3db32f1f-a6d3-4321-9078-2577d403f314 value_template: >- {% if states('sensor.weatheralerts_alert_1') == "on" %} {{ states.sensor.weatheralerts_alert_1.last_updated }} @@ -1050,6 +1057,7 @@ sensor: None {% endif %} weatheralerts_alert_2_last_changed: + unique_id: 75e746a0-b776-4dbb-b018-1e808a204f65 value_template: >- {% if states('sensor.weatheralerts_alert_2') == "on" %} {{ states.sensor.weatheralerts_alert_2.last_updated }} @@ -1057,6 +1065,7 @@ sensor: None {% endif %} weatheralerts_alert_3_last_changed: + unique_id: 4382f9a3-32bf-42f9-809f-ae33f33140b7 value_template: >- {% if states('sensor.weatheralerts_alert_3') == "on" %} {{ states.sensor.weatheralerts_alert_3.last_updated }} @@ -1064,6 +1073,7 @@ sensor: None {% endif %} weatheralerts_alert_4_last_changed: + unique_id: 4fbf5547-eac4-4ebf-b5fc-b043fafc0026 value_template: >- {% if states('sensor.weatheralerts_alert_4') == "on" %} {{ states.sensor.weatheralerts_alert_4.last_updated }} @@ -1071,6 +1081,7 @@ sensor: None {% endif %} weatheralerts_alert_5_last_changed: + unique_id: d7b66a73-8431-433c-8cd1-d413d726cb0a value_template: >- {% if states('sensor.weatheralerts_alert_5') == "on" %} {{ states.sensor.weatheralerts_alert_5.last_updated }} @@ -1078,6 +1089,7 @@ sensor: None {% endif %} weatheralerts_alert_1_most_recent_active_alert: + unique_id: 569944e9-b4cf-4ed2-9bed-40b2a0a9b898 value_template: >- {% if states('sensor.weatheralerts_alert_1_most_recent_active_alert') == '' and states('sensor.weatheralerts_alert_1') != 'on' %} unavailable @@ -1116,6 +1128,7 @@ sensor: {{ state_attr('sensor.weatheralerts_alert_1_most_recent_active_alert', 'alert_id') }} {% endif %} weatheralerts_alert_2_most_recent_active_alert: + unique_id: 8112afda-58b9-4161-809c-9186212f86d7 value_template: >- {% if states('sensor.weatheralerts_alert_2_most_recent_active_alert') == '' and states('sensor.weatheralerts_alert_2') != 'on' %} unavailable @@ -1154,6 +1167,7 @@ sensor: {{ state_attr('sensor.weatheralerts_alert_2_most_recent_active_alert', 'alert_id') }} {% endif %} weatheralerts_alert_3_most_recent_active_alert: + unique_id: f71f4ab7-0959-43e9-877a-22084b9642c3 value_template: >- {% if states('sensor.weatheralerts_alert_3_most_recent_active_alert') == '' and states('sensor.weatheralerts_alert_3') != 'on' %} unavailable @@ -1192,6 +1206,7 @@ sensor: {{ state_attr('sensor.weatheralerts_alert_3_most_recent_active_alert', 'alert_id') }} {% endif %} weatheralerts_alert_4_most_recent_active_alert: + unique_id: e663e42b-a6b2-4a55-a3d9-1932b10fb0ca value_template: >- {% if states('sensor.weatheralerts_alert_4_most_recent_active_alert') == '' and states('sensor.weatheralerts_alert_4') != 'on' %} unavailable @@ -1230,6 +1245,7 @@ sensor: {{ state_attr('sensor.weatheralerts_alert_4_most_recent_active_alert', 'alert_id') }} {% endif %} weatheralerts_alert_5_most_recent_active_alert: + unique_id: 523d7026-1fdd-4621-91c0-87e0bd98f14d value_template: >- {% if states('sensor.weatheralerts_alert_5_most_recent_active_alert') == '' and states('sensor.weatheralerts_alert_5') != 'on' %} unavailable @@ -1269,6 +1285,7 @@ sensor: {% endif %} weatheralerts_alerts_are_active: friendly_name: Weather Alerts Are Active + unique_id: 3f6ecba1-c102-4324-b56e-6d80ead0c829 icon_template: mdi:alert-rhombus value_template: > {% if (states('sensor.weatheralerts') | int > 0) or ((states('sensor.weatheralerts') == 'unavailable') and (states('sensor.weatheralerts_alert_1') == 'on')) %} diff --git a/sensors/entertainment.yaml b/sensors/entertainment.yaml index c201c0b..2073938 100644 --- a/sensors/entertainment.yaml +++ b/sensors/entertainment.yaml @@ -11,6 +11,7 @@ sensors: basement_tv_current_app: friendly_name: 'Basement TV Current App' + unique_id: 838c2320-24b6-4555-959e-0546580ae8b2 value_template: >- {% if is_state('media_player.basement_tv','off') %} Off @@ -19,6 +20,7 @@ {% endif %} living_room_tv_current_app: friendly_name: 'Living Room TV Current App' + unique_id: b03de99d-b7fa-4f4c-8cdf-758c906dffe4 value_template: >- {% if is_state('media_player.living_room_tv','off') %} Off @@ -27,6 +29,7 @@ {% endif %} master_bedroom_tv_current_app: friendly_name: 'Master Bedroom TV Current App' + unique_id: 4bf4bef3-fc81-4259-a75c-6693ceba0926 value_template: >- {% if is_state('media_player.master_bedroom_firetv','off') %} Off diff --git a/sensors/house_stats.yaml b/sensors/house_stats.yaml index f9a40e7..d5d6741 100644 --- a/sensors/house_stats.yaml +++ b/sensors/house_stats.yaml @@ -2,61 +2,73 @@ sensors: sensor_count: friendly_name: 'Number of Sensors' + unique_id: e068dac5-a6f8-438d-a5df-93fa2c4eee2e value_template: >- {{ states.sensor | rejectattr('state', 'eq', 'unavailable') | list | count | int }} unit_of_measurement: '' automation_count: friendly_name: 'Number of Automations' + unique_id: ff75e7c9-1eac-4254-9a8d-4ed742a95233 value_template: >- {{ states.automation| rejectattr('state', 'eq', 'unavailable') | list | count | int }} unit_of_measurement: '' script_count: friendly_name: 'Number of Scripts' + unique_id: 29827719-36a0-4dad-9527-6b60aba3c4aa value_template: >- {{ states.script | rejectattr('state', 'eq', 'unavailable') | list | count | int }} unit_of_measurement: '' binary_sensor_count: friendly_name: 'Number of Binary Sensors' + unique_id: ffee9622-84f6-40df-b870-b8f79aa01943 value_template: >- {{ states.binary_sensor | rejectattr('state', 'eq', 'unavailable') | list | count | int }} unit_of_measurement: '' tracker_count: friendly_name: 'Number of Devices' + unique_id: bc5c5934-084d-4bcb-930b-d48347ba1b3c value_template: >- {{ states.device_tracker| rejectattr('state', 'eq', 'unavailable') | list | count | int }} unit_of_measurement: '' lights_count: friendly_name: 'Number of Lights' + unique_id: 71b7d157-4701-49dd-9145-41c5c93e22b4 value_template: >- {{ states.light | rejectattr('state', 'eq', 'unavailable') | list | count | int }} unit_of_measurement: '' switches_count: friendly_name: 'Number of Switches' + unique_id: d2d60031-818c-475f-8243-c0101616847d value_template: >- {{ states.switch | rejectattr('state', 'eq', 'unavailable') | list | count | int }} unit_of_measurement: '' camera_count: friendly_name: 'Number of online Cameras' + unique_id: 46cefd93-b7d5-4fbf-b6d4-2fe94a053122 value_template: >- {{ states.camera | rejectattr('state', 'eq', 'unavailable') | list | count | int }} unit_of_measurement: '' media_player_count: friendly_name: 'Number of Media Players' + unique_id: 295c724c-2044-4d06-8272-d92b086ff76f value_template: >- {{ states.media_player | rejectattr('state', 'eq', 'unavailable') | list | count | int }} unit_of_measurement: '' entities_count: friendly_name: 'Number of Entities' + unique_id: f2b17937-59ca-4a84-9a1b-a666bfb0566b value_template: >- {{ states | rejectattr('state', 'eq', 'unavailable') | list | count | int }} unit_of_measurement: '' na_entities_count: friendly_name: 'Number of NA Entities' + unique_id: cf2e5f8c-7f82-40c6-ae76-b587b7945c41 value_template: >- {{ states | selectattr('state', 'eq', 'unavailable') | map(attribute='entity_id') | list | count | int }} unit_of_measurement: '' current_lights_on: friendly_name: Current Lights On + unique_id: ea4afe4a-d0ac-4fce-968f-b181e50f4dc8 unit_of_measurement: '' value_template: >- {% set lights = [ @@ -91,6 +103,7 @@ {{ lights | selectattr('state','eq','on') | list | count | int }} first_floor_lights_on: friendly_name: First Floor Lights On + unique_id: fca1468d-4e0c-40ff-8c7f-251f99ee1b5b unit_of_measurement: '' value_template: >- {% set lights = [ @@ -108,6 +121,7 @@ {{ lights | selectattr('state','eq','on') | list | count | int }} second_floor_lights_on: friendly_name: Second Floor Lights On + unique_id: 517a73c0-67a0-44f9-99f3-5dfec784da18 unit_of_measurement: '' value_template: >- {% set lights = [ @@ -127,6 +141,7 @@ {{ lights | selectattr('state','eq','on') | list | count | int }} basement_lights_on: friendly_name: Basement Lights On + unique_id: 1a9e13d1-c2bd-44e4-82b2-b975ca61eed3 unit_of_measurement: '' value_template: >- {% set lights = [ @@ -138,6 +153,7 @@ {{ lights | selectattr('state','eq','on') | list | count | int }} current_fans_on: friendly_name: Current Fans On + unique_id: 41171a78-ab1c-43bf-81c3-26b960e30b86 unit_of_measurement: '' value_template: >- {% set fans = [ @@ -149,6 +165,7 @@ {{ fans | selectattr('state','eq','on') | list | count | int }} current_outdoor_lights_on: friendly_name: Current Outdoor Lights On + unique_id: 252981eb-e7bf-464a-9bfb-ab14dec4eb70 unit_of_measurement: '' value_template: >- {% set lights = [ @@ -157,6 +174,7 @@ {{ lights | selectattr('state','eq','on') | list | count | int }} current_computers_on: friendly_name: Current Computers On + unique_id: fb3f14f3-d0c9-4880-88c6-143d56248f13 unit_of_measurement: '' value_template: >- {% set computers = [ @@ -168,6 +186,7 @@ {{ computers | selectattr('state','eq','on') | list | count | int }} climate_devices_installed: friendly_name: Climate Devices Installed + unique_id: e227272d-a10b-4641-ad27-39dc88a1ac2a unit_of_measurement: '' value_template: >- {% set devices = [ @@ -177,6 +196,7 @@ {{ devices | selectattr('state','eq','on') | list | count | int }} front_porch_color_temp: friendly_name: Front Porch Color Temp + unique_id: 21a01514-d382-4c57-9add-3d500464b22b unit_of_measurement: 'mireds' value_template: > {% if is_state('light.front_porch_light','off') %} @@ -186,6 +206,7 @@ {% endif %} birthdays_today: friendly_name: Birthdays Today + unique_id: ec61c919-60a0-47a2-978c-aa2453267d3d unit_of_measurement: '' value_template: > {% set birthdays = [ @@ -211,6 +232,7 @@ # The sum of all the years of life in our household, because why not LOL total_age_years: friendly_name: Total Age Years + unique_id: c1380627-b3a5-43ce-811d-3fb856c062a1 unit_of_measurement: '' value_template: > {% set tony = states('sensor.tony_current_age') | int %} diff --git a/sensors/tasks.yaml b/sensors/tasks.yaml index b7fd15f..473d052 100644 --- a/sensors/tasks.yaml +++ b/sensors/tasks.yaml @@ -28,30 +28,35 @@ sensors: home_tech_bug_reports: friendly_name: 'Bug Reports' + unique_id: d9c3d6c5-f28f-4b60-a19f-355c8e58f9cb value_template: "{{ states('sensor.home_tech') }}" attribute_templates: project: "{{ state_attr('sensor.home_tech', 'project') }}" items: "{{ state_attr('sensor.home_tech', 'items')|selectattr('section_id', 'eq', '94865633')|list|selectattr('parent_id','eq',none)|list }}" home_tech_improvements: friendly_name: 'Improvements' + unique_id: f1af501a-de94-4951-a841-9ef82a08bb95 value_template: "{{ states('sensor.home_tech') }}" attribute_templates: project: "{{ state_attr('sensor.home_tech', 'project') }}" items: "{{ state_attr('sensor.home_tech', 'items')|selectattr('section_id', 'eq', '114199257')|list|selectattr('parent_id','eq',none)|list }}" home_tech_in_progress: friendly_name: 'In Progress' + unique_id: ea820db3-3b17-49a5-8ab9-b5d1e89c5da1 value_template: "{{ states('sensor.home_tech') }}" attribute_templates: project: "{{ state_attr('sensor.home_tech', 'project') }}" items: "{{ state_attr('sensor.home_tech', 'items')|selectattr('section_id', 'eq', '81234677')|list|selectattr('parent_id','eq',none)|list }}" home_tech_long_term: friendly_name: 'Long Term or Maintaining' + unique_id: 4c807471-6d9a-4f64-bad9-893a330a9499 value_template: "{{ states('sensor.home_tech') }}" attribute_templates: project: "{{ state_attr('sensor.home_tech', 'project') }}" items: "{{ state_attr('sensor.home_tech', 'items')|selectattr('section_id', 'eq', '88456343')|list|selectattr('parent_id','eq',none)|list }}" home_tech_postponed_indefinitely: friendly_name: 'Postponed Indefinitely' + unique_id: eadb779a-eb65-4cc8-a184-fb5d6f29c48d value_template: "{{ states('sensor.home_tech') }}" attribute_templates: project: "{{ state_attr('sensor.home_tech', 'project') }}" diff --git a/sensors/time.yaml b/sensors/time.yaml index 99ca666..39a5f58 100644 --- a/sensors/time.yaml +++ b/sensors/time.yaml @@ -2,18 +2,22 @@ sensors: today_is: friendly_name: 'Today is' + unique_id: 18e7d262-14f6-4f67-a291-8faf85d4104d value_template: "{{ ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'][now().weekday()] }}" month_is: friendly_name: 'Month is' + unique_id: fd7a9fe3-4a29-4235-8959-b26d79c6646c value_template: "{{ ['January','February','March','April','May','June','August','September','October','November','December'][now().month-1] }}" kallen_timer_remaining_minutes: friendly_name: 'Kallen Timer Remaining Minutes' + unique_id: ca06c860-2bc7-4c16-810b-c338724459ca value_template: >- {% set f = state_attr('timer.kallen_timer','finishes_at') %} {{ '00' if f == none else (as_datetime(f) - now()).total_seconds() | timestamp_custom('%M', false) }} kallen_timer_remaining_seconds: friendly_name: 'Kallen Timer Remaining Seconds' + unique_id: d81d5726-1229-4c0c-846c-69aeeead7313 value_template: >- {% set f = state_attr('timer.kallen_timer','finishes_at') %} {{ '00' if f == none else