Skip to content

Commit 11d3050

Browse files
committed
Refactor Proxmox and Process Monitor configurations for improved Joanna dispatch logic and update README with new automation references
1 parent ee5238c commit 11d3050

5 files changed

Lines changed: 236 additions & 53 deletions

File tree

config/packages/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,13 @@ Live collection of plug-and-play Home Assistant packages. Each YAML file in this
4848
| [mariadb_monitoring.yaml](mariadb_monitoring.yaml) | MariaDB health sensors and Lovelace dashboard snippet for recorder stats. | `sensor.mariadb_status`, `sensor.database_size` |
4949
| [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` |
5050
| [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` |
51-
| [proxmox.yaml](proxmox.yaml) | Proxmox runtime and disk pressure monitoring with Repairs for node degradations plus nightly Frigate reboot. | `binary_sensor.proxmox*_runtime_healthy`, `sensor.proxmox*_disk_used_percentage`, `repairs.create`, `button.qemu_docker2_101_reboot` |
51+
| [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` |
5252
| [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` |
5353
| [infrastructure_observability.yaml](infrastructure_observability.yaml) | Normalized WAN/DNS/backup/domain/cert health + website uptime/latency SLO signals for Infrastructure dashboards. | `binary_sensor.infra_website_uptime_slo_breach`, `binary_sensor.infra_website_latency_degraded`, `binary_sensor.infra_*` |
5454
| [onenote_indexer.yaml](onenote_indexer.yaml) | OneNote indexer health/status monitoring for Joanna, failure-repair automation, and a daily duplicate-delete maintenance request. | `sensor.onenote_indexer_last_job_status`, `binary_sensor.onenote_indexer_last_job_successful` |
5555
| [mqtt_status.yaml](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` |
5656
| [mariadb.yaml](mariadb.yaml) | MariaDB recorder health and capacity SQL sensors. | `sensor.mariadb_status`, `sensor.database_size` |
57-
| [processmonitor.yaml](processmonitor.yaml) | Root filesystem disk-pressure monitoring with early Joanna review at 80% and Repairs + urgent dispatch at 90%. | `sensor.disk_use_percent`, `repairs.create`, `script.joanna_dispatch`, `tts.clear_cache` |
57+
| [processmonitor.yaml](processmonitor.yaml) | Root filesystem disk-pressure monitoring with immediate digest/logbook notes at 80%, Joanna review after 10 minutes above 80%, and delayed phone alerts only if the issue stays unresolved after dispatch. | `sensor.disk_use_percent`, `repairs.create`, `script.joanna_dispatch`, `tts.clear_cache` |
5858
| [tugtainer_updates.yaml](tugtainer_updates.yaml) | Tugtainer container update notifications via webhook + persistent alerts, plus event-based Joanna dispatch when reports include `### Available:` (24h cooldown via `mode: single` + delay, no new helpers). | `persistent_notification.create`, `event: tugtainer_available_detected`, `script.joanna_dispatch`, `input_datetime.tugtainer_last_update` |
5959
| [bearclaw.yaml](bearclaw.yaml) | Joanna/BearClaw bridge automations that forward Telegram commands to codex_appliance, include LLM-first routing context for freeform text, relay replies back, ingest `/api/bearclaw/status` telemetry, and expose dispatch plus QMD/memory-index sensors for Infrastructure dashboards. | `rest_command.bearclaw_*`, `sensor.bearclaw_status_telemetry`, `sensor.joanna_*`, `binary_sensor.joanna_*`, `automation.bearclaw_*`, `script.send_to_logbook` |
6060
| [telegram_bot.yaml](telegram_bot.yaml) | Legacy Telegram transport marker for BearClaw; the shared `joanna_send_telegram` helper now forwards through the codex_appliance direct Telegram API. | `rest_command.bearclaw_telegram_send`, `script.joanna_send_telegram` |

config/packages/processmonitor.yaml

Lines changed: 61 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@
88
# -------------------------------------------------------------------
99
# - Blog: https://www.vcloudinfo.com/2026/04/joanna-agent-engineer-home-assistant-infrastructure-dispatch.html
1010
# Notes: Uses `sensor.disk_use_percent` for the root (`/`) filesystem.
11-
# Notes: 80% usage triggers cleanup-oriented notification + Joanna review.
11+
# Notes: 80% usage writes an immediate activity note; Joanna reviews only after 10 minutes above threshold.
12+
# Notes: Phone alerts happen only after Joanna dispatch and a short unresolved grace period.
1213
# Notes: 90% usage opens a Repairs issue and dispatches Joanna for urgent triage.
1314
######################################################################
1415

1516
automation:
1617
- alias: "Self Heal Disk Use Alarm"
1718
id: b16f2155-4688-4c0f-9cf8-b382e294a029
18-
description: "Warn on elevated root disk usage and request Joanna review before it becomes critical."
19+
description: "Log elevated root disk usage immediately so transient pressure shows up in the digest."
1920
mode: single
2021
trigger:
2122
- platform: numeric_state
@@ -24,36 +25,65 @@ automation:
2425
variables:
2526
mount_path: "/"
2627
disk_use: "{{ states('sensor.disk_use_percent') | float(0) | round(1) }}"
27-
trigger_context: "HA automation b16f2155-4688-4c0f-9cf8-b382e294a029 (Self Heal Disk Use Alarm)"
2828
action:
29-
- service: script.notify_engine
30-
data:
31-
value1: "Hard Drive Monitor:"
32-
value2: "Your harddrive is running out of Space! {{ mount_path }}:{{ disk_use }}%!"
33-
value3: "Attempting to clean"
34-
who: "carlo"
3529
- service: script.send_to_logbook
3630
data:
3731
topic: "SYSTEM"
38-
message: "Disk usage exceeded 80% ({{ mount_path }}: {{ disk_use }}%). Attempting to clean."
32+
message: "Disk usage exceeded 80% ({{ mount_path }}: {{ disk_use }}%). Monitoring for sustained pressure."
3933
- service: tts.clear_cache
40-
- condition: template
41-
value_template: "{{ disk_use | float(0) < 90 }}"
34+
35+
- alias: "Self Heal Disk Use Joanna Review"
36+
id: processmonitor_disk_use_joanna_review
37+
description: "Dispatch Joanna when elevated root disk usage remains above 80% for 10 minutes."
38+
mode: single
39+
trigger:
40+
- platform: numeric_state
41+
entity_id: sensor.disk_use_percent
42+
above: 80
43+
for:
44+
minutes: 10
45+
variables:
46+
mount_path: "/"
47+
disk_use: "{{ states('sensor.disk_use_percent') | float(0) | round(1) }}"
48+
trigger_context: "HA automation processmonitor_disk_use_joanna_review (Self Heal Disk Use Joanna Review)"
49+
condition:
50+
- condition: numeric_state
51+
entity_id: sensor.disk_use_percent
52+
below: 90
53+
action:
4254
- service: script.joanna_dispatch
4355
data:
4456
trigger_context: "{{ trigger_context }}"
45-
source: "home_assistant_automation.self_heal_disk_use_alarm"
46-
summary: "Home Assistant root disk usage exceeded 80%"
57+
source: "home_assistant_automation.processmonitor_disk_use_joanna_review"
58+
summary: "Home Assistant root disk usage remained above 80% for 10 minutes"
4759
entity_ids:
4860
- "sensor.disk_use_percent"
4961
diagnostics: >-
5062
mount_path={{ mount_path }},
5163
disk_use={{ disk_use }},
52-
threshold=80
64+
threshold=80,
65+
sustained_for=10m
5366
request: >-
5467
Review Home Assistant disk growth and recommend safe cleanup actions.
5568
Check recorder/database size, logs, cache, backups, and temporary files.
5669
Do not restart Home Assistant or remove data unless explicitly requested.
70+
- service: script.send_to_logbook
71+
data:
72+
topic: "SYSTEM"
73+
message: >-
74+
Disk usage remained above 80% for 10 minutes ({{ mount_path }}: {{ disk_use }}%).
75+
Joanna review requested.
76+
- delay: "00:05:00"
77+
- condition: numeric_state
78+
entity_id: sensor.disk_use_percent
79+
above: 80
80+
below: 90
81+
- service: script.notify_engine
82+
data:
83+
value1: "Hard Drive Monitor:"
84+
value2: "Joanna is reviewing sustained Home Assistant disk usage at {{ mount_path }}:{{ states('sensor.disk_use_percent') | float(0) | round(1) }}%."
85+
value3: "No phone alert was sent until the issue stayed unresolved."
86+
who: "carlo"
5787

5888
- alias: "Disk Use Alarm"
5989
id: 1ce3cb43-0e27-4c53-acdd-d672396f3559
@@ -69,17 +99,6 @@ automation:
6999
disk_use: "{{ states('sensor.disk_use_percent') | float(0) | round(1) }}"
70100
trigger_context: "HA automation 1ce3cb43-0e27-4c53-acdd-d672396f3559 (Disk Use Alarm)"
71101
action:
72-
- service: script.notify_engine
73-
data:
74-
value1: "Hard Drive Monitor:"
75-
value2: "Your harddrive is running out of Space! {{ mount_path }}:{{ disk_use }}%!"
76-
who: "carlo"
77-
- service: script.send_to_logbook
78-
data:
79-
topic: "SYSTEM"
80-
message: >-
81-
Disk usage exceeded 90% ({{ mount_path }}: {{ disk_use }}%).
82-
Repair {{ issue_id }} opened and Joanna investigation requested.
83102
- service: repairs.create
84103
data:
85104
issue_id: "{{ issue_id }}"
@@ -107,6 +126,22 @@ automation:
107126
Investigate critical Home Assistant disk usage and recommend or perform safe remediation if available.
108127
Check recorder/database size, logs, cache, backups, and temporary files first.
109128
Do not restart Home Assistant or prune/delete data unless explicitly requested.
129+
- service: script.send_to_logbook
130+
data:
131+
topic: "SYSTEM"
132+
message: >-
133+
Disk usage exceeded 90% ({{ mount_path }}: {{ disk_use }}%).
134+
Repair {{ issue_id }} opened and Joanna investigation requested.
135+
- delay: "00:05:00"
136+
- condition: numeric_state
137+
entity_id: sensor.disk_use_percent
138+
above: 90
139+
- service: script.notify_engine
140+
data:
141+
value1: "Hard Drive Monitor:"
142+
value2: "Critical Home Assistant disk usage is still active at {{ mount_path }}:{{ states('sensor.disk_use_percent') | float(0) | round(1) }}%."
143+
value3: "Joanna has already been dispatched to investigate."
144+
who: "carlo"
110145

111146
- alias: "Disk Use Alarm Recovery"
112147
id: processmonitor_disk_use_alarm_recovery

0 commit comments

Comments
 (0)