Commit Graph

13 Commits

Author SHA1 Message Date
7b1ede89a3 Fix whitespace in periodic summary by inlining albums list
Inline periodic_albums_list computation into periodic_summary_formatted
using {%- -%} whitespace control to prevent unwanted whitespace in the
formatted output. Add documentation about this Jinja2 pattern to CLAUDE.md.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 12:06:17 +03:00
4fad85ebe9 Fix album updated attribute name to last_updated_at
The album entity uses 'last_updated_at' not 'updated_at' for the
last update timestamp attribute.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-02 00:30:31 +03:00
94ca8273b1 Add album created and updated date placeholders
Added {album_created} and {album_updated} placeholders to album-related
templates, using the existing date_format for formatting:

- periodic_album_template: reads from entity attributes
- scheduled_assets_message: reads from entity attributes (per_album/random mode)
- message_assets_added: looks up entity by event_album_id
- message_assets_removed: looks up entity by event_album_id
- message_asset_image/video: added placeholders

For combined mode, album dates are empty (no single album).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 23:51:20 +03:00
39f780b46c Fix event data variables for time_pattern triggers
Added guards to event data variables (event_hub_name, event_album_name,
etc.) to check if trigger.event is defined before accessing it.

Previously, these variables would error when the trigger was time_pattern
(hourly_timer) since trigger.event doesn't exist for non-event triggers,
causing the entire automation to fail silently.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 22:53:49 +03:00
369ffe3fb7 Rename time_pattern trigger to hourly_timer
Renamed the shared time_pattern trigger from "periodic_summary" to
"hourly_timer" since it serves both periodic summary and scheduled
assets features. This makes the trigger's purpose clearer.

Updated all references in should_send_periodic_summary,
should_send_scheduled_assets, and the condition block.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 22:29:45 +03:00
d8df567d02 Fix whitespace stripping in video warning template
Applied the same inline computation fix to {video_warning} placeholder
that was previously done for {common_date} and {common_location}.

Computes video_warning_text inline using {%- set -%} syntax instead of
storing as a separate HA variable, which strips leading whitespace.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 21:28:12 +03:00
330026a44a Skip videos without playback URL
Videos without a playback_url are now filtered out in all contexts:
- Realtime event notifications
- Scheduled assets (per_album/random mode)
- Scheduled assets (combined mode)

This prevents sending video entries that cannot be played back.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 21:13:44 +03:00
f86839dab4 Fix per-album limit calculation in combined mode
Fixed Jinja2 operator precedence issue where `limit | int // count | int`
was being parsed ambiguously. Added explicit parentheses to ensure correct
floor division: `((limit | int) // (count | int))`.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:52:04 +03:00
b1cedcd317 Fix whitespace stripping in common date/location templates
- Compute common_date and common_location inline using {%- set -%} syntax
  instead of as separate HA variables, which strips leading whitespace
- Fix CASE 3 (Changed) handler missing common_date/common_location support
- Remove unused global common_date and common_location variable definitions
- Apply fix to all message templates: scheduled assets (per_album, combined),
  realtime notifications (assets_added, changed), and Telegram messages

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 03:48:31 +03:00
3af3966ac3 Fix geolocation for Immich blueprint 2026-02-01 03:10:10 +03:00
ec680e8e7f Add location placeholders to asset template descriptions
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 02:53:09 +03:00
e63bb3da95 Add reverse geocoding location support and fix NoneType error
- Add location template inputs (common_location_template, location_if_unique_template, location_format)
- Display common location in header when all assets share the same location
- Show per-asset location when locations differ using {location_if_unique}
- Location only shown when all three fields (city, state, country) are present
- Fix TypeError on NoneType length check when asset.created_at is null
- Add defensive checks for date parsing to prevent template errors

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 02:51:15 +03:00
7b00899903 Restructure repository: organize blueprints into folders
Each blueprint now has its own folder containing:
- blueprint.yaml: The automation code with a short header
- README.md: Detailed documentation extracted from headers

Updated CLAUDE.md with repository structure guidelines.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 02:38:52 +03:00