Add files from /homeassistant/includes/packages/

This commit is contained in:
Hermes Agent
2026-07-13 10:06:40 +07:00
parent 8d4100bccc
commit 076aff1ce9
17 changed files with 7410 additions and 0 deletions
+608
View File
@@ -0,0 +1,608 @@
bus:
# Время после которого будет разрешено работать автоматизации tg|ntf|tram10_rad-gor_<20m
input_datetime:
tram10_r_g_enable_time:
name: INPT|tram10_r_g_enable_time
has_date: false
has_time: true
initial: "07:15:00"
# Сенсоры, которые получают даннные о автобусе из API
#################34#####################################
sensor:
- platform: rest
name: bustime_34_kuz_pr
resource: "https://ru.busti.me/api/notify_stop/?stop_id=460789&bus_id=11299"
method: GET
scan_interval: 30
value_template: "{{ value_json.time }}"
json_attributes:
- name
- time
- x
- y
- updated
- platform: rest
name: bustime_34_circ
resource: "https://ru.busti.me/api/notify_stop/?stop_id=8880&bus_id=11299"
method: GET
scan_interval: 30
value_template: "{{ value_json.time }}"
json_attributes:
- name
- time
- x
- y
- updated
- platform: rest
name: bustime_34_univ
resource: "https://ru.busti.me/api/notify_stop/?stop_id=87239&bus_id=11299"
method: GET
scan_interval: 15
value_template: "{{ value_json.time }}"
json_attributes:
- name
- time
- x
- y
- updated
#################127#####################################
- platform: rest
name: bustime_127_circ
resource: "https://ru.busti.me/api/notify_stop/?stop_id=9277&bus_id=751"
method: GET
scan_interval: 30
value_template: "{{ value_json.time }}"
json_attributes:
- name
- time
- x
- y
- updated
#################100#####################################
- platform: rest
name: bustime_100_circ
resource: "https://ru.busti.me/api/notify_stop/?stop_id=8899&bus_id=649"
method: GET
scan_interval: 30
value_template: "{{ value_json.time }}"
json_attributes:
- name
- time
- x
- y
- updated
#################40#####################################
- platform: rest
name: bustime_40_circ
resource: "https://ru.busti.me/api/notify_stop/?stop_id=8880&bus_id=696"
method: GET
scan_interval: 30
value_template: "{{ value_json.time }}"
json_attributes:
- name
- time
- x
- y
- updated
#################12#####################################
- platform: rest
name: bustime_12_circ
resource: "https://ru.busti.me/api/notify_stop/?stop_id=9277&bus_id=652"
method: GET
scan_interval: 30
value_template: "{{ value_json.time }}"
json_attributes:
- name
- time
- x
- y
- updated
########################################################
# Остановка: Серебряный бор - мжк
#################10#####################################
- platform: rest
name: bustime_10_sereb_sbb
resource: "https://ru.busti.me/api/notify_stop/?stop_id=9395&bus_id=647"
method: GET
scan_interval: 15
value_template: "{{ value_json.time }}"
json_attributes:
- name
- time
- x
- y
- updated
- platform: rest
name: bustime_10_sereb_sb
resource: "https://ru.busti.me/api/notify_stop/?stop_id=9397&bus_id=647"
method: GET
scan_interval: 15
value_template: "{{ value_json.time }}"
json_attributes:
- name
- time
- x
- y
- updated
- platform: rest
name: bustime_10_sereb_a
resource: "https://ru.busti.me/api/notify_stop/?stop_id=9407&bus_id=647"
method: GET
scan_interval: 15
value_template: "{{ value_json.time }}"
json_attributes:
- name
- time
- x
- y
- updated
# Остановка: Кузбассэнерго (трамвай)- Радуга
#################10#####################################
- platform: rest
name: bustime_10_kemdor
resource: "https://ru.busti.me/api/notify_stop/?stop_id=8956&bus_id=647"
method: GET
scan_interval: 30
value_template: "{{ value_json.time }}"
json_attributes:
- name
- time
- x
- y
- updated
- platform: rest
name: bustime_10_kuzbass
resource: "https://ru.busti.me/api/notify_stop/?stop_id=125776&bus_id=647"
method: GET
scan_interval: 30
value_template: "{{ value_json.time }}"
json_attributes:
- name
- time
- x
- y
- updated
################шаблоны########################################
################10########################################
#сенсор показывющий время до остановки сельская б и до серебряный бор в сторону города 🚌 10 | Сельская Б: 12:49 (8 мин) | Ближ: 12:46
template:
- sensor:
- name: "tram10.raduga-gorod"
state: >
{% set s = 'sensor.bustime_10_sereb_a' %}
{% set e = 'sensor.bustime_10_sereb_sb' %}
{% set sereb_time = states(s) %}
{% set end_time = states(e) %}
{% set has_end = end_time not in ['unknown','unavailable',''] %}
{% set has_sereb = sereb_time not in ['unknown','unavailable',''] %}
{% if has_end %}
{% set now_ts = now() %}
{% set end_ts = today_at(end_time) %}
{% set delta = (end_ts - now_ts).total_seconds() / 60 %}
{% if delta < -720 %}
{% set end_ts = end_ts + timedelta(days=1) %}
{% endif %}
{% set diff = ((end_ts - now_ts).total_seconds() / 60) | round(0) %}
{% endif %}
🚌 10 | Сельская Б: {{ end_time if has_end else 'нет данных' }}{% if has_end %} ({{ diff }} мин){% endif %} | Ближ: {{ sereb_time if has_sereb else 'нет данных' }}
#сенсор показывющий время до остановки кузбассэнерго в сторону радуги 🚌 10 | нет данных
- sensor:
- name: "tram10.gorod-raduga"
state: >
{% set s = 'sensor.bustime_10_kuzbass' %}
{% set route = state_attr(s,'name') or '10' %}
{% set stop_time = states(s) %}
{% set has_time = stop_time not in ['unknown','unavailable',''] %}
{% if has_time %}
{% set now_ts = now() %}
{% set stop_ts = today_at(stop_time) %}
{% set delta = (stop_ts - now_ts).total_seconds() / 60 %}
{# если ушло сильно в минус — значит это уже завтра #}
{% if delta < -720 %}
{% set stop_ts = stop_ts + timedelta(days=1) %}
{% endif %}
{% set diff = ((stop_ts - now_ts).total_seconds() / 60) | round(0) %}
{% endif %}
🚌 {{ route }} | {{ stop_time if has_time else 'нет данных' }}{% if has_time %} ({{ diff }} мин){% endif %}
#сенсор проверки, что осталось от 3 до 1 минуты до остановки сельская больница трамвая 10, используется в tg|ntf|tram10_rad-gor_<20m
- sensor:
- name: "tram10.raduga<3m"
state: >
{% set t = states('sensor.bustime_10_sereb_sb') %}
{% if t in ['unknown','unavailable',''] %}
false
{% else %}
{% set now_ts = now() %}
{% set arr = today_at(t) %}
{% if arr < now_ts %}
{% set arr = arr + timedelta(days=1) %}
{% endif %}
{% set diff = ((arr - now_ts).total_seconds() / 60) %}
{{ 1 <= diff <= 4 }}
{% endif %}
#сенсоры сравнения координат автобуса и остановки sensor.bus34_stop_ub, используется в tg|ntf|bus34_ub_check
#34
- sensor:
- name: "bus34_stop_ub_gps_true"
state: >
{% set lat1 = state_attr('sensor.bus34_stop_univ','latitude') %}
{% set lon1 = state_attr('sensor.bus34_stop_univ','longitude') %}
{% set lat2 = state_attr('sensor.bustime_34_univ','y') %}
{% set lon2 = state_attr('sensor.bustime_34_univ','x') %}
{% if lat2 and lon2 %}
{{ distance(lat1, lon1, lat2, lon2) <= 0.02 }}
{% else %}
false
{% endif %}
#10
- sensor:
- name: "tram10_stop_kemdor_gps_true"
state: >
{% set lat1 = state_attr('sensor.tram10_stop_kemdor','latitude') %}
{% set lon1 = state_attr('sensor.tram10_stop_kemdor','longitude') %}
{% set lat2 = state_attr('sensor.bustime_10_kemdor','y') %}
{% set lon2 = state_attr('sensor.bustime_10_kemdor','x') %}
{% if lat2 and lon2 %}
{{ distance(lat1, lon1, lat2, lon2) <= 0.2 }}
{% else %}
false
{% endif %}
#Сенсор с координатами
#34
- sensor:
- name: "bus34_stop_univ"
state: "ok"
attributes:
latitude: 55.344968
longitude: 86.127703
#10
#34
- sensor:
- name: "tram10_stop_kemdor"
state: "ok"
attributes:
latitude: 55.348193
longitude: 86.061649
automation:
#####################################10#########################################
##############################10Радуга-Город####################################
###########################запуск автоматизации#################################
- alias: tg|ntf|tram10_rad-gor_ask_run
description: ""
mode: single
triggers:
- trigger: time
at: "22:00:00"
weekday:
- mon
- tue
- wed
- thu
- sun
action:
- action: input_datetime.set_datetime
metadata: {}
target:
entity_id: input_datetime.tram10_r_g_enable_time
data:
time: "07:15:00"
- action: automation.turn_on
metadata: {}
target:
entity_id: automation.tg_ntf_tram10_rad_gor_20m
- service: telegram_bot.send_message
data:
chat_id:
- "-1002006010424"
message: "🚌 Запустить автоматизацию уведомления трамвая 10?"
inline_keyboard:
- "▶ Запустить:/tram10_r_g_run, ❌ Не запускать:/tram10_r_g_skip"
- '{{''\U0001F552''}}Время:/toggle_bs_r_g_time, {{''\U0001F553''}}Сброс:/toggle_bs_r_g_cancel'
## Управление временем запуска уведомления прихода трамвая 10 радуга-город
- id: tg|mn|tram10_start_time_raduga_gorod
alias: tg|mn|tram10_start_time_raduga_gorod
initial_state: true
trigger:
- platform: event
event_type: telegram_callback
event_data: {}
action:
- choose:
- conditions:
- condition: template
value_template: "{{ trigger.event.data.command == '/toggle_bs_r_g_time' }}"
sequence:
- service: telegram_bot.delete_message
data_template:
message_id: "{{ trigger.event.data.message.message_id }}"
chat_id: "{{ trigger.event.data.chat_id }}"
- service: telegram_bot.send_message
data:
chat_id: "{{ trigger.event.data.chat_id }}"
message: &msg_bs_t10_r_g |
{{'\U0001F30A'}}Выбор времени начала уведомлений: {{ states('input_datetime.tram10_r_g_enable_time') }}
inline_keyboard: &keyb_bs_t10_r_g
- '{{''\U0001F556''}}7:00:/toggle_bs_r_g_time7, {{''\U0001F557''}}8:00:/toggle_bs_r_g_time8'
- "▶ Запустить:/tram10_r_g_run, ❌ Не запускать:/tram10_r_g_skip"
- conditions:
- condition: template
value_template: "{{ trigger.event.data.command == '/toggle_bs_r_g_time7' }}"
sequence:
- service: input_datetime.set_datetime
data:
time: "07:00:00"
target:
entity_id: input_datetime.tram10_r_g_enable_time
- delay:
milliseconds: 500
- service: telegram_bot.answer_callback_query
data:
callback_query_id: "{{ trigger.event.data.id }}"
message: |
{{"\U0001F4AC"}} Время установлено на 7:00
- service: telegram_bot.delete_message
data_template:
message_id: "{{ trigger.event.data.message.message_id }}"
chat_id: "{{ trigger.event.data.chat_id }}"
- service: telegram_bot.send_message
data:
chat_id: "{{ trigger.event.data.chat_id }}"
message: *msg_bs_t10_r_g
inline_keyboard: *keyb_bs_t10_r_g
- conditions:
- condition: template
value_template: "{{ trigger.event.data.command == '/toggle_bs_r_g_time8' }}"
sequence:
- service: input_datetime.set_datetime
data:
time: "08:00:00"
target:
entity_id: input_datetime.tram10_r_g_enable_time
- delay:
milliseconds: 500
- service: telegram_bot.answer_callback_query
data:
callback_query_id: "{{ trigger.event.data.id }}"
message: |
{{"\U0001F4AC"}} Время установлено на 8:00
- service: telegram_bot.delete_message
data_template:
message_id: "{{ trigger.event.data.message.message_id }}"
chat_id: "{{ trigger.event.data.chat_id }}"
- service: telegram_bot.send_message
data:
chat_id: "{{ trigger.event.data.chat_id }}"
message: *msg_bs_t10_r_g
inline_keyboard: *keyb_bs_t10_r_g
- alias: tg|tram10_rad_gor_run
mode: single
trigger:
- platform: event
event_type: telegram_callback
event_data:
data: "/tram10_r_g_run"
action:
- service: automation.turn_on
target:
entity_id: automation.tg_ntf_tram10_rad_gor_20m
- service: telegram_bot.send_message
data:
chat_id:
- "-1002006010424"
message: "✅ Автоматизация трамвая 10 включена"
- alias: tg|tram10_rad_gor_skip
mode: single
trigger:
- platform: event
event_type: telegram_callback
event_data:
command: "/tram10_r_g_skip"
action:
- action: automation.turn_off
metadata: {}
target:
entity_id: automation.tg_ntf_tram10_rad_gor_20m
data:
stop_actions: true
- service: telegram_bot.send_message
data:
chat_id:
- "-1002006010424"
message: "❌Оповещения трамвая 10 Радуга-Город отключены"
inline_keyboard:
- "▶ Запустить:/tram10_r_g_run"
- alias: tg|ntf|tram10_rad-gor_<20m
description: ""
mode: single
triggers:
- trigger: state
entity_id:
- sensor.tram10_raduga_3m
from:
- "False"
to:
- "True"
for:
hours: 0
minutes: 0
seconds: 0
conditions:
- condition: template
value_template: >
{{ now().strftime('%H:%M') >=
states('input_datetime.tram10_r_g_enable_time')[0:5] }}
actions:
- action: telegram_bot.send_message
metadata: {}
data:
chat_id:
- "-1002006010424"
message: >-
🚌 10 будет ~ {{ states('sensor.bustime_10_sereb_a') }}, следующий ~ {%
set t = states('sensor.bustime_10_sereb_sb') %}{% if t in
['unknown','unavailable',''] %}нет данных{% else %}{% set base =
today_at(t) %}{% set plus = base + timedelta(minutes=10) %}{{
plus.strftime('%H:%M') }}{% endif %}
- action: automation.turn_off
metadata: {}
target:
entity_id: automation.tg_ntf_tram10_rad_gor_20m
data:
stop_actions: false
- delay:
hours: 0
minutes: 3
seconds: 0
milliseconds: 0
- action: automation.turn_on
metadata: {}
target:
entity_id: automation.tg_ntf_tram10_rad_gor_20m
data: {}
- alias: tg|ntf|tram10_rad-gor_<20m_off
description: ""
mode: single
triggers:
- trigger: zone
entity_id: device_tracker.google_maps_108918666344169166438
zone: zone.transport_raduga
event: leave
conditions:
- condition: state
entity_id: automation.tg_ntf_tram10_rad_gor_20m
state:
- "on"
actions:
- action: automation.turn_off
metadata: {}
target:
entity_id: automation.tg_ntf_tram10_rad_gor_20m
data:
stop_actions: true
- action: telegram_bot.send_message
metadata: {}
data:
chat_id:
- "-1002006010424"
message: >-
Вы покинули зону уведомлений транспорта на радуге - автоматизация
отключена
##############################10Город-Радуга####################################
- alias: tg|ntf|tram10_kemdor_check
description: ""
mode: single
triggers:
- trigger: state
entity_id:
- sensor.bus34_stop_ub_gps_true
from: null
to:
- "True"
conditions: []
actions:
- action: telegram_bot.send_message
metadata: {}
data:
chat_id:
- "-1002006010424"
message: 🚌 34 проехал юбилейный
#####################################34#########################################
#################################город-радуга###################################
- alias: tg|ntf|bus34_ub_check
description: ""
mode: single
triggers:
- trigger: state
entity_id:
- sensor.tram10_stop_kemdor_gps_true
from: null
to:
- "True"
conditions: []
actions:
- action: telegram_bot.send_message
metadata: {}
data:
chat_id:
- "-1002006010424"
message: 🚌 10 проехал кемдор