Files
ha-dashboards/mobile_dashboard.yaml

5968 lines
226 KiB
YAML

streamline_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(--bubble-main-background-color)'} !important;
transition: background-color 1s !important;
}
show_state: false
columns: '[[columns]]'
main_button_name:
default:
- name: ''
- columns: 2
- navigation_path: ''
- icon: ''
card:
type: custom:bubble-card
card_type: button
button_type: name
name: '[[name]]'
icon: '[[icon]]'
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
button_action:
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
columns: '[[columns]]'
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: var(--bubble-main-background-color) !important;
}
main_button_floors:
defaults:
name: ''
icon: ''
navigation_path: ''
occupancy_entity: ''
temp_entity: ''
lux_entity: ''
hot_entity: ''
cold_entity: ''
card:
type: custom:bubble-card
card_type: button
button_type: state
entity: '[[occupancy_entity]]'
name: '[[name]]'
icon: '[[icon]]'
show_state: false
double_tap_action:
action: none
hold_action:
action: none
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
button_action:
double_tap_action:
action: none
hold_action:
action: none
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
styles_javascript: |
const occupancy = states['[[occupancy_entity]]'].state;
const hot = states['[[hot_entity]]'].state;
const cold = states['[[cold_entity]]'].state;
return `
.is-unavailable {
opacity: 0.5 !important;
}
.bubble-button-background {
opacity: 1 !important;
background-color: ${
occupancy === 'on' ? 'var(--accent-color)' : 'var(--bubble-main-background-color)'
} !important;
transition: background-color 1s !important;
}
.bubble-sub-button {
background: transparent
}
.bubble-sub-button-1 {
background-color: ${
hot === 'on' ? 'var(--error-color)' : cold === 'on' ? 'var(--purple-color)' : occupancy === 'on' ? 'var(--accent-color)' : 'var(--bubble-main-background-color)'
} !important;
}
`;
sub_button:
- entity: '[[temp_entity]]'
name: Temp
show_state: true
show_name: false
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
show_background: false
- entity: '[[lux_entity]]'
show_state: true
name: Lux
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
show_background: false
modules:
- default
- temperature_colouring
temperature_colouring:
temperature_sensor: '[[temp_entity]]'
elements:
sub_buttons:
- 1
main_button_outdoors:
defaults:
name: ''
icon: ''
navigation_path: ''
occupancy_entity: ''
temp_entity: ''
lux_entity: ''
card:
type: custom:bubble-card
card_type: button
button_type: state
entity: '[[occupancy_entity]]'
name: '[[name]]'
icon: '[[icon]]'
show_state: false
double_tap_action:
action: none
hold_action:
action: none
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
button_action:
double_tap_action:
action: none
hold_action:
action: none
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
styles_javascript: |
const occupancy = states['[[occupancy_entity]]'].state;
return `
.is-unavailable {
opacity: 0.5 !important;
}
.bubble-button-background {
opacity: 1 !important;
background-color: ${
occupancy === 'on' ? 'var(--accent-color)' : 'var(--bubble-main-background-color)'
} !important;
transition: background-color 1s !important;
}
.bubble-sub-button {
background: transparent
}
.bubble-sub-button-1 {
background-color: ${
occupancy === 'on' ? 'var(--accent-color)' : 'var(--bubble-main-background-color)'
} !important;
}
`;
sub_button:
- entity: '[[temp_entity]]'
name: Temp
show_state: true
show_name: false
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
show_background: false
- entity: '[[lux_entity]]'
show_state: true
name: Lux
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
show_background: false
modules:
- default
- temperature_colouring
temperature_colouring:
temperature_sensor: '[[temp_entity]]'
elements:
sub_buttons:
- 1
floors_separator:
defaults:
- name: ''
- icon: ''
card:
type: custom:bubble-card
card_type: separator
name: '[[name]]'
icon: '[[icon]]'
sub_button:
- entity: '[[power_entity]]'
name: Power
show_state: true
tap_action:
action: none
- entity: '[[lights_entity]]'
name: Lights
icon: mdi:lightbulb
show_name: true
show_state: false
tap_action:
action: toggle
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;
}
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;
}
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;
}
popup_timer_card:
defaults:
name: ''
entity: ''
card:
type: conditional
conditions:
- condition: state
entity: '[[entity]]'
state_not: idle
card:
type: custom:bubble-card
card_type: button
button_type: state
entity: '[[entity]]'
name: '[[name]]'
icon: mdi:timer
sub_button:
- entity: '[[entity]]'
tap_action:
action: perform-action
perform_action: timer.start
target:
entity_id: '[[entity]]'
name: Start
icon: mdi:play
visibility: []
- entity: '[[entity]]'
name: Pause
icon: mdi:pause
tap_action:
action: perform-action
perform_action: timer.pause
target:
entity_id: '[[entity]]'
- entity: '[[entity]]'
name: Cancel
icon: mdi:cancel
tap_action:
action: perform-action
perform_action: timer.cancel
target:
entity_id: '[[entity]]'
- entity: '[[entity]]'
name: Finish
icon: mdi:clock-end
tap_action:
action: perform-action
perform_action: timer.finish
target:
entity_id: '[[entity]]'
styles: |
:host{
--circle-color: var(--bubble-accent-color, var(--accent-color));
--percentage: ${(() => {
card.timerEntity = hass.states[entity];
const now = new Date();
const endTime = new Date(card.timerEntity.attributes.finishes_at);
const runningTime = Math.round((endTime - now) / 1000);
const maxtime = Math.round(new Date("1970-01-01 " + card.timerEntity.attributes.duration + " UTC") / 1000);
const remainingTime = Math.round(new Date("1970-01-01 " + card.timerEntity.attributes.remaining + " UTC") / 1000);
var percentage = 0;
if (isNaN(runningTime)) {
percentage = 100 - Math.round( 100.0 * remainingTime / maxtime);
} else {
percentage = 100 - Math.round( 100.0 * runningTime / maxtime);
}
if (isNaN(percentage)) {
return "0%";
} else {
return "" + percentage +"%";
}
})()};
}
.bubble-icon-container {
background: radial-gradient(
var(--card-background-color) 60%,
transparent 0%
), conic-gradient(
var(--circle-color) var(--percentage) 0%,
var(--card-background-color) 0% 100%
) !important;
}
.bubble-icon-container:after {
content: "" !important;
height: 100% !important;
width: 100% !important;
position: absolute !important;
border-radius: 50% !important;
background: (var(--bubble-button-icon-background-color), 0.1) !important;
}
${(() => {
function UpdateState(){
try {
let now = new Date();
let endTime = new Date(card.timerEntity.attributes.finishes_at);
let runningTime = Math.round((endTime - now)/1000);
let hours = Math.floor(runningTime / 3600);
let minutes = Math.floor((runningTime - (hours * 3600)) / 60);
let remainingSeconds = runningTime % 60;
card.querySelector('.bubble-state').innerText =
(hours > 0 ? (hours + ":") : "") +
("0" + minutes).slice(-2) + ":" +
("0" + remainingSeconds).slice(-2);
} catch (error) {
card.querySelector('.bubble-state').innerText = card.timerEntity.attributes.duration;
}
};
if (card.timer == null && card.timerEntity.state === 'active') {
card.timer = setInterval(()=>{UpdateState()}, 500);
}else if (card.timerEntity.state != 'active'){
clearInterval(card.timer);
card.timer = null;
if (card.timerEntity.state !='paused') {
card.querySelector('.bubble-state').innerText = card.timerEntity.attributes.duration;
} else if(card.timerEntity.state==='paused') {
card.querySelector('.bubble-state').innerText = card.timerEntity.attributes.remaining;
}
}
})()}
${(() => {
subButtonIcon[0].setAttribute("icon",card.timerEntity.state != 'active' ?'mdi:play' : 'mdi:replay');
})()}
${(() => {
if (card.timerEntity.state != 'active') {
card.querySelector('.bubble-sub-button-2').classList.add("hidden");
}
})()}
${(() => {
if (card.timerEntity.state === 'idle') {
card.querySelector('.bubble-sub-button-3').classList.add("hidden");
}
})()}
${(() => {
if (card.timerEntity.state === 'idle') {
card.querySelector('.bubble-sub-button-4').classList.add("hidden");
}
})()}
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: heading
icon: mdi:calendar
heading: Calendar
heading_style: title
- entities:
- entity: calendar.family
label: mdi:human-male-female-child
color: green
accent_color: green
- entity: calendar.kallen_school_days
label: mdi:school
color: orange
accent_color: orange
- entity: calendar.tony_s_twitch_schedule
label: mdi:twitch
color: purple
accent_color: purple
- calendar.kallen_early_release
- calendar.tm24fan8_gmail_com
- calendar.irishpirate1988_gmail_com
- calendar.vacation
days_to_show: 5
week_separator_width: 1px
month_separator_width: 1px
today_indicator: dot
weekend_weekday_color: cyan
weekend_day_color: cyan
weekend_month_color: cyan
show_countdown: true
show_progress_bar: true
remove_location_country: true
weather:
position: both
date:
show_conditions: true
show_high_temp: true
show_low_temp: true
icon_size: 14px
font_size: 12px
color: var(--primary-text-color)
event:
show_conditions: true
show_temp: true
icon_size: 14px
font_size: 12px
color: var(--primary-text-color)
entity: weather.iron_nerd_weather_station
type: custom:calendar-card-pro
- type: grid
cards:
- type: heading
heading: Housewide
heading_style: title
icon: mdi:home-analytics
- type: custom:streamline-card
template: 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:streamline-card
template: main_button_name
variables:
- name: Global Scenes
- icon: mdi:home-lightbulb-outline
- navigation_path: '#global-scenes'
- columns: 2
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: main_button_name
variables:
- name: Batteries
- icon: mdi:battery-charging
- navigation_path: '#batteries'
- columns: 2
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: main_button_name
variables:
- name: Messaging
- icon: mdi:bullhorn
- navigation_path: '#messaging'
- columns: 2
grid_options:
columns: 6
rows: auto
- type: custom:bubble-card
card_type: button
button_type: name
name: Rabbit
icon: mdi:rabbit
tap_action:
action: navigate
navigation_path: /dashboard-mobile/rabbit
button_action:
tap_action:
action: navigate
navigation_path: /dashboard-mobile/rabbit
columns: 2
card_mod:
style: |-
.is-unavailable {
opacity: 0.5 !important;
}
.bubble-button-background {
opacity: 1 !important;
background-color:
{% set feeding_reminders = states('counter.rabbit_feeding_reminder_count') | int %}
{% set cleaning_reminders = states('counter.rabbit_hutch_cleaning_reminder_count') | int %}
{% if feeding_reminders == 0 and cleaning_reminders == 0 %}
var(--bubble-main-background-color)
{% elif feeding_reminders < 3 and cleaning_reminders < 3 %}
var(--warning-color)
{% else %}
var(--error-color)
{% endif %}
!important;
transition: background-color 1s !important;
}
- type: custom:streamline-card
template: main_button_name
variables:
- name: Home Feed
- icon: mdi:newspaper-variant
- navigation_path: '#homefeed'
- columns: 2
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: main_button_name
variables:
- name: Sports
- icon: mdi:football
- navigation_path: /dashboard-mobile/sports
- columns: 2
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: main_button_name
variables:
- name: Climate
- icon: mdi:home-thermometer
- navigation_path: /dashboard-mobile/climate
- columns: 2
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: main_button_name
variables:
- name: Running
- icon: mdi:database-clock
- navigation_path: '#running'
- columns: 2
grid_options:
columns: 6
rows: auto
visibility:
- condition: user
users:
- c3909d27048140729f002aaef0391775
- type: custom:streamline-card
template: main_button_name
variables:
- name: Go to Main Dashboard
- icon: mdi:navigation-variant
- navigation_path: /lovelace/default_view
- columns: 4
grid_options:
columns: 12
rows: auto
visibility:
- condition: screen
media_query: '(min-width: 0px) and (max-width: 767px)'
- type: heading
heading: Outside Info
heading_style: title
icon: mdi:chart-areaspline
- type: custom:streamline-card
template: main_button_name
variables:
- name: Gas Prices
- icon: mdi:gas-station
- navigation_path: '#gas-prices'
- columns: 2
grid_options:
columns: 6
rows: auto
- type: grid
cards:
- type: heading
heading: Personal
heading_style: title
icon: fas:person-shelter
- type: custom:bubble-card
card_type: button
button_type: name
name: Tony
sub_button: []
columns: 2
icon: mdi:human-male
tap_action:
action: navigate
navigation_path: /dashboard-mobile/tony
button_action:
tap_action:
action: navigate
navigation_path: /dashboard-mobile/tony
card_mod:
style: |
.is-unavailable {
opacity: 0.5 !important;
}
.bubble-button-background {
opacity: 1 !important;
background-color:
{% set counters = states.counter
| selectattr('entity_id','contains','tony')
| selectattr('entity_id','contains','meds')
| map(attribute='state')
| max
| int %}
{% if counters == 0 %}
var(--bubble-main-background-color)
{% elif counters < 3 %}
var(--warning-color)
{% else %}
var(--error-color)
{% endif %}
!important;
transition: background-color 1s !important;
}
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: custom:bubble-card
card_type: button
button_type: name
name: Tina
sub_button: []
columns: 2
icon: mdi:human-female
tap_action:
action: navigate
navigation_path: /dashboard-mobile/tina
button_action:
tap_action:
action: navigate
navigation_path: /dashboard-mobile/tina
card_mod:
style: |-
.is-unavailable {
opacity: 0.5 !important;
}
.bubble-button-background {
opacity: 1 !important;
background-color:
{% set counters = states.counter
| selectattr('entity_id','contains','tina')
| selectattr('entity_id','contains','meds')
| map(attribute='state')
| max
| int %}
{% if counters == 0 %}
var(--bubble-main-background-color)
{% elif counters < 3 %}
var(--warning-color)
{% else %}
var(--error-color)
{% endif %}
!important;
transition: background-color 1s !important;
}
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: custom:bubble-card
card_type: button
button_type: name
name: Kallen
sub_button: []
columns: 2
icon: mdi:human-child
tap_action:
action: navigate
navigation_path: /dashboard-mobile/kallen
button_action:
tap_action:
action: navigate
navigation_path: /dashboard-mobile/kallen
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- 879b4c04e32841b3ad1d2763a11b4e70
modules:
- default
card_mod:
style: |-
.is-unavailable {
opacity: 0.5 !important;
}
.bubble-button-background {
opacity: 1 !important;
background-color:
{% set counters = states.counter
| selectattr('entity_id','contains','kallen')
| selectattr('entity_id','contains','meds')
| map(attribute='state')
| max
| int %}
{% if counters == 0 %}
var(--bubble-main-background-color)
{% elif counters < 3 %}
var(--warning-color)
{% else %}
var(--error-color)
{% endif %}
!important;
transition: background-color 1s !important;
}
- type: custom:bubble-card
card_type: button
button_type: name
name: Emma
sub_button: []
columns: 2
icon: mdi:bow-tie
tap_action:
action: navigate
navigation_path: /dashboard-mobile/emma
button_action:
tap_action:
action: navigate
navigation_path: /dashboard-mobile/emma
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: var(--bubble-main-background-color) !important;
}
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: custom:bubble-card
card_type: button
button_type: state
entity: timer.kallen_timer
columns: 4
visibility:
- condition: user
users:
- 879b4c04e32841b3ad1d2763a11b4e70
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: var(--bubble-main-background-color) !important;
}
show_attribute: false
tap_action:
action: navigate
navigation_path: /dashboard-mobile/kallen-timer
double_tap_action:
action: none
hold_action:
action: none
button_action:
tap_action:
action: navigate
navigation_path: /dashboard-mobile/kallen-timer
double_tap_action:
action: none
hold_action:
action: none
- type: grid
cards:
- type: heading
heading: Areas
heading_style: title
icon: hue:downstairs
- type: custom:streamline-card
template: floors_separator
variables:
- name: Outdoors
- icon: hue:room-outdoors
- power_entity: sensor.outside_lights_power_sensor
- lights_entity: light.outside_lights
- type: custom:streamline-card
template: main_button_outdoors
variables:
- name: Front Porch
- icon: hue:room-porch
- navigation_path: '#front-porch'
- occupancy_entity: binary_sensor.front_doorbell_motion_mqtt
- temp_entity: sensor.home_tempest_temperature
- lux_entity: sensor.home_tempest_illuminance
- type: custom:streamline-card
template: floors_separator
variables:
- name: Basement
- icon: mdi:home-floor-b
- power_entity: sensor.basement_total_power_sensor
- lights_entity: light.basement_lights
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Basement Studio
- icon: mdi:twitch
- navigation_path: '#basement-studio'
- occupancy_entity: binary_sensor.basement_occupied
- temp_entity: sensor.basement_studio_temperature
- lux_entity: sensor.basement_studio_illuminance
- hot_entity: binary_sensor.basement_studio_hot
- cold_entity: binary_sensor.basement_studio_cold
- type: custom:streamline-card
template: floors_separator
variables:
- name: First Floor
- icon: mdi:home-floor-1
- power_entity: sensor.first_floor_total_power_sensor
- lights_entity: light.first_floor_lights
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Living Room
- icon: mdi:sofa
- navigation_path: '#living-room'
- occupancy_entity: binary_sensor.living_room_occupied
- temp_entity: sensor.living_room_front_temperature
- lux_entity: sensor.living_room_front_illuminance
- hot_entity: binary_sensor.living_room_hot
- cold_entity: binary_sensor.living_room_cold
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Tina Desk
- icon: mdi:desk
- navigation_path: '#tina-desk'
- occupancy_entity: binary_sensor.tina_desk_occupied
- temp_entity: sensor.living_room_back_temperature
- lux_entity: sensor.living_room_back_illuminance
- hot_entity: binary_sensor.living_room_back_hot
- cold_entity: binary_sensor.living_room_back_cold
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Stairwell
- icon: mdi:stairs
- navigation_path: '#stairwell'
- occupancy_entity: binary_sensor.stairwell_occupied
- temp_entity: sensor.stairwell_bottom_temperature
- lux_entity: sensor.stairwell_bottom_illuminance
- hot_entity: binary_sensor.stairwell_bottom_hot
- cold_entity: binary_sensor.stairwell_bottom_cold
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Downstairs Bathroom
- icon: mdi:toilet
- navigation_path: '#downstairs-bathroom'
- occupancy_entity: binary_sensor.downstairs_bathroom_occupied
- temp_entity: sensor.downstairs_bathroom_temperature
- lux_entity: sensor.downstairs_bathroom_illuminance
- hot_entity: binary_sensor.downstairs_bathroom_hot
- cold_entity: binary_sensor.downstairs_bathroom_cold
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Mud Room
- icon: hue:room-other
- navigation_path: '#mud-room'
- occupancy_entity: binary_sensor.mud_room_occupied
- temp_entity: sensor.mud_room_temperature
- lux_entity: sensor.mud_room_illuminance
- hot_entity: binary_sensor.mud_room_hot
- cold_entity: binary_sensor.mud_room_cold
- type: custom:bubble-card
card_type: button
button_type: name
name: Kitchen
icon: hue:room-kitchen
tap_action:
action: navigate
navigation_path: '#kitchen'
button_action:
tap_action:
action: navigate
navigation_path: '#kitchen'
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: var(--bubble-main-background-color) !important;
}
- type: custom:streamline-card
template: floors_separator
variables:
- name: Second Floor
- icon: mdi:home-floor-2
- power_entity: sensor.second_floor_total_power_sensor
- lights_entity: light.second_floor_lights
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Upstairs Hallway
- icon: hue:ceiling-round
- navigation_path: '#upstairs-hallway'
- occupancy_entity: binary_sensor.upstairs_hallway_occupied
- temp_entity: sensor.stairwell_top_temperature
- lux_entity: sensor.stairwell_top_illuminance
- hot_entity: binary_sensor.stairwell_top_hot
- cold_entity: binary_sensor.stairwell_top_cold
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Upstairs Bathroom
- icon: mdi:toilet
- navigation_path: '#upstairs-bathroom'
- occupancy_entity: binary_sensor.upstairs_bathroom_occupied
- temp_entity: sensor.upstairs_bathroom_temperature
- lux_entity: sensor.upstairs_bathroom_illuminance
- hot_entity: binary_sensor.upstairs_bathroom_hot
- cold_entity: binary_sensor.upstairs_bathroom_cold
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Master Bedroom
- icon: mdi:bed
- navigation_path: '#master-bedroom'
- occupancy_entity: binary_sensor.master_bedroom_occupied
- temp_entity: sensor.master_bedroom_temperature
- lux_entity: sensor.master_bedroom_illuminance
- hot_entity: binary_sensor.master_bedroom_hot
- cold_entity: binary_sensor.master_bedroom_cold
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Kallen Bedroom
- icon: mdi:bunk-bed
- navigation_path: '#kallen-bedroom'
- occupancy_entity: binary_sensor.kallen_bedroom_occupied
- temp_entity: sensor.kallen_bedroom_temperature
- lux_entity: sensor.kallen_bedroom_illuminance
- hot_entity: binary_sensor.kallen_bedroom_hot
- cold_entity: binary_sensor.kallen_bedroom_cold
- type: custom:streamline-card
template: main_button_floors
variables:
- name: Emma Bedroom
- icon: hue:room-nursery
- navigation_path: '#emma-bedroom'
- occupancy_entity: binary_sensor.emma_bedroom_occupied
- temp_entity: sensor.emma_bedroom_temperature
- lux_entity: sensor.emma_bedroom_illuminance
- hot_entity: binary_sensor.emma_bedroom_hot
- cold_entity: binary_sensor.emma_bedroom_cold
- type: grid
cards:
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#front-porch'
button_type: slider
entity: light.front_porch_light
name: Front Porch
icon: hue:room-porch
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
sub_button:
- entity: input_select.front_porch_scenes
name: Scenes
tap_action:
action: toggle
icon: mdi:palette
- entity: input_boolean.front_porch_light_on
name: Motion Lighting
icon: mdi:motion-sensor
tap_action:
action: toggle
modules:
- default
- type: custom:bubble-card
card_type: separator
name: Modes
icon: mdi:toggle-switch
modules:
- default
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
name: Storm Mode
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
hold_action:
action: more-info
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: ${state === 'on' ? 'var(--accent-color)' : 'var(--background-color-2)'} !important;
}
modules:
- default
entity: switch.front_porch_storm_mode
show_state: true
tap_action:
action: toggle
- type: custom:bubble-card
card_type: empty-column
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
modules:
- default
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: state
entity: binary_sensor.front_doorbell_motion_mqtt
name: Motion
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: ${state === 'on' ? 'var(--accent-color)' : 'var(--background-color-2)'} !important;
}
modules:
- default
- type: custom:bubble-card
card_type: button
button_type: state
entity: binary_sensor.front_doorbell_ding
name: Ding
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: ${state === 'on' ? 'var(--success-color)' : 'var(--background-color-2)'} !important;
}
modules:
- default
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: state
name: Lux
modules:
- default
entity: sensor.home_tempest_illuminance
- type: custom:bubble-card
card_type: empty-column
- type: custom:streamline-card
template: popup_timer_card
variables:
name: Lights Timer
entity: timer.front_porch_motion_timer
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#basement-studio'
button_type: slider
entity: light.basement_studio_lights
name: Basement Studio
icon: mdi:twitch
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: call-service
service: input_select.select_option
target:
entity_id: input_select.basement_studio_scenes
data:
option: Adaptive
hold_action:
action: more-info
sub_button:
- entity: input_select.basement_studio_scenes
show_name: false
name: Scenes
show_state: false
show_last_changed: false
tap_action:
action: toggle
icon: mdi:palette
styles: ''
- 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: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
entity: input_boolean.do_not_enter_basement_studio
name: Do Not Enter
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
- type: custom:bubble-card
card_type: empty-column
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_temperature_button
variables:
- name: Temp
- entity: sensor.basement_studio_temperature
- hot_entity: binary_sensor.basement_studio_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.basement_studio_illuminance
name: Lux
show_state: true
tap_action:
action: more-info
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_accent_color_button
variables:
- name: Motion
- entity: binary_sensor.basement_studio_motion
- type: custom:streamline-card
template: popup_accent_color_button
variables:
- name: Occupied
- entity: binary_sensor.basement_occupied
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Door Timer
- entity: timer.basement_studio_door_timer
- type: grid
cards:
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#living-room'
button_type: slider
entity: light.living_room_lights
show_state: true
show_attribute: true
attribute: brightness
icon: hue:room-living
tap_action:
action: toggle
double_tap_action:
action: call-service
service: input_select.select_option
target:
entity_id: input_select.living_room_scenes
data:
option: Adaptive
hold_action:
action: more-info
name: Living Room
sub_button:
- entity: select.basement_led_strip_1_theme
name: LED Strip Scenes
tap_action:
action: toggle
show_name: false
icon: hue:lightstrip
- entity: input_select.living_room_scenes
name: Scenes
tap_action:
action: toggle
show_name: false
icon: mdi:palette
- type: custom:bubble-card
card_type: separator
name: Lights
icon: mdi:lightbulb
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.living_room_overhead
name: Overhead
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.living_room_led_strip
name: LED Strip
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
icon: hue:lightstrip
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
entity: light.christmas_tree
name: Tree
show_state: true
show_attribute: false
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
icon: mdi:pine-tree
button_action:
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
visibility:
- condition: or
conditions:
- condition: state
entity: light.christmas_tree
state_not: unavailable
- type: custom:bubble-card
card_type: button
button_type: switch
entity: light.christmas_lights_front_window
name: Window
show_state: true
show_attribute: false
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
icon: mdi:string-lights
button_action:
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
visibility:
- condition: or
conditions:
- condition: state
entity: light.christmas_lights_front_window
state_not: unavailable
visibility:
- condition: or
conditions:
- condition: state
entity: light.christmas_tree
state_not: unavailable
- condition: state
entity: light.christmas_lights_front_window
state_not: unavailable
- type: custom:bubble-card
card_type: separator
name: Media
icon: mdi:volume-high
- type: custom:bubble-card
card_type: media-player
entity: media_player.living_room_tv
name: TV
show_state: true
show_last_changed: false
show_attribute: true
attribute: app_id
force_icon: false
hide:
play_pause_button: false
volume_button: false
power_button: false
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_temperature_button
variables:
- name: Front Temp
- entity: sensor.living_room_front_temperature
- hot_entity: binary_sensor.living_room_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.living_room_front_illuminance
name: Front Lux
show_attribute: false
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_temperature_button
variables:
- name: Back Temp
- entity: sensor.living_room_back_temperature
- hot_entity: binary_sensor.living_room_back_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.living_room_back_illuminance
name: Back Lux
show_attribute: false
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_accent_color_button
variables:
- name: Front Motion
- entity: binary_sensor.living_room_front_motion
- type: custom:streamline-card
template: popup_accent_color_button
variables:
- name: Back Motion
- entity: binary_sensor.living_room_back_motion
- type: custom:streamline-card
template: popup_accent_color_button
variables:
- name: Occupied
- entity: binary_sensor.living_room_occupied
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.living_room_motion_timer
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: 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:streamline-card
template: popup_security_button
variables:
- name: Front 1
- entity: binary_sensor.front_window_1
- type: custom:streamline-card
template: popup_security_button
variables:
- name: Front 2
- entity: binary_sensor.front_window_2
- type: custom:streamline-card
template: popup_security_button
variables:
- name: Front 3
- entity: binary_sensor.front_window_3
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_security_button
variables:
- name: Side 1
- entity: binary_sensor.side_window_1
- type: custom:streamline-card
template: popup_security_button
variables:
- name: Side 2
- entity: binary_sensor.side_window_2
- type: custom:streamline-card
template: popup_security_button
variables:
- name: Side 3
- entity: binary_sensor.side_window_3
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_security_button
variables:
- name: Side 4
- entity: binary_sensor.side_window_4
- type: custom:streamline-card
template: popup_security_button
variables:
- name: Back 1
- entity: binary_sensor.back_window_1
- type: custom:streamline-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:streamline-card
template: popup_temperature_button
variables:
- name: Temp
- entity: sensor.downstairs_bathroom_temperature
- hot_entity: binary_sensor.downstairs_bathroom_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.downstairs_bathroom_illuminance
name: Lux
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_accent_color_button
variables:
- name: Motion
- entity: binary_sensor.downstairs_bathroom_motion
- type: custom:streamline-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:streamline-card
template: popup_security_button
variables:
- name: Back
- entity: binary_sensor.downstairs_bathroom_window_1
- type: custom:streamline-card
template: popup_security_button
variables:
- name: Side
- entity: binary_sensor.downstairs_bathroom_window_2
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.downstairs_bathroom_lights_timer
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#tina-desk'
button_type: slider
entity: light.tina_desk_lights
name: Tina Desk
icon: mdi:desk
show_last_changed: false
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: call-service
service: input_select.select_option
target:
entity_id: input_select.tina_desk_scenes
data:
option: Reset
hold_action:
action: more-info
sub_button:
- entity: input_select.tina_desk_scenes
name: Scenes
tap_action:
action: toggle
show_name: false
icon: mdi:palette
- type: custom:bubble-card
card_type: separator
name: Lights
icon: mdi:lightbulb
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.tina_lamp_top
name: Lamp Top
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.tina_lamp_side
name: Lamp Side
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#kitchen'
button_type: name
name: Kitchen (No Lights)
icon: hue:room-kitchen
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_security_button
variables:
- name: Big Window
- entity: binary_sensor.kitchen_big_window
- type: custom:streamline-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:streamline-card
template: popup_temperature_button
variables:
- name: Temp
- entity: sensor.mud_room_temperature
- hot_entity: binary_sensor.mud_room_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.mud_room_illuminance
name: Lux
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_accent_color_button
variables:
- name: Motion
- entity: binary_sensor.mud_room_motion
- type: custom:streamline-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:streamline-card
template: popup_security_button
variables:
- name: Back Door
- entity: binary_sensor.back_door
- type: custom:streamline-card
template: popup_security_button
variables:
- name: Window
- entity: binary_sensor.mud_room_window
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.mud_room_motion_timer
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#stairwell'
button_type: slider
entity: light.stairwell_led_strip
name: Stairwell
icon: mdi:stairs
show_last_changed: false
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
service: script.stairwell_led_strip
service_data:
brightness: reset
target: {}
action: none
hold_action:
action: more-info
sub_button:
- entity: switch.stairwell_motion_lighting
name: Motion Lighting
tap_action:
action: toggle
modules:
- default
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_temperature_button
variables:
- name: Temp
- entity: sensor.stairwell_bottom_temperature
- hot_entity: binary_sensor.stairwell_bottom_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.stairwell_bottom_illuminance
name: Lux
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_accent_color_button
variables:
- name: Motion
- entity: binary_sensor.stairwell_bottom_motion
- type: custom:streamline-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:streamline-card
template: popup_security_button
variables:
- name: Window
- entity: binary_sensor.stairway_window_lower
- type: custom:bubble-card
card_type: empty-column
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.stairwell_motion_timer
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.upstairs_hallway_motion_timer
- type: grid
cards:
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#upstairs-hallway'
button_type: slider
entity: light.hallway_overhead
name: Upstairs Hallway
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: call-service
service: input_select.select_option
target:
entity_id: input_select.upstairs_hallway_scenes
data:
option: Adaptive
hold_action:
action: more-info
sub_button:
- entity: input_select.upstairs_hallway_scenes
name: Scenes
tap_action:
action: toggle
show_name: false
icon: mdi:palette
modules:
- default
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_temperature_button
variables:
- name: Temp
- entity: sensor.stairwell_top_temperature
- hot_entity: binary_sensor.stairwell_top_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.stairwell_top_illuminance
name: Lux
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_accent_color_button
variables:
- name: Motion
- entity: binary_sensor.stairwell_top_motion
- type: custom:streamline-card
template: popup_accent_color_button
variables:
- name: Occupied
- entity: binary_sensor.upstairs_hallway_occupied
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.upstairs_hallway_motion_timer
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.stairwell_motion_timer
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#upstairs-bathroom'
button_type: slider
entity: light.upstairs_bathroom_lights
name: Upstairs Bathroom
icon: mdi:toilet
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: call-service
service: input_select.select_option
target:
entity_id: input_select.upstairs_bathroom_scenes
data:
option: Adaptive
hold_action:
action: more-info
sub_button:
- entity: input_select.upstairs_bathroom_scenes
name: Scenes
tap_action:
action: toggle
show_name: false
icon: mdi:palette
- entity: switch.upstairs_bathroom_motion_lighting
name: Motion Lighting
tap_action:
action: toggle
hold_action:
action: more-info
- type: custom:bubble-card
card_type: separator
name: Modes
icon: mdi:toggle-switch
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
entity: input_boolean.shower_mode
name: Shower Mode
show_last_changed: false
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
- type: custom:bubble-card
card_type: empty-column
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_temperature_button
variables:
- name: Temp
- entity: sensor.upstairs_bathroom_temperature
- hot_entity: binary_sensor.upstairs_bathroom_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.upstairs_bathroom_illuminance
name: Lux
show_attribute: false
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_accent_color_button
variables:
- name: Motion
- entity: binary_sensor.upstairs_bathroom_motion
- type: custom:streamline-card
template: popup_accent_color_button
variables:
- name: Occupied
- entity: binary_sensor.upstairs_bathroom_occupied
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.upstairs_bathroom_motion_timer
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Shower Mode Cooldown
- entity: timer.shower_mode_cooldown
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#master-bedroom'
button_type: slider
entity: light.master_bedroom_lights
name: Master Bedroom
icon: mdi:bed
show_last_changed: false
show_attribute: true
show_state: true
attribute: brightness
tap_action:
action: toggle
hold_action:
action: more-info
double_tap_action:
action: call-service
service: input_select.select_option
target:
entity_id: input_select.master_bedroom_scenes
data:
option: Adaptive
sub_button:
- entity: input_select.master_bedroom_scenes
name: Scenes
tap_action:
action: toggle
show_name: false
icon: mdi:palette
- entity: switch.master_bedroom_motion_lighting
name: Motion Lighting
icon: mdi:motion-sensor
tap_action:
action: toggle
modules:
- default
- type: custom:bubble-card
card_type: separator
name: Lights
icon: mdi:lightbulb
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.master_bedroom_front
name: Front
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.master_bedroom_side
name: Side
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.master_bedroom_closet
name: Closet
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
icon: hue:bulb-sultan
- type: custom:bubble-card
card_type: empty-column
- type: custom:bubble-card
card_type: separator
name: Modes
icon: mdi:toggle-switch
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
entity: input_boolean.master_bedroom_sleeping
name: Sleeping
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
- type: custom:bubble-card
card_type: empty-column
- type: custom:bubble-card
card_type: separator
name: Environment
icon: mdi:thermometer
- type: conditional
conditions:
- condition: state
entity: input_boolean.master_bedroom_aircon_installed
state: 'on'
card:
type: vertical-stack
cards:
- type: custom:bubble-card
card_type: climate
sub_button:
- select_attribute: hvac_modes
name: HVAC modes menu
state_background: true
- name: Presets menu
select_attribute: preset_modes
state_background: false
show_arrow: true
name: Thermostat
entity: climate.master_bedroom_aircon
state_color: false
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: state
entity: binary_sensor.master_bedroom_aircon_compressor
name: Compressor
show_attribute: false
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: ${state === 'on' ? 'var(--accent-color)' : 'var(--background-color-2)'} !important;
}
- type: custom:bubble-card
card_type: button
button_type: state
entity: binary_sensor.master_bedroom_aircon_filter_alert
name: Filter
show_attribute: false
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
styles: |-
.is-unavailable {
opacity: 0.5 !important;
}
.bubble-button-background {
opacity: 1 !important;
background-color: ${state === 'on' ? 'var(--error-color)' : 'var(--background-color-2)'} !important;
transition: background-color 1s !important;
}
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
entity: fan.master_bedroom_fan
name: Fan
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
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:streamline-card
template: popup_temperature_button
variables:
- name: Temp
- entity: sensor.master_bedroom_temperature
- hot_entity: binary_sensor.master_bedroom_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.master_bedroom_illuminance
name: Lux
show_attribute: false
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_accent_color_button
variables:
- name: Motion
- entity: binary_sensor.master_bedroom_motion
- type: custom:streamline-card
template: popup_accent_color_button
variables:
- name: Occupied
- entity: binary_sensor.master_bedroom_occupied
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.master_bedroom_motion_timer
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Shower Mode Cooldown
- entity: timer.shower_mode_cooldown
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#kallen-bedroom'
button_type: slider
entity: light.kallen_bedroom_lights
name: Kallen Bedroom
icon: mdi:bunk-bed
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
hold_action:
action: more-info
double_tap_action:
action: call-service
service: input_select.select_option
target:
entity_id: input_select.kallen_bedroom_scenes
data:
option: Adaptive
sub_button:
- entity: input_select.kallen_bedroom_scenes
name: Scenes
tap_action:
action: toggle
show_name: false
icon: mdi:palette
- entity: switch.kallen_bedroom_motion_lighting
name: Motion Lighting
tap_action:
action: toggle
- type: custom:bubble-card
card_type: separator
name: Lights
icon: mdi:lightbulb
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.kallen_bedroom_overhead
name: Overhead
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.kallen_bedroom_wall
name: Wall
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
- type: custom:bubble-card
card_type: separator
name: Modes
icon: mdi:toggle-switch
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
entity: input_boolean.kallen_sleeping
name: Sleeping
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
- type: custom:bubble-card
card_type: empty-column
- type: custom:bubble-card
card_type: separator
name: Environment
icon: mdi:thermometer
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
entity: fan.kallen_bedroom_fan
name: Fan
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
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:streamline-card
template: popup_temperature_button
variables:
- name: Temp
- entity: sensor.kallen_bedroom_temperature
- hot_entity: binary_sensor.kallen_bedroom_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.kallen_bedroom_illuminance
name: Lux
show_attribute: false
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_accent_color_button
variables:
- name: Motion
- entity: binary_sensor.kallen_bedroom_motion
- type: custom:streamline-card
template: popup_accent_color_button
variables:
- name: Occupied
- entity: binary_sensor.kallen_bedroom_occupied
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.kallen_bedroom_motion_timer
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#emma-bedroom'
button_type: slider
entity: light.emma_bedroom_light
name: Emma Bedroom
icon: hue:room-nursery
show_state: true
show_attribute: true
attribute: brightness
tap_action:
action: toggle
double_tap_action:
action: call-service
service: input_select.select_option
target:
entity_id: input_select.emma_bedroom_scenes
data:
option: Adaptive
hold_action:
action: more-info
sub_button:
- entity: input_select.emma_bedroom_scenes
name: Scenes
tap_action:
action: toggle
show_name: false
icon: mdi:palette
- entity: switch.emma_bedroom_motion_lighting
name: Motion Lighting
tap_action:
action: toggle
hold_action:
action: more-info
modules:
- default
- type: custom:bubble-card
card_type: separator
name: Modes
icon: mdi:toggle-switch
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
entity: input_boolean.emma_sleeping
name: Sleeping
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
- type: custom:bubble-card
card_type: empty-column
- type: custom:bubble-card
card_type: separator
name: Environment
icon: mdi:thermometer
modules:
- default
- type: conditional
conditions:
- condition: state
entity: input_boolean.emma_bedroom_aircon_installed
state: 'on'
card:
type: vertical-stack
cards:
- type: custom:bubble-card
card_type: climate
sub_button:
- select_attribute: hvac_modes
name: HVAC modes menu
state_background: true
- name: Presets menu
select_attribute: preset_modes
state_background: false
show_arrow: true
name: Thermostat
entity: climate.emma_bedroom_aircon
state_color: false
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: state
entity: binary_sensor.emma_bedroom_aircon_compressor
name: Compressor
show_attribute: false
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: ${state === 'on' ? 'var(--accent-color)' : 'var(--background-color-2)'} !important;
}
- type: custom:bubble-card
card_type: button
button_type: state
entity: binary_sensor.emma_bedroom_aircon_filter_alert
name: Filter
show_attribute: false
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
styles: |-
.is-unavailable {
opacity: 0.5 !important;
}
.bubble-button-background {
opacity: 1 !important;
background-color: ${state === 'on' ? 'var(--error-color)' : 'var(--background-color-2)'} !important;
transition: background-color 1s !important;
}
- type: conditional
conditions:
- condition: state
entity: input_boolean.emma_bedroom_heater_installed
state: 'on'
card:
type: custom:bubble-card
card_type: climate
sub_button:
- select_attribute: hvac_modes
name: HVAC modes menu
state_background: true
- name: Presets menu
select_attribute: preset_modes
state_background: false
show_arrow: true
name: Thermostat
entity: climate.emma_bedroom_vtherm
state_color: false
modules:
- default
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
entity: input_boolean.white_noise_emma_bedroom
name: White Noise
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
modules:
- default
- type: custom:bubble-card
card_type: button
modules:
- default
entity: switch.emma_bedroom_climate_watchdog
name: Climate Watchdog
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
double_tap_action:
action: none
button_action:
double_tap_action:
action: none
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
modules:
- default
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_temperature_button
variables:
- name: Temp
- entity: sensor.emma_bedroom_temperature
- hot_entity: binary_sensor.emma_bedroom_hot
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.emma_bedroom_illuminance
name: Lux
show_attribute: false
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_accent_color_button
variables:
- name: Motion
- entity: binary_sensor.emma_bedroom_motion
- type: custom:streamline-card
template: popup_accent_color_button
variables:
- name: Occupied
- entity: binary_sensor.emma_bedroom_occupied
- type: custom:streamline-card
template: popup_timer_card
variables:
- name: Lights Timer
- entity: timer.emma_bedroom_motion_timer
- type: grid
cards:
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#security'
button_type: state
entity: binary_sensor.security_faults
name: Security Overview
show_attribute: false
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
styles: |-
.is-unavailable {
opacity: 0.5 !important;
}
.bubble-button-background {
opacity: 1 !important;
background-color: ${state === 'on' ? 'var(--error-color)' : 'var(--background-color-2)'} !important;
transition: background-color 1s !important;
}
- type: custom:bubble-card
card_type: separator
name: Doors
styles: >-
${icon.setAttribute("icon",
hass.states['binary_sensor.exterior_doors'].state === 'on' ?
'mdi.door_open' : 'mdi:door-closed')}
icon: mdi:door
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_security_button
variables:
- name: Front
- entity: binary_sensor.front_door
- type: custom:streamline-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:streamline-card
template: popup_security_button
variables:
- name: Front 1
- entity: binary_sensor.front_window_1
- type: custom:streamline-card
template: popup_security_button
variables:
- name: Front 2
- entity: binary_sensor.front_window_2
- type: custom:streamline-card
template: popup_security_button
variables:
- name: Front 3
- entity: binary_sensor.front_window_3
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_security_button
variables:
- name: Side 1
- entity: binary_sensor.side_window_1
- type: custom:streamline-card
template: popup_security_button
variables:
- name: Side 2
- entity: binary_sensor.side_window_2
- type: custom:streamline-card
template: popup_security_button
variables:
- name: Side 3
- entity: binary_sensor.side_window_3
- type: horizontal-stack
cards:
- type: custom:streamline-card
template: popup_security_button
variables:
- name: Side 4
- entity: binary_sensor.side_window_4
- type: custom:streamline-card
template: popup_security_button
variables:
- name: Back 1
- entity: binary_sensor.back_window_1
- type: custom:streamline-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:streamline-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:streamline-card
template: popup_security_button
variables:
- name: Big
- entity: binary_sensor.kitchen_big_window
- type: custom:streamline-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:streamline-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:streamline-card
template: popup_security_button
variables:
- name: Back
- entity: binary_sensor.downstairs_bathroom_window_1
- type: custom:streamline-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:streamline-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:streamline-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
modules:
- default
- type: custom:battery-state-card
sort_by_level: asc
bulk_rename:
- from: Battery
to: ''
- from: Stratton Ave
to: ''
- from: Dimmer Switch
to: ''
- from: Home Tempest Cloud Sensors
to: Tempest Weather Station
collapse:
- name: 'Door Sensors (min: {min}%, count: {count})'
secondary_info: Battery levels {range}%
icon: mdi:door
entities:
- sensor.front_door_battery
- sensor.back_door_battery
- sensor.basement_studio_door_battery
- sensor.emma_bedroom_door_battery
- name: 'Window Sensors (min: {min}%, count: {count})'
secondary_info: Battery levels {range}%
icon: mdi:window-closed
entities:
- sensor.front_window_battery_1
- sensor.front_window_battery_2
- sensor.front_window_battery_3
- sensor.side_window_1_battery
- sensor.side_window_2_battery
- sensor.side_window_3_battery
- sensor.side_window_4_battery
- sensor.back_window_1_battery
- sensor.back_window_2_battery
- sensor.stairway_window_lower_battery
- sensor.stairway_window_upper_battery
- sensor.kitchen_big_window_battery
- sensor.kitchen_sink_window_battery
- sensor.mud_room_window_battery
- sensor.downstairs_bathroom_window_1_battery
- sensor.downstairs_bathroom_window_2_battery
- sensor.upstairs_bathroom_window_battery
- name: 'Glass Break Sensors (min: {min}%, count: {count})'
secondary_info: Battery levels {range}%
icon: mdi:image-broken-variant
entities:
- sensor.living_room_glass_break_battery
- name: 'Motion Detectors (min: {min}%, count: {count})'
secondary_info: Battery levels {range}%
icon: mdi:motion-sensor
entities:
- sensor.living_room_front_battery
- sensor.upstairs_bathroom_battery
- sensor.downstairs_bathroom_battery
- sensor.emma_bedroom_battery
- sensor.stairwell_bottom_battery
- sensor.basement_studio_battery
- sensor.kallen_bedroom_battery
- sensor.mud_room_battery
- sensor.stairwell_top_battery
- sensor.living_room_back_battery
- sensor.master_bedroom_battery
- name: 'Dimmer Switches (min: {min}%, count: {count})'
secondary_info: Battery Levels {range}%
icon: mdi:toggle-switch
entities:
- sensor.kallen_bedroom_dimmer_switch_battery
- sensor.tina_desk_dimmer_switch_battery
- sensor.emma_bedroom_dimmer_switch_battery
- sensor.master_bedroom_dimmer_switch_battery
- sensor.living_room_dimmer_switch_battery
filter:
include:
- name: entity_id
value: '*_battery'
- name: entity_id
value: '*battery_mqtt'
exclude:
- name: entity_id
value: '*iphone*'
- name: entity_id
value: '*ipad*'
- name: entity_id
value: '*airpod*'
- name: entity_id
value: '*apple*'
- name: entity_id
value: '*chrome*'
- name: entity_id
value: sensor.front_doorbell_battery
tap_action: more-info
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#running'
button_type: name
name: Running
icon: mdi:database-clock
- type: custom:auto-entities
filter:
include:
- domain: automation
attributes:
current: '> 0'
- domain: script
attributes:
current: '> 0'
exclude: []
sort:
method: last_triggered
reverse: false
show_empty: true
card:
type: entities
show_header_toggle: false
state_color: true
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#global-scenes'
button_type: name
name: Global Scenes
icon: mdi:home-lightbulb-outline
- type: entities
entities:
- entity: script.give_me_darkness
secondary_info: After kid's bedtime
- entity: button.good_morning
secondary_info: Optional, when we wake up
- entity: button.goodnight
secondary_info: When Tony goes to bed
- entity: script.global_on
secondary_info: Turn all lights on
- entity: script.global_off
secondary_info: Turn all lights/fans off
- entity: script.max_brightness
secondary_info: Turn all lights on at 100%
- entity: script.going_upstairs
secondary_info: When coming to bed from basement
- entity: button.basement_on_manual
name: Basement On
secondary_info: Turns on lights/computer/TV
- entity: button.sunset_lights_trigger
name: Sunset Lights Manual Trigger
secondary_info: If flow gets interrupted
- entity: script.adaptive_on_first_floor
secondary_info: Reset lights to adaptive
- entity: script.adaptive_on_second_floor
secondary_info: Reset lights to adaptive
- entity: script.bright_on_first_floor
- entity: script.bright_on_second_floor
- entity: script.evening_on_first_floor
- entity: script.evening_on_second_floor
- entity: script.emma_rainbow_lights
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#gas-prices'
button_type: name
name: Gas Prices
icon: mdi:gas-station
- type: entities
entities:
- entity: sensor.local_minimum_gas_price
name: Minimum
- entity: sensor.local_average_gas_price
name: Average
- entity: sensor.local_maximum_gas_price
name: Maximum
- type: custom:auto-entities
card:
type: entities
filter:
include:
- integration: gasbuddy
entity_id: '*regular_gas'
exclude: []
sort:
method: state
numeric: true
reverse: false
ignore_case: false
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#homefeed'
button_type: name
name: Home Feed
icon: mdi:newspaper-variant
- type: markdown
content: >-
Meds taken only reflects the time the switch was activated. If
the date/time was edited, it will not change in this feed.
Working on this.
- type: custom:home-feed-card
card_id: mobile_feed
show_empty: false
id_filter: ^home_feed_.*
more_info_on_tap: true
state_color: true
scrollbars_enabled: false
entities:
- entity: person.tony_stork
name: Tony Stork
content_template: '{{display_name}} is {{state}}'
remove_repeats: false
state_map:
not_home: traveling
Wal-Mart: at Wal-Mart
School: at the middle school
Hospital: at the hospital
- entity: person.christina_stork
name: Christina Stork
content_template: '{{display_name}} is {{state}}'
remove_repeats: false
state_map:
not_home: traveling
Wal-Mart: at Wal-Mart
School: at the middle school
Hospital: at the hospital
Bob Evans: at work
BobEvans: at work
- entity: timer.kallen_timer
- entity: person.kallen_stork
- entity: person.emmalynn_stork
- entity: automation.family_has_arrived
content_template: Family Arrived
- entity: automation.family_has_left
content_template: Family Left
- entity: input_boolean.shower_mode
- entity: input_boolean.white_noise_emma_bedroom
name: White Noise - Emma
- entity: input_boolean.white_noise_kallen_bedroom
name: White Noise - Kallen
- entity: input_boolean.white_noise_basement
name: White Noise - Basement
- entity: input_boolean.emma_sleeping
- entity: input_boolean.kallen_sleeping
- entity: input_boolean.master_bedroom_sleeping
- entity: binary_sensor.lightning_warning
state_map:
'off': No lightning detected
'on': Lightning is in the area!
content_template: '{{state}}'
- entity: binary_sensor.raining
state_map:
'off': It is not currently raining
'on': It is currently raining
unavailable: I have no idea if it is raining
unknown: I have no idea if it is raining
content_template: '{{state}}'
- entity: input_boolean.recliner_mode
- entity: timer.washer_timer
state_map:
idle: not running
active: running
content_template: The washer is {{state}}
- entity: timer.dryer_timer
state_map:
idle: not running
active: running
content_template: The dryer is {{state}}
- entity: binary_sensor.internet
state_map:
'off': Disconnected
'on': Connected
- entity: input_boolean.rabbit_fed
name: Rabbit
content_template: '{{display_name}} is {{state}}'
state_map:
'off': hungry
'on': fed
- entity: input_boolean.rabbit_hutch_cleaned
name: Rabbit Hutch
content_template: '{{display_name}} is {{state}}'
state_map:
'off': dirty
'on': clean
- entity: input_boolean.tony_morning_meds_taken
exclude_states: 'off'
state_map:
'on': taken
'off': not taken
content_template: Tony has {{state}} his morning meds
- entity: input_boolean.tony_afternoon_meds_taken
exclude_states: 'off'
state_map:
'on': taken
'off': not taken
content_template: Tony has {{state}} his afternoon meds
- entity: input_boolean.tony_night_meds_taken
exclude_states: 'off'
state_map:
'on': taken
'off': not taken
content_template: Tony has {{state}} his night meds
- entity: input_boolean.tina_morning_meds_taken
exclude_states: 'off'
state_map:
'on': taken
'off': not taken
content_template: Tina has {{state}} her morning meds
- entity: input_boolean.tina_night_meds_taken
exclude_states: 'off'
state_map:
'on': taken
'off': not taken
content_template: Tina has {{state}} her night meds
- entity: input_boolean.kallen_morning_meds_taken
exclude_states: 'off'
state_map:
'on': taken
'off': not taken
content_template: Kallen has {{state}} his morning meds
- entity: input_boolean.kallen_night_meds_taken
exclude_states: 'off'
state_map:
'on': taken
'off': not taken
content_template: Kallen has {{state}} his night meds
visible:
- user: c3909d27048140729f002aaef0391775
- user: f387a983651a4321a7411ff8cf36f949
- user: 879b4c04e32841b3ad1d2763a11b4e70
- user: 5244463d054a454389c06b76e6229b53
- user: cc8352d070b64246820a8af4302a5f52
cards: []
max_columns: 4
badges:
- type: custom:mushroom-template-badge
content: Emma has left her room! (Tap to silence)
icon: mdi:alert
color: red
label: Toddler Alert
entity: button.emma_door_alert_cancel
tap_action:
action: toggle
visibility:
- condition: state
entity: timer.emma_door_alert
state: active
- type: custom:mushroom-template-badge
content: Tornado Possible
icon: mdi:weather-tornado
color: red
label: Stay Alert
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
entity: binary_sensor.tornado_possible
visibility:
- condition: state
entity: binary_sensor.tornado_possible
state: 'on'
- type: custom:mushroom-template-badge
content: >-
{{
states('sensor.home_tempest_cloud_sensors_lightning_strikes_last_hour')
}} strikes in last hour!
icon: mdi:lightning-bolt
color: |-
{% 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: >-
{% if
states('sensor.home_tempest_cloud_sensors_precipitation_intensity')
not in ['unavailable','unknown','no_rain'] %}
{{ states('sensor.home_tempest_cloud_sensors_precipitation_intensity') | replace('_',' ') | title }}
{% else %}
It is currently raining!
{% endif %}
icon: mdi:weather-rainy
color: |-
{% 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'
- type: custom:mushroom-template-badge
content: 'Currently: {{ states(''sensor.doors_open'') }}'
icon: mdi:door-open
color: red
entity: binary_sensor.windows
label: Doors Open
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: state
entity: binary_sensor.exterior_doors
state: 'on'
- type: custom:mushroom-template-badge
content: 'Currently: {{ states(''sensor.windows_open'') }}'
icon: mdi:window-open
color: red
entity: binary_sensor.windows
label: Windows Open
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: state
entity: binary_sensor.windows
state: 'on'
- type: custom:mushroom-template-badge
content: Check light switches
icon: mdi:light-switch
color: red
label: Light Issue
visibility:
- condition: state
entity: binary_sensor.light_switch_issue
state: 'on'
- type: custom:mushroom-template-badge
entity: binary_sensor.emma_bedroom_door
icon: |-
{% if is_state(entity,'on') %}
mdi:door-open
{% else %}
mdi:door-closed
{% endif %}
color: |-
{% if is_state(entity,'on') %}
red
{% else %}
green
{% endif %}
label: Emma Door Status
content: |-
{% if is_state(entity,'on') %}
Emma's door has been left open!
{% else %}
Emma's door is closed
{% endif %}
visibility:
- condition: state
entity: binary_sensor.emma_bedroom_door
state: 'on'
- type: custom:mushroom-template-badge
content: '{{ states(entity) | title }}'
icon: fas:shower
entity: input_boolean.shower_mode
label: Shower Mode
color: var(--warning-color)
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: state
entity: input_boolean.shower_mode
state: 'on'
- type: custom:mushroom-template-badge
content: |-
{% if is_state('input_boolean.school_cancelled','on') %}
Cancelled
{% elif is_state('input_boolean.two_hour_delay','on') %}
Two Hour Delay
{% else %}
On Time
{% endif %}
icon: |-
{% if is_state('input_boolean.school_cancelled','on') %}
m3rf:cancel
{% elif is_state('input_boolean.two_hour_delay','on') %}
m3rf:clock-arrow-up
{% else %}
m3rf:check-circle
{% endif %}
color: |-
{% if is_state('input_boolean.school_cancelled','on') %}
red
{% elif is_state('input_boolean.two_hour_delay','on') %}
yellow
{% else %}
green
{% endif %}
label: School Status
tap_action:
action: url
url_path: https://1057thebull.iheart.com/content/school-delays/
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: or
conditions:
- condition: state
entity: input_boolean.kallen_school_today
state: 'on'
- condition: state
entity: input_boolean.two_hour_delay
state: 'on'
- condition: state
entity: input_boolean.school_cancelled
state: 'on'
- type: custom:mushroom-template-badge
content: |-
{% if is_state(entity,'on') %}
Do Not Enter
{% elif is_state('input_boolean.studio_quiet','on') %}
Studio Quiet
{% else %}
Safe
{% endif %}
entity: input_boolean.do_not_enter_basement_studio
label: Basement Status
color: |-
{% if is_state(entity,'on') %}
red
{% elif is_state('input_boolean.studio_quiet','on') %}
yellow
{% else %}
green
{% endif %}
icon: |-
{% if is_state(entity,'on') %}
mdi:close-circle
{% elif is_state('input_boolean.studio_quiet','on') %}
mdi:alert
{% else %}
mdi:check-circle
{% endif %}
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
- type: custom:mushroom-template-badge
content: |-
{% from 'time.jinja' import input_datetime_read %}
{{ input_datetime_read('input_datetime.tony_morning_meds_taken') }}
icon: mdi:medication
color: ''
entity: input_datetime.tony_morning_meds_taken
label: Tony Morning Meds
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- condition: state
entity: input_boolean.tony_morning_meds_taken
state: 'on'
- condition: state
entity: input_boolean.tony_awake
state: 'on'
- type: custom:mushroom-template-badge
content: |-
{% from 'time.jinja' import input_datetime_read %}
{{ input_datetime_read('input_datetime.tony_afternoon_meds_taken') }}
icon: mdi:medication
color: ''
entity: input_datetime.tony_morning_meds_taken
label: Tony Afternoon Meds
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- condition: state
entity: input_boolean.tony_afternoon_meds_taken
state: 'on'
- condition: state
entity: input_boolean.tony_awake
state: 'on'
- type: custom:mushroom-template-badge
content: |-
{% from 'time.jinja' import input_datetime_read %}
{{ input_datetime_read('input_datetime.tony_night_meds_taken') }}
icon: mdi:medication
color: ''
entity: input_datetime.tony_morning_meds_taken
label: Tony Night Meds
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- condition: state
entity: input_boolean.tony_night_meds_taken
state: 'on'
- type: custom:mushroom-template-badge
content: |-
{% from 'time.jinja' import input_datetime_read %}
{{ input_datetime_read('input_datetime.tina_morning_meds_taken') }}
icon: mdi:medication
color: ''
entity: input_datetime.tina_morning_meds_taken
label: Tina Morning Meds
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- condition: state
entity: input_boolean.tina_morning_meds_taken
state: 'on'
- type: custom:mushroom-template-badge
content: |-
{% from 'time.jinja' import input_datetime_read %}
{{ input_datetime_read('input_datetime.tina_night_meds_taken') }}
icon: mdi:medication
color: ''
entity: input_datetime.tina_night_meds_taken
label: Tina Night Meds
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- condition: state
entity: input_boolean.tina_night_meds_taken
state: 'on'
- type: custom:mushroom-template-badge
content: |-
{% from 'time.jinja' import input_datetime_read %}
{{ input_datetime_read('input_datetime.kallen_morning_meds_taken') }}
icon: mdi:medication
color: ''
entity: input_datetime.kallen_morning_meds_taken
label: Kallen Morning Meds
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- 879b4c04e32841b3ad1d2763a11b4e70
- condition: state
entity: input_boolean.kallen_morning_meds_taken
state: 'on'
- condition: state
entity: input_boolean.kallen_sleeping
state: 'off'
- type: custom:mushroom-template-badge
content: |-
{% from 'time.jinja' import input_datetime_read %}
{{ input_datetime_read('input_datetime.kallen_night_meds_taken') }}
icon: mdi:medication
color: ''
entity: input_datetime.kallen_night_meds_taken
label: Kallen Night Meds
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- 879b4c04e32841b3ad1d2763a11b4e70
- condition: state
entity: input_boolean.kallen_night_meds_taken
state: 'on'
- condition: state
entity: input_boolean.kallen_sleeping
state: 'on'
- type: custom:mushroom-template-badge
content: |-
{% from 'time.jinja' import input_datetime_read %}
{{ input_datetime_read('input_datetime.emma_awake_at') }}
icon: mdi:weather-sunset-up
color: ''
entity: input_datetime.emma_awake_at
label: Emma Awake At
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- 879b4c04e32841b3ad1d2763a11b4e70
- condition: state
entity: input_boolean.emma_sleeping
state: 'off'
- type: custom:mushroom-template-badge
content: |-
{% from 'time.jinja' import input_datetime_read %}
{{ input_datetime_read('input_datetime.emma_asleep_at') }}
icon: mdi:sleep
color: ''
entity: input_datetime.emma_asleep_at
label: Emma Asleep At
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- 879b4c04e32841b3ad1d2763a11b4e70
- condition: state
entity: input_boolean.emma_sleeping
state: 'on'
- type: custom:mushroom-template-badge
icon: mdi:wrench-clock
entity: input_boolean.server_maintenance
color: var(--warning-color)
label: Server Maintenance
content: Interruptions Possible
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
visibility:
- condition: state
entity: input_boolean.server_maintenance
state: 'on'
header:
card:
type: markdown
text_only: true
content: >-
{% from 'weather.jinja' import weatherReport %} {% from
'formatting.jinja' import cleanup %} {% import 'status.jinja' as
status %}
# Hello {{ user }}
{{ weatherReport('full','dashboard') }}
---
--- Climate ---
Average: {{ states('sensor.average_room_temperature',with_unit=true)
}}
Coldest: {{ state_attr('sensor.coldest_room_temperature','room') }},
{{ states('sensor.coldest_room_temperature',with_unit=true) }}
Warmest: {{ state_attr('sensor.warmest_room_temperature','room') }},
{{ states('sensor.warmest_room_temperature',with_unit=true) }}
layout: responsive
badges_position: bottom
- title: Old
path: old
icon: ''
visible:
- user: f387a983651a4321a7411ff8cf36f949
- user: 879b4c04e32841b3ad1d2763a11b4e70
- user: c3909d27048140729f002aaef0391775
cards:
- type: custom:meteoalarm-card
entities:
entity: sensor.weatheralerts
integration: weatheralerts
hide_when_no_warning: true
- type: custom:mushroom-template-card
primary: Hello, {{user}}
secondary: >-
{% from 'weather.jinja' import weatherReport %}
{{ weatherReport('full','text') }}
--- Indoor Temps ---
Average: {{ states('sensor.average_room_temperature',with_unit=true)
}}
Coldest: {{ state_attr('sensor.coldest_room_temperature','room') }},
{{ states('sensor.coldest_room_temperature',with_unit=true) }}
Warmest: {{ state_attr('sensor.warmest_room_temperature','room') }},
{{ states('sensor.warmest_room_temperature',with_unit=true) }}
--- Lights ---
Average: {{ states('sensor.average_room_illuminance',with_unit=true)
}}
Dimmest: {{ state_attr('sensor.dimmest_room','room') }}, {{
states('sensor.dimmest_room',with_unit=true) }}
Brightest: {{ state_attr('sensor.brightest_room','room') }}, {{
states('sensor.brightest_room',with_unit=true) }}
For advanced controls, click this card to go to the main dashboard.
icon: mdi:home
tap_action:
action: navigate
navigation_path: /lovelace
multiline_secondary: true
icon_color: blue
fill_container: false
- square: false
type: grid
cards:
- type: custom:button-card
name: Global Scenes
icon: mdi:home-lightbulb-outline
show_label: true
aspect_ratio: 1.25/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: entities
entities:
- script.give_me_darkness
- button.good_morning
- button.goodnight
- script.max_brightness
- button.sunset_lights_trigger
- entity: button.basement_on_manual
name: Basement On
- script.adaptive_on_first_floor
- script.adaptive_on_second_floor
- script.bright_on_first_floor
- script.bright_on_second_floor
- script.evening_on_first_floor
- script.evening_on_second_floor
- switch.animated_scene_halloween
- script.emma_rainbow_lights
- type: custom:button-card
name: Messages
icon: mdi:bullhorn
show_label: true
aspect_ratio: 1.25/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: custom:stack-in-card
cards:
- type: entities
title: Premade
entities:
- entity: script.dinner_is_ready
name: Dinner Is Ready
icon: mdi:bullhorn
- entity: script.we_are_leaving
name: We Are Leaving
icon: mdi:bullhorn
- entity: script.birthday_announcement
name: Birthday Announcement
icon: mdi:bullhorn
- entity: script.server_maintenance_annc
name: Server Maintenance
icon: mdi:bullhorn
- entity: script.server_maintenance_done_annc
name: Server Maintenance Done
icon: mdi:bullhorn
- entity: script.speech_engine
name: Speech Engine
icon: mdi:bullhorn
- type: custom:tabbed-card
styles:
'--mdc-theme-primary': null
'--mdc-tab-text-label-color-default': null
'--mdc-typography-button-font-size': null
tabs:
- card:
type: entities
entities:
- entity: input_text.tts_message
name: Message
- entity: input_select.tts_devices
name: Devices
- entity: input_select.announcement_voice
- entity: button.send_alexa_message
name: Send Message
attributes:
label: TTS
icon: mdi:volume-high
- card:
type: entities
entities:
- entity: input_select.select_phones
- entity: input_select.select_tvs
- entity: input_text.text_notification_title
name: Title
- entity: input_text.text_notification
name: Body
- entity: >-
input_select.text_notification_priority_level
name: Priority Level (Only works for phones)
- entity: button.send_text_notification
name: Send
show_header_toggle: false
state_color: false
attributes:
label: Text Notify
icon: mdi:text
- card:
type: entities
entities:
- entity: input_text.report_system
name: Description
- entity: input_select.report_type
name: Report Type
- entity: button.send_report
show_header_toggle: false
state_color: false
attributes:
label: Reports
icon: mdi:bug
- type: custom:button-card
name: Weather
icon: mdi:weather-partly-cloudy
show_label: true
aspect_ratio: 1.25/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: custom:clock-weather-card
entity: weather.iron_nerd_weather_station
sun_entity: sun.sun
weather_icon_type: fill
animated_icon: true
forecast_rows: 7
time_format: 12
tap_action:
action: navigate
navigation_path: /lovelace/weather
- type: custom:button-card
name: Batteries
icon: mdi:battery-charging
show_label: true
aspect_ratio: 1.25/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: custom:battery-state-card
sort_by_level: asc
bulk_rename:
- from: Battery
to: ''
- from: Stratton Ave
to: ''
- from: Dimmer Switch
to: ''
collapse:
- name: 'Door Sensors (min: {min}%, count: {count})'
secondary_info: Battery levels {range}%
icon: mdi:door
entities:
- sensor.front_door_battery
- sensor.back_door_battery
- sensor.basement_studio_door_battery
- sensor.downstairs_bathroom_door_battery
- name: 'Window Sensors (min: {min}%, count: {count})'
secondary_info: Battery levels {range}%
icon: mdi:window-closed
entities:
- sensor.front_window_battery_1
- sensor.front_window_battery_2
- sensor.front_window_battery_3
- sensor.side_window_1_battery
- sensor.side_window_2_battery
- sensor.side_window_3_battery
- sensor.side_window_4_battery
- sensor.back_window_1_battery
- sensor.back_window_2_battery
- sensor.stairway_window_lower_battery
- sensor.stairway_window_upper_battery
- sensor.kitchen_big_window_battery
- sensor.kitchen_sink_window_battery
- sensor.mud_room_window_battery
- sensor.downstairs_bathroom_window_1_battery
- sensor.downstairs_bathroom_window_2_battery
- sensor.upstairs_bathroom_window_battery
- name: 'Glass Break Sensors (min: {min}%, count: {count})'
secondary_info: Battery levels {range}%
icon: mdi:image-broken-variant
entities:
- sensor.living_room_glass_break_battery
- name: 'Motion Detectors (min: {min}%, count: {count})'
secondary_info: Battery levels {range}%
icon: mdi:motion-sensor
entities:
- sensor.living_room_front_battery
- sensor.upstairs_bathroom_battery
- sensor.downstairs_bathroom_battery
- sensor.emma_bedroom_battery
- sensor.stairwell_bottom_battery
- sensor.basement_studio_battery
- sensor.kallen_bedroom_battery
- sensor.mud_room_battery
- sensor.stairwell_top_battery
- sensor.living_room_back_battery
- sensor.master_bedroom_battery
- name: 'Dimmer Switches (min: {min}%, count: {count})'
secondary_info: Battery Levels {range}%
icon: mdi:toggle-switch
entities:
- sensor.kallen_bedroom_dimmer_switch_battery
- sensor.tina_desk_dimmer_switch_battery
- sensor.emma_bedroom_dimmer_switch_battery
- sensor.master_bedroom_dimmer_switch_battery
- sensor.living_room_dimmer_switch_battery
filter:
include:
- name: entity_id
value: '*_battery'
- name: entity_id
value: '*battery_mqtt'
exclude:
- name: entity_id
value: '*iphone*'
- name: entity_id
value: '*ipad*'
- name: entity_id
value: '*airpod*'
- name: entity_id
value: '*apple*'
- name: entity_id
value: '*chrome*'
- name: entity_id
value: sensor.front_doorbell_battery
tap_action: more-info
columns: 4
- type: grid
square: false
columns: 4
cards:
- type: custom:button-card
name: Tony
icon: mdi:human-male
show_label: true
aspect_ratio: 1.25/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: vertical-stack
cards:
- type: entities
title: Meds
entities:
- entity: input_boolean.tony_morning_meds_taken
name: Morning Meds
- entity: input_boolean.tony_afternoon_meds_taken
name: Afternoon Meds
- entity: input_boolean.tony_night_meds_taken
name: Night Meds
- entity: input_datetime.tony_morning_meds_taken
name: Morning Meds Taken
- entity: input_datetime.tony_afternoon_meds_taken
name: Afternoon Meds Taken
- entity: input_datetime.tony_night_meds_taken
name: Night Meds Taken
- entity: input_datetime.tony_morning_meds_notify
name: Morning Notify
- entity: input_datetime.tony_afternoon_meds_notify
name: Afternoon Notify
- entity: input_datetime.tony_night_meds_notify
name: Night Notify
- entity: counter.tony_morning_meds_reminder_count
name: Morning Reminders
- entity: counter.tony_afternoon_meds_reminder_count
name: Afternoon Reminders
- entity: counter.tony_night_meds_reminder_count
name: Night Reminders
- entity: input_number.tony_afternoon_meds_interval
name: Afternoon Interval
show_header_toggle: false
state_color: true
- type: entities
title: Computer
entities:
- entity: binary_sensor.tony_desktop_on
name: Status
- entity: script.tony_desktop_wake
name: Wake
- entity: script.tony_desktop_shutdown
name: Shutdown
show_header_toggle: false
state_color: true
- type: custom:button-card
name: Tina
icon: mdi:human-female
show_label: true
aspect_ratio: 1.25/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: vertical-stack
cards:
- type: entities
title: Meds
entities:
- entity: input_boolean.tina_morning_meds_taken
name: Morning Meds
- entity: input_boolean.tina_night_meds_taken
name: Night Meds
- entity: input_datetime.tina_morning_meds_taken
name: Morning Meds Taken
- entity: input_datetime.tina_night_meds_taken
name: Night Meds Taken
- entity: input_datetime.tina_morning_meds_notify
name: Morning Notify
- entity: input_datetime.tina_night_meds_notify
name: Night Notify
- entity: counter.tina_morning_meds_reminder_count
name: Morning Reminders
- entity: counter.tina_night_meds_reminder_count
name: Night Reminders
show_header_toggle: false
state_color: true
- type: entities
title: Computer
entities:
- entity: binary_sensor.tina_desktop_on
name: Status
- entity: script.tina_desktop_wake
name: Wake
- entity: script.tina_desktop_shutdown
name: Shutdown
show_header_toggle: false
state_color: true
- type: custom:button-card
name: Kallen
icon: mdi:human-child
show_label: true
aspect_ratio: 1.25/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: vertical-stack
cards:
- type: entities
title: Meds
entities:
- entity: input_boolean.kallen_morning_meds_taken
name: Morning Meds
- entity: input_boolean.kallen_night_meds_taken
name: Night Meds
- entity: input_datetime.kallen_morning_meds_taken
name: Morning Meds Taken
- entity: input_datetime.kallen_night_meds_taken
name: Night Meds Taken
- entity: input_datetime.kallen_morning_meds_notify
name: Morning Notify
- entity: input_datetime.kallen_night_meds_notify
name: Night Notify
- entity: counter.kallen_morning_meds_reminder_count
name: Morning Reminders
- entity: counter.kallen_night_meds_reminder_count
name: Night Reminders
- entity: input_boolean.kallen_late_bedtime
name: Late Bedtime
show_header_toggle: false
state_color: true
- type: entities
title: Computer
entities:
- entity: binary_sensor.kallen_desktop_on
name: Status
- entity: script.kallen_desktop_wake
name: Wake
- entity: script.kallen_desktop_shutdown
name: Shutdown
show_header_toggle: false
state_color: true
- type: custom:button-card
name: Emma
icon: mdi:bow-tie
show_label: true
aspect_ratio: 1.25/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: entities
title: Emma Meds
entities:
- type: custom:fold-entity-row
head:
type: section
label: Alternating Meds
entities:
- entity: input_boolean.emma_alternating_meds_active
name: Alternating Meds Active
- entity: input_boolean.emma_tylenol
name: Tylenol Taken
- entity: input_datetime.emma_tylenol
name: Tylenol Given
- entity: input_datetime.emma_tylenol_notify
name: Tylenol Notify
- entity: input_boolean.emma_ibuprofen
name: Ibuprofen Taken
- entity: input_datetime.emma_ibuprofen
name: Ibuprofen Given
- entity: input_datetime.emma_ibuprofen_notify
name: Ibuprofen Notify
- type: custom:fold-entity-row
head:
type: section
label: Cough Meds
entities:
- entity: input_boolean.emma_cough_meds_active
name: Cough Meds Active
- entity: input_boolean.emma_cough_meds
name: Cough Meds Taken
- entity: input_datetime.emma_cough_meds
name: Cough Meds Given
- entity: input_datetime.emma_cough_meds_notify
name: Cough Meds Notify
- entity: input_number.emma_cough_meds_interval
name: Interval
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: grid
square: false
columns: 2
cards:
- type: custom:button-card
name: Cats
icon: mdi:cat
show_label: true
aspect_ratio: 2.5/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: custom:mushroom-template-card
primary: ''
secondary: Cat stuff coming soon. Maybe.
icon: ''
layout: vertical
multiline_secondary: false
fill_container: false
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
- type: custom:button-card
name: Rabbit
icon: mdi:rabbit
show_label: true
aspect_ratio: 2.5/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: vertical-stack
cards:
- type: entities
entities:
- entity: input_boolean.rabbit_fed
- entity: input_datetime.rabbit_fed
- entity: input_datetime.rabbit_feeding_notify
name: Notify
- entity: input_number.rabbit_feeding_interval
name: Interval
- entity: counter.rabbit_feeding_reminder_count
name: Reminder Count
show_header_toggle: false
state_color: true
title: Rabbit Feeding
- type: entities
entities:
- entity: input_boolean.rabbit_hutch_cleaned
name: Hutch Cleaned
- entity: input_datetime.rabbit_hutch_cleaned
name: Hutch Cleaned
- entity: input_datetime.rabbit_hutch_cleaning_notify
name: Notify
- entity: input_number.rabbit_hutch_cleaning_interval
name: Interval
- entity: counter.rabbit_hutch_cleaning_reminder_count
name: Reminder Count
title: Rabbit Hutch Cleaning
show_header_toggle: false
state_color: true
- type: grid
square: false
columns: 1
cards:
- type: custom:button-card
name: Running
icon: mdi:database-clock
show_label: true
aspect_ratio: 5/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: custom:auto-entities
filter:
include:
- domain: automation
attributes:
current: '> 0'
- domain: script
attributes:
current: '> 0'
exclude: []
sort:
method: last_triggered
reverse: false
else:
type: custom:mushroom-template-card
primary: Nothing running
secondary: There are currently no automations or scripts running
multiline_secondary: true
layout: vertical
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
fill_container: false
card:
type: entities
show_header_toggle: false
state_color: true
title: Running Automations/Scripts
card_mod:
style: |
ha-dialog {
--mdc-dialog-min-height: 10px !important;
}
visibility:
- condition: user
users:
- c3909d27048140729f002aaef0391775
- type: grid
square: false
columns: 1
cards:
- type: custom:button-card
name: Kallen Timer
icon: mdi:timer
show_label: true
aspect_ratio: 5/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
tap_action:
action: fire-dom-event
browser_mod:
service: browser_mod.popup
data:
content:
type: custom:stack-in-card
title: Activity Timer
cards:
- type: custom:flipdown-timer-card
entity: timer.kallen_timer
name: Kallen Activity Timer
duration: '00:00:00'
show_title: false
show_header: true
show_error: false
show_hour: auto
styles:
button:
location: hide
- type: entities
entities:
- entity: input_number.kallen_activity_duration
name: Duration
- entity: input_boolean.kallen_timer_control_lights
name: Control Lights
- entity: input_select.kallen_activity_room
name: Room
- entity: input_select.kallen_activities
name: Activity
show_header_toggle: false
state_color: true
- type: custom:stack-in-card
mode: horizontal
cards:
- type: custom:button-card
entity: timer.kallen_timer
name: []
show_label: true
aspect_ratio: 2.7/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
state:
- value: active
label: Running
icon: mdi:play
styles:
icon:
- color: green
- value: paused
label: Paused
icon: mdi:pause
styles:
icon:
- color: yellow
- value: idle
label: Idle
icon: mdi:play
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.kallen_timer_start
hold_action:
action: more-info
entity: timer.kallen_timer
- type: custom:button-card
entity: timer.kallen_timer
name: []
icon: mdi:cancel
label: Cancel
show_label: true
aspect_ratio: 2.7/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
state:
- value: active
styles:
icon:
- color: green
- value: paused
styles:
icon:
- color: yellow
- value: idle
tap_action:
action: call-service
service: script.kallen_timer_cancel
hold_action:
action: more-info
entity: timer.kallen_timer
visibility:
- condition: user
users:
- 879b4c04e32841b3ad1d2763a11b4e70
- type: custom:mushroom-template-card
primary: ''
multiline_secondary: true
secondary: |-
{% from 'formatting.jinja' import cleanup %}
{% import 'status.jinja' as status %}
{{ cleanup(status.tony_status_report('full','text')) }}
{{ cleanup(status.tina_status_report('full','text')) }}
{{ cleanup(status.kallen_status_report('full','text')) }}
{{ cleanup(status.emma_status_report('full','text')) }}
{{ cleanup(status.house_status_report('full','text')) }}
{{ cleanup(status.laundry_report('full','text')) }}
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
fill_container: false
- type: custom:mushroom-template-card
primary: ''
secondary: Cat stuff coming soon. Maybe.
icon: ''
layout: vertical
multiline_secondary: false
fill_container: false
tap_action:
action: none
hold_action:
action: none
double_tap_action:
action: none
type: masonry
subview: true
- title: 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: Computer
- type: entities
entities:
- entity: binary_sensor.tony_desktop_on
name: Status
- entity: script.tony_desktop_wake
name: Wake
- entity: script.tony_desktop_shutdown
name: Shutdown
show_header_toggle: false
state_color: true
visible:
- user: f387a983651a4321a7411ff8cf36f949
- user: c3909d27048140729f002aaef0391775
cards: []
- title: Tina
path: tina
icon: mdi:human-female
type: sections
max_columns: 4
subview: true
visible:
- user: f387a983651a4321a7411ff8cf36f949
- user: c3909d27048140729f002aaef0391775
sections:
- type: grid
cards:
- type: heading
heading: Meds
- type: entities
state_color: true
show_header_toggle: false
entities:
- entity: input_boolean.tina_ibuprofen_taken
- entity: input_datetime.tina_ibuprofen_taken
- entity: input_datetime.tina_ibuprofen_notify
visibility:
- condition: state
entity: input_boolean.tina_ibuprofen_active
state: 'on'
- type: entities
state_color: true
show_header_toggle: false
entities:
- entity: input_boolean.tina_tylenol_taken
- entity: input_datetime.tina_tylenol_taken
- entity: input_datetime.tina_tylenol_notify
visibility:
- condition: state
entity: input_boolean.tina_tylenol_active
state: 'on'
- type: entities
entities:
- entity: input_boolean.tina_morning_meds_taken
name: Morning Meds
- entity: input_datetime.tina_morning_meds_taken
name: Morning Meds Taken
- entity: input_datetime.tina_morning_meds_notify
name: Morning Notify
- entity: input_boolean.tina_morning_meds_reminder
name: Reminders Active
- entity: counter.tina_morning_meds_reminder_count
name: Morning Reminders
show_header_toggle: false
state_color: true
- type: entities
entities:
- entity: input_boolean.tina_night_meds_taken
name: Night Meds
- entity: input_datetime.tina_night_meds_taken
name: Night Meds Taken
- entity: input_datetime.tina_night_meds_notify
name: Night Notify
- entity: input_boolean.tina_night_meds_reminder
name: Reminders Active
- entity: counter.tina_night_meds_reminder_count
name: Night Reminders
show_header_toggle: false
state_color: true
- type: entities
entities:
- type: custom:fold-entity-row
head:
type: section
label: Settings
entities:
- entity: input_boolean.tina_ibuprofen_active
name: Ibuprofen Active
- entity: input_boolean.tina_tylenol_active
name: Tylenol Active
- type: grid
cards:
- type: heading
heading: Computer
- type: entities
entities:
- entity: binary_sensor.tina_desktop_on
name: Status
- entity: script.tina_desktop_wake
name: Wake
- entity: script.tina_desktop_shutdown
name: Shutdown
show_header_toggle: false
state_color: true
- title: Kallen
path: kallen
icon: mdi:human-child
type: sections
max_columns: 4
subview: true
sections:
- type: grid
cards:
- type: heading
heading: Meds
- type: entities
entities:
- entity: input_boolean.kallen_morning_meds_taken
name: Morning Meds
- entity: input_datetime.kallen_morning_meds_taken
name: Morning Meds Taken
- entity: input_datetime.kallen_morning_meds_notify
name: Morning Notify
- entity: input_boolean.kallen_morning_meds_reminder
name: Reminders Active
- entity: counter.kallen_morning_meds_reminder_count
name: Morning Reminders
show_header_toggle: false
state_color: true
- type: entities
entities:
- entity: input_boolean.kallen_night_meds_taken
name: Night Meds
- entity: input_datetime.kallen_night_meds_taken
name: Night Meds Taken
- entity: input_datetime.kallen_night_meds_notify
name: Night Notify
- entity: input_boolean.kallen_night_meds_reminder
name: Reminders Active
- entity: counter.kallen_night_meds_reminder_count
name: Night Reminders
show_header_toggle: false
state_color: true
- type: grid
cards:
- type: heading
heading: Computer
- type: entities
entities:
- entity: binary_sensor.kallen_desktop_on
name: Status
- entity: script.kallen_desktop_wake
name: Wake
- entity: script.kallen_desktop_shutdown
name: Shutdown
show_header_toggle: false
state_color: true
- title: Emma
path: emma
icon: mdi:bow-tie
type: sections
max_columns: 4
subview: true
visible:
- user: f387a983651a4321a7411ff8cf36f949
- user: c3909d27048140729f002aaef0391775
sections:
- type: grid
cards:
- type: heading
heading: Meds
- type: entities
entities:
- entity: input_boolean.emma_alternating_meds_active
name: Alternating Meds Active
- entity: input_boolean.emma_cough_meds_active
name: Cough Meds Active
show_header_toggle: false
state_color: true
- type: entities
entities:
- entity: input_boolean.emma_cough_meds
name: Cough Meds Taken
- entity: input_datetime.emma_cough_meds
name: Cough Meds Given
- entity: input_datetime.emma_cough_meds_notify
name: Cough Meds Notify
- entity: input_number.emma_cough_meds_interval
name: Interval
show_header_toggle: false
state_color: true
visibility:
- condition: state
entity: input_boolean.emma_cough_meds_active
state: 'on'
- type: entities
entities:
- entity: input_boolean.emma_tylenol
name: Tylenol Taken
- entity: input_datetime.emma_tylenol
name: Tylenol Given
- entity: input_datetime.emma_tylenol_notify
name: Tylenol Notify
show_header_toggle: false
state_color: true
visibility:
- condition: state
entity: input_boolean.emma_alternating_meds_active
state: 'on'
- type: entities
entities:
- entity: input_boolean.emma_ibuprofen
name: Ibuprofen Taken
- entity: input_datetime.emma_ibuprofen
name: Ibuprofen Given
- entity: input_datetime.emma_ibuprofen_notify
name: Ibuprofen Notify
show_header_toggle: false
state_color: true
visibility:
- condition: state
entity: input_boolean.emma_alternating_meds_active
state: 'on'
- title: Rabbit
path: rabbit
icon: mdi:rabbit
type: sections
max_columns: 4
subview: true
sections:
- type: grid
cards:
- type: heading
heading: Feeding
- type: entities
entities:
- entity: input_boolean.rabbit_fed
- entity: input_datetime.rabbit_fed
- entity: input_datetime.rabbit_feeding_notify
name: Notify
- entity: input_number.rabbit_feeding_interval
name: Interval
- entity: counter.rabbit_feeding_reminder_count
name: Reminder Count
show_header_toggle: false
state_color: true
- type: grid
cards:
- type: heading
heading: Cleaning
- type: entities
entities:
- entity: input_boolean.rabbit_hutch_cleaned
name: Hutch Cleaned
- entity: input_datetime.rabbit_hutch_cleaned
name: Hutch Cleaned
- entity: input_datetime.rabbit_hutch_cleaning_notify
name: Notify
- entity: input_number.rabbit_hutch_cleaning_interval
name: Interval
- entity: counter.rabbit_hutch_cleaning_reminder_count
name: Reminder Count
show_header_toggle: false
state_color: true
- title: Kallen Timer
path: kallen-timer
icon: mdi:timer
type: sections
max_columns: 4
subview: true
sections:
- type: grid
cards:
- type: custom:stack-in-card
title: Activity Timer
cards:
- type: custom:flipdown-timer-card
entity: timer.kallen_timer
name: Kallen Activity Timer
duration: '00:00:00'
show_title: false
show_header: true
show_error: false
show_hour: auto
styles:
button:
location: hide
- type: entities
entities:
- entity: input_number.kallen_activity_duration
name: Duration
- entity: input_boolean.kallen_timer_control_lights
name: Control Lights
- entity: input_select.kallen_activity_room
name: Room
- entity: input_select.kallen_activities
name: Activity
show_header_toggle: false
state_color: true
- type: custom:stack-in-card
mode: horizontal
cards:
- type: custom:button-card
entity: timer.kallen_timer
name: []
show_label: true
aspect_ratio: 2.7/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
state:
- value: active
label: Running
icon: mdi:play
styles:
icon:
- color: green
- value: paused
label: Paused
icon: mdi:pause
styles:
icon:
- color: yellow
- value: idle
label: Idle
icon: mdi:play
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.kallen_timer_start
hold_action:
action: more-info
entity: timer.kallen_timer
- type: custom:button-card
entity: timer.kallen_timer
name: []
icon: mdi:cancel
label: Cancel
show_label: true
aspect_ratio: 2.7/1
styles:
card:
- '--mdc-ripple-color': purple
- '--mdc-ripple-press-opacity': 0.5
state:
- value: active
styles:
icon:
- color: green
- value: paused
styles:
icon:
- color: yellow
- value: idle
tap_action:
action: call-service
service: script.kallen_timer_cancel
hold_action:
action: more-info
entity: timer.kallen_timer
- title: Sports
path: sports
icon: mdi:football
type: sections
sections:
- type: grid
cards:
- type: heading
heading: NCAAF
- type: custom:teamtracker-card
entity: sensor.michigan_wolverines
visibility:
- condition: state
entity: sensor.michigan_wolverines
state_not: NOT_FOUND
- condition: state
entity: sensor.michigan_wolverines
state_not: BYE
- condition: state
entity: binary_sensor.michigan_wolverines_inhibit
state: 'off'
- type: custom:teamtracker-card
entity: sensor.ohio_state_buckeyes
visibility:
- condition: state
entity: sensor.ohio_state_buckeyes
state_not: NOT_FOUND
- condition: state
entity: sensor.ohio_state_buckeyes
state_not: BYE
- condition: state
entity: binary_sensor.ohio_state_buckeyes_inhibit
state: 'off'
- type: custom:teamtracker-card
entity: sensor.toledo_rockets
visibility:
- condition: state
entity: sensor.toledo_rockets
state_not: NOT_FOUND
- condition: state
entity: sensor.toledo_rockets
state_not: BYE
- condition: state
entity: binary_sensor.toledo_rockets_inhibit
state: 'off'
column_span: 3
visibility:
- condition: or
conditions:
- condition: state
entity: binary_sensor.michigan_wolverines_inhibit
state: 'off'
- condition: state
entity: binary_sensor.ohio_state_buckeyes_inhibit
state: 'off'
- condition: state
entity: binary_sensor.toledo_rockets_inhibit
state: 'off'
- type: grid
cards:
- type: heading
heading: NFL
- type: custom:teamtracker-card
entity: sensor.minnesota_vikings
visibility:
- condition: state
entity: sensor.minnesota_vikings
state_not: NOT_FOUND
- condition: state
entity: sensor.minnesota_vikings
state_not: BYE
- condition: state
entity: binary_sensor.minnesota_vikings_inhibit
state: 'off'
- type: custom:teamtracker-card
entity: sensor.san_francisco_49ers
visibility:
- condition: state
entity: sensor.san_francisco_49ers
state_not: NOT_FOUND
- condition: state
entity: sensor.san_francisco_49ers
state_not: BYE
- condition: state
entity: binary_sensor.san_francisco_49ers_inhibit
state: 'off'
column_span: 2
visibility:
- condition: or
conditions:
- condition: state
entity: binary_sensor.minnesota_vikings_inhibit
state: ''
- condition: state
entity: binary_sensor.san_francisco_49ers_inhibit
state: 'off'
- type: grid
cards:
- type: heading
heading: MLB
- type: custom:teamtracker-card
entity: sensor.minnesota_twins
visibility:
- condition: state
entity: sensor.minnesota_twins
state_not: NOT_FOUND
- condition: state
entity: sensor.minnesota_twins
state_not: BYE
- condition: state
entity: binary_sensor.minnesota_twins_inhibit
state: 'off'
- type: custom:teamtracker-card
entity: sensor.cleveland_guardians
visibility:
- condition: state
entity: sensor.cleveland_guardians
state_not: NOT_FOUND
- condition: state
entity: sensor.cleveland_guardians
state_not: BYE
- condition: state
entity: binary_sensor.cleveland_guardians_inhibit
state: 'off'
- type: custom:teamtracker-card
entity: sensor.los_angeles_dodgers
visibility:
- condition: state
entity: sensor.los_angeles_dodgers
state_not: NOT_FOUND
- condition: state
entity: sensor.los_angeles_dodgers
state_not: BYE
- condition: state
entity: binary_sensor.los_angeles_dodgers_inhibit
state: 'off'
column_span: 3
visibility:
- condition: or
conditions:
- condition: state
entity: binary_sensor.minnesota_twins_inhibit
state: 'off'
- condition: state
entity: binary_sensor.cleveland_guardians_inhibit
state: 'off'
- condition: state
entity: binary_sensor.los_angeles_dodgers_inhibit
state: 'off'
- type: grid
cards:
- type: heading
heading: NHL
- type: custom:teamtracker-card
entity: sensor.minnesota_wild
visibility:
- condition: state
entity: sensor.minnesota_wild
state_not: NOT_FOUND
- condition: state
entity: sensor.minnesota_wild
state_not: BYE
- condition: state
entity: binary_sensor.minnesota_wild_inhibit
state: 'off'
column_span: 1
visibility:
- condition: state
entity: binary_sensor.minnesota_wild_inhibit
state: 'off'
- type: grid
cards:
- type: heading
heading: Motorsports
- type: custom:mushroom-template-card
primary: Hello, {{user}}
secondary: For the latest Formula 1 statistics, tap this card!
icon: fas:flag-checkered
icon_color: |-
{% if is_state('sensor.formula_one','PRE') %}
white
{% elif is_state('sensor.formula_one','IN') %}
green
{% elif is_state('sensor.formula_one','POST') %}
red
{% else %}
black
{% endif %}
badge_icon: |-
{% if is_state('sensor.formula_one','PRE') %}
mdi:car-clock
{% elif is_state('sensor.formula_one','IN') %}
mdi:car-multiple
{% elif is_state('sensor.formula_one','POST') %}
mdi:flag-checkered
{% else %}
mdi:close
{% endif %}
layout: horizontal
fill_container: false
multiline_secondary: false
tap_action:
action: navigate
navigation_path: /lovelace/formula-1
hold_action:
action: none
double_tap_action:
action: none
badge_color: |-
{% if is_state('sensor.formula_one','PRE') %}
grey
{% elif is_state('sensor.formula_one','IN') %}
green
{% elif is_state('sensor.formula_one','POST') %}
red
{% else %}
black
{% endif %}
column_span: 1
max_columns: 5
cards: []
subview: true
- title: Climate
path: climate
icon: mdi:home-thermometer
type: sections
sections:
- type: grid
cards:
- type: heading
heading: Overview
- type: custom:auto-entities
show_empty: false
card:
type: entities
title: Climate On
show_header_toggle: false
state_color: true
filter:
include:
- domain: fan
- domain: climate
exclude:
- entity_id: fan.all_fans
- state: 'off'
- state: unavailable
- integration: generic_thermostat
sort:
method: friendly_name
reverse: false
- type: custom:auto-entities
card:
type: entities
show_header_toggle: false
title: Room Temperature Warnings
state_color: true
filter:
include:
- entity_id: binary_sensor.*_hot
state: 'on'
- entity_id: binary_sensor.*_cold
state: 'on'
sort:
method: entity_id
reverse: false
numeric: false
ignore_case: false
show_empty: false
- type: custom:auto-entities
card:
type: entities
title: Floor Average Temperatures
state_color: true
show_header_toggle: false
filter:
include:
- entity_id: sensor.*floor_average_temperature
exclude: []
sort:
method: state
numeric: true
reverse: true
- type: custom:auto-entities
card:
type: entities
title: Room Temperatures
state_color: true
show_header_toggle: false
filter:
include:
- device_manufacturer: Signify Netherlands B.V.
entity_id: sensor.*_temperature
exclude: []
sort:
method: state
numeric: true
reverse: true
- type: grid
cards:
- type: heading
heading: Master Bedroom
- type: entities
entities:
- entity: switch.master_bedroom_aircon_display
name: A/C Display
- entity: switch.master_bedroom_aircon_prompt_tone
name: Prompt Tone
- entity: binary_sensor.master_bedroom_aircon_filter_alert
name: Filter Status
- entity: input_number.master_bedroom_daytime_temp
name: Daytime Temp
- entity: input_number.master_bedroom_night_temp
name: Night Temp
- entity: input_number.master_bedroom_bedtime_temp
name: Bedtime Temp
- entity: button.master_bedroom_fan_only
name: A/C Fan Only
- entity: button.master_bedroom_day_mode
name: Day Mode
icon: m3rf:sunny
- entity: button.master_bedroom_night_mode
name: Night Mode
- entity: button.master_bedroom_bedtime_mode
name: Bedtime Mode
- entity: button.master_bedroom_climate_reset
name: Climate Reset
show_header_toggle: false
state_color: true
visibility:
- condition: state
entity: input_boolean.master_bedroom_aircon_installed
state: 'on'
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: grid
cards:
- type: heading
heading: Emma Bedroom
- type: entities
entities:
- entity: switch.emma_bedroom_aircon_display
name: A/C Display
- entity: switch.emma_bedroom_aircon_prompt_tone
name: Prompt Tone
- entity: switch.emma_bedroom_climate_watchdog
name: Climate Watchdog
secondary_info: Protects aircon settings
- entity: binary_sensor.emma_bedroom_aircon_filter_alert
name: Filter Status
- entity: input_number.emma_bedroom_daytime_temp
name: Daytime Temp
- entity: input_number.emma_bedroom_night_temp
name: Night Temp
- entity: input_number.emma_bedroom_bedtime_temp
name: Bedtime Temp
- entity: button.emma_bedroom_fan_only
name: A/C Fan Only
- entity: button.emma_bedroom_day_mode
name: Day Mode
icon: m3rf:sunny
- entity: button.emma_bedroom_night_mode
name: Night Mode
- entity: button.emma_bedroom_bedtime_mode
name: Bedtime Mode
- entity: button.emma_bedroom_climate_reset
name: Climate Reset
show_header_toggle: false
state_color: true
visibility:
- condition: state
entity: input_boolean.emma_bedroom_aircon_installed
state: 'on'
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: grid
cards:
- type: heading
heading: Climate Feed
- type: custom:home-feed-card
card_id: climate_feed_ac
show_empty: false
id_filter: ^home_feed_.*
more_info_on_tap: true
state_color: true
entities:
- entity: climate.master_bedroom_aircon
icon: mdi:air-conditioner
exclude_states:
- unavailable
- unknown
- entity: climate.emma_bedroom_aircon
icon: mdi:air-conditioner
exclude_states:
- unavailable
- unknown
- entity: sensor.master_bedroom_target_temp
icon: mdi:thermostat
name: Master Bedroom Set Temp
exclude_states:
- unavailable
- unknown
- entity: sensor.emma_bedroom_target_temp
icon: mdi:thermostat
name: Emma Bedroom Set Temp
exclude_states:
- unavailable
- unknown
- entity: fan.master_bedroom_fan
name: Master Bedroom Fan
exclude_states:
- unavailable
- unknown
- entity: fan.basement_fan
name: Basement Fan
exclude_states:
- unavailable
- unknown
- entity: fan.kallen_bedroom_fan
name: Kallen Fan
exclude_states:
- unavailable
- unknown
- entity: switch.master_bedroom_aircon_eco_mode
name: Master Bedroom Eco Mode
- entity: sensor.master_bedroom_aircon_fan_mode
name: Master Bedroom A/C Fan
exclude_states:
- unavailable
- unknown
- entity: binary_sensor.emma_bedroom_aircon_fan
name: Emma Bedroom A/C Fan
exclude_states:
- unavailable
- unknown
- entity: binary_sensor.emma_bedroom_aircon_compressor
name: Emma Bedroom A/C Compressor
exclude_states:
- unavailable
- unknown
- entity: switch.emma_bedroom_aircon_eco_mode
name: Emma Bedroom Eco Mode
- entity: sensor.emma_bedroom_aircon_fan_mode
name: Emma Bedroom A/C Fan
exclude_states:
- unavailable
- unknown
- entity: binary_sensor.master_bedroom_aircon_fan
name: Master Bedroom A/C Fan
exclude_states:
- unavailable
- unknown
- entity: binary_sensor.master_bedroom_aircon_compressor
name: Master Bedroom A/C Compressor
exclude_states:
- unavailable
- unknown
- entity: climate.basement_studio_vtherm
name: Basement Studio VTherm
exclude_states:
- unavailable
- unknown
- entity: switch.basement_studio_heater
name: Basement Studio Heater
exclude_states:
- unavailable
- unknown
- entity: climate.emma_bedroom_vtherm
name: Emma Bedroom VTherm
exclude_states:
- unavailable
- unknown
- entity: switch.emma_bedroom_heater
name: Emma Bedroom Heater
exclude_states:
- unavailable
- unknown
- entity: switch.master_bedroom_aircon_display
name: Master Bedroom A/C Display
exclude_states:
- unavailable
- unknown
- entity: switch.emma_bedroom_aircon_display
name: Emma Bedroom A/C Display
exclude_states:
- unavailable
- unknown
max_columns: 4
cards: []
badges: []
subview: true
title: ''