{ "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_assets": { "name": "Get Assets", "description": "Get assets from the targeted album with optional filtering and ordering.", "fields": { "limit": { "name": "Limit", "description": "Maximum number of assets to return (1-100)." }, "favorite_only": { "name": "Favorite Only", "description": "Filter to show only favorite assets." }, "filter_min_rating": { "name": "Minimum Rating", "description": "Minimum rating for assets (1-5)." }, "order_by": { "name": "Order By", "description": "Field to sort assets by (date, rating, or name)." }, "order": { "name": "Order", "description": "Sort direction (ascending, descending, or random)." }, "asset_type": { "name": "Asset Type", "description": "Filter assets by type (all, photo, or video)." }, "min_date": { "name": "Minimum Date", "description": "Filter assets created on or after this date (ISO 8601 format)." }, "max_date": { "name": "Maximum Date", "description": "Filter assets created on or before this date (ISO 8601 format)." } } }, "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." }, "parse_mode": { "name": "Parse Mode", "description": "How to parse the caption/text. Options are HTML, Markdown, MarkdownV2, or empty string for plain text." }, "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." }, "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)." }, "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." }, "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." } } } } }