From f072aae73c6541e6bb0e4f38527690adc6c22184 Mon Sep 17 00:00:00 2001 From: hanwg Date: Sat, 13 Dec 2025 02:19:13 +0000 Subject: [PATCH 1/4] Remove ALLOW_EXTRA from Telegram bot action schema --- .../components/telegram_bot/__init__.py | 18 ++++++++++++++---- .../telegram_bot/test_telegram_bot.py | 2 -- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/telegram_bot/__init__.py b/homeassistant/components/telegram_bot/__init__.py index 7170c7baad834c..0d45f6dfb95b3b 100644 --- a/homeassistant/components/telegram_bot/__init__.py +++ b/homeassistant/components/telegram_bot/__init__.py @@ -69,6 +69,7 @@ ATTR_PASSWORD, ATTR_QUESTION, ATTR_REACTION, + ATTR_REPLY_TO_MSGID, ATTR_RESIZE_KEYBOARD, ATTR_SHOW_ALERT, ATTR_STICKER_ID, @@ -165,14 +166,17 @@ vol.Optional(ATTR_TIMEOUT): cv.positive_int, vol.Optional(ATTR_MESSAGE_TAG): cv.string, vol.Optional(ATTR_MESSAGE_THREAD_ID): vol.Coerce(int), - }, - extra=vol.ALLOW_EXTRA, + } ) SERVICE_SCHEMA_SEND_MESSAGE = vol.All( cv.deprecated(ATTR_TIMEOUT), BASE_SERVICE_SCHEMA.extend( - {vol.Required(ATTR_MESSAGE): cv.string, vol.Optional(ATTR_TITLE): cv.string} + { + vol.Required(ATTR_MESSAGE): cv.string, + vol.Optional(ATTR_TITLE): cv.string, + vol.Optional(ATTR_REPLY_TO_MSGID): vol.Coerce(int), + } ), ) @@ -250,12 +254,18 @@ SERVICE_SCHEMA_EDIT_MESSAGE = vol.All( cv.deprecated(ATTR_TIMEOUT), - SERVICE_SCHEMA_BASE_SEND_FILE.extend( + vol.Schema( { + vol.Optional(CONF_CONFIG_ENTRY_ID): cv.string, + vol.Optional(ATTR_TITLE): cv.string, + vol.Required(ATTR_MESSAGE): cv.string, vol.Required(ATTR_MESSAGEID): vol.Any( cv.positive_int, vol.All(cv.string, "last") ), vol.Required(ATTR_CHAT_ID): vol.Coerce(int), + vol.Optional(ATTR_PARSER): cv.string, + vol.Optional(ATTR_KEYBOARD_INLINE): cv.ensure_list, + vol.Optional(ATTR_DISABLE_WEB_PREV): cv.boolean, } ), ) diff --git a/tests/components/telegram_bot/test_telegram_bot.py b/tests/components/telegram_bot/test_telegram_bot.py index 8c73379a6e02b1..2df0f2ef80164a 100644 --- a/tests/components/telegram_bot/test_telegram_bot.py +++ b/tests/components/telegram_bot/test_telegram_bot.py @@ -158,7 +158,6 @@ async def test_polling_platform_init( ( SERVICE_SEND_LOCATION, { - ATTR_MESSAGE: "test_message", ATTR_MESSAGE_THREAD_ID: "123", ATTR_LONGITUDE: "1.123", ATTR_LATITUDE: "1.123", @@ -1505,7 +1504,6 @@ async def test_set_message_reaction( SERVICE_SEND_LOCATION, { ATTR_TARGET: 654321, - ATTR_MESSAGE: "test_message", ATTR_MESSAGE_THREAD_ID: "123", ATTR_LONGITUDE: "1.123", ATTR_LATITUDE: "1.123", From c5f05fdef82b3d074b38b697815e57029a5910f6 Mon Sep 17 00:00:00 2001 From: hanwg Date: Tue, 16 Dec 2025 12:03:14 +0000 Subject: [PATCH 2/4] add reply_to_msgid for send actions --- homeassistant/components/telegram_bot/__init__.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/homeassistant/components/telegram_bot/__init__.py b/homeassistant/components/telegram_bot/__init__.py index 0d45f6dfb95b3b..ab3fb0282eb0bb 100644 --- a/homeassistant/components/telegram_bot/__init__.py +++ b/homeassistant/components/telegram_bot/__init__.py @@ -212,6 +212,7 @@ vol.Optional(ATTR_PASSWORD): cv.string, vol.Optional(ATTR_AUTHENTICATION): cv.string, vol.Optional(ATTR_VERIFY_SSL): cv.boolean, + vol.Optional(ATTR_REPLY_TO_MSGID): vol.Coerce(int), } ) @@ -231,6 +232,7 @@ { vol.Required(ATTR_LONGITUDE): cv.string, vol.Required(ATTR_LATITUDE): cv.string, + vol.Optional(ATTR_REPLY_TO_MSGID): vol.Coerce(int), } ), ) @@ -248,6 +250,7 @@ vol.Optional(ATTR_ALLOWS_MULTIPLE_ANSWERS, default=False): cv.boolean, vol.Optional(ATTR_DISABLE_NOTIF): cv.boolean, vol.Optional(ATTR_MESSAGE_THREAD_ID): vol.Coerce(int), + vol.Optional(ATTR_REPLY_TO_MSGID): vol.Coerce(int), } ), ) From 530c486ab9e86147507053888fda639e3fa587fd Mon Sep 17 00:00:00 2001 From: hanwg Date: Wed, 17 Dec 2025 13:30:51 +0000 Subject: [PATCH 3/4] update schema for send_chat_action --- homeassistant/components/telegram_bot/__init__.py | 5 ++++- tests/components/telegram_bot/test_telegram_bot.py | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/telegram_bot/__init__.py b/homeassistant/components/telegram_bot/__init__.py index 3647265070ad06..943efe007514c8 100644 --- a/homeassistant/components/telegram_bot/__init__.py +++ b/homeassistant/components/telegram_bot/__init__.py @@ -143,8 +143,10 @@ SERVICE_SCHEMA_SEND_CHAT_ACTION = vol.All( cv.deprecated(ATTR_TIMEOUT), - BASE_SERVICE_SCHEMA.extend( + vol.Schema( { + vol.Optional(CONF_CONFIG_ENTRY_ID): cv.string, + vol.Optional(ATTR_TARGET): vol.All(cv.ensure_list, [vol.Coerce(int)]), vol.Required(ATTR_CHAT_ACTION): vol.In( ( CHAT_ACTION_TYPING, @@ -160,6 +162,7 @@ CHAT_ACTION_UPLOAD_VIDEO_NOTE, ) ), + vol.Optional(ATTR_MESSAGE_THREAD_ID): vol.Coerce(int), } ), ) diff --git a/tests/components/telegram_bot/test_telegram_bot.py b/tests/components/telegram_bot/test_telegram_bot.py index fabdf36e23edc2..7d5bf6d7951929 100644 --- a/tests/components/telegram_bot/test_telegram_bot.py +++ b/tests/components/telegram_bot/test_telegram_bot.py @@ -413,6 +413,7 @@ async def test_send_chat_action( CONF_CONFIG_ENTRY_ID: mock_broadcast_config_entry.entry_id, ATTR_TARGET: [123456], ATTR_CHAT_ACTION: CHAT_ACTION_TYPING, + ATTR_MESSAGE_THREAD_ID: 123, }, blocking=True, return_response=True, From ec9ffcd22e3936c85549dcb3e1d129eb1f188bfe Mon Sep 17 00:00:00 2001 From: hanwg Date: Wed, 17 Dec 2025 13:59:54 +0000 Subject: [PATCH 4/4] added missing message_thread_id parameter --- homeassistant/components/telegram_bot/bot.py | 1 + tests/components/telegram_bot/test_telegram_bot.py | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/telegram_bot/bot.py b/homeassistant/components/telegram_bot/bot.py index 9cd3f0012663d6..325aa7ffbc6c0c 100644 --- a/homeassistant/components/telegram_bot/bot.py +++ b/homeassistant/components/telegram_bot/bot.py @@ -783,6 +783,7 @@ async def send_chat_action( None, chat_id=chat_id, action=chat_action, + message_thread_id=kwargs.get(ATTR_MESSAGE_THREAD_ID), context=context, ) result[chat_id] = is_successful diff --git a/tests/components/telegram_bot/test_telegram_bot.py b/tests/components/telegram_bot/test_telegram_bot.py index 7d5bf6d7951929..1118dea6c5912f 100644 --- a/tests/components/telegram_bot/test_telegram_bot.py +++ b/tests/components/telegram_bot/test_telegram_bot.py @@ -421,7 +421,9 @@ async def test_send_chat_action( await hass.async_block_till_done() mock.assert_called_once() - mock.assert_called_with(chat_id=123456, action=CHAT_ACTION_TYPING) + mock.assert_called_with( + chat_id=123456, action=CHAT_ACTION_TYPING, message_thread_id=123 + ) @pytest.mark.parametrize(