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 минут."
inline_keyboard:
- "включить:/wrt_cb_on|{{ 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 }}"
- "главное меню:/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 }}"
message: "connect-accept включён"
- service: telegram_bot.edit_message_text
data:
message_id: "{{ trigger.event.data.message.message_id }}"
chat_id: "{{ chat_id }}"
message: "connect-accept включён\n\nТаймер остановлен."
inline_keyboard:
- "отключить:/wrt_cb_off|{{ 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 }}"
message: "connect-accept отключён"
- service: telegram_bot.edit_message_text
data:
message_id: "{{ trigger.event.data.message.message_id }}"
chat_id: "{{ chat_id }}"
message: "connect-accept отключён\n\nВключится автоматически через 10 минут."
inline_keyboard:
- "включить:/wrt_cb_on|{{ chat_id }}"
- "главное меню:/menu_back"
- service: timer.start
target:
entity_id: timer.wrt_ca_timer
- 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') }}"
- "главное меню:/menu_back"