From bc55e5644e85c440d968e37577cb3c743bd74efc Mon Sep 17 00:00:00 2001 From: Carlo Costanzo Date: Mon, 27 Apr 2026 11:49:51 -0400 Subject: [PATCH] Refresh HA automation and dashboard configs --- config/.HA_VERSION | 2 +- config/automation/Speech/README.md | 2 +- config/automation/Speech/announcements.yaml | 50 ++++++++++++------ .../overview/partials/cameras_cards.yaml | 9 ++-- config/packages/README.md | 1 - config/packages/docker_infrastructure.yaml | 3 +- .../packages/github_watched_repo_scout.yaml | 45 ---------------- config/packages/tugtainer_updates.yaml | 51 +++++++++---------- config/script/README.md | 1 - 9 files changed, 67 insertions(+), 97 deletions(-) delete mode 100644 config/packages/github_watched_repo_scout.yaml diff --git a/config/.HA_VERSION b/config/.HA_VERSION index 420080f9..881a774d 100755 --- a/config/.HA_VERSION +++ b/config/.HA_VERSION @@ -1 +1 @@ -2026.4.3 \ No newline at end of file +2026.4.4 \ No newline at end of file diff --git a/config/automation/Speech/README.md b/config/automation/Speech/README.md index 1b0c173f..e6be044e 100755 --- a/config/automation/Speech/README.md +++ b/config/automation/Speech/README.md @@ -26,7 +26,7 @@ Speech-first automations: contextual announcements, stats briefings, guest mode ### Featured files to browse | File | Why it matters | | --- | --- | -| [announcements.yaml](announcements.yaml) | Daily/occasional broadcast messages with quiet hours. | +| [announcements.yaml](announcements.yaml) | Family and tracked Life360 arrival greetings plus daily/occasional broadcast messages. | | [home_stats.yaml](home_stats.yaml) | Voice summary of house status and interesting stats. | | [guest_mode.yaml](guest_mode.yaml) | Adjust announcements and behaviors while guests are over. | | [High_Wind_Speed_Check.yaml](High_Wind_Speed_Check.yaml) | Warn about severe wind before it causes issues. | diff --git a/config/automation/Speech/announcements.yaml b/config/automation/Speech/announcements.yaml index fa9912d2..504f27c9 100755 --- a/config/automation/Speech/announcements.yaml +++ b/config/automation/Speech/announcements.yaml @@ -1,17 +1,14 @@ -#------------------------------------------- -# People Greeting Announcement -# Description: Announces when family members arrive home -# -# Features: -# - Triggers when a person's state changes from 'not_home' to 'home' -# - Waits for specific sensors to confirm entry -# - Uses speech_engine script for personalized welcome messages -# - Includes responsibility reminders and home status checks -# -# Integration: Uses ChromeCast for audio output -# Follow me https://www.vcloudinfo.com/click-here -# More Blog Posts: https://www.vcloudinfo.com -#------------------------------------------- +###################################################################### +# @CCOSTAN - Follow Me on X +# For more info visit https://www.vcloudinfo.com/click-here +# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig +# ------------------------------------------------------------------- +# People Greeting Announcement - family and Life360 arrival greetings +# Announces covered home arrivals after entry sensor confirmation. +# ------------------------------------------------------------------- +# Notes: `group.arriving` batches simultaneous arrivals; Life360 triggers +# only include tracked people not already covered by `group.family`. +###################################################################### - alias: 'People Greeting' id: 29c5c9dd-550a-4761-a224-78cdc3dd9f43 mode: restart @@ -24,6 +21,24 @@ - person.justin from: 'not_home' to: 'home' + - platform: state + entity_id: + - device_tracker.life360_adriano_costanzo + - device_tracker.life360_amanda_desantis + - device_tracker.life360_gabriella_desantis + - device_tracker.life360_jessica_desantis + - device_tracker.life360_joseph_desantis + - device_tracker.life360_joyce_ruskin + - device_tracker.life360_yolanda_costanzo + to: 'home' + + condition: + - condition: template + value_template: >- + {{ + trigger.from_state is not none + and trigger.from_state.state not in ['home', 'unknown', 'unavailable'] + }} action: # This Group is defined in the groups directory. @@ -44,7 +59,12 @@ - service: script.speech_engine data: personarriving: > - {% set person = expand('group.arriving')|map(attribute='name')|join(' and ') %} + {% set ns = namespace(names=[]) %} + {% for arrival in expand('group.arriving') %} + {% set clean_name = arrival.name | replace('Life360 ', '') | trim %} + {% set ns.names = ns.names + [clean_name.split(' ')[0]] %} + {% endfor %} + {% set person = ns.names | join(' and ') if ns.names else 'someone' %} {%- macro greeting_sentence(person) -%} {{"[Welcome " + person + " home]" }} {%- endmacro -%} diff --git a/config/dashboards/overview/partials/cameras_cards.yaml b/config/dashboards/overview/partials/cameras_cards.yaml index f44d075b..64a8f174 100644 --- a/config/dashboards/overview/partials/cameras_cards.yaml +++ b/config/dashboards/overview/partials/cameras_cards.yaml @@ -30,12 +30,11 @@ - camera_entity: camera.kidsgate - camera_entity: camera.garagecam view: - default: snapshots - update_cycle_camera: true - scan: - enabled: true + default: clips + camera_select: clips + default_cycle_camera: false menu: - style: outside + style: hidden media_gallery: controls: thumbnails: diff --git a/config/packages/README.md b/config/packages/README.md index 8cf57175..707bd2a5 100755 --- a/config/packages/README.md +++ b/config/packages/README.md @@ -47,7 +47,6 @@ Live collection of plug-and-play Home Assistant packages. Each YAML file in this | [logbook_activity_feed.yaml](logbook_activity_feed.yaml) | Dummy `sensor.activity_feed` + helper to write clean Activity entries (Issue #1550). | `sensor.activity_feed`, `script.send_to_logbook` | | [mariadb_monitoring.yaml](mariadb_monitoring.yaml) | MariaDB health sensors and Lovelace dashboard snippet for recorder stats. | `sensor.mariadb_status`, `sensor.database_size` | | [docker_infrastructure.yaml](docker_infrastructure.yaml) | Docker host patching telemetry, container/stack Repairs automation, 20-minute Joanna escalation for persistent container outages using stable configured monitor membership, and weekly scheduled prune actions across docker_10/14/17/69. | `sensor.docker_*_apt_status`, `binary_sensor.*_stack_status`, `sensor.docker_stacks_down_count`, `repairs.create`, `script.joanna_dispatch` | -| [github_watched_repo_scout.yaml](github_watched_repo_scout.yaml) | Nightly Joanna dispatch that reviews unread notifications from watched GitHub repos, recommends HA-config ideas, refreshes strong-candidate issues, and marks processed watched-repo notifications read. | `automation.github_watched_repo_scout_nightly`, `script.joanna_dispatch`, `script.send_to_logbook` | | [proxmox.yaml](proxmox.yaml) | Proxmox runtime and disk pressure monitoring with Repairs + Joanna dispatch for sustained node degradations, plus nightly Frigate reboot. | `binary_sensor.proxmox*_runtime_healthy`, `sensor.proxmox*_disk_used_percentage`, `repairs.create`, `script.joanna_dispatch`, `button.qemu_docker2_101_reboot` | | [synology_dsm.yaml](synology_dsm.yaml) | Synology DSM integration health normalization for Carlo-NAS01 and Carlo-NVR, with Repairs + Joanna dispatch on sustained integration, security, or storage problems. | `binary_sensor.carlo_*_synology_problem`, `sensor.carlo_*_synology_problem_summary`, `repairs.create`, `script.joanna_dispatch` | | [infrastructure.yaml](infrastructure.yaml) | Normalized WAN/DNS/backup/domain/cert health, Glances-backed Docker host disk pressure, and website uptime/latency SLO signals for Infrastructure dashboards, plus nightly backup verification and monthly Joanna HA log hygiene review with GitHub issue follow-up. | `sensor.docker_*_disk_used_percentage`, `automation.docker_host_disk_pressure_monitor`, `binary_sensor.infra_website_uptime_slo_breach`, `binary_sensor.infra_website_latency_degraded`, `automation.infra_backup_nightly_verification`, `script.joanna_dispatch` | diff --git a/config/packages/docker_infrastructure.yaml b/config/packages/docker_infrastructure.yaml index a7b4a4fa..66dea236 100644 --- a/config/packages/docker_infrastructure.yaml +++ b/config/packages/docker_infrastructure.yaml @@ -15,6 +15,7 @@ # Notes: Includes Portainer stack status repairs, 20-minute Joanna dispatch for persistent container outages, and scheduled image prune. # Notes: Outage escalation keys off the configured monitored group so host-wide telemetry drops do not fall out of scope before the delayed Joanna dispatch runs. # Notes: Weekly reconcile should replace retired container-name switches with the current container-ID-prefixed discovery set. +# Notes: Tapple is now served by `games_hub` on `/tapple/`; do not keep a standalone `tapple` container switch in the monitored group. ###################################################################### input_datetime: @@ -144,8 +145,6 @@ switch: - switch.redis_webhooks_engine_container_2 - switch.rvtools_ppt_web_container - switch.rvtools_ppt_web_container_2 - - switch.tapple_container - - switch.tapple_container_2 - switch.tugtainer_agent_container - switch.tugtainer_agent_container_2 - switch.tugtainer_container diff --git a/config/packages/github_watched_repo_scout.yaml b/config/packages/github_watched_repo_scout.yaml deleted file mode 100644 index 77cb2666..00000000 --- a/config/packages/github_watched_repo_scout.yaml +++ /dev/null @@ -1,45 +0,0 @@ -###################################################################### -# @CCOSTAN - Follow Me on X -# For more info visit https://www.vcloudinfo.com/click-here -# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig -# ------------------------------------------------------------------- -# GitHub Watched Repo Scout - Nightly Joanna review of watched repos -# Schedules Joanna to review unread watched-repo notifications for HA ideas. -# ------------------------------------------------------------------- -# Notes: Joanna native GitHub scout logic runs in docker_17/codex_appliance. -# Notes: Successfully processed watched-repo notifications are marked read by Joanna. -###################################################################### - -automation: - - id: github_watched_repo_scout_nightly - alias: GitHub Watched Repo Scout - Nightly Joanna Review - description: Ask Joanna nightly to review unread watched-repo GitHub notifications for Home Assistant ideas. - mode: single - trigger: - - platform: time - at: "03:15:00" - variables: - trigger_context: "HA automation github_watched_repo_scout_nightly (GitHub Watched Repo Scout - Nightly Joanna Review)" - action: - - service: script.send_to_logbook - data: - topic: "GITHUB" - message: "Requesting Joanna nightly watched-repo scout review." - - service: script.joanna_dispatch - data: - trigger_context: "{{ trigger_context }}" - source: "home_assistant_automation.github_watched_repo_scout_nightly" - summary: "Nightly GitHub watched-repo scout review for Home Assistant ideas" - diagnostics: >- - schedule=03:15:00, - inbox_scope=unread, - repo_scope=watched, - create_issues=true, - mark_read_on_success=true - request: >- - Review unread GitHub notifications from watched repositories only. - Look for interesting Home Assistant configuration ideas we could apply in - our own repo, send a concise nightly recap, create or refresh one - GitHub issue per strong candidate in CCOSTAN/Home-AssistantConfig, and - mark each watched-repo notification read only after it has been - processed successfully. Leave failed items unread for the next run. diff --git a/config/packages/tugtainer_updates.yaml b/config/packages/tugtainer_updates.yaml index 9cdb628f..c1e8f022 100644 --- a/config/packages/tugtainer_updates.yaml +++ b/config/packages/tugtainer_updates.yaml @@ -9,7 +9,7 @@ # ------------------------------------------------------------------- # Notes: Expects JSON with title/message/type from the Tugtainer template. # Notes: Creates persistent notifications and stamps last-update time. -# Notes: Fires `tugtainer_available_detected` when report contains `### Available:`. +# Notes: Fires update events independently when a report has both Available and Updated sections. # Notes: Fires `tugtainer_home_assistant_core_updated` when `### Updated:` includes Home Assistant. # Notes: Home Assistant changelog dispatch uses core-YYYY.M URL format from parsed/fallback version. # Notes: Joanna dispatch cooldown uses mode=single with a 24-hour delay lockout. @@ -89,29 +89,28 @@ automation: data: title: "{{ title }}" message: "{{ full_message }}" - - choose: - - conditions: - - condition: template - value_template: "{{ has_available_section }}" - sequence: - - event: tugtainer_available_detected - event_data: - title: "{{ title }}" - event_type: "{{ event_type }}" - message: "{{ message }}" - - conditions: - - condition: template - value_template: "{{ ha_core_update_detected and (ha_core_version_minor | trim != '') }}" - sequence: - - event: tugtainer_home_assistant_core_updated - event_data: - title: "{{ title }}" - event_type: "{{ event_type }}" - message: "{{ message }}" - core_version_full: "{{ ha_core_version_full | trim }}" - core_version_minor: "{{ ha_core_version_minor | trim }}" - changelog_url: "{{ ha_core_changelog_url | trim }}" - report_excerpt: "{{ ha_report_excerpt | trim }}" + - if: + - condition: template + value_template: "{{ has_available_section }}" + then: + - event: tugtainer_available_detected + event_data: + title: "{{ title }}" + event_type: "{{ event_type }}" + message: "{{ message }}" + - if: + - condition: template + value_template: "{{ ha_core_update_detected and (ha_core_version_minor | trim != '') }}" + then: + - event: tugtainer_home_assistant_core_updated + event_data: + title: "{{ title }}" + event_type: "{{ event_type }}" + message: "{{ message }}" + core_version_full: "{{ ha_core_version_full | trim }}" + core_version_minor: "{{ ha_core_version_minor | trim }}" + changelog_url: "{{ ha_core_changelog_url | trim }}" + report_excerpt: "{{ ha_report_excerpt | trim }}" - alias: "Tugtainer - Dispatch Joanna For Available Updates" id: tugtainer_dispatch_joanna_for_available_updates @@ -149,7 +148,7 @@ automation: - alias: "Tugtainer - Dispatch Joanna For Home Assistant Core Digest" id: tugtainer_dispatch_joanna_for_home_assistant_core_digest - description: "Dispatch Joanna after Home Assistant core is updated so changelog actions are captured in a GitHub digest issue." + description: "Dispatch Joanna after Home Assistant core is updated so relevant changelog notes reach the morning digest." mode: queued trigger: - platform: event @@ -187,7 +186,7 @@ automation: source: "home_assistant_automation.tugtainer_home_assistant_core_digest" summary: >- Home Assistant core updated to {{ core_version_full }} via Tugtainer. - Build changelog digest and open/refresh the GitHub Update Digest issue. + Queue a concise changelog note for the morning digest. entity_ids: - "input_datetime.tugtainer_last_update" diagnostics: >- diff --git a/config/script/README.md b/config/script/README.md index 86a44b41..e6fecf46 100755 --- a/config/script/README.md +++ b/config/script/README.md @@ -53,7 +53,6 @@ What the helper normalizes before the BearClaw intake call: Current automations that kick off automated resolutions (via `script.joanna_dispatch`): | Automation ID | Alias | File | | --- | --- | --- | -| `github_watched_repo_scout_nightly` | GitHub Watched Repo Scout - Nightly Joanna Review | [../packages/github_watched_repo_scout.yaml](../packages/github_watched_repo_scout.yaml) | | `mqtt_open_repair_on_failure` | MQTT - Open Repair On Failure | [../packages/mqtt_status.yaml](../packages/mqtt_status.yaml) | | `onenote_indexer_daily_delete_maintenance` | OneNote Indexer - Daily Delete Maintenance Request | [../packages/onenote_indexer.yaml](../packages/onenote_indexer.yaml) | | `onenote_indexer_failure_open_repair` | OneNote Indexer - Open Repair On Failure | [../packages/onenote_indexer.yaml](../packages/onenote_indexer.yaml) |