diff --git a/.gitignore b/.gitignore index 5ef249b8..1650c6be 100755 --- a/.gitignore +++ b/.gitignore @@ -29,6 +29,7 @@ home-assistant_v2 home-assistant_v2.* .homekit.state ipchange.yaml +config/packages/ipchange.yaml ip_bans.yaml production_auth.json OZW_Log.txt diff --git a/config/.HA_VERSION b/config/.HA_VERSION index 16c9f625..f0f51063 100755 --- a/config/.HA_VERSION +++ b/config/.HA_VERSION @@ -1 +1 @@ -2025.11.3 \ No newline at end of file +2025.12.0 \ No newline at end of file diff --git a/config/logbook.yaml b/config/logbook.yaml index d5896a56..4eb0d64a 100644 --- a/config/logbook.yaml +++ b/config/logbook.yaml @@ -32,6 +32,8 @@ exclude: - sensor.*_activity - sensor.*_bssid - sensor.*_wifi_signal_strength + - "*alarm_panel_1*" + - "*alarm_panel_2*" entities: - automation.cuckoo_clock - automation.detect_lights_and_adjust_the_brightness_when_turned_on_based_on_time diff --git a/config/packages/alexa_media_player.yaml b/config/packages/alexa_media_player.yaml index 231cd218..8754d0de 100755 --- a/config/packages/alexa_media_player.yaml +++ b/config/packages/alexa_media_player.yaml @@ -1,16 +1,16 @@ -#------------------------------------------- -# @CCOSTAN +###################################################################### +# @CCOSTAN - Follow Me on X +# For more info visit https://www.vcloudinfo.com/click-here # Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig +# ------------------------------------------------------------------- # Alexa Media Player - Sensors and notifications via Alexa Media integration. -#------------------------------------------- +# Track Alexa media state and expose routine/command triggers. +# ------------------------------------------------------------------- ###################################################################### -## Track Alexa media state and expose routine/command triggers. -###################################################################### -sensor: - - platform: template - sensors: - last_alexa: - value_template: > - {{ states.media_player | selectattr('attributes.last_called','eq',True) | map(attribute='entity_id') | first | default('none') }} -#------------------------------------------- +template: + - sensor: + - name: "Last Alexa" + unique_id: last_alexa + state: > + {{ states.media_player | selectattr('attributes.last_called','eq',True) | map(attribute='entity_id') | first | default('none') }} diff --git a/config/packages/climate.yaml b/config/packages/climate.yaml index a8721748..95cd6515 100644 --- a/config/packages/climate.yaml +++ b/config/packages/climate.yaml @@ -1,12 +1,13 @@ -#------------------------------------------- -# @CCOSTAN +###################################################################### +# @CCOSTAN - Follow Me on X +# For more info visit https://www.vcloudinfo.com/click-here # Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig +# ------------------------------------------------------------------- # Climate Control - Seasonal HVAC automations and sensors. -#------------------------------------------- +# Thermostat helpers for upstairs/downstairs comfort. +# ------------------------------------------------------------------- ###################################################################### -## Thermostat helpers for upstairs/downstairs comfort. -###################################################################### -# For more info visit https://www.vcloudinfo.com/click-here | Contact: @CCOSTAN +# Contact: @CCOSTAN | Entity reference details below # Entity reference and attribute summaries: # # Entity ID: climate.downstairs @@ -40,6 +41,28 @@ ###################################################################### +# --------------------------------------------------------------------------- +# Template helpers – compressor status flags and numeric runtime helpers +# --------------------------------------------------------------------------- +template: + - binary_sensor: + - name: "Downstairs AC is Cooling" + unique_id: downstairs_ac_cooling + state: > + {{ state_attr('climate.downstairs', 'hvac_action') == 'cooling' }} + - name: "Upstairs AC is Cooling" + unique_id: upstairs_ac_cooling + state: > + {{ state_attr('climate.upstairs', 'hvac_action') == 'cooling' }} + + sensor: + - name: "Downstairs AC Cooling Numeric" + unique_id: downstairs_ac_cooling_numeric + state: "{{ 1 if is_state('binary_sensor.downstairs_ac_cooling', 'on') else 0 }}" + - name: "Upstairs AC Cooling Numeric" + unique_id: upstairs_ac_cooling_numeric + state: "{{ 1 if is_state('binary_sensor.upstairs_ac_cooling', 'on') else 0 }}" + input_datetime: downstairs_last_filter_change: name: Downstairs Last Filter Change @@ -51,30 +74,9 @@ input_datetime: has_time: true # --------------------------------------------------------------------------- -# Binary sensors – true when the thermostat reports the compressor is running +# Integration sensors tally runtime based on compressor state # --------------------------------------------------------------------------- -binary_sensor: - - platform: template - sensors: - downstairs_ac_cooling: - friendly_name: "Downstairs AC is Cooling" - value_template: > - {{ state_attr('climate.downstairs', 'hvac_action') == 'cooling' }} - upstairs_ac_cooling: - friendly_name: "Upstairs AC is Cooling" - value_template: > - {{ state_attr('climate.upstairs', 'hvac_action') == 'cooling' }} - sensor: - - platform: template - sensors: - downstairs_ac_cooling_numeric: - friendly_name: "Downstairs AC Cooling Numeric" - value_template: "{{ 1 if is_state('binary_sensor.downstairs_ac_cooling', 'on') else 0 }}" - upstairs_ac_cooling_numeric: - friendly_name: "Upstairs AC Cooling Numeric " - value_template: "{{ 1 if is_state('binary_sensor.upstairs_ac_cooling', 'on') else 0 }}" - - platform: integration name: Downstairs AC Runtime Raw source: sensor.downstairs_ac_cooling_numeric diff --git a/config/packages/glances.yaml b/config/packages/glances.yaml index e1a64e42..79336e23 100755 --- a/config/packages/glances.yaml +++ b/config/packages/glances.yaml @@ -1,18 +1,21 @@ -#------------------------------------------- -# @CCOSTAN +###################################################################### +# @CCOSTAN - Follow Me on X +# For more info visit https://www.vcloudinfo.com/click-here # Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig +# ------------------------------------------------------------------- # Glances - ProxMox/server stats via Glances integration. -#------------------------------------------- +# CPU, memory, and disk sensors from Glances API. +# ------------------------------------------------------------------- ###################################################################### -## CPU, memory, and disk sensors from Glances API. -###################################################################### -sensor: - - platform: template - sensors: - proxmox_garage_avg_temp: - friendly_name: "Proxmox Garage Average Temperature" - unit_of_measurement: "°F" - value_template: >- + +template: + - sensor: + - name: "Proxmox Garage Average Temperature" + unique_id: proxmox_garage_avg_temp + device_class: temperature + state_class: measurement + unit_of_measurement: "\u00B0F" + state: >- {{ ( (states('sensor.proxmox1_package_id_0_temperature') | float(0) + states('sensor.proxmox1_pch_skylake_1_temperature') | float(0) + @@ -42,7 +45,7 @@ automation: action: - service: script.notify_engine data: - title: "🔥 Proxmox Garage Alert!" - value1: "The average temperature of your Proxmox servers is above 145°F!" + title: "?? Proxmox Garage Alert!" + value1: "The average temperature of your Proxmox servers is above 145\u00B0F!" who: 'carlo' group: 'information' diff --git a/config/packages/stats.yaml b/config/packages/stats.yaml index 3afbeffe..ccd73f99 100755 --- a/config/packages/stats.yaml +++ b/config/packages/stats.yaml @@ -1,12 +1,13 @@ -#------------------------------------------- -# @CCOSTAN +###################################################################### +# @CCOSTAN - Follow Me on X +# For more info visit https://www.vcloudinfo.com/click-here # Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig +# ------------------------------------------------------------------- # Stats - Historical metrics and AI notifications. -#------------------------------------------- +# Build historical stats for AI/alerting. +# ------------------------------------------------------------------- +# Contact: @CCOSTAN ###################################################################### -## Build historical stats for AI/alerting. -###################################################################### -# Find me on X @CCOSTAN ### Building out some Historical stats for AI. ##################### command_line: @@ -71,51 +72,56 @@ sensor: days: 7 ### Building some interesting stats for tweeting. ### - - platform: template - sensors: - sensor_count: - friendly_name: 'Number of Sensors' - value_template: >- + +template: + - sensor: + - name: "Number of Sensors" + unique_id: stats_number_of_sensors + unit_of_measurement: "count" + icon: mdi:counter + state: >- {{ states.sensor | list | count }} - unit_of_measurement: 'count' - icon_template: mdi:counter - automation_count: - friendly_name: 'Number of Automations' - value_template: >- + - name: "Number of Automations" + unique_id: stats_number_of_automations + unit_of_measurement: "count" + icon: mdi:robot + state: >- {{ states.automation | list | count }} - unit_of_measurement: 'count' - icon_template: mdi:robot - script_count: - friendly_name: 'Number of Scripts' - value_template: >- + - name: "Number of Scripts" + unique_id: stats_number_of_scripts + unit_of_measurement: "count" + icon: mdi:script-text + state: >- {{ states.script | list | count }} - unit_of_measurement: 'count' - icon_template: mdi:script-text - binary_sensor_count: - friendly_name: 'Number of Binary Sensors' - value_template: >- + - name: "Number of Binary Sensors" + unique_id: stats_number_of_binary_sensors + unit_of_measurement: "count" + icon: mdi:binary-sensor + state: >- {{ states.binary_sensor | list | count }} - unit_of_measurement: 'count' - icon_template: mdi:binary-sensor - tracker_count: - friendly_name: 'Number of Devices' - value_template: >- - {{ states.device_tracker| list | count }} - unit_of_measurement: 'count' - icon_template: mdi:account-group - lights_count: - friendly_name: 'Number of Lights' - value_template: > + - name: "Number of Devices" + unique_id: stats_number_of_devices + unit_of_measurement: "count" + icon: mdi:account-group + state: >- + {{ states.device_tracker | list | count }} + + - name: "Number of Lights" + unique_id: stats_number_of_lights + unit_of_measurement: "count" + icon: mdi:lightbulb + state: > {{ states.light | list | count }} - unit_of_measurement: 'count' - icon_template: mdi:lightbulb - lights_on_count: - friendly_name: "Number of lights on" - value_template: >- + + - name: "Number of lights on" + unique_id: stats_number_of_lights_on + unit_of_measurement: "count" + icon: mdi:binary-sensor + state: >- {% set lights = states.light | selectattr('state', 'eq', 'on') | list %} {% set qty = lights | count %} {% set p1 = 'lights are' if qty > 1 else 'light is' %} @@ -125,11 +131,11 @@ sensor: {% else %} {{ qty }} {{ p1 }} on. {% endif %} - unit_of_measurement: 'count' - icon_template: mdi:binary-sensor - protect_count: - friendly_name: 'Number of Smoke Detectors' - value_template: > + + - name: "Number of Smoke Detectors" + unit_of_measurement: "count" + icon: mdi:smoke-detector + state: > {% if states('group.protects') == 'on' %} {% for e in states.group.protects.attributes.entity_id if states(e) == 'on' %} {% if loop.last %} @@ -139,20 +145,19 @@ sensor: {% else %} 0 {% endif %} - unit_of_measurement: 'count' - icon_template: mdi:smoke-detector - camera_count: - friendly_name: 'Number of online Cameras' - value_template: > + + - name: "Number of online Cameras" + unique_id: stats_number_of_online_cameras + unit_of_measurement: "count" + icon: mdi:camera + state: > {{ states.camera | list | count }} - unit_of_measurement: 'count' - icon_template: mdi:camera - total_wifi_clients: - friendly_name: "Total WiFi Clients" + + - name: "Total WiFi Clients" unique_id: total_wifi_clients unit_of_measurement: "clients" - icon_template: mdi:wifi - value_template: > + icon: mdi:wifi + state: > {% set g = states('sensor.unifi_ap_garage_clients') | int(0) %} {% set o = states('sensor.unifi_ap_office_clients') | int(0) %} {% set s = states('sensor.unifi_ap_study_clients') | int(0) %} diff --git a/config/packages/superbowl.yaml b/config/packages/superbowl.yaml deleted file mode 100755 index d8244a94..00000000 --- a/config/packages/superbowl.yaml +++ /dev/null @@ -1,109 +0,0 @@ -#------------------------------------------- -# @CCOSTAN -# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig -# Super Bowl Lights - Flash routines on scoring events. -#------------------------------------------- -###################################################################### -## Game-day automations; update sensors yearly. Issue #1502. -###################################################################### -automation: - - alias: 'Super Bowl Team Score Change' - id: 5b3a4c89-1234-4567-8901-23456789abcd - mode: single - trigger: - - platform: state - entity_id: sensor.team_tracker_kc - attribute: team_score - - platform: state - entity_id: sensor.team_tracker_phi - attribute: team_score - condition: - - condition: template - value_template: "{{ now().month == 2 }}" - action: - - service: input_boolean.turn_on - target: - entity_id: input_boolean.flash - - service: light.turn_on - target: - entity_id: - - light.outdoor_front_lights - - light.living_room_accents - - light.m1_back_left - - light.m1_back_right - - light.m1_front_left - - light.m1_front_right - - light.main_slider - data: - rgb_color: > - {% if trigger.entity_id == 'sensor.team_tracker_phi' %} - [0, 255, 0] - {% else %} - [255, 0, 0] - {% endif %} - brightness: 255 - - delay: - minutes: 5 - - service: light.turn_on - target: - entity_id: - - light.m1_back_left - - light.m1_back_right - data: - brightness: 255 - rgb_color: [255, 255, 255] - - - alias: 'Super Bowl Winner Celebration' - id: 5b3a4c89-1234-4567-8901-23456789abce - mode: single - trigger: - - platform: state - entity_id: - - sensor.team_tracker_kc - - sensor.team_tracker_phi - attribute: team_winner - to: 'true' - condition: - - condition: template - value_template: "{{ now().month == 2 }}" - action: - - service: light.turn_on - target: - entity_id: - - light.outdoor_front_lights - - light.living_room_accents - - light.m1_back_left - - light.m1_back_right - - light.m1_front_left - - light.m1_front_right - - light.main_slider - data: - rgb_color: > - {% if trigger.entity_id == 'sensor.team_tracker_phi' %} - [0, 255, 0] - {% else %} - [255, 0, 0] - {% endif %} - brightness: 255 - effect: 'colorloop' - - delay: - minutes: 3 - - service: light.turn_on - target: - entity_id: - - light.outdoor_front_lights - - light.living_room_accents - - light.m1_back_left - - light.m1_back_right - - light.m1_front_left - - light.m1_front_right - - light.main_slider - data: - rgb_color: > - {% if trigger.entity_id == 'sensor.team_tracker_phi' %} - [0, 255, 0] - {% else %} - [255, 0, 0] - {% endif %} - brightness: 255 - effect: 'none' diff --git a/config/packages/weather.yaml.NOTWORKING b/config/packages/weather.yaml.NOTWORKING deleted file mode 100755 index fe1be73c..00000000 --- a/config/packages/weather.yaml.NOTWORKING +++ /dev/null @@ -1,48 +0,0 @@ -#------------------------------------------- -# Pirate Weather Forecast Sensors -# @CCOSTAN -# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig - -automation: - - alias: "Update Daily Weather Forecasts" - id: a8717b62-da37-4811-9f7c-96d178a7bfda_daily - trigger: - - platform: time_pattern - minutes: "/30" - action: - - service: weather.get_forecasts - data: - type: daily - target: - entity_id: weather.pirateweather - response_variable: daily - - - alias: "Update Hourly Weather Forecasts" - id: a8717b62-da37-4811-9f7c-96d178a7bfda_hourly - trigger: - - platform: time_pattern - minutes: "/30" - action: - - service: weather.get_forecasts - data: - type: hourly - target: - entity_id: weather.pirateweather - response_variable: hourly - -sensor: - - platform: template - sensors: - pirateweather_daily: - friendly_name: "Pirate Weather Daily" - unique_id: pirateweather_daily - value_template: "{{ daily['weather.pirateweather'].forecast[0].condition }}" - attribute_templates: - forecast: "{{ daily['weather.pirateweather'].forecast }}" - - pirateweather_hourly: - friendly_name: "Pirate Weather Hourly" - unique_id: pirateweather_hourly - value_template: "{{ hourly['weather.pirateweather'].forecast[0].condition }}" - attribute_templates: - forecast: "{{ hourly['weather.pirateweather'].forecast[:24] }}" diff --git a/config/packages/weather_camera.yaml.disabled b/config/packages/weather_camera.yaml.disabled deleted file mode 100755 index 793a2d09..00000000 --- a/config/packages/weather_camera.yaml.disabled +++ /dev/null @@ -1,11 +0,0 @@ -#------------------------------------------- -# Camera Related Packages -# @CCOSTAN -# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig - -#---Sensor for Light----------------------------- -camera: - - platform: generic - still_image_url: 'https://icons.wxug.com/data/weather-maps/radar/united-states/saint-petersburg-florida-region-current-radar.gif' -# still_image_url: 'https://radblast.wunderground.com/cgi-bin/radar/WUNIDS_map?station=MCO&brand=wui&num=1&delay=15&type=TR0&frame=0&scale=1.000&noclutter=0&showstorms=0&mapx=400&mapy=240¢erx=400¢ery=240&transx=0&transy=0&showlabels=1&severe=0&rainsnow=0&lightning=0&smooth=0&rand=25183060&lat=0&lon=0&label=you' - name: WU Doppler Weather diff --git a/config/sensor/README.md b/config/sensor/README.md index eadf9bfd..b628fcee 100755 --- a/config/sensor/README.md +++ b/config/sensor/README.md @@ -17,7 +17,7 @@ -Standalone sensors that aren’t bundled in packages—time/utility helpers, MQTT feeds, and IP change detectors. +Standalone sensors that aren't bundled in packages - time/utility helpers and MQTT feeds. (IP change monitoring now lives in `config/packages/ipchange.yaml`.) ### Quick navigation - [Repo overview](../../README.md) | [Config index](../README.md) | [Packages](../packages) @@ -29,7 +29,6 @@ Standalone sensors that aren | --- | --- | | [date_time.yaml](date_time.yaml) | Time/date sensors used across automations. | | [MQTT.yaml](MQTT.yaml) | Generic MQTT sensor definitions. | -| [ipchange.yaml](ipchange.yaml) | IP change detector for presence/alerts. | ### Tips - Great place for lightweight utility sensors you want everywhere. @@ -50,3 +49,5 @@ Standalone sensors that aren Affiliate Disclosure

+ +