Update HA version to 2026.3.4, adjust August automation battery threshold to 20%, enhance BearClaw Telegram integration with LLM-first routing context, and expand Docker monitored containers configuration.

pull/1702/head
Carlo Costanzo 2 months ago
parent cd22832eeb
commit 88e791e23c

@ -1 +1 @@
2026.3.2
2026.3.4

@ -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, event-based Joanna dispatch for `### Available:` updates (24h cooldown), and Home Assistant core post-update digest dispatch that derives `core-YYYY.M` changelog URLs and requests GitHub Update Digest issue refresh/create. | `persistent_notification.create`, `event: tugtainer_available_detected`, `event: tugtainer_home_assistant_core_updated`, `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, include LLM-first routing context for freeform text, relay replies back, ingest `/api/bearclaw/status` telemetry, and expose dispatch KPI sensors for Infrastructure dashboards. | `rest_command.bearclaw_*`, `sensor.bearclaw_status_telemetry`, `sensor.joanna_*`, `automation.bearclaw_*`, `script.send_to_logbook` |
| [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` |

@ -38,7 +38,7 @@ automation:
trigger:
- platform: numeric_state
entity_id: sensor.front_door_battery
below: 25
below: 20
action:
- service: script.notify_engine
@ -51,24 +51,3 @@ automation:
topic: "BATTERY"
message: "August Door lock battery low: {{ states('sensor.front_door_battery') }}%"
# - alias: 'FrontDoor Bell Camera on Front Door Lock'
# id: Doorbell_camera_front_door
# mode: single
# trigger:
# - platform: state
# entity_id: lock.front_door
# to: 'unlocked'
# action:
# - service: media_player.play_media
# target:
# entity_id: media_player.kitchen
# data:
# media_content_id: 'show front doorbell camera'
# media_content_type: custom
# - delay: '00:20:00'
# - service: media_player.play_media
# target:
# entity_id: media_player.kitchen
# data:
# media_content_id: 'hide front doorbell camera'
# media_content_type: custom

@ -14,6 +14,7 @@
# Notes: Inbound Telegram handling enforces user_id + chat_id allowlists from secrets CSV values.
# Notes: Reply webhook writes JOANNA activity entries to logbook for traceability.
# Notes: Status telemetry polling expects !secret bearclaw_status_url (token header stays !secret bearclaw_token).
# Notes: Telegram freeform input now includes LLM-first routing context to improve intent understanding before entity lookups.
# Notes: Blog: https://www.vcloudinfo.com/2026/03/joanna-dispatch-telemetry-home-assistant-infrastructure-dashboard/
######################################################################
@ -341,7 +342,7 @@ automation:
- id: bearclaw_telegram_text_no_slash_needed
alias: BearClaw Telegram Text No Slash Needed
description: Treats plain Telegram text as BearClaw command input.
description: Treats plain Telegram text as BearClaw command input and forwards LLM-first routing context.
mode: queued
trigger:
- platform: event
@ -363,12 +364,36 @@ automation:
action:
- variables:
plain_text: "{{ trigger.event.data.text | default('') | trim }}"
plain_text_lower: "{{ plain_text | lower }}"
from_user: "{{ (trigger.event.data.from_first | default('carlo')) | lower }}"
command_like_request: >-
{% set action_verbs = ['disable', 'enable', 'turn off', 'turn on', 'stop', 'start', 'restart', 'review', 'fix', 'change', 'update', 'set', 'open', 'close'] %}
{{ action_verbs | select('in', plain_text_lower) | list | count > 0 }}
status_like_request: >-
{{ (plain_text_lower.startswith('is ')
or plain_text_lower.startswith('are ')
or plain_text_lower.startswith('what is ')
or plain_text_lower.startswith("what's ")
or ' status' in plain_text_lower
or plain_text_lower.startswith('status '))
and not command_like_request }}
llm_route_hint: >-
{% if command_like_request %}
llm_first_action
{% elif status_like_request %}
llm_first_status
{% else %}
llm_first_general
{% endif %}
llm_context: >-
telegram_freeform route={{ llm_route_hint | trim }}.
Prefer LLM intent interpretation and clarification for action or automation requests before returning entity status.
- service: rest_command.bearclaw_command
data:
text: "{{ plain_text }}"
user: "{{ from_user }}"
source: telegram_text
context: "{{ llm_context | trim }}"
- id: bearclaw_reply_webhook
alias: BearClaw Reply Webhook

@ -72,53 +72,115 @@ switch:
name: Docker Monitored Containers
unique_id: docker_monitored_containers
entities:
- switch.3a446393a8c5_dozzle_container
- switch.5b3503372936_wordpress_db_container
- switch.7a83770eb321_rc_price_checker_container
- switch.91aca40203c0_portainer_agent_container
- switch.cloudflared_kch_container
- switch.cloudflared_kch_container_2
- switch.cloudflared_wp_container
- switch.cloudflared_wp_container_2
- switch.codex_appliance_container
- switch.codex_appliance_container_2
- switch.college_budget_app_container
- switch.college_budget_app_container_2
- switch.cruise_tracker_container
- switch.cruise_tracker_container_2
- switch.dashy_container
- switch.dashy_container_2
- switch.docker_socket_proxy_container
- switch.dozzle_container
- switch.docker_socket_proxy_container_2
- switch.dozzle_agent_10_container
- switch.dozzle_agent_10_container_2
- switch.dozzle_agent_14_container
- switch.dozzle_agent_14_container_2
- switch.dozzle_agent_17_container
- switch.dozzle_agent_17_container_2
- switch.dozzle_agent_69_container
- switch.dozzle_agent_69_container_2
- switch.dozzle_container
- switch.dozzle_container_2
- switch.duplicati_container
- switch.duplicati_container_2
- switch.esphome_container
- switch.esphome_container_2
- switch.fed437a0f191_tugtainer_socket_proxy_container
- switch.foodie_tracker_container
- switch.foodie_tracker_container_2
- switch.frigate_container
- switch.frigate_container_2
- switch.games_hub_container
- switch.games_hub_container_2
- switch.home_assistant_container
- switch.home_assistant_container_2
- switch.imposter_container
- switch.imposter_container_2
- switch.infra_info_container
- switch.infra_info_container_2
- switch.kingcrafthomes_container
- switch.kingcrafthomes_container_2
- switch.lmediaservices_container
- switch.mariadb_container
- switch.lmediaservices_container_2
- switch.mariadb_backup_container
- switch.mariadb_backup_container_2
- switch.mariadb_container
- switch.mariadb_container_2
- switch.matter_server_container
- switch.matter_server_container_2
- switch.mqtt_container
- switch.mqtt_container_2
- switch.nebula_sync_container
- switch.nebula_sync_container_2
- switch.onenote_indexer_container
- switch.onenote_indexer_container_2
- switch.optimistic_mclaren_container
- switch.panel_notes_container
- switch.panel_notes_container_2
- switch.pihole_container
- switch.pihole_container_2
- switch.pihole_secondary_container
- switch.pihole_secondary_container_2
- switch.poker_tracker_container
- switch.portainer_container
- switch.poker_tracker_container_2
- switch.portainer_agent_69_container
- switch.portainer_agent_container
- switch.portainer_agent_container_2
- switch.portainer_container
- switch.portainer_container_2
- switch.postgres_webhooks_engine_container
- switch.postgres_webhooks_engine_container_2
- switch.rc_price_checker_container
- switch.rc_price_checker_container_2
- switch.redis_webhooks_engine_container
- switch.redis_webhooks_engine_container_2
- switch.rvtools_ppt_web_container
- switch.rvtools_ppt_web_container_2
- switch.steelesharing_home_container
- switch.tapple_container
- switch.tugtainer_container
- switch.tapple_container_2
- switch.tugtainer_agent_14_container
- switch.tugtainer_agent_17_container
- switch.tugtainer_agent_69_container
- switch.tugtainer_agent_container
- switch.tugtainer_agent_container_2
- switch.tugtainer_container
- switch.tugtainer_container_2
- switch.tugtainer_socket_proxy_14_container
- switch.tugtainer_socket_proxy_17_container
- switch.tugtainer_socket_proxy_69_container
- switch.tugtainer_socket_proxy_container
- switch.tugtainer_socket_proxy_container_2
- switch.unifi_container
- switch.unifi_container_2
- switch.webhooks_engine_container
- switch.webhooks_engine_container_2
- switch.wordpress_db_container
- switch.wordpress_db_container_2
- switch.wordpress_wp_container
- switch.wordpress_wp_container_2
- switch.wyze_bridge_container
- switch.wyze_bridge_container_2
template:
- sensor:

@ -241,43 +241,6 @@ automation:
topic: "garadget/GLarge/command"
payload: "get-status"
- alias: 'Garage Door State Change'
id: afec0987-edb1-4341-a524-a00ae4df9fb7
mode: restart
trigger:
- platform: state
entity_id:
- cover.large_garage_door
- cover.small_garage_door
from: 'open'
to: 'closed'
for: '00:02:00'
- platform: state
entity_id:
- cover.large_garage_door
- cover.small_garage_door
from: 'closed'
to: 'open'
for: '00:10:00'
action:
- choose:
- conditions: "{{ is_state('cover.large_garage_door','closed') }}"
sequence:
- service: script.speech_engine
data:
DoorClosed: "The {{ trigger.entity_id.split('.')[1]|replace('_', ' ') }} is now {{ (trigger.to_state.state)|replace('_', ' ') }}."
call_garage_check: 1
- delay: "00:10:00"
default:
- service: script.speech_engine
data:
DoorClosed: "The {{ trigger.entity_id.split('.')[1]|replace('_', ' ') }} is now {{ (trigger.to_state.state)|replace('_', ' ') }}."
call_garage_check: 1
###################################
## Garadget Wind Door Checks - [Garadget](https://amzn.to/2jQLpVQ)
###################################

Loading…
Cancel
Save

Powered by TurnKey Linux.