update
continuous-integration/drone/push Build is passing Details

states/02
thest1tch 1 year ago
parent 67eee3633b
commit 3892467571

@ -20,55 +20,44 @@
type: entities type: entities
entities: entities:
- entity: group.alarm_1 - entity: group.alarm_1
icon: 'mdi:alarm-check' icon: mdi:alarm-check
name: Будильник name: Будильник
- entity: sensor.alarm_1_time - entity: sensor.alarm_1_time
icon: 'mdi:clock-outline' icon: mdi:clock-outline
name: Время срабатывания name: Время срабатывания
- entity: input_number.alarm_1_hour - entity: input_number.alarm_1_hour
icon: 'mdi:cog-clockwise' icon: mdi:cog-clockwise
name: Часы name: Часы
- entity: input_number.alarm_1_minutes - entity: input_number.alarm_1_minutes
icon: 'mdi:cog-clockwise' icon: mdi:cog-clockwise
name: Минуты name: Минуты
- type: custom:fold-entity-row
- type: 'custom:fold-entity-row'
head: head:
type: section type: section
label: Параметры label: Параметры
entities: entities:
- entity: sensor.time_date - entity: sensor.time_date
name: Текущее время и дата name: Текущее время и дата
- entity: sensor.alarm_1_time_minus_offset - entity: sensor.alarm_1_time_minus_offset
icon: 'mdi:progress-clock' icon: mdi:progress-clock
name: Время отложенного срабатывания name: Время отложенного срабатывания
- entity: sensor.alarm_1_time_minus_cover - entity: sensor.alarm_1_time_minus_cover
name: Время открытия шторы name: Время открытия шторы
- entity: input_number.alarm_1_offset - entity: input_number.alarm_1_offset
name: Отложить на name: Отложить на
- entity: input_number.alarm_1_cover - entity: input_number.alarm_1_cover
name: Шторы name: Шторы
- entity: input_boolean.alarm_1_weekday - entity: input_boolean.alarm_1_weekday
name: Рабочие дни name: Рабочие дни
- entity: input_boolean.alarm_1_weekend - entity: input_boolean.alarm_1_weekend
name: Выходные дни name: Выходные дни
- entity: automation.wake_me_up_weekday_offset - entity: automation.wake_me_up_weekday_offset
icon: 'mdi:calendar' icon: mdi:calendar
name: Отложеное время в рабочие дни name: Отложеное время в рабочие дни
- entity: automation.wake_me_up_weekend_offset - entity: automation.wake_me_up_weekend_offset
icon: 'mdi:calendar' icon: mdi:calendar
name: Отложеное время в выходные дни name: Отложеное время в выходные дни
``` ```
## Как это работает ## Как это работает
@ -78,19 +67,15 @@ name: Отложеное время в выходные дни
Начинает проигрываться мелодия. Начинает проигрываться мелодия.
Ночник и светодиодная лента плавно включаются и добавляют яркость, цветопередача солнечного цвета. Ночник и светодиодная лента плавно включаются и добавляют яркость, цветопередача солнечного цвета.
~~Я люблю поваляться в стиле “еще 15 минут”, рукой толкаю куб Aqara, будильник откладывается на 15 минут.~~
Я люблю поваляться в стиле “еще 15 минут”, рукой толкаю куб Aqara, будильник откладывается на 15 минут. ~~Через 15 минут снова начинает проигрываться мелодия, плавно включается освещение, поднимается штора.~~
~~Я переворачиваю куб Aqara на 90°, будильник выключается, ночник и лента загораются на максимальной яркости. Home Assistant начинает доклад о погоде и дорожной обстановке, указывает время до работы на авто и время до ближайшего автобуса (интеграции Yandex карты и транспорт).~~
Через 15 минут снова начинает проигрываться мелодия, плавно включается освещение, поднимается штора.
Я переворачиваю куб Aqara на 90°, будильник выключается, ночник и лента загораются на максимальной яркости. Home Assistant начинает доклад о погоде и дорожной обстановке, указывает время до работы на авто и время до ближайшего автобуса (интеграции Yandex карты и транспорт). Включается телевизор, отрабатывает скрипт, который включает на нем браузер и главную страничку HA.
## Код будильника ## Код будильника
```yaml ```yaml
#ДОБАВЛЯЕМ ЭЛЕМЕНТЫ ВВОД И УПРАВЛЕНИЯ #ДОБАВЛЯЕМ ЭЛЕМЕНТЫ ВВОД И УПРАВЛЕНИЯ
input_number: input_number:
alarm_1_hour: alarm_1_hour:
name: Hours name: Hours
icon: mdi:timer icon: mdi:timer
@ -98,7 +83,6 @@ initial: 7
min: 0 min: 0
max: 23 max: 23
step: 1 step: 1
alarm_1_minutes: alarm_1_minutes:
name: Minutes name: Minutes
icon: mdi:timer icon: mdi:timer
@ -106,7 +90,6 @@ initial: 15
min: 0 min: 0
max: 59 max: 59
step: 1 step: 1
alarm_1_offset: alarm_1_offset:
name: Transition name: Transition
icon: mdi:blur-linear icon: mdi:blur-linear
@ -114,7 +97,6 @@ initial: 5
min: 0 min: 0
max: 60 max: 60
step: 5 step: 5
alarm_1_cover: alarm_1_cover:
name: Transition name: Transition
icon: mdi:blur-linear icon: mdi:blur-linear
@ -122,43 +104,40 @@ initial: 15
min: 0 min: 0
max: 60 max: 60
step: 5 step: 5
#ПЕРЕКЛЮЧАТЕЛИ #ПЕРЕКЛЮЧАТЕЛИ
input_boolean: input_boolean:
alarm_1_weekday: alarm_1_weekday:
name: Weekdays name: Weekdays
initial: off initial: off
icon: mdi:calendar icon: mdi:calendar
alarm_1_weekend: alarm_1_weekend:
name: Weekends name: Weekends
initial: off initial: off
icon: mdi:calendar icon: mdi:calendar
alarm_1_offset_boolen: alarm_1_offset_boolen:
name: Offset name: Offset
initial: off initial: off
icon: mdi:timer icon: mdi:timer
#СЕНСОРЫ ДЛЯ ПОДСЧЕТА ВРЕМЕНИ В ОТЛОЖЕННЫХ ФУНКЦИЯХ #СЕНСОРЫ ДЛЯ ПОДСЧЕТА ВРЕМЕНИ В ОТЛОЖЕННЫХ ФУНКЦИЯХ
sensor: sensor:
- platform: - platform: template
template
sensors: sensors:
alarm_1_time: alarm_1_time:
value_template: >- {{ "%0.02d:%0.02d" | format(states("input_number.alarm_1_hour") | int, states("input_number.alarm_1_minutes") | int) }} value_template: >-
{{ '%0.02d:%0.02d' | format(states('input_number.alarm_1_hour') | int, states('input_number.alarm_1_minutes') | int) }}
- platform: template - platform: template
sensors: sensors:
alarm_1_time_minus_offset: alarm_1_time_minus_offset:
friendly_name: 'Offset Time' 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) ) }} 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 - platform: template
sensors: sensors:
alarm_1_time_minus_cover: alarm_1_time_minus_cover:
friendly_name: 'Cover Time' 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) ) }} 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: group:
@ -195,12 +174,12 @@ to: 'on'
action: action:
- service: script.yandex_tts_2 - service: script.yandex_tts_2
ВЫКЛЮЧЕНИЕ КЛАВИШАМИ. ПРОСТО ЗВУКОВОЕ СООБЩЕНИЕ О ВЫКЛЮЧЕНИИ #ВЫКЛЮЧЕНИЕ КЛАВИШАМИ. ПРОСТО ЗВУКОВОЕ СООБЩЕНИЕ О ВЫКЛЮЧЕНИИ
- id: 'off_alarm_clock' - id: 'off_alarm_clock'
alias: "Выключение будильника клавишей" alias: "Выключение будильника клавишей"
trigger: trigger:
platform: platform: state
state entity_id: entity_id:
- input_boolean.alarm_1_weekday - input_boolean.alarm_1_weekday
- input_boolean.alarm_1_weekend - input_boolean.alarm_1_weekend
to: 'off' to: 'off'
@ -208,7 +187,7 @@ action:
- service: script.yandex_tts_3 - service: script.yandex_tts_3
####################################### #######################################
# Автоматизация для основного времени # Автоматизация для основного времени #
####################################### #######################################
#ЗАПУСКАЕМ СКРИПТ БУДИЛЬНИКА. #ЗАПУСКАЕМ СКРИПТ БУДИЛЬНИКА.
- id: 'alarm_1_weekday' - id: 'alarm_1_weekday'
@ -229,14 +208,15 @@ weekday:
- thu - thu
- fri - fri
- condition: template - condition: template
value_template: >- {{ now().strftime("%H:%M") == states.sensor.alarm_1_time.state }} value_template: >-
{{ now().strftime("%H:%M") == states.sensor.alarm_1_time.state }}
action: action:
- data: {} - data: {}
service: script.wakeup_sequence service: script.wakeup_sequence
####################################### #######################################
# Автоматизация для выходных # # Автоматизация для выходных ##########
###################################### #######################################
#ЗАПУСКАЕМ СКРИПТ БУДИЛЬНИКА. #ЗАПУСКАЕМ СКРИПТ БУДИЛЬНИКА.
- id: 'alarm_1_weekend' - id: 'alarm_1_weekend'
alias: Wake me up (weekend) alias: Wake me up (weekend)
@ -253,13 +233,15 @@ weekday:
- sat - sat
- sun - sun
- condition: template - condition: template
value_template: >- {{ now().strftime("%H:%M") == states.sensor.alarm_1_time.state }} value_template: >-
{{ now().strftime("%H:%M") == states.sensor.alarm_1_time.state }}
action: action:
- data: {} - data: {}
service: script.wakeup_sequence service: script.wakeup_sequence
####################################### #######################################
# Автоматизация для отложенного времени # Автоматизация для отложенного времени #
####################################### ######################################
#ЗАПУСКАЕМ СКРИПТ БУДИЛЬНИКА ЕСЛИ ОТЛОЖИЛИ БУДИЛЬНИК. #ЗАПУСКАЕМ СКРИПТ БУДИЛЬНИКА ЕСЛИ ОТЛОЖИЛИ БУДИЛЬНИК.
- id: 'alarm_1_weekday_offset' - id: 'alarm_1_weekday_offset'
alias: Wake me up (weekday_offset) alias: Wake me up (weekday_offset)
@ -279,14 +261,15 @@ weekday:
- thu - thu
- fri - fri
- condition: template - condition: template
value_template: >- {{ now().strftime("%H:%M") == states.sensor.alarm_1_time_minus_offset.state }} value_template: >-
{{ now().strftime("%H:%M") == states.sensor.alarm_1_time_minus_offset.state }}
action: action:
- data: {} - data: {}
service: script.wakeup_sequence service: script.wakeup_sequence
####################################### #######################################
# Автоматизация для отложенного времени в выходные # Автоматизация для отложенного времени в выходные #
####################################### ######################################
# ЗАПУСКАЕМ СКРИПТ БУДИЛЬНИКА ЕСЛИ ОТЛОЖИЛИ БУДИЛЬНИК. # ЗАПУСКАЕМ СКРИПТ БУДИЛЬНИКА ЕСЛИ ОТЛОЖИЛИ БУДИЛЬНИК.
- id: 'alarm_1_weekend_offset' - id: 'alarm_1_weekend_offset'
alias: Wake me up (weekend offset) alias: Wake me up (weekend offset)
@ -302,28 +285,27 @@ state: 'on'
weekday: weekday:
- sat - sat
- sun - sun
- condition: - condition: template
template value_template: >- {{ now().strftime("%H:%M") == states.sensor.alarm_1_time_minus_offset.state }} value_template: >-
{{ now().strftime("%H:%M") == states.sensor.alarm_1_time_minus_offset.state }}
action: action:
- data: {} - data: {}
service: script.wakeup_sequence service: script.wakeup_sequence
####################################### #######################################
# Автоматизация для Штор # Автоматизация для Штор #
####################################### #######################################
#ПОДНИМАЕМ ШТОРЫ ПО УКАЗАННОМУ ВРЕМЕНИ #ПОДНИМАЕМ ШТОРЫ ПО УКАЗАННОМУ ВРЕМЕНИ
id: 'alarm_1_weekday_cover' - id: 'alarm_1_weekday_cover'
alias: Wake me up (weekday_cover) alias: Wake me up (weekday_cover)
trigger: trigger:
- platform: time_pattern - platform: time_pattern
minutes: "/1" minutes: "/1"
seconds: 0 seconds: 0
condition: condition:
- condition: state - condition: state
entity_id: input_boolean.alarm_1_weekday entity_id: input_boolean.alarm_1_weekday
state: 'on' state: 'on'
- condition: time - condition: time
weekday: weekday:
- mon - mon
@ -331,19 +313,16 @@ condition:
- wed - wed
- thu - thu
- fri - fri
- condition: template - condition: template
value_template: >- value_template: >-
{{ now().strftime("%H:%M") == states.sensor.alarm_1_time_minus_cover.state }} {{ now().strftime("%H:%M") == states.sensor.alarm_1_time_minus_cover.state }}
action: action:
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: "cmnd/blind/Backlog" topic: "cmnd/blind/Backlog"
payload: "ShutterOpen1" payload: "ShutterOpen1"
- id: 'alarm_1_weekend_cover'
id: 'alarm_1_weekend_cover'
alias: Wake me up (weekend cover) alias: Wake me up (weekend cover)
trigger: trigger:
- platform: time_pattern - platform: time_pattern
@ -360,63 +339,50 @@ condition:
- condition: template - condition: template
value_template: >- value_template: >-
{{ now().strftime("%H:%M") == states.sensor.alarm_1_time_minus_cover.state }} {{ now().strftime("%H:%M") == states.sensor.alarm_1_time_minus_cover.state }}
action: action:
- service: mqtt.publish - service: mqtt.publish
data: data:
topic: "cmnd/blind/Backlog" topic: "cmnd/blind/Backlog"
payload: "ShutterOpen1" payload: "ShutterOpen1"
#######################################
######################################
# СКРИПТ БУДИЛЬНИКА # # СКРИПТ БУДИЛЬНИКА #
####################################### ######################################
script:
#Срабатывает последовательно: выставляется оттенок цвета, яркость в 0. #Срабатывает последовательно: выставляется оттенок цвета, яркость в 0.
script:
'wakeup_dim': 'wakeup_dim':
alias: wakeup_dim alias: wakeup_dim
sequence: sequence:
- data: - service: light.turn_on
data:
brightness: '0' brightness: '0'
entity_id:
- light.walli
rgb_color: rgb_color:
- 255 - 255
- 169 - 169
- 92 - 92
service: light.turn_on
- data:
brightness_pct: '0'
entity_id: entity_id:
- light.eve - light.yeelink_ceilb_f571_ambient_light
rgb_color:
- 255
- 169
- 92
transition: '0'
service: light.turn_on
#Срабатывает последовательно: постепенно включается освещение.
#Срабатывает последовательно: постепенно включается освещение.
'wakeup_bright': 'wakeup_bright':
alias: wakeup_bright alias: wakeup_bright
sequence: sequence:
- data_template: - service: light.turn_on
data_template:
brightness: '255' brightness: '255'
transition: '{{(states(''input_number.alarm_1_offset'') | int ) *60}}' transition: '{{(states(''input_number.alarm_1_offset'') | int ) *60}}'
entity_id: entity_id:
- light.eve - light.yeelink_ceilb_f571_ambient_light
- light.walli
rgb_color: rgb_color:
- 255 - 255
- 169 - 169
- 92 - 92
service: light.turn_on
#Главный скрипт будильника #Главный скрипт будильника
'wakeup_sequence': 'wakeup_sequence':
alias: wakeup_sequence alias: wakeup_sequence
sequence: sequence:
- data: {} - data: {}
#сбрасываем параметры освещения #сбрасываем параметры освещения
service: script.wakeup_dim service: script.wakeup_dim
- delay: 00:00:02 - delay: 00:00:02
@ -424,95 +390,63 @@ service: script.wakeup_dim
- service: script.wakeup_bright - service: script.wakeup_bright
- delay: '00:{{ states.input_number.alarm_1_offset.state | int }}:00' - delay: '00:{{ states.input_number.alarm_1_offset.state | int }}:00'
- data: {} - data: {}
#включаем телевизор, выводим главную страницу HA
service: script.tv_on_browser_morning
#Включение музыки на яндекс станции #Включение музыки на яндекс станции
service: script.yandex_tts_1 service: script.yandex_tts_1
# ИЛИ запуск проигрывания мелодии # ИЛИ запуск проигрывания мелодии #
# service: script.play_wakeup_music #- service: script.play_wakeup_music #в систему HA подгружена заранее собранная и настроенная мной мелодия.
#в систему HA подгружена заранее собранная и настроенная мной мелодия.
#Я выбрал медленную композицию Daft Punk, в звуковом редакторе установил плавное увеличение громкости для нее и экспортировал в mp3. #Я выбрал медленную композицию Daft Punk, в звуковом редакторе установил плавное увеличение громкости для нее и экспортировал в mp3.
#По сути HA просто воспроизводит mp3 через подключаемый addon https://github.com/bestlibre/hassio-addons/tree/master/mopidy #По сути HA просто воспроизводит mp3 через подключаемый addon https://github.com/bestlibre/hassio-addons/tree/master/mopidy
```
## Включение телевизора
По итогу включения телевизора, стартует скрипт запуска главной страницы Home Assistant.
```yaml # TTS YANDEX
script:
tv_on_browser:
alias: ТВ. Включение и экран HA в браузере
sequence: #включаем ТВ
- service: media_player.turn_on
data:
entity_id: media_player.samsung_tv_remote
#запускаем на ТВ браузер
- service: media_player.play_media
data:
entity_id: media_player.samsung_tv_remote
media_content_type: app
media_content_id: org.tizen.browser
#открываем HA в браузере
- service: media_player.play_media
data:
entity_id: media_player.samsung_tv_remote
media_content_type: browser
media_content_id: 'http://192.168.1.58:8123'
```
## TTS YANDEX
```yaml
script:
yandex_tts_1: yandex_tts_1:
alias: YaStation_Запуск будильника alias: YaStation_Запуск будильника
sequence: sequence:
- service: media_player.volume_set - service: media_player.volume_set
data: data:
entity_id: entity_id:
- media_player.yandex_station - media_player.yandex_station_m0017y300grsqb
volume_level: 0.1 volume_level: 0.1
- delay: '00:00:01' - delay: 00:00:01
- service: yandex_station.send_command - service: yandex_station.send_command
data: data:
entity_id: media_player.yandex_station entity_id: media_player.yandex_station_m0017y300grsqb
command: sendText command: sendText
text: Включи фоновую музыку. text: Включи фоновую музыку.
- delay: '00:01:00' - delay: 00:01:00
- service: media_player.volume_set - service: media_player.volume_set
data: data:
entity_id: entity_id:
- media_player.yandex_station - media_player.yandex_station_m0017y300grsqb
volume_level: 0.2 volume_level: 0.2
- delay: '00:00:30' - delay: 00:00:30
- service: media_player.volume_set - service: media_player.volume_set
data: data:
entity_id: entity_id:
- media_player.yandex_station - media_player.yandex_station_m0017y300grsqb
volume_level: 0.3 volume_level: 0.3
- delay: '00:00:30' - delay: 00:00:30
- service: media_player.volume_set - service: media_player.volume_set
data: data:
entity_id: entity_id:
- media_player.yandex_station - media_player.yandex_station_m0017y300grsqb
volume_level: 0.4 volume_level: 0.4
yandex_tts_2: yandex_tts_2:
alias: YaStation_Включение будильника alias: YaStation_Включение будильника
sequence: sequence:
- service: media_player.volume_set - service: media_player.volume_set
data: data:
entity_id: entity_id:
- media_player.yandex_station - media_player.yandex_station_m0017y300grsqb
volume_level: 0.4 volume_level: 0.4
- delay: '00:00:01' - delay: 00:00:01
- service: media_player.play_media - service: media_player.play_media
entity_id: media_player.yandex_station entity_id: media_player.yandex_station_m0017y300grsqb
data: data:
media_content_id: Включаю будильник на {{ states('sensor.alarm_1_time') }} media_content_id: Включаю будильник на {{ states('sensor.alarm_1_time') }}
media_content_type: text media_content_type: text
yandex_tts_3: yandex_tts_3:
alias: YaStation_Выключение будильника alias: YaStation_Выключение будильника
sequence: sequence:
@ -522,8 +456,15 @@ entity_id:
- media_player.yandex_station - media_player.yandex_station
volume_level: 0.4 volume_level: 0.4
- service: media_player.play_media - service: media_player.play_media
entity_id: media_player.yandex_station entity_id: media_player.yandex_station_m0017y300grsqb
data: data:
media_content_id: Будильник выключен. media_content_id: Будильник выключен.
media_content_type: text media_content_type: text
# Как добавить для штор и света зависимость от времени восхода солнца?
# Если летом к подъему светло, то зачем включать свет, а зимой шторы открывать только с рассветом.
# Проверять состояние солнца. В ha по умолчанию есть sun.sun объект, он показывает: над горизонтом, за горизонтом.
# запишите его в condition
``` ```
Loading…
Cancel
Save