From d3b2e7ecf725d12f207e46d7091f00d80fe8f79e Mon Sep 17 00:00:00 2001 From: Carlo Costanzo Date: Thu, 17 Sep 2026 17:06:47 -0400 Subject: [PATCH] Refine infrastructure and maintenance behavior --- README.md | 8 +++--- config/README.md | 5 ++-- config/packages/README.md | 10 ++++---- config/packages/bgw_gateway.yaml | 2 ++ config/packages/docker_infrastructure.yaml | 4 +-- config/packages/infrastructure.yaml | 11 ++++++-- config/packages/kiosk_tablet.yaml | 19 +++----------- config/packages/proxmox.yaml | 30 ++++++++++++++++++++-- 8 files changed, 57 insertions(+), 32 deletions(-) diff --git a/README.md b/README.md index 3be00da6..0074d115 100755 --- a/README.md +++ b/README.md @@ -18,10 +18,10 @@ Live, personal Home Assistant configuration shared for **browsing and inspiration**. This is not a turnkey clone-and-run setup; borrow ideas, adapt entity IDs/secrets, and test in your own environment. -### Latest video: Get Early Tesla Tire Pressure Alerts in Home Assistant -[![Get Early Tesla Tire Pressure Alerts in Home Assistant](https://www.vcloudinfo.com/wp-content/uploads/2026/09/home-assistant-tesla-tire-pressure-alert-scaled.jpg)](https://youtu.be/hDNyZfTfTtE) +### Latest video: Monitor an AT&T BGW210/BGW320 Gateway in Home Assistant +[![Monitor an AT&T BGW210/BGW320 Gateway in Home Assistant](https://www.vcloudinfo.com/wp-content/uploads/2026/09/monitor-att-bgw210-bgw320-gateway-home-assistant-scaled.jpg)](https://youtu.be/ovNJnaVPWAY) -This Tesla Fleet walkthrough turns the Model Y's four PSI sensors into an early warning below 40 PSI, names the tire in a Home Assistant phone alert, and offers one-day or three-day snoozes shared with Joanna's morning briefing. [![YAML source: tesla_model_y](https://img.shields.io/static/v1?label=YAML&message=tesla_model_y&color=lightgrey&logo=github&logoColor=181717)](config/packages/tesla_model_y.yaml) [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/hDNyZfTfTtE) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/09/home-assistant-tesla-tire-pressure-alerts.html) +This walkthrough turns the read-only status pages on an AT&T gateway into a small Docker API, recorder-friendly Home Assistant entities, and a compact Network dashboard card. [![YAML source: bgw_gateway](https://img.shields.io/static/v1?label=YAML&message=bgw_gateway&color=lightgrey&logo=github&logoColor=181717)](config/packages/bgw_gateway.yaml) [![Public project: BGW Probe](https://img.shields.io/static/v1?label=GitHub&message=BGW%20Probe&color=lightgrey&logo=github&logoColor=181717)](https://github.com/CCOSTAN/bgw-probe) [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/ovNJnaVPWAY) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/09/monitor-att-bgw210-bgw320-gateway-home-assistant.html) ### Quick navigation - You are here: `/` (root repo guide) @@ -47,7 +47,7 @@ This Tesla Fleet walkthrough turns the Model Y's four PSI sensors into an early ### Featured examples to start with - Windows Codex usage and reset alerts: [![GitHub source: CodexTray](https://img.shields.io/static/v1?label=GitHub&message=CodexTray&color=lightgrey&logo=github&logoColor=181717)](https://github.com/CCOSTAN/CodexTray), [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/5EFgP04-Ssk), [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/08/codex-tray-monitor-openai-codex-usage-windows.html) - WAN reachability, quality, Ookla capacity, and freshness monitoring: [![YAML source: infrastructure](https://img.shields.io/static/v1?label=YAML&message=infrastructure&color=lightgrey&logo=github&logoColor=181717)](config/packages/infrastructure.yaml), [![YAML source: speedtest](https://img.shields.io/static/v1?label=YAML&message=speedtest&color=lightgrey&logo=github&logoColor=181717)](config/packages/speedtest.yaml), [![YAML source: WAN dashboard](https://img.shields.io/static/v1?label=YAML&message=WAN%20dashboard&color=lightgrey&logo=github&logoColor=181717)](config/dashboards/infrastructure/views/04_wan.yaml), [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/F-PpsKkzcrM), [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/08/home-assistant-internet-speed-monitoring-ookla.html) -- Read-only BGW gateway health, link, uptime, and traffic telemetry: [![YAML source: bgw_gateway](https://img.shields.io/static/v1?label=YAML&message=bgw_gateway&color=lightgrey&logo=github&logoColor=181717)](config/packages/bgw_gateway.yaml), [![Public project: BGW Probe](https://img.shields.io/static/v1?label=GitHub&message=BGW%20Probe&color=lightgrey&logo=github&logoColor=181717)](https://github.com/CCOSTAN/bgw-probe), [![YAML source: Network dashboard](https://img.shields.io/static/v1?label=YAML&message=Network%20dashboard&color=lightgrey&logo=github&logoColor=181717)](config/dashboards/infrastructure/partials/network_sections.yaml) +- Read-only BGW gateway health, link, uptime, and traffic telemetry: [![YAML source: bgw_gateway](https://img.shields.io/static/v1?label=YAML&message=bgw_gateway&color=lightgrey&logo=github&logoColor=181717)](config/packages/bgw_gateway.yaml), [![Public project: BGW Probe](https://img.shields.io/static/v1?label=GitHub&message=BGW%20Probe&color=lightgrey&logo=github&logoColor=181717)](https://github.com/CCOSTAN/bgw-probe), [![YAML source: Network dashboard](https://img.shields.io/static/v1?label=YAML&message=Network%20dashboard&color=lightgrey&logo=github&logoColor=181717)](config/dashboards/infrastructure/partials/network_sections.yaml), [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/ovNJnaVPWAY), [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/09/monitor-att-bgw210-bgw320-gateway-home-assistant.html) - Mobile quick-access dashboard with large two-column controls: [![YAML source: dashboards](https://img.shields.io/static/v1?label=YAML&message=dashboards&color=lightgrey&logo=github&logoColor=181717)](config/dashboards), [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/ujP-zYLEso8), [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/07/home-assistant-mobile-dashboard-big-buttons.html) - Alarm and perimeter monitoring: [![YAML source: alarm](https://img.shields.io/static/v1?label=YAML&message=alarm&color=lightgrey&logo=github&logoColor=181717)](config/packages/alarm.yaml) - Garage routines and entry lighting: [![YAML source: garadget](https://img.shields.io/static/v1?label=YAML&message=garadget&color=lightgrey&logo=github&logoColor=181717)](config/packages/garadget.yaml), [![YAML source: garage_entry_light](https://img.shields.io/static/v1?label=YAML&message=garage_entry_light&color=lightgrey&logo=github&logoColor=181717)](config/automation/garage_entry_light.yaml), [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/wFO0H5zgnzk) diff --git a/config/README.md b/config/README.md index 28e2d1ee..61753aae 100755 --- a/config/README.md +++ b/config/README.md @@ -34,6 +34,7 @@ Live view of the `config/` directory my production Home Assistant instance loads - **Packages (`packages/`)** – complete subsystems that bundle sensors, switches, automations, scripts, and lovelace assets for a single feature (alarm, garage, water shutoff, etc.). - **Container updates** – [![YAML source: tugtainer_updates](https://img.shields.io/static/v1?label=YAML&message=tugtainer_updates&color=lightgrey&logo=github&logoColor=181717)](packages/tugtainer_updates.yaml) processes Available reports without persistent alerts, keeps Updated/Failed outcomes visible, and dispatches controlled review work. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/4NNOkXzUyYw) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/07/home-assistant-tugtainer-docker-updates.html) - **WAN monitoring** – [![YAML source: infrastructure](https://img.shields.io/static/v1?label=YAML&message=infrastructure&color=lightgrey&logo=github&logoColor=181717)](packages/infrastructure.yaml), [![YAML source: speedtest](https://img.shields.io/static/v1?label=YAML&message=speedtest&color=lightgrey&logo=github&logoColor=181717)](packages/speedtest.yaml), and the [WAN dashboard](dashboards/infrastructure/views/04_wan.yaml) separate multi-probe reachability, continuous latency/loss, Ookla capacity, and result freshness. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/F-PpsKkzcrM) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/08/home-assistant-internet-speed-monitoring-ookla.html) +- **BGW gateway monitoring** – [![YAML source: bgw_gateway](https://img.shields.io/static/v1?label=YAML&message=bgw_gateway&color=lightgrey&logo=github&logoColor=181717)](packages/bgw_gateway.yaml), the [BGW Probe project](https://github.com/CCOSTAN/bgw-probe), and the [Network dashboard](dashboards/infrastructure/partials/network_sections.yaml) expose read-only gateway reachability, broadband link, uptime, speed, and traffic counters. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/ovNJnaVPWAY) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/09/monitor-att-bgw210-bgw320-gateway-home-assistant.html) - **Entity cleanup** – [![YAML source: docker_infrastructure](https://img.shields.io/static/v1?label=YAML&message=docker_infrastructure&color=lightgrey&logo=github&logoColor=181717)](packages/docker_infrastructure.yaml), [![YAML source: infrastructure](https://img.shields.io/static/v1?label=YAML&message=infrastructure&color=lightgrey&logo=github&logoColor=181717)](packages/infrastructure.yaml), [recorder](recorder.yaml), and [logbook](logbook.yaml) show how the Portainer and Glances audit kept proven history while removing stale registry noise. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/aceV7ObKJVA) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/07/using-codex-clean-up-home-assistant-entities.html) - **Automations (`automation/`)** – event-driven YAML broken out by area or device; the legacy `automations.yaml` remains for UI-created flows. The Frigate driveway example turns a car-specific zone and 30-second loiter into a two-phone camera alert plus LLM-backed speech. [![YAML source: driveway_parked_car](https://img.shields.io/static/v1?label=YAML&message=driveway_parked_car&color=lightgrey&logo=github&logoColor=181717)](automation/driveway_parked_car.yaml) [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/X9qrywP3XS0) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/09/home-assistant-frigate-driveway-car-alert.html) - **Scripts & scenes (`script/`, `scene/`)** – curated lighting, notification, and AGENT engineer handoff helpers used by presence, holiday, seasonal, and infrastructure routines. @@ -45,7 +46,7 @@ Live view of the `config/` directory my production Home Assistant instance loads ### Featured automations by section | Section | Why start here | Featured automation(s) | | --- | --- | --- | -| Packages | Self-contained subsystems that highlight patterns like combined alerts + actions. | [![YAML source: alarm](https://img.shields.io/static/v1?label=YAML&message=alarm&color=lightgrey&logo=github&logoColor=181717)](packages/alarm.yaml), [![YAML source: garadget](https://img.shields.io/static/v1?label=YAML&message=garadget&color=lightgrey&logo=github&logoColor=181717)](packages/garadget.yaml), [![YAML source: infrastructure](https://img.shields.io/static/v1?label=YAML&message=infrastructure&color=lightgrey&logo=github&logoColor=181717)](packages/infrastructure.yaml), [![YAML source: speedtest](https://img.shields.io/static/v1?label=YAML&message=speedtest&color=lightgrey&logo=github&logoColor=181717)](packages/speedtest.yaml), [![YAML source: llmvision](https://img.shields.io/static/v1?label=YAML&message=llmvision&color=lightgrey&logo=github&logoColor=181717)](packages/llmvision.yaml), [![YAML source: phynplus](https://img.shields.io/static/v1?label=YAML&message=phynplus&color=lightgrey&logo=github&logoColor=181717)](packages/phynplus.yaml), [![YAML source: maintenance_log](https://img.shields.io/static/v1?label=YAML&message=maintenance_log&color=lightgrey&logo=github&logoColor=181717)](packages/maintenance_log.yaml), [![YAML source: tugtainer_updates](https://img.shields.io/static/v1?label=YAML&message=tugtainer_updates&color=lightgrey&logo=github&logoColor=181717)](packages/tugtainer_updates.yaml), [![YAML source: rachio](https://img.shields.io/static/v1?label=YAML&message=rachio&color=lightgrey&logo=github&logoColor=181717)](packages/rachio.yaml), [![YAML source: kiosk_tablet](https://img.shields.io/static/v1?label=YAML&message=kiosk_tablet&color=lightgrey&logo=github&logoColor=181717)](packages/kiosk_tablet.yaml), [![YAML source: vacation_mode](https://img.shields.io/static/v1?label=YAML&message=vacation_mode&color=lightgrey&logo=github&logoColor=181717)](packages/vacation_mode.yaml), [![YAML source: vacuum](https://img.shields.io/static/v1?label=YAML&message=vacuum&color=lightgrey&logo=github&logoColor=181717)](packages/vacuum.yaml), [![YAML source: powerwall](https://img.shields.io/static/v1?label=YAML&message=powerwall&color=lightgrey&logo=github&logoColor=181717)](packages/powerwall.yaml), [![YAML source: tesla_model_y](https://img.shields.io/static/v1?label=YAML&message=tesla_model_y&color=lightgrey&logo=github&logoColor=181717)](packages/tesla_model_y.yaml) | +| Packages | Self-contained subsystems that highlight patterns like combined alerts + actions. | [![YAML source: alarm](https://img.shields.io/static/v1?label=YAML&message=alarm&color=lightgrey&logo=github&logoColor=181717)](packages/alarm.yaml), [![YAML source: garadget](https://img.shields.io/static/v1?label=YAML&message=garadget&color=lightgrey&logo=github&logoColor=181717)](packages/garadget.yaml), [![YAML source: infrastructure](https://img.shields.io/static/v1?label=YAML&message=infrastructure&color=lightgrey&logo=github&logoColor=181717)](packages/infrastructure.yaml), [![YAML source: speedtest](https://img.shields.io/static/v1?label=YAML&message=speedtest&color=lightgrey&logo=github&logoColor=181717)](packages/speedtest.yaml), [![YAML source: bgw_gateway](https://img.shields.io/static/v1?label=YAML&message=bgw_gateway&color=lightgrey&logo=github&logoColor=181717)](packages/bgw_gateway.yaml), [![YAML source: llmvision](https://img.shields.io/static/v1?label=YAML&message=llmvision&color=lightgrey&logo=github&logoColor=181717)](packages/llmvision.yaml), [![YAML source: phynplus](https://img.shields.io/static/v1?label=YAML&message=phynplus&color=lightgrey&logo=github&logoColor=181717)](packages/phynplus.yaml), [![YAML source: maintenance_log](https://img.shields.io/static/v1?label=YAML&message=maintenance_log&color=lightgrey&logo=github&logoColor=181717)](packages/maintenance_log.yaml), [![YAML source: tugtainer_updates](https://img.shields.io/static/v1?label=YAML&message=tugtainer_updates&color=lightgrey&logo=github&logoColor=181717)](packages/tugtainer_updates.yaml), [![YAML source: rachio](https://img.shields.io/static/v1?label=YAML&message=rachio&color=lightgrey&logo=github&logoColor=181717)](packages/rachio.yaml), [![YAML source: kiosk_tablet](https://img.shields.io/static/v1?label=YAML&message=kiosk_tablet&color=lightgrey&logo=github&logoColor=181717)](packages/kiosk_tablet.yaml), [![YAML source: vacation_mode](https://img.shields.io/static/v1?label=YAML&message=vacation_mode&color=lightgrey&logo=github&logoColor=181717)](packages/vacation_mode.yaml), [![YAML source: vacuum](https://img.shields.io/static/v1?label=YAML&message=vacuum&color=lightgrey&logo=github&logoColor=181717)](packages/vacuum.yaml), [![YAML source: powerwall](https://img.shields.io/static/v1?label=YAML&message=powerwall&color=lightgrey&logo=github&logoColor=181717)](packages/powerwall.yaml), [![YAML source: tesla_model_y](https://img.shields.io/static/v1?label=YAML&message=tesla_model_y&color=lightgrey&logo=github&logoColor=181717)](packages/tesla_model_y.yaml) | | Automations | Real-world triggers that tie Zwave, MQTT, REST, and Frigate occupancy events into the rest of the house. | [![YAML source: driveway_parked_car](https://img.shields.io/static/v1?label=YAML&message=driveway_parked_car&color=lightgrey&logo=github&logoColor=181717)](automation/driveway_parked_car.yaml), [![YAML source: garage_entry_light](https://img.shields.io/static/v1?label=YAML&message=garage_entry_light&color=lightgrey&logo=github&logoColor=181717)](automation/garage_entry_light.yaml), [![YAML source: dark_rainy_day](https://img.shields.io/static/v1?label=YAML&message=dark_rainy_day&color=lightgrey&logo=github&logoColor=181717)](automation/dark_rainy_day.yaml), [![YAML source: dash_buttons](https://img.shields.io/static/v1?label=YAML&message=dash_buttons&color=lightgrey&logo=github&logoColor=181717)](automation/dash_buttons.yaml) | | Scripts | Reusable building blocks for lighting, notifications, safety responses, and Joanna/BearClaw remediation dispatch. | [![YAML source: joanna_dispatch](https://img.shields.io/static/v1?label=YAML&message=joanna_dispatch&color=lightgrey&logo=github&logoColor=181717)](script/joanna_dispatch.yaml), [![YAML source: notify_engine](https://img.shields.io/static/v1?label=YAML&message=notify_engine&color=lightgrey&logo=github&logoColor=181717)](script/notify_engine.yaml), [![YAML source: speech_engine](https://img.shields.io/static/v1?label=YAML&message=speech_engine&color=lightgrey&logo=github&logoColor=181717)](script/speech_engine.yaml) | | Scenes | Seasonal and ambiance presets that the scripts and automations call into. | [![YAML source: monthly_colors](https://img.shields.io/static/v1?label=YAML&message=monthly_colors&color=lightgrey&logo=github&logoColor=181717)](scene/monthly_colors.yaml), [![YAML source: living_room](https://img.shields.io/static/v1?label=YAML&message=living_room&color=lightgrey&logo=github&logoColor=181717)](scene/living_room.yaml) | @@ -53,7 +54,7 @@ Live view of the `config/` directory my production Home Assistant instance loads | Dashboards & Media | Desktop control-center, mobile quick-access, and purpose-built kiosk views, UI chrome, floorplans, and automation assets. | [dashboards](dashboards), [WAN dashboard](dashboards/infrastructure/views/04_wan.yaml), [Bedroom dashboard](dashboards/bedroom), [![Watch WAN walkthrough](https://img.shields.io/badge/Watch-WAN%20Monitoring-FF0000?logo=youtube&logoColor=white)](https://youtu.be/F-PpsKkzcrM), [topology diagram](../README.md#network-diagram), [media/](media) | | Seasonal Audio | Cuckoo clock with Halloween and Christmas sound packs. | [![YAML source: CucKoo_Clock](https://img.shields.io/static/v1?label=YAML&message=CucKoo_Clock&color=lightgrey&logo=github&logoColor=181717)](automation/System/CucKoo_Clock.yaml) | -The latest walkthrough uses Tesla Fleet's four PSI sensors to send an early warning below 40 PSI and share one-day or three-day snoozes with Joanna's morning briefing. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/hDNyZfTfTtE) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/09/home-assistant-tesla-tire-pressure-alerts.html). The Home Assistant implementation is [![YAML source: tesla_model_y](https://img.shields.io/static/v1?label=YAML&message=tesla_model_y&color=lightgrey&logo=github&logoColor=181717)](packages/tesla_model_y.yaml). The earlier driveway, WAN, mobile-dashboard, air-quality, entity-cleanup, Tugtainer, water-softener, HVAC, Powerwall, leak-detection, kiosk, and LLM Vision walkthroughs remain available in their featured rows. +The latest walkthrough turns an AT&T BGW210/BGW320 gateway's read-only status pages into a small Docker API, Home Assistant entities, and a Network dashboard card. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/ovNJnaVPWAY) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/09/monitor-att-bgw210-bgw320-gateway-home-assistant.html). The reusable collector is [BGW Probe](https://github.com/CCOSTAN/bgw-probe), and the Home Assistant implementation is [![YAML source: bgw_gateway](https://img.shields.io/static/v1?label=YAML&message=bgw_gateway&color=lightgrey&logo=github&logoColor=181717)](packages/bgw_gateway.yaml). The earlier Tesla tire-pressure, driveway, WAN, mobile-dashboard, air-quality, entity-cleanup, Tugtainer, water-softener, HVAC, Powerwall, leak-detection, kiosk, and LLM Vision walkthroughs remain available in their featured rows. ### Gear tied to these automations (affiliate links) Only including devices that have active references in the files above or an open implementation issue. diff --git a/config/packages/README.md b/config/packages/README.md index 3d2a8abb..0f2bf508 100755 --- a/config/packages/README.md +++ b/config/packages/README.md @@ -37,7 +37,7 @@ Live collection of plug-and-play Home Assistant packages. Each YAML file in this - Scan the comments at the top of each package for credential requirements, MQTT topics, or REST endpoints that need to be swapped. - Need reusable triggers or button automations? Check the companion [triggers](triggers) subfolder for examples before rolling your own. -Kitchen Show note: `kiosk_tablet.yaml` uses Kiosk Satellite's native ESPHome entity set for display control, health, screenshots, and updates. The policy keeps the panel reachable and corrects master volume to 13% at 08:00 and after Home Assistant or kiosk startup; while the household is asleep or away, the Dim screensaver goes dark instead of using unreliable true panel-off. A Frigate Driveway alert wakes both kiosks and holds the live Driveway feed until occupancy clears or the ten-minute safety limit expires, below Garage and Front Door in camera priority. +Kitchen Show note: `kiosk_tablet.yaml` uses Kiosk Satellite's native ESPHome entity set for display control, health, screenshots, and updates. The policy keeps the panel reachable and corrects master volume to 13% at 08:00 and after Home Assistant or kiosk startup; while `group.bed` is on or the family is away, the Dim screensaver goes dark instead of using unreliable true panel-off. A Frigate Driveway alert wakes both kiosks and holds the live Driveway feed until occupancy clears or the ten-minute safety limit expires, below Garage and Front Door in camera priority. ### Featured packages (live today) | Package | What it unlocks | Notable entities / services | @@ -54,10 +54,10 @@ Kitchen Show note: `kiosk_tablet.yaml` uses Kiosk Satellite's native ESPHome ent | [![YAML source: mariadb_monitoring](https://img.shields.io/static/v1?label=YAML&message=mariadb_monitoring&color=lightgrey&logo=github&logoColor=181717)](mariadb_monitoring.yaml) | MariaDB health sensors and Lovelace dashboard snippet for recorder stats. | `sensor.mariadb_status`, `sensor.database_size` | | [![YAML source: llmvision](https://img.shields.io/static/v1?label=YAML&message=llmvision&color=lightgrey&logo=github&logoColor=181717)](llmvision.yaml) | Vision-backed garage-can and front-door package checks with rate-limited, downscaled OpenAI calls for package detection. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/nAhCezFetvI) | `input_button.llmvision_*`, `binary_sensor.front_door_packages_present`, `llmvision.stream_analyzer` | | [![YAML source: docker_infrastructure](https://img.shields.io/static/v1?label=YAML&message=docker_infrastructure&color=lightgrey&logo=github&logoColor=181717)](docker_infrastructure.yaml) | Docker host patching telemetry with a staggered daily 06:00 check-then-update window, persisted maintenance deadlines, container/stack Repairs automation, retained Portainer health telemetry, retired Portainer image-update controls, 20-minute Joanna escalation for persistent container outages including stuck `restarting`/`created` states, and weekly scheduled prune actions across docker_10/13/14/17/69. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/aceV7ObKJVA) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/07/using-codex-clean-up-home-assistant-entities.html) | `sensor.docker_*_apt_status`, `input_datetime.apt_docker_*_action_due`, `binary_sensor.portainer_status_2`, `sensor.portainer_cpu_usage_total_2`, `sensor.portainer_memory_usage_percentage_2`, `binary_sensor.*_stack_status`, `sensor.docker_stacks_down_count`, `repairs.create`, `repairs.remove`, `script.joanna_dispatch` | -| [![YAML source: proxmox](https://img.shields.io/static/v1?label=YAML&message=proxmox&color=lightgrey&logo=github&logoColor=181717)](proxmox.yaml) | Proxmox update detection with amber dashboard maintenance state, 02:15 Joanna patch orchestration, kernel-refresh handoff hints, sequential migration and capacity gates, plus runtime and disk pressure monitoring. Docker14 recovery startup is pre-authorized only after expected VM placement and memory headroom are verified. Update availability does not create Repairs. | `binary_sensor.node_proxmox*_updates_packages`, `sensor.node_proxmox*_total_updates`, `script.joanna_dispatch`, `binary_sensor.proxmox*_runtime_healthy`, `sensor.proxmox*_disk_used_percentage` | +| [![YAML source: proxmox](https://img.shields.io/static/v1?label=YAML&message=proxmox&color=lightgrey&logo=github&logoColor=181717)](proxmox.yaml) | Proxmox update detection with amber dashboard maintenance state, 02:15 Joanna patch orchestration, a self-releasing four-hour container-alert fail-safe lease, kernel-refresh handoff hints, sequential migration and capacity gates, plus runtime and disk pressure monitoring. Docker14 recovery startup is pre-authorized only after expected VM placement and memory headroom are verified. Update availability does not create Repairs. | `binary_sensor.node_proxmox*_updates_packages`, `sensor.node_proxmox*_total_updates`, `input_datetime.docker_container_alerts_snooze_until`, `script.joanna_dispatch`, `binary_sensor.proxmox*_runtime_healthy`, `sensor.proxmox*_disk_used_percentage` | | [![YAML source: synology_dsm](https://img.shields.io/static/v1?label=YAML&message=synology_dsm&color=lightgrey&logo=github&logoColor=181717)](synology_dsm.yaml) | Synology DSM integration health normalization for Carlo-NAS01 and Carlo-NVR, with outage-aware Joanna-first handling for lone post-outage volume warnings and Repairs escalation for persistent or non-outage problems. | `binary_sensor.carlo_*_synology_problem`, `sensor.carlo_*_synology_problem_summary`, `binary_sensor.powerwall_grid_status`, `repairs.create`, `script.joanna_dispatch` | -| [![YAML source: infrastructure](https://img.shields.io/static/v1?label=YAML&message=infrastructure&color=lightgrey&logo=github&logoColor=181717)](infrastructure.yaml) | Corroborated multi-probe WAN reachability, continuous latency/loss quality tiers, separate Ookla CLI capacity snapshots, normalized DNS/backup/domain/cert health, Nebula Sync and promoted IoT primary/backup Pi-hole consistency monitoring with Joanna dispatch, Glances-backed Docker host disk pressure with Joanna-only warning cleanup and critical Repairs, quiet Bear Stone and website-down Repairs/Joanna remediation without phone alerts, uptime/latency SLO signals, nightly backup verification, and monthly Joanna HA log hygiene review with public-safe GitHub issue follow-up. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/F-PpsKkzcrM) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/08/home-assistant-internet-speed-monitoring-ookla.html) | `sensor.infra_wan_reachability`, `binary_sensor.infra_wan_capacity_degraded`, `binary_sensor.infra_wan_capacity_stale`, `binary_sensor.infra_wan_sustained_degradation`, `binary_sensor.infra_wan_severe_degradation`, `binary_sensor.infra_wan_critical`, `sensor.ookla_speedtest_download`, `sensor.ookla_speedtest_upload`, `sensor.infra_nebula_sync_dns_consistency`, `sensor.infra_pihole_iot_dns_consistency`, `binary_sensor.infra_nebula_sync_degraded`, `binary_sensor.infra_pihole_iot_dns_degraded`, `sensor.docker_*_disk_used_percentage`, `automation.infra_nebula_sync_health_dispatch`, `automation.infra_pihole_iot_dns_drift_dispatch`, `automation.docker_host_disk_pressure_monitor`, `automation.infrastructure_website_down_repair_and_dispatch`, `binary_sensor.infra_website_uptime_slo_breach`, `binary_sensor.infra_website_latency_degraded`, `automation.infra_backup_nightly_verification`, `script.joanna_dispatch` | -| [![YAML source: bgw_gateway](https://img.shields.io/static/v1?label=YAML&message=bgw_gateway&color=lightgrey&logo=github&logoColor=181717)](bgw_gateway.yaml) | Pulls the public-safe [BGW Probe](https://github.com/CCOSTAN/bgw-probe) API into Home Assistant as gateway reachability, broadband link, uptime, negotiated speed, byte, error, and drop telemetry. | `sensor.bgw_gateway_status`, `binary_sensor.bgw_gateway_reachable`, `binary_sensor.bgw_broadband_connection`, `sensor.bgw_gateway_uptime`, `sensor.bgw_broadband_receive_bytes`, `sensor.bgw_broadband_transmit_bytes` | +| [![YAML source: infrastructure](https://img.shields.io/static/v1?label=YAML&message=infrastructure&color=lightgrey&logo=github&logoColor=181717)](infrastructure.yaml) | Corroborated multi-probe WAN reachability, continuous latency/loss quality tiers, separate Ookla CLI capacity snapshots, normalized DNS/backup/domain/cert health, maintenance-aware Nebula Sync and promoted IoT primary/backup Pi-hole consistency monitoring with Joanna dispatch, Glances-backed Docker host disk pressure with Joanna-only warning cleanup and critical Repairs, quiet Bear Stone and website-down Repairs/Joanna remediation without phone alerts, uptime/latency SLO signals, nightly backup verification, and monthly Joanna HA log hygiene review with public-safe GitHub issue follow-up. Nebula remediation is container-scoped and never changes Docker14 VM power or placement. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/F-PpsKkzcrM) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/08/home-assistant-internet-speed-monitoring-ookla.html) | `sensor.infra_wan_reachability`, `binary_sensor.infra_wan_capacity_degraded`, `binary_sensor.infra_wan_capacity_stale`, `binary_sensor.infra_wan_sustained_degradation`, `binary_sensor.infra_wan_severe_degradation`, `binary_sensor.infra_wan_critical`, `sensor.ookla_speedtest_download`, `sensor.ookla_speedtest_upload`, `sensor.infra_nebula_sync_dns_consistency`, `sensor.infra_pihole_iot_dns_consistency`, `binary_sensor.infra_nebula_sync_degraded`, `binary_sensor.infra_pihole_iot_dns_degraded`, `sensor.docker_*_disk_used_percentage`, `automation.infra_nebula_sync_health_dispatch`, `automation.infra_pihole_iot_dns_drift_dispatch`, `automation.docker_host_disk_pressure_monitor`, `automation.infrastructure_website_down_repair_and_dispatch`, `binary_sensor.infra_website_uptime_slo_breach`, `binary_sensor.infra_website_latency_degraded`, `automation.infra_backup_nightly_verification`, `script.joanna_dispatch` | +| [![YAML source: bgw_gateway](https://img.shields.io/static/v1?label=YAML&message=bgw_gateway&color=lightgrey&logo=github&logoColor=181717)](bgw_gateway.yaml) | Pulls the public-safe [BGW Probe](https://github.com/CCOSTAN/bgw-probe) API into Home Assistant as gateway reachability, broadband link, uptime, negotiated speed, byte, error, and drop telemetry. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/ovNJnaVPWAY) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/09/monitor-att-bgw210-bgw320-gateway-home-assistant.html) | `sensor.bgw_gateway_status`, `binary_sensor.bgw_gateway_reachable`, `binary_sensor.bgw_broadband_connection`, `sensor.bgw_gateway_uptime`, `sensor.bgw_broadband_receive_bytes`, `sensor.bgw_broadband_transmit_bytes` | | [![YAML source: speedtest](https://img.shields.io/static/v1?label=YAML&message=speedtest&color=lightgrey&logo=github&logoColor=181717)](speedtest.yaml) | Logs corroborated WAN outages, sustained latency/loss degradation, slow Ookla capacity advisories, and recovery without letting one throughput snapshot declare the WAN down. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/F-PpsKkzcrM) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/08/home-assistant-internet-speed-monitoring-ookla.html) | `binary_sensor.infra_wan_quality_degraded`, `binary_sensor.infra_wan_outage`, `binary_sensor.infra_wan_capacity_degraded`, `sensor.ookla_speedtest_download`, `sensor.ookla_speedtest_upload`, `script.send_to_logbook` | | [![YAML source: onenote_indexer](https://img.shields.io/static/v1?label=YAML&message=onenote_indexer&color=lightgrey&logo=github&logoColor=181717)](onenote_indexer.yaml) | Dedicated-appliance OneNote indexer health/status monitoring for Joanna, explicit index-health confirmation, and failure-repair automation. Native indexer reconciliation remains the maintenance owner. | `sensor.onenote_indexer_last_job_status`, `binary_sensor.onenote_indexer_last_job_successful`, `binary_sensor.onenote_indexer_index_healthy` | | [![YAML source: mqtt_status](https://img.shields.io/static/v1?label=YAML&message=mqtt_status&color=lightgrey&logo=github&logoColor=181717)](mqtt_status.yaml) | Command-line MQTT broker reachability probe with Spook Repairs escalation and Joanna troubleshooting dispatch on outage. | `binary_sensor.mqtt_status_raw`, `binary_sensor.mqtt_broker_problem`, `repairs.create`, `rest_command.bearclaw_command` | @@ -74,7 +74,7 @@ Kitchen Show note: `kiosk_tablet.yaml` uses Kiosk Satellite's native ESPHome ent | [![YAML source: vacation_mode](https://img.shields.io/static/v1?label=YAML&message=vacation_mode&color=lightgrey&logo=github&logoColor=181717)](vacation_mode.yaml) | Auto-enable vacation mode after 24 hours away or no bed use, track sitter analytics/secure-house checks, stale-visit timeout protection, deliver sitter-facing briefings, and send 10 AM/10 PM house digests with Powerwall/security/backup status plus Joanna review. | `input_boolean.vacation_mode`, `input_boolean.house_sitter_present`, `input_datetime.vacation_house_sitter_*`, `input_datetime.vacation_house_status_digest_last_sent`, `sensor.vacation_house_sitter_*`, `binary_sensor.powerwall_grid_status`, `sensor.powerwall_charge`, `group.garage_doors`, `lock.front_door`, `script.vacation_house_sitter_clear_presence`, `script.vacation_house_status_digest`, `script.notify_engine`, `rest_command.bearclaw_command`, `script.joanna_send_telegram` | | [![YAML source: royalcaribbean](https://img.shields.io/static/v1?label=YAML&message=royalcaribbean&color=lightgrey&logo=github&logoColor=181717)](royalcaribbean.yaml) | Receives Cruise Tracker price-drop webhooks and polls a separate sanitized endpoint hourly for the next confirmed cruise countdown shown on the Kitchen Show. Confirmation, cabin, pricing, and watch-list details never enter Home Assistant. | `automation.royal_caribbean_price_drop_alert`, `sensor.next_booked_cruise_countdown`, `script.notify_engine` | | [![YAML source: maintenance_log](https://img.shields.io/static/v1?label=YAML&message=maintenance_log&color=lightgrey&logo=github&logoColor=181717)](maintenance_log.yaml) | Webhook-based water softener salt maintenance logging with idempotent event handling, Activity Feed logging, parser-safe refill cadence history, and dashboard-ready template sensors. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/_OqTv9i-jAs) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/07/home-assistant-water-softener-salt-automation.html) | `automation.maintenance_log_joanna_webhook_ingest`, `sensor.water_softener_salt_average_days_between_refills`, `sensor.water_softener_salt_refill_count`, `sensor.water_softener_salt_total_added` | -| [![YAML source: kiosk_tablet](https://img.shields.io/static/v1?label=YAML&message=kiosk_tablet&color=lightgrey&logo=github&logoColor=181717)](kiosk_tablet.yaml) | Shares Garage-then-Front-Door priority plus reusable Bedroom header/alert state while keeping each display purpose-built. The Garage view now remains active for three minutes after both doors close before either kiosk returns to its default dashboard. Bedroom retains Fully wake/drift recovery and SleepIQ screen behavior around a clock-free night-watch display; Kitchen retains its clock/forecast, rotating household context, native camera overlays, Kiosk Satellite idle dimming, and an event-driven household policy that corrects master volume to 13% at 08:00 and startup, and invokes the Dim screensaver while asleep or away. Nearby rain or lightning starts one five-minute NOAA radar takeover while the sun is above the horizon; afterward, the rotating Storms Approaching banner can replay the latest 20-minute loop while the event remains active. Actionable banner slides reuse one transient detail timer for NWS instructions, the front-door package view, a person-centered family map, open-entry details, Phyn water status with a confirmed valve-restore action, and hot-water recovery status. Sunset restores the ambient wall immediately. True idle panel-off remains disabled on the Crown LineageOS device until it has a reliable motion-wake input. Fully availability/page/app/power checks plus Kitchen connectivity, current-page, and screenshot freshness keep the Systems Kiosks tab truthful; a reachable Kitchen display remains online while stale session timestamps remain visible only in the telemetry panel. Available Kitchen updates remain advisory telemetry, while stable attention attributes preserve useful outage transitions without recording every heartbeat. At 07:00, Home Assistant requests the pending signed installer and waits two minutes for staging before dispatching Joanna to finish the Android confirmation and verify the Kitchen Show returns to its dashboard; an unsuccessful installation is retried at 07:00 the following day until the update entity confirms success. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/ChgEu0IDWzc) | `binary_sensor.kiosk_garage_camera_active`, `sensor.kiosk_active_camera_view`, `sensor.bedroom_kiosk_header`, `sensor.kiosk_household_alert`, `binary_sensor.kiosk_rain_radar_weather_event`, `binary_sensor.kiosk_rain_radar_active`, `timer.kitchen_kiosk_radar_display`, `input_text.kitchen_kiosk_detail_view`, `timer.kitchen_kiosk_detail_display`, `script.kitchen_kiosk_show_event`, `script.kitchen_kiosk_show_detail`, `script.kitchen_kiosk_restore_phyn_water`, `binary_sensor.bedroom_kiosk_needs_attention`, `binary_sensor.kiosk_devices_need_attention`, `sensor.alarm_panel_1_current_page`, `button.alarm_panel_1_load_start_url`, `binary_sensor.kitchen_kiosk_should_be_on`, `number.kitchen_show_volume_2`, `light.kitchen_show_screen_2`, `button.kitchen_show_postpone_screensaver_2`, `button.kitchen_show_take_screenshot_2`, `sensor.kitchen_show_active_camera_view_2`, `automation.kitchen_kiosk_satellite_update_joanna_dispatch` | +| [![YAML source: kiosk_tablet](https://img.shields.io/static/v1?label=YAML&message=kiosk_tablet&color=lightgrey&logo=github&logoColor=181717)](kiosk_tablet.yaml) | Shares Garage-then-Front-Door priority plus reusable Bedroom header/alert state while keeping each display purpose-built. The Garage view now remains active for three minutes after both doors close before either kiosk returns to its default dashboard. Bedroom retains Fully wake/drift recovery and SleepIQ screen behavior around a clock-free night-watch display; Kitchen retains its clock/forecast, rotating household context, native camera overlays, Kiosk Satellite idle dimming, and an event-driven household policy that corrects master volume to 13% at 08:00 and startup, and invokes the Dim screensaver while `group.bed` is on or the family is away. Nearby rain or lightning starts one five-minute NOAA radar takeover while the sun is above the horizon; afterward, the rotating Storms Approaching banner can replay the latest 20-minute loop while the event remains active. Actionable banner slides reuse one transient detail timer for NWS instructions, the front-door package view, a person-centered family map, open-entry details, Phyn water status with a confirmed valve-restore action, and hot-water recovery status. Sunset restores the ambient wall immediately. True idle panel-off remains disabled on the Crown LineageOS device until it has a reliable motion-wake input. Fully availability/page/app/power checks plus Kitchen connectivity, current-page, and screenshot freshness keep the Systems Kiosks tab truthful; a reachable Kitchen display remains online while stale session timestamps remain visible only in the telemetry panel. Available Kitchen updates remain advisory telemetry, while stable attention attributes preserve useful outage transitions without recording every heartbeat. At 07:00, Home Assistant requests the pending signed installer and waits two minutes for staging before dispatching Joanna to finish the Android confirmation and verify the Kitchen Show returns to its dashboard; an unsuccessful installation is retried at 07:00 the following day until the update entity confirms success. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/ChgEu0IDWzc) | `binary_sensor.kiosk_garage_camera_active`, `sensor.kiosk_active_camera_view`, `sensor.bedroom_kiosk_header`, `sensor.kiosk_household_alert`, `binary_sensor.kiosk_rain_radar_weather_event`, `binary_sensor.kiosk_rain_radar_active`, `timer.kitchen_kiosk_radar_display`, `input_text.kitchen_kiosk_detail_view`, `timer.kitchen_kiosk_detail_display`, `script.kitchen_kiosk_show_event`, `script.kitchen_kiosk_show_detail`, `script.kitchen_kiosk_restore_phyn_water`, `binary_sensor.bedroom_kiosk_needs_attention`, `binary_sensor.kiosk_devices_need_attention`, `sensor.alarm_panel_1_current_page`, `button.alarm_panel_1_load_start_url`, `binary_sensor.kitchen_kiosk_should_be_on`, `number.kitchen_show_volume_2`, `light.kitchen_show_screen_2`, `button.kitchen_show_postpone_screensaver_2`, `button.kitchen_show_take_screenshot_2`, `sensor.kitchen_show_active_camera_view_2`, `automation.kitchen_kiosk_satellite_update_joanna_dispatch` | | [![YAML source: powerwall](https://img.shields.io/static/v1?label=YAML&message=powerwall&color=lightgrey&logo=github&logoColor=181717)](powerwall.yaml) | Track Tesla Powerwall grid status, keep a restart-safe outage anchor, publish monitor-only staged resilience recommendations from Home Assistant, handle immediate household load shedding, and alert if the Powerwall stays low after grid power returns. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/hR_0lFEE2bA) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/06/tesla-powerwall-home-assistant-watchdog.html) | `binary_sensor.powerwall_grid_status`, `sensor.powerwall_*`, `input_datetime.power_resilience_outage_started`, `sensor.power_resilience_recommended_stage`, `script.notify_live_activity`, `repairs.create` | | [![YAML source: tesla_model_y](https://img.shields.io/static/v1?label=YAML&message=tesla_model_y&color=lightgrey&logo=github&logoColor=181717)](tesla_model_y.yaml) | Remind the garage and parents to plug in the Model Y after a low-battery arrival, alert both parents when a reported tire drops below 40 PSI, and issue one critical parents push plus a garage announcement when persisted JuiceBox current reaches 20 A. A restoring latch prevents repeat current alarms. Five continuous minutes without a running and healthy JuicePassProxy creates a Systems problem and tells the garage and parents not to charge; recovery is also reported to the parents. Plug-in alerts snooze for 24 hours; tire alerts and Joanna's morning-briefing action item share 1-day and 3-day snoozes. [![Watch on YouTube](https://img.shields.io/badge/Watch-YouTube-FF0000?logo=youtube&logoColor=white)](https://youtu.be/hDNyZfTfTtE) [![vCloudInfo Blog Post](https://img.shields.io/static/v1?label=vCloudInfo&message=Blog%20Post&color=21759B&logo=wordpress&logoColor=white)](https://www.vcloudinfo.com/2026/09/home-assistant-tesla-tire-pressure-alerts.html) | `sensor.spaceship_battery_level`, `sensor.tire_pressure_*`, `sensor.juicebox_current_last_known`, `sensor.juicepassproxy_state`, `sensor.juicepassproxy_health`, `binary_sensor.juicepassproxy_monitoring_degraded`, `switch.spaceship_charge`, `cover.large_garage_door`, `input_boolean.tesla_high_charge_rate_alert_active`, `input_datetime.tesla_model_y_*`, `input_datetime.tesla_tire_pressure_snooze_until`, `notify.alexa_media_garage`, `script.notify_engine` | | [![YAML source: vacuum](https://img.shields.io/static/v1?label=YAML&message=vacuum&color=lightgrey&logo=github&logoColor=181717)](vacuum.yaml) | Dreame vacuum orchestration with room tracking, push alerts, Activity feed, Repairs issues on errors, and Alexa one-off room-clean switches. | `input_select.l10s_vacuum_phase`, `sensor.l10s_vacuum_error`, `repairs.create` | diff --git a/config/packages/bgw_gateway.yaml b/config/packages/bgw_gateway.yaml index 41d4ad66..54ba3575 100644 --- a/config/packages/bgw_gateway.yaml +++ b/config/packages/bgw_gateway.yaml @@ -7,6 +7,8 @@ # Pulls the allowlisted BGW Probe API and exposes recorder-friendly entities. # ------------------------------------------------------------------- # Project: https://github.com/CCOSTAN/bgw-probe +# Video: https://youtu.be/ovNJnaVPWAY +# Blog: https://www.vcloudinfo.com/2026/09/monitor-att-bgw210-bgw320-gateway-home-assistant.html # Notes: The raw REST payload is excluded from recorder/logbook; curated numeric sensors retain useful history. # Notes: BGW Probe intentionally omits serial, MAC, IP, DNS, Wi-Fi, log, and credential data. ###################################################################### diff --git a/config/packages/docker_infrastructure.yaml b/config/packages/docker_infrastructure.yaml index 58a6c7a8..e5256bbc 100644 --- a/config/packages/docker_infrastructure.yaml +++ b/config/packages/docker_infrastructure.yaml @@ -1101,8 +1101,8 @@ automation: - alias: "Docker State Sync - Repairs (Dynamic)" id: docker_state_sync_repairs_dynamic - description: "Detect Docker container/stack state transitions and delegate Repairs sync." - mode: queued + description: "Detect Docker container/stack state transitions and delegate independent Repairs sync runs." + mode: parallel max: 50 max_exceeded: silent trigger: diff --git a/config/packages/infrastructure.yaml b/config/packages/infrastructure.yaml index fa793bff..9075a6b1 100644 --- a/config/packages/infrastructure.yaml +++ b/config/packages/infrastructure.yaml @@ -728,7 +728,7 @@ automation: - alias: "Infrastructure - Nebula Sync Health Dispatch" id: infra_nebula_sync_health_dispatch - description: "Dispatch Joanna when Nebula Sync DNS consistency or container telemetry stays degraded." + description: "Dispatch Joanna when Nebula Sync stays degraded outside planned Docker maintenance." mode: queued trigger: - platform: state @@ -757,7 +757,12 @@ automation: pihole_secondary_status: "{{ states('binary_sensor.pi_hole_status_2') }}" action: - choose: - - conditions: "{{ degraded and previous_band != 'warning' }}" + - conditions: + - condition: template + value_template: "{{ degraded and previous_band != 'warning' }}" + - condition: state + entity_id: binary_sensor.docker_container_alerts_snoozed + state: "off" sequence: - service: repairs.remove continue_on_error: true @@ -795,6 +800,8 @@ automation: Verify both Pi-holes answer the GTG-PF45FK6F short name, FQDN, and reverse lookup consistently. Check nebula_sync container status, Docker health, recent sync logs, and primary/replica Pi-hole API reachability. If confidence is high, perform safe remediation such as a one-time Nebula Sync run or restarting only the nebula_sync container. + Docker14 VM 101 power and placement are out of scope: do not start, stop, reboot, or migrate the VM. + If docker_14 is unreachable or VM 101 is stopped, report that blocker instead of changing VM power state. Do not restart Pi-hole or change DHCP/custom DNS records unless diagnostics prove data drift and the action is safe. Reply with resolved=true/false, root_cause, action_taken, verification, and next_action_required=true/false. domain_hint: ops diff --git a/config/packages/kiosk_tablet.yaml b/config/packages/kiosk_tablet.yaml index 4c4c9e8e..f2da8edd 100644 --- a/config/packages/kiosk_tablet.yaml +++ b/config/packages/kiosk_tablet.yaml @@ -15,7 +15,7 @@ # Notes: Fully controls apply only to the legacy Bedroom tablet. # Notes: Kitchen Show uses Kiosk Satellite's native ESPHome entities; `_2` is the live set while legacy MQTT registry entries coexist. # Notes: Kiosk Satellite owns HA kiosk-mode hiding, connection recovery, HA camera import, and HLS-first playback; no kiosk-mode custom resource is loaded. -# Notes: Kitchen Show uses the Dim screensaver while empty/asleep; true panel-off is disabled because this Crown build naps Wi-Fi and cannot accept a remote wake. +# Notes: Kitchen Show uses the Dim screensaver while empty or `group.bed` is on; true panel-off is disabled because this Crown build naps Wi-Fi and cannot accept a remote wake. # Notes: Kitchen Show volume is corrected to 13% at 08:00 and after HA or kiosk startup; manual changes otherwise persist. # Notes: Garage and Front Door retain priority; a Driveway alert takes over both kiosks until occupancy clears or ten minutes elapse. # Notes: At 07:00, Home Assistant stages a pending Kiosk Satellite release, then dispatches Joanna daily until installation is verified. @@ -605,11 +605,7 @@ template: {% set guest = is_state('input_boolean.guest_mode', 'on') %} {% set sitter = is_state('input_boolean.house_sitter_present', 'on') %} {% set family_home = is_state('group.family', 'home') %} - {% set carlo_bed = is_state('binary_sensor.sleepnumber_carlo_carlo_is_in_bed', 'on') %} - {% set stacey_bed = is_state('binary_sensor.sleepnumber_carlo_stacey_is_in_bed', 'on') %} - {% set bedtime = (carlo_bed or stacey_bed) - and (carlo_bed or is_state('person.carlo', 'not_home')) - and (stacey_bed or is_state('person.stacey', 'not_home')) %} + {% set bedtime = is_state('group.bed', 'on') %} {{ guest or sitter or (family_home and not bedtime) }} attributes: reason: >- @@ -619,15 +615,8 @@ template: house sitter present {% elif not is_state('group.family', 'home') %} nobody home - {% elif is_state('binary_sensor.sleepnumber_carlo_carlo_is_in_bed', 'on') - and is_state('binary_sensor.sleepnumber_carlo_stacey_is_in_bed', 'on') %} - household asleep - {% elif is_state('binary_sensor.sleepnumber_carlo_carlo_is_in_bed', 'on') - and is_state('person.stacey', 'not_home') %} - Carlo asleep and Stacey away - {% elif is_state('binary_sensor.sleepnumber_carlo_stacey_is_in_bed', 'on') - and is_state('person.carlo', 'not_home') %} - Stacey asleep and Carlo away + {% elif is_state('group.bed', 'on') %} + bed occupied {% else %} household active {% endif %} diff --git a/config/packages/proxmox.yaml b/config/packages/proxmox.yaml index 21ab5ea7..c52b5df9 100644 --- a/config/packages/proxmox.yaml +++ b/config/packages/proxmox.yaml @@ -13,6 +13,7 @@ # Notes: Joanna dispatch handles overnight Proxmox updates plus sustained runtime/disk degradations. # Notes: Docker14 must be confirmed stopped before either Proxmox node reboots and restored after recovery. # Notes: Return migrations are sequential; Docker14 startup waits for expected placement and capacity headroom. +# Notes: Overnight maintenance uses a four-hour fail-safe alert lease and releases its own lease after verified recovery. # Notes: Normalized disk usage sensors expose state_class for long-term trend rollups. ###################################################################### template: @@ -158,6 +159,17 @@ automation: {% endif %} {% endfor %} {{ ns.items | join('; ') if ns.items | count > 0 else 'none detected' }} + previous_maintenance_snooze_until: "{{ states('input_datetime.docker_container_alerts_snooze_until') }}" + previous_maintenance_snooze_timestamp: >- + {{ state_attr('input_datetime.docker_container_alerts_snooze_until', 'timestamp') | float(0) }} + requested_maintenance_snooze_timestamp: "{{ (now() + timedelta(hours=4)).timestamp() }}" + maintenance_snooze_timestamp: >- + {{ [previous_maintenance_snooze_timestamp | float(0), + requested_maintenance_snooze_timestamp | float(0)] | max }} + maintenance_snooze_until: >- + {{ maintenance_snooze_timestamp | float(0) | timestamp_custom('%Y-%m-%d %H:%M:%S', true) }} + maintenance_snooze_lease_owned: >- + {{ requested_maintenance_snooze_timestamp | float(0) > previous_maintenance_snooze_timestamp | float(0) }} structured_request: |- PROXMOX_HOST_UPGRADE_REQUEST tracking_issue=https://github.com/CCOSTAN/Home-AssistantConfig/issues/1798 @@ -175,15 +187,26 @@ automation: proxmox02_updates={{ proxmox02_updates_summary }} kernel_update_detected={{ (kernel_update_packages | trim) != 'none detected' }} kernel_update_packages={{ kernel_update_packages | trim }} + maintenance_snooze_previous_until={{ previous_maintenance_snooze_until }} + maintenance_snooze_previous_timestamp={{ previous_maintenance_snooze_timestamp }} + maintenance_snooze_applied_until={{ maintenance_snooze_until }} + maintenance_snooze_lease_owned={{ maintenance_snooze_lease_owned }} + maintenance_alert_policy=The applied deadline is a four-hour fail-safe lease, not a fixed quiet period. Before stopping Docker14, verify binary_sensor.docker_container_alerts_snoozed is on and input_datetime.docker_container_alerts_snooze_until equals maintenance_snooze_applied_until. Keep it active through all return migrations, placement and capacity checks, Docker14 startup, and dependent-service verification. + maintenance_snooze_cleanup_policy=After successful final verification, read input_datetime.docker_container_alerts_snooze_until again. If maintenance_snooze_lease_owned is true and its live value still exactly equals maintenance_snooze_applied_until, restore maintenance_snooze_previous_until only when that previous deadline is still in the future; otherwise set the helper to the current time so the snooze clears immediately. If the live value differs, is later, or maintenance_snooze_lease_owned is false, preserve it because another operator or automation owns it. Verify binary_sensor.docker_container_alerts_snoozed is off when this task cleared the lease, or explicitly report the preserved owner deadline. If maintenance or verification fails, do not clear the lease; leave the fail-safe deadline in place and report it. required_policy=This dispatch is Carlo's authorization to install pending same-release Proxmox package updates after live preflight passes; do not stop after read-only validation. Inspect live Proxmox cluster health, storage, VM placement, node status, and destination memory headroom before changing anything. Patch hosts one node at a time during the overnight window and verify each node remains healthy before moving to the next. Do not perform major-version upgrades, repository migrations, destructive cleanup, or force operations from this request. If the live preflight is unhealthy, pause and report instead of patching. If kernel packages are present or a reboot is required after kernel updates, use the $kernel-refresh skill and follow its ordered node-cycling workflow; if that skill is unavailable, stop before any reboot and report the blocker. migration_policy=Capture each running VM's expected final node before evacuation. Migrate exactly one VM at a time and wait for task success plus running/unlocked/HA-started state before starting another. If any return migration fails or any non-Docker14 VM remains on ProxMox02, recover the expected placement and recheck memory headroom before continuing; do not start Docker14 while placement is incomplete. docker14_policy=Verify the live placement of Frigate/Docker14 VM 101, gracefully shut it down before rebooting either Proxmox node even when VM 101 is hosted on the other node, confirm Proxmox reports it stopped, and start it only after the final host cycle, sequential return migrations, and capacity checks are complete. Starting the existing stopped VM 101 for this authorized recovery does not require separate confirmation. Never issue a Proxmox reboot while Docker14 is running. - completion_policy=After each host, verify package versions and the update list. Final success requires expected VM placement, no locks, HA resources started, Docker14 and dependent services healthy, and enough host memory headroom; report progress, failures, resume state, package versions, and final verification. + completion_policy=After each host, verify package versions and the update list. Final success requires expected VM placement, no locks, HA resources started, Docker14 and dependent services healthy, enough host memory headroom, and verified cleanup or preservation of the maintenance snooze lease; report progress, failures, resume state, package versions, snooze disposition, and final verification. - choose: - conditions: - condition: trigger id: overnight sequence: + - service: input_datetime.set_datetime + target: + entity_id: input_datetime.docker_container_alerts_snooze_until + data: + datetime: "{{ maintenance_snooze_until }}" - service: script.send_to_logbook data: topic: "PROXMOX" @@ -209,7 +232,10 @@ automation: proxmox1_updates_count={{ proxmox1_updates_count }}, proxmox02_updates_count={{ proxmox02_updates_count }}, kernel_update_detected={{ (kernel_update_packages | trim) != 'none detected' }}, - kernel_update_packages={{ kernel_update_packages | trim }} + kernel_update_packages={{ kernel_update_packages | trim }}, + container_alerts_snooze_previous_until={{ previous_maintenance_snooze_until }}, + container_alerts_snooze_applied_until={{ maintenance_snooze_until }}, + container_alerts_snooze_lease_owned={{ maintenance_snooze_lease_owned }} request: "{{ structured_request }}" default: - service: script.send_to_logbook