Add Telegram chat action and simplify memory mode schedule
- 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>
This commit is contained in:
@@ -36,8 +36,8 @@ blueprint:
|
|||||||
album_id_entities:
|
album_id_entities:
|
||||||
name: Album ID Entities
|
name: Album ID Entities
|
||||||
description: >
|
description: >
|
||||||
List of sensor or input_text entities containing album IDs to monitor.
|
List of album entities from the Immich Album Watcher integration to monitor.
|
||||||
Only albums matching these IDs will trigger notifications.
|
Only albums matching these entities will trigger notifications.
|
||||||
Leave empty to track all albums.
|
Leave empty to track all albums.
|
||||||
Album IDs are stable and won't change if albums get renamed.
|
Album IDs are stable and won't change if albums get renamed.
|
||||||
Album names and share URLs are automatically read from the entity's
|
Album names and share URLs are automatically read from the entity's
|
||||||
@@ -45,9 +45,7 @@ blueprint:
|
|||||||
default: []
|
default: []
|
||||||
selector:
|
selector:
|
||||||
entity:
|
entity:
|
||||||
domain:
|
integration: immich_album_watcher
|
||||||
- sensor
|
|
||||||
- input_text
|
|
||||||
multiple: true
|
multiple: true
|
||||||
|
|
||||||
track_assets_added:
|
track_assets_added:
|
||||||
@@ -453,6 +451,27 @@ blueprint:
|
|||||||
selector:
|
selector:
|
||||||
boolean:
|
boolean:
|
||||||
|
|
||||||
|
telegram_chat_action:
|
||||||
|
name: Chat Action
|
||||||
|
description: >
|
||||||
|
Telegram chat action to display while processing (e.g., "typing...", "uploading photo...").
|
||||||
|
Shows a status indicator in the chat while the bot is preparing/sending media.
|
||||||
|
Set to "None" to disable chat actions.
|
||||||
|
default: "upload_photo"
|
||||||
|
selector:
|
||||||
|
select:
|
||||||
|
options:
|
||||||
|
- label: "None"
|
||||||
|
value: ""
|
||||||
|
- label: "Typing..."
|
||||||
|
value: "typing"
|
||||||
|
- label: "Uploading Photo..."
|
||||||
|
value: "upload_photo"
|
||||||
|
- label: "Uploading Video..."
|
||||||
|
value: "upload_video"
|
||||||
|
- label: "Uploading Document..."
|
||||||
|
value: "upload_document"
|
||||||
|
|
||||||
# -------------------------------------------------------------------------
|
# -------------------------------------------------------------------------
|
||||||
# Periodic Summary
|
# Periodic Summary
|
||||||
# -------------------------------------------------------------------------
|
# -------------------------------------------------------------------------
|
||||||
@@ -695,22 +714,11 @@ blueprint:
|
|||||||
selector:
|
selector:
|
||||||
boolean:
|
boolean:
|
||||||
|
|
||||||
memory_mode_interval_hours:
|
|
||||||
name: Interval (Hours)
|
|
||||||
description: "How often to send memory notifications (in hours)"
|
|
||||||
default: 24
|
|
||||||
selector:
|
|
||||||
number:
|
|
||||||
min: 1
|
|
||||||
max: 168
|
|
||||||
unit_of_measurement: hours
|
|
||||||
mode: slider
|
|
||||||
|
|
||||||
memory_mode_start_hour:
|
memory_mode_start_hour:
|
||||||
name: Start Hour
|
name: Start Hour
|
||||||
description: >
|
description: >
|
||||||
Hour of day (0-23) when the first memory notification should be sent.
|
Hour of day (0-23) when the daily memory notification should be sent.
|
||||||
Example: Start hour 9 with 24h interval = daily at 09:00.
|
Memory notifications are sent once per day at this hour.
|
||||||
default: 9
|
default: 9
|
||||||
selector:
|
selector:
|
||||||
number:
|
number:
|
||||||
@@ -924,6 +932,7 @@ variables:
|
|||||||
telegram_media_delay: !input telegram_media_delay
|
telegram_media_delay: !input telegram_media_delay
|
||||||
telegram_video_warning_template: !input telegram_video_warning
|
telegram_video_warning_template: !input telegram_video_warning
|
||||||
telegram_disable_url_preview: !input telegram_disable_url_preview
|
telegram_disable_url_preview: !input telegram_disable_url_preview
|
||||||
|
telegram_chat_action: !input telegram_chat_action
|
||||||
|
|
||||||
# Periodic Summary Settings
|
# Periodic Summary Settings
|
||||||
enable_periodic_summary: !input enable_periodic_summary
|
enable_periodic_summary: !input enable_periodic_summary
|
||||||
@@ -949,7 +958,6 @@ variables:
|
|||||||
|
|
||||||
# Memory Mode Settings
|
# Memory Mode Settings
|
||||||
enable_memory_mode: !input enable_memory_mode
|
enable_memory_mode: !input enable_memory_mode
|
||||||
memory_mode_interval_hours: !input memory_mode_interval_hours
|
|
||||||
memory_mode_start_hour: !input memory_mode_start_hour
|
memory_mode_start_hour: !input memory_mode_start_hour
|
||||||
memory_mode_album_mode: !input memory_mode_album_mode
|
memory_mode_album_mode: !input memory_mode_album_mode
|
||||||
memory_mode_limit: !input memory_mode_limit
|
memory_mode_limit: !input memory_mode_limit
|
||||||
@@ -1365,8 +1373,7 @@ variables:
|
|||||||
{% elif trigger.id == 'hourly_timer' and enable_memory_mode %}
|
{% elif trigger.id == 'hourly_timer' and enable_memory_mode %}
|
||||||
{% set current_hour = now().hour %}
|
{% set current_hour = now().hour %}
|
||||||
{% set start = memory_mode_start_hour | int %}
|
{% set start = memory_mode_start_hour | int %}
|
||||||
{% set interval = memory_mode_interval_hours | int %}
|
{{ current_hour == start }}
|
||||||
{{ (current_hour - start) % interval == 0 }}
|
|
||||||
{% else %}
|
{% else %}
|
||||||
{{ false }}
|
{{ false }}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@@ -1437,6 +1444,7 @@ action:
|
|||||||
chat_id: "{{ repeat.item }}"
|
chat_id: "{{ repeat.item }}"
|
||||||
caption: "{{ periodic_summary_formatted }}"
|
caption: "{{ periodic_summary_formatted }}"
|
||||||
disable_web_page_preview: "{{ telegram_disable_url_preview }}"
|
disable_web_page_preview: "{{ telegram_disable_url_preview }}"
|
||||||
|
chat_action: "{{ telegram_chat_action }}"
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# SCHEDULED ASSETS: Send notifications with assets from tracked albums
|
# SCHEDULED ASSETS: Send notifications with assets from tracked albums
|
||||||
@@ -1670,6 +1678,7 @@ action:
|
|||||||
chat_id: "{{ repeat.item }}"
|
chat_id: "{{ repeat.item }}"
|
||||||
caption: "{{ scheduled_message }}"
|
caption: "{{ scheduled_message }}"
|
||||||
disable_web_page_preview: "{{ telegram_disable_url_preview }}"
|
disable_web_page_preview: "{{ telegram_disable_url_preview }}"
|
||||||
|
chat_action: "{{ telegram_chat_action }}"
|
||||||
|
|
||||||
# Extract message ID for reply
|
# Extract message ID for reply
|
||||||
- variables:
|
- variables:
|
||||||
@@ -1693,6 +1702,7 @@ action:
|
|||||||
max_group_size: "{{ max_media_per_group }}"
|
max_group_size: "{{ max_media_per_group }}"
|
||||||
chunk_delay: "{{ telegram_media_delay }}"
|
chunk_delay: "{{ telegram_media_delay }}"
|
||||||
wait_for_response: false
|
wait_for_response: false
|
||||||
|
chat_action: "{{ telegram_chat_action }}"
|
||||||
|
|
||||||
# Combined Mode: Fetch from all albums and combine into one notification
|
# Combined Mode: Fetch from all albums and combine into one notification
|
||||||
# Distributes the limit evenly across albums (e.g., limit=10 with 2 albums = 5 each)
|
# Distributes the limit evenly across albums (e.g., limit=10 with 2 albums = 5 each)
|
||||||
@@ -1921,6 +1931,7 @@ action:
|
|||||||
chat_id: "{{ repeat.item }}"
|
chat_id: "{{ repeat.item }}"
|
||||||
caption: "{{ combined_message }}"
|
caption: "{{ combined_message }}"
|
||||||
disable_web_page_preview: "{{ telegram_disable_url_preview }}"
|
disable_web_page_preview: "{{ telegram_disable_url_preview }}"
|
||||||
|
chat_action: "{{ telegram_chat_action }}"
|
||||||
|
|
||||||
- variables:
|
- variables:
|
||||||
combined_reply_to_id: "{{ telegram_combined_text_response[album_id_entities[0]].message_id | default(0) | int }}"
|
combined_reply_to_id: "{{ telegram_combined_text_response[album_id_entities[0]].message_id | default(0) | int }}"
|
||||||
@@ -1942,6 +1953,7 @@ action:
|
|||||||
max_group_size: "{{ max_media_per_group }}"
|
max_group_size: "{{ max_media_per_group }}"
|
||||||
chunk_delay: "{{ telegram_media_delay }}"
|
chunk_delay: "{{ telegram_media_delay }}"
|
||||||
wait_for_response: false
|
wait_for_response: false
|
||||||
|
chat_action: "{{ telegram_chat_action }}"
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# MEMORY MODE: Send "On This Day" memories from tracked albums
|
# MEMORY MODE: Send "On This Day" memories from tracked albums
|
||||||
@@ -2170,6 +2182,7 @@ action:
|
|||||||
chat_id: "{{ repeat.item }}"
|
chat_id: "{{ repeat.item }}"
|
||||||
caption: "{{ memory_message }}"
|
caption: "{{ memory_message }}"
|
||||||
disable_web_page_preview: "{{ telegram_disable_url_preview }}"
|
disable_web_page_preview: "{{ telegram_disable_url_preview }}"
|
||||||
|
chat_action: "{{ telegram_chat_action }}"
|
||||||
|
|
||||||
# Extract message ID for reply
|
# Extract message ID for reply
|
||||||
- variables:
|
- variables:
|
||||||
@@ -2193,6 +2206,7 @@ action:
|
|||||||
max_group_size: "{{ max_media_per_group }}"
|
max_group_size: "{{ max_media_per_group }}"
|
||||||
chunk_delay: "{{ telegram_media_delay }}"
|
chunk_delay: "{{ telegram_media_delay }}"
|
||||||
wait_for_response: false
|
wait_for_response: false
|
||||||
|
chat_action: "{{ telegram_chat_action }}"
|
||||||
|
|
||||||
# Combined Mode: Fetch from all albums and combine into one notification
|
# Combined Mode: Fetch from all albums and combine into one notification
|
||||||
- conditions:
|
- conditions:
|
||||||
@@ -2411,6 +2425,7 @@ action:
|
|||||||
chat_id: "{{ repeat.item }}"
|
chat_id: "{{ repeat.item }}"
|
||||||
caption: "{{ memory_comb_message }}"
|
caption: "{{ memory_comb_message }}"
|
||||||
disable_web_page_preview: "{{ telegram_disable_url_preview }}"
|
disable_web_page_preview: "{{ telegram_disable_url_preview }}"
|
||||||
|
chat_action: "{{ telegram_chat_action }}"
|
||||||
|
|
||||||
- variables:
|
- variables:
|
||||||
memory_comb_reply_to_id: "{{ telegram_memory_comb_text_response[album_id_entities[0]].message_id | default(0) | int }}"
|
memory_comb_reply_to_id: "{{ telegram_memory_comb_text_response[album_id_entities[0]].message_id | default(0) | int }}"
|
||||||
@@ -2432,6 +2447,7 @@ action:
|
|||||||
max_group_size: "{{ max_media_per_group }}"
|
max_group_size: "{{ max_media_per_group }}"
|
||||||
chunk_delay: "{{ telegram_media_delay }}"
|
chunk_delay: "{{ telegram_media_delay }}"
|
||||||
wait_for_response: false
|
wait_for_response: false
|
||||||
|
chat_action: "{{ telegram_chat_action }}"
|
||||||
|
|
||||||
# Stop here if this was a scheduled trigger - don't continue to event-based actions
|
# Stop here if this was a scheduled trigger - don't continue to event-based actions
|
||||||
- choose:
|
- choose:
|
||||||
@@ -2634,6 +2650,7 @@ action:
|
|||||||
chat_id: "{{ repeat.item }}"
|
chat_id: "{{ repeat.item }}"
|
||||||
caption: "{{ message }}"
|
caption: "{{ message }}"
|
||||||
disable_web_page_preview: "{{ telegram_disable_url_preview }}"
|
disable_web_page_preview: "{{ telegram_disable_url_preview }}"
|
||||||
|
chat_action: "{{ telegram_chat_action }}"
|
||||||
|
|
||||||
# ---------------------------------------------------------------------
|
# ---------------------------------------------------------------------
|
||||||
# CASE 5: Album Deleted
|
# CASE 5: Album Deleted
|
||||||
@@ -2670,6 +2687,7 @@ action:
|
|||||||
chat_id: "{{ repeat.item }}"
|
chat_id: "{{ repeat.item }}"
|
||||||
caption: "{{ message }}"
|
caption: "{{ message }}"
|
||||||
disable_web_page_preview: "{{ telegram_disable_url_preview }}"
|
disable_web_page_preview: "{{ telegram_disable_url_preview }}"
|
||||||
|
chat_action: "{{ telegram_chat_action }}"
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
# Send Media to Telegram (if enabled)
|
# Send Media to Telegram (if enabled)
|
||||||
@@ -2795,6 +2813,7 @@ action:
|
|||||||
chat_id: "{{ current_chat_id }}"
|
chat_id: "{{ current_chat_id }}"
|
||||||
caption: "{{ telegram_message }}"
|
caption: "{{ telegram_message }}"
|
||||||
disable_web_page_preview: "{{ telegram_disable_url_preview }}"
|
disable_web_page_preview: "{{ telegram_disable_url_preview }}"
|
||||||
|
chat_action: "{{ telegram_chat_action }}"
|
||||||
|
|
||||||
# Extract message ID for replies
|
# Extract message ID for replies
|
||||||
- variables:
|
- variables:
|
||||||
@@ -2831,3 +2850,4 @@ action:
|
|||||||
max_group_size: "{{ max_media_per_group }}"
|
max_group_size: "{{ max_media_per_group }}"
|
||||||
chunk_delay: "{{ telegram_media_delay }}"
|
chunk_delay: "{{ telegram_media_delay }}"
|
||||||
wait_for_response: false
|
wait_for_response: false
|
||||||
|
chat_action: "{{ telegram_chat_action }}"
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"version": "1.26.0"
|
"version": "1.27.0"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user