Compare commits
12 Commits
2025.3.4
...
sleep-awar
Author | SHA1 | Date | |
---|---|---|---|
002919483f
|
|||
ef548c2df1
|
|||
1d60a4df32
|
|||
57c27d4e48
|
|||
c06bd894ae
|
|||
1b3cf79f25
|
|||
7cf9c13e38
|
|||
e8c6cd8deb
|
|||
df92fc4df6
|
|||
a936b22bb9
|
|||
9aa918d335
|
|||
c7d6297934
|
@ -1 +1 @@
|
||||
2025.3.4
|
||||
2025.4.2
|
196
automations.yaml
196
automations.yaml
@ -311,102 +311,118 @@
|
||||
- id: '1651787468337'
|
||||
alias: Reboot handling
|
||||
description: ''
|
||||
trigger:
|
||||
- platform: homeassistant
|
||||
event: start
|
||||
triggers:
|
||||
- event: start
|
||||
id: hass_start
|
||||
- platform: homeassistant
|
||||
event: shutdown
|
||||
trigger: homeassistant
|
||||
- event: shutdown
|
||||
id: hass_stop
|
||||
condition: []
|
||||
action:
|
||||
- if:
|
||||
- condition: trigger
|
||||
id: hass_start
|
||||
alias: Startup
|
||||
then:
|
||||
- delay:
|
||||
hours: 0
|
||||
minutes: 1
|
||||
seconds: 0
|
||||
milliseconds: 0
|
||||
- service: automation.turn_on
|
||||
data: {}
|
||||
target:
|
||||
entity_id:
|
||||
- automation.family_has_arrived
|
||||
- automation.family_has_left
|
||||
- automation.scheduled_alarm_rearm
|
||||
- automation.scheduled_alarm_disarm
|
||||
- service: switch.turn_off
|
||||
target:
|
||||
entity_id:
|
||||
- switch.presence_simulation
|
||||
data: {}
|
||||
- if:
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: input_boolean.holiday_mode
|
||||
state: 'on'
|
||||
alias: Is holiday mode on?
|
||||
trigger: homeassistant
|
||||
conditions: []
|
||||
actions:
|
||||
- alias: Routing
|
||||
choose:
|
||||
- conditions:
|
||||
- condition: trigger
|
||||
id: hass_start
|
||||
alias: Startup
|
||||
sequence:
|
||||
- delay:
|
||||
hours: 0
|
||||
minutes: 1
|
||||
seconds: 0
|
||||
milliseconds: 0
|
||||
- data: {}
|
||||
target:
|
||||
entity_id:
|
||||
- automation.family_has_arrived
|
||||
- automation.family_has_left
|
||||
- automation.scheduled_alarm_rearm
|
||||
- automation.scheduled_alarm_disarm
|
||||
action: automation.turn_on
|
||||
- if:
|
||||
- condition: state
|
||||
entity_id: binary_sensor.early_night_mode
|
||||
state: 'on'
|
||||
alias: Is early night mode on?
|
||||
alias: Test conditions
|
||||
then:
|
||||
- service: switch.turn_on
|
||||
state: 'off'
|
||||
then:
|
||||
- action: input_boolean.turn_off
|
||||
metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
entity_id:
|
||||
- input_boolean.give_me_darkness
|
||||
- input_boolean.night_mode
|
||||
- input_boolean.goodnight
|
||||
alias: If early night mode is off, turn off other night-related modes
|
||||
- target:
|
||||
entity_id:
|
||||
- switch.presence_simulation
|
||||
data: {}
|
||||
action: switch.turn_off
|
||||
- if:
|
||||
- condition: and
|
||||
conditions:
|
||||
- condition: state
|
||||
entity_id: input_boolean.holiday_mode
|
||||
state: 'on'
|
||||
alias: Is holiday mode on?
|
||||
- condition: state
|
||||
entity_id: binary_sensor.early_night_mode
|
||||
state: 'on'
|
||||
alias: Is early night mode on?
|
||||
alias: Test conditions
|
||||
then:
|
||||
- data: {}
|
||||
target:
|
||||
entity_id: switch.animated_scene_{{ states('input_select.holiday_animation')
|
||||
| lower }}
|
||||
alias: Turn on the appropriate animated holiday scene
|
||||
action: switch.turn_on
|
||||
alias: Turn on animated holiday scene if night time and holiday mode is on
|
||||
- data: {}
|
||||
action: script.tony_desktop_refresh
|
||||
- data: {}
|
||||
action: script.tina_desktop_refresh
|
||||
- data: {}
|
||||
action: script.asus_laptop_refresh
|
||||
- data: {}
|
||||
action: script.kallen_desktop_refresh
|
||||
- data: {}
|
||||
action: script.win10vm_refresh
|
||||
- data:
|
||||
topic: house/basement/server/glances
|
||||
payload: restart
|
||||
qos: 0
|
||||
retain: false
|
||||
alias: Restart Glances via MQTT
|
||||
action: mqtt.publish
|
||||
- data: {}
|
||||
alias: Reset all speaker volumes
|
||||
action: script.volume_reset
|
||||
- if:
|
||||
- condition: state
|
||||
entity_id: input_boolean.studio_quiet
|
||||
state: 'off'
|
||||
then:
|
||||
- data:
|
||||
who: basement
|
||||
call_ha_started: 1
|
||||
action: script.status_annc
|
||||
else:
|
||||
- stop: Studio has requested quiet, and Jarvis respects this
|
||||
alias: Announce back online, unless studio has requested quiet
|
||||
- conditions:
|
||||
- condition: trigger
|
||||
id: hass_stop
|
||||
alias: Shutdown
|
||||
sequence:
|
||||
- data:
|
||||
stop_actions: true
|
||||
target:
|
||||
entity_id: switch.animated_scene_{{ states('input_select.holiday_animation')
|
||||
| lower }}
|
||||
alias: Turn on the appropriate animated holiday scene
|
||||
alias: Turn on animated holiday scene if night time and holiday mode is on
|
||||
- service: script.tony_desktop_refresh
|
||||
data: {}
|
||||
- service: script.tina_desktop_refresh
|
||||
data: {}
|
||||
- service: script.asus_laptop_refresh
|
||||
data: {}
|
||||
- service: script.kallen_desktop_refresh
|
||||
data: {}
|
||||
- service: script.win10vm_refresh
|
||||
data: {}
|
||||
- service: mqtt.publish
|
||||
data:
|
||||
topic: house/basement/server/glances
|
||||
payload: restart
|
||||
qos: 0
|
||||
retain: false
|
||||
alias: Restart Glances via MQTT
|
||||
- service: script.volume_reset
|
||||
data: {}
|
||||
alias: Reset all speaker volumes
|
||||
- if:
|
||||
- condition: state
|
||||
entity_id: input_boolean.studio_quiet
|
||||
state: 'off'
|
||||
then:
|
||||
- service: script.status_annc
|
||||
data:
|
||||
who: basement
|
||||
call_ha_started: 1
|
||||
else:
|
||||
- stop: Studio has requested quiet, and Jarvis respects this
|
||||
alias: Announce back online, unless studio has requested quiet
|
||||
- if:
|
||||
- condition: trigger
|
||||
id: hass_stop
|
||||
alias: Shutdown
|
||||
then:
|
||||
- service: automation.turn_off
|
||||
data:
|
||||
stop_actions: true
|
||||
target:
|
||||
entity_id:
|
||||
- automation.family_has_arrived
|
||||
- automation.family_has_left
|
||||
entity_id:
|
||||
- automation.family_has_arrived
|
||||
- automation.family_has_left
|
||||
action: automation.turn_off
|
||||
mode: queued
|
||||
- id: '1654547257475'
|
||||
alias: Battery Monitoring
|
||||
|
@ -12,21 +12,62 @@
|
||||
{% endif %}
|
||||
{% endmacro %}
|
||||
|
||||
{% macro period_str(team) %}
|
||||
{% if state_attr(team,'league') in ['NFL','NCAAF'] %}
|
||||
quarter
|
||||
{% elif state_attr(team,'league') == 'MLB' %}
|
||||
inning
|
||||
{% else %}
|
||||
period
|
||||
{% endif %}
|
||||
{% endmacro %}
|
||||
|
||||
{% macro sports_clock(team) %}
|
||||
{% macro data() %}
|
||||
{% set period_str = period_str(team) %}
|
||||
{% set game_clock = state_attr(team,'clock') | lower %}
|
||||
{% if state_attr(team,'league') == 'MLB' %}
|
||||
{% set inning_parts = game_clock.split(' ') %}
|
||||
in the {{ inning_parts[0] ~ ' of the ' ~ inning_parts[1] ~ ' ' ~ period_str }}
|
||||
{% else %}
|
||||
{% if ' - ' in game_clock %}
|
||||
{% set clock_time, quarter = game_clock.split(' - ') %}
|
||||
with {{ clock_time ~ ' remaining in the ' ~ quarter ~ ' ' ~ period_str }}
|
||||
{% else %}
|
||||
with {{ game_clock ~ ' remaining in the ' ~ period_str }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endmacro %}
|
||||
{{ cleanup(data()) }}
|
||||
{% endmacro %}
|
||||
|
||||
{% macro sports_pregame(team) %}
|
||||
{% macro data() %}
|
||||
{% if state_attr(team,'opponent_name') %}
|
||||
{% set opponent_name = state_attr(team, 'opponent_name') %}
|
||||
{% if opponent_name.endswith(' St') %}
|
||||
{% set opponent_name = opponent_name | replace(' St', ' State') %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if is_state(team,'PRE') %}
|
||||
{% set date = state_attr(team,'date') | as_timestamp | timestamp_custom('%m-%d') %}
|
||||
{% if date == now().strftime('%m-%d') %}
|
||||
The {{ state_attr(team,'friendly_name') }} will be playing today against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ state_attr(team,'opponent_name') }} at {{ state_attr(team,'venue') }}.
|
||||
The {{ state_attr(team,'friendly_name') }} will be playing today against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} at {{ state_attr(team,'venue') }}.
|
||||
{{ sports_str(team,'start') }} is at {{ state_attr(team,'date') | as_timestamp | timestamp_custom('%I:%M %p') }}.
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endmacro%}
|
||||
{% endmacro %}
|
||||
{{ cleanup(data()) }}
|
||||
{% endmacro %}
|
||||
|
||||
{% macro sports_main(team) %}
|
||||
{% macro data() %}
|
||||
{% if state_attr(team,'opponent_name') %}
|
||||
{% set opponent_name = state_attr(team, 'opponent_name') %}
|
||||
{% if opponent_name.endswith(' St') %}
|
||||
{% set opponent_name = opponent_name | replace(' St', ' State') %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if is_state(team,'POST') %}
|
||||
{% set date = state_attr(team,'date') | as_timestamp | timestamp_custom('%m-%d') %}
|
||||
{% set yday = (as_timestamp(now()) - (24*3600)) | timestamp_custom('%m-%d') %}
|
||||
@ -34,11 +75,11 @@
|
||||
{% if state_attr(team,'clock') in ['postponed','Postponed'] %}
|
||||
The {{ state_attr(team,'friendly_name') }} had their game postponed today, and it will be played at a later date.
|
||||
{% elif (state_attr(team,'team_score') | int) == state_attr(team,'opponent_score') | int %}
|
||||
The {{ state_attr(team,'friendly_name') }} tied in their game today against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ state_attr(team,'opponent_name') }} by a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}.
|
||||
The {{ state_attr(team,'friendly_name') }} tied in their game today against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} by a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}.
|
||||
{% elif state_attr(team,'team_winner') == true %}
|
||||
The {{ state_attr(team,'friendly_name') }} won their game today against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ state_attr(team,'opponent_name') }} by a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}.
|
||||
The {{ state_attr(team,'friendly_name') }} won their game today against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} by a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}.
|
||||
{% elif state_attr(team,'opponent_winner') == true %}
|
||||
The {{ state_attr(team,'friendly_name') }} lost their game today against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ state_attr(team,'opponent_name') }} by a score of {{ state_attr(team,'opponent_score') }} to {{ state_attr(team,'team_score') }}.
|
||||
The {{ state_attr(team,'friendly_name') }} lost their game today against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} by a score of {{ state_attr(team,'opponent_score') }} to {{ state_attr(team,'team_score') }}.
|
||||
{% endif %}
|
||||
{% if state_attr(team,'clock') not in ['postponed','Postponed'] %}
|
||||
This brings their record to {{ state_attr(team,'team_record') | replace("-"," and ") }} on the season.
|
||||
@ -47,11 +88,11 @@
|
||||
{% if state_attr(team,'clock') in ['postponed','Postponed'] %}
|
||||
The {{ state_attr(team,'friendly_name') }} had their game postponed yesterday, and it will be played at a later date.
|
||||
{% elif (state_attr(team,'team_score') | int) == state_attr(team,'opponent_score') | int %}
|
||||
The {{ state_attr(team,'friendly_name') }} tied in their game yesterday against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ state_attr(team,'opponent_name') }} by a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}.
|
||||
The {{ state_attr(team,'friendly_name') }} tied in their game yesterday against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} by a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}.
|
||||
{% elif state_attr(team,'team_winner') == true %}
|
||||
The {{ state_attr(team,'friendly_name') }} won their game yesterday against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ state_attr(team,'opponent_name') }} by a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}.
|
||||
The {{ state_attr(team,'friendly_name') }} won their game yesterday against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} by a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}.
|
||||
{% elif state_attr(team,'opponent_winner') == true %}
|
||||
The {{ state_attr(team,'friendly_name') }} lost their game yesterday against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ state_attr(team,'opponent_name') }} by a score of {{ state_attr(team,'opponent_score') }} to {{ state_attr(team,'team_score') }}.
|
||||
The {{ state_attr(team,'friendly_name') }} lost their game yesterday against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} by a score of {{ state_attr(team,'opponent_score') }} to {{ state_attr(team,'team_score') }}.
|
||||
{% endif %}
|
||||
{% if state_attr(team,'clock') not in ['postponed','Postponed'] %}
|
||||
This brings their record to {{ state_attr(team,'team_record') | replace("-"," and ") }} on the season.
|
||||
@ -59,11 +100,11 @@
|
||||
{% endif %}
|
||||
{% elif is_state(team,'IN') %}
|
||||
{% if (state_attr(team,'team_score') | int) == (state_attr(team,'opponent_score') | int) %}
|
||||
The {{ state_attr(team,'friendly_name') }} are currently tied in their game against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ state_attr(team,'opponent_name') }} with a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}.
|
||||
The {{ state_attr(team,'friendly_name') }} are currently tied in their game against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} with a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }} {{ sports_clock(team) }}.
|
||||
{% elif (state_attr(team,'team_score') | int) > (state_attr(team,'opponent_score') | int) %}
|
||||
The {{ state_attr(team,'friendly_name') }} are currently winning their game against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ state_attr(team,'opponent_name') }} with a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }}.
|
||||
The {{ state_attr(team,'friendly_name') }} are currently winning their game against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} with a score of {{ state_attr(team,'team_score') }} to {{ state_attr(team,'opponent_score') }} {{ sports_clock(team) }}.
|
||||
{% else %}
|
||||
The {{ state_attr(team,'friendly_name') }} are currently losing their game against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ state_attr(team,'opponent_name') }} with a score of {{ state_attr(team,'opponent_score') }} to {{ state_attr(team,'team_score') }}.
|
||||
The {{ state_attr(team,'friendly_name') }} are currently losing their game against {% if state_attr(team,'league') != 'NCAAF'%}the{% endif %} {{ opponent_name }} with a score of {{ state_attr(team,'opponent_score') }} to {{ state_attr(team,'team_score') }} {{ sports_clock(team) }}.
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endmacro %}
|
||||
|
@ -31,8 +31,7 @@ tts:
|
||||
region_name: 'us-east-1'
|
||||
text_type: ssml
|
||||
voice: Joanna
|
||||
cache: true
|
||||
engine: neural
|
||||
engine: generative
|
||||
|
||||
conversation:
|
||||
|
||||
|
@ -489,6 +489,7 @@ input_select:
|
||||
- Evening Mode
|
||||
- Night Mode
|
||||
- Bright Mode
|
||||
- Reading Mode
|
||||
- Reset
|
||||
initial: Select
|
||||
icon: mdi:desk
|
||||
@ -653,6 +654,21 @@ template:
|
||||
{% endif %}
|
||||
device_class: problem
|
||||
delay_on: "00:00:10"
|
||||
- name: Light Switch Issue
|
||||
unique_id: 381e8038-ea96-474c-92ec-d1296dc1369e
|
||||
state: >
|
||||
{% set lights = states.light.upstairs_bathroom_lights,
|
||||
states.light.hallway_overhead,
|
||||
states.light.downstairs_bathroom_lights %}
|
||||
{% set issues = lights | selectattr('state','eq','unavailable') | list | count %}
|
||||
{{ issues > 0 }}
|
||||
attributes:
|
||||
issues: >
|
||||
{% set lights = states.light.upstairs_bathroom_lights,
|
||||
states.light.hallway_overhead,
|
||||
states.light.downstairs_bathroom_lights %}
|
||||
{% set ids = lights | selectattr('state','eq','unavailable') | map(attribute='attributes.friendly_name') | list %}
|
||||
{{ ids | join(', ') }}
|
||||
- sensor:
|
||||
- name: "Basement Studio Lights - Brightness Actual"
|
||||
unique_id: dee4dc84-a6a0-4150-903e-5b8bd436d962
|
||||
|
@ -1237,11 +1237,9 @@ script:
|
||||
data:
|
||||
message: >
|
||||
<voice name="{{ voice }}">
|
||||
<amazon:auto-breaths>
|
||||
<prosody rate="fast">
|
||||
{{ message }}
|
||||
</prosody>
|
||||
</amazon:auto-breaths>
|
||||
</voice>
|
||||
target: >
|
||||
{% if who in ['living_room_echo_dot', 'media_player.living_room_echo_dot','living_room'] %}
|
||||
|
77
scripts.yaml
77
scripts.yaml
@ -1544,14 +1544,14 @@ day_mode_in_tina_desk:
|
||||
alias: Day Mode in Tina Desk
|
||||
sequence:
|
||||
- parallel:
|
||||
- service: light.turn_on
|
||||
target:
|
||||
- target:
|
||||
entity_id: light.tina_lamp_top
|
||||
data: {}
|
||||
- service: light.turn_off
|
||||
target:
|
||||
action: light.turn_on
|
||||
- target:
|
||||
entity_id: light.tina_lamp_side
|
||||
data: {}
|
||||
action: light.turn_off
|
||||
- wait_template: '{{ is_state(''light.tina_lamp_side'',''off'') }}'
|
||||
timeout:
|
||||
seconds: 15
|
||||
@ -1561,52 +1561,57 @@ day_mode_in_tina_desk:
|
||||
- condition: state
|
||||
entity_id: switch.adaptive_lighting_tina_lamp
|
||||
state: 'off'
|
||||
alias: If switch is off
|
||||
alias: If adaptive lighting is off
|
||||
then:
|
||||
- service: switch.turn_on
|
||||
- alias: Turn on adaptive lighting
|
||||
data: {}
|
||||
target:
|
||||
entity_id: switch.adaptive_lighting_tina_lamp
|
||||
alias: Turn on the switch
|
||||
entity_id:
|
||||
- switch.adaptive_lighting_tina_lamp
|
||||
- switch.adaptive_lighting_adapt_brightness_tina_lamp
|
||||
- switch.adaptive_lighting_adapt_color_tina_lamp
|
||||
action: switch.turn_on
|
||||
else:
|
||||
- alias: Apply adaptive lighting
|
||||
service: adaptive_lighting.apply
|
||||
data:
|
||||
entity_id: switch.adaptive_lighting_tina_lamp
|
||||
adapt_brightness: true
|
||||
adapt_color: true
|
||||
action: adaptive_lighting.apply
|
||||
mode: restart
|
||||
icon: mdi:palette
|
||||
evening_mode_in_tina_desk:
|
||||
alias: Evening Mode in Tina Desk
|
||||
sequence:
|
||||
- alias: Turn on lamp
|
||||
service: light.turn_on
|
||||
data: {}
|
||||
target:
|
||||
entity_id:
|
||||
- light.tina_lamp_top
|
||||
- light.tina_lamp_side
|
||||
action: light.turn_on
|
||||
- alias: Apply adaptive lighting to lamp
|
||||
if:
|
||||
- condition: state
|
||||
entity_id: switch.adaptive_lighting_tina_lamp
|
||||
state: 'off'
|
||||
alias: If switch is off
|
||||
alias: If adaptive lighting is off
|
||||
then:
|
||||
- service: switch.turn_on
|
||||
- alias: Turn on adaptive lighting
|
||||
data: {}
|
||||
target:
|
||||
entity_id: switch.adaptive_lighting_tina_lamp
|
||||
alias: Turn on the switch
|
||||
entity_id:
|
||||
- switch.adaptive_lighting_tina_lamp
|
||||
- switch.adaptive_lighting_adapt_brightness_tina_lamp
|
||||
- switch.adaptive_lighting_adapt_color_tina_lamp
|
||||
action: switch.turn_on
|
||||
else:
|
||||
- service: adaptive_lighting.apply
|
||||
- alias: Apply adaptive lighting
|
||||
data:
|
||||
entity_id: switch.adaptive_lighting_tina_lamp
|
||||
adapt_brightness: true
|
||||
adapt_color: true
|
||||
turn_on_lights: true
|
||||
alias: Apply adaptive lighting
|
||||
action: adaptive_lighting.apply
|
||||
mode: restart
|
||||
icon: mdi:palette
|
||||
night_mode_in_tina_desk:
|
||||
@ -3525,3 +3530,41 @@ tina_tylenol:
|
||||
icon: mdi:medication
|
||||
max: 10
|
||||
description: ''
|
||||
reading_mode_in_tina_desk:
|
||||
sequence:
|
||||
- action: switch.turn_off
|
||||
metadata: {}
|
||||
data: {}
|
||||
target:
|
||||
entity_id: switch.adaptive_lighting_adapt_brightness_tina_lamp
|
||||
alias: Turn off adaptive brightness, leave adaptive color on
|
||||
- alias: Turn on lamp
|
||||
action: light.turn_on
|
||||
metadata: {}
|
||||
data:
|
||||
brightness_pct: 100
|
||||
target:
|
||||
entity_id: light.tina_desk_lights
|
||||
- alias: Apply adaptive lighting to lamp
|
||||
if:
|
||||
- condition: state
|
||||
entity_id: switch.adaptive_lighting_tina_lamp
|
||||
state: 'off'
|
||||
alias: If switch is off
|
||||
then:
|
||||
- data: {}
|
||||
target:
|
||||
entity_id: switch.adaptive_lighting_tina_lamp
|
||||
alias: Turn on the switch
|
||||
action: switch.turn_on
|
||||
else:
|
||||
- alias: Apply adaptive lighting
|
||||
data:
|
||||
entity_id: switch.adaptive_lighting_tina_lamp
|
||||
adapt_color: true
|
||||
turn_on_lights: true
|
||||
adapt_brightness: false
|
||||
action: adaptive_lighting.apply
|
||||
alias: Reading Mode in Tina Desk
|
||||
description: ''
|
||||
icon: mdi:palette
|
||||
|
Reference in New Issue
Block a user