184 lines
7.3 KiB
YAML
184 lines
7.3 KiB
YAML
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: "<b>connect-accept отключён</b>\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: "<b>connect-accept включён</b>\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.edit_message
|
||
data:
|
||
chat_id: "{{ chat_id }}"
|
||
message_id: "{{ trigger.event.data.message.message_id }}"
|
||
parse_mode: html
|
||
message: |
|
||
<b>connect-accept включён</b>
|
||
|
||
Таймер остановлен.
|
||
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.edit_message
|
||
data:
|
||
chat_id: "{{ chat_id }}"
|
||
message_id: "{{ trigger.event.data.message.message_id }}"
|
||
parse_mode: html
|
||
message: |
|
||
<b>connect-accept отключён</b>
|
||
|
||
Через 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.edit_message
|
||
data:
|
||
chat_id: "{{ chat_id }}"
|
||
message_id: "{{ trigger.event.data.message.message_id }}"
|
||
parse_mode: html
|
||
message: |
|
||
<b>connect-accept отключён</b>
|
||
|
||
Через {{ (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: "<b>Таймер истёк!</b>\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"
|