All checks were successful
Validate / Hassfest (push) Successful in 3s
Implements send_large_photos_as_documents parameter to handle photos
exceeding Telegram's limits (10MB file size or 10000px dimension sum).
Features:
- Automatic detection of oversized photos using file size and PIL-based
dimension checking
- Two handling modes:
* send_large_photos_as_documents=false (default): Intelligently
downsizes photos using Lanczos resampling and progressive JPEG
quality reduction to fit within Telegram limits
* send_large_photos_as_documents=true: Sends oversized photos as
documents to preserve original quality
- For media groups: separates oversized photos and sends them as
documents after the main group, or downsizes them inline
- Maintains backward compatibility with existing max_asset_data_size
parameter for hard size limits
This resolves PHOTO_INVALID_DIMENSIONS errors for large images like
26MP photos while giving users control over quality vs. file size.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
137 lines
4.0 KiB
YAML
137 lines
4.0 KiB
YAML
refresh:
|
|
name: Refresh
|
|
description: Force an immediate refresh of album data from Immich.
|
|
target:
|
|
entity:
|
|
integration: immich_album_watcher
|
|
domain: sensor
|
|
|
|
get_recent_assets:
|
|
name: Get Recent Assets
|
|
description: Get the most recent assets from the targeted album.
|
|
target:
|
|
entity:
|
|
integration: immich_album_watcher
|
|
domain: sensor
|
|
fields:
|
|
count:
|
|
name: Count
|
|
description: Number of recent assets to return (1-100).
|
|
required: false
|
|
default: 10
|
|
selector:
|
|
number:
|
|
min: 1
|
|
max: 100
|
|
mode: slider
|
|
|
|
send_telegram_notification:
|
|
name: Send Telegram Notification
|
|
description: Send a notification to Telegram (text, photo, video, or media group).
|
|
target:
|
|
entity:
|
|
integration: immich_album_watcher
|
|
domain: sensor
|
|
fields:
|
|
bot_token:
|
|
name: Bot Token
|
|
description: Telegram bot token. Uses configured token if not provided.
|
|
required: false
|
|
selector:
|
|
text:
|
|
chat_id:
|
|
name: Chat ID
|
|
description: Telegram chat ID to send to.
|
|
required: true
|
|
selector:
|
|
text:
|
|
urls:
|
|
name: URLs
|
|
description: List of media URLs to send. Each item should have 'url' and 'type' (photo/video). If empty, sends a text message. Large lists are automatically split into multiple media groups.
|
|
required: false
|
|
selector:
|
|
object:
|
|
caption:
|
|
name: Caption
|
|
description: Caption text. For media, applied to first item. For empty URLs, this is the message text.
|
|
required: false
|
|
selector:
|
|
text:
|
|
multiline: true
|
|
reply_to_message_id:
|
|
name: Reply To Message ID
|
|
description: Message ID to reply to.
|
|
required: false
|
|
selector:
|
|
number:
|
|
mode: box
|
|
disable_web_page_preview:
|
|
name: Disable Web Page Preview
|
|
description: Disable link previews in text messages.
|
|
required: false
|
|
selector:
|
|
boolean:
|
|
parse_mode:
|
|
name: Parse Mode
|
|
description: How to parse the caption/text. Options are "HTML", "Markdown", "MarkdownV2", or empty string for plain text.
|
|
required: false
|
|
default: "HTML"
|
|
selector:
|
|
select:
|
|
options:
|
|
- label: "HTML"
|
|
value: "HTML"
|
|
- label: "Markdown"
|
|
value: "Markdown"
|
|
- label: "MarkdownV2"
|
|
value: "MarkdownV2"
|
|
- label: "Plain Text"
|
|
value: ""
|
|
max_group_size:
|
|
name: Max Group Size
|
|
description: Maximum number of media items per media group (2-10). Large lists will be split into multiple groups.
|
|
required: false
|
|
default: 10
|
|
selector:
|
|
number:
|
|
min: 2
|
|
max: 10
|
|
mode: slider
|
|
chunk_delay:
|
|
name: Chunk Delay
|
|
description: Delay in milliseconds between sending multiple media groups (0-60000). Useful for rate limiting.
|
|
required: false
|
|
default: 0
|
|
selector:
|
|
number:
|
|
min: 0
|
|
max: 60000
|
|
step: 100
|
|
unit_of_measurement: "ms"
|
|
mode: slider
|
|
wait_for_response:
|
|
name: Wait For Response
|
|
description: Wait for Telegram to finish processing before returning. Set to false for fire-and-forget (automation continues immediately).
|
|
required: false
|
|
default: true
|
|
selector:
|
|
boolean:
|
|
max_asset_data_size:
|
|
name: Max Asset Data Size
|
|
description: Maximum asset size in bytes. Assets exceeding this limit will be skipped. Leave empty for no limit.
|
|
required: false
|
|
selector:
|
|
number:
|
|
min: 1
|
|
max: 52428800
|
|
step: 1048576
|
|
unit_of_measurement: "bytes"
|
|
mode: box
|
|
send_large_photos_as_documents:
|
|
name: Send Large Photos As Documents
|
|
description: How to handle photos exceeding Telegram's limits (10MB or 10000px dimension sum). If true, send as documents. If false, downsize to fit limits.
|
|
required: false
|
|
default: false
|
|
selector:
|
|
boolean:
|