router: timer: wrt_ca_timer: duration: '00:10:00' name: Connect Accept Timer automation: - alias: ntf|tg|wrt_ip description: Получает IP-адреса из ipset connect_accept на OpenWRT и отправляет их в Telegram trigger: - platform: event event_type: telegram_command event_data: command: '/wrt_ip' - platform: event event_type: telegram_command event_data: command: '/wrt_ip@ha_dddennnisss_bot' action: - service: shell_command.get_connect_accept_ips response_variable: wrt_ips - service: telegram_bot.send_message data: chat_id: "{{ trigger.event.data.chat_id }}" message: > connect-accept: {{ wrt_ips.stdout | default('Нет данных') }} mode: single - alias: tg|wrt_ip_add trigger: platform: event event_type: telegram_command event_data: command: /wrt_ip_add action: - variables: chat_id: "{{ trigger.event.data.chat_id }}" ip_arg: "{{ trigger.event.data.args | join(' ') }}" - service: shell_command.add_ip_to_connect_accept data: ip: "{{ ip_arg }}" - service: telegram_bot.send_message data: chat_id: "{{ trigger.event.data.chat_id }}" message: "IP {{ ip_arg }} добавлен в connect-accept" parse_mode: none # --- CONNECT-ACCEPT с таймером 10 мин --- - alias: "tg|wrt_off_connect_accept" trigger: platform: event event_type: telegram_command event_data: command: /wrt_ca_off action: - service: shell_command.wrt_ca_off - service: telegram_bot.send_message data: chat_id: "{{ trigger.event.data.chat_id }}" message: "connect-accept отключён\n\nЧерез 10:00 включится автоматически." inline_keyboard: - "🔛 Включить:/wrt_cb_on|{{ trigger.event.data.chat_id }}" - "🔄 Обновить:/wrt_cb_refresh|{{ trigger.event.data.chat_id }}" - "🔙 Назад:/menu_back" - service: timer.start target: entity_id: timer.wrt_ca_timer - alias: "tg|wrt_on_connect_accept" trigger: platform: event event_type: telegram_command event_data: command: /wrt_ca_on action: - service: shell_command.wrt_ca_on - service: telegram_bot.send_message data: chat_id: "{{ trigger.event.data.chat_id }}" message: "connect-accept включён\n\nТаймер остановлен." inline_keyboard: - "⏸️ Отключить:/wrt_cb_off|{{ trigger.event.data.chat_id }}" - "🔄 Обновить:/wrt_cb_refresh|{{ trigger.event.data.chat_id }}" - "🔙 Назад:/menu_back" - service: timer.cancel target: entity_id: timer.wrt_ca_timer - alias: "tg|wrt_cb_on" trigger: platform: event event_type: telegram_callback condition: - condition: template value_template: "{{ 'wrt_cb_on' in trigger.event.data.data }}" action: - variables: chat_id: "{{ trigger.event.data.data.split('|')[1] }}" - service: shell_command.wrt_ca_on - service: telegram_bot.answer_callback_query data: callback_query_id: "{{ trigger.event.data.id }}" text: "connect-accept включён" - service: telegram_bot.edit_message data: chat_id: "{{ chat_id }}" message_id: "{{ trigger.event.data.message.message_id }}" parse_mode: html message: | connect-accept включён Таймер остановлен. inline_keyboard: - "⏸️ Отключить:/wrt_cb_off|{{ chat_id }}" - "🔄 Обновить:/wrt_cb_refresh|{{ chat_id }}" - "🔙 Назад:/menu_back" - service: timer.cancel target: entity_id: timer.wrt_ca_timer - alias: "tg|wrt_cb_off" trigger: platform: event event_type: telegram_callback condition: - condition: template value_template: "{{ 'wrt_cb_off' in trigger.event.data.data }}" action: - variables: chat_id: "{{ trigger.event.data.data.split('|')[1] }}" - service: shell_command.wrt_ca_off - service: telegram_bot.answer_callback_query data: callback_query_id: "{{ trigger.event.data.id }}" text: "connect-accept отключён" - service: telegram_bot.edit_message data: chat_id: "{{ chat_id }}" message_id: "{{ trigger.event.data.message.message_id }}" parse_mode: html message: | connect-accept отключён Через 10:00 включится автоматически. inline_keyboard: - "🔛 Включить:/wrt_cb_on|{{ chat_id }}" - "🔄 Обновить:/wrt_cb_refresh|{{ chat_id }}" - "🔙 Назад:/menu_back" - service: timer.start target: entity_id: timer.wrt_ca_timer - alias: "tg|wrt_cb_refresh" trigger: platform: event event_type: telegram_callback condition: - condition: template value_template: "{{ 'wrt_cb_refresh' in trigger.event.data.data }}" action: - variables: chat_id: "{{ trigger.event.data.data.split('|')[1] }}" - service: telegram_bot.answer_callback_query data: callback_query_id: "{{ trigger.event.data.id }}" text: "Обновлено" - service: telegram_bot.edit_message data: chat_id: "{{ chat_id }}" message_id: "{{ trigger.event.data.message.message_id }}" parse_mode: html message: | connect-accept отключён Через {{ (as_timestamp(state_attr('timer.wrt_ca_timer', 'finishes_at')) - as_timestamp(now())) | timestamp_custom('%M:%S', false) | replace(' 0', ' 0', 1) }} включится автоматически. inline_keyboard: - "🔛 Включить:/wrt_cb_on|{{ chat_id }}" - "🔄 Обновить:/wrt_cb_refresh|{{ chat_id }}" - "🔙 Назад:/menu_back" - alias: "wrt|timer_expired_auto_on" trigger: platform: event event_type: timer.finished event_data: entity_id: timer.wrt_ca_timer action: - service: shell_command.wrt_ca_on - service: telegram_bot.send_message data: chat_id: "{{ states('input_text.wrt_ca_chat_id') | default('102879274') }}" message: "Таймер истёк!\nconnect-accept включён автоматически." inline_keyboard: - "⏸️ Отключить:/wrt_cb_off|{{ states('input_text.wrt_ca_chat_id') | default('102879274') }}" - "🔄 Обновить:/wrt_cb_refresh|{{ states('input_text.wrt_ca_chat_id') | default('102879274') }}" - "🔙 Назад:/menu_back"