Clean main branch
This commit is contained in:
@@ -1,268 +0,0 @@
|
||||
dishwasher:
|
||||
|
||||
# инпут для ввода времени отложенного старта
|
||||
input_datetime:
|
||||
dishwasher_startinrelative:
|
||||
name: INPT|dishwasher_startinrelative
|
||||
has_date: false
|
||||
has_time: true
|
||||
|
||||
input_boolean:
|
||||
dishwasher_needs_unloading:
|
||||
name: Нужно разобрать посуду
|
||||
icon: mdi:dishwasher
|
||||
|
||||
script:
|
||||
dw_start_select_program:
|
||||
alias: dw_start_select_program_relative
|
||||
sequence:
|
||||
- action: homeconnect_ws.start_program
|
||||
data:
|
||||
device_id: 0166c54489231f7edaf804c02ab6a652
|
||||
start_in:
|
||||
hours: "{{ state_attr('input_datetime.dishwasher_startinrelative', 'hour') }}"
|
||||
minutes: "{{ state_attr('input_datetime.dishwasher_startinrelative', 'minute') }}"
|
||||
seconds: "{{ state_attr('input_datetime.dishwasher_startinrelative', 'second') }}"
|
||||
|
||||
dw_stop_program:
|
||||
alias: dw_stop_program
|
||||
sequence:
|
||||
- action: button.press
|
||||
target:
|
||||
entity_id: button.bosch_dishwasher_abort
|
||||
- service: input_datetime.set_datetime
|
||||
data:
|
||||
time: "00:00:00"
|
||||
target:
|
||||
entity_id: input_datetime.dishwasher_startinrelative
|
||||
|
||||
dw_install_auto_45_65_extradry_extrarinse:
|
||||
alias: dw_install_auto_45_65_extradry_extrarinse
|
||||
sequence:
|
||||
- service: select.select_option
|
||||
data:
|
||||
entity_id: select.bosch_dishwasher_selected_program
|
||||
option: dishcare_dishwasher_program_auto2
|
||||
|
||||
dw_install_quick_65_extradry_extrarinse:
|
||||
alias: dw_install_quick_65_extradry_extrarinse
|
||||
sequence:
|
||||
- service: select.select_option
|
||||
data:
|
||||
entity_id: select.bosch_dishwasher_selected_program
|
||||
option: dishcare_dishwasher_program_quick65
|
||||
|
||||
dw_install_int_70_extradry_extrarinse:
|
||||
alias: dw_install_int_70_extradry_extrarinse
|
||||
sequence:
|
||||
- service: select.select_option
|
||||
data:
|
||||
entity_id: select.bosch_dishwasher_selected_program
|
||||
option: dishcare_dishwasher_program_intensiv70
|
||||
|
||||
dw_install_eco_50_extradry_extrarinse:
|
||||
alias: dw_install_eco_50_extradry_extrarinse
|
||||
sequence:
|
||||
- service: select.select_option
|
||||
data:
|
||||
entity_id: select.bosch_dishwasher_selected_program
|
||||
option: dishcare_dishwasher_program_eco50
|
||||
|
||||
dw_install_care:
|
||||
alias: dw_install_care
|
||||
sequence:
|
||||
- service: select.select_option
|
||||
data:
|
||||
entity_id: select.bosch_dishwasher_selected_program
|
||||
option: dishcare_dishwasher_program_machinecare
|
||||
|
||||
automation:
|
||||
|
||||
# ==========================================
|
||||
# --- СБРОС ТАЙМЕРА ПРИ СТАРТЕ ---
|
||||
# ==========================================
|
||||
- id: dw_refresh_inp_dttm_dw
|
||||
alias: "dw|refresh_inp_dttm_dw"
|
||||
description: "Сброс времени отложенного старта"
|
||||
mode: single
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: sensor.bosch_dishwasher_operation_state
|
||||
from: null
|
||||
to: "Run"
|
||||
- platform: state
|
||||
entity_id: sensor.bosch_dishwasher_operation_state
|
||||
from: null
|
||||
to: "DelayedStart"
|
||||
action:
|
||||
- service: input_datetime.set_datetime
|
||||
data:
|
||||
time: "00:00:00"
|
||||
target:
|
||||
entity_id: input_datetime.dishwasher_startinrelative
|
||||
|
||||
# ==========================================
|
||||
# --- УВЕДОМЛЕНИЕ О ЗАВЕРШЕНИИ И РАЗБОРЕ ---
|
||||
# ==========================================
|
||||
- id: ntf_tg_dw_end_wash
|
||||
alias: "ntf|tg|dw|end_wash"
|
||||
description: "Уведомление о завершении мойки с проверкой открытия дверцы"
|
||||
mode: single
|
||||
trigger:
|
||||
- platform: state
|
||||
entity_id: sensor.bosch_dishwasher_operation_state
|
||||
from: "Run"
|
||||
to: "Finished"
|
||||
action:
|
||||
- service: input_boolean.turn_on
|
||||
target:
|
||||
entity_id: input_boolean.dishwasher_needs_unloading
|
||||
|
||||
- repeat:
|
||||
sequence:
|
||||
# Отправляем уведомление в обе группы!
|
||||
- service: telegram_bot.send_message
|
||||
data:
|
||||
chat_id:
|
||||
- -1002006010424
|
||||
- -1003233671944
|
||||
message: "✅ <b>Мойка посуды завершена!</b> Необходимо разобрать её."
|
||||
parse_mode: html
|
||||
inline_keyboard:
|
||||
- '🌊 Посудомойка:/dw_control'
|
||||
- '🔙 Главное меню:/menu_back, 🗑️ Прочитано:/menu_hide'
|
||||
|
||||
# Ждем открытия дверцы до 3 часов
|
||||
- wait_for_trigger:
|
||||
- platform: state
|
||||
entity_id: binary_sensor.bosch_dishwasher_door
|
||||
to: "on"
|
||||
timeout: "03:00:00"
|
||||
continue_on_timeout: true
|
||||
|
||||
# Если дверцу открыли
|
||||
- choose:
|
||||
- conditions:
|
||||
- condition: state
|
||||
entity_id: binary_sensor.bosch_dishwasher_door
|
||||
state: "on"
|
||||
sequence:
|
||||
- delay: "00:01:00"
|
||||
# Проверяем, что она всё ещё открыта (посуду разбирают)
|
||||
- condition: state
|
||||
entity_id: binary_sensor.bosch_dishwasher_door
|
||||
state: "on"
|
||||
- service: telegram_bot.send_message
|
||||
data:
|
||||
chat_id:
|
||||
- -1002006010424
|
||||
- -1003233671944
|
||||
message: "🎉 <b>Посудомойка успешно разобрана!</b>"
|
||||
parse_mode: html
|
||||
- service: input_boolean.turn_off
|
||||
target:
|
||||
entity_id: input_boolean.dishwasher_needs_unloading
|
||||
until:
|
||||
- condition: state
|
||||
entity_id: binary_sensor.bosch_dishwasher_door
|
||||
state: "on"
|
||||
for:
|
||||
minutes: 1
|
||||
|
||||
# ==========================================
|
||||
# --- КОМАНДА: УСТАНОВКА ТАЙМЕРА (/time) ---
|
||||
# ==========================================
|
||||
- id: dw_install_time_startinrelative
|
||||
alias: "dw|install_time_startinrelative"
|
||||
mode: single
|
||||
trigger:
|
||||
- platform: event
|
||||
event_type: telegram_command
|
||||
event_data:
|
||||
command: "/time"
|
||||
- platform: event
|
||||
event_type: telegram_command
|
||||
event_data:
|
||||
command: "/time@ha_dddennnisss_bot"
|
||||
action:
|
||||
- choose:
|
||||
# Вариант 1: формат HH:MM (например /time 14:30)
|
||||
- conditions: >
|
||||
{{ trigger.event.data.args is defined and
|
||||
trigger.event.data.args | length > 0 and
|
||||
':' in trigger.event.data.args[0] }}
|
||||
sequence:
|
||||
- variables:
|
||||
time_parts: "{{ trigger.event.data.args[0].split(':') }}"
|
||||
- service: input_datetime.set_datetime
|
||||
data:
|
||||
time: "{{ '%02d:%02d:00' | format(time_parts[0] | int, time_parts[1] | int) }}"
|
||||
target:
|
||||
entity_id: input_datetime.dishwasher_startinrelative
|
||||
- service: telegram_bot.send_message
|
||||
data:
|
||||
chat_id: "{{ trigger.event.data.chat_id }}"
|
||||
message: "✅ Отложенный запуск через <b>{{ '%02d:%02d' | format(time_parts[0] | int, time_parts[1] | int) }}</b>"
|
||||
parse_mode: html
|
||||
inline_keyboard:
|
||||
- '▶️ Старт программы:/toggle_dw_start, ❌ Сброс пуска:/toggle_dw_delay_clear'
|
||||
- '🔙 Меню:/menu_back, 🌊 Посудомойка:/dw_control'
|
||||
|
||||
# Вариант 2: только минуты (например /time 45)
|
||||
- conditions: >
|
||||
{{ trigger.event.data.args is defined and
|
||||
trigger.event.data.args | length > 0 and
|
||||
trigger.event.data.args[0] | int(default=0) > 0 and
|
||||
':' not in trigger.event.data.args[0] }}
|
||||
sequence:
|
||||
- variables:
|
||||
minutes_only: "{{ trigger.event.data.args[0] | int }}"
|
||||
target_hour: "{{ (minutes_only // 60) % 24 }}"
|
||||
target_minute: "{{ minutes_only % 60 }}"
|
||||
- service: input_datetime.set_datetime
|
||||
data:
|
||||
time: "{{ '%02d:%02d:00' | format(target_hour, target_minute) }}"
|
||||
target:
|
||||
entity_id: input_datetime.dishwasher_startinrelative
|
||||
- service: telegram_bot.send_message
|
||||
data:
|
||||
chat_id: "{{ trigger.event.data.chat_id }}"
|
||||
message: "✅ Отложенный запуск через <b>{{ '%02d:%02d' | format(target_hour, target_minute) }}</b>"
|
||||
parse_mode: html
|
||||
inline_keyboard:
|
||||
- '▶️ Старт программы:/toggle_dw_start, ❌ Сброс пуска:/toggle_dw_delay_clear'
|
||||
- '🔙 Меню:/menu_back, 🌊 Посудомойка:/dw_control'
|
||||
|
||||
# Ошибка: неверный формат
|
||||
default:
|
||||
- service: telegram_bot.send_message
|
||||
data:
|
||||
chat_id: "{{ trigger.event.data.chat_id }}"
|
||||
message: "⚠️ Укажите время в правильном формате:\n<code>/time 14:30</code> (часы:минуты)\nили\n<code>/time 45</code> (только минуты)"
|
||||
parse_mode: html
|
||||
|
||||
# ==========================================
|
||||
# --- УВЕДОМЛЕНИЕ: МАЛО СОЛИ ---
|
||||
# ==========================================
|
||||
- id: ntf_tg_dw_salt_off
|
||||
alias: "ntf|tg|dw_salt_off"
|
||||
description: "Каждые 6 часов уведомлять, если соль закончилась"
|
||||
trigger:
|
||||
- platform: time_pattern
|
||||
hours: "/6"
|
||||
condition:
|
||||
- condition: state
|
||||
entity_id: sensor.bosch_dishwasher_salt
|
||||
state: "nearly_empty"
|
||||
action:
|
||||
- service: telegram_bot.send_message
|
||||
data:
|
||||
chat_id:
|
||||
- -1002006010424
|
||||
- -1003233671944
|
||||
parse_mode: html
|
||||
message: |
|
||||
🧂❌ <b>Внимание!</b> Соль в посудомоечной машине почти закончилась.
|
||||
Пожалуйста, пополните резервуар как можно скорее.
|
||||
inline_keyboard:
|
||||
- '🔙 Главное меню:/menu_back, 🗑️ Прочитано:/menu_hide'
|
||||
Reference in New Issue
Block a user