5929 lines
225 KiB
YAML
5929 lines
225 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.downstairs_bathroom_door_battery
|
|
- name: 'Window Sensors (min: {min}%, count: {count})'
|
|
secondary_info: Battery levels {range}%
|
|
icon: mdi:window-closed
|
|
entities:
|
|
- sensor.front_window_battery_1
|
|
- sensor.front_window_battery_2
|
|
- sensor.front_window_battery_3
|
|
- sensor.side_window_1_battery
|
|
- sensor.side_window_2_battery
|
|
- sensor.side_window_3_battery
|
|
- sensor.side_window_4_battery
|
|
- sensor.back_window_1_battery
|
|
- sensor.back_window_2_battery
|
|
- sensor.stairway_window_lower_battery
|
|
- sensor.stairway_window_upper_battery
|
|
- sensor.kitchen_big_window_battery
|
|
- sensor.kitchen_sink_window_battery
|
|
- sensor.mud_room_window_battery
|
|
- sensor.downstairs_bathroom_window_1_battery
|
|
- sensor.downstairs_bathroom_window_2_battery
|
|
- sensor.upstairs_bathroom_window_battery
|
|
- name: 'Glass Break Sensors (min: {min}%, count: {count})'
|
|
secondary_info: Battery levels {range}%
|
|
icon: mdi:image-broken-variant
|
|
entities:
|
|
- sensor.living_room_glass_break_battery
|
|
- name: 'Motion Detectors (min: {min}%, count: {count})'
|
|
secondary_info: Battery levels {range}%
|
|
icon: mdi:motion-sensor
|
|
entities:
|
|
- sensor.living_room_front_battery
|
|
- sensor.upstairs_bathroom_battery
|
|
- sensor.downstairs_bathroom_battery
|
|
- sensor.emma_bedroom_battery
|
|
- sensor.stairwell_bottom_battery
|
|
- sensor.basement_studio_battery
|
|
- sensor.kallen_bedroom_battery
|
|
- sensor.mud_room_battery
|
|
- sensor.stairwell_top_battery
|
|
- sensor.living_room_back_battery
|
|
- sensor.master_bedroom_battery
|
|
- name: 'Dimmer Switches (min: {min}%, count: {count})'
|
|
secondary_info: Battery Levels {range}%
|
|
icon: mdi:toggle-switch
|
|
entities:
|
|
- sensor.kallen_bedroom_dimmer_switch_battery
|
|
- sensor.tina_desk_dimmer_switch_battery
|
|
- sensor.emma_bedroom_dimmer_switch_battery
|
|
- sensor.master_bedroom_dimmer_switch_battery
|
|
- sensor.living_room_dimmer_switch_battery
|
|
filter:
|
|
include:
|
|
- name: entity_id
|
|
value: '*_battery'
|
|
- name: entity_id
|
|
value: '*battery_mqtt'
|
|
exclude:
|
|
- name: entity_id
|
|
value: '*iphone*'
|
|
- name: entity_id
|
|
value: '*ipad*'
|
|
- name: entity_id
|
|
value: '*airpod*'
|
|
- name: entity_id
|
|
value: '*apple*'
|
|
- name: entity_id
|
|
value: '*chrome*'
|
|
- name: entity_id
|
|
value: sensor.front_doorbell_battery
|
|
tap_action: more-info
|
|
- type: vertical-stack
|
|
cards:
|
|
- type: custom:bubble-card
|
|
card_type: pop-up
|
|
hash: '#running'
|
|
button_type: name
|
|
name: Running
|
|
icon: mdi:database-clock
|
|
- type: custom:auto-entities
|
|
filter:
|
|
include:
|
|
- domain: automation
|
|
attributes:
|
|
current: '> 0'
|
|
- domain: script
|
|
attributes:
|
|
current: '> 0'
|
|
exclude: []
|
|
sort:
|
|
method: last_triggered
|
|
reverse: false
|
|
show_empty: true
|
|
card:
|
|
type: entities
|
|
show_header_toggle: false
|
|
state_color: true
|
|
- type: vertical-stack
|
|
cards:
|
|
- type: custom:bubble-card
|
|
card_type: pop-up
|
|
hash: '#global-scenes'
|
|
button_type: name
|
|
name: Global Scenes
|
|
icon: mdi:home-lightbulb-outline
|
|
- type: entities
|
|
entities:
|
|
- entity: script.give_me_darkness
|
|
secondary_info: After kid's bedtime
|
|
- entity: button.good_morning
|
|
secondary_info: Optional, when we wake up
|
|
- entity: button.goodnight
|
|
secondary_info: When Tony goes to bed
|
|
- entity: script.global_on
|
|
secondary_info: Turn all lights on
|
|
- entity: script.global_off
|
|
secondary_info: Turn all lights/fans off
|
|
- entity: script.max_brightness
|
|
secondary_info: Turn all lights on at 100%
|
|
- entity: script.going_upstairs
|
|
secondary_info: When coming to bed from basement
|
|
- entity: button.basement_on_manual
|
|
name: Basement On
|
|
secondary_info: Turns on lights/computer/TV
|
|
- entity: button.sunset_lights_trigger
|
|
name: Sunset Lights Manual Trigger
|
|
secondary_info: If flow gets interrupted
|
|
- entity: script.adaptive_on_first_floor
|
|
secondary_info: Reset lights to adaptive
|
|
- entity: script.adaptive_on_second_floor
|
|
secondary_info: Reset lights to adaptive
|
|
- entity: script.bright_on_first_floor
|
|
- entity: script.bright_on_second_floor
|
|
- entity: script.evening_on_first_floor
|
|
- entity: script.evening_on_second_floor
|
|
- entity: script.emma_rainbow_lights
|
|
- type: vertical-stack
|
|
cards:
|
|
- type: custom:bubble-card
|
|
card_type: pop-up
|
|
hash: '#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: It is currently raining!
|
|
icon: mdi:weather-rainy
|
|
color: |-
|
|
{% if is_state('binary_sensor.raining','on') %}
|
|
blue
|
|
{% else %}
|
|
grey
|
|
{% endif %}
|
|
entity: binary_sensor.raining
|
|
label: Rain Status
|
|
visibility:
|
|
- condition: state
|
|
entity: binary_sensor.raining
|
|
state: 'on'
|
|
- 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: |-
|
|
{% 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'
|
|
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: ''
|