Clean main branch
This commit is contained in:
@@ -1,608 +0,0 @@
|
||||
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 проехал кемдор
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user