Add delays between text and media messages within each notification,
and between periodic summary, scheduled assets, and memory mode
when they trigger at the same hour.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Simplify Telegram recipient configuration to only use input_text
entities for chat IDs. Removes the notify entity friendly name
parsing which was complex and error-prone.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New input `allowed_chat_ids` restricts which Telegram chats can trigger
the automation. Leave empty to allow all chats (no filtering).
Useful for security-sensitive commands.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use 'photo' type (not 'IMAGE') to match service format
- Update default to immich-logo-inline-light.png
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use `urls` parameter (list) instead of `image_url`. Pass empty list
when image URL is not configured.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New input `periodic_summary_image_url` allows customizing the image
attached to periodic summary Telegram messages. Defaults to official
Immich logo. Set empty for text-only notifications.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Note that the service uses transcoded/optimized versions of assets
when available, not the original files.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Change telegram_max_asset_size input minimum from 0 to 1 (service
requires at least 1 byte). Set default to 50 MB for no extra filtering.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add telegram_max_asset_size input (0-50 MB slider)
- Pass max_asset_data_size parameter to send_telegram_notification
- Allows filtering out large files before sending to Telegram
- Set to 0 for no filtering (default Telegram 50 MB limit)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add chat_action parameter to all Telegram notifications
- Support typing, upload_photo, upload_video, upload_document actions
- Make memory mode interval fixed at 24h (daily notifications)
- Remove configurable interval input for memory mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New notification settings for "assets added" events:
- Sort Assets By: date, rating, name, or original order
- Sort Direction: ascending or descending
- Notify Favorites Only: filter to only favorite assets
Rating sort handles null values by placing unrated assets last
(descending) or first (ascending).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace the previous memory order_by option with a dedicated Memory Mode
feature that has its own enable toggle, schedule (interval/start hour),
and settings. Users can now run both Scheduled Assets and Memory Mode
independently at different times.
Memory Mode fetches photos taken on today's date in previous years using
the memory_date parameter, sorted by date ascending (oldest first).
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add new "Memory (On This Day)" option to scheduled assets Order By
selector. When selected, fetches photos taken on today's date in
previous years using the on_this_day parameter from get_assets service.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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>
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>
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>
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>
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>
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>
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>
- 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>
- 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>
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>
- Add support for album renamed and deleted events with notification templates
- Fix missing response_variable for all telegram service calls
- Enhance debug notifications with formatted sections and Telegram diagnostics
- Add reply_to_message_id debug logging for troubleshooting
- Update version to 1.14.8
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- CONTRIBUTING.md with blueprint submission guidelines
- Issue templates for bugs and feature requests
- Pull request template
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>