Files
ha-dashboards/mobile_dashboard.yaml
Tony Stork 44b5c63d39 Switch to bubble climate cards on mobile dashboard
This saves space, and also fits the aesthetic of the mobile dashboard whereas the old card didn't entirely fit.
2025-01-30 17:12:08 -05:00

5027 lines
194 KiB
YAML

decluttering_templates:
main_button_state_red:
default:
- name: ''
- columns: 2
- navigation_path: ''
card:
type: custom:bubble-card
card_type: button
button_type: state
entity: '[[entity]]'
name: '[[name]]'
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
double_tap_action:
action: none
hold_action:
action: more-info
styles: |-
.is-unavailable {
opacity: 0.5 !important;
}
.bubble-button-background {
opacity: 1 !important;
background-color: ${state === 'on' ? 'var(--error-color)' : 'var(--card-background-color)'} !important;
transition: background-color 1s !important;
}
.bubble-icon-container {
background: ${state === 'on' ? 'var(--error-color)' : 'var(--card-background-color)'} !important;
}
.bubble-icon-container::after {
opacity: ${state === 'on' ? 0.3 : 0} !important;
transition: all 1s !important;
}
.bubble-icon {
display: flex !important;
opacity: 0.5 !important;
}
.is-on .bubble-icon {
opacity: 1 !important;
}
show_state: false
columns: '[[columns]]'
card_layout: large
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]]'
card_layout: large
columns: '[[columns]]'
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: var(--card-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]]'
card_mod:
style: |-
.is-unavailable {
opacity: 0.5 !important;
}
.bubble-button-background {
opacity: 1 !important;
background-color:
{% if is_state(config.entity,'on') %}
var(--accent-color)
{% else %}
var(--card-background-color)
{% endif %}
!important;
transition: background-color 1s !important;
}
.bubble-icon-container {
background:
{% if is_state(config.entity,'on') %}
var(--accent-color)
{% else %}
var(--card-background-color)
{% endif %}
!important;
background: ${state === 'on' ? 'var(--accent-color)' : 'var(--card-background-color)'} !important;
}
.bubble-icon-container::after {
opacity:
{% if is_state(config.entity,'on') %}
0.3
{% else %}
0
{% endif %}
!important;
transition: all 1s !important;
}
.bubble-icon {
display: flex !important;
opacity: 0.5 !important;
}
.is-on .bubble-icon {
opacity: 1 !important;
}
.bubble-sub-button {
background: transparent
}
.bubble-sub-button-1 {
background-color:
{% if is_state('[[hot_entity]]','on') %}
var(--error-color)
{% elif is_state('[[cold_entity]]','on') %}
var(--purple-color)
{% elif is_state(config.entity,'on') %}
var(--accent-color)
{% else %}
var(--card-background-color)
{% endif %}
!important;
}
card_layout: large-2-rows
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
floors_separator:
defaults:
- name: ''
- icon: ''
card:
type: custom:bubble-card
card_type: separator
name: '[[name]]'
icon: '[[icon]]'
card_layout: large
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
popup_security_button:
defaults:
- name: ''
card:
type: custom:bubble-card
card_type: button
button_type: state
entity: '[[entity]]'
name: '[[name]]'
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;
}
.bubble-icon-container {
background: ${state === 'on' ? 'var(--error-color)' : 'var(--card-background-color)'} !important;
}
.bubble-icon-container::after {
opacity: ${state === 'on' ? 0.3 : 0} !important;
transition: all 1s !important;
}
.bubble-icon {
display: flex !important;
opacity: 0.5 !important;
}
.is-on .bubble-icon {
opacity: 1 !important;
}
popup_accent_color_button:
defaults:
- name: ''
card:
type: custom:bubble-card
card_type: button
button_type: state
entity: '[[entity]]'
name: '[[name]]'
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
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: ${state === 'on' ? 'var(--accent-color)' : 'var(--background-color-2)'} !important;
}
.bubble-icon {
color: ${state === 'on' ? 'var(--accent-color)' : 'var(--text-color)'} !important;
}
popup_temperature_button:
defaults:
- name: ''
card:
type: custom:bubble-card
card_type: button
button_type: state
entity: '[[entity]]'
name: '[[name]]'
show_attribute: false
styles: |
.is-unavailable {
opacity: 0.5 !important;
}
.bubble-button-background {
opacity: 1 !important;
background-color: ${hass.states['[[hot_entity]]'].state === 'on' ? 'var(--error-color)' : 'var(--background-color-2)'} !important;
transition: background-color 1s !important;
}
.bubble-icon-container {
background: ${hass.states['[[hot_entity]]'].state === 'on' ? 'var(--error-color)' : 'var(--card-background-color)'} !important;
}
.bubble-icon-container::after {
opacity: ${hass.states['[[hot_entity]]'].state === 'on' ? 0.3 : 0} !important;
transition: all 1s !important;
}
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: 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: grid
cards:
- type: heading
heading: Housewide
heading_style: title
icon: mdi:home-analytics
- type: custom:decluttering-card
template: main_button_state_red
variables:
- name: Security
- entity: binary_sensor.security_faults
- navigation_path: '#security'
- columns: 2
grid_options:
columns: 6
rows: auto
- type: custom:decluttering-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:decluttering-card
template: main_button_name
variables:
- name: Briefings
- icon: mdi:text
- navigation_path: '#briefings'
- columns: 2
grid_options:
columns: 6
rows: auto
- type: custom:decluttering-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: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_layout: large
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(--card-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-container {
background:
{% 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(--card-background-color)
{% elif feeding_reminders < 3 and cleaning_reminders < 3 %}
var(--warning-color)
{% else %}
var(--error-color)
{% endif %}
!important;
}
.bubble-icon-container::after {
opacity:
{% 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 or cleaning_reminders > 0 %}
0.3
{% else %}
0
{% endif %}
!important;
transition: all 1s !important;
}
.bubble-icon {
display: flex !important;
opacity: 0.5 !important;
}
.is-on .bubble-icon {
opacity: 1 !important;
}
- type: custom:decluttering-card
template: main_button_name
variables:
- name: Messaging
- icon: mdi:bullhorn
- navigation_path: '#messaging'
- columns: 2
grid_options:
columns: 6
rows: auto
- type: custom:decluttering-card
template: main_button_name
variables:
- name: Running
- icon: mdi:database-clock
- navigation_path: '#running'
- columns: 4
grid_options:
columns: 12
rows: auto
visibility:
- condition: user
users:
- c3909d27048140729f002aaef0391775
- type: custom:decluttering-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:decluttering-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
card_layout: large
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(--card-background-color)
{% elif counters < 3 %}
var(--warning-color)
{% else %}
var(--error-color)
{% endif %}
!important;
transition: background-color 1s !important;
}
.bubble-icon-container {
background:
{% set counters = states.counter
| selectattr('entity_id','contains','tony')
| selectattr('entity_id','contains','meds')
| map(attribute='state')
| max
| int %}
{% if counters == 0 %}
var(--card-background-color)
{% elif counters < 3 %}
var(--warning-color)
{% else %}
var(--error-color)
{% endif %}
!important;
}
.bubble-icon-container::after {
opacity:
{% set counters = states.counter
| selectattr('entity_id','contains','tony')
| selectattr('entity_id','contains','meds')
| map(attribute='state')
| max
| int %}
{% if counters > 0 %}
0.3
{% else %}
0
{% endif %}
!important;
transition: all 1s !important;
}
.bubble-icon {
display: flex !important;
opacity: 0.5 !important;
}
.is-on .bubble-icon {
opacity: 1 !important;
}
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: custom:bubble-card
card_type: button
button_type: name
name: Tina
card_layout: large
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(--card-background-color)
{% elif counters < 3 %}
var(--warning-color)
{% else %}
var(--error-color)
{% endif %}
!important;
transition: background-color 1s !important;
}
.bubble-icon-container {
background:
{% set counters = states.counter
| selectattr('entity_id','contains','tina')
| selectattr('entity_id','contains','meds')
| map(attribute='state')
| max
| int %}
{% if counters == 0 %}
var(--card-background-color)
{% elif counters < 3 %}
var(--warning-color)
{% else %}
var(--error-color)
{% endif %}
!important;
}
.bubble-icon-container::after {
opacity:
{% set counters = states.counter
| selectattr('entity_id','contains','tina')
| selectattr('entity_id','contains','meds')
| map(attribute='state')
| max
| int %}
{% if counters > 0 %}
0.3
{% else %}
0
{% endif %}
!important;
transition: all 1s !important;
}
.bubble-icon {
display: flex !important;
opacity: 0.5 !important;
}
.is-on .bubble-icon {
opacity: 1 !important;
}
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: custom:bubble-card
card_type: button
button_type: name
name: Kallen
card_layout: large
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
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(--card-background-color)
{% elif counters < 3 %}
var(--warning-color)
{% else %}
var(--error-color)
{% endif %}
!important;
transition: background-color 1s !important;
}
.bubble-icon-container {
background:
{% set counters = states.counter
| selectattr('entity_id','contains','kallen')
| selectattr('entity_id','contains','meds')
| map(attribute='state')
| max
| int %}
{% if counters == 0 %}
var(--card-background-color)
{% elif counters < 3 %}
var(--warning-color)
{% else %}
var(--error-color)
{% endif %}
!important;
}
.bubble-icon-container::after {
opacity:
{% set counters = states.counter
| selectattr('entity_id','contains','kallen')
| selectattr('entity_id','contains','meds')
| map(attribute='state')
| max
| int %}
{% if counters > 0 %}
0.3
{% else %}
0
{% endif %}
!important;
transition: all 1s !important;
}
.bubble-icon {
display: flex !important;
opacity: 0.5 !important;
}
.is-on .bubble-icon {
opacity: 1 !important;
}
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: custom:bubble-card
card_type: button
button_type: name
name: Emma
card_layout: large
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(--card-background-color) !important;
}
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: custom:bubble-card
card_type: button
button_type: state
entity: timer.kallen_timer
card_layout: large
columns: 4
visibility:
- condition: user
users:
- 879b4c04e32841b3ad1d2763a11b4e70
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: var(--card-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:decluttering-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:bubble-card
card_type: button
button_type: state
entity: binary_sensor.front_doorbell_motion_mqtt
name: Front Porch
icon: hue:room-porch
show_state: false
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
tap_action:
action: navigate
navigation_path: '#front-porch'
styles: |-
.is-unavailable {
opacity: 0.5 !important;
}
.bubble-button-background {
opacity: 1 !important;
background-color: ${state === 'on' ? 'var(--accent-color)' : 'var(--card-background-color)'} !important;
transition: background-color 1s !important;
}
.bubble-icon-container {
background: ${state === 'on' ? 'var(--accent-color)' : 'var(--card-background-color)'} !important;
}
.bubble-icon-container::after {
opacity: ${state === 'on' ? 0.3 : 0} !important;
transition: all 1s !important;
}
.bubble-icon {
display: flex !important;
opacity: 0.5 !important;
}
.is-on .bubble-icon {
opacity: 1 !important;
}
tap_action:
action: navigate
navigation_path: '#front-porch'
card_layout: large-2-rows
sub_button: []
- type: custom:decluttering-card
template: floors_separator
variables:
- name: Basement
- icon: mdi:home-floor-b
- power_entity: sensor.basement_total_power_sensor
- lights_entity: light.basement_lights
- type: custom:decluttering-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:decluttering-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
- type: custom:decluttering-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:decluttering-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:decluttering-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:decluttering-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:decluttering-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'
card_layout: large
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: var(--card-background-color) !important;
}
- type: custom:decluttering-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
- type: custom:decluttering-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:decluttering-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:decluttering-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:decluttering-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:decluttering-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
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
- 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;
}
.bubble-icon {
color: ${state === 'on' ? 'var(--accent-color)' : 'var(--text-color)'} !important;
}
- 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;
}
.bubble-icon {
color: ${state === 'on' ? 'var(--success-color)' : 'var(--text-color)'} !important;
}
- 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: ''
- 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
styles: |-
.bubble-icon {
animation: ${state === 'on' ? 'slow-rotate 2s linear infinite' : ''};
}
@keyframes slow-rotate {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
- 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
- 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: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
- type: horizontal-stack
cards:
- type: custom:decluttering-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:decluttering-card
template: popup_accent_color_button
variables:
- name: Motion
- entity: binary_sensor.basement_studio_motion
- type: custom:decluttering-card
template: popup_accent_color_button
variables:
- name: Occupied
- entity: binary_sensor.basement_occupied
- type: custom:timer-bar-card
filter: true
entities:
- entity: timer.basement_studio_door_timer
name: Door Timer
sync_issues: ignore
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.basement_studio_door_timer
hold_action:
action: more-info
double_tap_action:
action: none
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
compressed: true
- 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:decluttering-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:decluttering-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:decluttering-card
template: popup_accent_color_button
variables:
- name: Front Motion
- entity: binary_sensor.living_room_front_motion
- type: custom:decluttering-card
template: popup_accent_color_button
variables:
- name: Back Motion
- entity: binary_sensor.living_room_back_motion
- type: custom:decluttering-card
template: popup_accent_color_button
variables:
- name: Occupied
- entity: binary_sensor.living_room_occupied
- type: custom:timer-bar-card
filter: true
entities:
- entity: timer.living_room_motion_timer
name: Motion Timer
sync_issues: ignore
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.living_room_motion_timer
hold_action:
action: more-info
double_tap_action:
action: none
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
compressed: true
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
- type: horizontal-stack
cards:
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Door
- entity: binary_sensor.front_door
- type: custom:bubble-card
card_type: empty-column
- type: custom:bubble-card
card_type: empty-column
- type: horizontal-stack
cards:
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Front 1
- entity: binary_sensor.front_window_1
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Front 2
- entity: binary_sensor.front_window_2
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Front 3
- entity: binary_sensor.front_window_3
- type: horizontal-stack
cards:
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Side 1
- entity: binary_sensor.side_window_1
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Side 2
- entity: binary_sensor.side_window_2
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Side 3
- entity: binary_sensor.side_window_3
- type: horizontal-stack
cards:
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Side 4
- entity: binary_sensor.side_window_4
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Back 1
- entity: binary_sensor.back_window_1
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Back 2
- entity: binary_sensor.back_window_2
- 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:decluttering-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:decluttering-card
template: popup_accent_color_button
variables:
- name: Motion
- entity: binary_sensor.downstairs_bathroom_motion
- type: custom:decluttering-card
template: popup_accent_color_button
variables:
- name: Occupied
- entity: binary_sensor.downstairs_bathroom_occupied
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
- type: horizontal-stack
cards:
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Back
- entity: binary_sensor.downstairs_bathroom_window_1
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Side
- entity: binary_sensor.downstairs_bathroom_window_2
- type: custom:timer-bar-card
filter: true
entities:
- entity: timer.downstairs_bathroom_lights_timer
name: Motion Timer
sync_issues: ignore
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.downstairs_bathroom_lights_timer
hold_action:
action: more-info
double_tap_action:
action: none
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
compressed: true
- type: horizontal-stack
cards: []
- 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: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.tina_desk_strip
name: LED Strip
icon: hue:lightstrip
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:decluttering-card
template: popup_security_button
variables:
- name: Big Window
- entity: binary_sensor.kitchen_big_window
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Sink Window
- entity: binary_sensor.kitchen_sink_window
- 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:decluttering-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:decluttering-card
template: popup_accent_color_button
variables:
- name: Motion
- entity: binary_sensor.mud_room_motion
- type: custom:decluttering-card
template: popup_accent_color_button
variables:
- name: Occupied
- entity: binary_sensor.mud_room_occupied
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
- type: horizontal-stack
cards:
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Back Door
- entity: binary_sensor.back_door
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Window
- entity: binary_sensor.mud_room_window
- type: custom:timer-bar-card
filter: true
entities:
- entity: timer.mud_room_motion_timer
name: Motion Timer
sync_issues: ignore
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.mud_room_motion_timer
hold_action:
action: more-info
double_tap_action:
action: none
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
compressed: true
- 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
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
- type: horizontal-stack
cards:
- type: custom:decluttering-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:decluttering-card
template: popup_accent_color_button
variables:
- name: Motion
- entity: binary_sensor.stairwell_bottom_motion
- type: custom:decluttering-card
template: popup_accent_color_button
variables:
- name: Occupied
- entity: binary_sensor.stairwell_occupied
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
- type: horizontal-stack
cards:
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Window
- entity: binary_sensor.stairway_window_lower
- type: custom:bubble-card
card_type: empty-column
- type: custom:timer-bar-card
filter: true
entities:
- entity: timer.stairwell_motion_timer
name: Motion Timer
sync_issues: ignore
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.stairwell_motion_timer
hold_action:
action: more-info
double_tap_action:
action: none
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
compressed: true
- 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
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
- type: horizontal-stack
cards:
- type: custom:decluttering-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:decluttering-card
template: popup_accent_color_button
variables:
- name: Motion
- entity: binary_sensor.stairwell_top_motion
- type: custom:decluttering-card
template: popup_accent_color_button
variables:
- name: Occupied
- entity: binary_sensor.upstairs_hallway_occupied
- type: custom:timer-bar-card
filter: true
entities:
- entity: timer.upstairs_hallway_motion_timer
name: Motion Timer
sync_issues: ignore
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.upstairs_hallway_motion_timer
hold_action:
action: more-info
double_tap_action:
action: none
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
compressed: true
visibility:
- condition: or
conditions:
- condition: state
entity: timer.upstairs_hallway_motion_timer
state: running
- condition: state
entity: timer.upstairs_hallway_motion_timer
state: paused
- 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:decluttering-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:decluttering-card
template: popup_accent_color_button
variables:
- name: Motion
- entity: binary_sensor.upstairs_bathroom_motion
- type: custom:decluttering-card
template: popup_accent_color_button
variables:
- name: Occupied
- entity: binary_sensor.upstairs_bathroom_occupied
- type: custom:timer-bar-card
filter: true
entities:
- entity: timer.upstairs_bathroom_motion_timer
name: Motion Timer
sync_issues: ignore
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.upstairs_bathroom_motion_timer
hold_action:
action: more-info
double_tap_action:
action: none
- entity: timer.shower_mode_cooldown
name: Cooldown
sync_issues: ignore
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.shower_mode_cooldown
hold_action:
action: more-info
double_tap_action:
action: none
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
compressed: true
- 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
- 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: custom:stack-in-card
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;
}
.bubble-icon {
color: ${state === 'on' ? 'var(--accent-color)' : 'var(--text-color)'} !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;
}
.bubble-icon-container {
background: ${state === 'on' ? 'var(--error-color)' : 'var(--card-background-color)'} !important;
}
.bubble-icon-container::after {
opacity: ${state === 'on' ? 0.3 : 0} !important;
transition: all 1s !important;
}
.bubble-icon {
display: flex !important;
opacity: 0.5 !important;
}
.is-on .bubble-icon {
opacity: 1 !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
styles: |-
.bubble-icon {
animation: ${state === 'on' ? 'slow-rotate 2s linear infinite' : ''};
}
@keyframes slow-rotate {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
- 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:decluttering-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:decluttering-card
template: popup_accent_color_button
variables:
- name: Motion
- entity: binary_sensor.master_bedroom_motion
- type: custom:decluttering-card
template: popup_accent_color_button
variables:
- name: Occupied
- entity: binary_sensor.master_bedroom_occupied
- type: custom:timer-bar-card
filter: true
entities:
- entity: timer.master_bedroom_motion_timer
name: Motion Timer
sync_issues: ignore
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.master_bedroom_motion_timer
hold_action:
action: more-info
double_tap_action:
action: none
- entity: timer.shower_mode_cooldown
name: Cooldown
sync_issues: ignore
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.shower_mode_cooldown
hold_action:
action: more-info
double_tap_action:
action: none
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
compressed: true
- 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
styles: |-
.bubble-icon {
animation: ${state === 'on' ? 'slow-rotate 2s linear infinite' : ''};
}
@keyframes slow-rotate {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
- 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:decluttering-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:decluttering-card
template: popup_accent_color_button
variables:
- name: Motion
- entity: binary_sensor.kallen_bedroom_motion
- type: custom:decluttering-card
template: popup_accent_color_button
variables:
- name: Occupied
- entity: binary_sensor.kallen_bedroom_occupied
- type: custom:timer-bar-card
filter: true
entities:
- entity: timer.kallen_bedroom_motion_timer
name: Motion Timer
sync_issues: ignore
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.kallen_bedroom_motion_timer
hold_action:
action: more-info
double_tap_action:
action: none
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
compressed: true
- 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
- 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
- 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
- type: conditional
conditions:
- condition: state
entity: input_boolean.emma_bedroom_aircon_installed
state: 'on'
card:
type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
entity: fan.emma_air_conditioner
name: Air Conditioner
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
styles: |
.bubble-icon {
animation: ${state === 'on' ? 'slow-rotate 2s linear infinite' : ''};
}
@keyframes slow-rotate {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
- type: custom:bubble-card
card_type: button
button_type: state
entity: binary_sensor.emma_aircon_compressor
name: Compressor
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;
}
.bubble-icon {
color: ${state === 'on' ? 'var(--accent-color)' : 'var(--text-color)'} !important;
}
- 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
- 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:decluttering-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:decluttering-card
template: popup_accent_color_button
variables:
- name: Motion
- entity: binary_sensor.emma_bedroom_motion
- type: custom:decluttering-card
template: popup_accent_color_button
variables:
- name: Occupied
- entity: binary_sensor.emma_bedroom_occupied
- type: custom:timer-bar-card
filter: true
entities:
- entity: timer.emma_bedroom_motion_timer
name: Motion Timer
sync_issues: ignore
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.emma_bedroom_motion_timer
hold_action:
action: more-info
double_tap_action:
action: none
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
compressed: true
- 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;
}
.bubble-icon-container {
background: ${state === 'on' ? 'var(--error-color)' : 'var(--card-background-color)'} !important;
}
.bubble-icon-container::after {
opacity: ${state === 'on' ? 0.3 : 0} !important;
transition: all 1s !important;
}
.bubble-icon {
display: flex !important;
opacity: 0.5 !important;
}
.is-on .bubble-icon {
opacity: 1 !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:decluttering-card
template: popup_security_button
variables:
- name: Front
- entity: binary_sensor.front_door
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Back
- entity: binary_sensor.back_door
- type: custom:bubble-card
card_type: separator
name: Living Room
icon: hue:room-living
- type: horizontal-stack
cards:
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Front 1
- entity: binary_sensor.front_window_1
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Front 2
- entity: binary_sensor.front_window_2
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Front 3
- entity: binary_sensor.front_window_3
- type: horizontal-stack
cards:
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Side 1
- entity: binary_sensor.side_window_1
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Side 2
- entity: binary_sensor.side_window_2
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Side 3
- entity: binary_sensor.side_window_3
- type: horizontal-stack
cards:
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Side 4
- entity: binary_sensor.side_window_4
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Back 1
- entity: binary_sensor.back_window_1
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Back 2
- entity: binary_sensor.back_window_2
- type: custom:bubble-card
card_type: separator
name: Stairwell
icon: mdi:stairs
- type: horizontal-stack
cards:
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Window
- entity: binary_sensor.stairway_window_lower
- 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:decluttering-card
template: popup_security_button
variables:
- name: Big
- entity: binary_sensor.kitchen_big_window
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Sink
- entity: binary_sensor.kitchen_sink_window
- type: custom:bubble-card
card_type: separator
name: Mud Room
icon: hue:room-other
- type: horizontal-stack
cards:
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Window
- entity: binary_sensor.mud_room_window
- 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:decluttering-card
template: popup_security_button
variables:
- name: Back
- entity: binary_sensor.downstairs_bathroom_window_1
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Side
- entity: binary_sensor.downstairs_bathroom_window_2
- type: custom:bubble-card
card_type: separator
name: Upstairs Hallway
icon: hue:ceiling-round
- type: horizontal-stack
cards:
- type: custom:decluttering-card
template: popup_security_button
variables:
- name: Window
- entity: binary_sensor.stairway_window_upper
- 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:decluttering-card
template: popup_security_button
variables:
- name: Window
- entity: binary_sensor.upstairs_bathroom_window
- 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
- 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
- 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: '#briefings'
button_type: name
name: Briefings
icon: mdi:text
- type: custom:mushroom-template-card
primary: Hello, {{user}}
secondary: >-
{% from 'weather.jinja' import weatherReport %} {% from
'formatting.jinja' import cleanup %} {% import 'status.jinja'
as status %}
{{ 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) }}
-----------------
{{ 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
multiline_secondary: true
fill_container: false
- 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: []
exclude: []
entities:
- entity: sensor.south_side_shell
- entity: sensor.circle_k
- entity: sensor.kroger
- entity: sensor.kecks
- entity: sensor.the_barn
- entity: sensor.the_big_fish
- entity: sensor.marathon_cleveland_avenue
- entity: sensor.speedway
- entity: sensor.meijer
- entity: sensor.east_side_shell
- entity: sensor.shell_ottawa_avenue
- entity: sensor.ridis
sort:
method: state
numeric: true
reverse: false
ignore_case: false
visible:
- user: c3909d27048140729f002aaef0391775
- user: f387a983651a4321a7411ff8cf36f949
- user: 879b4c04e32841b3ad1d2763a11b4e70
- user: 5244463d054a454389c06b76e6229b53
- user: cc8352d070b64246820a8af4302a5f52
cards: []
max_columns: 4
badges:
- type: custom:mushroom-template-badge
content: >-
{{ states('sensor.blitzortung_lightning_counter') }} lightning strikes
nearby!
icon: mdi:lightning-bolt
color: |-
{% if is_state('binary_sensor.lightning_warning','on') %}
yellow
{% else %}
grey
{% endif %}
entity: binary_sensor.lightning_warning
label: Lightning Warning
visibility:
- condition: state
entity: binary_sensor.lightning_warning
state: 'on'
- type: custom:mushroom-template-badge
content: It is currently raining!
icon: mdi:weather-rainy
color: |-
{% if is_state('binary_sensor.raining','on') %}
blue
{% else %}
grey
{% endif %}
entity: binary_sensor.raining
label: Rain Status
visibility:
- condition: state
entity: binary_sensor.raining
state: 'on'
- 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
- title: Global Scenes
path: global-scenes
icon: mdi:home-lightbulb-outline
type: sections
max_columns: 4
subview: true
sections:
- type: grid
cards:
- 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
- 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'
}}
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
- entity: input_datetime.tony_ibuprofen_taken
- entity: input_datetime.tony_ibuprofen_notify
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
- entity: input_datetime.tony_tylenol_taken
- entity: input_datetime.tony_tylenol_notify
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: Settings
heading_style: title
- type: entities
entities:
- entity: input_text.material_rounded_base_color_tony_stork
secondary_info: none
name: Theme Color
- 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
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: grid
cards:
- type: heading
heading: Settings
heading_style: title
- type: entities
entities:
- entity: input_text.material_rounded_base_color_christina_stork
secondary_info: none
name: Theme Color
- 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: Settings
heading_style: title
- type: entities
entities:
- entity: input_text.material_rounded_base_color_kallen_stork
secondary_info: none
name: Theme Color
- 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: ''