Last active
April 28, 2024 14:26
-
-
Save Resinchem/e0daa78f2f3bbb2db6a393f3f3b22e56 to your computer and use it in GitHub Desktop.
Example Home Assistant Virtual Switch Examples as shown in YouTube Video
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ========================================================== | |
# DASHBOARD YAML | |
# All examples will need to be edited to use your entity | |
# names and particular installation. | |
# | |
# This dashboard example includes a toggle with conditional | |
# cards to switch between custom button card and standard | |
# entities display as shown in the video: | |
# https://youtu.be/mj2CIKqrQlc | |
# ========================================================== | |
- title: Stage | |
path: stage | |
badges: [] | |
cards: | |
- type: vertical-stack | |
cards: | |
- text: Physical Light Switch | |
type: custom:text-divider-row | |
- card: | |
type: entities | |
entities: | |
- entity: light.basement | |
name: Basement Main Lights | |
icon: mdi:lightbulb-group | |
conditions: | |
- entity: input_boolean.show_standard_cards | |
state: 'on' | |
type: conditional | |
- card: | |
square: false | |
type: grid | |
columns: 3 | |
cards: | |
- aspect_ratio: 1.5/1 | |
color: rgb(0,255,0) | |
color_type: card | |
entity: light.basement | |
show_name: false | |
show_state: true | |
state: | |
- color: rgb(200,0,0) | |
icon: mdi:lightbulb-off | |
value: 'off' | |
type: custom:button-card | |
conditions: | |
- entity: input_boolean.show_standard_cards | |
state: 'off' | |
type: conditional | |
- text: Virtual (template) Switches | |
type: custom:text-divider-row | |
- card: | |
type: entities | |
entities: | |
- entity: switch.sw_basement_100 | |
name: 100% | |
icon: mdi:circle-slice-8 | |
- entity: switch.sw_basement_75 | |
name: 75% | |
icon: mdi:circle-slice-6 | |
- entity: switch.sw_basement_50 | |
name: 50% | |
icon: mdi:circle-slice-4 | |
- entity: switch.sw_basement_25 | |
name: 25% | |
icon: mdi:circle-slice-2 | |
conditions: | |
- entity: input_boolean.show_standard_cards | |
state: 'on' | |
type: conditional | |
- card: | |
type: grid | |
square: false | |
columns: 4 | |
cards: | |
- aspect_ratio: 1.2/1 | |
color_type: card | |
entity: switch.sw_basement_100 | |
icon: mdi:circle-slice-8 | |
name: 100% | |
state: | |
- color: rgb(0,128,0) | |
value: 'on' | |
type: custom:button-card | |
- aspect_ratio: 1.2/1 | |
color_type: card | |
entity: switch.sw_basement_75 | |
icon: mdi:circle-slice-6 | |
name: 75% | |
state: | |
- color: rgb(0,128,0) | |
value: 'on' | |
type: custom:button-card | |
- aspect_ratio: 1.2/1 | |
color_type: card | |
entity: switch.sw_basement_50 | |
icon: mdi:circle-slice-4 | |
name: 50% | |
state: | |
- color: rgb(0,128,0) | |
value: 'on' | |
type: custom:button-card | |
- aspect_ratio: 1.2/1 | |
color: rgb(0,255,0) | |
color_type: card | |
entity: switch.sw_basement_25 | |
icon: mdi:circle-slice-2 | |
name: 25% | |
state: | |
- color: rgb(0,128,0) | |
value: 'on' | |
type: custom:button-card | |
conditions: | |
- entity: input_boolean.show_standard_cards | |
state: 'off' | |
type: conditional | |
- text: ' ' | |
type: custom:text-divider-row | |
- type: entities | |
entities: | |
- entity: input_boolean.show_standard_cards | |
- entity: script.virtual_switch_trigger_booleans | |
name: Trigger Trash and Recyclables | |
- type: vertical-stack | |
cards: | |
- text: Physical TV Switch | |
type: custom:text-divider-row | |
- card: | |
type: entities | |
entities: | |
- entity: switch.roku | |
name: Main TV | |
icon: mdi:gamepad-outline | |
conditions: | |
- entity: input_boolean.show_standard_cards | |
state: 'on' | |
type: conditional | |
- card: | |
square: false | |
type: grid | |
columns: 3 | |
cards: | |
- aspect_ratio: 1.5/1 | |
color_type: card | |
entity: switch.roku | |
icon: mdi:gamepad-outline | |
name: Main TV | |
state: | |
- color: rgb(117,0,174) | |
value: 'on' | |
type: custom:button-card | |
conditions: | |
- entity: input_boolean.show_standard_cards | |
state: 'off' | |
type: conditional | |
- text: Virtual (template) Switches | |
type: custom:text-divider-row | |
- card: | |
type: entities | |
entities: | |
- entity: switch.roku_ultra_youtube_tv | |
name: YouTube TV | |
icon: mdi:youtube-tv | |
- entity: switch.roku_ultra_amazon | |
name: Amazon Prime | |
icon: mdi:alpha-a-circle | |
- entity: switch.roku_ultra_netflix | |
name: Netflix | |
icon: mdi:netflix | |
- entity: switch.roku_ultra_paramount | |
name: Paramount Plus | |
icon: mdi:alpha-p | |
- entity: switch.roku_ultra_live_tv | |
name: Roku Live TV | |
icon: mdi:television-box | |
- entity: switch.roku_ultra_tablo_tv | |
name: Tablo OTA TV | |
icon: mdi:video-input-antenna | |
- entity: switch.roku_ultra_youtube | |
name: YouTube | |
icon: mdi:youtube | |
- entity: switch.roku_ultra_peacock | |
name: Peacock Premium | |
icon: mdi:feather | |
conditions: | |
- entity: input_boolean.show_standard_cards | |
state: 'on' | |
type: conditional | |
- card: | |
square: false | |
type: grid | |
columns: 4 | |
cards: | |
- type: custom:button-card | |
entity: switch.roku_ultra_youtube_tv | |
aspect_ratio: 1.2/1 | |
color_type: card | |
color: rgb(0,200,0) | |
name: YouTube TV | |
entity_picture: /local/youtube_tv2.jpg | |
show_entity_picture: true | |
show_icon: true | |
tap_action: | |
action: toggle | |
state: | |
- color: rgb(241,0,0) | |
value: 'on' | |
- color: rgb(0,0,0) | |
value: 'off' | |
- type: custom:button-card | |
entity: switch.roku_ultra_amazon | |
aspect_ratio: 1.2/1 | |
color_type: card | |
name: Prime | |
entity_picture: /local/amazon_prime2.jpg | |
show_entity_picture: true | |
show_icon: true | |
tap_action: | |
action: toggle | |
state: | |
- color: rgb(6,193,255) | |
value: 'on' | |
- color: rgb(0,0,0) | |
value: 'off' | |
- type: custom:button-card | |
entity: switch.roku_ultra_netflix | |
aspect_ratio: 1.2/1 | |
color_type: card | |
name: Netflix | |
entity_picture: /local/netflix.jpg | |
show_entity_picture: true | |
show_icon: true | |
tap_action: | |
action: toggle | |
state: | |
- color: rgb(152,16,27) | |
value: 'on' | |
- color: rgb(0,0,0) | |
value: 'off' | |
- type: custom:button-card | |
entity: switch.roku_ultra_paramount | |
aspect_ratio: 1.2/1 | |
color_type: card | |
name: Paramount+ | |
entity_picture: /local/paramount_plus.jpg | |
show_entity_picture: true | |
show_icon: true | |
tap_action: | |
action: toggle | |
state: | |
- color: rgb(55,134,253) | |
value: 'on' | |
- color: rgb(0,0,0) | |
value: 'off' | |
- type: custom:button-card | |
entity: switch.roku_ultra_live_tv | |
aspect_ratio: 1.2/1 | |
color_type: card | |
name: Roku Live TV | |
entity_picture: /local/roku_live.jpg | |
show_entity_picture: true | |
show_icon: true | |
tap_action: | |
action: toggle | |
state: | |
- color: rgb(136,82,186) | |
value: 'on' | |
- color: rgb(0,0,0) | |
value: 'off' | |
- type: custom:button-card | |
entity: switch.roku_ultra_tablo_tv | |
aspect_ratio: 1.2/1 | |
color_type: card | |
name: Tablo TV | |
entity_picture: /local/tablo.jpg | |
show_entity_picture: true | |
show_icon: true | |
tap_action: | |
action: toggle | |
state: | |
- color: rgb(51,135,172) | |
value: 'on' | |
- color: rgb(0,0,0) | |
value: 'off' | |
- type: custom:button-card | |
entity: switch.roku_ultra_youtube | |
aspect_ratio: 1.2/1 | |
color_type: card | |
name: YouTube | |
entity_picture: /local/youtube3.jpg | |
show_entity_picture: true | |
show_icon: true | |
tap_action: | |
action: toggle | |
state: | |
- color: rgb(200,0,0) | |
value: 'on' | |
- color: rgb(0,0,0) | |
value: 'off' | |
- type: custom:button-card | |
entity: switch.roku_ultra_peacock | |
aspect_ratio: 1.2/1 | |
color_type: card | |
name: Peacock | |
entity_picture: /local/peacock.jpg | |
show_entity_picture: true | |
show_icon: true | |
tap_action: | |
action: toggle | |
state: | |
- color: rgb(55,255,120) | |
value: 'on' | |
- color: rgb(0,0,0) | |
value: 'off' | |
conditions: | |
- entity: input_boolean.show_standard_cards | |
state: 'off' | |
type: conditional | |
- type: vertical-stack | |
cards: | |
- text: Physical WLED Switch | |
type: custom:text-divider-row | |
- card: | |
type: entities | |
entities: | |
- entity: light.nano_leafs | |
name: WLED - Nano Leafs | |
icon: mdi:led-strip-variant | |
conditions: | |
- entity: input_boolean.show_standard_cards | |
state: 'on' | |
type: conditional | |
- card: | |
square: false | |
type: grid | |
cards: | |
- aspect_ratio: 1.5/1 | |
color: rgb(2500,250,50) | |
color_type: card | |
name: WLED Display | |
entity: light.nano_leafs | |
show_name: true | |
show_state: false | |
state: | |
- color: rgb(50,50,50) | |
icon: mdi:led-strip-variant-off | |
value: 'off' | |
type: custom:button-card | |
columns: 3 | |
conditions: | |
- entity: input_boolean.show_standard_cards | |
state: 'off' | |
type: conditional | |
- text: Virtual (template) Switches | |
type: custom:text-divider-row | |
- card: | |
type: entities | |
entities: | |
- entity: switch.nano_leafs_red | |
name: Solid Red | |
icon: mdi:alpha-r-circle | |
- entity: switch.nano_leafs_green | |
name: Solid Green | |
icon: mdi:alpha-g-circle | |
- entity: switch.nano_leafs_blue | |
name: Solid Blue | |
icon: mdi:alpha-b-circle | |
- entity: switch.nano_leafs_pink | |
name: Solid Pink | |
icon: mdi:alpha-p-circle | |
- entity: switch.nano_leafs_bouncing_balls | |
name: Bouncing Balls | |
icon: mdi:aurora | |
- entity: switch.nano_leafs_chase | |
name: Chase | |
icon: mdi:bike-fast | |
- entity: switch.nano_leafs_dancing_shadows | |
name: Dancing Shadows | |
icon: mdi:dance-ballroom | |
- entity: switch.nano_leafs_washing_machine | |
name: Washing Machine | |
icon: mdi:washing-machine | |
conditions: | |
- entity: input_boolean.show_standard_cards | |
state: 'on' | |
type: conditional | |
- card: | |
square: false | |
type: grid | |
cards: | |
- type: custom:button-card | |
entity: switch.nano_leafs_red | |
aspect_ratio: 1.2/1 | |
color_type: card | |
color: rgb(0,200,0) | |
name: Red | |
icon: mdi:alpha-r-circle | |
show_icon: true | |
tap_action: | |
action: toggle | |
state: | |
- color: rgb(255,0,0) | |
value: 'on' | |
- color: rgb(50,50,50) | |
value: 'off' | |
- type: custom:button-card | |
entity: switch.nano_leafs_green | |
aspect_ratio: 1.2/1 | |
color_type: card | |
color: rgb(0,200,0) | |
name: Green | |
icon: mdi:alpha-g-circle | |
show_icon: true | |
tap_action: | |
action: toggle | |
state: | |
- color: rgb(0,255,0) | |
value: 'on' | |
- color: rgb(50,50,50) | |
value: 'off' | |
- type: custom:button-card | |
entity: switch.nano_leafs_blue | |
aspect_ratio: 1.2/1 | |
color_type: card | |
color: rgb(0,200,0) | |
name: Blue | |
icon: mdi:alpha-b-circle | |
show_icon: true | |
tap_action: | |
action: toggle | |
state: | |
- color: rgb(0,0,255) | |
value: 'on' | |
- color: rgb(50,50,50) | |
value: 'off' | |
- type: custom:button-card | |
entity: switch.nano_leafs_pink | |
aspect_ratio: 1.2/1 | |
color_type: card | |
color: rgb(0,200,0) | |
name: Pink | |
icon: mdi:alpha-p-circle | |
show_icon: true | |
tap_action: | |
action: toggle | |
state: | |
- color: rgb(255,0,255) | |
value: 'on' | |
- color: rgb(50,50,50) | |
value: 'off' | |
- type: custom:button-card | |
entity: switch.nano_leafs_bouncing_balls | |
aspect_ratio: 1.2/1 | |
color_type: card | |
color: rgb(0,200,0) | |
name: Bounce | |
icon: mdi:aurora | |
show_icon: true | |
tap_action: | |
action: toggle | |
state: | |
- color: rgb(252,186,3) | |
value: 'on' | |
- color: rgb(50,50,50) | |
value: 'off' | |
- type: custom:button-card | |
entity: switch.nano_leafs_chase | |
aspect_ratio: 1.2/1 | |
color_type: card | |
color: rgb(252,186,3) | |
name: Chase | |
icon: mdi:bike-fast | |
show_icon: true | |
tap_action: | |
action: toggle | |
state: | |
- color: rgb(0,200,200) | |
value: 'on' | |
- color: rgb(50,50,50) | |
value: 'off' | |
- type: custom:button-card | |
entity: switch.nano_leafs_dancing_shadows | |
aspect_ratio: 1.2/1 | |
color_type: card | |
color: rgb(252,186,3) | |
name: Dancing | |
icon: mdi:dance-ballroom | |
show_icon: true | |
tap_action: | |
action: toggle | |
state: | |
- color: rgb(86, 204, 92) | |
value: 'on' | |
- color: rgb(50,50,50) | |
value: 'off' | |
- type: custom:button-card | |
entity: switch.nano_leafs_washing_machine | |
aspect_ratio: 1.2/1 | |
color_type: card | |
color: rgb(252,186,3) | |
name: Washing | |
icon: mdi:washing-machine | |
tap_action: | |
action: toggle | |
state: | |
- color: rgb(130, 60, 158) | |
value: 'on' | |
- color: rgb(50,50,50) | |
value: 'off' | |
columns: 4 | |
conditions: | |
- entity: input_boolean.show_standard_cards | |
state: 'off' | |
type: conditional | |
- text: Input Boolean Option | |
type: custom:text-divider-row | |
- card: | |
type: entities | |
entities: | |
- entity: input_boolean.virtual_switch_trash | |
name: Take out Trash | |
icon: mdi:trash-can | |
- entity: input_boolean.virtual_switch_recycle | |
name: Take out Recyclables | |
icon: mdi:recycle | |
- entity: input_boolean.virtual_switch_dog | |
name: Walk the Dog | |
icon: mdi:dog-side | |
- entity: input_boolean.virtual_switch_dishes | |
name: Do the Dishes | |
icon: mdi:dishwasher | |
conditions: | |
- entity: input_boolean.show_standard_cards | |
state: 'on' | |
type: conditional | |
- card: | |
type: grid | |
square: false | |
columns: 4 | |
cards: | |
- aspect_ratio: 1.2/1 | |
color_type: card | |
entity: input_boolean.virtual_switch_trash | |
icon: mdi:trash-can | |
name: Trash | |
state: | |
- color: rgb(0,128,0) | |
value: 'on' | |
styles: | |
icon: | |
- animation: blink 2s ease infinite | |
type: custom:button-card | |
- aspect_ratio: 1.2/1 | |
color_type: card | |
entity: input_boolean.virtual_switch_recycle | |
icon: mdi:recycle | |
name: Recyclables | |
state: | |
- color: rgb(200,200,0) | |
value: 'on' | |
styles: | |
icon: | |
- animation: blink 2s ease infinite | |
type: custom:button-card | |
- aspect_ratio: 1.2/1 | |
color_type: card | |
entity: input_boolean.virtual_switch_dog | |
icon: mdi:dog-side | |
name: Walk Dog | |
state: | |
- color: rgb(0,128,128) | |
value: 'on' | |
styles: | |
icon: | |
- animation: blink 2s ease infinite | |
type: custom:button-card | |
- aspect_ratio: 1.2/1 | |
color: rgb(0,255,0) | |
color_type: card | |
entity: input_boolean.virtual_switch_dishes | |
icon: mdi:dishwasher | |
name: Do Dishes | |
lock: | |
enabled: '[[[ return entity.state === "on"; ]]]' | |
unlock: hold | |
state: | |
- color: rgb(200,128,0) | |
value: 'on' | |
styles: | |
icon: | |
- animation: blink 2s ease infinite | |
type: custom:button-card | |
conditions: | |
- entity: input_boolean.show_standard_cards | |
state: 'off' | |
type: conditional | |
# ============================================== | |
# LIGHT DIMMING VIRTUAL SWITCH EXAMPLE | |
# Brightness attribute level may need to be | |
# adjusted for your particular situation/light | |
# ============================================== | |
switch: | |
- platform: template | |
switches: | |
lights_100: | |
value_template: “{{ is_state_attr('light.basement', 'brightness', 255) }}” | |
turn_on: | |
service: light.turn_on | |
target: | |
entity_id: light.basement | |
data: | |
brightness: 255 | |
# I did not use the turn_off to prevent lights from turning off and back on when switching brightness levels | |
turn_off: | |
service: light.turn_off | |
target: | |
entity_id: light.basement | |
lights_75: | |
value_template: “{{ is_state_attr('light.basement', 'brightness', 191) }}” | |
turn_on: | |
service: light.turn_on | |
target: | |
entity_id: light.basement | |
data: | |
brightness: 191 | |
lights_50: | |
value_template: “{{ is_state_attr('light.basement', 'brightness', 128) }}” | |
turn_on: | |
service: light.turn_on | |
target: | |
entity_id: light.basement | |
data: | |
brightness: 128 | |
lights_25: | |
value_template: “{{ is_state_attr('light.basement', 'brightness', 64) }}” | |
turn_on: | |
service: light.turn_on | |
target: | |
entity_id: light.basement | |
data: | |
brightness: 64 | |
# ====================================== | |
# TV/STREAMING SERVICES EXAMPLE | |
# Only a few examples shown here. | |
# Repeat for any additional services | |
# for which you want to have a switch | |
# ====================================== | |
switch: | |
- platform: template | |
switches: | |
prime_video: | |
value_template: "{{ is_state_attr('media_player.roku_ultra', ‘source’, ‘Prime Video’) }}" | |
turn_on: | |
– service: switch.turn_on | |
target: | |
entity_id: switch.roku_ultra | |
- service: media_player.select_source | |
target: | |
entity_id: media_player.roku_ultra | |
data: | |
source: ‘Prime Video’ | |
turn_off: | |
- service: switch.turn_off | |
target: | |
entity_id: switch.roku_ultra | |
netflix: | |
value_template: "{{ is_state_attr('media_player.roku_ultra', ‘source’, ‘Netflix’) }}" | |
turn_on: | |
– service: switch.turn_on | |
target: | |
entity_id: switch.roku_ultra | |
- service: media_player.select_source | |
target: | |
entity_id: media_player.roku_ultra | |
data: | |
source: ‘Netflix’ | |
turn_off: | |
- service: switch.turn_off | |
target: | |
entity_id: switch.roku_ultra | |
youtube_tv: | |
value_template: "{{ is_state_attr('media_player.roku_ultra', ‘source’, ‘YouTube TV’) }}" | |
turn_on: | |
– service: switch.turn_on | |
target: | |
entity_id: switch.roku_ultra | |
- service: media_player.select_source | |
target: | |
entity_id: media_player.roku_ultra | |
data: | |
source: ‘YouTube TV’ | |
turn_off: | |
- service: switch.turn_off | |
target: | |
entity_id: switch.roku_ultra | |
# ========================================== | |
# WLED DISPLAY EXAMPLE | |
# Modify for your WLED entity name and the | |
# colors and/or effects for which you want | |
# to create switches. | |
# ========================================== | |
switch: | |
- platform: template | |
switches: | |
nano_leafs_red: | |
value_template: "{{ is_state_attr('light.nano_leafs', 'rgb_color', (255, 0, 0)) and is_state_attr('light.nano_leafs', 'effect', 'Solid') }}" | |
turn_on: | |
service: script.turn_on | |
entity_id: script.nano_leaf_red | |
turn_off: | |
service: light.turn_off | |
target: | |
entity_id: light.nano_leafs | |
nano_leafs_green: | |
value_template: "{{ is_state_attr('light.nano_leafs', 'rgb_color', (8, 255, 0)) and is_state_attr('light.nano_leafs', 'effect', 'Solid') }}" | |
turn_on: | |
service: script.turn_on | |
entity_id: script.nano_leaf_green | |
turn_off: | |
service: light.turn_off | |
target: | |
entity_id: light.nano_leafs | |
nano_leafs_blue: | |
value_template: "{{ is_state_attr('light.nano_leafs', 'rgb_color', (0, 0, 255)) and is_state_attr('light.nano_leafs', 'effect', 'Solid') }}" | |
turn_on: | |
service: script.turn_on | |
entity_id: script.nano_leaf_blue | |
turn_off: | |
service: light.turn_off | |
target: | |
entity_id: light.nano_leafs | |
nano_leafs_pink: | |
value_template: "{{ is_state_attr('light.nano_leafs', 'rgb_color', (255, 0, 255)) and is_state_attr('light.nano_leafs', 'effect', 'Solid') }}" | |
turn_on: | |
service: script.turn_on | |
entity_id: script.nano_leaf_pink | |
turn_off: | |
service: light.turn_off | |
target: | |
entity_id: light.nano_leafs | |
nano_leafs_bouncing_balls: | |
value_template: "{{ is_state_attr('light.nano_leafs', 'effect', 'Bouncing Balls') }}" | |
turn_on: | |
service: script.turn_on | |
entity_id: script.nano_leaf_bouncing_balls | |
turn_off: | |
service: script.turn_on | |
entity_id: script.nano_leaf_blue | |
nano_leafs_chase: | |
value_template: "{{ is_state_attr('light.nano_leafs', 'effect', 'Chase') }}" | |
turn_on: | |
service: script.turn_on | |
entity_id: script.nano_leaf_chase | |
turn_off: | |
service: script.turn_on | |
entity_id: script.nano_leaf_blue | |
nano_leafs_dancing_shadows: | |
value_template: "{{ is_state_attr('light.nano_leafs', 'effect', 'Dancing Shadows') }}" | |
turn_on: | |
service: script.turn_on | |
entity_id: script.nano_leaf_dancing_shadows | |
turn_off: | |
service: script.turn_on | |
entity_id: script.nano_leaf_blue | |
nano_leafs_washing_machine: | |
value_template: "{{ is_state_attr('light.nano_leafs', 'effect', 'Washing Machine') }}" | |
turn_on: | |
service: script.turn_on | |
entity_id: script.nano_leaf_washing_machine | |
turn_off: | |
service: script.turn_on | |
entity_id: script.nano_leaf_blue | |
# ======================================= | |
# INPUT BOOLEAN EXAMPLES AND AUTOMATIONS | |
# These will need substantial modification | |
# for your own use, so these are to provide | |
# an outline for creating your own | |
# ======================================= | |
input_boolean: | |
trash_day: | |
name: Trash Day | |
recycle_day: | |
name: Recycle Day | |
walk_dog: | |
name: Walk the Dog | |
do_dishes: | |
name: Do the Dishes | |
# ----------------------------------- | |
# Example automations shown in video | |
# ------------------------------------ | |
automation: | |
- alias: “Trash Day Tuesday” | |
trigger: | |
platform: time | |
at: “07:00:00” | |
condition: | |
condition: time | |
weekday: | |
- tue | |
action: | |
service: input_boolean.turn_on | |
target: | |
entity_id: input_boolean.trash_day | |
- alias: “Trash Day Notify” | |
trigger: | |
platform: state | |
entity_id: input_boolean.trash_day | |
from: ‘off’ | |
to: ‘on’ | |
condition: | |
action: | |
- service: light.turn_on | |
target: | |
entity_id: light.trash_day | |
- service: tts.google_say | |
entity_id: | |
- media_player.all_home_devices | |
data_template: | |
message: "Time to take out the trash." | |
- alias: “Walk the dog” | |
trigger: | |
- platform: time | |
at: | |
- “07:00:00” | |
- “12:00:00” | |
- “18:00:00” | |
condition: | |
action: | |
- service: input_boolean.turn_on | |
target: | |
entity_id: input_boolean.walk_dog | |
- alias: Dishes Time | |
trigger: | |
platform: state | |
entity_id: input_boolean.do_dishes | |
from: ‘off’ | |
to: ‘on’ | |
action: | |
- service: tts.google.say | |
entity_id: | |
- media_player.all_home_devices | |
data_template: | |
message: “Time to do the dishes” | |
- delay: “00:05:00” # This should really use a timer and an automation for timer expiration for remaining steps | |
- service: tts.google.say | |
entity_id: | |
- media_player.all_home_devices | |
data_template: | |
message: “No TV until dishes are done” | |
- service: switch.turn_off | |
entity_id: switch.tv | |
- alias: Disable TV for Dishes | |
trigger: | |
platform: state | |
entity_id: switch.tv | |
from: ‘off’ | |
to: ‘on’ | |
condition: | |
condition: state | |
entity_id: input_boolean.do_dishes | |
state: ‘on’ | |
action: | |
- service: tts.google.say | |
entity_id: | |
- media_player.all_home_devices | |
data_template: | |
message: “No TV until dishes are done” | |
- service: switch.turn_off | |
entity_id: switch.tv |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment