From ff531b9ad1f50432d9fd7750f3480f321f88647b Mon Sep 17 00:00:00 2001 From: thest1tch Date: Sat, 7 Oct 2023 22:46:13 +0500 Subject: [PATCH] update --- docs/images/software/hass/card-budilnik-1.png | Bin 0 -> 6738 bytes docs/images/software/hass/card-budilnik-2.png | Bin 43151 -> 13032 bytes docs/images/software/hass/card-budilnik.png | Bin 12790 -> 0 bytes docs/images/software/hass/zigbee2mqtt-2.png | Bin docs/software/hass/package/budilnik.md | 764 ++++++++---------- 5 files changed, 321 insertions(+), 443 deletions(-) create mode 100644 docs/images/software/hass/card-budilnik-1.png mode change 100755 => 100644 docs/images/software/hass/card-budilnik-2.png delete mode 100755 docs/images/software/hass/card-budilnik.png mode change 100644 => 100755 docs/images/software/hass/zigbee2mqtt-2.png diff --git a/docs/images/software/hass/card-budilnik-1.png b/docs/images/software/hass/card-budilnik-1.png new file mode 100644 index 0000000000000000000000000000000000000000..a9c6610a0b7bb17728e0b004075c22ad04c68af2 GIT binary patch literal 6738 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 B`PKjc literal 43151 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 diff --git a/docs/images/software/hass/card-budilnik.png b/docs/images/software/hass/card-budilnik.png deleted file mode 100755 index 6341fa45b9216e5e66d6ef21bc9475f0ae2c2ce3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12790 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 Lt143|WfuG|k*>eR diff --git a/docs/images/software/hass/zigbee2mqtt-2.png b/docs/images/software/hass/zigbee2mqtt-2.png old mode 100644 new mode 100755 diff --git a/docs/software/hass/package/budilnik.md b/docs/software/hass/package/budilnik.md index d7d0f2f..59dedd9 100755 --- a/docs/software/hass/package/budilnik.md +++ b/docs/software/hass/package/budilnik.md @@ -2,58 +2,60 @@ Представление карточки в Home Assistant: -В карточке используется дополнительный компонент [custom:fold-entity-row](https://github.com/thomasloven/lovelace-fold-entity-row). Ставится при помощи HACS. +В карточке используется дополнительные компоненты. Ставятся при помощи HACS.: + +- [custom:stack-in-card](https://github.com/custom-cards/stack-in-card) +- [custom:button-card](https://github.com/custom-cards/button-card) ## Внешний вид карточки -![](../../images/software/hass/card-budilnik.png) -![](../../images/software/hass/card-budilnik-2.png) +![](../../../images/software/hass/card-budilnik-1.png) +![](../../../images/software/hass/card-budilnik-2.png) ## Код карточки -``` yaml -type: entities -entities: - - entity: group.alarm_1 - icon: mdi:alarm-check - name: Будильник - - entity: sensor.alarm_1_time - icon: mdi:clock-outline - name: Время срабатывания - - entity: input_number.alarm_1_hour - icon: mdi:cog-clockwise - name: Часы - - entity: input_number.alarm_1_minutes - icon: mdi:cog-clockwise - name: Минуты - - type: custom:fold-entity-row - head: - type: section - label: Параметры - entities: - - entity: sensor.time_date - name: Текущее время и дата - - entity: sensor.alarm_1_time_minus_offset - icon: mdi:progress-clock - name: Время отложенного срабатывания - - entity: sensor.alarm_1_time_minus_cover - name: Время открытия шторы - - entity: input_number.alarm_1_offset - name: Отложить на - - entity: input_number.alarm_1_cover - name: Шторы - - entity: input_boolean.alarm_1_weekday - name: Рабочие дни - - entity: input_boolean.alarm_1_weekend - name: Выходные дни - - entity: automation.wake_me_up_weekday_offset - icon: mdi:calendar - name: Отложеное время в рабочие дни - - entity: automation.wake_me_up_weekend_offset - icon: mdi:calendar - name: Отложеное время в выходные дни - -``` +??? example + + ```yaml title="card-budilnik.yaml" + type: custom:stack-in-card + title: Будильник + cards: + - cards: + - entity: input_boolean.alarm_weekday + name: Будни + size: 30px + icon: mdi:alarm + tap_action: + action: toggle + type: custom:button-card + - entity: input_boolean.alarm_weekend + name: Выходные + icon: mdi:party-popper + size: 30px + tap_action: + action: toggle + type: custom:button-card + type: horizontal-stack + - type: conditional + conditions: + - entity: input_boolean.alarm_weekday + state: 'on' + card: + type: entities + entities: + - entity: input_datetime.alarm_weekday + name: По будням + - type: conditional + conditions: + - entity: input_boolean.alarm_weekend + state: 'on' + card: + type: entities + entities: + - entity: input_datetime.alarm_weekend + name: В выходные + + ``` ## Как это работает @@ -61,404 +63,280 @@ entities: Начинает проигрываться мелодия. -Ночник и светодиодная лента плавно включаются и добавляют яркость, цветопередача солнечного цвета. -~~Я люблю поваляться в стиле “еще 15 минут”, рукой толкаю куб Aqara, будильник откладывается на 15 минут.~~ -~~Через 15 минут снова начинает проигрываться мелодия, плавно включается освещение, поднимается штора.~~ -~~Я переворачиваю куб Aqara на 90°, будильник выключается, ночник и лента загораются на максимальной яркости. Home Assistant начинает доклад о погоде и дорожной обстановке, указывает время до работы на авто и время до ближайшего автобуса (интеграции Yandex карты и транспорт).~~ +Если солнце уже встало, открываются шторы. Иначе включается мягкий тусклый свет. + +## Идеи на реализацию: + +- [ ] Добавить возможность отложить пробуждение, используя куб Aqare +- [ ] Выключение будильника, используя куб Aqare ## Код будильника -```yaml -#ДОБАВЛЯЕМ ЭЛЕМЕНТЫ ВВОД И УПРАВЛЕНИЯ -input_number: - alarm_1_hour: - name: Hours - icon: mdi:timer - initial: 7 - min: 0 - max: 23 - step: 1 - alarm_1_minutes: - name: Minutes - icon: mdi:timer - initial: 15 - min: 0 - max: 59 - step: 1 - alarm_1_offset: - name: Transition - icon: mdi:blur-linear - initial: 5 - min: 0 - max: 60 - step: 5 - alarm_1_cover: - name: Transition - icon: mdi:blur-linear - initial: 15 - min: 0 - max: 60 - step: 5 -#ПЕРЕКЛЮЧАТЕЛИ -input_boolean: - alarm_1_weekday: - name: Weekdays - initial: off - icon: mdi:calendar - alarm_1_weekend: - name: Weekends - initial: off - icon: mdi:calendar - alarm_1_offset_boolen: - name: Offset - initial: off - icon: mdi:timer -#СЕНСОРЫ ДЛЯ ПОДСЧЕТА ВРЕМЕНИ В ОТЛОЖЕННЫХ ФУНКЦИЯХ - -sensor: - - platform: template - sensors: - alarm_1_time: - value_template: >- - {{ '%0.02d:%0.02d' | format(states('input_number.alarm_1_hour') | int, states('input_number.alarm_1_minutes') | int) }} - - platform: template - sensors: - alarm_1_time_minus_offset: - friendly_name: 'Offset Time' - value_template: >- - {{ "%0.02d:%0.02d" | format( ((((states("input_number.alarm_1_hour") | int)*60 (states("input_number.alarm_1_minutes") | int) (states("input_number.alarm_1_offset"))| int)/60)| int),(((((((((states("input_number.alarm_1_hour") | int)*60 (states("input_number.alarm_1_minutes") | int) (states("input_number.alarm_1_offset")) | int)/60)) - ((((states("input_number.alarm_1_hour") | int)*60 (states("input_number.alarm_1_minutes") | int) (states("input_number.alarm_1_offset")) | int)/60)| int))*100) | int)*60/100) | round) ) }} - - platform: template - sensors: - alarm_1_time_minus_cover: - friendly_name: 'Cover Time' - value_template: >- - {{ "%0.02d:%0.02d" | format( ((((states("input_number.alarm_1_hour") | int)*60 (states("input_number.alarm_1_minutes") | int) (states("input_number.alarm_1_cover"))| int)/60)| int),(((((((((states("input_number.alarm_1_hour") | int)*60 (states("input_number.alarm_1_minutes") | int) (states("input_number.alarm_1_cover")) | int)/60)) - ((((states("input_number.alarm_1_hour") | int)*60 (states("input_number.alarm_1_minutes") | int) (states("input_number.alarm_1_cover")) | int)/60)| int))*100) | int)*60/100) | round) ) }} #for -# {{ "%0.02d:%0.02d" | format( ((((states("input_number.alarm_1_hour") | int)*60 (states("input_number.alarm_1_minutes") | int) - (states("input_number.alarm_1_cover"))| int)/60)| int),(((((((((states("input_number.alarm_1_hour") | int)*60 (states("input_number.alarm_1_minutes") | int) - (states("input_number.alarm_1_cover")) | int)/60)) - ((((states("input_number.alarm_1_hour") | int)*60 (states("input_number.alarm_1_minutes") | int) - (states("input_number.alarm_1_cover")) | int)/60)| int))*100) | int)*60/100) | round) ) }} - -#ГРУПИРОВКА ВЫКЛЮЧАТЕЛЯ "БУДИЛЬНИК" -group: - alarm_1: - name: Wake Me Up - entities: - - input_boolean.alarm_1_weekday - - automation.wake_me_up_weekday_offset - -#ВКЛЮЧЕНИЕ БУДИЛЬНИКА ПРИ ЗАПУСКЕ HA -automation: - - id: 'startup_on_alarm_clock' - alias: Включение будильника при запуске HA - trigger: - platform: homeassistant - event: start - condition: - condition: time - after: '09:00:00' - before: '00:00:00' - action: - - delay: 0:01 - - service: script.yandex_tts_4 - - #ВКЛЮЧЕНИЕ КЛАВИШАМИ. ПРОСТО ЗВУКОВОЕ СООБЩЕНИЕ О ВКЛЮЧЕНИИ - - id: 'on_alarm_clock' - alias: "Включение будильника клавишей" - trigger: - platform: state - entity_id: - - input_boolean.alarm_1_weekday - - input_boolean.alarm_1_weekend - to: 'on' - action: - - service: script.yandex_tts_2 - - #ВЫКЛЮЧЕНИЕ КЛАВИШАМИ. ПРОСТО ЗВУКОВОЕ СООБЩЕНИЕ О ВЫКЛЮЧЕНИИ - - id: 'off_alarm_clock' - alias: "Выключение будильника клавишей" - trigger: - platform: state - entity_id: - - input_boolean.alarm_1_weekday - - input_boolean.alarm_1_weekend - to: 'off' - action: - - service: script.yandex_tts_3 - -####################################### -# Автоматизация для основного времени # -####################################### -#ЗАПУСКАЕМ СКРИПТ БУДИЛЬНИКА. - - id: 'alarm_1_weekday' - alias: Wake me up (weekday) - trigger: - - platform: time_pattern - minutes: "/1" - seconds: 0 - condition: - - condition: state - entity_id: input_boolean.alarm_1_weekday - state: 'on' - - condition: time - weekday: - - mon - - tue - - wed - - thu - - fri - - condition: template - value_template: >- - {{ now().strftime("%H:%M") == states.sensor.alarm_1_time.state }} - action: - - data: {} - service: script.wakeup_sequence - -####################################### -# Автоматизация для выходных ########## -####################################### -#ЗАПУСКАЕМ СКРИПТ БУДИЛЬНИКА. - - id: 'alarm_1_weekend' - alias: Wake me up (weekend) - trigger: - - platform: time_pattern - minutes: "/1" - seconds: 0 - condition: - - condition: state - entity_id: input_boolean.alarm_1_weekend - state: 'on' - - condition: time - weekday: - - sat - - sun - - condition: template - value_template: >- - {{ now().strftime("%H:%M") == states.sensor.alarm_1_time.state }} - action: - - data: {} - service: script.wakeup_sequence - -####################################### -# Автоматизация для отложенного времени # -###################################### -#ЗАПУСКАЕМ СКРИПТ БУДИЛЬНИКА ЕСЛИ ОТЛОЖИЛИ БУДИЛЬНИК. - - id: 'alarm_1_weekday_offset' - alias: Wake me up (weekday_offset) - trigger: - - platform: time_pattern - minutes: "/1" - seconds: 0 - condition: - - condition: state - entity_id: input_boolean.alarm_1_weekday - state: 'on' - - condition: time - weekday: - - mon - - tue - - wed - - thu - - fri - - condition: template - value_template: >- - {{ now().strftime("%H:%M") == states.sensor.alarm_1_time_minus_offset.state }} - action: - - data: {} - service: script.wakeup_sequence - -####################################### -# Автоматизация для отложенного времени в выходные # -###################################### -# ЗАПУСКАЕМ СКРИПТ БУДИЛЬНИКА ЕСЛИ ОТЛОЖИЛИ БУДИЛЬНИК. - - id: 'alarm_1_weekend_offset' - alias: Wake me up (weekend offset) - trigger: - - platform: time_pattern - minutes: "/1" - seconds: 0 - condition: - - condition: state - entity_id: input_boolean.alarm_1_weekend - state: 'on' - - condition: time - weekday: - - sat - - sun - - condition: template - value_template: >- - {{ now().strftime("%H:%M") == states.sensor.alarm_1_time_minus_offset.state }} - action: - - data: {} - service: script.wakeup_sequence - -####################################### -# Автоматизация для Штор # -####################################### -#ПОДНИМАЕМ ШТОРЫ ПО УКАЗАННОМУ ВРЕМЕНИ - - id: 'alarm_1_weekday_cover' - alias: Wake me up (weekday_cover) - trigger: - - platform: time_pattern - minutes: "/1" - seconds: 0 - condition: - - condition: state - entity_id: input_boolean.alarm_1_weekday - state: 'on' - - condition: time - weekday: - - mon - - tue - - wed - - thu - - fri - - condition: template - value_template: >- - {{ now().strftime("%H:%M") == states.sensor.alarm_1_time_minus_cover.state }} - action: - - service: mqtt.publish - data: - topic: "cmnd/blind/Backlog" - payload: "ShutterOpen1" - - - id: 'alarm_1_weekend_cover' - alias: Wake me up (weekend cover) - trigger: - - platform: time_pattern - minutes: "/1" - seconds: 0 - condition: - - condition: state - entity_id: input_boolean.alarm_1_weekend - state: 'on' - - condition: time - weekday: - - sat - - sun - - condition: template - value_template: >- - {{ now().strftime("%H:%M") == states.sensor.alarm_1_time_minus_cover.state }} - action: - - service: mqtt.publish - data: - topic: "cmnd/blind/Backlog" - payload: "ShutterOpen1" - -###################################### -# СКРИПТ БУДИЛЬНИКА # -###################################### -#Срабатывает последовательно: выставляется оттенок цвета, яркость в 0. -script: - 'wakeup_dim': - alias: wakeup_dim - sequence: - - service: light.turn_on - data: - brightness: '0' - rgb_color: - - 255 - - 169 - - 92 - entity_id: - - light.yeelink_ceilb_f571_ambient_light - -#Срабатывает последовательно: постепенно включается освещение. - 'wakeup_bright': - alias: wakeup_bright - sequence: - - service: light.turn_on - data_template: - brightness: '255' - transition: '{{(states(''input_number.alarm_1_offset'') | int ) *60}}' - entity_id: - - light.yeelink_ceilb_f571_ambient_light - rgb_color: - - 255 - - 169 - - 92 - -#Главный скрипт будильника - 'wakeup_sequence': - alias: wakeup_sequence - sequence: - - data: {} - #сбрасываем параметры освещения - service: script.wakeup_dim - - delay: 00:00:02 - #включаем плавное наращивание освещения - - service: script.wakeup_bright - - delay: '00:{{ states.input_number.alarm_1_offset.state | int }}:00' - - data: {} - #Включение музыки на яндекс станции - service: script.yandex_tts_1 - # ИЛИ запуск проигрывания мелодии # - #- service: script.play_wakeup_music #в систему HA подгружена заранее собранная и настроенная мной мелодия. - #Я выбрал медленную композицию Daft Punk, в звуковом редакторе установил плавное увеличение громкости для нее и экспортировал в mp3. - #По сути HA просто воспроизводит mp3 через подключаемый addon https://github.com/bestlibre/hassio-addons/tree/master/mopidy - - - # TTS YANDEX - yandex_tts_1: - alias: YaStation_Запуск будильника - sequence: - - service: media_player.volume_set - data: - entity_id: - - media_player.yandex_station_m0017y300grsqb - volume_level: 0.1 - - delay: 00:00:01 - - service: yandex_station.send_command - data: +??? example + + ```yaml + #ДОБАВЛЯЕМ ЭЛЕМЕНТЫ ВВОД И УПРАВЛЕНИЯ + input_datetime: + alarm_weekday: + has_date: false + has_time: true + alarm_weekend: + has_date: false + has_time: true + + #ПЕРЕКЛЮЧАТЕЛИ + input_boolean: + alarm_weekday: + alarm_weekend: + + #СЕНСОРЫ ДЛЯ ПОДСЧЕТА ВРЕМЕНИ В ОТЛОЖЕННЫХ ФУНКЦИЯХ + sensor: + - platform: template + sensors: + input_alarm_weekday: + friendly_name: Будильник будни + value_template: "{{ (((state_attr('input_datetime.alarm_weekday' , 'timestamp')) - (5 * 60))|timestamp_custom('%H:%M', false)) }}" + + input_alarm_weekend: + friendly_name: Будильник выходные + value_template: "{{ (((state_attr('input_datetime.alarm_weekend' , 'timestamp')) - (5 * 60))|timestamp_custom('%H:%M', false)) }}" + + binary_sensor: + - platform: template + sensors: + alarm_weekday_start: + friendly_name: Будильник будни + value_template: "{{ states('sensor.time') == states('sensor.input_alarm_weekday_start') }}" + alarm_weekend_start: + friendly_name: Будильник выходные + value_template: "{{ states('sensor.time') == states('sensor.input_alarm_weekend_start') }}" + + automation: + # ВКЛЮЧЕНИЕ БУДИЛЬНИКА ПРИ ЗАПУСКЕ HA + - id: 'startup_on_alarm_clock' + alias: Включение будильника при запуске HA + trigger: + platform: homeassistant + event: start + condition: + condition: time + after: '09:00:00' + before: '00:00:00' + action: + - delay: 0:01 + + # ВКЛЮЧЕНИЕ КЛАВИШАМИ. ПРОСТО ЗВУКОВОЕ СООБЩЕНИЕ О ВКЛЮЧЕНИИ + - id: 'on_alarm_clock' + alias: "Включение будильника клавишей" + trigger: + platform: state + entity_id: + - input_boolean.alarm_weekday + - input_boolean.alarm_weekend + to: 'on' + action: + - service: yandex_tts_alarm_on + + # ВЫКЛЮЧЕНИЕ КЛАВИШАМИ. ПРОСТО ЗВУКОВОЕ СООБЩЕНИЕ О ВЫКЛЮЧЕНИИ + - id: 'off_alarm_clock' + alias: "Выключение будильника клавишей" + trigger: + platform: state + entity_id: + - input_boolean.alarm_1_weekday + - input_boolean.alarm_1_weekend + to: 'off' + action: + - service: yandex_tts_alarm_off + + # Запуск будильника по будням + - id: 'alarm_weekday' + alias: Wake me up (weekday) + trigger: + - platform: time_pattern + minutes: "/1" + seconds: 0 + condition: + - condition: state + entity_id: input_boolean.alarm_weekday + state: 'on' + - condition: time + weekday: + - mon + - tue + - wed + - thu + - fri + - condition: template + value_template: >- + {{ now().strftime("%H:%M") == states.sensor.input_alarm_weekday.state }} + - condition: state + entity_id: person.thest1tch + state: 'home' + action: + - data: {} + service: script.wakeup_sequence + + # Запуск будильника по выходным + - id: 'alarm_weekend' + alias: Wake me up (weekend) + trigger: + - platform: time_pattern + minutes: "/1" + seconds: 0 + condition: + - condition: state + entity_id: input_boolean.alarm_weekend + state: 'on' + - condition: time + weekday: + - sat + - sun + - condition: template + value_template: >- + {{ now().strftime("%H:%M") == states.sensor.input_alarm_weekend.state }} + - condition: state + entity_id: person.thest1tch + state: 'home' + action: + - data: {} + service: script.wakeup_sequence + + script: + # Включение люстры, если солнце еще не встало + wakeup_celib_start: + alias: wakeup_celib_start + sequence: + - condition: state + entity_id: sun.sun + state: below_horizon + for: + hours: 0 + minutes: 1 + seconds: 0 + - service: light.turn_on + data: + brightness: '3' + brightness_step: 2 + entity_id: + - light.yeelight_ceilb_0x17879e8e_nightlight + + # Открывание штор, если солнце уже встало + wakeup_cover_start: + alias: wakeup_cover_start + sequence: + - condition: state + entity_id: sun.sun + state: above_horizon + for: + hours: 0 + minutes: 1 + seconds: 0 + - service: cover.open_cover + data: + position: 10 + target: + entity_id: cover.yeelink_ctmt1_c8c9_curtain + - delay: 00:02:00 + - service: cover.open_cover + data: + position: 30 + target: + entity_id: cover.yeelink_ctmt1_c8c9_curtain + - delay: 00:02:00 + - service: cover.open_cover + data: + position: 50 + target: + entity_id: cover.yeelink_ctmt1_c8c9_curtain + - delay: 00:02:00 + - service: cover.open_cover + data: + position: 70 + target: + entity_id: cover.yeelink_ctmt1_c8c9_curtain + - delay: 00:02:00 + - service: cover.open_cover + data: + position: 100 + target: + entity_id: cover.yeelink_ctmt1_c8c9_curtain + + # Главный скрипт будильника + wakeup_sequence: + alias: wakeup_sequence + sequence: + - data: {} + #сбрасываем параметры освещения + service: wakeup_celib_start + - delay: 00:00:02 + #включаем плавное наращивание освещения + - service: script.wakeup_celib_start + - service: script.wakeup_cover_start + - data: {} + #Включение музыки на яндекс станции + service: yandex_tts_alarm_start + + # TTS YANDEX + yandex_tts_alarm_start: + alias: "YaStation Запуск будильника" + sequence: + - service: media_player.volume_set + data: + entity_id: + - media_player.yandex_station_m0017y300grsqb + volume_level: 0.1 + - delay: 00:00:01 + - service: yandex_station.send_command + data: + entity_id: media_player.yandex_station_m0017y300grsqb + command: sendText + text: Включи фоновую музыку + - delay: 00:01:00 + - service: media_player.volume_set + data: + entity_id: + - media_player.yandex_station_m0017y300grsqb + volume_level: 0.2 + - delay: 00:00:30 + - service: media_player.volume_set + data: + entity_id: + - media_player.yandex_station_m0017y300grsqb + volume_level: 0.3 + - delay: 00:00:30 + - service: media_player.volume_set + data: + entity_id: + - media_player.yandex_station_m0017y300grsqb + volume_level: 0.4 + + yandex_tts_alarm_on: + alias: "YaStation Включение будильника" + sequence: + - service: media_player.volume_set + data: + entity_id: + - media_player.yandex_station_m0017y300grsqb + volume_level: 0.4 + - delay: 00:00:01 + - service: media_player.play_media + entity_id: media_player.yandex_station_m0017y300grsqb + data: + media_content_id: Включаю будильник. + media_content_type: text + + yandex_tts_alarm_off: + alias: YaStation_Выключение будильника + sequence: + - service: media_player.volume_set + data: + entity_id: + - media_player.yandex_station + volume_level: 0.4 + - service: media_player.play_media entity_id: media_player.yandex_station_m0017y300grsqb - command: sendText - text: Включи фоновую музыку. - - delay: 00:01:00 - - service: media_player.volume_set - data: - entity_id: - - media_player.yandex_station_m0017y300grsqb - volume_level: 0.2 - - delay: 00:00:30 - - service: media_player.volume_set - data: - entity_id: - - media_player.yandex_station_m0017y300grsqb - volume_level: 0.3 - - delay: 00:00:30 - - service: media_player.volume_set - data: - entity_id: - - media_player.yandex_station_m0017y300grsqb - volume_level: 0.4 - - yandex_tts_2: - alias: YaStation_Включение будильника - sequence: - - service: media_player.volume_set - data: - entity_id: - - media_player.yandex_station_m0017y300grsqb - volume_level: 0.4 - - delay: 00:00:01 - - service: media_player.play_media - entity_id: media_player.yandex_station_m0017y300grsqb - data: - media_content_id: Включаю будильник на {{ states('sensor.alarm_1_time') }} - media_content_type: text - - yandex_tts_3: - alias: YaStation_Выключение будильника - sequence: - - service: media_player.volume_set - data: - entity_id: - - media_player.yandex_station - volume_level: 0.4 - - service: media_player.play_media - entity_id: media_player.yandex_station_m0017y300grsqb - data: - media_content_id: Будильник выключен. - media_content_type: text -``` - -Взято с [Sprut.ai](https://sprut.ai/article/priruchi-home-assistant-budilnik) и приведено в читаемый вид. Спасибо автору за код, но юзать его с оригинала почти невозможно. - -Надо еще доделать: -- `yandex_tts_4` - отвечает за голос от Алисы, когда запускается будильник после рестарта HASS -- Добавить настройку зависимости штор и света от заката/вохода солнца \ No newline at end of file + data: + media_content_id: Будильник выключен. + media_content_type: text + ``` \ No newline at end of file