June Updates (#1522)

* Add nightly reboot schedule for Frigate server in Proxmox configuration

* Update HA version to 2025.6.1

* Update HA version to 2025.7.1, increase recorder purge days to 30, and enhance climate package with new sensors and utility meters for AC runtime tracking. In service of AC filter changing.  #273

---------

Co-authored-by: Carlo Costanzo <CCOSTAN@users.noreply.github.com>
This commit is contained in:
Carlo Costanzo 2025-07-12 17:44:42 -04:00 committed by GitHub
parent ac4d927968
commit 61811ede4f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 87 additions and 30 deletions

View File

@ -1 +1 @@
2025.6.0 2025.7.1

View File

@ -1,14 +1,20 @@
# --------------------------------------------------
# AC Filterchange runtime tracker
# --------------------------------------------------
input_datetime: input_datetime:
downstairs_last_filter_change: downstairs_last_filter_change:
name: Downstairs Last Filter Change name: Downstairs Last Filter Change
has_date: true has_date: true
has_time: true has_time: true
upstairs_last_filter_change: upstairs_last_filter_change:
name: Upstairs Last Filter Change name: Upstairs Last Filter Change
has_date: true has_date: true
has_time: true has_time: true
# ---------------------------------------------------------------------------
# Binary sensors true when the thermostat reports the compressor is running
# ---------------------------------------------------------------------------
binary_sensor: binary_sensor:
- platform: template - platform: template
sensors: sensors:
@ -16,71 +22,106 @@ binary_sensor:
friendly_name: "Downstairs AC is Cooling" friendly_name: "Downstairs AC is Cooling"
value_template: > value_template: >
{{ state_attr('climate.downstairs', 'hvac_action') == 'cooling' }} {{ state_attr('climate.downstairs', 'hvac_action') == 'cooling' }}
upstairs_ac_cooling: upstairs_ac_cooling:
friendly_name: "Upstairs AC is Cooling" friendly_name: "Upstairs AC is Cooling"
value_template: > value_template: >
{{ state_attr('climate.upstairs', 'hvac_action') == 'cooling' }} {{ state_attr('climate.upstairs', 'hvac_action') == 'cooling' }}
sensor: sensor:
- platform: history_stats - platform: template
name: Downstairs AC Runtime Since Last Filter Change sensors:
entity_id: binary_sensor.downstairs_ac_cooling downstairs_ac_cooling_numeric:
state: 'on' friendly_name: "Downstairs AC Cooling Numeric"
type: time value_template: "{{ 1 if is_state('binary_sensor.downstairs_ac_cooling', 'on') else 0 }}"
start: "{{ states('input_datetime.downstairs_last_filter_change') }}" upstairs_ac_cooling_numeric:
end: "{{ now() }}" friendly_name: "Upstairs AC Cooling Numeric "
value_template: "{{ 1 if is_state('binary_sensor.upstairs_ac_cooling', 'on') else 0 }}"
- platform: history_stats - platform: integration
name: Upstairs AC Runtime Since Last Filter Change name: Downstairs AC Runtime Raw
entity_id: binary_sensor.upstairs_ac_cooling source: sensor.downstairs_ac_cooling_numeric
state: 'on' unit_time: h
type: time method: left
start: "{{ states('input_datetime.upstairs_last_filter_change') }}" round: 2
end: "{{ now() }}" - platform: integration
name: Upstairs AC Runtime Raw
source: sensor.upstairs_ac_cooling_numeric
unit_time: h
method: left
round: 2
# ---------------------------------------------------------------------------
# Utilitymeters that act like odometers (reset when you swap the filter)
# ---------------------------------------------------------------------------
utility_meter:
downstairs_ac_runtime_since_last_filter_change:
source: sensor.downstairs_ac_runtime_raw
cycle: none # never autoreset
upstairs_ac_runtime_since_last_filter_change:
source: sensor.upstairs_ac_runtime_raw
cycle: none
script: script:
reset_filter_change_date: reset_downstairs_filter:
alias: Reset Downstairs Filter Change Date alias: Reset Downstairs Filter
mode: queued
sequence: sequence:
- service: input_datetime.set_datetime - service: input_datetime.set_datetime
data: data:
entity_id: input_datetime.downstairs_last_filter_change entity_id: input_datetime.downstairs_last_filter_change
datetime: "{{ now().strftime('%Y-%m-%d %H:%M:%S') }}" datetime: "{{ now().strftime('%Y-%m-%d %H:%M:%S') }}"
- service: utility_meter.reset
target:
entity_id: utility_meter.downstairs_ac_runtime_since_last_filter_change
reset_upstairs_filter:
alias: Reset Upstairs Filter
mode: queued
sequence:
- service: input_datetime.set_datetime
data:
entity_id: input_datetime.upstairs_last_filter_change
datetime: "{{ now().strftime('%Y-%m-%d %H:%M:%S') }}"
- service: utility_meter.reset
target:
entity_id: utility_meter.upstairs_ac_runtime_since_last_filter_change
automation: automation:
- alias: Notify Downstairs Filter Change Due - alias: Notify Downstairs Filter Change Due
description: "Notify when AC runtime exceeds threshold since last filter change" description: Notify when downstairs runtime exceeds threshold since last filter change
trigger: trigger:
- platform: numeric_state - platform: numeric_state
entity_id: sensor.downstairs_ac_runtime_since_last_filter_change entity_id: sensor.downstairs_ac_runtime_since_last_filter_change
above: 800 above: 800 # hours
action: action:
- service: script.notify_engine - service: script.notify_engine # <-- keep your existing notify helper
data: data:
title: "Home Maintenance Reminder" title: "Home Maintenance Reminder"
value1: "It's time to change your Downstairs AC filter." value1: "It's time to change your Downstairs AC filter."
value2: "Runtime has exceeded 800 hours. Last changed {{ ((now() - states.input_datetime.downstairs_last_filter_change.last_changed).total_seconds() / 86400) | round(0) }} days ago." value2: >
Runtime has exceeded 800h. Last changed {{ ((now() - states.input_datetime.downstairs_last_filter_change.last_changed).total_seconds() / 86400) | round(0) }} days ago.
who: "Carlo" who: "Carlo"
group: "maintenance" group: "maintenance"
level: "active" level: "active"
- alias: Notify Upstairs Filter Change Due - alias: Notify Upstairs Filter Change Due
description: "Notify when AC runtime exceeds threshold since last filter change" description: Notify when upstairs runtime exceeds threshold since last filter change
trigger: trigger:
- platform: numeric_state - platform: numeric_state
entity_id: sensor.upstairs_ac_runtime_since_last_filter_change entity_id: sensor.upstairs_ac_runtime_since_last_filter_change
above: 450 above: 450 # hours
action: action:
- service: script.notify_engine - service: script.notify_engine
data: data:
title: "Home Maintenance Reminder" title: "Home Maintenance Reminder"
value1: "It's time to change your Upstairs AC filter." value1: "It's time to change your Upstairs AC filter."
value2: "Runtime has exceeded 450 hours. Last changed {{ ((now() - states.input_datetime.upstairs_last_filter_change.last_changed).total_seconds() / 86400) | round(0) }} days ago." value2: >
Runtime has exceeded 450h. Last changed {{ ((now() - states.input_datetime.upstairs_last_filter_change.last_changed).total_seconds() / 86400) | round(0) }} days ago.
who: "Carlo" who: "Carlo"
group: "maintenance" group: "maintenance"
- alias: 'Prevent Upstairs Nest Below 76'
- alias: Prevent Upstairs Nest Below 76
id: 7812fdaf-a3f8-498b-8f07-28e977e528ff id: 7812fdaf-a3f8-498b-8f07-28e977e528ff
trigger: trigger:
- platform: numeric_state - platform: numeric_state
@ -88,8 +129,7 @@ automation:
attribute: temperature attribute: temperature
below: 76 below: 76
action: action:
- delay: - delay: "00:03:00"
minutes: 3
- service: climate.set_temperature - service: climate.set_temperature
data: data:
entity_id: climate.upstairs entity_id: climate.upstairs

View File

@ -0,0 +1,17 @@
#-------------------------------------------
# Setting up nightly reboot schedule for Frigate server via Proxmox
# https://www.vcloudinfo.com/click-here
#-------------------------------------------
automation:
- alias: "Nightly Frigate Server Reboot"
id: nightly_frigate_reboot
description: "Reboots the Frigate server every day at 5 AM"
trigger:
- platform: time
at: "05:00:00"
action:
- service: button.press
target:
entity_id: button.qemu_docker2_101_reboot
mode: single

View File

@ -10,7 +10,7 @@
# Original Repo: https://github.com/CCOSTAN/Home-AssistantConfig # Original Repo: https://github.com/CCOSTAN/Home-AssistantConfig
#------------------------------------------- #-------------------------------------------
#db_url: sqlite:///data/home-assistant_v2.db #db_url: sqlite:///data/home-assistant_v2.db
purge_keep_days: 14 purge_keep_days: 30
include: include:
entities: entities:
- device_tracker.spaceship_location_tracker - device_tracker.spaceship_location_tracker