Files
ha-dashboards/mobile_dashboard.yaml

7382 lines
276 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
streamline_templates:
main_button_name:
default:
- name: ''
- columns: 2
- navigation_path: ''
- icon: ''
card:
type: custom:bubble-card
card_type: button
button_type: name
name: '[[name]]'
icon: '[[icon]]'
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
button_action:
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
columns: '[[columns]]'
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: var(--bubble-main-background-color) !important;
}
main_button_floors:
defaults:
name: ''
icon: ''
navigation_path: ''
occupancy_entity: ''
temp_entity: ''
lux_entity: ''
hot_entity: ''
cold_entity: ''
card:
type: custom:bubble-card
card_type: button
button_type: state
entity: '[[occupancy_entity]]'
name: '[[name]]'
icon: '[[icon]]'
show_state: false
double_tap_action:
action: none
hold_action:
action: none
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
button_action:
double_tap_action:
action: none
hold_action:
action: none
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
sub_button:
- entity: '[[temp_entity]]'
name: Temp
show_state: true
show_name: false
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
show_background: false
- entity: '[[lux_entity]]'
show_state: true
name: Lux
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
show_background: false
modules:
- default
- temperature_colouring
- main_button_floors
temperature_colouring:
temperature_sensor: '[[temp_entity]]'
elements:
sub_buttons:
- 1
main_button_floors:
occupancy_entity: '[[occupancy_entity]]'
hot_entity: '[[hot_entity]]'
cold_entity: '[[cold_entity]]'
main_button_outdoors:
defaults:
name: ''
icon: ''
navigation_path: ''
occupancy_entity: ''
temp_entity: ''
lux_entity: ''
card:
type: custom:bubble-card
card_type: button
button_type: state
entity: '[[occupancy_entity]]'
name: '[[name]]'
icon: '[[icon]]'
show_state: false
double_tap_action:
action: none
hold_action:
action: none
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
button_action:
double_tap_action:
action: none
hold_action:
action: none
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
sub_button:
- entity: '[[temp_entity]]'
name: Temp
show_state: true
show_name: false
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
show_background: false
- entity: '[[lux_entity]]'
show_state: true
name: Lux
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
show_background: false
modules:
- default
- temperature_colouring
- main_button_outdoors
temperature_colouring:
temperature_sensor: '[[temp_entity]]'
elements:
sub_buttons:
- 1
main_button_outdoors:
occupancy_entity: '[[occupancy_entity]]'
floors_separator:
defaults:
- name: ''
- icon: ''
card:
type: custom:bubble-card
card_type: separator
name: '[[name]]'
icon: '[[icon]]'
sub_button:
- entity: '[[power_entity]]'
name: Power
show_state: true
tap_action:
action: none
- entity: '[[lights_entity]]'
name: Lights
icon: mdi:lightbulb
show_name: true
show_state: false
tap_action:
action: toggle
modules:
- badgy-condition-helper
badgy-condition-helper:
entity_badges:
'1':
entity: '[[floor_lights_count]]'
condition:
- condition: state
entity_id: '[[lights_entity]]'
state: 'on'
popup_temperature_button:
defaults:
- name: ''
- hot_entity: ''
- cold_entity: ''
card:
type: custom:bubble-card
card_type: button
button_type: state
entity: '[[entity]]'
name: '[[name]]'
show_attribute: false
modules:
- default
- popup_temperature_button
popup_temperature_button:
hot_entity: '[[hot_entity]]'
cold_entity: '[[cold_entity]]'
popup_timer_card:
defaults:
name: ''
entity: ''
card:
type: conditional
conditions:
- condition: state
entity: '[[entity]]'
state_not: idle
card:
type: custom:bubble-card
card_type: button
button_type: state
entity: '[[entity]]'
name: '[[name]]'
icon: mdi:timer
sub_button:
- entity: '[[entity]]'
tap_action:
action: perform-action
perform_action: timer.start
target:
entity_id: '[[entity]]'
name: Start
icon: mdi:play
visibility: []
- entity: '[[entity]]'
name: Pause
icon: mdi:pause
tap_action:
action: perform-action
perform_action: timer.pause
target:
entity_id: '[[entity]]'
- entity: '[[entity]]'
name: Cancel
icon: mdi:cancel
tap_action:
action: perform-action
perform_action: timer.cancel
target:
entity_id: '[[entity]]'
- entity: '[[entity]]'
name: Finish
icon: mdi:clock-end
tap_action:
action: perform-action
perform_action: timer.finish
target:
entity_id: '[[entity]]'
modules:
- default
- popup_timer_card
state_color_button:
defaults:
- name: ''
- columns: 2
- show_state: true
card:
type: custom:bubble-card
card_type: button
button_type: state
entity: '[[entity]]'
name: '[[name]]'
show_state: '[[show_state]]'
tap_action:
action: more-info
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
columns: '[[columns]]'
modules:
- default
- state_color_button
state_color_button:
color: '[[color]]'
state_color_button_nav:
defaults:
- name: ''
- columns: 2
- show_state: false
card:
type: custom:bubble-card
card_type: button
button_type: state
entity: '[[entity]]'
name: '[[name]]'
show_state: '[[show_state]]'
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
double_tap_action:
action: none
hold_action:
action: none
button_action:
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
double_tap_action:
action: none
hold_action:
action: none
columns: '[[columns]]'
modules:
- default
- state_color_button
state_color_button:
color: '[[color]]'
contact_sensor_button:
defaults:
- name: ''
- columns: 2
- show_state: true
card:
type: custom:bubble-card
card_type: button
button_type: state
entity: '[[entity]]'
name: '[[name]]'
show_state: '[[show_state]]'
tap_action:
action: more-info
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
columns: '[[columns]]'
modules:
- default
- state_color_button
- get_state_attribute
state_color_button:
color: '[[color]]'
get_state_attribute:
- entity: '[[entity]]'
- entity: '[[entity]]_tamper'
phone_info_grid:
card:
type: custom:stack-in-card
card_mod:
style: |
ha-card {
overflow: visible !important;
}
cards:
- type: glance
entities:
- entity: device_tracker.[[device]]
name: Location
- entity: sensor.[[device]]_interval
name: Interval
icon: mdi:clock-start
- entity: sensor.[[device]]_travel_time
name: TravTime
icon: mdi:clock-outline
- entity: sensor.[[device]]_zone_distance
name: Home
icon: mdi:map-marker-distance
- entity: sensor.[[device]]_next_update
name: NextUpdt
icon: mdi:update
state_color: false
- type: glance
entities:
- entity: sensor.[[device]]_waze_distance
name: WazeDist
icon: mdi:map-marker-distance
- entity: sensor.[[device]]_calc_distance
name: CalcDist
icon: mdi:map-marker-distance
- entity: sensor.[[device]]_dir_of_travel
name: Direction
icon: mdi:compass-outline
- entity: sensor.[[device]]_last_located
name: Located
icon: mdi:map-clock
- entity: sensor.[[device]]_last_update
name: LastUpdt
icon: mdi:history
- type: horizontal-stack
cards:
- type: entities
entities:
- entity: sensor.[[device]]_info
name: Info
icon: mdi:information-outline
iphone_entities_card:
card:
type: entities
entities:
- entity: device_tracker.[[device]]_app
name: App Location
- type: custom:battery-state-entity
entity: sensor.[[device]]_battery
name: Battery
tap_action: more-info
charging_state:
entity_id: sensor.[[device]]_battery_status
state: Charging
- type: custom:template-entity-row
name: Connection Type
entity: sensor.[[device]]_connection_type
state: |
{% if is_state('sensor.[[device]]_connection_type','Cellular') %}
{{ state_attr('sensor.[[device]]_connection_type','Cellular Technology') }}
{% elif is_state('sensor.[[device]]_connection_type','Wi-Fi') %}
Wi-Fi
{% else %}
Unknown
{% endif %}
- entity: sensor.[[device]]_ssid
name: SSID
- entity: sensor.[[device]]_steps
name: Steps Today
- entity: binary_sensor.[[device]]_focus
name: Focus
- entity: sensor.[[device]]_storage
name: Storage
show_header_toggle: false
state_color: true
ipad_entities_card:
card:
type: entities
entities:
- entity: device_tracker.[[device]]_app
name: App Location
- type: custom:battery-state-entity
entity: sensor.[[device]]_battery
name: Battery
tap_action: more-info
charging_state:
entity_id: sensor.[[device]]_battery_status
state: Charging
- type: custom:template-entity-row
name: Connection Type
entity: sensor.[[device]]_connection_type
state: |
{% if is_state('sensor.[[device]]_connection_type','Cellular') %}
{{ state_attr('sensor.[[device]]_connection_type','Cellular Technology') }}
{% elif is_state('sensor.[[device]]_connection_type','Wi-Fi') %}
Wi-Fi
{% else %}
Unknown
{% endif %}
- entity: sensor.[[device]]_ssid
name: SSID
- entity: binary_sensor.[[device]]_focus
name: Focus
- entity: sensor.[[device]]_storage
name: Storage
- entity: sensor.[[device]]_info
name: Info
show_header_toggle: false
state_color: true
views:
- title: Home
path: home
type: sections
sections:
- type: grid
cards:
- type: heading
icon: mdi:weather-partly-cloudy
heading: Weather
heading_style: title
- type: custom:meteoalarm-card
entities:
entity: sensor.weatheralerts
integration: weatheralerts
hide_when_no_warning: true
visibility:
- condition: state
entity: sensor.weatheralerts_alerts_are_active
state: 'Yes'
- type: custom:clock-weather-card
entity: weather.iron_nerd_weather_station
sun_entity: sun.sun
weather_icon_type: fill
humidity_sensor: sensor.home_relative_humidity
show_humidity: true
apparent_sensor: sensor.home_temperature_feels_like
animated_icon: true
forecast_rows: 7
time_format: 12
tap_action:
action: navigate
navigation_path: /lovelace/weather
- type: heading
icon: mdi:home-account
heading: People
heading_style: title
- square: false
columns: 3
type: grid
cards:
- type: custom:mushroom-person-card
entity: person.tony_stork
layout: vertical
icon_type: entity-picture
fill_container: false
- type: custom:mushroom-person-card
entity: person.christina_stork
layout: vertical
icon_type: entity-picture
fill_container: false
- type: custom:mushroom-person-card
entity: person.kallen_stork
layout: vertical
icon_type: entity-picture
fill_container: false
- type: custom:streamline-card
template: main_button_name
variables:
name: Mobile Devices
icon: mdi:cellphone-information
navigation_path: /dashboard-mobile/mobile-devices
columns: '4'
- type: heading
icon: mdi:cctv
heading: Cameras
heading_style: title
- camera_view: auto
type: picture-glance
title: Front Porch
entities:
- entity: light.front_porch_light
- entity: alarm_control_panel.stratton_ave_alarm
- entity: sensor.front_doorbell_battery_mqtt
- entity: binary_sensor.front_doorbell_motion_mqtt
- entity: binary_sensor.exterior_doors
- entity: binary_sensor.windows
camera_image: camera.front_porch_ring
- camera_view: auto
type: picture-glance
entities: []
camera_image: camera.side_camera
title: Perry Street
visibility:
- condition: state
entity: camera.side_camera
state_not: unavailable
- type: heading
icon: mdi:calendar
heading: Calendar
heading_style: title
- entities:
- entity: calendar.family
label: mdi:human-male-female-child
color: green
accent_color: green
- entity: calendar.kallen_school_days
label: mdi:school
color: orange
accent_color: orange
- entity: calendar.tony_s_twitch_schedule
label: mdi:twitch
color: purple
accent_color: purple
- calendar.kallen_early_release
- calendar.tm24fan8_gmail_com
- calendar.irishpirate1988_gmail_com
- calendar.vacation
days_to_show: 5
week_separator_width: 1px
month_separator_width: 1px
today_indicator: dot
weekend_weekday_color: cyan
weekend_day_color: cyan
weekend_month_color: cyan
show_countdown: true
show_progress_bar: true
remove_location_country: true
weather:
position: both
date:
show_conditions: true
show_high_temp: true
show_low_temp: true
icon_size: 14px
font_size: 12px
color: var(--primary-text-color)
event:
show_conditions: true
show_temp: true
icon_size: 14px
font_size: 12px
color: var(--primary-text-color)
entity: weather.iron_nerd_weather_station
type: custom:calendar-card-pro
- type: grid
cards:
- type: heading
heading: Housewide
heading_style: title
icon: mdi:home-analytics
- type: custom:streamline-card
template: state_color_button_nav
variables:
- name: Security
- entity: binary_sensor.security_faults
- navigation_path: '#security'
- columns: 2
- color: error-color
- show_state: false
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: main_button_name
variables:
- name: Global Scenes
- icon: mdi:home-lightbulb-outline
- navigation_path: '#global-scenes'
- columns: 2
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: main_button_name
variables:
- name: Batteries
- icon: mdi:battery-charging
- navigation_path: '#batteries'
- columns: 2
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: main_button_name
variables:
- name: Messaging
- icon: mdi:bullhorn
- navigation_path: '#messaging'
- columns: 2
grid_options:
columns: 6
rows: auto
- type: custom:bubble-card
card_type: button
button_type: name
name: Rabbit
icon: mdi:rabbit
tap_action:
action: navigate
navigation_path: /dashboard-mobile/rabbit
button_action:
tap_action:
action: navigate
navigation_path: /dashboard-mobile/rabbit
columns: 2
card_mod:
style: |-
.is-unavailable {
opacity: 0.5 !important;
}
.bubble-button-background {
opacity: 1 !important;
background-color:
{% set feeding_reminders = states('counter.rabbit_feeding_reminder_count') | int %}
{% set cleaning_reminders = states('counter.rabbit_hutch_cleaning_reminder_count') | int %}
{% if feeding_reminders == 0 and cleaning_reminders == 0 %}
var(--bubble-main-background-color)
{% elif feeding_reminders < 3 and cleaning_reminders < 3 %}
var(--warning-color)
{% else %}
var(--error-color)
{% endif %}
!important;
transition: background-color 1s !important;
}
.bubble-icon {
color:
{% set feeding_reminders = states('counter.rabbit_feeding_reminder_count') | int %}
{% set cleaning_reminders = states('counter.rabbit_hutch_cleaning_reminder_count') | int %}
{% if feeding_reminders == 0 and cleaning_reminders == 0 %}
var(--bubble-main-icon-color)
{% elif feeding_reminders < 3 and cleaning_reminders < 3 %}
var(--warning-color)
{% else %}
var(--error-color)
{% endif %}
!important;
transition: color 1s !important;
- type: custom:streamline-card
template: main_button_name
variables:
- name: Home Feed
- icon: mdi:newspaper-variant
- navigation_path: '#homefeed'
- columns: 2
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: main_button_name
variables:
- name: Sports
- icon: mdi:football
- navigation_path: /dashboard-mobile/sports
- columns: 2
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: main_button_name
variables:
- name: Climate
- icon: mdi:home-thermometer
- navigation_path: /dashboard-mobile/climate
- columns: 2
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: main_button_name
variables:
- name: Running
- icon: mdi:database-clock
- navigation_path: '#running'
- columns: 2
grid_options:
columns: 6
rows: auto
visibility:
- condition: user
users:
- c3909d27048140729f002aaef0391775
- type: custom:streamline-card
template: main_button_name
variables:
- name: Go to Main Dashboard
- icon: mdi:navigation-variant
- navigation_path: /lovelace/default_view
- columns: 4
grid_options:
columns: 12
rows: auto
visibility:
- condition: screen
media_query: '(min-width: 0px) and (max-width: 767px)'
- type: heading
heading: Outside Info
heading_style: title
icon: mdi:chart-areaspline
- type: custom:streamline-card
template: main_button_name
variables:
- name: Gas Prices
- icon: mdi:gas-station
- navigation_path: '#gas-prices'
- columns: 2
grid_options:
columns: 6
rows: auto
- type: grid
cards:
- type: heading
heading: Personal
heading_style: title
icon: fas:person-shelter
- type: custom:bubble-card
card_type: button
button_type: name
name: Tony
sub_button: []
columns: 2
icon: mdi:human-male
tap_action:
action: navigate
navigation_path: /dashboard-mobile/tony
button_action:
tap_action:
action: navigate
navigation_path: /dashboard-mobile/tony
card_mod:
style: |
.is-unavailable {
opacity: 0.5 !important;
}
.bubble-button-background {
opacity: 1 !important;
background-color:
{% set counters = states.counter
| selectattr('entity_id','contains','tony')
| selectattr('entity_id','contains','meds')
| map(attribute='state')
| max
| int %}
{% if counters == 0 %}
var(--bubble-main-background-color)
{% elif counters < 3 %}
var(--warning-color)
{% else %}
var(--error-color)
{% endif %}
!important;
transition: background-color 1s !important;
}
.bubble-icon {
color:
{% set counters = states.counter
| selectattr('entity_id','contains','tony')
| selectattr('entity_id','contains','meds')
| map(attribute='state')
| max
| int %}
{% if counters == 0 %}
var(--bubble-main-icon-color)
{% elif counters < 3 %}
var(--warning-color)
{% else %}
var(--error-color)
{% endif %}
!important;
transition: color 1s !important;
}
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: custom:bubble-card
card_type: button
button_type: name
name: Tina
sub_button: []
columns: 2
icon: mdi:human-female
tap_action:
action: navigate
navigation_path: /dashboard-mobile/tina
button_action:
tap_action:
action: navigate
navigation_path: /dashboard-mobile/tina
card_mod:
style: |-
.is-unavailable {
opacity: 0.5 !important;
}
.bubble-button-background {
opacity: 1 !important;
background-color:
{% set counters = states.counter
| selectattr('entity_id','contains','tina')
| selectattr('entity_id','contains','meds')
| map(attribute='state')
| max
| int %}
{% if counters == 0 %}
var(--bubble-main-background-color)
{% elif counters < 3 %}
var(--warning-color)
{% else %}
var(--error-color)
{% endif %}
!important;
transition: background-color 1s !important;
}
.bubble-icon {
color:
{% set counters = states.counter
| selectattr('entity_id','contains','tina')
| selectattr('entity_id','contains','meds')
| map(attribute='state')
| max
| int %}
{% if counters == 0 %}
var(--bubble-main-icon-color)
{% elif counters < 3 %}
var(--warning-color)
{% else %}
var(--error-color)
{% endif %}
!important;
transition: color 1s !important;
}
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: custom:bubble-card
card_type: button
button_type: name
name: Kallen
sub_button: []
columns: 2
icon: mdi:human-child
tap_action:
action: navigate
navigation_path: /dashboard-mobile/kallen
button_action:
tap_action:
action: navigate
navigation_path: /dashboard-mobile/kallen
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- 879b4c04e32841b3ad1d2763a11b4e70
modules:
- default
card_mod:
style: |-
.is-unavailable {
opacity: 0.5 !important;
}
.bubble-button-background {
opacity: 1 !important;
background-color:
{% set counters = states.counter
| selectattr('entity_id','contains','kallen')
| selectattr('entity_id','contains','meds')
| map(attribute='state')
| max
| int %}
{% if counters == 0 %}
var(--bubble-main-background-color)
{% elif counters < 3 %}
var(--warning-color)
{% else %}
var(--error-color)
{% endif %}
!important;
transition: background-color 1s !important;
}
.bubble-icon {
color:
{% set counters = states.counter
| selectattr('entity_id','contains','kallen')
| selectattr('entity_id','contains','meds')
| map(attribute='state')
| max
| int %}
{% if counters == 0 %}
var(--bubble-main-icon-color)
{% elif counters < 3 %}
var(--warning-color)
{% else %}
var(--error-color)
{% endif %}
!important;
transition: color 1s !important;
}
- type: custom:bubble-card
card_type: button
button_type: name
name: Emma
sub_button: []
columns: 2
icon: mdi:bow-tie
tap_action:
action: navigate
navigation_path: /dashboard-mobile/emma
button_action:
tap_action:
action: navigate
navigation_path: /dashboard-mobile/emma
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: var(--bubble-main-background-color) !important;
}
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: custom:bubble-card
card_type: button
button_type: state
entity: timer.kallen_timer
columns: 4
visibility:
- condition: user
users:
- 879b4c04e32841b3ad1d2763a11b4e70
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: var(--bubble-main-background-color) !important;
}
show_attribute: false
tap_action:
action: navigate
navigation_path: /dashboard-mobile/kallen-timer
double_tap_action:
action: none
hold_action:
action: none
button_action:
tap_action:
action: navigate
navigation_path: /dashboard-mobile/kallen-timer
double_tap_action:
action: none
hold_action:
action: none
- type: grid
cards:
- type: heading
heading: Areas
heading_style: title
icon: hue:downstairs
- type: custom:streamline-card
template: floors_separator
variables:
- name: Outdoors
- icon: hue:room-outdoors
- power_entity: sensor.outside_lights_power_sensor
- lights_entity: light.outside_lights
- type: custom:streamline-card
template: main_button_outdoors
variables:
- name: Front Porch
- icon: hue:room-porch
- navigation_path: '#front-porch'
- occupancy_entity: binary_sensor.front_doorbell_motion_mqtt
- temp_entity: sensor.home_tempest_temperature
- lux_entity: sensor.home_tempest_illuminance
- type: custom:streamline-card
template: floors_separator
variables:
name: Basement
icon: mdi:home-floor-b
power_entity: sensor.basement_total_power_sensor
lights_entity: light.basement_lights
floor_lights_count: sensor.basement_lights_on
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Basement Studio
- icon: mdi:twitch
- navigation_path: '#basement-studio'
- occupancy_entity: binary_sensor.basement_occupied
- temp_entity: sensor.basement_studio_temperature
- lux_entity: sensor.basement_studio_illuminance
- hot_entity: binary_sensor.basement_studio_hot
- cold_entity: binary_sensor.basement_studio_cold
- type: custom:streamline-card
template: floors_separator
variables:
name: First Floor
icon: mdi:home-floor-1
power_entity: sensor.first_floor_total_power_sensor
lights_entity: light.first_floor_lights
floor_lights_count: sensor.first_floor_lights_on
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Living Room
- icon: mdi:sofa
- navigation_path: '#living-room'
- occupancy_entity: binary_sensor.living_room_occupied
- temp_entity: sensor.living_room_front_temperature
- lux_entity: sensor.living_room_front_illuminance
- hot_entity: binary_sensor.living_room_hot
- cold_entity: binary_sensor.living_room_cold
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Tina Desk
- icon: mdi:desk
- navigation_path: '#tina-desk'
- occupancy_entity: binary_sensor.tina_desk_occupied
- temp_entity: sensor.living_room_back_temperature
- lux_entity: sensor.living_room_back_illuminance
- hot_entity: binary_sensor.living_room_back_hot
- cold_entity: binary_sensor.living_room_back_cold
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Stairwell
- icon: mdi:stairs
- navigation_path: '#stairwell'
- occupancy_entity: binary_sensor.stairwell_occupied
- temp_entity: sensor.stairwell_bottom_temperature
- lux_entity: sensor.stairwell_bottom_illuminance
- hot_entity: binary_sensor.stairwell_bottom_hot
- cold_entity: binary_sensor.stairwell_bottom_cold
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Downstairs Bathroom
- icon: mdi:toilet
- navigation_path: '#downstairs-bathroom'
- occupancy_entity: binary_sensor.downstairs_bathroom_occupied
- temp_entity: sensor.downstairs_bathroom_temperature
- lux_entity: sensor.downstairs_bathroom_illuminance
- hot_entity: binary_sensor.downstairs_bathroom_hot
- cold_entity: binary_sensor.downstairs_bathroom_cold
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Mud Room
- icon: hue:room-other
- navigation_path: '#mud-room'
- occupancy_entity: binary_sensor.mud_room_occupied
- temp_entity: sensor.mud_room_temperature
- lux_entity: sensor.mud_room_illuminance
- hot_entity: binary_sensor.mud_room_hot
- cold_entity: binary_sensor.mud_room_cold
- type: custom:bubble-card
card_type: button
button_type: name
name: Kitchen
icon: hue:room-kitchen
tap_action:
action: navigate
navigation_path: '#kitchen'
button_action:
tap_action:
action: navigate
navigation_path: '#kitchen'
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: var(--bubble-main-background-color) !important;
}
- type: custom:streamline-card
template: floors_separator
variables:
name: Second Floor
icon: mdi:home-floor-2
power_entity: sensor.second_floor_total_power_sensor
lights_entity: light.second_floor_lights
floor_lights_count: sensor.second_floor_lights_on
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Upstairs Hallway
- icon: hue:ceiling-round
- navigation_path: '#upstairs-hallway'
- occupancy_entity: binary_sensor.upstairs_hallway_occupied
- temp_entity: sensor.stairwell_top_temperature
- lux_entity: sensor.stairwell_top_illuminance
- hot_entity: binary_sensor.stairwell_top_hot
- cold_entity: binary_sensor.stairwell_top_cold
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Upstairs Bathroom
- icon: mdi:toilet
- navigation_path: '#upstairs-bathroom'
- occupancy_entity: binary_sensor.upstairs_bathroom_occupied
- temp_entity: sensor.upstairs_bathroom_temperature
- lux_entity: sensor.upstairs_bathroom_illuminance
- hot_entity: binary_sensor.upstairs_bathroom_hot
- cold_entity: binary_sensor.upstairs_bathroom_cold
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Master Bedroom
- icon: mdi:bed
- navigation_path: '#master-bedroom'
- occupancy_entity: binary_sensor.master_bedroom_occupied
- temp_entity: sensor.master_bedroom_temperature
- lux_entity: sensor.master_bedroom_illuminance
- hot_entity: binary_sensor.master_bedroom_hot
- cold_entity: binary_sensor.master_bedroom_cold
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Kallen Bedroom
- icon: mdi:bunk-bed
- navigation_path: '#kallen-bedroom'
- occupancy_entity: binary_sensor.kallen_bedroom_occupied
- temp_entity: sensor.kallen_bedroom_temperature
- lux_entity: sensor.kallen_bedroom_illuminance
- hot_entity: binary_sensor.kallen_bedroom_hot
- cold_entity: binary_sensor.kallen_bedroom_cold
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Emma Bedroom
- icon: hue:room-nursery
- navigation_path: '#emma-bedroom'
- occupancy_entity: binary_sensor.emma_bedroom_occupied
- temp_entity: sensor.emma_bedroom_temperature
- lux_entity: sensor.emma_bedroom_illuminance
- hot_entity: binary_sensor.emma_bedroom_hot
- cold_entity: binary_sensor.emma_bedroom_cold
- type: grid
cards:
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#front-porch'
button_type: slider
entity: light.front_porch_light
name: Front Porch
icon: hue:room-porch
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
sub_button:
- entity: input_select.front_porch_scenes
name: Scenes
tap_action:
action: toggle
icon: mdi:palette
- entity: input_boolean.front_porch_light_on
name: Motion Lighting
icon: mdi:motion-sensor
tap_action:
action: toggle
modules:
- default
- type: custom:bubble-card
card_type: separator
name: Modes
icon: mdi:toggle-switch
modules:
- default
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
name: Storm Mode
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
hold_action:
action: more-info
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: ${state === 'on' ? 'var(--accent-color)' : 'var(--background-color-2)'} !important;
}
modules:
- default
entity: switch.front_porch_storm_mode
show_state: true
tap_action:
action: toggle
- type: custom:bubble-card
card_type: empty-column
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
modules:
- default
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: state
entity: binary_sensor.front_doorbell_motion_mqtt
name: Motion
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: ${state === 'on' ? 'var(--accent-color)' : 'var(--background-color-2)'} !important;
}
modules:
- default
- type: custom:bubble-card
card_type: button
button_type: state
entity: binary_sensor.front_doorbell_ding
name: Ding
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: ${state === 'on' ? 'var(--success-color)' : 'var(--background-color-2)'} !important;
}
modules:
- default
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: state
name: Lux
modules:
- default
entity: sensor.home_tempest_illuminance
- type: custom:bubble-card
card_type: empty-column
- type: custom:streamline-card
template: popup_timer_card
variables:
name: Lights Timer
entity: timer.front_porch_motion_timer
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#basement-studio'
button_type: slider
entity: light.basement_studio_lights
name: Basement Studio
icon: mdi:twitch
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: call-service
service: input_select.select_option
target:
entity_id: input_select.basement_studio_scenes
data:
option: Adaptive
hold_action:
action: more-info
sub_button:
- entity: input_select.basement_studio_scenes
show_name: false
name: Scenes
show_state: false
show_last_changed: false
tap_action:
action: toggle
icon: mdi:palette
styles: ''
modules:
- default
- type: custom:bubble-card
card_type: separator
name: Lights
icon: mdi:lightbulb
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.basement_led_strip_1
show_attribute: true
show_state: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
icon: hue:lightstrip
name: LED Strip 1
styles: >-
${icon.setAttribute("icon", state === 'off' ?
'hue:lightstrip-off' : 'hue:lightstrip')}
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.basement_stairwell
name: Stairwell
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
styles: >-
${icon.setAttribute("icon", state === 'off' ?
'hue:floor-shade-off' : 'hue:floor-shade')}
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.basement_short_lamp
show_attribute: true
show_state: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
name: Short Lamp
styles: >-
${icon.setAttribute("icon", state === 'off' ?
'hue:floor-shade-off' : 'hue:floor-shade')}
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.basement_tall_lamp
name: Tall Lamp
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
styles: >-
${icon.setAttribute("icon", state === 'off' ?
'hue:floor-shade-off' : 'hue:floor-shade')}
- type: custom:bubble-card
card_type: separator
name: Media
icon: mdi:volume-high
- type: custom:bubble-card
card_type: media-player
entity: media_player.basement_tv
name: TV
show_state: true
show_last_changed: false
show_attribute: true
attribute: app_name
force_icon: false
hide:
play_pause_button: false
volume_button: false
power_button: false
- type: custom:bubble-card
card_type: separator
name: Environment
icon: mdi:thermometer
- type: conditional
conditions:
- condition: state
entity: input_boolean.basement_studio_heat_allowed
state: 'on'
card:
type: custom:bubble-card
card_type: climate
sub_button:
- entity: climate.basement_studio_vtherm
select_attribute: hvac_modes
name: HVAC modes menu
state_background: true
- name: Presets menu
select_attribute: preset_modes
state_background: false
show_arrow: true
name: Thermostat
entity: climate.basement_studio_vtherm
state_color: false
visibility:
- condition: state
entity: input_boolean.basement_studio_heat_allowed
state: 'on'
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
entity: fan.basement_fan
name: Fan
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
modules:
- badgy-condition-helper
badgy-condition-helper:
icon_effects:
main_icon:
effect: spin-360
condition:
- condition: state
entity_id: fan.basement_fan
state: 'on'
- type: custom:bubble-card
card_type: button
button_type: switch
entity: input_boolean.white_noise_basement
name: White Noise
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
- type: custom:bubble-card
card_type: separator
name: Modes
icon: mdi:toggle-switch
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
entity: input_boolean.studio_quiet
name: Studio Quiet
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
button_type: switch
modules:
- default
- type: custom:bubble-card
card_type: button
button_type: switch
entity: input_boolean.gaming_mode
name: Gaming Mode
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
entity: input_boolean.do_not_enter_basement_studio
name: Do Not Enter
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
button_type: switch
modules:
- default
- type: custom:bubble-card
card_type: button
name: Recliner Mode
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
button_type: switch
modules:
- default
entity: input_boolean.recliner_mode
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_temperature_button
variables:
- name: Temp
- entity: sensor.basement_studio_temperature
- hot_entity: binary_sensor.basement_studio_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.basement_studio_illuminance
name: Lux
show_state: true
tap_action:
action: more-info
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: state_color_button
variables:
- name: Motion
- entity: binary_sensor.basement_studio_motion
- color: accent-color
- type: custom:streamline-card
template: state_color_button
variables:
- name: Occupied
- entity: binary_sensor.basement_occupied
- color: accent-color
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Door Timer
- entity: timer.basement_studio_door_timer
- type: grid
cards:
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#living-room'
button_type: slider
entity: light.living_room_lights
show_state: true
show_attribute: true
attribute: brightness
icon: hue:room-living
tap_action:
action: toggle
double_tap_action:
action: call-service
service: input_select.select_option
target:
entity_id: input_select.living_room_scenes
data:
option: Adaptive
hold_action:
action: more-info
name: Living Room
sub_button:
- entity: select.basement_led_strip_1_theme
name: LED Strip Scenes
tap_action:
action: toggle
show_name: false
icon: hue:lightstrip
- entity: input_select.living_room_scenes
name: Scenes
tap_action:
action: toggle
show_name: false
icon: mdi:palette
- type: custom:bubble-card
card_type: separator
name: Lights
icon: mdi:lightbulb
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.living_room_overhead
name: Overhead
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.living_room_led_strip
name: LED Strip
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
icon: hue:lightstrip
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
entity: light.christmas_tree
name: Tree
show_state: true
show_attribute: false
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
icon: mdi:pine-tree
button_action:
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
visibility:
- condition: or
conditions:
- condition: state
entity: light.christmas_tree
state_not: unavailable
- type: custom:bubble-card
card_type: button
button_type: switch
entity: light.christmas_lights_front_window
name: Window
show_state: true
show_attribute: false
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
icon: mdi:string-lights
button_action:
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
visibility:
- condition: or
conditions:
- condition: state
entity: light.christmas_lights_front_window
state_not: unavailable
visibility:
- condition: or
conditions:
- condition: state
entity: light.christmas_tree
state_not: unavailable
- condition: state
entity: light.christmas_lights_front_window
state_not: unavailable
- type: custom:bubble-card
card_type: separator
name: Media
icon: mdi:volume-high
- type: custom:bubble-card
card_type: media-player
entity: media_player.living_room_tv
name: TV
show_state: true
show_last_changed: false
show_attribute: true
attribute: app_id
force_icon: false
hide:
play_pause_button: false
volume_button: false
power_button: false
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_temperature_button
variables:
name: Front Temp
entity: sensor.living_room_front_temperature
hot_entity: binary_sensor.living_room_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.living_room_front_illuminance
name: Front Lux
show_attribute: false
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_temperature_button
variables:
name: Back Temp
entity: sensor.living_room_back_temperature
hot_entity: binary_sensor.living_room_back_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.living_room_back_illuminance
name: Back Lux
show_attribute: false
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: state_color_button
variables:
name: Front Motion
entity: binary_sensor.living_room_front_motion
color: accent-color
- type: custom:streamline-card
template: state_color_button
variables:
name: Back Motion
entity: binary_sensor.living_room_back_motion
color: accent-color
- type: custom:streamline-card
template: state_color_button
variables:
name: Occupied
entity: binary_sensor.living_room_occupied
color: accent-color
- type: custom:streamline-card
template: popup_timer_card
variables:
name: Lights Timer
entity: timer.living_room_motion_timer
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Door
entity: binary_sensor.front_door
color: error-color
- type: custom:bubble-card
card_type: empty-column
- type: custom:bubble-card
card_type: empty-column
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Front 1
entity: binary_sensor.front_window_1
color: error-color
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Front 2
entity: binary_sensor.front_window_2
color: error-color
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Front 3
entity: binary_sensor.front_window_3
color: error-color
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Side 1
entity: binary_sensor.side_window_1
color: error-color
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Side 2
entity: binary_sensor.side_window_2
color: error-color
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Side 3
entity: binary_sensor.side_window_3
color: error-color
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Side 4
entity: binary_sensor.side_window_4
color: error-color
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Back 1
entity: binary_sensor.back_window_1
color: error-color
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Back 2
entity: binary_sensor.back_window_2
color: error-color
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#downstairs-bathroom'
button_type: slider
entity: light.downstairs_bathroom_lights
name: Downstairs Bathroom
icon: mdi:toilet
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: call-service
service: input_select.select_option
target:
entity_id: input_select.downstairs_bathroom_scenes
data:
option: Adaptive
hold_action:
action: more-info
sub_button:
- entity: input_select.downstairs_bathroom_scenes
name: Scenes
tap_action:
action: toggle
show_name: false
icon: mdi:palette
- entity: switch.downstairs_bathroom_motion_lighting
name: Motion Lighting
tap_action:
action: toggle
- type: custom:bubble-card
card_type: separator
name: Laundry
icon: mdi:tshirt-crew
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
entity: timer.washer_timer
button_type: state
name: Washer
show_attribute: false
- type: custom:bubble-card
card_type: button
entity: timer.dryer_timer
button_type: state
name: Dryer
show_attribute: false
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_temperature_button
variables:
- name: Temp
- entity: sensor.downstairs_bathroom_temperature
- hot_entity: binary_sensor.downstairs_bathroom_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.downstairs_bathroom_illuminance
name: Lux
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: state_color_button
variables:
- name: Motion
- entity: binary_sensor.downstairs_bathroom_motion
- color: accent-color
- type: custom:streamline-card
template: state_color_button
variables:
- name: Occupied
- entity: binary_sensor.downstairs_bathroom_occupied
- color: accent-color
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Back
entity: binary_sensor.downstairs_bathroom_window_1
color: error-color
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Side
entity: binary_sensor.downstairs_bathroom_window_2
color: error-color
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.downstairs_bathroom_lights_timer
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#tina-desk'
button_type: slider
entity: light.tina_desk_lights
name: Tina Desk
icon: mdi:desk
show_last_changed: false
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: call-service
service: input_select.select_option
target:
entity_id: input_select.tina_desk_scenes
data:
option: Reset
hold_action:
action: more-info
sub_button:
- entity: input_select.tina_desk_scenes
name: Scenes
tap_action:
action: toggle
show_name: false
icon: mdi:palette
- type: custom:bubble-card
card_type: separator
name: Lights
icon: mdi:lightbulb
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.tina_lamp_top
name: Lamp Top
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.tina_lamp_side
name: Lamp Side
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#kitchen'
button_type: name
name: Kitchen (No Lights)
icon: hue:room-kitchen
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Big Window
entity: binary_sensor.kitchen_big_window
color: error-color
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Sink Window
entity: binary_sensor.kitchen_sink_window
color: error-color
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#mud-room'
button_type: slider
entity: light.mud_room_overhead
name: Mud Room
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
hold_action:
action: more-info
double_tap_action:
action: call-service
service: input_select.select_option
target:
entity_id: input_select.mud_room_scenes
data:
option: Adaptive
sub_button:
- entity: input_select.mud_room_scenes
name: Scenes
tap_action:
action: toggle
show_name: false
icon: mdi:palette
- entity: switch.mud_room_motion_lighting
name: Motion Lighting
tap_action:
action: toggle
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_temperature_button
variables:
- name: Temp
- entity: sensor.mud_room_temperature
- hot_entity: binary_sensor.mud_room_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.mud_room_illuminance
name: Lux
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: state_color_button
variables:
- name: Motion
- entity: binary_sensor.mud_room_motion
- color: accent-color
- type: custom:streamline-card
template: state_color_button
variables:
- name: Occupied
- entity: binary_sensor.mud_room_occupied
- color: accent-color
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Back Door
entity: binary_sensor.back_door
color: error-color
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Window
entity: binary_sensor.mud_room_window
color: error-color
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.mud_room_motion_timer
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#stairwell'
button_type: slider
entity: light.stairwell_led_strip
name: Stairwell
icon: mdi:stairs
show_last_changed: false
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
service: script.stairwell_led_strip
service_data:
brightness: reset
target: {}
action: none
hold_action:
action: more-info
sub_button:
- entity: switch.stairwell_motion_lighting
name: Motion Lighting
tap_action:
action: toggle
modules:
- default
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_temperature_button
variables:
- name: Temp
- entity: sensor.stairwell_bottom_temperature
- hot_entity: binary_sensor.stairwell_bottom_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.stairwell_bottom_illuminance
name: Lux
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: state_color_button
variables:
- name: Motion
- entity: binary_sensor.stairwell_bottom_motion
- color: accent-color
- type: custom:streamline-card
template: state_color_button
variables:
- name: Occupied
- entity: binary_sensor.stairwell_occupied
- color: accent-color
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Window
entity: binary_sensor.stairway_window_lower
color: error-color
- type: custom:bubble-card
card_type: empty-column
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.stairwell_motion_timer
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.upstairs_hallway_motion_timer
- type: grid
cards:
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#upstairs-hallway'
button_type: slider
entity: light.hallway_overhead
name: Upstairs Hallway
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: call-service
service: input_select.select_option
target:
entity_id: input_select.upstairs_hallway_scenes
data:
option: Adaptive
hold_action:
action: more-info
sub_button:
- entity: input_select.upstairs_hallway_scenes
name: Scenes
tap_action:
action: toggle
show_name: false
icon: mdi:palette
modules:
- default
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_temperature_button
variables:
- name: Temp
- entity: sensor.stairwell_top_temperature
- hot_entity: binary_sensor.stairwell_top_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.stairwell_top_illuminance
name: Lux
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: state_color_button
variables:
- name: Motion
- entity: binary_sensor.stairwell_top_motion
- color: accent-color
- type: custom:streamline-card
template: state_color_button
variables:
- name: Occupied
- entity: binary_sensor.upstairs_hallway_occupied
- color: accent-color
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.upstairs_hallway_motion_timer
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.stairwell_motion_timer
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#upstairs-bathroom'
button_type: slider
entity: light.upstairs_bathroom_lights
name: Upstairs Bathroom
icon: mdi:toilet
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: call-service
service: input_select.select_option
target:
entity_id: input_select.upstairs_bathroom_scenes
data:
option: Adaptive
hold_action:
action: more-info
sub_button:
- entity: input_select.upstairs_bathroom_scenes
name: Scenes
tap_action:
action: toggle
show_name: false
icon: mdi:palette
- entity: switch.upstairs_bathroom_motion_lighting
name: Motion Lighting
tap_action:
action: toggle
hold_action:
action: more-info
- type: custom:bubble-card
card_type: separator
name: Modes
icon: mdi:toggle-switch
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
entity: input_boolean.shower_mode
name: Shower Mode
show_last_changed: false
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
- type: custom:bubble-card
card_type: empty-column
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_temperature_button
variables:
- name: Temp
- entity: sensor.upstairs_bathroom_temperature
- hot_entity: binary_sensor.upstairs_bathroom_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.upstairs_bathroom_illuminance
name: Lux
show_attribute: false
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: state_color_button
variables:
- name: Motion
- entity: binary_sensor.upstairs_bathroom_motion
- color: accent-color
- type: custom:streamline-card
template: state_color_button
variables:
- name: Occupied
- entity: binary_sensor.upstairs_bathroom_occupied
- color: accent-color
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.upstairs_bathroom_motion_timer
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Shower Mode Cooldown
- entity: timer.shower_mode_cooldown
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#master-bedroom'
button_type: slider
entity: light.master_bedroom_lights
name: Master Bedroom
icon: mdi:bed
show_last_changed: false
show_attribute: true
show_state: true
attribute: brightness
tap_action:
action: toggle
hold_action:
action: more-info
double_tap_action:
action: call-service
service: input_select.select_option
target:
entity_id: input_select.master_bedroom_scenes
data:
option: Adaptive
sub_button:
- entity: input_select.master_bedroom_scenes
name: Scenes
tap_action:
action: toggle
show_name: false
icon: mdi:palette
- entity: switch.master_bedroom_motion_lighting
name: Motion Lighting
icon: mdi:motion-sensor
tap_action:
action: toggle
modules:
- default
- type: custom:bubble-card
card_type: separator
name: Lights
icon: mdi:lightbulb
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.master_bedroom_front
name: Front
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.master_bedroom_side
name: Side
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.master_bedroom_closet
name: Closet
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
icon: hue:bulb-sultan
- type: custom:bubble-card
card_type: empty-column
- type: custom:bubble-card
card_type: separator
name: Modes
icon: mdi:toggle-switch
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
entity: input_boolean.master_bedroom_sleeping
name: Sleeping
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
- type: custom:bubble-card
card_type: empty-column
- type: custom:bubble-card
card_type: separator
name: Environment
icon: mdi:thermometer
- type: conditional
conditions:
- condition: state
entity: input_boolean.master_bedroom_aircon_installed
state: 'on'
card:
type: vertical-stack
cards:
- type: custom:bubble-card
card_type: climate
sub_button:
- select_attribute: hvac_modes
name: HVAC modes menu
state_background: true
- name: Presets menu
select_attribute: preset_modes
state_background: false
show_arrow: true
name: Thermostat
entity: climate.master_bedroom_aircon
state_color: false
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: state
entity: binary_sensor.master_bedroom_aircon_compressor
name: Compressor
show_attribute: false
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: ${state === 'on' ? 'var(--accent-color)' : 'var(--background-color-2)'} !important;
}
- type: custom:bubble-card
card_type: button
button_type: state
entity: binary_sensor.master_bedroom_aircon_filter_alert
name: Filter
show_attribute: false
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
styles: |-
.is-unavailable {
opacity: 0.5 !important;
}
.bubble-button-background {
opacity: 1 !important;
background-color: ${state === 'on' ? 'var(--error-color)' : 'var(--background-color-2)'} !important;
transition: background-color 1s !important;
}
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
entity: fan.master_bedroom_fan
name: Fan
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
modules:
- badgy-condition-helper
badgy-condition-helper:
icon_effects:
main_icon:
effect: spin-360
condition:
- condition: state
entity_id: fan.master_bedroom_fan
state: 'on'
- type: custom:bubble-card
card_type: empty-column
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_temperature_button
variables:
- name: Temp
- entity: sensor.master_bedroom_temperature
- hot_entity: binary_sensor.master_bedroom_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.master_bedroom_illuminance
name: Lux
show_attribute: false
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: state_color_button
variables:
- name: Motion
- entity: binary_sensor.master_bedroom_motion
- color: accent-color
- type: custom:streamline-card
template: state_color_button
variables:
- name: Occupied
- entity: binary_sensor.master_bedroom_occupied
- color: accent-color
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.master_bedroom_motion_timer
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Shower Mode Cooldown
- entity: timer.shower_mode_cooldown
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#kallen-bedroom'
button_type: slider
entity: light.kallen_bedroom_lights
name: Kallen Bedroom
icon: mdi:bunk-bed
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
hold_action:
action: more-info
double_tap_action:
action: call-service
service: input_select.select_option
target:
entity_id: input_select.kallen_bedroom_scenes
data:
option: Adaptive
sub_button:
- entity: input_select.kallen_bedroom_scenes
name: Scenes
tap_action:
action: toggle
show_name: false
icon: mdi:palette
- entity: switch.kallen_bedroom_motion_lighting
name: Motion Lighting
tap_action:
action: toggle
- type: custom:bubble-card
card_type: separator
name: Lights
icon: mdi:lightbulb
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.kallen_bedroom_overhead
name: Overhead
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.kallen_bedroom_wall
name: Wall
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
- type: custom:bubble-card
card_type: separator
name: Modes
icon: mdi:toggle-switch
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
entity: input_boolean.kallen_sleeping
name: Sleeping
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
- type: custom:bubble-card
card_type: empty-column
- type: custom:bubble-card
card_type: separator
name: Environment
icon: mdi:thermometer
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
entity: fan.kallen_bedroom_fan
name: Fan
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
modules:
- badgy-condition-helper
badgy-condition-helper:
icon_effects:
main_icon:
effect: spin-360
condition:
- condition: state
entity_id: fan.kallen_bedroom_fan
state: 'on'
- type: custom:bubble-card
card_type: button
button_type: switch
entity: input_boolean.white_noise_kallen_bedroom
name: White Noise
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_temperature_button
variables:
- name: Temp
- entity: sensor.kallen_bedroom_temperature
- hot_entity: binary_sensor.kallen_bedroom_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.kallen_bedroom_illuminance
name: Lux
show_attribute: false
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: state_color_button
variables:
- name: Motion
- entity: binary_sensor.kallen_bedroom_motion
- color: accent-color
- type: custom:streamline-card
template: state_color_button
variables:
- name: Occupied
- entity: binary_sensor.kallen_bedroom_occupied
- color: accent-color
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.kallen_bedroom_motion_timer
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#emma-bedroom'
button_type: slider
entity: light.emma_bedroom_light
name: Emma Bedroom
icon: hue:room-nursery
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: call-service
service: input_select.select_option
target:
entity_id: input_select.emma_bedroom_scenes
data:
option: Adaptive
hold_action:
action: more-info
sub_button:
- entity: input_select.emma_bedroom_scenes
name: Scenes
tap_action:
action: toggle
show_name: false
icon: mdi:palette
- entity: switch.emma_bedroom_motion_lighting
name: Motion Lighting
tap_action:
action: toggle
hold_action:
action: more-info
modules:
- default
- type: custom:bubble-card
card_type: separator
name: Modes
icon: mdi:toggle-switch
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
entity: input_boolean.emma_sleeping
name: Sleeping
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
- type: custom:bubble-card
card_type: empty-column
- type: custom:bubble-card
card_type: separator
name: Environment
icon: mdi:thermometer
modules:
- default
- type: conditional
conditions:
- condition: state
entity: input_boolean.emma_bedroom_aircon_installed
state: 'on'
card:
type: vertical-stack
cards:
- type: custom:bubble-card
card_type: climate
sub_button:
- select_attribute: hvac_modes
name: HVAC modes menu
state_background: true
- name: Presets menu
select_attribute: preset_modes
state_background: false
show_arrow: true
name: Thermostat
entity: climate.emma_bedroom_aircon
state_color: false
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: state
entity: binary_sensor.emma_bedroom_aircon_compressor
name: Compressor
show_attribute: false
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: ${state === 'on' ? 'var(--accent-color)' : 'var(--background-color-2)'} !important;
}
- type: custom:bubble-card
card_type: button
button_type: state
entity: binary_sensor.emma_bedroom_aircon_filter_alert
name: Filter
show_attribute: false
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
styles: |-
.is-unavailable {
opacity: 0.5 !important;
}
.bubble-button-background {
opacity: 1 !important;
background-color: ${state === 'on' ? 'var(--error-color)' : 'var(--background-color-2)'} !important;
transition: background-color 1s !important;
}
- type: conditional
conditions:
- condition: state
entity: input_boolean.emma_bedroom_heater_installed
state: 'on'
card:
type: custom:bubble-card
card_type: climate
sub_button:
- select_attribute: hvac_modes
name: HVAC modes menu
state_background: true
- name: Presets menu
select_attribute: preset_modes
state_background: false
show_arrow: true
name: Thermostat
entity: climate.emma_bedroom_vtherm
state_color: false
modules:
- default
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
entity: input_boolean.white_noise_emma_bedroom
name: White Noise
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
modules:
- default
- type: custom:bubble-card
card_type: button
modules:
- default
entity: switch.emma_bedroom_climate_watchdog
name: Climate Watchdog
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
double_tap_action:
action: none
button_action:
double_tap_action:
action: none
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
modules:
- default
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_temperature_button
variables:
- name: Temp
- entity: sensor.emma_bedroom_temperature
- hot_entity: binary_sensor.emma_bedroom_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.emma_bedroom_illuminance
name: Lux
show_attribute: false
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: state_color_button
variables:
- name: Motion
- entity: binary_sensor.emma_bedroom_motion
- color: accent-color
- type: custom:streamline-card
template: state_color_button
variables:
- name: Occupied
- entity: binary_sensor.emma_bedroom_occupied
- color: accent-color
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.emma_bedroom_motion_timer
- type: grid
cards:
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#security'
button_type: state
entity: binary_sensor.security_faults
name: Security Overview
show_attribute: false
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
styles: |-
.is-unavailable {
opacity: 0.5 !important;
}
.bubble-button-background {
opacity: 1 !important;
background-color: ${state === 'on' ? 'var(--error-color)' : 'var(--background-color-2)'} !important;
transition: background-color 1s !important;
}
- type: custom:bubble-card
card_type: separator
name: Doors
styles: >-
${icon.setAttribute("icon",
hass.states['binary_sensor.exterior_doors'].state === 'on' ?
'mdi.door_open' : 'mdi:door-closed')}
icon: mdi:door
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Front
- entity: binary_sensor.front_door
- color: error-color
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Back
- entity: binary_sensor.back_door
- color: error-color
- type: custom:bubble-card
card_type: separator
name: Living Room
icon: hue:room-living
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Front 1
- entity: binary_sensor.front_window_1
- color: error-color
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Front 2
- entity: binary_sensor.front_window_2
- color: error-color
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Front 3
- entity: binary_sensor.front_window_3
- color: error-color
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Side 1
- entity: binary_sensor.side_window_1
- color: error-color
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Side 2
- entity: binary_sensor.side_window_2
- color: error-color
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Side 3
- entity: binary_sensor.side_window_3
- color: error-color
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Side 4
- entity: binary_sensor.side_window_4
- color: error-color
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Back 1
- entity: binary_sensor.back_window_1
- color: error-color
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Back 2
- entity: binary_sensor.back_window_2
- color: error-color
- type: custom:bubble-card
card_type: separator
name: Stairwell
icon: mdi:stairs
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Window
- entity: binary_sensor.stairway_window_lower
- color: error-color
- type: custom:bubble-card
card_type: empty-column
- type: custom:bubble-card
card_type: separator
name: Kitchen
icon: hue:room-kitchen
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Big
- entity: binary_sensor.kitchen_big_window
- color: error-color
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Sink
- entity: binary_sensor.kitchen_sink_window
- color: error-color
- type: custom:bubble-card
card_type: separator
name: Mud Room
icon: hue:room-other
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Window
- entity: binary_sensor.mud_room_window
- color: error-color
- type: custom:bubble-card
card_type: empty-column
- type: custom:bubble-card
card_type: separator
name: Downstairs Bathroom
icon: mdi:toilet
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Back
- entity: binary_sensor.downstairs_bathroom_window_1
- color: error-color
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Side
- entity: binary_sensor.downstairs_bathroom_window_2
- color: error-color
- type: custom:bubble-card
card_type: separator
name: Upstairs Hallway
icon: hue:ceiling-round
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Window
- entity: binary_sensor.stairway_window_upper
- color: error-color
- type: custom:bubble-card
card_type: empty_column
- type: custom:bubble-card
card_type: separator
name: Upstairs Bathroom
icon: mdi:toilet
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Window
- entity: binary_sensor.upstairs_bathroom_window
- color: error-color
- type: custom:bubble-card
card_type: empty_column
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#messaging'
button_type: name
name: Messaging
icon: mdi:bullhorn
- type: custom:bubble-card
card_type: separator
name: Premade
- type: entities
entities:
- entity: script.dinner_is_ready
name: Dinner Is Ready
icon: mdi:bullhorn
- entity: script.we_are_leaving
name: We Are Leaving
icon: mdi:bullhorn
- entity: script.birthday_announcement
name: Birthday Announcement
icon: mdi:bullhorn
- entity: script.server_maintenance_annc
name: Server Maintenance
icon: mdi:bullhorn
- entity: script.server_maintenance_done_annc
name: Server Maintenance Done
icon: mdi:bullhorn
- entity: script.speech_engine
name: Speech Engine
icon: mdi:bullhorn
- type: custom:bubble-card
card_type: separator
name: Custom
- type: custom:tabbed-card
styles:
'--mdc-theme-primary': null
'--mdc-tab-text-label-color-default': null
'--mdc-typography-button-font-size': null
tabs:
- card:
type: entities
entities:
- entity: input_text.tts_message
name: Message
- entity: input_select.tts_devices
name: Devices
- entity: input_select.announcement_voice
- entity: button.send_alexa_message
name: Send Message
title: House Announcement System
attributes:
label: TTS
icon: mdi:volume-high
- card:
type: entities
title: Text Notification System
entities:
- entity: input_select.select_phones
- entity: input_select.select_tvs
- entity: input_text.text_notification_title
name: Title
- entity: input_text.text_notification
name: Body
- entity: input_select.text_notification_priority_level
name: Priority Level (Only works for phones)
- entity: button.send_text_notification
name: Send
show_header_toggle: false
state_color: false
attributes:
label: Text Notify
icon: mdi:text
- card:
type: entities
entities:
- entity: input_text.report_system
name: Description
- entity: input_select.report_type
name: Report Type
- entity: button.send_report
title: Report System
show_header_toggle: false
state_color: false
attributes:
label: Reports
icon: mdi:bug
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#batteries'
button_type: name
name: Batteries
icon: mdi:battery-charging
modules:
- default
- type: custom:battery-state-card
sort_by_level: asc
bulk_rename:
- from: Battery
to: ''
- from: Stratton Ave
to: ''
- from: Dimmer Switch
to: ''
- from: Home Tempest Cloud Sensors
to: Tempest Weather Station
collapse:
- name: 'Door Sensors (min: {min}%, count: {count})'
secondary_info: Battery levels {range}%
icon: mdi:door
entities:
- sensor.front_door_battery
- sensor.back_door_battery
- sensor.basement_studio_door_battery
- sensor.emma_bedroom_door_battery
- name: 'Window Sensors (min: {min}%, count: {count})'
secondary_info: Battery levels {range}%
icon: mdi:window-closed
entities:
- sensor.front_window_battery_1
- sensor.front_window_battery_2
- sensor.front_window_battery_3
- sensor.side_window_1_battery
- sensor.side_window_2_battery
- sensor.side_window_3_battery
- sensor.side_window_4_battery
- sensor.back_window_1_battery
- sensor.back_window_2_battery
- sensor.stairway_window_lower_battery
- sensor.stairway_window_upper_battery
- sensor.kitchen_big_window_battery
- sensor.kitchen_sink_window_battery
- sensor.mud_room_window_battery
- sensor.downstairs_bathroom_window_1_battery
- sensor.downstairs_bathroom_window_2_battery
- sensor.upstairs_bathroom_window_battery
- name: 'Glass Break Sensors (min: {min}%, count: {count})'
secondary_info: Battery levels {range}%
icon: mdi:image-broken-variant
entities:
- sensor.living_room_glass_break_battery
- name: 'Motion Detectors (min: {min}%, count: {count})'
secondary_info: Battery levels {range}%
icon: mdi:motion-sensor
entities:
- sensor.living_room_front_battery
- sensor.upstairs_bathroom_battery
- sensor.downstairs_bathroom_battery
- sensor.emma_bedroom_battery
- sensor.stairwell_bottom_battery
- sensor.basement_studio_battery
- sensor.kallen_bedroom_battery
- sensor.mud_room_battery
- sensor.stairwell_top_battery
- sensor.living_room_back_battery
- sensor.master_bedroom_battery
- name: 'Dimmer Switches (min: {min}%, count: {count})'
secondary_info: Battery Levels {range}%
icon: mdi:toggle-switch
entities:
- sensor.kallen_bedroom_dimmer_switch_battery
- sensor.tina_desk_dimmer_switch_battery
- sensor.emma_bedroom_dimmer_switch_battery
- sensor.master_bedroom_dimmer_switch_battery
- sensor.living_room_dimmer_switch_battery
filter:
include:
- name: entity_id
value: '*_battery'
- name: entity_id
value: '*battery_mqtt'
exclude:
- name: entity_id
value: '*iphone*'
- name: entity_id
value: '*ipad*'
- name: entity_id
value: '*airpod*'
- name: entity_id
value: '*apple*'
- name: entity_id
value: '*chrome*'
- name: entity_id
value: sensor.front_doorbell_battery
tap_action: more-info
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#running'
button_type: name
name: Running
icon: mdi:database-clock
- type: custom:auto-entities
filter:
include:
- domain: automation
attributes:
current: '> 0'
- domain: script
attributes:
current: '> 0'
exclude: []
sort:
method: last_triggered
reverse: false
show_empty: true
card:
type: entities
show_header_toggle: false
state_color: true
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#global-scenes'
button_type: name
name: Global Scenes
icon: mdi:home-lightbulb-outline
- type: entities
entities:
- entity: script.give_me_darkness
secondary_info: After kid's bedtime
- entity: button.good_morning
secondary_info: Optional, when we wake up
- entity: button.goodnight
secondary_info: When Tony goes to bed
- entity: script.global_on
secondary_info: Turn all lights on
- entity: script.global_off
secondary_info: Turn all lights/fans off
- entity: script.max_brightness
secondary_info: Turn all lights on at 100%
- entity: script.going_upstairs
secondary_info: When coming to bed from basement
- entity: button.basement_on_manual
name: Basement On
secondary_info: Turns on lights/computer/TV
- entity: button.sunset_lights_trigger
name: Sunset Lights Manual Trigger
secondary_info: If flow gets interrupted
- entity: script.adaptive_on_first_floor
secondary_info: Reset lights to adaptive
- entity: script.adaptive_on_second_floor
secondary_info: Reset lights to adaptive
- entity: script.bright_on_first_floor
- entity: script.bright_on_second_floor
- entity: script.evening_on_first_floor
- entity: script.evening_on_second_floor
- entity: script.emma_rainbow_lights
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#gas-prices'
button_type: name
name: Gas Prices
icon: mdi:gas-station
- type: entities
entities:
- entity: sensor.local_minimum_gas_price
name: Minimum
- entity: sensor.local_average_gas_price
name: Average
- entity: sensor.local_maximum_gas_price
name: Maximum
- type: custom:auto-entities
card:
type: entities
filter:
include:
- integration: gasbuddy
entity_id: '*regular_gas'
exclude: []
sort:
method: state
numeric: true
reverse: false
ignore_case: false
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#homefeed'
button_type: name
name: Home Feed
icon: mdi:newspaper-variant
- type: markdown
content: >-
Meds taken only reflects the time the switch was activated. If
the date/time was edited, it will not change in this feed.
Working on this.
- type: custom:home-feed-card
card_id: mobile_feed
show_empty: false
id_filter: ^home_feed_.*
more_info_on_tap: true
state_color: true
scrollbars_enabled: false
entities:
- entity: person.tony_stork
name: Tony Stork
content_template: '{{display_name}} is {{state}}'
remove_repeats: false
state_map:
not_home: traveling
Wal-Mart: at Wal-Mart
School: at the middle school
Hospital: at the hospital
- entity: person.christina_stork
name: Christina Stork
content_template: '{{display_name}} is {{state}}'
remove_repeats: false
state_map:
not_home: traveling
Wal-Mart: at Wal-Mart
School: at the middle school
Hospital: at the hospital
Bob Evans: at work
BobEvans: at work
- entity: timer.kallen_timer
- entity: person.kallen_stork
- entity: person.emmalynn_stork
- entity: automation.family_has_arrived
content_template: Family Arrived
- entity: automation.family_has_left
content_template: Family Left
- entity: input_boolean.shower_mode
- entity: input_boolean.white_noise_emma_bedroom
name: White Noise - Emma
- entity: input_boolean.white_noise_kallen_bedroom
name: White Noise - Kallen
- entity: input_boolean.white_noise_basement
name: White Noise - Basement
- entity: input_boolean.emma_sleeping
- entity: input_boolean.kallen_sleeping
- entity: input_boolean.master_bedroom_sleeping
- entity: binary_sensor.lightning_warning
state_map:
'off': No lightning detected
'on': Lightning is in the area!
content_template: '{{state}}'
- entity: binary_sensor.raining
state_map:
'off': It is not currently raining
'on': It is currently raining
unavailable: I have no idea if it is raining
unknown: I have no idea if it is raining
content_template: '{{state}}'
- entity: input_boolean.recliner_mode
- entity: timer.washer_timer
state_map:
idle: not running
active: running
content_template: The washer is {{state}}
- entity: timer.dryer_timer
state_map:
idle: not running
active: running
content_template: The dryer is {{state}}
- entity: binary_sensor.internet
state_map:
'off': Disconnected
'on': Connected
- entity: input_boolean.rabbit_fed
name: Rabbit
content_template: '{{display_name}} is {{state}}'
state_map:
'off': hungry
'on': fed
- entity: input_boolean.rabbit_hutch_cleaned
name: Rabbit Hutch
content_template: '{{display_name}} is {{state}}'
state_map:
'off': dirty
'on': clean
- entity: input_boolean.tony_morning_meds_taken
exclude_states: 'off'
state_map:
'on': taken
'off': not taken
content_template: Tony has {{state}} his morning meds
- entity: input_boolean.tony_afternoon_meds_taken
exclude_states: 'off'
state_map:
'on': taken
'off': not taken
content_template: Tony has {{state}} his afternoon meds
- entity: input_boolean.tony_night_meds_taken
exclude_states: 'off'
state_map:
'on': taken
'off': not taken
content_template: Tony has {{state}} his night meds
- entity: input_boolean.tina_morning_meds_taken
exclude_states: 'off'
state_map:
'on': taken
'off': not taken
content_template: Tina has {{state}} her morning meds
- entity: input_boolean.tina_night_meds_taken
exclude_states: 'off'
state_map:
'on': taken
'off': not taken
content_template: Tina has {{state}} her night meds
- entity: input_boolean.kallen_morning_meds_taken
exclude_states: 'off'
state_map:
'on': taken
'off': not taken
content_template: Kallen has {{state}} his morning meds
- entity: input_boolean.kallen_night_meds_taken
exclude_states: 'off'
state_map:
'on': taken
'off': not taken
content_template: Kallen has {{state}} his night meds
visible:
- user: c3909d27048140729f002aaef0391775
- user: f387a983651a4321a7411ff8cf36f949
- user: 879b4c04e32841b3ad1d2763a11b4e70
- user: 5244463d054a454389c06b76e6229b53
- user: cc8352d070b64246820a8af4302a5f52
cards: []
max_columns: 4
badges:
- type: custom:mushroom-template-badge
content: Emma has left her room! (Tap to silence)
icon: mdi:alert
color: var(--error-color)
label: Toddler Alert
entity: button.emma_door_alert_cancel
tap_action:
action: toggle
visibility:
- condition: state
entity: timer.emma_door_alert
state: active
- type: custom:mushroom-template-badge
content: Alert Disabled
icon: mdi:alert
entity: switch.emma_door_alert
label: Emma Door Alert
tap_action:
action: toggle
hold_action:
action: more-info
double_tap_action:
action: none
visibility:
- condition: state
entity: switch.emma_door_alert
state: 'off'
color: var(--warning-color)
- type: custom:mushroom-template-badge
content: Tornado Possible
color: var(--error-color)
label: Stay Alert
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
entity: binary_sensor.tornado_possible
visibility:
- condition: state
entity: binary_sensor.tornado_possible
state: 'on'
icon: '{{ state_attr(''binary_sensor.tornado_possible'',''icon'') }}'
- type: custom:mushroom-template-badge
content: >-
{{
states('sensor.home_tempest_cloud_sensors_lightning_strikes_last_hour')
}} strikes in last hour!
icon: mdi:lightning-bolt
color: var(--warning-color)
entity: binary_sensor.lightning_warning
label: Lightning Warning
visibility:
- condition: state
entity: binary_sensor.lightning_warning
state: 'on'
- type: custom:mushroom-template-badge
content: >-
{% if
states('sensor.home_tempest_cloud_sensors_precipitation_intensity')
not in ['unavailable','unknown','no_rain'] %}
{{ states('sensor.home_tempest_cloud_sensors_precipitation_intensity') | replace('_',' ') | title }}
{% else %}
It is currently raining!
{% endif %}
icon: mdi:weather-rainy
color: blue
entity: binary_sensor.raining
label: Rain Status
visibility:
- condition: state
entity: binary_sensor.raining
state: 'on'
- type: custom:mushroom-template-badge
content: 'Currently: {{ states(''sensor.doors_open'') }}'
icon: mdi:door-open
color: var(--error-color)
entity: sensor.doors_open
label: Doors Open
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: state
entity: binary_sensor.exterior_doors
state: 'on'
- type: custom:mushroom-template-badge
content: 'Currently: {{ states(''sensor.windows_open'') }}'
icon: mdi:window-open
color: var(--error-color)
entity: binary_sensor.windows
label: Windows Open
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: state
entity: binary_sensor.windows
state: 'on'
- type: custom:mushroom-template-badge
content: Check light switches
icon: mdi:light-switch
color: var(--error-color)
label: Light Issue
visibility:
- condition: state
entity: binary_sensor.light_switch_issue
state: 'on'
- type: custom:mushroom-template-badge
entity: binary_sensor.emma_bedroom_door
icon: |-
{% if is_state(entity,'on') %}
mdi:door-open
{% else %}
mdi:door-closed
{% endif %}
color: |-
{% if is_state(entity,'on') %}
var(--error-color)
{% else %}
var(--success-color)
{% endif %}
label: Emma Door Status
content: |-
{% if is_state(entity,'on') %}
Emma's door has been left open!
{% else %}
Emma's door is closed
{% endif %}
visibility:
- condition: state
entity: binary_sensor.emma_bedroom_door
state: 'on'
- type: custom:mushroom-template-badge
content: '{{ states(entity) | title }}'
icon: fas:shower
entity: input_boolean.shower_mode
label: Shower Mode
color: var(--warning-color)
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: state
entity: input_boolean.shower_mode
state: 'on'
- type: custom:mushroom-template-badge
content: |-
{% if is_state('input_boolean.school_cancelled','on') %}
Cancelled
{% elif is_state('input_boolean.two_hour_delay','on') %}
Two Hour Delay
{% else %}
On Time
{% endif %}
icon: |-
{% if is_state('input_boolean.school_cancelled','on') %}
m3rf:cancel
{% elif is_state('input_boolean.two_hour_delay','on') %}
m3rf:clock-arrow-up
{% else %}
m3rf:check-circle
{% endif %}
color: |-
{% if is_state('input_boolean.school_cancelled','on') %}
var(--error-color)
{% elif is_state('input_boolean.two_hour_delay','on') %}
var(--warning-color)
{% else %}
var(--success-color)
{% endif %}
label: School Status
tap_action:
action: url
url_path: https://1057thebull.iheart.com/content/school-delays/
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: or
conditions:
- condition: state
entity: input_boolean.kallen_school_today
state: 'on'
- condition: state
entity: input_boolean.two_hour_delay
state: 'on'
- condition: state
entity: input_boolean.school_cancelled
state: 'on'
- type: custom:mushroom-template-badge
content: '{{ states(entity) }}'
icon: |-
{% if is_state(entity,'Marginal Risk') %}
mdi:numeric-1-circle
{% elif is_state(entity,'Slight Risk') %}
mdi:numeric-2-circle
{% elif is_state(entity,'Enhanced Risk') %}
mdi:numeric-3-circle
{% elif is_state(entity,'Moderate Risk') %}
mdi:numeric-4-circle
{% elif is_state(entity,'High Risk') %}
mdi:numeric-5-circle
{% elif is_state(entity,'General Thunderstorms Risk') %}
mdi:information
{% else %}
mdi:close
{% endif %}
color: '{{ state_attr(entity,''fill'') }}'
entity: sensor.spc_outlook_day_1
label: SPC Outlook Day 1
tap_action:
action: more-info
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: and
conditions:
- condition: state
entity: sensor.spc_outlook_day_1
state_not: unavailable
- condition: state
entity: sensor.spc_outlook_day_1
state_not: unknown
- condition: state
entity: sensor.spc_outlook_day_1
state_not: No Risk
- condition: state
entity: sensor.spc_outlook_day_1
state_not: General Thunderstorms Risk
- type: custom:mushroom-template-badge
content: '{{ states(entity) }}'
icon: mdi:weather-windy
color: '{{ state_attr(entity,''wind_fill'') }}'
entity: sensor.spc_wind_risk_day_1
label: SPC Wind Risk
tap_action:
action: more-info
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: and
conditions:
- condition: state
entity: sensor.spc_wind_risk_day_1
state_not: unavailable
- condition: state
entity: sensor.spc_wind_risk_day_1
state_not: unknown
- condition: state
entity: sensor.spc_wind_risk_day_1
state_not: No Risk
- type: custom:mushroom-template-badge
content: '{{ states(entity) }}'
icon: mdi:weather-tornado
color: '{{ state_attr(entity,''torn_fill'') }}'
entity: sensor.spc_tornado_risk_day_1
label: SPC Tornado Risk
tap_action:
action: more-info
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: and
conditions:
- condition: state
entity: sensor.spc_tornado_risk_day_1
state_not: unavailable
- condition: state
entity: sensor.spc_tornado_risk_day_1
state_not: unknown
- condition: state
entity: sensor.spc_tornado_risk_day_1
state_not: No Risk
- type: custom:mushroom-template-badge
content: '{{ states(entity) }}'
icon: mdi:weather-hail
color: '{{ state_attr(entity,''hail_fill'') }}'
entity: sensor.spc_hail_risk_day_1
label: SPC Hail Risk
tap_action:
action: more-info
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: and
conditions:
- condition: state
entity: sensor.spc_hail_risk_day_1
state_not: unavailable
- condition: state
entity: sensor.spc_hail_risk_day_1
state_not: unknown
- condition: state
entity: sensor.spc_hail_risk_day_1
state_not: No Risk
- type: custom:mushroom-template-badge
content: |-
{% if is_state(entity,'on') %}
Do Not Enter
{% elif is_state('input_boolean.studio_quiet','on') %}
Studio Quiet
{% else %}
Safe
{% endif %}
entity: input_boolean.do_not_enter_basement_studio
label: Basement Status
color: |-
{% if is_state(entity,'on') %}
var(--error-color)
{% elif is_state('input_boolean.studio_quiet','on') %}
var(--warning-color)
{% else %}
var(--success-color)
{% endif %}
icon: |-
{% if is_state(entity,'on') %}
mdi:close-circle
{% elif is_state('input_boolean.studio_quiet','on') %}
mdi:alert
{% else %}
mdi:check-circle
{% endif %}
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
- type: custom:mushroom-template-badge
content: >-
{% from 'time.jinja' import input_datetime_read %}
{% if is_state('input_boolean.tony_morning_meds_reminder','on') %}
Waiting: {{ states('counter.tony_morning_meds_reminder_count') | int
}} reminders
{% else %}
{{ input_datetime_read('input_datetime.tony_morning_meds_taken') }}
{% endif %}
icon: mdi:medication
entity: input_datetime.tony_morning_meds_taken
label: Tony Morning Meds
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- condition: or
conditions:
- condition: state
entity: input_boolean.tony_morning_meds_taken
state: 'on'
- condition: state
entity: input_boolean.tony_morning_meds_reminder
state: 'on'
- condition: state
entity: input_boolean.tony_awake
state: 'on'
color: >-
{% set counter = states('counter.tony_morning_meds_reminder_count') |
int %}
{% if is_state('input_boolean.tony_morning_meds_taken','on') %}
var(--success-color)
{% elif counter >= 3 %}
var(--error-color)
{% elif counter >= 1 %}
var(--warning-color)
{% else %}
''
{% endif %}
- type: custom:mushroom-template-badge
content: >-
{% from 'time.jinja' import input_datetime_read %} {% if
is_state('input_boolean.tony_afternoon_meds_reminder','on') %}
Waiting: {{ states('counter.tony_afternoon_meds_reminder_count') | int
}} reminders {% else %} {{
input_datetime_read('input_datetime.tony_afternoon_meds_taken') }} {%
endif %}
icon: mdi:medication
color: >-
{% set counter = states('counter.tony_afternoon_meds_reminder_count')
| int %} {% if
is_state('input_boolean.tony_afternoon_meds_taken','on') %}
var(--success-color) {% elif counter >= 3 %} var(--error-color) {%
elif counter >= 1 %} var(--warning-color) {% else %} '' {% endif %}
entity: input_datetime.tony_afternoon_meds_taken
label: Tony Afternoon Meds
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- condition: or
conditions:
- condition: state
entity: input_boolean.tony_afternoon_meds_taken
state: 'on'
- condition: state
entity: input_boolean.tony_afternoon_meds_reminder
state: 'on'
- condition: state
entity: input_boolean.tony_awake
state: 'on'
- type: custom:mushroom-template-badge
content: >-
{% from 'time.jinja' import input_datetime_read %} {% if
is_state('input_boolean.tony_night_meds_reminder','on') %} Waiting: {{
states('counter.tony_night_meds_reminder_count') | int }} reminders {%
else %} {{ input_datetime_read('input_datetime.tony_night_meds_taken')
}} {% endif %}
icon: mdi:medication
color: >-
{% set counter = states('counter.tony_night_meds_reminder_count') |
int %}
{% if is_state('input_boolean.tony_night_meds_taken','on') %}
var(--success-color)
{% elif counter >= 3 %}
var(--error-color)
{% elif counter >= 1 %}
var(--warning-color)
{% else %}
''
{% endif %}
entity: input_datetime.tony_night_meds_taken
label: Tony Night Meds
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- condition: or
conditions:
- condition: state
entity: input_boolean.tony_night_meds_taken
state: 'on'
- condition: state
entity: input_boolean.tony_night_meds_reminder
state: 'on'
- type: custom:mushroom-template-badge
content: >-
{% from 'time.jinja' import input_datetime_read %} {% if
is_state('input_boolean.tina_morning_meds_reminder','on') %} Waiting:
{{ states('counter.tina_morning_meds_reminder_count') | int }}
reminders {% else %} {{
input_datetime_read('input_datetime.tina_morning_meds_taken') }} {%
endif %}
icon: mdi:medication
color: >-
{% set counter = states('counter.tina_morning_meds_reminder_count') |
int %}
{% if is_state('input_boolean.tina_morning_meds_taken','on') %}
var(--success-color)
{% elif counter >= 3 %}
var(--error-color)
{% elif counter >= 1 %}
var(--warning-color)
{% else %}
''
{% endif %}
entity: input_datetime.tina_morning_meds_taken
label: Tina Morning Meds
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- condition: or
conditions:
- condition: state
entity: input_boolean.tina_morning_meds_taken
state: 'on'
- condition: state
entity: input_boolean.tina_morning_meds_reminder
state: 'on'
- type: custom:mushroom-template-badge
content: >-
{% from 'time.jinja' import input_datetime_read %} {% if
is_state('input_boolean.tina_night_meds_reminder','on') %} Waiting: {{
states('counter.tina_night_meds_reminder_count') | int }} reminders {%
else %} {{ input_datetime_read('input_datetime.tina_night_meds_taken')
}} {% endif %}
icon: mdi:medication
color: >-
{% set counter = states('counter.tina_night_meds_reminder_count') |
int %}
{% if is_state('input_boolean.tina_night_meds_taken','on') %}
var(--success-color)
{% elif counter >= 3 %}
var(--error-color)
{% elif counter >= 1 %}
var(--warning-color)
{% else %}
''
{% endif %}
entity: input_datetime.tina_night_meds_taken
label: Tina Night Meds
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- condition: or
conditions:
- condition: state
entity: input_boolean.tina_night_meds_taken
state: 'on'
- condition: state
entity: input_boolean.tina_night_meds_reminder
state: 'on'
- type: custom:mushroom-template-badge
content: >-
{% from 'time.jinja' import input_datetime_read %} {% if
is_state('input_boolean.kallen_morning_meds_reminder','on') %}
Waiting: {{ states('counter.kallen_morning_meds_reminder_count') | int
}} reminders {% else %} {{
input_datetime_read('input_datetime.kallen_morning_meds_taken') }} {%
endif %}
icon: mdi:medication
color: >-
{% set counter = states('counter.kallen_morning_meds_reminder_count')
| int %}
{% if is_state('input_boolean.kallen_morning_meds_taken','on') %}
var(--success-color)
{% elif counter >= 3 %}
var(--error-color)
{% elif counter >= 1 %}
var(--warning-color)
{% else %}
''
{% endif %}
entity: input_datetime.kallen_morning_meds_taken
label: Kallen Morning Meds
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- 879b4c04e32841b3ad1d2763a11b4e70
- condition: or
conditions:
- condition: state
entity: input_boolean.kallen_morning_meds_taken
state: 'on'
- condition: state
entity: input_boolean.kallen_morning_meds_reminder
state: 'on'
- condition: state
entity: input_boolean.kallen_sleeping
state: 'off'
- type: custom:mushroom-template-badge
content: >-
{% from 'time.jinja' import input_datetime_read %} {% if
is_state('input_boolean.kallen_night_meds_reminder','on') %} Waiting:
{{ states('counter.kallen_night_meds_reminder_count') | int }}
reminders {% else %} {{
input_datetime_read('input_datetime.kallen_night_meds_taken') }} {%
endif %}
icon: mdi:medication
color: >-
{% set counter = states('counter.kallen_night_meds_reminder_count') |
int %}
{% if is_state('input_boolean.kallen_night_meds_taken','on') %}
var(--success-color)
{% elif counter >= 3 %}
var(--error-color)
{% elif counter >= 1 %}
var(--warning-color)
{% else %}
''
{% endif %}
entity: input_datetime.kallen_night_meds_taken
label: Kallen Night Meds
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- 879b4c04e32841b3ad1d2763a11b4e70
- condition: or
conditions:
- condition: state
entity: input_boolean.kallen_night_meds_taken
state: 'on'
- condition: state
entity: input_boolean.kallen_night_meds_reminder
state: 'on'
- condition: state
entity: input_boolean.kallen_sleeping
state: 'on'
- type: custom:mushroom-template-badge
content: |-
{% from 'time.jinja' import input_datetime_read %}
{{ input_datetime_read('input_datetime.emma_awake_at') }}
icon: mdi:weather-sunset-up
color: ''
entity: input_datetime.emma_awake_at
label: Emma Awake At
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- 879b4c04e32841b3ad1d2763a11b4e70
- condition: state
entity: input_boolean.emma_sleeping
state: 'off'
- type: custom:mushroom-template-badge
content: |-
{% from 'time.jinja' import input_datetime_read %}
{{ input_datetime_read('input_datetime.emma_asleep_at') }}
icon: mdi:sleep
color: ''
entity: input_datetime.emma_asleep_at
label: Emma Asleep At
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- 879b4c04e32841b3ad1d2763a11b4e70
- condition: state
entity: input_boolean.emma_sleeping
state: 'on'
- type: custom:mushroom-template-badge
icon: mdi:wrench-clock
entity: input_boolean.server_maintenance
color: var(--warning-color)
label: Server Maintenance
content: Interruptions Possible
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: state
entity: input_boolean.server_maintenance
state: 'on'
header:
card:
type: markdown
content: >-
{% from 'weather.jinja' import weatherReport %} {% from
'formatting.jinja' import cleanup %} {% import 'status.jinja' as
status %}
# Hello {{ user }}
{{ weatherReport('full','dashboard') }}
---
--- Climate ---
Average: {{ states('sensor.average_room_temperature',with_unit=true)
}}
Coldest: {{ state_attr('sensor.coldest_room_temperature','room') }},
{{ states('sensor.coldest_room_temperature',with_unit=true) }}
Warmest: {{ state_attr('sensor.warmest_room_temperature','room') }},
{{ states('sensor.warmest_room_temperature',with_unit=true) }}
layout: responsive
badges_position: bottom
- title: Old
path: old
icon: ''
visible:
- user: f387a983651a4321a7411ff8cf36f949
- user: 879b4c04e32841b3ad1d2763a11b4e70
- user: c3909d27048140729f002aaef0391775
cards:
- type: custom:meteoalarm-card
entities:
entity: sensor.weatheralerts
integration: weatheralerts
hide_when_no_warning: true
- type: custom:mushroom-template-card
primary: Hello, {{user}}
secondary: >-
{% from 'weather.jinja' import weatherReport %}
{{ weatherReport('full','text') }}
--- Indoor Temps ---
Average: {{ states('sensor.average_room_temperature',with_unit=true)
}}
Coldest: {{ state_attr('sensor.coldest_room_temperature','room') }},
{{ states('sensor.coldest_room_temperature',with_unit=true) }}
Warmest: {{ state_attr('sensor.warmest_room_temperature','room') }},
{{ states('sensor.warmest_room_temperature',with_unit=true) }}
--- Lights ---
Average: {{ states('sensor.average_room_illuminance',with_unit=true)
}}
Dimmest: {{ state_attr('sensor.dimmest_room','room') }}, {{
states('sensor.dimmest_room',with_unit=true) }}
Brightest: {{ state_attr('sensor.brightest_room','room') }}, {{
states('sensor.brightest_room',with_unit=true) }}
For advanced controls, click this card to go to the main dashboard.
icon: mdi:home
tap_action:
action: navigate
navigation_path: /lovelace
multiline_secondary: true
icon_color: blue
fill_container: false
- square: false
type: grid
cards:
- type: custom:button-card
name: Global Scenes
icon: mdi:home-lightbulb-outline
show_label: true
aspect_ratio: 1.25/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: entities
entities:
- script.give_me_darkness
- button.good_morning
- button.goodnight
- script.max_brightness
- button.sunset_lights_trigger
- entity: button.basement_on_manual
name: Basement On
- script.adaptive_on_first_floor
- script.adaptive_on_second_floor
- script.bright_on_first_floor
- script.bright_on_second_floor
- script.evening_on_first_floor
- script.evening_on_second_floor
- switch.animated_scene_halloween
- script.emma_rainbow_lights
- type: custom:button-card
name: Messages
icon: mdi:bullhorn
show_label: true
aspect_ratio: 1.25/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: custom:stack-in-card
cards:
- type: entities
title: Premade
entities:
- entity: script.dinner_is_ready
name: Dinner Is Ready
icon: mdi:bullhorn
- entity: script.we_are_leaving
name: We Are Leaving
icon: mdi:bullhorn
- entity: script.birthday_announcement
name: Birthday Announcement
icon: mdi:bullhorn
- entity: script.server_maintenance_annc
name: Server Maintenance
icon: mdi:bullhorn
- entity: script.server_maintenance_done_annc
name: Server Maintenance Done
icon: mdi:bullhorn
- entity: script.speech_engine
name: Speech Engine
icon: mdi:bullhorn
- type: custom:tabbed-card
styles:
'--mdc-theme-primary': null
'--mdc-tab-text-label-color-default': null
'--mdc-typography-button-font-size': null
tabs:
- card:
type: entities
entities:
- entity: input_text.tts_message
name: Message
- entity: input_select.tts_devices
name: Devices
- entity: input_select.announcement_voice
- entity: button.send_alexa_message
name: Send Message
attributes:
label: TTS
icon: mdi:volume-high
- card:
type: entities
entities:
- entity: input_select.select_phones
- entity: input_select.select_tvs
- entity: input_text.text_notification_title
name: Title
- entity: input_text.text_notification
name: Body
- entity: >-
input_select.text_notification_priority_level
name: Priority Level (Only works for phones)
- entity: button.send_text_notification
name: Send
show_header_toggle: false
state_color: false
attributes:
label: Text Notify
icon: mdi:text
- card:
type: entities
entities:
- entity: input_text.report_system
name: Description
- entity: input_select.report_type
name: Report Type
- entity: button.send_report
show_header_toggle: false
state_color: false
attributes:
label: Reports
icon: mdi:bug
- type: custom:button-card
name: Weather
icon: mdi:weather-partly-cloudy
show_label: true
aspect_ratio: 1.25/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: custom:clock-weather-card
entity: weather.iron_nerd_weather_station
sun_entity: sun.sun
weather_icon_type: fill
animated_icon: true
forecast_rows: 7
time_format: 12
tap_action:
action: navigate
navigation_path: /lovelace/weather
- type: custom:button-card
name: Batteries
icon: mdi:battery-charging
show_label: true
aspect_ratio: 1.25/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: custom:battery-state-card
sort_by_level: asc
bulk_rename:
- from: Battery
to: ''
- from: Stratton Ave
to: ''
- from: Dimmer Switch
to: ''
collapse:
- name: 'Door Sensors (min: {min}%, count: {count})'
secondary_info: Battery levels {range}%
icon: mdi:door
entities:
- sensor.front_door_battery
- sensor.back_door_battery
- sensor.basement_studio_door_battery
- sensor.downstairs_bathroom_door_battery
- name: 'Window Sensors (min: {min}%, count: {count})'
secondary_info: Battery levels {range}%
icon: mdi:window-closed
entities:
- sensor.front_window_battery_1
- sensor.front_window_battery_2
- sensor.front_window_battery_3
- sensor.side_window_1_battery
- sensor.side_window_2_battery
- sensor.side_window_3_battery
- sensor.side_window_4_battery
- sensor.back_window_1_battery
- sensor.back_window_2_battery
- sensor.stairway_window_lower_battery
- sensor.stairway_window_upper_battery
- sensor.kitchen_big_window_battery
- sensor.kitchen_sink_window_battery
- sensor.mud_room_window_battery
- sensor.downstairs_bathroom_window_1_battery
- sensor.downstairs_bathroom_window_2_battery
- sensor.upstairs_bathroom_window_battery
- name: 'Glass Break Sensors (min: {min}%, count: {count})'
secondary_info: Battery levels {range}%
icon: mdi:image-broken-variant
entities:
- sensor.living_room_glass_break_battery
- name: 'Motion Detectors (min: {min}%, count: {count})'
secondary_info: Battery levels {range}%
icon: mdi:motion-sensor
entities:
- sensor.living_room_front_battery
- sensor.upstairs_bathroom_battery
- sensor.downstairs_bathroom_battery
- sensor.emma_bedroom_battery
- sensor.stairwell_bottom_battery
- sensor.basement_studio_battery
- sensor.kallen_bedroom_battery
- sensor.mud_room_battery
- sensor.stairwell_top_battery
- sensor.living_room_back_battery
- sensor.master_bedroom_battery
- name: 'Dimmer Switches (min: {min}%, count: {count})'
secondary_info: Battery Levels {range}%
icon: mdi:toggle-switch
entities:
- sensor.kallen_bedroom_dimmer_switch_battery
- sensor.tina_desk_dimmer_switch_battery
- sensor.emma_bedroom_dimmer_switch_battery
- sensor.master_bedroom_dimmer_switch_battery
- sensor.living_room_dimmer_switch_battery
filter:
include:
- name: entity_id
value: '*_battery'
- name: entity_id
value: '*battery_mqtt'
exclude:
- name: entity_id
value: '*iphone*'
- name: entity_id
value: '*ipad*'
- name: entity_id
value: '*airpod*'
- name: entity_id
value: '*apple*'
- name: entity_id
value: '*chrome*'
- name: entity_id
value: sensor.front_doorbell_battery
tap_action: more-info
columns: 4
- type: grid
square: false
columns: 4
cards:
- type: custom:button-card
name: Tony
icon: mdi:human-male
show_label: true
aspect_ratio: 1.25/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: vertical-stack
cards:
- type: entities
title: Meds
entities:
- entity: input_boolean.tony_morning_meds_taken
name: Morning Meds
- entity: input_boolean.tony_afternoon_meds_taken
name: Afternoon Meds
- entity: input_boolean.tony_night_meds_taken
name: Night Meds
- entity: input_datetime.tony_morning_meds_taken
name: Morning Meds Taken
- entity: input_datetime.tony_afternoon_meds_taken
name: Afternoon Meds Taken
- entity: input_datetime.tony_night_meds_taken
name: Night Meds Taken
- entity: input_datetime.tony_morning_meds_notify
name: Morning Notify
- entity: input_datetime.tony_afternoon_meds_notify
name: Afternoon Notify
- entity: input_datetime.tony_night_meds_notify
name: Night Notify
- entity: counter.tony_morning_meds_reminder_count
name: Morning Reminders
- entity: counter.tony_afternoon_meds_reminder_count
name: Afternoon Reminders
- entity: counter.tony_night_meds_reminder_count
name: Night Reminders
- entity: input_number.tony_afternoon_meds_interval
name: Afternoon Interval
show_header_toggle: false
state_color: true
- type: entities
title: Computer
entities:
- entity: binary_sensor.tony_desktop_on
name: Status
- entity: script.tony_desktop_wake
name: Wake
- entity: script.tony_desktop_shutdown
name: Shutdown
show_header_toggle: false
state_color: true
- type: custom:button-card
name: Tina
icon: mdi:human-female
show_label: true
aspect_ratio: 1.25/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: vertical-stack
cards:
- type: entities
title: Meds
entities:
- entity: input_boolean.tina_morning_meds_taken
name: Morning Meds
- entity: input_boolean.tina_night_meds_taken
name: Night Meds
- entity: input_datetime.tina_morning_meds_taken
name: Morning Meds Taken
- entity: input_datetime.tina_night_meds_taken
name: Night Meds Taken
- entity: input_datetime.tina_morning_meds_notify
name: Morning Notify
- entity: input_datetime.tina_night_meds_notify
name: Night Notify
- entity: counter.tina_morning_meds_reminder_count
name: Morning Reminders
- entity: counter.tina_night_meds_reminder_count
name: Night Reminders
show_header_toggle: false
state_color: true
- type: entities
title: Computer
entities:
- entity: binary_sensor.tina_desktop_on
name: Status
- entity: script.tina_desktop_wake
name: Wake
- entity: script.tina_desktop_shutdown
name: Shutdown
show_header_toggle: false
state_color: true
- type: custom:button-card
name: Kallen
icon: mdi:human-child
show_label: true
aspect_ratio: 1.25/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: vertical-stack
cards:
- type: entities
title: Meds
entities:
- entity: input_boolean.kallen_morning_meds_taken
name: Morning Meds
- entity: input_boolean.kallen_night_meds_taken
name: Night Meds
- entity: input_datetime.kallen_morning_meds_taken
name: Morning Meds Taken
- entity: input_datetime.kallen_night_meds_taken
name: Night Meds Taken
- entity: input_datetime.kallen_morning_meds_notify
name: Morning Notify
- entity: input_datetime.kallen_night_meds_notify
name: Night Notify
- entity: counter.kallen_morning_meds_reminder_count
name: Morning Reminders
- entity: counter.kallen_night_meds_reminder_count
name: Night Reminders
- entity: input_boolean.kallen_late_bedtime
name: Late Bedtime
show_header_toggle: false
state_color: true
- type: entities
title: Computer
entities:
- entity: binary_sensor.kallen_desktop_on
name: Status
- entity: script.kallen_desktop_wake
name: Wake
- entity: script.kallen_desktop_shutdown
name: Shutdown
show_header_toggle: false
state_color: true
- type: custom:button-card
name: Emma
icon: mdi:bow-tie
show_label: true
aspect_ratio: 1.25/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: entities
title: Emma Meds
entities:
- type: custom:fold-entity-row
head:
type: section
label: Alternating Meds
entities:
- entity: input_boolean.emma_alternating_meds_active
name: Alternating Meds Active
- entity: input_boolean.emma_tylenol
name: Tylenol Taken
- entity: input_datetime.emma_tylenol
name: Tylenol Given
- entity: input_datetime.emma_tylenol_notify
name: Tylenol Notify
- entity: input_boolean.emma_ibuprofen
name: Ibuprofen Taken
- entity: input_datetime.emma_ibuprofen
name: Ibuprofen Given
- entity: input_datetime.emma_ibuprofen_notify
name: Ibuprofen Notify
- type: custom:fold-entity-row
head:
type: section
label: Cough Meds
entities:
- entity: input_boolean.emma_cough_meds_active
name: Cough Meds Active
- entity: input_boolean.emma_cough_meds
name: Cough Meds Taken
- entity: input_datetime.emma_cough_meds
name: Cough Meds Given
- entity: input_datetime.emma_cough_meds_notify
name: Cough Meds Notify
- entity: input_number.emma_cough_meds_interval
name: Interval
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: grid
square: false
columns: 2
cards:
- type: custom:button-card
name: Cats
icon: mdi:cat
show_label: true
aspect_ratio: 2.5/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: custom:mushroom-template-card
primary: ''
secondary: Cat stuff coming soon. Maybe.
icon: ''
layout: vertical
multiline_secondary: false
fill_container: false
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
- type: custom:button-card
name: Rabbit
icon: mdi:rabbit
show_label: true
aspect_ratio: 2.5/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: vertical-stack
cards:
- type: entities
entities:
- entity: input_boolean.rabbit_fed
- entity: input_datetime.rabbit_fed
- entity: input_datetime.rabbit_feeding_notify
name: Notify
- entity: input_number.rabbit_feeding_interval
name: Interval
- entity: counter.rabbit_feeding_reminder_count
name: Reminder Count
show_header_toggle: false
state_color: true
title: Rabbit Feeding
- type: entities
entities:
- entity: input_boolean.rabbit_hutch_cleaned
name: Hutch Cleaned
- entity: input_datetime.rabbit_hutch_cleaned
name: Hutch Cleaned
- entity: input_datetime.rabbit_hutch_cleaning_notify
name: Notify
- entity: input_number.rabbit_hutch_cleaning_interval
name: Interval
- entity: counter.rabbit_hutch_cleaning_reminder_count
name: Reminder Count
title: Rabbit Hutch Cleaning
show_header_toggle: false
state_color: true
- type: grid
square: false
columns: 1
cards:
- type: custom:button-card
name: Running
icon: mdi:database-clock
show_label: true
aspect_ratio: 5/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: custom:auto-entities
filter:
include:
- domain: automation
attributes:
current: '> 0'
- domain: script
attributes:
current: '> 0'
exclude: []
sort:
method: last_triggered
reverse: false
else:
type: custom:mushroom-template-card
primary: Nothing running
secondary: There are currently no automations or scripts running
multiline_secondary: true
layout: vertical
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
fill_container: false
card:
type: entities
show_header_toggle: false
state_color: true
title: Running Automations/Scripts
card_mod:
style: |
ha-dialog {
--mdc-dialog-min-height: 10px !important;
}
visibility:
- condition: user
users:
- c3909d27048140729f002aaef0391775
- type: grid
square: false
columns: 1
cards:
- type: custom:button-card
name: Kallen Timer
icon: mdi:timer
show_label: true
aspect_ratio: 5/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: custom:stack-in-card
title: Activity Timer
cards:
- type: custom:flipdown-timer-card
entity: timer.kallen_timer
name: Kallen Activity Timer
duration: '00:00:00'
show_title: false
show_header: true
show_error: false
show_hour: auto
styles:
button:
location: hide
- type: entities
entities:
- entity: input_number.kallen_activity_duration
name: Duration
- entity: input_boolean.kallen_timer_control_lights
name: Control Lights
- entity: input_select.kallen_activity_room
name: Room
- entity: input_select.kallen_activities
name: Activity
show_header_toggle: false
state_color: true
- type: custom:stack-in-card
mode: horizontal
cards:
- type: custom:button-card
entity: timer.kallen_timer
name: []
show_label: true
aspect_ratio: 2.7/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
state:
- value: active
label: Running
icon: mdi:play
styles:
icon:
- color: green
- value: paused
label: Paused
icon: mdi:pause
styles:
icon:
- color: yellow
- value: idle
label: Idle
icon: mdi:play
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.kallen_timer_start
hold_action:
action: more-info
entity: timer.kallen_timer
- type: custom:button-card
entity: timer.kallen_timer
name: []
icon: mdi:cancel
label: Cancel
show_label: true
aspect_ratio: 2.7/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
state:
- value: active
styles:
icon:
- color: green
- value: paused
styles:
icon:
- color: yellow
- value: idle
tap_action:
action: call-service
service: script.kallen_timer_cancel
hold_action:
action: more-info
entity: timer.kallen_timer
visibility:
- condition: user
users:
- 879b4c04e32841b3ad1d2763a11b4e70
- type: custom:mushroom-template-card
primary: ''
multiline_secondary: true
secondary: |-
{% from 'formatting.jinja' import cleanup %}
{% import 'status.jinja' as status %}
{{ cleanup(status.tony_status_report('full','text')) }}
{{ cleanup(status.tina_status_report('full','text')) }}
{{ cleanup(status.kallen_status_report('full','text')) }}
{{ cleanup(status.emma_status_report('full','text')) }}
{{ cleanup(status.house_status_report('full','text')) }}
{{ cleanup(status.laundry_report('full','text')) }}
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
fill_container: false
- type: custom:mushroom-template-card
primary: ''
secondary: Cat stuff coming soon. Maybe.
icon: ''
layout: vertical
multiline_secondary: false
fill_container: false
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
type: masonry
subview: true
- title: Tony
path: tony
icon: mdi:human-male
type: sections
max_columns: 4
subview: true
sections:
- type: grid
cards:
- type: heading
heading: Meds
- type: custom:card-templater
card:
type: entities
state_color: true
show_header_toggle: false
entities:
- entity: input_boolean.tony_custom_meds_taken_p1
name_template: >-
{{ states('input_text.tony_custom_med_name_p1') + ' Taken'
}}
- entity: input_datetime.tony_custom_meds_taken_p1
name_template: >-
{{ states('input_text.tony_custom_med_name_p1') + ' Taken'
}}
- entity: input_datetime.tony_custom_meds_notify_p1
name_template: >-
{{ states('input_text.tony_custom_med_name_p1') + ' Notify'
}}
- entity: input_boolean.tony_custom_meds_reminder_p1
name: Reminders Active
- entity: counter.tony_custom_meds_reminder_count_p1
name: Reminder Count
visibility:
- condition: state
entity: input_boolean.tony_custom_meds_tracker_p1
state: 'on'
- type: entities
state_color: true
show_header_toggle: false
entities:
- entity: input_boolean.tony_ibuprofen_taken
name: Ibuprofen Taken
- entity: input_datetime.tony_ibuprofen_taken
name: Ibuprofen Taken
- entity: input_datetime.tony_ibuprofen_notify
name: Ibuprofen Notify
- entity: input_boolean.tony_ibuprofen_reminder
name: Reminders Active
- entity: counter.tony_ibuprofen_reminder_count
name: Reminder Count
visibility:
- condition: state
entity: input_boolean.tony_ibuprofen_active
state: 'on'
- type: entities
state_color: true
show_header_toggle: false
entities:
- entity: input_boolean.tony_tylenol_taken
name: Tylenol Taken
- entity: input_datetime.tony_tylenol_taken
name: Tylenol Taken
- entity: input_datetime.tony_tylenol_notify
name: Tylenol Notify
- entity: input_boolean.tony_tylenol_reminder
name: Reminders Active
- entity: counter.tony_tylenol_reminder_count
name: Reminder Count
visibility:
- condition: state
entity: input_boolean.tony_tylenol_active
state: 'on'
- type: entities
entities:
- entity: input_boolean.tony_morning_meds_taken
name: Morning Meds
- entity: input_datetime.tony_morning_meds_taken
name: Morning Meds Taken
- entity: input_datetime.tony_morning_meds_notify
name: Morning Notify
- entity: input_boolean.tony_morning_meds_reminder
name: Reminders Active
- entity: counter.tony_morning_meds_reminder_count
name: Reminder Count
show_header_toggle: false
state_color: true
- type: entities
entities:
- entity: input_boolean.tony_afternoon_meds_taken
name: Afternoon Meds
- entity: input_datetime.tony_afternoon_meds_taken
name: Afternoon Meds Taken
- entity: input_datetime.tony_afternoon_meds_notify
name: Afternoon Notify
- entity: input_number.tony_afternoon_meds_interval
name: Afternoon Interval
- entity: input_boolean.tony_afternoon_meds_reminder
name: Reminders Active
- entity: counter.tony_afternoon_meds_reminder_count
name: Reminder Count
show_header_toggle: false
state_color: true
- type: entities
entities:
- entity: input_boolean.tony_night_meds_taken
name: Night Meds
- entity: input_datetime.tony_night_meds_taken
name: Night Meds Taken
- entity: input_datetime.tony_night_meds_notify
name: Night Notify
- entity: input_boolean.tony_night_meds_reminder
name: Reminders Active
- entity: counter.tony_night_meds_reminder_count
name: Reminder Count
show_header_toggle: false
state_color: true
- type: entities
entities:
- type: custom:fold-entity-row
head:
type: section
label: Settings
entities:
- entity: input_boolean.tony_custom_meds_tracker_p1
name: Custom Tracker 1
- entity: input_text.tony_custom_med_name_p1
name: Custom 1 Name
- entity: input_select.tony_custom_meds_type_p1
name: Custom 1 Type
- entity: input_number.tony_custom_meds_interval_p1
name: Custom 1 Interval
- entity: input_boolean.tony_ibuprofen_active
name: Ibuprofen Active
- entity: input_boolean.tony_tylenol_active
name: Tylenol Active
- type: grid
cards:
- type: heading
heading: Computer
- type: entities
entities:
- entity: binary_sensor.tony_desktop_on
name: Status
- entity: script.tony_desktop_wake
name: Wake
- entity: script.tony_desktop_shutdown
name: Shutdown
show_header_toggle: false
state_color: true
visible:
- user: f387a983651a4321a7411ff8cf36f949
- user: c3909d27048140729f002aaef0391775
cards: []
- title: Tina
path: tina
icon: mdi:human-female
type: sections
max_columns: 4
subview: true
visible:
- user: f387a983651a4321a7411ff8cf36f949
- user: c3909d27048140729f002aaef0391775
sections:
- type: grid
cards:
- type: heading
heading: Meds
- type: entities
state_color: true
show_header_toggle: false
entities:
- entity: input_boolean.tina_ibuprofen_taken
- entity: input_datetime.tina_ibuprofen_taken
- entity: input_datetime.tina_ibuprofen_notify
visibility:
- condition: state
entity: input_boolean.tina_ibuprofen_active
state: 'on'
- type: entities
state_color: true
show_header_toggle: false
entities:
- entity: input_boolean.tina_tylenol_taken
- entity: input_datetime.tina_tylenol_taken
- entity: input_datetime.tina_tylenol_notify
visibility:
- condition: state
entity: input_boolean.tina_tylenol_active
state: 'on'
- type: entities
entities:
- entity: input_boolean.tina_morning_meds_taken
name: Morning Meds
- entity: input_datetime.tina_morning_meds_taken
name: Morning Meds Taken
- entity: input_datetime.tina_morning_meds_notify
name: Morning Notify
- entity: input_boolean.tina_morning_meds_reminder
name: Reminders Active
- entity: counter.tina_morning_meds_reminder_count
name: Morning Reminders
show_header_toggle: false
state_color: true
- type: entities
entities:
- entity: input_boolean.tina_night_meds_taken
name: Night Meds
- entity: input_datetime.tina_night_meds_taken
name: Night Meds Taken
- entity: input_datetime.tina_night_meds_notify
name: Night Notify
- entity: input_boolean.tina_night_meds_reminder
name: Reminders Active
- entity: counter.tina_night_meds_reminder_count
name: Night Reminders
show_header_toggle: false
state_color: true
- type: entities
entities:
- type: custom:fold-entity-row
head:
type: section
label: Settings
entities:
- entity: input_boolean.tina_ibuprofen_active
name: Ibuprofen Active
- entity: input_boolean.tina_tylenol_active
name: Tylenol Active
- type: grid
cards:
- type: heading
heading: Computer
- type: entities
entities:
- entity: binary_sensor.tina_desktop_on
name: Status
- entity: script.tina_desktop_wake
name: Wake
- entity: script.tina_desktop_shutdown
name: Shutdown
show_header_toggle: false
state_color: true
- title: Kallen
path: kallen
icon: mdi:human-child
type: sections
max_columns: 4
subview: true
sections:
- type: grid
cards:
- type: heading
heading: Meds
- type: entities
entities:
- entity: input_boolean.kallen_morning_meds_taken
name: Morning Meds
- entity: input_datetime.kallen_morning_meds_taken
name: Morning Meds Taken
- entity: input_datetime.kallen_morning_meds_notify
name: Morning Notify
- entity: input_boolean.kallen_morning_meds_reminder
name: Reminders Active
- entity: counter.kallen_morning_meds_reminder_count
name: Morning Reminders
show_header_toggle: false
state_color: true
- type: entities
entities:
- entity: input_boolean.kallen_night_meds_taken
name: Night Meds
- entity: input_datetime.kallen_night_meds_taken
name: Night Meds Taken
- entity: input_datetime.kallen_night_meds_notify
name: Night Notify
- entity: input_boolean.kallen_night_meds_reminder
name: Reminders Active
- entity: counter.kallen_night_meds_reminder_count
name: Night Reminders
show_header_toggle: false
state_color: true
- type: grid
cards:
- type: heading
heading: Computer
- type: entities
entities:
- entity: binary_sensor.kallen_desktop_on
name: Status
- entity: script.kallen_desktop_wake
name: Wake
- entity: script.kallen_desktop_shutdown
name: Shutdown
show_header_toggle: false
state_color: true
- title: Emma
path: emma
icon: mdi:bow-tie
type: sections
max_columns: 4
subview: true
visible:
- user: f387a983651a4321a7411ff8cf36f949
- user: c3909d27048140729f002aaef0391775
sections:
- type: grid
cards:
- type: heading
heading: Meds
- type: entities
entities:
- entity: input_boolean.emma_alternating_meds_active
name: Alternating Meds Active
- entity: input_boolean.emma_cough_meds_active
name: Cough Meds Active
show_header_toggle: false
state_color: true
- type: entities
entities:
- entity: input_boolean.emma_cough_meds
name: Cough Meds Taken
- entity: input_datetime.emma_cough_meds
name: Cough Meds Given
- entity: input_datetime.emma_cough_meds_notify
name: Cough Meds Notify
- entity: input_number.emma_cough_meds_interval
name: Interval
show_header_toggle: false
state_color: true
visibility:
- condition: state
entity: input_boolean.emma_cough_meds_active
state: 'on'
- type: entities
entities:
- entity: input_boolean.emma_tylenol
name: Tylenol Taken
- entity: input_datetime.emma_tylenol
name: Tylenol Given
- entity: input_datetime.emma_tylenol_notify
name: Tylenol Notify
show_header_toggle: false
state_color: true
visibility:
- condition: state
entity: input_boolean.emma_alternating_meds_active
state: 'on'
- type: entities
entities:
- entity: input_boolean.emma_ibuprofen
name: Ibuprofen Taken
- entity: input_datetime.emma_ibuprofen
name: Ibuprofen Given
- entity: input_datetime.emma_ibuprofen_notify
name: Ibuprofen Notify
show_header_toggle: false
state_color: true
visibility:
- condition: state
entity: input_boolean.emma_alternating_meds_active
state: 'on'
- title: Rabbit
path: rabbit
icon: mdi:rabbit
type: sections
max_columns: 4
subview: true
sections:
- type: grid
cards:
- type: heading
heading: Feeding
- type: entities
entities:
- entity: input_boolean.rabbit_fed
- entity: input_datetime.rabbit_fed
- entity: input_datetime.rabbit_feeding_notify
name: Notify
- entity: input_number.rabbit_feeding_interval
name: Interval
- entity: counter.rabbit_feeding_reminder_count
name: Reminder Count
show_header_toggle: false
state_color: true
- type: grid
cards:
- type: heading
heading: Cleaning
- type: entities
entities:
- entity: input_boolean.rabbit_hutch_cleaned
name: Hutch Cleaned
- entity: input_datetime.rabbit_hutch_cleaned
name: Hutch Cleaned
- entity: input_datetime.rabbit_hutch_cleaning_notify
name: Notify
- entity: input_number.rabbit_hutch_cleaning_interval
name: Interval
- entity: counter.rabbit_hutch_cleaning_reminder_count
name: Reminder Count
show_header_toggle: false
state_color: true
- title: Kallen Timer
path: kallen-timer
icon: mdi:timer
type: sections
max_columns: 4
subview: true
sections:
- type: grid
cards:
- type: custom:stack-in-card
title: Activity Timer
cards:
- type: custom:flipdown-timer-card
entity: timer.kallen_timer
name: Kallen Activity Timer
duration: '00:00:00'
show_title: false
show_header: true
show_error: false
show_hour: auto
styles:
button:
location: hide
- type: entities
entities:
- entity: input_number.kallen_activity_duration
name: Duration
- entity: input_boolean.kallen_timer_control_lights
name: Control Lights
- entity: input_select.kallen_activity_room
name: Room
- entity: input_select.kallen_activities
name: Activity
show_header_toggle: false
state_color: true
- type: custom:stack-in-card
mode: horizontal
cards:
- type: custom:button-card
entity: timer.kallen_timer
name: []
show_label: true
aspect_ratio: 2.7/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
state:
- value: active
label: Running
icon: mdi:play
styles:
icon:
- color: green
- value: paused
label: Paused
icon: mdi:pause
styles:
icon:
- color: yellow
- value: idle
label: Idle
icon: mdi:play
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.kallen_timer_start
hold_action:
action: more-info
entity: timer.kallen_timer
- type: custom:button-card
entity: timer.kallen_timer
name: []
icon: mdi:cancel
label: Cancel
show_label: true
aspect_ratio: 2.7/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
state:
- value: active
styles:
icon:
- color: green
- value: paused
styles:
icon:
- color: yellow
- value: idle
tap_action:
action: call-service
service: script.kallen_timer_cancel
hold_action:
action: more-info
entity: timer.kallen_timer
- title: Sports
path: sports
icon: mdi:football
type: sections
sections:
- type: grid
cards:
- type: heading
heading: NCAAF
- type: custom:teamtracker-card
entity: sensor.michigan_wolverines
visibility:
- condition: state
entity: sensor.michigan_wolverines
state_not: NOT_FOUND
- condition: state
entity: sensor.michigan_wolverines
state_not: BYE
- condition: state
entity: binary_sensor.michigan_wolverines_inhibit
state: 'off'
- type: custom:teamtracker-card
entity: sensor.ohio_state_buckeyes
visibility:
- condition: state
entity: sensor.ohio_state_buckeyes
state_not: NOT_FOUND
- condition: state
entity: sensor.ohio_state_buckeyes
state_not: BYE
- condition: state
entity: binary_sensor.ohio_state_buckeyes_inhibit
state: 'off'
- type: custom:teamtracker-card
entity: sensor.toledo_rockets
visibility:
- condition: state
entity: sensor.toledo_rockets
state_not: NOT_FOUND
- condition: state
entity: sensor.toledo_rockets
state_not: BYE
- condition: state
entity: binary_sensor.toledo_rockets_inhibit
state: 'off'
column_span: 3
visibility:
- condition: or
conditions:
- condition: state
entity: binary_sensor.michigan_wolverines_inhibit
state: 'off'
- condition: state
entity: binary_sensor.ohio_state_buckeyes_inhibit
state: 'off'
- condition: state
entity: binary_sensor.toledo_rockets_inhibit
state: 'off'
- type: grid
cards:
- type: heading
heading: NFL
- type: custom:teamtracker-card
entity: sensor.minnesota_vikings
visibility:
- condition: state
entity: sensor.minnesota_vikings
state_not: NOT_FOUND
- condition: state
entity: sensor.minnesota_vikings
state_not: BYE
- condition: state
entity: binary_sensor.minnesota_vikings_inhibit
state: 'off'
- type: custom:teamtracker-card
entity: sensor.san_francisco_49ers
visibility:
- condition: state
entity: sensor.san_francisco_49ers
state_not: NOT_FOUND
- condition: state
entity: sensor.san_francisco_49ers
state_not: BYE
- condition: state
entity: binary_sensor.san_francisco_49ers_inhibit
state: 'off'
column_span: 2
visibility:
- condition: or
conditions:
- condition: state
entity: binary_sensor.minnesota_vikings_inhibit
state: ''
- condition: state
entity: binary_sensor.san_francisco_49ers_inhibit
state: 'off'
- type: grid
cards:
- type: heading
heading: MLB
- type: custom:teamtracker-card
entity: sensor.minnesota_twins
visibility:
- condition: state
entity: sensor.minnesota_twins
state_not: NOT_FOUND
- condition: state
entity: sensor.minnesota_twins
state_not: BYE
- condition: state
entity: binary_sensor.minnesota_twins_inhibit
state: 'off'
- type: custom:teamtracker-card
entity: sensor.cleveland_guardians
visibility:
- condition: state
entity: sensor.cleveland_guardians
state_not: NOT_FOUND
- condition: state
entity: sensor.cleveland_guardians
state_not: BYE
- condition: state
entity: binary_sensor.cleveland_guardians_inhibit
state: 'off'
- type: custom:teamtracker-card
entity: sensor.los_angeles_dodgers
visibility:
- condition: state
entity: sensor.los_angeles_dodgers
state_not: NOT_FOUND
- condition: state
entity: sensor.los_angeles_dodgers
state_not: BYE
- condition: state
entity: binary_sensor.los_angeles_dodgers_inhibit
state: 'off'
column_span: 3
visibility:
- condition: or
conditions:
- condition: state
entity: binary_sensor.minnesota_twins_inhibit
state: 'off'
- condition: state
entity: binary_sensor.cleveland_guardians_inhibit
state: 'off'
- condition: state
entity: binary_sensor.los_angeles_dodgers_inhibit
state: 'off'
- type: grid
cards:
- type: heading
heading: NHL
- type: custom:teamtracker-card
entity: sensor.minnesota_wild
visibility:
- condition: state
entity: sensor.minnesota_wild
state_not: NOT_FOUND
- condition: state
entity: sensor.minnesota_wild
state_not: BYE
- condition: state
entity: binary_sensor.minnesota_wild_inhibit
state: 'off'
column_span: 1
visibility:
- condition: state
entity: binary_sensor.minnesota_wild_inhibit
state: 'off'
- type: grid
cards:
- type: heading
heading: Motorsports
- type: custom:mushroom-template-card
primary: Hello, {{user}}
secondary: For the latest Formula 1 statistics, tap this card!
icon: fas:flag-checkered
icon_color: |-
{% if is_state('sensor.formula_one','PRE') %}
white
{% elif is_state('sensor.formula_one','IN') %}
green
{% elif is_state('sensor.formula_one','POST') %}
red
{% else %}
black
{% endif %}
badge_icon: |-
{% if is_state('sensor.formula_one','PRE') %}
mdi:car-clock
{% elif is_state('sensor.formula_one','IN') %}
mdi:car-multiple
{% elif is_state('sensor.formula_one','POST') %}
mdi:flag-checkered
{% else %}
mdi:close
{% endif %}
layout: horizontal
fill_container: false
multiline_secondary: false
tap_action:
action: navigate
navigation_path: /lovelace/formula-1
hold_action:
action: none
double_tap_action:
action: none
badge_color: |-
{% if is_state('sensor.formula_one','PRE') %}
grey
{% elif is_state('sensor.formula_one','IN') %}
green
{% elif is_state('sensor.formula_one','POST') %}
red
{% else %}
black
{% endif %}
column_span: 1
- type: grid
cards:
- type: heading
heading_style: title
heading: College Hockey
- type: custom:teamtracker-card
entity: sensor.michigan_wolverines_hockey
visibility:
- condition: state
entity: sensor.michigan_wolverines_hockey
state_not: NOT_FOUND
- condition: state
entity: sensor.michigan_wolverines_hockey
state_not: BYE
- condition: state
entity: binary_sensor.michigan_wolverines_hockey_inhibit
state: 'off'
show_league: false
- type: custom:teamtracker-card
entity: sensor.minnesota_golden_gophers_hockey
visibility:
- condition: state
entity: sensor.minnesota_golden_gophers_hockey
state_not: NOT_FOUND
- condition: state
entity: sensor.minnesota_golden_gophers_hockey
state_not: BYE
- condition: state
entity: binary_sensor.minnesota_golden_gophers_hockey_inhibit
state: 'off'
show_league: false
- type: custom:teamtracker-card
entity: sensor.minnesota_state_mavericks_hockey
visibility:
- condition: state
entity: sensor.minnesota_state_mavericks_hockey
state_not: NOT_FOUND
- condition: state
entity: sensor.minnesota_state_mavericks_hockey
state_not: BYE
- condition: state
entity: binary_sensor.minnesota_state_mavericks_hockey_inhibit
state: 'off'
show_league: false
column_span: 3
visibility:
- condition: or
conditions:
- condition: state
entity: binary_sensor.michigan_wolverines_hockey_inhibit
state: 'off'
- condition: state
entity: binary_sensor.minnesota_golden_gophers_hockey_inhibit
state: 'off'
- condition: state
entity: binary_sensor.minnesota_state_mavericks_hockey_inhibit
state: 'off'
max_columns: 5
cards: []
subview: true
- title: Climate
path: climate
icon: mdi:home-thermometer
type: sections
sections:
- type: grid
cards:
- type: heading
heading: Climate Devices On
heading_style: title
icon: m3rf:climate-mini-split
- type: custom:auto-entities
show_empty: false
card:
type: entities
show_header_toggle: false
state_color: true
filter:
include:
- options: {}
domain: fan
- options: {}
domain: climate
exclude:
- options: {}
entity_id: fan.all_fans
- options: {}
state: 'off'
- options: {}
state: unavailable
- options: {}
integration: generic_thermostat
sort:
method: friendly_name
reverse: false
- type: heading
icon: mdi:home-thermometer
heading: Floor Average Temperatures
heading_style: title
- type: custom:auto-entities
card:
type: entities
state_color: true
show_header_toggle: false
filter:
include:
- options: {}
entity_id: sensor.*floor_average_temperature
exclude: []
sort:
method: state
numeric: true
reverse: true
- type: heading
icon: hue:motion-sensor-temperature
heading: Room Temperatures
heading_style: title
- type: custom:auto-entities
card:
type: entities
show_header_toggle: false
title: Room Temperature Warnings
state_color: true
filter:
include:
- options: {}
entity_id: binary_sensor.*_hot
state: 'on'
- options: {}
entity_id: binary_sensor.*_cold
state: 'on'
sort:
method: entity_id
reverse: false
numeric: false
ignore_case: false
show_empty: false
- type: custom:auto-entities
card:
type: entities
state_color: true
show_header_toggle: false
filter:
include:
- options: {}
device_manufacturer: Signify Netherlands B.V.
entity_id: sensor.*_temperature
exclude: []
sort:
method: state
numeric: true
reverse: true
- type: grid
cards:
- type: heading
heading: Master Bedroom
heading_style: title
icon: mdi:bed
- type: entities
entities:
- entity: switch.master_bedroom_aircon_display
name: A/C Display
- entity: switch.master_bedroom_aircon_prompt_tone
name: Prompt Tone
- entity: binary_sensor.master_bedroom_aircon_filter_alert
name: Filter Status
- entity: input_number.master_bedroom_daytime_temp
name: Daytime Temp
- entity: input_number.master_bedroom_night_temp
name: Night Temp
- entity: input_number.master_bedroom_bedtime_temp
name: Bedtime Temp
- entity: button.master_bedroom_fan_only
name: A/C Fan Only
- entity: button.master_bedroom_day_mode
name: Day Mode
icon: m3rf:sunny
- entity: button.master_bedroom_night_mode
name: Night Mode
- entity: button.master_bedroom_bedtime_mode
name: Bedtime Mode
- entity: button.master_bedroom_climate_reset
name: Climate Reset
show_header_toggle: false
state_color: true
visibility:
- condition: state
entity: input_boolean.master_bedroom_aircon_installed
state: 'on'
- type: heading
icon: m3o:schedule
heading: Scheduling
heading_style: title
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: entities
entities:
- entity: input_select.scheduled_climate_mode_master_bedroom_aircon
name: Scheduled Mode - Aircon
- entity: input_select.scheduled_climate_mode_master_bedroom_fan
name: Scheduled Mode - Fan
- entity: input_datetime.master_bedroom_cooling
name: Cooling
- entity: input_datetime.master_bedroom_fan
name: Fan
- entity: input_boolean.master_bedroom_climate_override
name: Climate Schedule Override
state_color: true
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: heading
icon: m3of:data-thresholding
heading: Thresholds
heading_style: title
visibility:
- condition: user
users:
- c3909d27048140729f002aaef0391775
- type: entities
entities:
- entity: input_number.master_bedroom_fan_threshold
name: Fan
- entity: input_number.master_bedroom_aircon_run_threshold
name: Aircon Run
secondary_info: >
{% set threshold =
states('input_number.master_bedroom_aircon_run_threshold') |
int %} {% set low = states('sensor.tonights_low_temp') | int
%} {{ 'Threshold Met' if low >= threshold else '' }}
- entity: input_number.master_bedroom_aircon_mode_threshold
name: Aircon Mode
secondary_info: >
{% set threshold =
states('input_number.master_bedroom_aircon_mode_threshold') |
int %} {% set low = states('sensor.tonights_low_temp') | int
%} {{ 'Threshold Met' if low >= threshold else '' }}
- entity: input_number.master_bedroom_auto_cooling_threshold
name: Auto Cooling
secondary_info: >
{% set threshold =
states('input_number.master_bedroom_auto_cooling_threshold') |
int %} {% set roomtemp =
states('sensor.master_bedroom_temperature') | int %} {{
'Threshold Met' if roomtemp >= threshold else '' }}
- entity: input_number.master_bedroom_mode_switch_threshold
name: Mode Switch
secondary_info: >
{% set threshold =
states('input_number.master_bedroom_mode_switch_threshold') |
int %} {% set high = states('sensor.todays_high_temp') | int
%} {{ 'Threshold Met' if high >= threshold else '' }}
- entity: input_boolean.master_bedroom_aircon_installed
name: Aircon Installed
- entity: input_boolean.master_bedroom_climate_protocol
name: Climate Automations
visibility:
- condition: and
conditions:
- condition: state
entity: input_boolean.master_bedroom_aircon_installed
state: 'on'
- condition: user
users:
- c3909d27048140729f002aaef0391775
show_header_toggle: false
state_color: true
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: grid
cards:
- type: heading
heading: Emma Bedroom
heading_style: title
icon: mdi:bed
- type: entities
entities:
- entity: switch.emma_bedroom_aircon_display
name: A/C Display
- entity: switch.emma_bedroom_aircon_prompt_tone
name: Prompt Tone
- entity: switch.emma_bedroom_climate_watchdog
name: Climate Watchdog
secondary_info: Protects aircon settings
- entity: binary_sensor.emma_bedroom_aircon_filter_alert
name: Filter Status
- entity: input_number.emma_bedroom_daytime_temp
name: Daytime Temp
- entity: input_number.emma_bedroom_night_temp
name: Night Temp
- entity: input_number.emma_bedroom_bedtime_temp
name: Bedtime Temp
- entity: button.emma_bedroom_fan_only
name: A/C Fan Only
- entity: button.emma_bedroom_day_mode
name: Day Mode
icon: m3rf:sunny
- entity: button.emma_bedroom_night_mode
name: Night Mode
- entity: button.emma_bedroom_bedtime_mode
name: Bedtime Mode
- entity: button.emma_bedroom_climate_reset
name: Climate Reset
show_header_toggle: false
state_color: true
visibility:
- condition: state
entity: input_boolean.emma_bedroom_aircon_installed
state: 'on'
- type: heading
icon: m3o:schedule
heading: Scheduling
heading_style: title
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: entities
entities:
- entity: input_select.scheduled_climate_mode_emma_bedroom
name: Scheduled Mode
- entity: input_datetime.emma_bedroom_climate
name: Climate
- entity: input_boolean.emma_bedroom_climate_override
name: Climate Schedule Override
state_color: true
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: heading
icon: m3of:data-thresholding
heading: Thresholds
heading_style: title
visibility:
- condition: user
users:
- c3909d27048140729f002aaef0391775
- type: entities
entities:
- entity: input_number.emma_bedroom_aircon_run_threshold
name: Run Threshold
secondary_info: >
{% set threshold =
states('input_number.emma_bedroom_aircon_run_threshold') | int
%} {% set low = states('sensor.tonights_low_temp') | int %} {{
'Threshold Met' if low >= threshold else '' }}
- entity: input_number.emma_bedroom_aircon_mode_threshold
name: Mode Threshold
secondary_info: >
{% set threshold =
states('input_number.emma_bedroom_aircon_mode_threshold') |
int %} {% set low = states('sensor.tonights_low_temp') | int
%} {{ 'Threshold Met' if low >= threshold else '' }}
- entity: input_number.emma_bedroom_auto_cooling_threshold
name: EBR Auto Cooling
secondary_info: >
{% set threshold =
states('input_number.emma_bedroom_auto_cooling_threshold') |
int %} {% set roomtemp =
states('sensor.emma_bedroom_temperature') | int %} {{
'Threshold Met' if roomtemp >= threshold else '' }}
- entity: input_number.emma_bedroom_mode_switch_threshold
name: EBR Mode Switch
secondary_info: >
{% set threshold =
states('input_number.emma_bedroom_mode_switch_threshold') |
int %} {% set high = states('sensor.todays_high_temp') | int
%} {{ 'Threshold Met' if high >= threshold else '' }}
- entity: input_boolean.emma_bedroom_aircon_installed
name: Aircon Installed
- entity: input_boolean.emma_bedroom_heater_installed
name: Heater Installed
- entity: input_boolean.emma_bedroom_climate_protocol
name: Climate Automations
- entity: switch.emma_bedroom_climate_watchdog
name: Climate Watchdog
visibility:
- condition: and
conditions:
- condition: state
entity: input_boolean.emma_bedroom_aircon_installed
state: 'on'
- condition: user
users:
- c3909d27048140729f002aaef0391775
show_header_toggle: false
state_color: true
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: grid
cards:
- type: heading
heading: Climate Feed
heading_style: title
icon: mdi:timeline-text
- type: custom:home-feed-card
card_id: climate_feed_ac
show_empty: false
id_filter: ^home_feed_.*
more_info_on_tap: true
state_color: true
entities:
- entity: climate.master_bedroom_aircon
icon: mdi:air-conditioner
exclude_states:
- unavailable
- unknown
- entity: climate.emma_bedroom_aircon
icon: mdi:air-conditioner
exclude_states:
- unavailable
- unknown
- entity: sensor.master_bedroom_target_temp
icon: mdi:thermostat
name: Master Bedroom Set Temp
exclude_states:
- unavailable
- unknown
- entity: sensor.emma_bedroom_target_temp
icon: mdi:thermostat
name: Emma Bedroom Set Temp
exclude_states:
- unavailable
- unknown
- entity: fan.master_bedroom_fan
name: Master Bedroom Fan
exclude_states:
- unavailable
- unknown
- entity: fan.basement_fan
name: Basement Fan
exclude_states:
- unavailable
- unknown
- entity: fan.kallen_bedroom_fan
name: Kallen Fan
exclude_states:
- unavailable
- unknown
- entity: switch.master_bedroom_aircon_eco_mode
name: Master Bedroom Eco Mode
- entity: sensor.master_bedroom_aircon_fan_mode
name: Master Bedroom A/C Fan
exclude_states:
- unavailable
- unknown
- entity: binary_sensor.emma_bedroom_aircon_fan
name: Emma Bedroom A/C Fan
exclude_states:
- unavailable
- unknown
- entity: binary_sensor.emma_bedroom_aircon_compressor
name: Emma Bedroom A/C Compressor
exclude_states:
- unavailable
- unknown
- entity: switch.emma_bedroom_aircon_eco_mode
name: Emma Bedroom Eco Mode
- entity: sensor.emma_bedroom_aircon_fan_mode
name: Emma Bedroom A/C Fan
exclude_states:
- unavailable
- unknown
- entity: binary_sensor.master_bedroom_aircon_fan
name: Master Bedroom A/C Fan
exclude_states:
- unavailable
- unknown
- entity: binary_sensor.master_bedroom_aircon_compressor
name: Master Bedroom A/C Compressor
exclude_states:
- unavailable
- unknown
- entity: climate.basement_studio_vtherm
name: Basement Studio VTherm
exclude_states:
- unavailable
- unknown
- entity: switch.basement_studio_heater
name: Basement Studio Heater
exclude_states:
- unavailable
- unknown
- entity: climate.emma_bedroom_vtherm
name: Emma Bedroom VTherm
exclude_states:
- unavailable
- unknown
- entity: switch.emma_bedroom_heater
name: Emma Bedroom Heater
exclude_states:
- unavailable
- unknown
- entity: switch.master_bedroom_aircon_display
name: Master Bedroom A/C Display
exclude_states:
- unavailable
- unknown
- entity: switch.emma_bedroom_aircon_display
name: Emma Bedroom A/C Display
exclude_states:
- unavailable
- unknown
max_columns: 4
cards: []
badges: []
subview: true
- title: Mobile Devices
path: mobile-devices
icon: mdi:cellphone-information
type: sections
sections:
- type: grid
cards:
- type: heading
heading: Tony's iPhone
- type: custom:streamline-card
template: iphone_entities_card
variables:
- device: tony_s_iphone
- type: custom:streamline-card
template: phone_info_grid
variables:
- device: tony_s_iphone
column_span: 2
- type: grid
cards:
- type: heading
heading: Tina's iPhone
- type: custom:streamline-card
template: iphone_entities_card
variables:
- device: tinas_iphone
- type: custom:streamline-card
template: phone_info_grid
variables:
- device: tinas_iphone
column_span: 2
- type: grid
cards:
- type: heading
heading: Kallen's iPhone
- type: custom:streamline-card
template: iphone_entities_card
variables:
- device: kallen_iphone
- type: custom:streamline-card
template: phone_info_grid
variables:
- device: kallen_iphone
column_span: 2
- type: grid
cards:
- type: heading
heading: Map
- type: map
entities:
- entity: person.tony_stork
- entity: person.christina_stork
- entity: person.kallen_stork
- entity: zone.bob_evans
- entity: zone.home
- entity: zone.aldi
- entity: zone.chief
- entity: zone.courtney_cave
- entity: zone.dollar_general_clinton_st
- entity: zone.elementary_school
- entity: zone.kroger
- entity: zone.meijer
- entity: zone.menards
- entity: zone.middle_school
- entity: zone.rite_aid
- entity: zone.the_elder_storks
- entity: zone.wal_mart
- entity: zone.latty
hours_to_show: 24
theme_mode: dark
- type: grid
cards:
- type: heading
heading: Tony's iPad
- type: custom:streamline-card
template: ipad_entities_card
variables:
- device: tony_s_ipad
- type: grid
cards:
- type: heading
heading: Tinas iPad
- type: custom:streamline-card
template: ipad_entities_card
variables:
- device: tinas_ipad
- type: grid
cards:
- type: heading
heading: Tony's Accessories
- type: entities
entities:
- type: custom:battery-state-entity
entity: sensor.tony_s_apple_watch_battery
name: Battery
tap_action: more-info
charging_state:
entity_id: sensor.tony_s_apple_watch_battery_status
state: Charging
- entity: sensor.tony_s_apple_watch_zone_distance
name: Distance
- entity: sensor.tony_s_apple_watch_info
name: Info
show_header_toggle: false
state_color: true
title: Apple Watch
- type: entities
entities:
- entity: sensor.tonys_airpods_pro_zone_distance
name: Distance
- entity: sensor.tonys_airpods_pro_info
name: Info
state_color: true
show_header_toggle: false
title: Airpods Pro
- type: grid
cards:
- type: heading
heading: Tina's Accessories
- type: entities
entities:
- type: custom:battery-state-entity
entity: sensor.christinas_apple_watch_battery
name: Battery
tap_action: more-info
charging_state:
entity_id: sensor.christinas_apple_watch_battery_status
state: Charging
- entity: sensor.christinas_apple_watch_zone_distance
name: Distance
- entity: sensor.christinas_apple_watch_info
name: Info
show_header_toggle: false
state_color: true
title: Apple Watch
- type: entities
entities:
- entity: sensor.tinas_airpods_pro_zone_distance
name: Distance
- entity: sensor.tinas_airpods_pro_info
name: Info
show_header_toggle: false
state_color: true
title: Airpods Pro
max_columns: 4
cards: []
badges:
- type: entity
show_name: true
show_state: true
show_icon: true
entity: person.tony_stork
color: ''
- type: entity
show_name: true
show_state: true
show_icon: true
entity: person.christina_stork
color: ''
- type: entity
show_name: true
show_state: true
show_icon: true
entity: person.kallen_stork
color: ''
subview: true
- type: sections
max_columns: 4
title: Test
path: test
icon: mdi:test-tube
subview: true
visible:
- user: c3909d27048140729f002aaef0391775
sections:
- type: grid
cards:
- type: heading
heading: Templates
heading_style: title
icon: mdi:wrench
- type: custom:streamline-card
template: main_button_name
variables:
name: Main Button Name
icon: mdi:button-cursor
- type: custom:streamline-card
template: main_button_floors
variables:
occupancy_entity: binary_sensor.basement_occupied
name: Main Button Floors
icon: mdi:twitch
navigation_path: '#basement-studio'
temp_entity: sensor.basement_studio_temperature
lux_entity: sensor.basement_studio_illuminance
hot_entity: binary_sensor.basement_studio_hot
cold_entity: binary_sensor.basement_studio_cold
- type: custom:streamline-card
template: main_button_outdoors
variables:
occupancy_entity: binary_sensor.front_doorbell_motion_mqtt
name: Main Button Outdoors
icon: hue:room-porch
navigation_path: '#front-porch'
temp_entity: sensor.home_tempest_temperature
lux_entity: sensor.home_tempest_illuminance
- type: custom:streamline-card
template: floors_separator
variables:
name: Floors Separator
icon: mdi:home-floor-1
power_entity: sensor.first_floor_total_power_sensor
lights_entity: light.first_floor_lights
floor_lights_count: sensor.first_floor_lights_on
- type: custom:streamline-card
template: state_color_button
variables:
entity: binary_sensor.living_room_front_motion
name: State Color Button
color: accent-color
columns: '2'
- type: custom:streamline-card
template: state_color_button_nav
variables:
entity: binary_sensor.security_faults
name: State Color Button Nav
navigation_path: '#security'
color: error-color
columns: '2'
- type: custom:streamline-card
template: contact_sensor_button
variables:
entity: binary_sensor.side_window_1
name: Contact Sensor Button
color: error-color
columns: '2'
- type: grid
cards:
- type: heading
heading: Template Development
heading_style: title
icon: mdi:wrench-cog
- type: custom:bubble-card
card_type: button
button_type: name
name: Main Button Name
icon: mdi:button-cursor
tap_action:
action: navigate
navigation_path: '#security'
button_action:
tap_action:
action: navigate
navigation_path: '#security'
columns: 2
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: var(--bubble-main-background-color) !important;
}
- type: custom:bubble-card
card_type: button
button_type: state
entity: binary_sensor.basement_occupied
name: Main Button Floors
icon: mdi:twitch
show_state: false
double_tap_action:
action: none
hold_action:
action: none
tap_action:
action: navigate
navigation_path: '#basement-studio'
button_action:
double_tap_action:
action: none
hold_action:
action: none
tap_action:
action: navigate
navigation_path: '#basement-studio'
sub_button:
- entity: sensor.basement_studio_temperature
name: Temp
show_state: true
show_name: false
tap_action:
action: navigate
navigation_path: '#basement-studio'
show_background: false
- entity: sensor.basement_studio_illuminance
show_state: true
name: Lux
tap_action:
action: navigate
navigation_path: '#basement-studio'
show_background: false
modules:
- default
- temperature_colouring
- main_button_floors
temperature_colouring:
temperature_sensor: sensor.basement_studio_temperature
elements:
sub_buttons:
- 1
main_button_floors:
occupancy_entity: binary_sensor.basement_occupied
hot_entity: binary_sensor.basement_studio_hot
cold_entity: binary_sensor.basement_studio_cold
- type: custom:bubble-card
card_type: button
button_type: state
entity: binary_sensor.front_doorbell_motion_mqtt
name: Main Button Outdoors
icon: hue:room-porch
show_state: false
double_tap_action:
action: none
hold_action:
action: none
tap_action:
action: navigate
navigation_path: '#front-porch'
button_action:
double_tap_action:
action: none
hold_action:
action: none
tap_action:
action: navigate
navigation_path: '#front-porch'
sub_button:
- entity: sensor.home_tempest_temperature
name: Temp
show_state: true
show_name: false
tap_action:
action: navigate
navigation_path: '#front-porch'
show_background: false
- entity: sensor.home_tempest_illuminance
show_state: true
name: Lux
tap_action:
action: navigate
navigation_path: '#front-porch'
show_background: false
modules:
- default
- temperature_colouring
- main_button_outdoors
temperature_colouring:
temperature_sensor: sensor.home_tempest_temperature
elements:
sub_buttons:
- 1
main_button_outdoors:
occupancy_entity: binary_sensor.front_doorbell_motion_mqtt
- type: custom:bubble-card
card_type: separator
name: Floors Separator
icon: mdi:home-floor-1
sub_button:
- entity: sensor.first_floor_total_power_sensor
name: Power
show_state: true
tap_action:
action: none
- entity: light.first_floor_lights
name: Lights
icon: mdi:lightbulb
show_name: true
show_state: false
tap_action:
action: toggle
modules:
- badgy-condition-helper
badgy-condition-helper:
entity_badges:
'1':
entity: sensor.first_floor_lights_on
condition:
- condition: state
entity_id: light.first_floor_lights
state: 'on'
- type: custom:bubble-card
card_type: button
button_type: state
entity: binary_sensor.living_room_back_motion
name: State Color Button
show_state: true
tap_action:
action: more-info
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
columns: 2
modules:
- default
- state_color_button
state_color_button:
color: accent-color
- type: custom:bubble-card
card_type: button
button_type: state
entity: binary_sensor.security_faults
name: State Color Button Nav
show_state: true
tap_action:
action: navigate
navigation_path: '#security'
double_tap_action:
action: none
hold_action:
action: none
button_action:
tap_action:
action: navigate
navigation_path: '#security'
double_tap_action:
action: none
hold_action:
action: none
columns: 2
modules:
- default
- state_color_button
state_color_button:
color: error-color
- type: custom:bubble-card
card_type: button
button_type: state
entity: binary_sensor.side_window_1
name: Contact Sensor Button
show_state: true
tap_action:
action: more-info
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
columns: 2
modules:
- default
- state_color_button
- get_state_attribute
state_color_button:
color: error-color
get_state_attribute:
- entity: binary_sensor.side_window_1
- entity: binary_sensor.side_window_1_tamper
- type: grid
cards:
- type: heading
heading: Popups
heading_style: title
icon: m3r:ad-group
- type: custom:streamline-card
template: main_button_name
variables:
name: Open Test Popup
icon: mdi:test-tube
navigation_path: '#testing'
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#testing'
button_type: name
name: Pop-up Testing
icon: mdi:test-tube
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_temperature_button
variables:
entity: sensor.basement_studio_temperature
name: Popup Temp Button
hot_entity: binary_sensor.basement_studio_hot
cold_entity: binary_sensor.basement_studio_cold
- type: custom:bubble-card
card_type: empty-column
- type: custom:streamline-card
template: popup_timer_card
variables:
entity: timer.basement_studio_door_timer
name: Popup Timer Card
- type: grid
cards:
- type: heading
heading: Popup Development
heading_style: title
icon: m3r:add-ad
- type: custom:bubble-card
card_type: button
button_type: name
name: Open Dev Popup
icon: mdi:test-tube
tap_action:
action: navigate
navigation_path: '#testing-dev'
button_action:
tap_action:
action: navigate
navigation_path: '#testing-dev'
columns: 2
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: var(--bubble-main-background-color) !important;
}
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#testing-dev'
button_type: name
name: Pop-up Dev
icon: mdi:test-tube
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.basement_studio_temperature
name: Popup Temp Button
show_attribute: false
modules:
- default
- popup_temperature_button
popup_temperature_button:
hot_entity: binary_sensor.basement_studio_hot
cold_entity: binary_sensor.basement_studio_cold
- type: custom:bubble-card
card_type: empty-column
- type: conditional
conditions:
- condition: state
entity: timer.basement_studio_door_timer
state_not: idle
card:
type: custom:bubble-card
card_type: button
button_type: state
entity: timer.basement_studio_door_timer
name: Popup Timer Button
icon: mdi:timer
sub_button:
- entity: timer.basement_studio_door_timer
tap_action:
action: perform-action
perform_action: timer.start
target:
entity_id: timer.basement_studio_door_timer
name: Start
icon: mdi:play
visibility: []
- entity: timer.basement_studio_door_timer
name: Pause
icon: mdi:pause
tap_action:
action: perform-action
perform_action: timer.pause
target:
entity_id: timer.basement_studio_door_timer
- entity: timer.basement_studio_door_timer
name: Cancel
icon: mdi:cancel
tap_action:
action: perform-action
perform_action: timer.cancel
target:
entity_id: timer.basement_studio_door_timer
- entity: timer.basement_studio_door_timer
name: Finish
icon: mdi:clock-end
tap_action:
action: perform-action
perform_action: timer.finish
target:
entity_id: timer.basement_studio_door_timer
modules:
- default
- popup_timer_card
- type: grid
cards:
- type: heading
heading: Birthday Countdown Cards
heading_style: title
icon: mdi:calendar
- type: custom:timeflow-card
title: >-
{% set person_name = "Tony" %} {% set birth_year = 1988 %} {% set
birthday_month = 9 %} {% set birthday_day = 8 %} {% set
current_date = now() %} {% set this_year_birthday =
current_date.replace(month=birthday_month, day=birthday_day,
hour=0, minute=0, second=0, microsecond=0) %} {% if current_date >
this_year_birthday %}
{% set next_birthday = this_year_birthday.replace(year=this_year_birthday.year + 1) %}
{% else %}
{% set next_birthday = this_year_birthday %}
{% endif %} {% set age = next_birthday.year - birth_year %} {{
person_name }}'s {{ age }}{{
'st' if age % 10 == 1 and age % 100 != 11 else
'nd' if age % 10 == 2 and age % 100 != 12 else
'rd' if age % 10 == 3 and age % 100 != 13 else
'th'
}} Birthday
target_date: >-
{% set birthday_month = 9 %} {% set birthday_day = 8 %} {% set
current_date = now() %} {% set this_year_birthday =
current_date.replace(month=birthday_month, day=birthday_day,
hour=0, minute=0, second=0, microsecond=0) %} {% if current_date >
this_year_birthday %}
{% set next_birthday = this_year_birthday.replace(year=this_year_birthday.year + 1) %}
{% else %}
{% set next_birthday = this_year_birthday %}
{% endif %} {{ next_birthday.isoformat() }}
creation_date: >-
{% set current_date = now() %} {% set start_of_year =
current_date.replace(month=1, day=1, hour=0, minute=0, second=0,
microsecond=0) %} {{ start_of_year.isoformat() }}
show_days: true
show_hours: true
show_minutes: true
show_seconds: false
expired_text: Happy Birthday Tony! 🎉
color: >-
{% set birthday_month = 9 %} {% set birthday_day = 8 %} {% set
current_date = now() %} {% set this_year_birthday =
current_date.replace(month=birthday_month, day=birthday_day,
hour=0, minute=0, second=0, microsecond=0) %} {% if current_date >
this_year_birthday %}
{% set next_birthday = this_year_birthday.replace(year=this_year_birthday.year + 1) %}
{% else %}
{% set next_birthday = this_year_birthday %}
{% endif %} {% set days_until = (next_birthday -
current_date).days %} {% if days_until == 0 %}
#FF6B6B
{% elif days_until <= 7 %}
#4ECDC4
{% elif days_until <= 30 %}
#45B7D1
{% else %}
#96CEB4
{% endif %}
background_color: '#2C3150'
progress_color: '#D0CFCF'
aspect_ratio: 4/2
stroke_width: 6
card_mod:
style: |
ha-card .title {
font-size: 2.2rem;
}
ha-card .subtitle {
font-size: 2.0rem;
}
visibility:
- condition: numeric_state
entity: sensor.anniversary_tony_s_birthday
below: 8
header:
layout: responsive
badges_position: bottom
badges_wrap: wrap
card:
type: markdown
text_only: true
content: |-
# Hello {{ user }}
Add your text here, template variables are supported ✨
badges:
- type: custom:mushroom-template-badge
content: '{{ "Farts Activated" if is_state(entity,''on'') else "Farts Inactive" }}'
icon: mdi:test-tube
color: '{{ "red" if is_state(entity,''on'') else "green" }}'
entity: input_boolean.toggle_testing
label: '{{ state_attr(entity,''friendly_name'') }}'
tap_action:
action: toggle
hold_action:
action: more-info
double_tap_action:
action: none
title: ''