You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Home-AssistantConfig/config/script/joanna_dispatch.yaml

67 lines
3.0 KiB

######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Joanna Dispatch - Shared BearClaw dispatch helper for automations
# Normalizes remediation context and forwards requests via bearclaw_command.
# -------------------------------------------------------------------
# Notes: Keep this helper generic so package automations can reuse one schema.
# Notes: Source defaults to home_assistant_automation.unknown when omitted.
######################################################################
joanna_dispatch:
alias: Joanna Dispatch
description: Standardized Joanna/BearClaw dispatch helper for automation-triggered requests.
mode: queued
fields:
trigger_context:
description: Automation and trigger context string.
source:
description: Source identifier sent to BearClaw.
summary:
description: Short summary of the condition requiring Joanna.
request:
description: What Joanna should do.
entity_ids:
description: Relevant entity IDs (list or comma-delimited string).
diagnostics:
description: Extra troubleshooting context.
user:
description: BearClaw user identity.
sequence:
- variables:
normalized_context: "{{ trigger_context | default('HA automation', true) }}"
normalized_source: "{{ source | default('home_assistant_automation.unknown', true) }}"
normalized_summary: "{{ summary | default('Home Assistant remediation request', true) }}"
normalized_request: >-
{{ request | default('Investigate and recommend remediation. Do not run automated resets or power-cycles unless explicitly requested.', true) }}
normalized_user: "{{ user | default('carlo', true) }}"
normalized_entity_ids: >-
{% if entity_ids is sequence and entity_ids is not string %}
{{ entity_ids | map('string') | join(', ') }}
{% elif entity_ids is string and entity_ids | trim != '' %}
{{ entity_ids | trim }}
{% else %}
n/a
{% endif %}
normalized_diagnostics: >-
{% if diagnostics is string %}
{{ diagnostics | trim if diagnostics | trim != '' else 'n/a' }}
{% elif diagnostics is mapping or (diagnostics is sequence and diagnostics is not string) %}
{{ diagnostics | tojson }}
{% else %}
n/a
{% endif %}
- service: rest_command.bearclaw_command
data:
text: >-
Trigger: {{ normalized_context }}.
Summary: {{ normalized_summary }}.
Entity IDs: {{ normalized_entity_ids }}.
Diagnostics: {{ normalized_diagnostics }}.
Request: {{ normalized_request }}
user: "{{ normalized_user }}"
source: "{{ normalized_source }}"
context: "{{ normalized_context }}"

Powered by TurnKey Linux.