Files
haos-hacs-immich-album-watcher/custom_components/immich_album_watcher/translations/en.json
alexei.dolgolyov 2ae706d700
All checks were successful
Validate / Hassfest (push) Successful in 2s
Enhance Telegram service with multi-format support and chunking
Renamed send_telegram_media_group to send_telegram_notification with expanded capabilities:
- Text messages (when urls is empty)
- Single photo/video (uses sendPhoto/sendVideo APIs)
- Media groups (uses sendMediaGroup API)
- Automatic chunking for unlimited media URLs
- Smart optimization: single-item chunks use appropriate single-item APIs

New parameters:
- max_group_size (2-10, default 10): control items per media group
- chunk_delay (0-60000ms, default 0): delay between chunks for rate limiting
- disable_web_page_preview: disable link previews in text messages

The service now intelligently selects the most efficient Telegram API endpoint based on content type and chunk size, with comprehensive error handling and logging.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-31 14:33:18 +03:00

186 lines
6.6 KiB
JSON

{
"entity": {
"sensor": {
"album_id": {
"name": "Album ID"
},
"album_asset_count": {
"name": "Asset Count"
},
"album_photo_count": {
"name": "Photo Count"
},
"album_video_count": {
"name": "Video Count"
},
"album_last_updated": {
"name": "Last Updated"
},
"album_created": {
"name": "Created"
},
"album_public_url": {
"name": "Public URL"
},
"album_protected_url": {
"name": "Protected URL"
},
"album_protected_password": {
"name": "Protected Password"
}
},
"binary_sensor": {
"album_new_assets": {
"name": "New Assets"
}
},
"camera": {
"album_thumbnail": {
"name": "Thumbnail"
}
},
"text": {
"album_protected_password_edit": {
"name": "Share Password"
}
},
"button": {
"create_share_link": {
"name": "Create Share Link"
},
"delete_share_link": {
"name": "Delete Share Link"
},
"create_protected_link": {
"name": "Create Protected Link"
},
"delete_protected_link": {
"name": "Delete Protected Link"
}
}
},
"config": {
"step": {
"user": {
"title": "Connect to Immich",
"description": "Enter your Immich server details. You can get an API key from Immich → User Settings → API Keys.",
"data": {
"hub_name": "Hub Name",
"immich_url": "Immich URL",
"api_key": "API Key"
},
"data_description": {
"hub_name": "A name for this Immich server (used in entity IDs)",
"immich_url": "The URL of your Immich server (e.g., http://192.168.1.100:2283)",
"api_key": "Your Immich API key"
}
}
},
"error": {
"cannot_connect": "Failed to connect to Immich server",
"invalid_auth": "Invalid API key",
"no_albums": "No albums found on the server",
"unknown": "Unexpected error occurred"
},
"abort": {
"already_configured": "This Immich server is already configured"
}
},
"config_subentries": {
"album": {
"initiate_flow": {
"user": "Add Album"
},
"entry_type": "Album",
"step": {
"user": {
"title": "Add Album to Watch",
"description": "Select an album from your Immich server to monitor for changes.",
"data": {
"album_id": "Album"
}
}
},
"error": {
"cannot_connect": "Failed to connect to Immich server"
},
"abort": {
"parent_not_found": "Hub configuration not found",
"no_albums": "No albums found on the server",
"all_albums_configured": "All albums are already configured",
"album_already_configured": "This album is already being watched"
}
}
},
"options": {
"step": {
"init": {
"title": "Immich Album Watcher Options",
"description": "Configure the polling interval for all albums.",
"data": {
"scan_interval": "Scan interval (seconds)",
"telegram_bot_token": "Telegram Bot Token"
},
"data_description": {
"scan_interval": "How often to check for album changes (10-3600 seconds)",
"telegram_bot_token": "Bot token for sending notifications to Telegram"
}
}
}
},
"services": {
"refresh": {
"name": "Refresh",
"description": "Force an immediate refresh of album data from Immich."
},
"get_recent_assets": {
"name": "Get Recent Assets",
"description": "Get the most recent assets from the targeted album.",
"fields": {
"count": {
"name": "Count",
"description": "Number of recent assets to return (1-100)."
}
}
},
"send_telegram_notification": {
"name": "Send Telegram Notification",
"description": "Send a notification to Telegram (text, photo, video, or media group).",
"fields": {
"bot_token": {
"name": "Bot Token",
"description": "Telegram bot token (optional if configured in integration options)."
},
"chat_id": {
"name": "Chat ID",
"description": "Telegram chat ID to send to."
},
"urls": {
"name": "URLs",
"description": "List of media URLs with type (photo/video). If empty, sends a text message. Large lists are automatically split into multiple media groups."
},
"caption": {
"name": "Caption",
"description": "Caption text. For media, applied to first item. For empty URLs, this is the message text."
},
"reply_to_message_id": {
"name": "Reply To",
"description": "Optional message ID to reply to."
},
"disable_web_page_preview": {
"name": "Disable Web Page Preview",
"description": "Disable link previews in text messages."
},
"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."
},
"chunk_delay": {
"name": "Chunk Delay",
"description": "Delay in milliseconds between sending multiple media groups (0-60000). Useful for rate limiting."
}
}
}
}
}