diff --git a/config/logbook.yaml b/config/logbook.yaml index 4c1cb7ea..ec59c6bc 100644 --- a/config/logbook.yaml +++ b/config/logbook.yaml @@ -41,6 +41,7 @@ exclude: entities: - automation.cuckoo_clock - automation.detect_lights_and_adjust_the_brightness_when_turned_on_based_on_time + - automation.docker_state_sync_repairs_dynamic - binary_sensor.office_motion - binary_sensor.onenote_indexer_job_failed - binary_sensor.onenote_indexer_last_job_successful diff --git a/config/packages/README.md b/config/packages/README.md index 0554a203..f20e8fd0 100755 --- a/config/packages/README.md +++ b/config/packages/README.md @@ -51,7 +51,7 @@ Live collection of plug-and-play Home Assistant packages. Each YAML file in this | [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` | | [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` | | [mariadb.yaml](mariadb.yaml) | MariaDB recorder health and capacity SQL sensors. | `sensor.mariadb_status`, `sensor.database_size` | -| [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 automation `last_triggered`, no new helpers). | `persistent_notification.create`, `event: tugtainer_available_detected`, `script.joanna_dispatch`, `input_datetime.tugtainer_last_update` | +| [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` | | [bearclaw.yaml](bearclaw.yaml) | Joanna/BearClaw bridge automations that forward Telegram commands to codex_appliance, relay replies back, and write JOANNA webhook reply summaries to Activity feed. | `rest_command.bearclaw_*`, `automation.bearclaw_*`, `script.send_to_logbook`, webhook relay | | [telegram_bot.yaml](telegram_bot.yaml) | Telegram script wrappers used by BearClaw and other ops flows (UI integration remains the source for bot config). | `script.joanna_send_telegram`, `telegram_bot.send_message` | | [phynplus.yaml](phynplus.yaml) | Phyn shutoff automations with push + Activity feed + Repairs issues for leak events. | `valve.phyn_shutoff_valve`, `binary_sensor.phyn_leak_test_running`, `repairs.create` | diff --git a/config/packages/tugtainer_updates.yaml b/config/packages/tugtainer_updates.yaml index d76a9fe2..76ac38b1 100644 --- a/config/packages/tugtainer_updates.yaml +++ b/config/packages/tugtainer_updates.yaml @@ -10,7 +10,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: Joanna dispatch cooldown is automation-local (24h) using last_triggered. +# Notes: Joanna dispatch cooldown uses mode=single with a 24-hour delay lockout. # Notes: Blog post https://www.vcloudinfo.com/2026/02/tugtainer-docker-updates-home-assistant-notifications.html ###################################################################### @@ -72,45 +72,24 @@ automation: message: "{{ trigger.event.data.message | default('Update event received') }}" event_type: "{{ trigger.event.data.event_type | default('info') }}" trigger_context: "HA automation tugtainer_dispatch_joanna_for_available_updates (Tugtainer - Dispatch Joanna For Available Updates)" - now_ts: "{{ as_timestamp(now()) | int(0) }}" - last_triggered_ts: >- - {% if this.attributes.last_triggered %} - {{ as_timestamp(this.attributes.last_triggered) | int(0) }} - {% else %} - 0 - {% endif %} - elapsed_seconds: "{{ (now_ts - last_triggered_ts) | int(0) if last_triggered_ts > 0 else 999999 }}" - cooldown_ok: "{{ last_triggered_ts == 0 or elapsed_seconds >= 86400 }}" - remaining_seconds: "{{ [86400 - elapsed_seconds, 0] | max }}" action: - - choose: - - conditions: - - condition: template - value_template: "{{ cooldown_ok }}" - sequence: - - service: script.send_to_logbook - data: - topic: "DOCKER" - message: >- - Tugtainer reported Available container updates. Joanna dispatch requested. - - service: script.joanna_dispatch - data: - trigger_context: "{{ trigger_context }}" - source: "home_assistant_automation.tugtainer_dispatch_joanna_for_available_updates" - summary: "Tugtainer reported Available container updates requiring manual action" - entity_ids: - - "input_datetime.tugtainer_last_update" - diagnostics: >- - title={{ title }}, - event_type={{ event_type }}, - message={{ message }} - request: >- - Review the Tugtainer report and update all containers listed under the - Available section. Report what was updated and any failures. - default: - - service: script.send_to_logbook - data: - topic: "DOCKER" - message: >- - Tugtainer Available update dispatch suppressed (24h cooldown active; - {{ remaining_seconds }} seconds remaining). + - service: script.send_to_logbook + data: + topic: "DOCKER" + message: >- + Tugtainer reported Available container updates. Joanna dispatch requested. + - service: script.joanna_dispatch + data: + trigger_context: "{{ trigger_context }}" + source: "home_assistant_automation.tugtainer_dispatch_joanna_for_available_updates" + summary: "Tugtainer reported Available container updates requiring manual action" + entity_ids: + - "input_datetime.tugtainer_last_update" + diagnostics: >- + title={{ title }}, + event_type={{ event_type }}, + message={{ message }} + request: >- + Review the Tugtainer report and update all containers listed under the + Available section. Report what was updated and any failures. + - delay: "24:00:00"