Reusable scripts that other automations call for notifications, lighting, safety responses, and Joanna/BearClaw AGENT engineer handoffs. Pass variables in; let the script do the heavy lifting.
- You are here:
config/script/(scripts library) - Repo overview | Config index | Automations | Scenes |
Both script.notify_engine and script.notify_engine_two_button accept notification_icon (an mdi: name), icon_url (a public or /local/ image), notification_icon_color (glyph hex color), and color (background hex color). On supported iOS apps, these appear as rounded sender icons and require a nonempty notification title. icon_url takes precedence over the MDI icon; colors apply only to MDI icons. See the Companion App documentation and issue #1773.
The shared helper gives existing notification groups a consistent palette without changing their grouping, recipients, action buttons, tags, or interruption levels:
| Notification group | Icon | Background |
|---|---|---|
Medicine |
mdi:pill |
Purple |
Garbage_Reminders |
mdi:trash-can-outline |
Green |
Welcome_Home |
mdi:home-heart |
Teal |
360_alerts |
mdi:map-marker-radius (arrival/departure callers override it) |
Blue |
Battery_Alert |
mdi:battery-alert-variant-outline |
Orange |
maintenance |
mdi:tools |
Slate |
Phyn |
mdi:water-alert |
Red |
Tesla_Model_Y |
mdi:car-electric |
Blue |
Tesla_Tire_Pressure |
mdi:car-tire-alert |
Orange |
Tesla_Charge_Rate_Alarm |
mdi:ev-station |
Red |
JuiceBox_Proxy_Offline |
mdi:ev-station |
Orange |
water_heater |
mdi:water-boiler-alert |
Orange |
RemoteLR |
mdi:remote |
Purple |
Printer |
mdi:printer |
Slate |
vacation |
mdi:palm-tree |
Teal |
royal_caribbean_price_drop |
mdi:ferry |
Blue |
Group lookup ignores case. An explicit icon overrides the preset; notification_icon: '' disables it. Other groups keep their existing payload unless a caller supplies an icon. Driveway, fridge-door, front-door package, and vacuum-help alerts supply their own icons while retaining their existing camera attachments where applicable. Untitled notifications and clear_notification commands receive no icon fields. Older apps or push paths that do not support custom icons retain the normal app icon.
Arrival alerts use a teal home-entry icon at home or a checked map pin at other monitored places; driving departures use a blue home-exit icon. The existing presence rules and notification groups stay in place. Grid status uses a red disconnected tower for outages and a green tower for restoration, with separate battery/HVAC icons for load shedding and recovery.
Lightning and high-wind warnings, open doors/garages, alarm-panel access, fridge temperature, server temperature, storage space, kitchen power, water-heater maintenance, house-sitter visits, and secure-house checks also pass explicit icons. Previously untitled door, alarm-panel, and storage alerts now have short titles so iOS can display their icons. The direct Roku remote-finder notification keeps its existing action payload and adds the same purple remote icon as its confirmation.
script.joanna_dispatch is the shared handoff contract from Home Assistant automations into Joanna/BearClaw when Home Assistant detects something worth investigating or fixing.
Why we use it:
- Keeps one message schema for remediation context (
trigger_context,source,summary,entity_ids,diagnostics,request, plus optional routing hints). - Avoids repeating direct
rest_command.bearclaw_commandpayload formatting in multiple packages. - Lets Home Assistant stay focused on detection, timing, and routing while Joanna acts as the AGENT engineer for infrastructure triage and recommended remediation.
- Makes resolution-trigger automations easier to review, update, and audit.
What the helper normalizes before the BearClaw intake call:
trigger_context,source, andsummaryso every dispatch has traceable origin details.entity_idsfrom either a YAML list or a comma-delimited string.diagnosticsfrom either free text or structured mappings/sequences.requestguardrails so Joanna defaults to investigation/recommendation, not blind resets or power-cycles.domain_hint/lane_hintdefault to BearClaw ops routing so HA infrastructure text does not drift into another domain parser.
Current automations that kick off automated resolutions (via script.joanna_dispatch):
- Keep scripts generic, route data via
data:/variables:, and reuse everywhere. - If you copy a script, rename any
aliasandidfields to avoid duplicates.
All of my configuration files are tested against the most stable version of home-assistant.


