streamline_templates:
main_button_name:
default:
- name: ''
- columns: 2
- navigation_path: ''
- icon: ''
card:
type: custom:bubble-card
card_type: button
button_type: name
name: '[[name]]'
icon: '[[icon]]'
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
button_action:
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
columns: '[[columns]]'
styles: |-
.bubble-button-background {
opacity: 1 !important;
background-color: var(--bubble-main-background-color) !important;
}
phone_info_grid:
card:
type: custom:stack-in-card
card_mod:
style: |
ha-card {
overflow: visible !important;
}
cards:
- type: glance
entities:
- entity: device_tracker.[[device]]
name: Location
- entity: sensor.[[device]]_interval
name: Interval
icon: mdi:clock-start
- entity: sensor.[[device]]_travel_time
name: TravTime
icon: mdi:clock-outline
- entity: sensor.[[device]]_zone_distance
name: Home
icon: mdi:map-marker-distance
- entity: sensor.[[device]]_next_update
name: NextUpdt
icon: mdi:update
state_color: false
- type: glance
entities:
- entity: sensor.[[device]]_waze_distance
name: WazeDist
icon: mdi:map-marker-distance
- entity: sensor.[[device]]_calc_distance
name: CalcDist
icon: mdi:map-marker-distance
- entity: sensor.[[device]]_dir_of_travel
name: Direction
icon: mdi:compass-outline
- entity: sensor.[[device]]_last_located
name: Located
icon: mdi:map-clock
- entity: sensor.[[device]]_last_update
name: LastUpdt
icon: mdi:history
- type: horizontal-stack
cards:
- type: entities
entities:
- entity: sensor.[[device]]_info
name: Info
icon: mdi:information-outline
iphone_entities_card:
card:
type: entities
entities:
- entity: device_tracker.[[device]]_app
name: App Location
- type: custom:battery-state-entity
entity: sensor.[[device]]_battery
name: Battery
tap_action: more-info
charging_state:
entity_id: sensor.[[device]]_battery_status
state: Charging
- type: custom:template-entity-row
name: Connection Type
entity: sensor.[[device]]_connection_type
state: |
{% if is_state('sensor.[[device]]_connection_type','Cellular') %}
{{ state_attr('sensor.[[device]]_connection_type','Cellular Technology') }}
{% elif is_state('sensor.[[device]]_connection_type','Wi-Fi') %}
Wi-Fi
{% else %}
Unknown
{% endif %}
- entity: sensor.[[device]]_ssid
name: SSID
- entity: sensor.[[device]]_steps
name: Steps Today
- entity: binary_sensor.[[device]]_focus
name: Focus
- entity: sensor.[[device]]_storage
name: Storage
show_header_toggle: false
state_color: true
ipad_entities_card:
card:
type: entities
entities:
- entity: device_tracker.[[device]]_app
name: App Location
- type: custom:battery-state-entity
entity: sensor.[[device]]_battery
name: Battery
tap_action: more-info
charging_state:
entity_id: sensor.[[device]]_battery_status
state: Charging
- type: custom:template-entity-row
name: Connection Type
entity: sensor.[[device]]_connection_type
state: |
{% if is_state('sensor.[[device]]_connection_type','Cellular') %}
{{ state_attr('sensor.[[device]]_connection_type','Cellular Technology') }}
{% elif is_state('sensor.[[device]]_connection_type','Wi-Fi') %}
Wi-Fi
{% else %}
Unknown
{% endif %}
- entity: sensor.[[device]]_ssid
name: SSID
- entity: binary_sensor.[[device]]_focus
name: Focus
- entity: sensor.[[device]]_storage
name: Storage
- entity: sensor.[[device]]_info
name: Info
show_header_toggle: false
state_color: true
xbox_card:
default:
- gamertag: tm24fan
card:
type: entities
entities:
- entity: sensor.[[gamertag]]_status
name: Status
- entity: binary_sensor.[[gamertag]]
name: Online
- entity: binary_sensor.[[gamertag]]_in_game
name: In Game
- entity: binary_sensor.[[gamertag]]_in_multiplayer
name: In Multiplayer
- entity: binary_sensor.[[gamertag]]_in_party
name: In Party
- entity: sensor.[[gamertag]]_account_tier
name: Account Tier
- entity: sensor.[[gamertag]]_gamer_score
name: Gamer Score
show_header_toggle: false
state_color_button:
defaults:
- name: ''
- columns: 2
- show_state: true
card:
type: custom:bubble-card
card_type: button
button_type: state
entity: '[[entity]]'
name: '[[name]]'
show_state: '[[show_state]]'
tap_action:
action: more-info
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
columns: '[[columns]]'
modules:
- default
- state_color_button
state_color_button:
color: '[[color]]'
state_color_button_nav:
defaults:
- name: ''
- columns: 2
- show_state: false
card:
type: custom:bubble-card
card_type: button
button_type: state
entity: '[[entity]]'
name: '[[name]]'
show_state: '[[show_state]]'
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
double_tap_action:
action: none
hold_action:
action: none
button_action:
tap_action:
action: navigate
navigation_path: '[[navigation_path]]'
double_tap_action:
action: none
hold_action:
action: none
columns: '[[columns]]'
modules:
- default
- state_color_button
state_color_button:
color: '[[color]]'
contact_sensor_button:
defaults:
- name: ''
- columns: 2
- show_state: true
card:
type: custom:bubble-card
card_type: button
button_type: state
entity: '[[entity]]'
name: '[[name]]'
show_state: '[[show_state]]'
tap_action:
action: more-info
double_tap_action:
action: none
hold_action:
action: none
button_action:
double_tap_action:
action: none
hold_action:
action: none
columns: '[[columns]]'
modules:
- default
- state_color_button
- get_state_attribute
state_color_button:
color: '[[color]]'
get_state_attribute:
- entity: '[[entity]]'
- entity: '[[entity]]_tamper'
main_temperature_button:
defaults:
- name: ''
- columns: ''
card:
type: custom:bubble-card
card_type: button
button_type: state
entity: '[[entity]]'
name: '[[name]]'
show_attribute: false
card_layout: large
columns: '[[columns]]'
modules:
- default
- popup_temperature_button
popup_temperature_button:
hot_entity: '[[hot_entity]]'
cold_entity: '[[cold_entity]]'
main_room_header:
defaults:
- name: ''
- icon: ''
- power_entity: ''
- light_entity: ''
card:
type: custom:bubble-card
card_type: separator
name: '[[name]]'
icon: '[[icon]]'
card_layout: large
sub_button:
- name: Power
entity: '[[power_entity]]'
show_state: true
state_background: false
timer_card:
defaults:
- name: ''
- icon: mdi:timer
card:
type: custom:bubble-card
card_type: button
button_type: state
entity: '[[entity]]'
name: '[[name]]'
icon: '[[icon]]'
sub_button:
- entity: '[[entity]]'
tap_action:
action: perform-action
perform_action: timer.start
target:
entity_id: '[[entity]]'
name: Start
icon: mdi:play
visibility: []
- entity: '[[entity]]'
name: Pause
icon: mdi:pause
tap_action:
action: perform-action
perform_action: timer.pause
target:
entity_id: '[[entity]]'
- entity: '[[entity]]'
name: Cancel
icon: mdi:cancel
tap_action:
action: perform-action
perform_action: timer.cancel
target:
entity_id: '[[entity]]'
- entity: '[[entity]]'
name: Finish
icon: mdi:clock-end
tap_action:
action: perform-action
perform_action: timer.finish
target:
entity_id: '[[entity]]'
modules:
- default
- popup_timer_card
background: var(--background-image)
title: Stratton Ave
views:
- title: Home
path: default_view
type: sections
sections:
- type: grid
cards:
- type: heading
heading: Weather
heading_style: title
icon: mdi:weather-partly-cloudy
- type: custom:meteoalarm-card
entities:
- entity: sensor.weatheralerts_defiance_ohz004_ohc039
integration: weatheralerts
hide_when_no_warning: true
visibility:
- condition: numeric_state
entity: sensor.weatheralerts_defiance_ohz004_ohc039
above: 0
override_headline: false
- type: custom:weather-forecast-card
show_current: true
show_forecast: true
default_forecast: daily
tap_action:
action: navigate
navigation_path: /lovelace/weather
entity: weather.iron_nerd_weather_station
show_condition_effects: true
forecast:
mode: chart
show_sun_times: true
extra_attribute: wind_bearing
use_color_thresholds: false
hourly_group_size: 1
temperature_precision: 0
forecast_action:
tap_action:
action: toggle-forecast
current:
show_attributes:
- apparent_temperature
- visibility
- pressure
- wind_speed
temperature_precision: 0
- type: custom:mushroom-template-card
primary: Lightning Warning
secondary: >-
{% if
states('sensor.home_tempest_cloud_sensors_lightning_strikes_last_hour')
| int > 0 %}
{{
states('sensor.home_tempest_cloud_sensors_lightning_strikes_last_hour')
| int }} strikes last hour!
{% elif
states('sensor.home_tempest_cloud_sensors_lightning_strikes_last_3_hours')
| int > 0 %}
{{
states('sensor.home_tempest_cloud_sensors_lightning_strikes_last_3_hours')
| int }} strikes last 3 hours!
{% else %}
{{ states('sensor.blitzortung_lightning_counter') }} strikes
during this storm!
{% endif %}
icon: mdi:lightning-bolt
entity: binary_sensor.lightning_warning
color: var(--warning-color)
badge_icon: mdi:exclamation
badge_color: var(--error-color)
tap_action:
action: none
icon_tap_action:
action: none
visibility:
- condition: state
entity: binary_sensor.lightning_warning
state: 'on'
features_position: bottom
- type: custom:mushroom-template-card
primary: Window Weather
tap_action:
action: none
icon_tap_action:
action: none
features_position: bottom
entity: binary_sensor.window_weather
icon: |-
{% if is_state('binary_sensor.windows','on') %}
mdi:window-open
{% else %}
mdi:window-closed
{% endif %}
color: |-
{% if is_state(entity,'on') %}
{% if is_state('binary_sensor.windows','on') %}
var(--cyan-color)
{% else %}
var(--green-color)
{% endif %}
{% else %}
{% if is_state('binary_sensor.windows','on') %}
var(--error-color)
{% else %}
var(--disabled-color)
{% endif %}
{% endif %}
secondary: |-
{% if is_state(entity,'on') %}
It's nice outside!
{% else %}
Close Windows!
{% endif %}
badge_icon: >-
{% if is_state(entity,'off') and
is_state('binary_sensor.windows','on') %}
mdi:exclamation
{% elif is_state(entity,'on') and
is_state('binary_sensor.windows','on') %}
mdi:check
{% endif %}
badge_color: >-
{% if is_state(entity,'off') and
is_state('binary_sensor.windows','on') %}
var(--error-color)
{% elif is_state(entity,'on') and
is_state('binary_sensor.windows','on') %}
var(--success-color)
{% endif %}
visibility:
- condition: or
conditions:
- condition: state
entity: binary_sensor.window_weather
state: 'on'
- condition: state
entity: binary_sensor.windows
state: 'on'
column_span: 1
- type: grid
cards:
- type: heading
heading: Master Switches and Info
heading_style: title
icon: mdi:home-switch
- type: entities
entities:
- type: custom:template-entity-row
name: Tap here for the mobile dashboard
icon: mdi:cellphone-cog
state: ''
tap_action:
action: navigate
navigation_path: /dashboard-mobile
- type: custom:template-entity-row
name: Tap names for more controls
icon: mdi:information
state: ''
tap_action:
action: none
- entity: light.second_floor_lights
name: Second Floor
icon: mdi:home-floor-2
secondary_info: >-
Lights on: {{ states('sensor.second_floor_lights_on') }} |
Power Usage: {{
states('sensor.second_floor_total_power_sensor') }} W
tap_action:
action: navigate
navigation_path: /lovelace/second-floor
- entity: light.first_floor_lights
name: First Floor
icon: mdi:home-floor-1
secondary_info: >-
Lights on: {{ states('sensor.first_floor_lights_on') }} |
Power Usage: {{
states('sensor.first_floor_total_power_sensor') }} W
tap_action:
action: navigate
navigation_path: /lovelace/first-floor
- entity: light.basement_studio_lights
name: Basement Studio
icon: mdi:home-floor-b
secondary_info: >-
Lights on: {{ states('sensor.basement_lights_on') }} | Power
Usage: {{ states('sensor.basement_total_power_sensor') }} W
tap_action:
action: navigate
navigation_path: /lovelace/basement
- entity: light.outside_lights
name: Outdoors
icon: hue:room-outdoors
secondary_info: >-
Lights on: {{ states('sensor.current_outdoor_lights_on') }} |
Power Usage: {{ states('sensor.outside_lights_power_sensor')
}} W
tap_action:
action: navigate
navigation_path: /lovelace/outdoors
- entity: fan.all_fans
name: Fans
secondary_info: >-
Fans on: {{ states('sensor.fans_running') }} | Power Usage: {{
states('sensor.all_real_fans_power_sensor') }} W
tap_action:
action: navigate
navigation_path: /lovelace/climate
- entity: binary_sensor.internet
name: Internet (Min/Avg/Max)
secondary_info: >-
{{ states('sensor.internet_round_trip_time_minimum') | round
}}ms/{{ states('sensor.internet_round_trip_time_average') |
round }}ms/{{
states('sensor.internet_round_trip_time_maximum') | round }}ms
tap_action:
action: navigate
navigation_path: /lovelace/house-stats
- type: custom:multiple-entity-row
entity: counter.back_door_opened_today
name: Doors Opened Today
state_header: Back
icon: mdi:door
secondary_info: I was bored.
entities:
- entity: counter.front_door_opened_today
name: Front
state_color: true
show_header_toggle: false
- type: custom:expander-card
title: Stats
cards:
- type: entities
entities:
- entity: sensor.current_lights_on
icon: mdi:lightbulb-alert
name: Total Lights On
secondary_info: >-
Power Usage: {{ states('sensor.all_light_power_sensor') }}
W
- entity: sensor.current_computers_on
name: Computers On
icon: mdi:monitor
secondary_info: >-
Power Usage: {{
states('sensor.all_computers_power_sensor') }} W
- entity: sensor.house_total_power_sensor
name: Total Power Usage
- entity: sensor.doors_open
- entity: sensor.windows_open
icon: mdi:chart-box
icon-rotate-degree: '180'
- type: grid
cards:
- type: heading
heading: Cameras
heading_style: title
icon: mdi:cctv
- camera_view: auto
type: picture-glance
title: Front Porch
entities:
- entity: light.front_porch_light
- entity: alarm_control_panel.stratton_ave_alarm
- entity: sensor.front_doorbell_battery_mqtt
- entity: binary_sensor.front_doorbell_motion_mqtt
- entity: binary_sensor.exterior_doors
- entity: binary_sensor.windows
camera_image: camera.front_porch_ring
- camera_view: auto
type: picture-glance
entities: []
camera_image: camera.side_camera
title: Perry Street
visibility:
- condition: state
entity: camera.side_camera
state_not: unavailable
- type: grid
cards:
- type: heading
heading: Residents
heading_style: title
icon: mdi:home-account
- square: false
columns: 3
type: grid
cards:
- type: custom:mushroom-person-card
entity: person.tony_stork
use_entity_picture: true
fill_container: true
hide_state: false
hide_name: false
layout: vertical
- type: custom:mushroom-person-card
entity: person.christina_stork
use_entity_picture: true
layout: vertical
fill_container: true
- type: custom:mushroom-person-card
entity: person.kallen_stork
use_entity_picture: true
layout: vertical
fill_container: true
- type: grid
cards:
- type: heading
heading: Family Calendar
heading_style: title
icon: mdi:calendar
- 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
today_weekday_color: ''
today_day_color: ''
today_month_color: ''
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_studios
type: custom:calendar-card-pro
- type: grid
cards:
- type: heading
heading: Home Feed
heading_style: title
icon: mdi:rss
- type: custom:home-feed-card
card_id: main_feed
show_empty: false
id_filter: ^home_feed_.*
more_info_on_tap: true
state_color: true
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
Latty: in Latty
- 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
Latty: in Latty
- entity: timer.kallen_timer
- entity: person.kallen_stork
name: Kallen Stork
content_template: '{{display_name}} is {{state}}'
remove_repeats: false
state_map:
not_home: traveling
Wal-Mart: at Wal-Mart
School: at school
Hospital: at the hospital
Latty: in Latty
- entity: person.emmalynn_stork
- entity: automation.family_has_arrived
content_template: Family Arrived
- entity: automation.family_has_left
content_template: Family Left
- entity: light.downstairs_bathroom_lights
icon: mdi:toilet
- entity: light.upstairs_bathroom_lights
icon: mdi:toilet
- entity: light.basement_studio_lights
icon: mdi:twitch
- entity: light.furnace_room_overhead
- entity: light.living_room_lights
icon: hue:room-living
- entity: light.mud_room_overhead
icon: hue:room-other
- entity: light.master_bedroom_lights
icon: mdi:bed
- entity: light.master_bedroom_closet
icon: hue:bulb-sultan
- entity: light.kallen_bedroom_lights
icon: mdi:bunk-bed
- entity: light.emma_bedroom_light
icon: hue:room-nursery
- entity: light.hallway_overhead
- entity: light.front_porch_light
icon: hue:room-porch
- entity: light.tina_desk_lights
icon: mdi:desk
- 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: sensor.home_tempest_precipitation_type
name: Precipitation Type
- entity: sensor.home_tempest_cloud_sensors_precipitation_intensity
name: Precipitation Intensity
state_map:
no_rain: None
very_light: Very Light
light: Light
moderate: Moderate
heavy: Heavy
very_heavy: Very Heavy
- 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: light.stairwell_led_strip
icon: hue:lightstrip
- 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
- type: grid
cards:
- type: heading
heading: Communications
heading_style: title
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
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: grid
cards:
- type: heading
heading: Misc
heading_style: title
icon: mdi:format-list-bulleted
- type: markdown
content: >-
# Documentation
[Nerd Home Incorporated Wiki
(***Outdated!***)](https://wiki.nerdhomeinc.com)
[Project
Tracker](https://gitea.nerdhomeinc.com/home_automation/-/projects/7)
# Status Pages
[House
Status](https://uptimekuma.nerdhomeinc.com/status/house-status)
[Gaming
Services](https://uptimekuma.nerdhomeinc.com/status/gaming)
[Media
Services](https://uptimekuma.nerdhomeinc.com/status/media-services)
column_span: 1
max_columns: 4
cards: []
background: {}
- title: First Floor
path: first-floor
icon: mdi:home-floor-1
type: sections
sections:
- type: grid
cards:
- type: custom:auto-entities
show_empty: false
card:
type: entities
show_header_toggle: false
state_color: true
title: Lights On
filter:
include:
- group: light.first_floor_lights
- entity_id: light.living_room_christmas_tree
- entity_id: input_boolean.tina_desk_lights
exclude:
- state: 'off'
- state: unavailable
- entity_id: light.tina_desk_lights
sort:
method: friendly_name
visibility:
- condition: state
entity: light.first_floor_lights
state: 'on'
- type: grid
cards:
- type: custom:streamline-card
template: main_room_header
variables:
- name: Living Room
- icon: hue:room-living
- power_entity: sensor.living_room_total_power_sensor
- light_entity: light.living_room_lights
- type: custom:bubble-card
card_type: button
button_type: slider
modules:
- default
- subbutton_below
entity: light.living_room_lights
rows: 2.406
icon: hue:room-living
tap_action:
action: toggle
double_tap_action:
action: perform-action
perform_action: input_select.select_option
target:
entity_id: input_select.living_room_scenes
data:
option: Adaptive
hold_action:
action: more-info
sub_button:
main:
- name: Lights
buttons_layout: inline
group:
- entity: light.living_room_overhead
tap_action:
action: toggle
hold_action:
action: more-info
show_name: true
name: Overhead
- entity: light.living_room_led_strip
name: LED Strip
icon: hue:lightstrip
show_name: true
tap_action:
action: toggle
hold_action:
action: more-info
bottom:
- name: Smaller Buttons
group:
- entity: select.living_room_led_strip_theme
name: LED Strip Theme
icon: hue:lightstrip
sub_button_type: select
fill_width: false
show_name: true
- entity: script.emma_rainbow_lights
name: Emma Rainbow Lights
fill_width: false
show_name: true
justify_content: space-between
- name: Scene
group:
- entity: input_select.living_room_scenes
name: Scene
icon: mdi:palette
sub_button_type: select
show_name: true
bottom_layout: rows
name: Lights
- type: custom:streamline-card
template: timer_card
variables:
entity: timer.living_room_motion_timer
name: Motion Timer
icon: mdi:timer
visibility:
- condition: state
entity: timer.living_room_motion_timer
state_not: idle
- type: custom:bubble-card
card_type: separator
name: Media
icon: mdi:volume-high
card_layout: large
- type: custom:bubble-card
card_type: media-player
name: TV
show_state: true
show_last_changed: false
show_attribute: true
attribute: app_id
force_icon: false
card_layout: large
entity: media_player.living_room_tv_3
cover_background: true
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
card_layout: large
- type: custom:streamline-card
template: main_temperature_button
variables:
- name: Front Temp
- entity: sensor.living_room_front_temperature
- hot_entity: binary_sensor.living_room_hot
- cold_entity: binary_sensor.living_room_cold
- columns: 2
grid_options:
columns: 6
rows: auto
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.living_room_front_illuminance
name: Front Lux
show_attribute: false
card_layout: large
columns: 2
- type: custom:streamline-card
template: main_temperature_button
variables:
- name: Back Temp
- entity: sensor.living_room_back_temperature
- hot_entity: binary_sensor.living_room_back_hot
- cold_entity: binary_sensor.living_room_back_cold
- columns: 2
grid_options:
columns: 6
rows: auto
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.living_room_back_illuminance
name: Back Lux
show_attribute: false
card_layout: large
columns: 2
- type: custom:streamline-card
template: state_color_button
variables:
- name: Front Motion
- entity: binary_sensor.living_room_front_motion
- color: bubble-accent-color
grid_options:
columns: 4
rows: auto
- type: custom:streamline-card
template: state_color_button
variables:
- name: Back Motion
- entity: binary_sensor.living_room_back_motion
- color: bubble-accent-color
grid_options:
columns: 4
rows: auto
- type: custom:streamline-card
template: state_color_button
variables:
- name: Occupied
- entity: binary_sensor.living_room_occupied
- color: bubble-accent-color
grid_options:
columns: 4
rows: auto
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
card_layout: large
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Door
- entity: binary_sensor.front_door
- color: error-color
grid_options:
columns: 4
rows: auto
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Front 1
- entity: binary_sensor.front_window_1
- color: error-color
grid_options:
columns: 4
rows: auto
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Front 2
- entity: binary_sensor.front_window_2
- color: error-color
grid_options:
columns: 4
rows: auto
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Front 3
- entity: binary_sensor.front_window_3
- color: error-color
grid_options:
columns: 4
rows: auto
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Side 1
- entity: binary_sensor.side_window_1
- color: error-color
grid_options:
columns: 4
rows: auto
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Side 2
- entity: binary_sensor.side_window_2
- color: error-color
grid_options:
columns: 4
rows: auto
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Side 3
- entity: binary_sensor.side_window_3
- color: error-color
grid_options:
columns: 4
rows: auto
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Side 4
- entity: binary_sensor.side_window_4
- color: error-color
grid_options:
columns: 4
rows: auto
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Back 1
- entity: binary_sensor.back_window_1
- color: error-color
grid_options:
columns: 4
rows: auto
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Back 2
- entity: binary_sensor.back_window_2
- color: error-color
grid_options:
columns: 4
rows: auto
- type: custom:expander-card
title: More Settings
cards:
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_downstairs_bathroom
name: Adaptive Lighting
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_sleep_mode_downstairs_bathroom
name: Night Mode
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: input_boolean.living_room_dynamic_scenes
name: Dynamic Scenes
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: input_boolean.living_room_entertainment_control
name: Media Scenes
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_adapt_color_living_room
name: Adapt Color
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_adapt_brightness_living_room
name: Adapt Brightness
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: entities
entities:
- entity: switch.living_room_motion_lighting
name: Motion Lighting
- entity: input_number.daytime_colortemp_living_room
name: Day Colortemp
- entity: input_number.nighttime_colortemp_living_room
name: Night Colortemp
- entity: input_number.nighttime_brightness_living_room
name: Night Brightness
- entity: input_number.living_room_lights_off_delay
name: Lights Off Delay
- entity: input_number.living_room_lux_threshold
name: Lux Threshold
- entity: binary_sensor.living_room_sync_issue
name: Sync Issue
icon: mdi:cog
column_span: 1
background:
opacity: 10
- type: grid
cards:
- type: custom:streamline-card
template: main_room_header
variables:
- name: Downstairs Bathroom
- icon: mdi:toilet
- power_entity: sensor.downstairs_bathroom_lights_power_sensor
- light_entity: light.downstairs_bathroom_lights
- type: custom:bubble-card
card_type: button
button_type: slider
modules:
- default
- subbutton_below
rows: 1.719
icon: mdi:toilet
tap_action:
action: toggle
double_tap_action:
action: perform-action
perform_action: input_select.select_option
target:
entity_id: input_select.downstairs_bathroom_scenes
data:
option: Adaptive
hold_action:
action: more-info
sub_button:
main: []
bottom:
- name: Scene
buttons_layout: inline
group:
- name: Scene
icon: mdi:palette
sub_button_type: select
entity: input_select.downstairs_bathroom_scenes
show_name: true
name: Lights
entity: light.downstairs_bathroom_lights
- type: custom:streamline-card
template: timer_card
variables:
name: Lights Timer
icon: mdi:timer
entity: timer.downstairs_bathroom_lights_timer
visibility:
- condition: state
entity: timer.downstairs_bathroom_lights_timer
state_not: idle
- type: custom:bubble-card
card_type: separator
name: Laundry
icon: mdi:tshirt-crew
card_layout: large
- type: custom:bubble-card
card_type: button
entity: timer.washer_timer
button_type: state
name: Washer
show_attribute: false
card_layout: large
columns: 2
- type: custom:bubble-card
card_type: button
entity: timer.dryer_timer
button_type: state
name: Dryer
show_attribute: false
card_layout: large
columns: 2
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
card_layout: large
- type: custom:streamline-card
template: main_temperature_button
variables:
- name: Temp
- entity: sensor.downstairs_bathroom_temperature
- hot_entity: binary_sensor.downstairs_bathroom_hot
- cold_entity: binary_sensor.downstairs_bathroom_cold
- columns: 2
grid_options:
columns: 6
rows: auto
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.downstairs_bathroom_illuminance
name: Lux
card_layout: large
columns: 2
- type: custom:streamline-card
template: state_color_button
variables:
- name: Motion
- entity: binary_sensor.downstairs_bathroom_motion
- columns: 2
- color: bubble-accent-color
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: state_color_button
variables:
- name: Occupied
- entity: binary_sensor.downstairs_bathroom_occupied
- columns: 2
- color: bubble-accent-color
grid_options:
columns: 6
rows: auto
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
card_layout: large
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Back
- entity: binary_sensor.downstairs_bathroom_window_1
- columns: 2
- color: error-color
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: contact_sensor_button
variables:
- name: Side
- entity: binary_sensor.downstairs_bathroom_window_2
- columns: 2
- color: error-color
grid_options:
columns: 6
rows: auto
- type: custom:expander-card
title: More Settings
cards:
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_downstairs_bathroom
name: Adaptive Lighting
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_sleep_mode_downstairs_bathroom
name: Night Mode
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: entities
entities:
- entity: switch.downstairs_bathroom_motion_lighting
name: Motion Lighting
- entity: input_number.nighttime_brightness_downstairs_bathroom
name: Night Brightness
- entity: input_number.downstairs_bathroom_lights_off_delay
name: Lights Off Delay
- entity: input_number.downstairs_bathroom_lux_threshold
name: Lux Threshold
icon: mdi:cog
column_span: 1
background:
opacity: 10
- type: grid
cards:
- type: custom:streamline-card
template: main_room_header
variables:
name: Tina Desk
icon: mdi:desk
light_entity: light.tina_desk_lights
power_entity: sensor.tina_desk_total_power_sensor
- type: custom:bubble-card
card_type: button
button_type: slider
modules:
- default
- subbutton_below
rows: 1.719
icon: mdi:desk
tap_action:
action: toggle
double_tap_action:
action: perform-action
perform_action: input_select.select_option
target:
entity_id: input_select.living_room_scenes
data:
option: Adaptive
hold_action:
action: more-info
sub_button:
main:
- name: Lights
buttons_layout: inline
group:
- entity: light.tina_lamp_top
name: Lamp Top
icon: mdi:floor-lamp-dual
show_name: true
tap_action:
action: toggle
hold_action:
action: more-info
- entity: light.tina_lamp_side
name: Lamp Side
icon: mdi:floor-lamp-dual
show_name: true
tap_action:
action: toggle
hold_action:
action: more-info
bottom:
- name: Scene
buttons_layout: inline
group:
- name: Scene
icon: mdi:palette
sub_button_type: select
entity: input_select.tina_desk_scenes
show_name: true
name: Lights
entity: light.tina_desk_lights
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
card_layout: large
- type: custom:streamline-card
template: state_color_button
variables:
name: Occupied
columns: 2
entity: binary_sensor.tina_desk_occupied
color: bubble-accent-color
grid_options:
columns: 6
rows: auto
- type: custom:expander-card
title: More Settings
cards:
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_tina_lamp
name: Adaptive Lighting
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_sleep_mode_tina_lamp
name: Night Mode
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: entities
entities:
- entity: input_number.daytime_colortemp_tina_lamp
name: Day Colortemp
- entity: input_number.nighttime_colortemp_tina_lamp
name: Night Colortemp
- entity: input_number.nighttime_brightness_tina_lamp
name: Night Brightness
icon: mdi:cog
column_span: 1
background:
opacity: 10
- type: grid
cards:
- type: custom:bubble-card
card_type: separator
sub_button:
main: []
bottom: []
name: Kitchen
icon: hue:room-kitchen
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
card_layout: large
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Big
entity: binary_sensor.kitchen_big_window
color: error-color
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Sink
entity: binary_sensor.kitchen_sink_window
color: error-color
grid_options:
columns: 6
rows: auto
column_span: 1
background:
opacity: 10
- type: grid
cards:
- type: custom:streamline-card
template: main_room_header
variables:
name: Mud Room
icon: hue:room-other
light_entity: light.mud_room_overhead
power_entity: sensor.mud_room_overhead_power_sensor
- type: custom:bubble-card
card_type: button
button_type: slider
modules:
- default
- subbutton_below
rows: 1.719
icon: ''
tap_action:
action: toggle
double_tap_action:
action: perform-action
perform_action: input_select.select_option
target:
entity_id: input_select.living_room_scenes
data:
option: Adaptive
hold_action:
action: more-info
sub_button:
main: []
bottom:
- name: Scene
buttons_layout: inline
group:
- name: Scene
icon: mdi:palette
sub_button_type: select
show_name: true
entity: input_select.mud_room_scenes
name: Lights
entity: light.mud_room_overhead
- type: custom:streamline-card
template: timer_card
variables:
name: Lights Timer
icon: mdi:timer
entity: timer.mud_room_motion_timer
visibility:
- condition: state
entity: timer.mud_room_motion_timer
state_not: idle
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
card_layout: large
- type: custom:streamline-card
template: main_temperature_button
variables:
name: Temp
columns: 2
entity: sensor.mud_room_temperature
hot_entity: binary_sensor.mud_room_hot
cold_entity: binary_sensor.mud_room_cold
grid_options:
columns: 6
rows: auto
- type: custom:bubble-card
card_type: button
button_type: state
name: Lux
card_layout: large
columns: 2
sub_button:
main: []
bottom: []
entity: sensor.mud_room_illuminance
- type: custom:streamline-card
template: state_color_button
variables:
name: Motion
columns: 2
entity: binary_sensor.mud_room_motion
color: bubble-accent-color
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: state_color_button
variables:
name: Occupied
columns: 2
entity: binary_sensor.mud_room_occupied
color: bubble-accent-color
grid_options:
columns: 6
rows: auto
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
card_layout: large
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Back Door
columns: 2
entity: binary_sensor.back_door
color: error-color
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Window
columns: 2
entity: binary_sensor.mud_room_window
color: error-color
grid_options:
columns: 6
rows: auto
- type: custom:expander-card
title: More Settings
cards:
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_mud_room
name: Adaptive Lighting
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_sleep_mode_mud_room
name: Night Mode
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: entities
entities:
- entity: switch.mud_room_motion_lighting
name: Motion Lighting
- entity: input_number.nighttime_brightness_mud_room
name: Night Brightness
- entity: input_number.mud_room_lights_off_delay
name: Lights Off Delay
- entity: input_number.mud_room_lux_threshold
name: Lux Threshold
icon: mdi:cog
column_span: 1
background:
opacity: 10
max_columns: 4
cards: []
visible:
- user: c3909d27048140729f002aaef0391775
- title: Second Floor
path: second-floor
icon: mdi:home-floor-2
type: sections
sections:
- type: grid
cards:
- type: custom:auto-entities
show_empty: false
filter:
include:
- group: light.second_floor_lights
exclude:
- state: 'off'
- state: unavailable
sort:
method: friendly_name
card:
type: entities
show_header_toggle: false
state_color: true
title: Lights On
- show_name: true
show_icon: true
type: button
tap_action:
action: toggle
entity: button.emma_door_alert_cancel
show_state: false
visibility:
- condition: state
entity: timer.emma_door_alert
state: active
visibility:
- condition: state
entity: light.second_floor_lights
state: 'on'
- type: grid
cards:
- type: custom:streamline-card
template: main_room_header
variables:
name: Stairwell
icon: mdi:stairs
light_entity: light.stairwell_led_strip
- type: custom:bubble-card
card_type: button
button_type: slider
modules:
- default
- subbutton_below
icon: hue:lightstrip
tap_action:
action: toggle
double_tap_action:
action: perform-action
perform_action: input_select.select_option
target:
entity_id: input_select.living_room_scenes
data:
option: Adaptive
hold_action:
action: more-info
name: Light Strip
entity: light.stairwell_led_strip
sub_button:
main: []
bottom: []
- type: custom:streamline-card
template: timer_card
variables:
name: Lights Timer
icon: mdi:timer
entity: timer.stairwell_motion_timer
visibility:
- condition: state
entity: timer.stairwell_motion_timer
state_not: idle
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
card_layout: large
- type: custom:streamline-card
template: main_temperature_button
variables:
entity: sensor.stairwell_bottom_temperature
name: Temp
columns: '2'
hot_entity: binary_sensor.stairwell_bottom_hot
cold_entity: binary_sensor.stairwell_bottom_cold
- type: custom:bubble-card
card_type: button
button_type: state
name: Lux
show_attribute: false
card_layout: large
columns: 2
sub_button:
main: []
bottom: []
entity: sensor.stairwell_bottom_illuminance
- type: custom:streamline-card
template: state_color_button
variables:
name: Motion
columns: 2
entity: binary_sensor.stairwell_bottom_motion
color: bubble-accent-color
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: state_color_button
variables:
name: Occupied
columns: 2
entity: binary_sensor.stairwell_occupied
color: bubble-accent-color
grid_options:
columns: 6
rows: auto
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
card_layout: large
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Window
columns: 2
entity: binary_sensor.stairway_window_lower
color: error-color
grid_options:
columns: 6
rows: auto
- type: custom:expander-card
title: More Settings
cards:
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_stairwell
name: Adaptive Lighting
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_sleep_mode_stairwell
name: Night Mode
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: entities
entities:
- entity: switch.stairwell_motion_lighting
name: Motion Lighting
- entity: input_number.stairwell_lights_off_delay
name: Lights Off Delay
- entity: input_number.stairwell_lux_threshold
name: Lux Threshold
icon: mdi:cog
column_span: 1
background:
opacity: 10
- type: grid
cards:
- type: custom:streamline-card
template: main_room_header
variables:
name: Upstairs Hallway
icon: hue:ceiling-round
light_entity: light.hallway_overhead
power_entity: sensor.hallway_overhead_power_sensor
- type: custom:bubble-card
card_type: button
button_type: slider
modules:
- default
- subbutton_below
rows: 1.719
icon: ''
tap_action:
action: toggle
double_tap_action:
action: perform-action
perform_action: input_select.select_option
target:
entity_id: input_select.living_room_scenes
data:
option: Adaptive
hold_action:
action: more-info
sub_button:
main: []
bottom:
- name: Scene
buttons_layout: inline
group:
- name: Scene
icon: mdi:palette
sub_button_type: select
show_name: true
entity: input_select.upstairs_hallway_scenes
name: Lights
entity: light.hallway_overhead
- type: custom:streamline-card
template: timer_card
variables:
name: Lights Timer
icon: mdi:timer
entity: timer.upstairs_hallway_motion_timer
visibility:
- condition: state
entity: timer.stairwell_motion_timer
state_not: idle
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
card_layout: large
- type: custom:streamline-card
template: main_temperature_button
variables:
entity: sensor.stairwell_top_temperature
name: Temp
columns: '2'
hot_entity: binary_sensor.stairwell_top_hot
cold_entity: binary_sensor.stairwell_top_cold
- type: custom:bubble-card
card_type: button
button_type: state
name: Lux
show_attribute: false
card_layout: large
columns: 2
sub_button:
main: []
bottom: []
entity: sensor.stairwell_top_illuminance
- type: custom:streamline-card
template: state_color_button
variables:
name: Motion
columns: 2
color: bubble-accent-color
entity: binary_sensor.stairwell_top_motion
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: state_color_button
variables:
name: Occupied
columns: 2
entity: binary_sensor.upstairs_hallway_occupied
color: bubble-accent-color
grid_options:
columns: 6
rows: auto
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
card_layout: large
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Window
columns: 2
color: error-color
entity: binary_sensor.stairway_window_upper
grid_options:
columns: 6
rows: auto
- type: custom:expander-card
title: More Settings
cards:
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_upstairs_hallway
name: Adaptive Lighting
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_sleep_mode_upstairs_hallway
name: Night Mode
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: entities
entities:
- entity: input_number.nighttime_brightness_upstairs_hallway
name: Night Brightness
- entity: input_number.upstairs_hallway_lights_off_delay
name: Lights Off Delay
- entity: input_number.upstairs_hallway_lux_threshold
name: Lux Threshold
icon: mdi:cog
column_span: 1
background:
opacity: 10
- type: grid
cards:
- type: custom:streamline-card
template: main_room_header
variables:
name: Upstairs Bathroom
icon: mdi:toilet
light_entity: light.hallway_overhead
power_entity: sensor.upstairs_bathroom_lights_power_sensor
- type: custom:bubble-card
card_type: button
button_type: slider
modules:
- default
- subbutton_below
rows: 1.719
icon: mdi:toilet
tap_action:
action: toggle
double_tap_action:
action: perform-action
perform_action: input_select.select_option
target:
entity_id: input_select.living_room_scenes
data:
option: Adaptive
hold_action:
action: more-info
sub_button:
main:
- name: Lights
buttons_layout: inline
group:
- entity: light.upstairs_bathroom_left
name: Left
tap_action:
action: toggle
show_name: true
- name: Mid L
tap_action:
action: toggle
show_name: true
entity: light.upstairs_bathroom_middle_left
- name: Mid R
tap_action:
action: toggle
show_name: true
entity: light.upstairs_bathroom_middle_right
- name: Right
tap_action:
action: toggle
show_name: true
entity: light.upstairs_bathroom_right
- name: Wall
tap_action:
action: toggle
show_name: true
entity: light.upstairs_bathroom_wall
bottom:
- name: Scene
buttons_layout: inline
group:
- name: Scene
icon: mdi:palette
sub_button_type: select
show_name: true
entity: input_select.upstairs_bathroom_scenes
name: Lights
entity: light.upstairs_bathroom_lights
- type: custom:streamline-card
template: timer_card
variables:
name: Lights Timer
icon: mdi:timer
entity: timer.upstairs_bathroom_motion_timer
visibility:
- condition: state
entity: timer.upstairs_bathroom_motion_timer
state_not: idle
- type: custom:bubble-card
card_type: separator
name: Modes
icon: mdi:toggle-switch
card_layout: large
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: input_boolean.shower_mode
grid_options:
columns: 6
rows: auto
tap_action:
action: toggle
button_action:
hold_action:
action: none
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
card_layout: large
- type: custom:streamline-card
template: main_temperature_button
variables:
entity: sensor.upstairs_bathroom_temperature
name: Temp
columns: '2'
hot_entity: binary_sensor.upstairs_bathroom_hot
cold_entity: binary_sensor.upstairs_bathroom_cold
- type: custom:bubble-card
card_type: button
button_type: state
name: Lux
show_attribute: false
card_layout: large
columns: 2
sub_button:
main: []
bottom: []
entity: sensor.upstairs_bathroom_illuminance
- type: custom:streamline-card
template: state_color_button
variables:
name: Motion
columns: 2
color: bubble-accent-color
entity: binary_sensor.upstairs_bathroom_motion
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: state_color_button
variables:
name: Occupied
columns: 2
entity: binary_sensor.upstairs_bathroom_occupied
color: bubble-accent-color
grid_options:
columns: 6
rows: auto
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
card_layout: large
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Window
columns: 2
color: error-color
entity: binary_sensor.upstairs_bathroom_window
grid_options:
columns: 6
rows: auto
- type: custom:expander-card
title: More Settings
cards:
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_upstairs_bathroom
name: Adaptive Lighting
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_sleep_mode_upstairs_bathroom
name: Night Mode
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: entities
entities:
- entity: switch.upstairs_bathroom_motion_lighting
name: Motion Lighting
- entity: input_number.nighttime_brightness_upstairs_bathroom
name: Night Brightness
- entity: input_number.upstairs_bathroom_motion_off_delay
name: Lights Off Delay
- entity: input_number.upstairs_bathroom_lux_threshold
name: Lux Threshold
icon: mdi:cog
column_span: 1
background:
opacity: 10
- type: grid
cards:
- type: custom:streamline-card
template: main_room_header
variables:
name: Master Bedroom
icon: mdi:bed
light_entity: light.master_bedroom_lights
power_entity: sensor.master_bedroom_total_power_sensor
- type: custom:bubble-card
card_type: button
button_type: slider
modules:
- default
- subbutton_below
rows: 1.719
icon: mdi:bed
tap_action:
action: toggle
double_tap_action:
action: perform-action
perform_action: input_select.select_option
target:
entity_id: input_select.master_bedroom_scenes
data:
option: Adaptive
hold_action:
action: more-info
sub_button:
main:
- name: Lights
buttons_layout: inline
group:
- entity: light.master_bedroom_front
name: Front
tap_action:
action: toggle
show_name: true
- name: Side
tap_action:
action: toggle
show_name: true
entity: light.master_bedroom_side
- name: Closet
tap_action:
action: toggle
show_name: true
entity: light.master_bedroom_closet
bottom:
- name: Scene
buttons_layout: inline
group:
- name: Scene
icon: mdi:palette
sub_button_type: select
show_name: true
entity: input_select.master_bedroom_scenes
name: Lights
entity: light.master_bedroom_lights
- type: custom:streamline-card
template: timer_card
variables:
name: Lights Timer
icon: mdi:timer
entity: timer.master_bedroom_motion_timer
visibility:
- condition: state
entity: timer.master_bedroom_motion_timer
state_not: idle
- type: custom:bubble-card
card_type: separator
name: Modes
icon: mdi:toggle-switch
card_layout: large
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: input_boolean.master_bedroom_sleeping
grid_options:
columns: 6
rows: auto
tap_action:
action: toggle
button_action:
hold_action:
action: none
name: Sleeping
- type: custom:bubble-card
card_type: separator
name: Environment
icon: mdi:thermometer
card_layout: large
sub_button:
main: []
bottom: []
visibility:
- condition: state
entity: input_boolean.master_bedroom_aircon_installed
state: 'on'
- type: custom:bubble-card
card_type: climate
sub_button:
main:
- select_attribute: hvac_modes
name: HVAC modes
state_background: true
sub_button_type: select
show_state: true
- name: Presets
select_attribute: preset_modes
state_background: false
sub_button_type: select
show_attribute: true
attribute: preset_mode
bottom: []
name: Thermostat
entity: climate.master_bedroom_aircon
state_color: false
step: 1
main_buttons_position: bottom
rows: 1.719
visibility:
- condition: state
entity: input_boolean.master_bedroom_aircon_installed
state: 'on'
- type: custom:streamline-card
template: state_color_button
variables:
entity: binary_sensor.master_bedroom_aircon_compressor
name: Compressor
show_state: 'true'
columns: '2'
color: bubble-accent-color
visibility:
- condition: state
entity: input_boolean.master_bedroom_aircon_installed
state: 'on'
- type: custom:streamline-card
template: state_color_button
variables:
entity: binary_sensor.master_bedroom_aircon_filter_alert
name: Filter
show_state: 'true'
columns: '2'
color: error-color
visibility:
- condition: state
entity: input_boolean.master_bedroom_aircon_installed
state: 'on'
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
card_layout: large
- type: custom:streamline-card
template: main_temperature_button
variables:
entity: sensor.master_bedroom_temperature
name: Temp
columns: '2'
hot_entity: binary_sensor.master_bedroom_hot
cold_entity: binary_sensor.master_bedroom_cold
- type: custom:bubble-card
card_type: button
button_type: state
name: Lux
show_attribute: false
card_layout: large
columns: 2
sub_button:
main: []
bottom: []
entity: sensor.master_bedroom_illuminance
- type: custom:streamline-card
template: state_color_button
variables:
name: Motion
columns: 2
color: bubble-accent-color
entity: binary_sensor.master_bedroom_motion
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: state_color_button
variables:
name: Occupied
columns: 2
entity: binary_sensor.master_bedroom_occupied
color: bubble-accent-color
grid_options:
columns: 6
rows: auto
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
card_layout: large
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Window 1
columns: 2
color: error-color
entity: binary_sensor.master_bedroom_window_1
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Window 2
columns: 2
color: error-color
entity: binary_sensor.master_bedroom_window_2
grid_options:
columns: 6
rows: auto
- type: custom:expander-card
title: More Settings
cards:
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_master_bedroom
name: Adaptive Lighting
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_sleep_mode_master_bedroom
name: Sleep Mode
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: entities
entities:
- entity: switch.master_bedroom_motion_lighting
name: Motion Lighting
- entity: input_number.nighttime_brightness_master_bedroom
name: Night Brightness
- entity: input_number.master_bedroom_lights_off_delay
name: Lights Off Delay
- entity: input_number.master_bedroom_lux_threshold
name: Lux Threshold
icon: mdi:cog
column_span: 1
background:
opacity: 10
- type: grid
cards:
- type: custom:streamline-card
template: main_room_header
variables:
name: Kallen Bedroom
icon: mdi:bunk-bed
light_entity: light.kallen_bedroom_lights
power_entity: sensor.kallen_bedroom_total_power_sensor
- type: custom:bubble-card
card_type: button
button_type: slider
modules:
- default
- subbutton_below
rows: 1.719
icon: mdi:bunk-bed
tap_action:
action: toggle
double_tap_action:
action: perform-action
perform_action: input_select.select_option
target:
entity_id: input_select.kallen_bedroom_scenes
data:
option: Adaptive
hold_action:
action: more-info
sub_button:
main:
- name: Lights
buttons_layout: inline
group:
- entity: light.kallen_bedroom_overhead
name: Overhead
tap_action:
action: toggle
show_name: true
- name: Wall
tap_action:
action: toggle
show_name: true
entity: light.kallen_bedroom_wall
bottom:
- name: Scene
buttons_layout: inline
group:
- name: Scene
icon: mdi:palette
sub_button_type: select
show_name: true
entity: input_select.kallen_bedroom_scenes
name: Lights
entity: light.kallen_bedroom_lights
- type: custom:streamline-card
template: timer_card
variables:
name: Lights Timer
icon: mdi:timer
entity: timer.kallen_bedroom_motion_timer
visibility:
- condition: state
entity: timer.kallen_bedroom_motion_timer
state_not: idle
- type: custom:bubble-card
card_type: separator
name: Modes
icon: mdi:toggle-switch
card_layout: large
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: input_boolean.kallen_sleeping
grid_options:
columns: 6
rows: auto
tap_action:
action: toggle
button_action:
hold_action:
action: none
name: Sleeping
- type: custom:bubble-card
card_type: separator
name: Environment
icon: mdi:thermometer
card_layout: large
sub_button:
main: []
bottom: []
- 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); }
}
card_layout: large
columns: 2
- 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
card_layout: large
columns: 2
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
card_layout: large
- type: custom:streamline-card
template: main_temperature_button
variables:
entity: sensor.kallen_bedroom_temperature
name: Temp
columns: '2'
hot_entity: binary_sensor.kallen_bedroom_hot
cold_entity: binary_sensor.kallen_bedroom_cold
- type: custom:bubble-card
card_type: button
button_type: state
name: Lux
show_attribute: false
card_layout: large
columns: 2
sub_button:
main: []
bottom: []
entity: sensor.kallen_bedroom_illuminance
- type: custom:streamline-card
template: state_color_button
variables:
name: Motion
columns: 2
color: bubble-accent-color
entity: binary_sensor.kallen_bedroom_motion
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: state_color_button
variables:
name: Occupied
columns: 2
entity: binary_sensor.kallen_bedroom_occupied
color: bubble-accent-color
grid_options:
columns: 6
rows: auto
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
card_layout: large
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Window 1
columns: 2
color: error-color
entity: binary_sensor.kallen_bedroom_window_1
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Window 2
columns: 2
color: error-color
entity: binary_sensor.kallen_bedroom_window_2
grid_options:
columns: 6
rows: auto
- type: custom:expander-card
title: More Settings
cards:
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_kallen_bedroom
name: Adaptive Lighting
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_sleep_mode_kallen_bedroom
name: Sleep Mode
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: entities
entities:
- entity: switch.kallen_bedroom_motion_lighting
name: Motion Lighting
- entity: input_number.nighttime_brightness_kallen_bedroom
name: Night Brightness
- entity: input_number.kallen_bedroom_lights_off_delay
name: Lights Off Delay
- entity: input_number.kallen_bedroom_lux_threshold
name: Lux Threshold
icon: mdi:cog
column_span: 1
background:
opacity: 10
- type: grid
cards:
- type: custom:streamline-card
template: main_room_header
variables:
name: Emma Bedroom
icon: hue:room-nursery
light_entity: light.emma_bedroom_light
power_entity: sensor.emma_bedroom_total_power_sensor
- type: custom:bubble-card
card_type: button
button_type: slider
modules:
- default
- subbutton_below
rows: 1.719
icon: mdi:bunk-bed
tap_action:
action: toggle
double_tap_action:
action: perform-action
perform_action: input_select.select_option
target:
entity_id: input_select.emma_bedroom_scenes
data:
option: Adaptive
hold_action:
action: more-info
sub_button:
main: []
bottom:
- name: Scene
buttons_layout: inline
group:
- name: Scene
icon: mdi:palette
sub_button_type: select
show_name: true
entity: input_select.emma_bedroom_scenes
name: Lights
entity: light.emma_bedroom_light
- type: custom:streamline-card
template: timer_card
variables:
name: Lights Timer
icon: mdi:timer
entity: timer.emma_bedroom_motion_timer
visibility:
- condition: state
entity: timer.emma_bedroom_motion_timer
state_not: idle
- type: custom:bubble-card
card_type: separator
name: Modes
icon: mdi:toggle-switch
card_layout: large
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: input_boolean.emma_sleeping
grid_options:
columns: 6
rows: auto
tap_action:
action: toggle
button_action:
hold_action:
action: none
name: Sleeping
- type: custom:bubble-card
card_type: separator
name: Environment
icon: mdi:thermometer
card_layout: large
sub_button:
main: []
bottom: []
visibility:
- condition: or
conditions:
- condition: state
entity: input_boolean.emma_bedroom_aircon_installed
state: 'on'
- condition: state
entity: input_boolean.emma_bedroom_heater_installed
state: 'on'
- type: custom:bubble-card
card_type: climate
sub_button:
main:
- select_attribute: hvac_modes
name: HVAC modes
state_background: true
sub_button_type: select
show_state: true
- name: Presets
select_attribute: preset_modes
state_background: false
sub_button_type: select
show_attribute: true
attribute: preset_mode
bottom: []
name: Thermostat
entity: climate.emma_bedroom_aircon
state_color: false
step: 1
main_buttons_position: bottom
rows: 1.719
visibility:
- condition: state
entity: input_boolean.emma_bedroom_aircon_installed
state: 'on'
- type: custom:streamline-card
template: state_color_button
variables:
entity: binary_sensor.emma_bedroom_aircon_compressor
name: Compressor
show_state: 'true'
columns: '2'
color: bubble-accent-color
visibility:
- condition: state
entity: input_boolean.emma_bedroom_aircon_installed
state: 'on'
- type: custom:streamline-card
template: state_color_button
variables:
entity: binary_sensor.emma_bedroom_aircon_filter_alert
name: Filter
show_state: 'true'
columns: '2'
color: error-color
visibility:
- condition: state
entity: input_boolean.emma_bedroom_aircon_installed
state: 'on'
- type: custom:bubble-card
card_type: climate
sub_button:
main:
- select_attribute: hvac_modes
name: HVAC modes
state_background: true
sub_button_type: select
show_state: true
- name: Presets
select_attribute: preset_modes
state_background: false
sub_button_type: select
show_attribute: true
attribute: preset_mode
bottom: []
name: Thermostat
state_color: false
step: 1
main_buttons_position: bottom
visibility:
- condition: state
entity: input_boolean.emma_bedroom_heater_installed
state: 'on'
rows: 1.719
entity: climate.emma_bedroom_vtherm
- type: custom:bubble-card
card_type: button
button_type: switch
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
card_layout: large
columns: 2
- type: custom:bubble-card
card_type: button
button_type: switch
entity: switch.emma_bedroom_climate_watchdog
name: Climate Watchdog
show_state: true
tap_action:
action: toggle
double_tap_action:
action: none
hold_action:
action: more-info
button_action:
double_tap_action:
action: none
card_layout: large
columns: 2
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
card_layout: large
- type: custom:streamline-card
template: main_temperature_button
variables:
entity: sensor.emma_bedroom_temperature
name: Temp
columns: '2'
hot_entity: binary_sensor.emma_bedroom_hot
cold_entity: binary_sensor.emma_bedroom_cold
- type: custom:bubble-card
card_type: button
button_type: state
name: Lux
show_attribute: false
card_layout: large
columns: 2
sub_button:
main: []
bottom: []
entity: sensor.emma_bedroom_illuminance
- type: custom:streamline-card
template: state_color_button
variables:
name: Motion
columns: 2
color: bubble-accent-color
entity: binary_sensor.emma_bedroom_motion
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: state_color_button
variables:
name: Occupied
columns: 2
entity: binary_sensor.emma_bedroom_occupied
color: bubble-accent-color
grid_options:
columns: 6
rows: auto
- type: custom:bubble-card
card_type: separator
name: Security
icon: mdi:security
card_layout: large
- type: custom:streamline-card
template: contact_sensor_button
variables:
name: Window 1
columns: 2
color: error-color
entity: binary_sensor.emma_bedroom_window
grid_options:
columns: 6
rows: auto
- type: custom:expander-card
title: More Settings
cards:
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_emma_bedroom
name: Adaptive Lighting
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_sleep_mode_emma_bedroom
name: Sleep Mode
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: entities
entities:
- entity: switch.emma_door_alert
name: Door Alert
- entity: button.emma_door_alert_cancel
name: Cancel Door Alert
- entity: switch.emma_bedroom_motion_lighting
name: Motion Lighting
- entity: input_number.nighttime_brightness_emma_bedroom
name: Night Brightness
- entity: input_number.emma_bedroom_lights_off_delay
name: Lights Off Delay
- entity: input_number.emma_bedroom_lux_threshold
name: Lux Threshold
icon: mdi:cog
column_span: 1
background:
opacity: 10
max_columns: 4
cards: []
- title: Basement
path: basement
icon: mdi:home-floor-b
type: sections
sections:
- type: grid
cards:
- type: custom:streamline-card
template: main_room_header
variables:
- name: Basement Studio
- icon: mdi:twitch
- power_entity: sensor.basement_studio_total_power_sensor
- light_entity: light.basement_studio_lights
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.basement_studio_lights
name: Lights
icon: mdi:twitch
fill_container: true
use_light_color: true
show_brightness_control: true
show_color_temp_control: true
show_color_control: true
collapsible_controls: true
double_tap_action:
action: call-service
service: input_select.select_option
service_data:
option: Adaptive
target:
entity_id: input_select.basement_studio_scenes
primary_info: none
layout: vertical
- type: custom:bubble-card
card_type: separator
name: Lights
icon: mdi:lightbulb
card_layout: large
- 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')}
card_layout: large
columns: 2
- 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')}
card_layout: large
columns: 2
- 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')}
card_layout: large
columns: 2
- 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')}
card_layout: large
columns: 2
- type: custom:timer-bar-card
filter: true
entities:
- entity: timer.basement_studio_door_timer
name: Door Timer
sync_issues: ignore
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.basement_studio_door_timer
hold_action:
action: more-info
double_tap_action:
action: none
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
compressed: true
- type: custom:bubble-card
card_type: separator
name: Media
icon: mdi:volume-high
card_layout: large
- type: custom:bubble-card
card_type: media-player
entity: media_player.basement_tv
name: TV
- type: custom:bubble-card
card_type: separator
name: Environment
icon: mdi:thermometer
card_layout: large
- 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
card_layout: large
state_color: false
visibility:
- condition: state
entity: input_boolean.basement_studio_heat_allowed
state: 'on'
- 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); }
}
card_layout: large
columns: 2
- 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
card_layout: large
columns: 2
- type: custom:bubble-card
card_type: separator
name: Modes
icon: mdi:toggle-switch
card_layout: large
- 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
card_layout: large
columns: 2
- 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
card_layout: large
columns: 2
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
card_layout: large
- type: custom:streamline-card
template: main_temperature_button
variables:
- name: Temp
- entity: sensor.basement_studio_temperature
- hot_entity: binary_sensor.basement_studio_hot
- cold_entity: binary_sensor.basement_studio_cold
- columns: 2
grid_options:
columns: 6
rows: auto
- 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
card_layout: large
columns: 2
- type: custom:streamline-card
template: state_color_button
variables:
- name: Motion
- entity: binary_sensor.basement_studio_motion
- columns: 2
- color: bubble-accent-color
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: state_color_button
variables:
- name: Occupied
- entity: binary_sensor.basement_occupied
- columns: 2
- color: bubble-accent-color
grid_options:
columns: 6
rows: auto
- type: custom:expander-card
title: More Settings
cards:
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_basement_studio
name: Adaptive Lighting
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_sleep_mode_basement_studio
name: Night Mode
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_adapt_color_basement_studio
name: Adapt Color
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_adapt_brightness_basement_studio
name: Adapt Brightness
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: input_boolean.basement_studio_dynamic_scenes
name: Dynamic Scenes
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: custom:bubble-card
card_type: empty-column
- type: entities
entities:
- entity: input_boolean.basement_studio_heat_allowed
name: Heat Allowed
- entity: automation.basement_lights_handling
name: Auto Handling
- entity: automation.basement_lights_adaptive_resync
name: Adaptive Resync
- entity: input_number.daytime_colortemp_basement_studio
name: Day Colortemp
- entity: input_number.nighttime_colortemp_basement_studio
name: Night Colortemp
- entity: input_number.nighttime_brightness_basement_studio
name: Night Brightness
- entity: input_number.basement_studio_lights_off_delay
name: Lights Off Delay
- entity: counter.basement_studio_door_opened_today
name: Door Opened Today
- entity: counter.basement_led_strip_resets
name: LED Strip Resets
- entity: binary_sensor.basement_studio_sync_issue
name: Sync Issue
- entity: input_button.basement_led_strip_reset
name: LED Strip Reset
icon: mdi:cog
column_span: 1
background:
opacity: 10
- type: grid
cards:
- type: heading
heading: Furnace Room
- type: horizontal-stack
cards:
- type: custom:mushroom-light-card
entity: light.furnace_room_overhead
fill_container: true
use_light_color: true
show_brightness_control: true
collapsible_controls: true
double_tap_action:
action: call-service
service: scene.turn_on
service_data: {}
target:
entity_id: scene.furnace_room_bright
name: Light
layout: vertical
show_color_temp_control: false
visibility:
- condition: state
entity: light.furnace_room_overhead
state_not: unavailable
max_columns: 4
cards: []
background: {}
- title: Outdoors
path: outdoors
icon: hue:room-outdoors
type: sections
sections:
- type: grid
cards:
- type: custom:streamline-card
template: main_room_header
variables:
- name: Front Porch
- icon: hue:room-outdoors
- power_entity: sensor.front_porch_light_power_sensor
- light_entity: light.front_porch_light
- type: custom:bubble-card
card_type: button
button_type: slider
modules:
- default
- subbutton_below
rows: 1.719
icon: hue:room-outdoors
tap_action:
action: toggle
double_tap_action:
action: perform-action
perform_action: input_select.select_option
target:
entity_id: input_select.front_porch_scenes
data:
option: Adaptive
hold_action:
action: more-info
sub_button:
main:
- name: Modes
buttons_layout: inline
group:
- entity: switch.front_porch_storm_mode
name: Storm Mode
show_name: true
tap_action:
action: toggle
hold_action:
action: more-info
bottom:
- name: Scene
buttons_layout: inline
group:
- name: Scene
icon: mdi:palette
sub_button_type: select
entity: input_select.front_porch_scenes
show_name: true
name: Lights
entity: light.front_porch_light
- type: custom:streamline-card
template: timer_card
variables:
name: Motion Timer
icon: mdi:timer
entity: timer.front_porch_motion_timer
visibility:
- condition: state
entity: timer.downstairs_bathroom_lights_timer
state_not: idle
- type: custom:bubble-card
card_type: separator
name: Status
icon: mdi:list-box
card_layout: large
- type: custom:streamline-card
template: main_temperature_button
variables:
name: Temp
entity: sensor.home_tempest_temperature
columns: 2
grid_options:
columns: 6
rows: auto
- type: custom:bubble-card
card_type: button
button_type: state
entity: sensor.home_tempest_illuminance
name: Lux
card_layout: large
columns: 2
- type: custom:streamline-card
template: state_color_button
variables:
name: Ding
entity: binary_sensor.front_doorbell_ding_mqtt
columns: 2
color: success-color
grid_options:
columns: 6
rows: auto
- type: custom:streamline-card
template: state_color_button
variables:
name: Motion
entity: binary_sensor.front_doorbell_motion_mqtt
columns: 2
color: bubble-accent-color
grid_options:
columns: 6
rows: auto
- type: custom:expander-card
title: More Settings
cards:
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_front_porch
name: Adaptive Lighting
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: switch.adaptive_lighting_sleep_mode_front_porch
name: Night Mode
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: input_boolean.delivery_mode
name: Delivery Mode
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: custom:bubble-card
card_type: button
button_type: switch
sub_button:
main: []
bottom: []
entity: input_boolean.holiday_mode
name: Holiday Mode
show_state: true
tap_action:
action: toggle
hold_action:
action: more-info
- type: entities
entities:
- entity: input_number.daytime_colortemp_front_porch
name: Day Colortemp
- entity: input_number.nighttime_colortemp_front_porch
name: Night Colortemp
- entity: input_number.front_porch_lux_threshold
name: Lux Threshold
- entity: input_number.front_porch_motion_off_delay
name: Lights Off Delay
icon: mdi:cog
column_span: 1
background:
opacity: 10
max_columns: 4
cards: []
- title: Housewide
path: housewide
icon: mdi:home-lightbulb-outline
type: sections
sections:
- type: grid
cards:
- type: heading
heading: Running Timers
- type: custom:timer-bar-card
filter: true
show_empty: All timers are currently idle.
entities:
- entity: timer.living_room_motion_timer
sync_issues: ignore
tap_action:
action: none
hold_action:
action: more-info
double_tap_action:
action: none
layout: hide_name
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
extend_paper_buttons_row:
position: right
buttons:
- icon: mdi:check-circle
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.living_room_motion_timer
- entity: timer.sunset_lighting_timer
sync_issues: ignore
tap_action:
action: none
hold_action:
action: more-info
double_tap_action:
action: none
layout: hide_name
icon: mdi:weather-sunset
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
extend_paper_buttons_row:
position: right
buttons:
- icon: mdi:check-circle
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.sunset_lighting_timer
- entity: timer.downstairs_bathroom_lights_timer
tap_action:
action: none
hold_action:
action: more-info
double_tap_action:
action: none
layout: hide_name
icon: mdi:toilet
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
extend_paper_buttons_row:
position: right
buttons:
- icon: mdi:check-circle
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.downstairs_bathroom_lights_timer
- entity: timer.upstairs_bathroom_motion_timer
sync_issues: ignore
tap_action:
action: none
hold_action:
action: more-info
double_tap_action:
action: none
layout: hide_name
icon: mdi:toilet
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
extend_paper_buttons_row:
position: right
buttons:
- icon: mdi:check-circle
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.upstairs_bathroom_motion_timer
- entity: timer.stairwell_motion_timer
sync_issues: ignore
tap_action:
action: none
hold_action:
action: more-info
double_tap_action:
action: none
layout: hide_name
icon: mdi:toilet
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
extend_paper_buttons_row:
position: right
buttons:
- icon: mdi:check-circle
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.stairwell_motion_timer
- entity: timer.emma_bedroom_motion_timer
sync_issues: ignore
tap_action:
action: none
hold_action:
action: more-info
double_tap_action:
action: none
layout: hide_name
icon: mdi:toilet
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
extend_paper_buttons_row:
position: right
buttons:
- icon: mdi:check-circle
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.emma_bedroom_motion_timer
- entity: timer.front_porch_motion_timer
sync_issues: ignore
tap_action:
action: none
hold_action:
action: more-info
double_tap_action:
action: none
layout: hide_name
icon: mdi:outdoor-lamp
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
extend_paper_buttons_row:
position: right
buttons:
- icon: mdi:check-circle
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.front_porch_motion_timer
- entity: timer.basement_studio_door_timer
sync_issues: ignore
tap_action:
action: none
hold_action:
action: more-info
double_tap_action:
action: none
layout: hide_name
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
extend_paper_buttons_row:
position: right
buttons:
- icon: mdi:check-circle
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.basement_studio_door_timer
- entity: timer.emma_bedtime_update
sync_issues: ignore
tap_action:
action: none
hold_action:
action: more-info
double_tap_action:
action: none
layout: hide_name
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
extend_paper_buttons_row:
position: right
buttons:
- icon: mdi:check-circle
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.emma_bedtime_update
- entity: timer.washer_timer
sync_issues: ignore
tap_action:
action: none
hold_action:
action: more-info
double_tap_action:
action: none
layout: hide_name
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
extend_paper_buttons_row:
position: right
buttons:
- icon: mdi:check-circle
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.washer_timer
- entity: timer.dryer_timer
sync_issues: ignore
tap_action:
action: none
hold_action:
action: more-info
double_tap_action:
action: none
layout: hide_name
modifications:
- elapsed: 40%
bar_foreground: orange
- elapsed: 80%
bar_foreground: red
extend_paper_buttons_row:
position: right
buttons:
- icon: mdi:check-circle
tap_action:
action: call-service
service: timer.finish
target:
entity_id: timer.dryer_timer
- type: grid
cards:
- type: heading
heading: Global Scenes
- type: entities
entities:
- entity: script.give_me_darkness
secondary_info: After kid's bedtime
confirmation: true
- entity: button.good_morning
secondary_info: Optional, when we wake up
confirmation: true
- entity: button.goodnight
secondary_info: When Tony goes to bed
confirmation: true
- entity: script.global_on
secondary_info: Turn all lights on
confirmation: true
- entity: script.global_off
secondary_info: Turn all lights/fans off
confirmation: true
- entity: script.max_brightness
secondary_info: Turn all lights on at 100%
confirmation: true
- entity: script.going_upstairs
secondary_info: When coming to bed from basement
confirmation: true
- entity: button.basement_on_manual
name: Basement On
secondary_info: Turns on lights/computer/TV
confirmation: true
- entity: button.sunset_lights_trigger
name: Sunset Lights Manual Trigger
secondary_info: If flow gets interrupted
confirmation: true
- entity: script.adaptive_on_first_floor
secondary_info: Reset lights to adaptive
confirmation: true
- entity: script.adaptive_on_second_floor
secondary_info: Reset lights to adaptive
confirmation: true
- entity: script.bright_on_first_floor
confirmation: true
- entity: script.bright_on_second_floor
confirmation: true
- entity: script.evening_on_first_floor
confirmation: true
- entity: script.evening_on_second_floor
confirmation: true
- entity: script.emma_rainbow_lights
- type: grid
cards:
- type: heading
heading: Announcements
- 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
- type: grid
cards:
- type: heading
heading: Room Illuminance
- type: vertical-stack
cards:
- type: custom:auto-entities
card:
type: entities
state_color: true
show_header_toggle: false
filter:
include:
- device_manufacturer: Signify Netherlands B.V.
entity_id: sensor.*_illuminance
exclude: []
sort:
method: state
numeric: true
reverse: true
max_columns: 4
cards: []
- 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
- condition: state
entity: input_boolean.master_bedroom_aircon_installed
state: ''
- 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
- condition: state
entity: input_boolean.emma_bedroom_aircon_installed
state: 'on'
- 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: []
- title: Kallens Korner
path: kallens-korner
icon: mdi:human-male-boy
type: sections
sections:
- type: grid
cards:
- type: heading
heading: Activity Timer
- 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
visibility:
- condition: or
conditions:
- condition: state
entity: timer.kallen_timer
state: active
- condition: state
entity: timer.kallen_timer
state: paused
- type: custom:stack-in-card
cards:
- 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
- type: grid
cards:
- type: heading
heading: School
- type: custom:mushroom-template-card
primary: Hello, {{user}}
secondary: |-
Today's lunch menu is:
{{ states('sensor.school_lunch_menu_items') }}
icon: '{{ state_attr(''sensor.school_lunch_menu_items'',''icon'') }}'
entity: sensor.school_lunch_menu_items
icon_color: |-
{% if is_state('sensor.school_lunch_menu_week','First Menu') %}
green
{% elif is_state('sensor.school_lunch_menu_week','Second Menu') %}
red
{% elif is_state('sensor.school_lunch_menu_week','Third Menu') %}
yellow
{% elif is_state('sensor.school_lunch_menu_week','Fourth Menu') %}
blue
{% else %}
grey
{% endif %}
fill_container: false
multiline_secondary: true
badge_icon: |-
{% set dow = now().strftime('%A') %}
{% if is_state('calendar.defiance_city_schools_lunch','on') %}
{% if dow == 'Monday' %}
mdi:numeric-1
{% elif dow == 'Tuesday' %}
mdi:numeric-2
{% elif dow == 'Wednesday' %}
mdi:numeric-3
{% elif dow == 'Thursday' %}
mdi:numeric-4
{% elif dow == 'Friday' %}
mdi:numeric-5
{% endif %}
{% else %}
mdi:close
{% endif %}
badge_color: |-
{% if is_state('calendar.defiance_city_schools_lunch','on') %}
purple
{% else %}
red
{% endif %}
tap_action:
action: more-info
hold_action:
action: none
double_tap_action:
action: url
url_path: https://www.defiancecityschools.org/Lunch.aspx
layout: horizontal
visibility:
- condition: state
entity: input_boolean.school_in_session
state: 'on'
- type: entities
entities:
- type: custom:template-entity-row
entity: sensor.school_start_days2go
name: First Day of School
condition: '{{ states(''sensor.school_start_days2go'') >= ''0'' }}'
icon: mdi:calendar
- type: custom:template-entity-row
entity: sensor.thanksgiving_break_days2go
name: Thanksgiving Break
condition: '{{ states(''sensor.thanksgiving_break_days2go'') >= ''0'' }}'
icon: mdi:calendar
- type: custom:template-entity-row
entity: sensor.christmas_break_days2go
name: Christmas Break
condition: '{{ states(''sensor.christmas_break_days2go'') >= ''0'' }}'
icon: mdi:calendar
- type: custom:template-entity-row
entity: sensor.spring_break_days2go
name: Spring Break
condition: '{{ states(''sensor.spring_break_days2go'') >= ''0'' }}'
icon: mdi:calendar
- type: custom:template-entity-row
entity: sensor.school_end_days2go
name: Last Day of School
condition: '{{ states(''sensor.school_end_days2go'') >= ''0'' }}'
icon: mdi:calendar
title: Countdowns
- type: grid
cards:
- type: heading
heading: Kallen Desktop
- type: heading
icon: mdi:gauge
heading: Performance
heading_style: subtitle
visibility:
- condition: and
conditions:
- condition: state
entity: binary_sensor.kallen_desktop_on
state: 'on'
- condition: or
conditions:
- condition: and
conditions:
- condition: state
entity: sensor.kallen_desktop_cpu_usage
state_not: unavailable
- condition: state
entity: sensor.kallen_desktop_cpu_usage
state_not: unknown
- condition: and
conditions:
- condition: state
entity: sensor.kallen_desktop_cpu_temperature
state_not: unavailable
- condition: state
entity: sensor.kallen_desktop_cpu_temperature
state_not: unavailable
- type: horizontal-stack
cards:
- type: custom:gauge-card-pro
entity: sensor.kallen_desktop_cpu_usage
segments:
- from: 0
color: var(--success-color)
- from: 75
color: var(--warning-color)
- from: 90
color: var(--error-color)
needle: true
gradient: true
titles:
primary: CPU
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
entity2: sensor.kallen_desktop_cpu_temperature
min: 0
max: 100
inner:
mode: needle
min: 0
max: 100
segments:
- from: 0
color: var(--success-color)
- from: 80
color: var(--warning-color)
- from: 95
color: var(--error-color)
gradient: true
gradient_resolution: auto
round: small
gradient_resolution: auto
value_texts:
primary: |
{% if states(entity) | int >= 90 %}
ALERT
{% else %}
{{ states(entity) | int }}
{% endif %}
secondary: |
{% if states(entity2) | int >= 95 %}
ALERT
{% else %}
{{ states(entity2) | int }}
{% endif %}
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
secondary_color: |
{% if states(entity2) | int >= 95 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
round: small
- type: custom:gauge-card-pro
entity: sensor.kallen_desktop_gpu_core_load
segments:
- from: 0
color: var(--success-color)
- from: 80
color: var(--warning-color)
- from: 90
color: var(--error-color)
needle: true
gradient: true
titles:
primary: GPU
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
entity2: sensor.kallen_desktop_gpu_temperature
min: 0
max: 100
inner:
mode: needle
min: 0
max: 100
segments:
- from: 0
color: var(--success-color)
- from: 75
color: var(--warning-color)
- from: 85
color: var(--error-color)
gradient: true
gradient_resolution: auto
round: small
gradient_resolution: auto
value_texts:
primary: |
{% if states(entity) | int >= 90 %}
ALERT
{% else %}
{{ states(entity) | int }}
{% endif %}
secondary: |
{% if states(entity2) | int >= 85 %}
ALERT
{% else %}
{{ states(entity2) | int }}
{% endif %}
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
secondary_color: |
{% if states(entity2) | int >= 95 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
round: small
visibility:
- condition: and
conditions:
- condition: state
entity: binary_sensor.kallen_desktop_on
state: 'on'
- condition: or
conditions:
- condition: and
conditions:
- condition: state
entity: sensor.kallen_desktop_cpu_usage
state_not: unavailable
- condition: state
entity: sensor.kallen_desktop_cpu_usage
state_not: unknown
- condition: and
conditions:
- condition: state
entity: sensor.kallen_desktop_cpu_temperature
state_not: unavailable
- condition: state
entity: sensor.kallen_desktop_cpu_temperature
state_not: unknown
- condition: and
conditions:
- condition: state
entity: sensor.kallen_desktop_gpu_core_load
state_not: unavailable
- condition: state
entity: sensor.kallen_desktop_gpu_core_load
state_not: unavailable
- condition: and
conditions:
- condition: state
entity: sensor.kallen_desktop_gpu_temperature
state_not: unavailable
- condition: state
entity: sensor.kallen_desktop_gpu_temperature
state_not: unavailable
- type: horizontal-stack
cards:
- type: custom:gauge-card-pro
entity: sensor.kallen_desktop_memory_usage
segments:
- from: 0
color: var(--success-color)
- from: 80
color: var(--warning-color)
- from: 90
color: var(--error-color)
needle: true
gradient: true
titles:
primary: RAM
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
gradient_resolution: auto
value_texts:
primary: |
{% if states(entity) | int >= 90 %}
ALERT
{% else %}
{{ states(entity) | int }}
{% endif %}
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
secondary_color: |
{% if states(entity2) | int >= 95 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
round: small
- type: custom:gauge-card-pro
entity: sensor.kallen_desktop_gpu_vram_usage
segments:
- from: 0
color: var(--success-color)
- from: 80
color: var(--warning-color)
- from: 90
color: var(--error-color)
needle: true
gradient: true
titles:
primary: VRAM
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
gradient_resolution: auto
value_texts:
primary: |
{% if states(entity) | int >= 90 %}
ALERT
{% else %}
{{ states(entity) | int }}
{% endif %}
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
secondary_color: |
{% if states(entity2) | int >= 95 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
round: small
visibility:
- condition: and
conditions:
- condition: state
entity: binary_sensor.kallen_desktop_on
state: 'on'
- condition: or
conditions:
- condition: and
conditions:
- condition: state
entity: sensor.kallen_desktop_memory_usage
state_not: unavailable
- condition: state
entity: sensor.kallen_desktop_memory_usage
state_not: unknown
- condition: and
conditions:
- condition: state
entity: sensor.kallen_desktop_gpu_vram_usage
state_not: unavailable
- condition: state
entity: sensor.kallen_desktop_gpu_vram_usage
state_not: unavailable
- type: heading
icon: mdi:power
heading: Running
heading_style: subtitle
- type: entities
entities:
- entity: binary_sensor.kallen_desktop_on
name: Status
show_header_toggle: false
state_color: true
- type: heading
icon: mdi:chart-bar
heading: Stats
heading_style: subtitle
visibility:
- condition: state
entity: binary_sensor.kallen_desktop_on
state: 'on'
- type: entities
entities:
- entity: sensor.kallen_desktop_power
name: Power Usage
- entity: sensor.kallen_desktop_current_username
name: Current User
- entity: sensor.kallen_desktop_usernotification
name: User State
- entity: binary_sensor.kallen_desktop_idle
name: Idle
- entity: sensor.kallen_desktop_system_uptime
name: System Uptime
- entity: sensor.kallen_desktop_system_idle_time
name: Idle Time
- entity: sensor.kallen_desktop_memory_used
name: Memory Used
- entity: sensor.kallen_desktop_virtual_memory_usage
name: Virtual Memory Usage
- entity: sensor.kallen_desktop_storage_c_available_free_space
name: Free Space C:\
- entity: sensor.kallen_desktop_windowsupdates_driver_updates_pending
name: Windows Updates - Drivers
- entity: sensor.kallen_desktop_windowsupdates_software_updates_pending
name: Windows Updates - Software
- entity: input_boolean.kallen_computer_updates
name: Leave on for updates
show_header_toggle: false
state_color: true
visibility:
- condition: state
entity: binary_sensor.kallen_desktop_on
state: 'on'
- type: heading
icon: mdi:harddisk
heading: Drive Temps
heading_style: subtitle
visibility:
- condition: state
entity: binary_sensor.kallen_desktop_on
state: 'on'
- type: custom:battery-state-card
icon: mdi:harddisk
colors:
steps:
- value: 26
color: blue
- value: 50
color: green
- value: 60
color: yellow
- value: 70
color: red
tap_action:
action: more-info
sort_by_level: desc
unit: °C
round: 0
bulk_rename:
- from: 'Kallen Desktop - '
to: ''
- from: Storage
to: Drive
- from: Temperature
to: Temp
filter:
include:
- name: entity_id
value: sensor.kallen_desktop_storage_*_temperature
visibility:
- condition: state
entity: binary_sensor.kallen_desktop_on
state: 'on'
- type: heading
icon: mdi:swap-horizontal
heading: Controls
heading_style: subtitle
- type: entities
entities:
- entity: script.kallen_desktop_refresh
name: Refresh
- entity: script.kallen_desktop_reboot
name: Reboot
confirmation: true
- entity: script.kallen_desktop_shutdown
name: Shutdown
confirmation: true
- entity: script.kallen_desktop_wake
name: Wake
- type: grid
cards:
- type: heading
heading: Settings
- type: entities
entities:
- entity: input_boolean.kallen_awake
name: I am awake
- entity: input_select.kallen_morning_briefing_location
name: Morning Briefing Location
- entity: input_datetime.kallen_awake_at
name: Awake Time
- entity: input_datetime.kallen_asleep_at
name: Asleep Time
max_columns: 4
cards: []
background:
image: >-
https://cats.com/wp-content/uploads/2024/02/96E4B546-9BE7-4977-9A29-05F2D9BB47BC_1_102_a-e1711411797978.jpeg
- title: Info Desk
path: info-desk
icon: mdi:information
type: sections
sections:
- type: grid
cards:
- type: heading
heading: General
- type: custom:mushroom-template-card
primary: 'Random dad joke:'
secondary: |-
"{{ states(entity) }}"
Double tap this card for TTS
icon: mdi:party-popper
entity: sensor.random_joke
fill_container: false
multiline_secondary: true
double_tap_action:
action: call-service
service: script.speech_engine
data:
who: common
message: '{{ states(''sensor.random_joke'') }}'
tap_action:
action: none
hold_action:
action: none
icon_color: var(--rgb-blue-color)
layout: horizontal
- type: custom:ha-card-waze-travel-time
name: Travel Times
unit: mi
columns:
- from
- to
- distance
- duration
- icon
destinations:
- entity: sensor.home_to_school
from: Home
to: School
- entity: sensor.home_to_bob_evans
to: Bob Evans
- entity: sensor.school_to_bob_evans
from: School
to: Bob Evans
- type: custom:auto-entities
card:
type: entities
filter:
include: []
exclude: []
entities:
- sensor.anniversary_emmalynn_s_birthday
- sensor.anniversary_kallen_s_birthday
- sensor.anniversary_tina_s_birthday
- sensor.anniversary_tony_s_birthday
- sensor.anniversary_wedding_anniversary
sort:
method: state
numeric: true
reverse: false
ignore_case: true
ip: false
- type: grid
cards:
- type: heading
heading: Defiance Gas Statistics
- type: horizontal-stack
cards:
- type: custom:gauge-card-pro
entity: sensor.local_minimum_gas_price
segments:
- pos: 2
color: var(--success-color)
- pos: 3
color: var(--warning-color)
- pos: 4
color: var(--error-color)
needle: true
gradient: true
titles:
primary: Minimum
gradient_resolution: auto
min: 2
max: 4
round: small
value_texts:
primary: |-
{% if states(entity) in ['unavailable','unknown'] %}
?
{% else %}
{{ states(entity) }}
{% endif %}
primary_unit: '{{ '''' }}'
- type: custom:gauge-card-pro
entity: sensor.local_average_gas_price
segments:
- pos: 2
color: var(--success-color)
- pos: 3
color: var(--warning-color)
- pos: 4
color: var(--error-color)
needle: true
gradient: true
titles:
primary: Average
gradient_resolution: auto
min: 2
max: 4
round: small
value_texts:
primary: |-
{% if states(entity) in ['unavailable','unknown'] %}
?
{% else %}
{{ states(entity) }}
{% endif %}
primary_unit: '{{ '''' }}'
- type: custom:gauge-card-pro
entity: sensor.local_maximum_gas_price
segments:
- pos: 2
color: var(--success-color)
- pos: 3
color: var(--warning-color)
- pos: 4
color: var(--error-color)
needle: true
gradient: true
titles:
primary: Maximum
gradient_resolution: auto
min: 2
max: 4
round: small
value_texts:
primary: |-
{% if states(entity) in ['unavailable','unknown'] %}
?
{% else %}
{{ states(entity) }}
{% endif %}
primary_font_size_reduction: 0
primary_unit_before_value: true
primary_unit: '{{ '''' }}'
- 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: grid
cards:
- type: heading
heading: AdGuard Home
heading_style: title
- type: custom:adguard-card
device_id: ddb8569dfb13c80653caac866f92c719
switch_style: flex
visibility:
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- c3909d27048140729f002aaef0391775
- type: grid
cards:
- type: heading
heading: Router Stats
- type: entities
entities:
- entity: input_select.router_stats
name: Select Card
- type: entities
entities:
- entity: sensor.xr500_download_today
- entity: sensor.xr500_upload_today
- entity: sensor.xr500_gateway_kib_s_received
- entity: sensor.xr500_gateway_kib_s_sent
visibility:
- condition: state
entity: input_select.router_stats
state: Current Stats
- type: entities
entities:
- entity: sensor.xr500_download_yesterday
- entity: sensor.xr500_download_week
- entity: sensor.xr500_download_week_average
- entity: sensor.xr500_download_month
- entity: sensor.xr500_download_month_average
- entity: sensor.xr500_download_last_month
- entity: sensor.xr500_download_last_month_average
visibility:
- condition: state
entity: input_select.router_stats
state: History Stats - Download
- type: entities
entities:
- entity: sensor.xr500_upload_yesterday
- entity: sensor.xr500_upload_week
- entity: sensor.xr500_upload_week_average
- entity: sensor.xr500_upload_month
- entity: sensor.xr500_upload_month_average
- entity: sensor.xr500_upload_last_month
- entity: sensor.xr500_upload_last_month_average
visibility:
- condition: state
entity: input_select.router_stats
state: History Stats - Upload
max_columns: 4
cards: []
- title: Mobile Devices
path: mobile-devices
icon: mdi:cellphone-information
type: sections
sections:
- type: grid
cards:
- type: heading
heading: Tony's iPhone
- type: custom:streamline-card
template: iphone_entities_card
variables:
- device: tony_s_iphone
- type: custom:streamline-card
template: phone_info_grid
variables:
- device: tony_s_iphone
column_span: 2
- type: grid
cards:
- type: heading
heading: Tina's iPhone
- type: custom:streamline-card
template: iphone_entities_card
variables:
- device: tinas_iphone
- type: custom:streamline-card
template: phone_info_grid
variables:
- device: tinas_iphone
column_span: 2
- type: grid
cards:
- type: heading
heading: Kallen's iPhone
- type: custom:streamline-card
template: iphone_entities_card
variables:
- device: kallen_iphone
- type: custom:streamline-card
template: phone_info_grid
variables:
- device: kallen_iphone
column_span: 2
- type: grid
cards:
- type: heading
heading: Map
- type: map
entities:
- entity: person.tony_stork
- entity: person.christina_stork
- entity: person.kallen_stork
- entity: zone.bob_evans
- entity: zone.home
- entity: zone.aldi
- entity: zone.chief
- entity: zone.courtney_cave
- entity: zone.dollar_general_clinton_st
- entity: zone.elementary_school
- entity: zone.kroger
- entity: zone.meijer
- entity: zone.menards
- entity: zone.middle_school
- entity: zone.the_elder_storks
- entity: zone.wal_mart
- entity: zone.latty
hours_to_show: 24
theme_mode: dark
grid_options:
columns: full
rows: 8
column_span: 2
- type: grid
cards:
- type: heading
heading: Tony's iPad
- type: custom:streamline-card
template: ipad_entities_card
variables:
- device: tony_s_ipad
- type: grid
cards:
- type: heading
heading: Tina’s iPad
- type: custom:streamline-card
template: ipad_entities_card
variables:
- device: tinas_ipad
- type: grid
cards:
- type: heading
heading: Tony's Accessories
- type: entities
entities:
- type: custom:battery-state-entity
entity: sensor.tony_s_apple_watch_battery
name: Battery
tap_action: more-info
charging_state:
entity_id: sensor.tony_s_apple_watch_battery_status
state: Charging
- entity: sensor.tony_s_apple_watch_zone_distance
name: Distance
- entity: sensor.tony_s_apple_watch_info
name: Info
show_header_toggle: false
state_color: true
title: Apple Watch
- type: entities
entities:
- entity: sensor.tonys_airpods_pro_zone_distance
name: Distance
- entity: sensor.tonys_airpods_pro_info
name: Info
state_color: true
show_header_toggle: false
title: Airpods Pro
- type: grid
cards:
- type: heading
heading: Tina's Accessories
- type: entities
entities:
- type: custom:battery-state-entity
entity: sensor.christinas_apple_watch_battery
name: Battery
tap_action: more-info
charging_state:
entity_id: sensor.christinas_apple_watch_battery_status
state: Charging
- entity: sensor.christinas_apple_watch_zone_distance
name: Distance
- entity: sensor.christinas_apple_watch_info
name: Info
show_header_toggle: false
state_color: true
title: Apple Watch
- type: entities
entities:
- entity: sensor.tinas_airpods_pro_zone_distance
name: Distance
- entity: sensor.tinas_airpods_pro_info
name: Info
show_header_toggle: false
state_color: true
title: Airpods Pro
max_columns: 4
cards: []
badges:
- type: entity
show_name: true
show_state: true
show_icon: true
entity: person.tony_stork
color: ''
- type: entity
show_name: true
show_state: true
show_icon: true
entity: person.christina_stork
color: ''
- type: entity
show_name: true
show_state: true
show_icon: true
entity: person.kallen_stork
color: ''
- title: Computers
path: computers
icon: mdi:laptop
type: sections
sections:
- type: grid
cards:
- type: heading
heading: Power Usage
- type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: custom:gauge-card-pro
entity: sensor.tony_desktop_power
segments:
- from: 0
color: var(--success-color)
- from: 500
color: var(--warning-color)
- from: 650
color: var(--error-color)
min: 0
max: 750
needle: true
gradient: true
titles:
primary: Tony Desktop
primary_color: |-
{% if states(entity) | int >= 650 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
value_texts:
primary: |
{% if states(entity) | int < 10 %}
Off
{% elif states(entity) | int >= 650 %}
ALERT
{% else %}
{{ states(entity) | int }}
{% endif %}
primary_color: |-
{% if states(entity) | int >= 650 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
gradient_resolution: auto
round: small
- type: custom:gauge-card-pro
entity: sensor.tina_desktop_power
segments:
- from: 0
color: var(--success-color)
- from: 500
color: var(--warning-color)
- from: 650
color: var(--error-color)
min: 0
max: 750
needle: true
gradient: true
titles:
primary: Tina Desktop
primary_color: |-
{% if states(entity) | int >= 650 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
value_texts:
primary: |
{% if states(entity) | int < 10 %}
Off
{% elif states(entity) | int >= 650 %}
ALERT
{% else %}
{{ states(entity) | int }}
{% endif %}
primary_color: |-
{% if states(entity) | int >= 650 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
gradient_resolution: auto
round: small
- type: horizontal-stack
cards:
- type: custom:gauge-card-pro
entity: sensor.kallen_desktop_power
segments:
- from: 0
color: var(--success-color)
- from: 350
color: var(--warning-color)
- from: 450
color: var(--error-color)
min: 0
max: 500
needle: true
gradient: true
titles:
primary: Kallen Desktop
primary_color: |-
{% if states(entity) | int >= 450 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
value_texts:
primary: |
{% if states(entity) | int < 10 %}
Off
{% elif states(entity) | int >= 450 %}
ALERT
{% else %}
{{ states(entity) | int }}
{% endif %}
primary_color: |-
{% if states(entity) | int >= 450 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
gradient_resolution: auto
round: small
- type: custom:gauge-card-pro
entity: sensor.basement_server_power
segments:
- from: 0
color: var(--success-color)
- from: 400
color: var(--warning-color)
- from: 550
color: var(--error-color)
min: 0
max: 650
needle: true
gradient: true
titles:
primary: Basement Server
primary_color: |-
{% if states(entity) | int >= 550 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
value_texts:
primary: |
{% if states(entity) | int < 10 %}
Off
{% elif states(entity) | int >= 550 %}
ALERT
{% else %}
{{ states(entity) | int }}
{% endif %}
primary_color: |-
{% if states(entity) | int >= 550 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
gradient_resolution: auto
round: small
- type: heading
heading: Navigation
heading_style: title
- type: custom:streamline-card
template: main_button_name
variables:
name: Proxmox
icon: bha:proxmox
navigation_path: /lovelace/proxmox
columns: '2'
visibility:
- condition: user
users:
- c3909d27048140729f002aaef0391775
- type: grid
cards:
- type: heading
heading: Tony Desktop
- type: heading
icon: mdi:gauge
heading: Performance
heading_style: subtitle
visibility:
- condition: and
conditions:
- condition: state
entity: binary_sensor.tony_desktop_on
state: 'on'
- condition: or
conditions:
- condition: and
conditions:
- condition: state
entity: sensor.tony_asus_cpu_usage
state_not: unavailable
- condition: state
entity: sensor.tony_asus_cpu_usage
state_not: unknown
- condition: and
conditions:
- condition: state
entity: sensor.tony_desktop_memory_usage
state_not: unavailable
- condition: state
entity: sensor.tony_desktop_memory_usage
state_not: unavailable
- type: horizontal-stack
cards:
- type: custom:gauge-card-pro
entity: sensor.tony_asus_cpu_usage
segments:
- from: 0
color: var(--success-color)
- from: 75
color: var(--warning-color)
- from: 90
color: var(--error-color)
needle: true
gradient: true
titles:
primary: CPU
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
entity2: sensor.tony_asus_cpu_temperature
min: 0
max: 100
inner:
mode: needle
min: 0
max: 100
segments:
- from: 0
color: var(--success-color)
- from: 80
color: var(--warning-color)
- from: 95
color: var(--error-color)
gradient: true
gradient_resolution: auto
round: small
gradient_resolution: auto
value_texts:
primary: |
{% if states(entity) | int >= 90 %}
ALERT
{% else %}
{{ states(entity) | int }}
{% endif %}
secondary: |
{% if states(entity2) | int >= 95 %}
ALERT
{% else %}
{{ states(entity2) | int }}
{% endif %}
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
secondary_color: |
{% if states(entity2) | int >= 95 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
round: small
- type: custom:gauge-card-pro
entity: sensor.tony_asus_gpu_core_load
segments:
- from: 0
color: var(--success-color)
- from: 80
color: var(--warning-color)
- from: 90
color: var(--error-color)
needle: true
gradient: true
titles:
primary: GPU
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
entity2: sensor.tony_asus_gpu_temperature
min: 0
max: 100
inner:
mode: needle
min: 0
max: 100
segments:
- from: 0
color: var(--success-color)
- from: 75
color: var(--warning-color)
- from: 85
color: var(--error-color)
gradient: true
gradient_resolution: auto
round: small
gradient_resolution: auto
value_texts:
primary: |
{% if states(entity) | int >= 90 %}
ALERT
{% else %}
{{ states(entity) | int }}
{% endif %}
secondary: |
{% if states(entity2) | int >= 85 %}
ALERT
{% else %}
{{ states(entity2) | int }}
{% endif %}
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
secondary_color: |
{% if states(entity2) | int >= 95 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
round: small
visibility:
- condition: and
conditions:
- condition: state
entity: binary_sensor.tony_desktop_on
state: 'on'
- condition: or
conditions:
- condition: and
conditions:
- condition: state
entity: sensor.tony_asus_cpu_usage
state_not: unavailable
- condition: state
entity: sensor.tony_asus_cpu_usage
state_not: unknown
- condition: and
conditions:
- condition: state
entity: sensor.tony_asus_cpu_temperature
state_not: unavailable
- condition: state
entity: sensor.tony_asus_cpu_temperature
state_not: unknown
- condition: and
conditions:
- condition: state
entity: sensor.tony_asus_gpu_core_load
state_not: unavailable
- condition: state
entity: sensor.tony_asus_gpu_core_load
state_not: unavailable
- condition: and
conditions:
- condition: state
entity: sensor.tony_asus_gpu_temperature
state_not: unavailable
- condition: state
entity: sensor.tony_asus_gpu_temperature
state_not: unavailable
- type: horizontal-stack
cards:
- type: custom:gauge-card-pro
entity: sensor.tony_asus_memory_usage
segments:
- from: 0
color: var(--success-color)
- from: 80
color: var(--warning-color)
- from: 90
color: var(--error-color)
needle: true
gradient: true
titles:
primary: RAM
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
gradient_resolution: auto
value_texts:
primary: |
{% if states(entity) | int >= 90 %}
ALERT
{% else %}
{{ states(entity) | int }}
{% endif %}
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
secondary_color: |
{% if states(entity2) | int >= 95 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
round: small
- type: custom:gauge-card-pro
entity: sensor.tony_asus_gpu_vram_usage
segments:
- from: 0
color: var(--success-color)
- from: 80
color: var(--warning-color)
- from: 90
color: var(--error-color)
needle: true
gradient: true
titles:
primary: VRAM
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
gradient_resolution: auto
value_texts:
primary: |
{% if states(entity) | int >= 90 %}
ALERT
{% else %}
{{ states(entity) | int }}
{% endif %}
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
secondary_color: |
{% if states(entity2) | int >= 95 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
round: small
visibility:
- condition: and
conditions:
- condition: state
entity: binary_sensor.tony_desktop_on
state: 'on'
- condition: or
conditions:
- condition: and
conditions:
- condition: state
entity: sensor.tony_asus_memory_usage
state_not: unavailable
- condition: state
entity: sensor.tony_asus_memory_usage
state_not: unknown
- condition: and
conditions:
- condition: state
entity: sensor.tony_asus_gpu_vram_usage
state_not: unavailable
- condition: state
entity: sensor.tony_asus_gpu_vram_usage
state_not: unavailable
- type: heading
icon: mdi:power
heading: Running
heading_style: subtitle
- type: entities
entities:
- entity: binary_sensor.tony_desktop_on
name: Status
show_header_toggle: false
state_color: true
- type: heading
icon: mdi:chart-bar
heading: Stats
heading_style: subtitle
visibility:
- condition: state
entity: binary_sensor.tony_desktop_on
state: 'on'
- type: entities
entities:
- entity: sensor.tony_desktop_power
name: Power Usage
- entity: sensor.tony_asus_current_username
name: Current User
- entity: sensor.tony_asus_usernotification
name: User State
- entity: sensor.tony_asus_session_state
name: Session State
- entity: sensor.tony_asus_last_system_state_change
name: Last State Change
- entity: binary_sensor.tony_desktop_idle
name: Idle
- entity: sensor.tony_asus_last_boot
name: Last Boot
- entity: sensor.tony_asus_last_active
name: Last Active
- entity: sensor.tony_asus_memory_used
name: Memory Used
- entity: sensor.tony_asus_virtual_memory_usage
name: Virtual Memory Usage
icon: mdi:memory
- entity: sensor.tony_asus_storage_c_available_free_space
name: Free Space C:\
- entity: sensor.tony_asus_storage_e_available_free_space
name: Free Space E:\
- entity: sensor.tony_asus_storage_s_available_free_space
name: Free Space S:\
- entity: sensor.tony_asus_storage_v_available_free_space
name: Free Space V:\
show_header_toggle: false
state_color: true
visibility:
- condition: state
entity: binary_sensor.tony_desktop_on
state: 'on'
- type: heading
icon: mdi:harddisk
heading: Drive Temps
heading_style: subtitle
visibility:
- condition: state
entity: binary_sensor.tony_desktop_on
state: 'on'
- type: custom:battery-state-card
icon: mdi:harddisk
colors:
steps:
- value: 26
color: blue
- value: 50
color: green
- value: 60
color: yellow
- value: 70
color: red
tap_action:
action: more-info
sort_by_level: desc
unit: °C
round: 0
bulk_rename:
- from: 'Tony Desktop - '
to: ''
- from: 'TONY-ASUS '
to: ''
- from: Storage
to: Drive
- from: Temperature
to: Temp
filter:
include:
- name: entity_id
value: sensor.tony_asus_storage_*_temperature
- name: entity_id
value: sensor.tony_desktop_storage_*_temperature
visibility:
- condition: state
entity: binary_sensor.tony_desktop_on
state: 'on'
- type: heading
icon: mdi:swap-horizontal
heading: Controls
heading_style: subtitle
- type: entities
entities:
- entity: button.tony_asus_hassagent_user_refresh
name: Refresh
- entity: button.tony_asus_reboot
name: Reboot
confirmation: true
- entity: button.tony_asus_shutdown
name: Shutdown
confirmation: true
- entity: script.tony_desktop_wake
name: Wake
- type: grid
cards:
- type: heading
heading: Tina Desktop
- type: heading
icon: mdi:gauge
heading: Performance
heading_style: subtitle
visibility:
- condition: and
conditions:
- condition: state
entity: binary_sensor.tina_desktop_on
state: 'on'
- condition: or
conditions:
- condition: and
conditions:
- condition: state
entity: sensor.xia_desktop_cpu_usage
state_not: unavailable
- condition: state
entity: sensor.xia_desktop_cpu_usage
state_not: unknown
- condition: and
conditions:
- condition: state
entity: sensor.tina_desktop_memory_usage
state_not: unavailable
- condition: state
entity: sensor.tina_desktop_memory_usage
state_not: unavailable
- type: horizontal-stack
cards:
- type: custom:gauge-card-pro
entity: sensor.xia_desktop_cpu_usage
segments:
- from: 0
color: var(--success-color)
- from: 75
color: var(--warning-color)
- from: 90
color: var(--error-color)
needle: true
gradient: true
titles:
primary: CPU
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
entity2: sensor.xia_desktop_cpu_temperature
min: 0
max: 100
inner:
mode: needle
min: 0
max: 100
segments:
- from: 0
color: var(--success-color)
- from: 80
color: var(--warning-color)
- from: 95
color: var(--error-color)
gradient: true
gradient_resolution: auto
round: small
gradient_resolution: auto
value_texts:
primary: |
{% if states(entity) | int >= 90 %}
ALERT
{% else %}
{{ states(entity) | int }}
{% endif %}
secondary: |
{% if states(entity2) | int >= 95 %}
ALERT
{% else %}
{{ states(entity2) | int }}
{% endif %}
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
secondary_color: |
{% if states(entity2) | int >= 95 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
round: small
- type: custom:gauge-card-pro
entity: sensor.xia_desktop_gpu_core_load
segments:
- from: 0
color: var(--success-color)
- from: 80
color: var(--warning-color)
- from: 90
color: var(--error-color)
needle: true
gradient: true
titles:
primary: GPU
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
entity2: sensor.xia_desktop_gpu_temperature
min: 0
max: 100
inner:
mode: needle
min: 0
max: 100
segments:
- from: 0
color: var(--success-color)
- from: 75
color: var(--warning-color)
- from: 85
color: var(--error-color)
gradient: true
gradient_resolution: auto
round: small
gradient_resolution: auto
value_texts:
primary: |
{% if states(entity) | int >= 90 %}
ALERT
{% else %}
{{ states(entity) | int }}
{% endif %}
secondary: |
{% if states(entity2) | int >= 85 %}
ALERT
{% else %}
{{ states(entity2) | int }}
{% endif %}
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
secondary_color: |
{% if states(entity2) | int >= 95 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
round: small
visibility:
- condition: and
conditions:
- condition: state
entity: binary_sensor.tina_desktop_on
state: 'on'
- condition: or
conditions:
- condition: and
conditions:
- condition: state
entity: sensor.xia_desktop_cpu_usage
state_not: unavailable
- condition: state
entity: sensor.xia_desktop_cpu_usage
state_not: unknown
- condition: and
conditions:
- condition: state
entity: sensor.xia_desktop_cpu_temperature
state_not: unavailable
- condition: state
entity: sensor.xia_desktop_cpu_temperature
state_not: unknown
- condition: and
conditions:
- condition: state
entity: sensor.xia_desktop_gpu_core_load
state_not: unavailable
- condition: state
entity: sensor.xia_desktop_gpu_core_load
state_not: unavailable
- condition: and
conditions:
- condition: state
entity: sensor.xia_desktop_gpu_temperature
state_not: unavailable
- condition: state
entity: sensor.xia_desktop_gpu_temperature
state_not: unavailable
- type: horizontal-stack
cards:
- type: custom:gauge-card-pro
entity: sensor.xia_desktop_memory_usage
segments:
- from: 0
color: var(--success-color)
- from: 80
color: var(--warning-color)
- from: 90
color: var(--error-color)
needle: true
gradient: true
titles:
primary: RAM
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
gradient_resolution: auto
value_texts:
primary: |
{% if states(entity) | int >= 90 %}
ALERT
{% else %}
{{ states(entity) | int }}
{% endif %}
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
secondary_color: |
{% if states(entity2) | int >= 95 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
round: small
- type: custom:gauge-card-pro
entity: sensor.xia_desktop_gpu_vram_usage
segments:
- from: 0
color: var(--success-color)
- from: 80
color: var(--warning-color)
- from: 90
color: var(--error-color)
needle: true
gradient: true
titles:
primary: VRAM
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
gradient_resolution: auto
value_texts:
primary: |
{% if states(entity) | int >= 90 %}
ALERT
{% else %}
{{ states(entity) | int }}
{% endif %}
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
secondary_color: |
{% if states(entity2) | int >= 95 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
round: small
visibility:
- condition: and
conditions:
- condition: state
entity: binary_sensor.tina_desktop_on
state: 'on'
- condition: or
conditions:
- condition: and
conditions:
- condition: state
entity: sensor.xia_desktop_memory_usage
state_not: unavailable
- condition: state
entity: sensor.xia_desktop_memory_usage
state_not: unknown
- condition: and
conditions:
- condition: state
entity: sensor.xia_desktop_gpu_vram_usage
state_not: unavailable
- condition: state
entity: sensor.xia_desktop_gpu_vram_usage
state_not: unavailable
- type: heading
icon: mdi:power
heading: Running
heading_style: subtitle
- type: entities
entities:
- entity: binary_sensor.tina_desktop_on
name: Status
show_header_toggle: false
state_color: true
- type: heading
icon: mdi:chart-bar
heading: Stats
heading_style: subtitle
visibility:
- condition: state
entity: binary_sensor.tina_desktop_on
state: 'on'
- type: entities
entities:
- entity: sensor.tina_desktop_power
name: Power Usage
- entity: sensor.xia_desktop_current_username
name: Current User
- entity: sensor.xia_desktop_usernotification
name: User State
- entity: sensor.xia_desktop_session_state
name: Session State
- entity: sensor.xia_desktop_last_system_state_change
name: Last State Change
- entity: binary_sensor.tina_desktop_idle
name: Idle
- entity: sensor.xia_desktop_last_boot
name: System Uptime
- entity: sensor.xia_desktop_last_active
name: Last Active
- entity: sensor.xia_desktop_memory_used
name: Memory Used
- entity: sensor.xia_desktop_virtual_memory_usage
name: Virtual Memory Usage
- entity: sensor.xia_desktop_storage_c_available_free_space
name: Free Space C:\
- entity: sensor.xia_desktop_storage_d_available_free_space
name: Free Space D:\
show_header_toggle: false
state_color: true
visibility:
- condition: state
entity: binary_sensor.tina_desktop_on
state: 'on'
- type: heading
icon: mdi:harddisk
heading: Drive Temps
heading_style: subtitle
visibility:
- condition: state
entity: binary_sensor.tina_desktop_on
state: 'on'
- type: custom:battery-state-card
icon: mdi:harddisk
colors:
steps:
- value: 26
color: blue
- value: 50
color: green
- value: 60
color: yellow
- value: 70
color: red
tap_action:
action: more-info
sort_by_level: desc
unit: °C
round: 0
bulk_rename:
- from: 'XIA-DESKTOP '
to: ''
- from: Storage
to: Drive
- from: Temperature
to: Temp
filter:
include:
- name: entity_id
value: sensor.xia_desktop_storage_*_temperature
visibility:
- condition: state
entity: binary_sensor.tina_desktop_on
state: 'on'
- type: heading
icon: mdi:swap-horizontal
heading: Controls
heading_style: subtitle
- type: entities
entities:
- entity: button.xia_desktop_hassagent_satellite_refresh
name: Refresh
- entity: button.xia_desktop_reboot
name: Reboot
confirmation: true
- entity: button.xia_desktop_shutdown
name: Shutdown
confirmation: true
- entity: script.tina_desktop_wake
name: Wake
- type: grid
cards:
- type: heading
heading: Asus Laptop
- type: heading
icon: mdi:gauge
heading: Performance
heading_style: subtitle
visibility:
- condition: or
conditions:
- condition: and
conditions:
- condition: state
entity: sensor.asus_laptop_cpu_usage
state_not: unavailable
- condition: state
entity: sensor.asus_laptop_cpu_usage
state_not: unknown
- condition: and
conditions:
- condition: state
entity: sensor.asus_laptop_memory_usage
state_not: unavailable
- condition: state
entity: sensor.asus_laptop_memory_usage
state_not: unavailable
- type: horizontal-stack
cards:
- type: custom:gauge-card-pro
entity: sensor.asus_laptop_cpu_usage
segments:
- from: 0
color: var(--success-color)
- from: 75
color: var(--warning-color)
- from: 90
color: var(--error-color)
needle: true
gradient: true
titles:
primary: CPU
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
entity2: sensor.asus_laptop_cpu_temperature
min: 0
max: 100
inner:
mode: needle
min: 0
max: 100
segments:
- from: 0
color: var(--success-color)
- from: 80
color: var(--warning-color)
- from: 95
color: var(--error-color)
gradient: true
gradient_resolution: auto
round: small
gradient_resolution: auto
value_texts:
primary: |
{% if states(entity) | int >= 90 %}
ALERT
{% else %}
{{ states(entity) | int }}
{% endif %}
secondary: |
{% if states(entity2) | int >= 95 %}
ALERT
{% else %}
{{ states(entity2) | int }}
{% endif %}
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
secondary_color: |
{% if states(entity2) | int >= 95 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
round: small
- type: custom:gauge-card-pro
entity: sensor.asus_laptop_gpu_core_load
segments:
- from: 0
color: var(--success-color)
- from: 80
color: var(--warning-color)
- from: 90
color: var(--error-color)
needle: true
gradient: true
titles:
primary: GPU
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
entity2: sensor.asus_laptop_gpu_temperature
min: 0
max: 100
inner:
mode: needle
min: 0
max: 100
segments:
- from: 0
color: var(--success-color)
- from: 75
color: var(--warning-color)
- from: 85
color: var(--error-color)
gradient: true
gradient_resolution: auto
round: small
gradient_resolution: auto
value_texts:
primary: |
{% if states(entity) | int >= 90 %}
ALERT
{% else %}
{{ states(entity) | int }}
{% endif %}
secondary: |
{% if states(entity2) | int >= 85 %}
ALERT
{% else %}
{{ states(entity2) | int }}
{% endif %}
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
secondary_color: |
{% if states(entity2) | int >= 95 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
round: small
visibility:
- condition: and
conditions:
- condition: state
entity: binary_sensor.tina_desktop_on
state: 'on'
- condition: or
conditions:
- condition: and
conditions:
- condition: state
entity: sensor.xia_desktop_cpu_usage
state_not: unavailable
- condition: state
entity: sensor.xia_desktop_cpu_usage
state_not: unknown
- condition: and
conditions:
- condition: state
entity: sensor.tina_desktop_gpu_core_load
state_not: unavailable
- condition: state
entity: sensor.tina_desktop_gpu_core_load
state_not: unavailable
- type: horizontal-stack
cards:
- type: custom:gauge-card-pro
entity: sensor.asus_laptop_memory_usage
segments:
- from: 0
color: var(--success-color)
- from: 80
color: var(--warning-color)
- from: 90
color: var(--error-color)
needle: true
gradient: true
titles:
primary: RAM
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
gradient_resolution: auto
value_texts:
primary: |
{% if states(entity) | int >= 90 %}
ALERT
{% else %}
{{ states(entity) | int }}
{% endif %}
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
secondary_color: |
{% if states(entity2) | int >= 95 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
round: small
- type: custom:gauge-card-pro
entity: sensor.asus_laptop_gpu_vram_usage
segments:
- from: 0
color: var(--success-color)
- from: 80
color: var(--warning-color)
- from: 90
color: var(--error-color)
needle: true
gradient: true
titles:
primary: VRAM
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
gradient_resolution: auto
value_texts:
primary: |
{% if states(entity) | int >= 90 %}
ALERT
{% else %}
{{ states(entity) | int }}
{% endif %}
primary_color: |-
{% if states(entity) | int >= 90 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
secondary_color: |
{% if states(entity2) | int >= 95 %}
var(--error-color)
{% else %}
var(--primary-text-color)
{% endif %}
round: small
visibility:
- condition: or
conditions:
- condition: and
conditions:
- condition: state
entity: sensor.asus_laptop_memory_usage
state_not: unavailable
- condition: state
entity: sensor.asus_laptop_memory_usage
state_not: unknown
- condition: and
conditions:
- condition: state
entity: sensor.asus_laptop_gpu_vram_usage
state_not: unavailable
- condition: state
entity: sensor.asus_laptop_gpu_vram_usage
state_not: unavailable
- type: heading
icon: mdi:chart-bar
heading: Stats
heading_style: subtitle
- type: entities
entities:
- type: custom:battery-state-entity
entity: sensor.asus_laptop_battery_remaining
name: Battery
tap_action: more-info
secondary_info: charging
charging_state:
entity_id: binary_sensor.asus_laptop_power_status
state: 'on'
secondary_info_text: Plugged In
- entity: sensor.asus_laptop_current_username
name: Current User
- entity: sensor.tony_asus_usernotification
name: User State
- entity: binary_sensor.asus_laptop_idle
name: Idle
- entity: sensor.asus_laptop_system_uptime
name: System Uptime
- entity: sensor.asus_laptop_system_idle_time
name: Idle Time
- entity: sensor.asus_laptop_memory_used
name: Memory Used
- entity: sensor.asus_laptop_virtual_memory_usage
name: Virtual Memory Usage
- entity: sensor.asus_laptop_storage_c_available_free_space
name: Free Space C:\
- entity: sensor.asus_laptop_storage_d_available_free_space
name: Free Space D:\
- entity: sensor.tony_asus_windowsupdates_driver_updates_pending
name: Windows Update - Drivers
- entity: sensor.tony_asus_windowsupdates_software_updates_pending
name: Windows Update - Software
show_header_toggle: false
state_color: true
- type: heading
icon: mdi:harddisk
heading: Drive Temps
heading_style: subtitle
- type: custom:battery-state-card
icon: mdi:harddisk
colors:
steps:
- value: 26
color: blue
- value: 50
color: green
- value: 60
color: yellow
- value: 70
color: red
tap_action:
action: more-info
sort_by_level: desc
unit: °C
round: 0
bulk_rename:
- from: 'ASUS Laptop - '
to: ''
- from: Storage
to: Drive
- from: Temperature
to: Temp
filter:
include:
- name: entity_id
value: sensor.asus_laptop_storage_*_temperature
- type: heading
icon: mdi:swap-horizontal
heading: Controls
heading_style: subtitle
- type: entities
entities:
- entity: script.asus_laptop_refresh
name: Refresh
- entity: script.asus_laptop_reboot
name: Reboot
- entity: script.asus_laptop_shutdown
name: Shutdown
visibility:
- condition: state
entity: binary_sensor.asus_laptop_idle
state_not: unavailable
- type: grid
cards:
- type: heading
heading: Canon PIXMA TS3522
- type: entities
entities:
- entity: sensor.canon_ts3500_series
name: Status
- entity: sensor.canon_ts3500_series_black
name: Black Ink
- entity: sensor.canon_ts3500_series_color
name: Color Ink
show_header_toggle: false
state_color: true
max_columns: 4
cards: []
- type: sections
max_columns: 4
title: Proxmox
path: proxmox
icon: bha:proxmox
subview: true
visible:
- user: c3909d27048140729f002aaef0391775
sections:
- type: grid
cards:
- type: heading
icon: mdi:desktop-tower-monitor
heading: Desktop VMs
heading_style: title
- title: Gaming Stuff
path: gaming-stuff
icon: mdi:microsoft-xbox-controller
type: sections
sections:
- type: grid
cards:
- type: heading
heading: Gamer Score Leaderboard
- type: entities
entities:
- entity: sensor.tm24fan_gamer_score
name: ironnerd24 Gamer Score
- entity: sensor.kjsgamer2012_gamer_score
- entity: sensor.irishpirate1988_gamer_score
show_header_toggle: false
state_color: true
- type: grid
cards:
- type: heading
heading: ironnerd24
- type: custom:streamline-card
template: xbox_card
variables:
- gamertag: tm24fan
- type: grid
cards:
- type: heading
heading: kjsgamer2012
- type: custom:streamline-card
template: xbox_card
variables:
- gamertag: kjsgamer2012
- type: grid
cards:
- type: heading
heading: irishpirate1988
- type: custom:streamline-card
template: xbox_card
variables:
- gamertag: irishpirate1988
- type: grid
cards:
- type: heading
heading: Twitch
- type: entities
entities:
- entity: sensor.twitch_ironnerd24
- entity: sensor.twitch_xia_p988
show_header_toggle: false
- type: grid
cards:
- type: heading
heading: Steam
- type: custom:auto-entities
card:
type: entities
show_header_toggle: false
state_color: true
filter:
include:
- device: Steam
sort:
method: friendly_name
reverse: false
numeric: false
ignore_case: true
show_empty: false
max_columns: 4
cards: []
- 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: 'off'
- condition: state
entity: binary_sensor.san_francisco_49ers_inhibit
state: 'off'
- type: grid
cards:
- type: heading
heading: MLB
- type: custom:teamtracker-card
entity: sensor.minnesota_twins
visibility:
- condition: state
entity: sensor.minnesota_twins
state_not: NOT_FOUND
- condition: state
entity: sensor.minnesota_twins
state_not: BYE
- condition: state
entity: binary_sensor.minnesota_twins_inhibit
state: 'off'
- type: custom:teamtracker-card
entity: sensor.cleveland_guardians
visibility:
- condition: state
entity: sensor.cleveland_guardians
state_not: NOT_FOUND
- condition: state
entity: sensor.cleveland_guardians
state_not: BYE
- condition: state
entity: binary_sensor.cleveland_guardians_inhibit
state: 'off'
- type: custom:teamtracker-card
entity: sensor.los_angeles_dodgers
visibility:
- condition: state
entity: sensor.los_angeles_dodgers
state_not: NOT_FOUND
- condition: state
entity: sensor.los_angeles_dodgers
state_not: BYE
- condition: state
entity: binary_sensor.los_angeles_dodgers_inhibit
state: 'off'
column_span: 3
visibility:
- condition: or
conditions:
- condition: state
entity: binary_sensor.minnesota_twins_inhibit
state: 'off'
- condition: state
entity: binary_sensor.cleveland_guardians_inhibit
state: 'off'
- condition: state
entity: binary_sensor.los_angeles_dodgers_inhibit
state: 'off'
- type: grid
cards:
- type: heading
heading: NHL
- type: custom:teamtracker-card
entity: sensor.minnesota_wild
visibility:
- condition: state
entity: sensor.minnesota_wild
state_not: NOT_FOUND
- condition: state
entity: sensor.minnesota_wild
state_not: BYE
- condition: state
entity: binary_sensor.minnesota_wild_inhibit
state: 'off'
column_span: 1
visibility:
- condition: state
entity: binary_sensor.minnesota_wild_inhibit
state: 'off'
- type: grid
cards:
- type: heading
heading: Motorsports
- type: custom:mushroom-template-card
primary: Hello, {{user}}
secondary: For the latest Formula 1 statistics, tap this card!
icon: fas:flag-checkered
icon_color: |-
{% if is_state('sensor.formula_one','PRE') %}
white
{% elif is_state('sensor.formula_one','IN') %}
green
{% elif is_state('sensor.formula_one','POST') %}
red
{% else %}
black
{% endif %}
badge_icon: |-
{% if is_state('sensor.formula_one','PRE') %}
mdi:car-clock
{% elif is_state('sensor.formula_one','IN') %}
mdi:car-multiple
{% elif is_state('sensor.formula_one','POST') %}
mdi:flag-checkered
{% else %}
mdi:close
{% endif %}
layout: horizontal
fill_container: false
multiline_secondary: false
tap_action:
action: navigate
navigation_path: /lovelace/formula-1
hold_action:
action: none
double_tap_action:
action: none
badge_color: |-
{% if is_state('sensor.formula_one','PRE') %}
grey
{% elif is_state('sensor.formula_one','IN') %}
green
{% elif is_state('sensor.formula_one','POST') %}
red
{% else %}
black
{% endif %}
column_span: 1
- type: grid
cards:
- type: heading
heading_style: title
heading: College Hockey
- type: custom:teamtracker-card
entity: sensor.michigan_wolverines_hockey
visibility:
- condition: state
entity: sensor.michigan_wolverines_hockey
state_not: NOT_FOUND
- condition: state
entity: sensor.michigan_wolverines_hockey
state_not: BYE
- condition: state
entity: binary_sensor.michigan_wolverines_hockey_inhibit
state: 'off'
show_league: false
- type: custom:teamtracker-card
entity: sensor.minnesota_golden_gophers_hockey
visibility:
- condition: state
entity: sensor.minnesota_golden_gophers_hockey
state_not: NOT_FOUND
- condition: state
entity: sensor.minnesota_golden_gophers_hockey
state_not: BYE
- condition: state
entity: binary_sensor.minnesota_golden_gophers_hockey_inhibit
state: 'off'
show_league: false
- type: custom:teamtracker-card
entity: sensor.minnesota_state_mavericks_hockey
visibility:
- condition: state
entity: sensor.minnesota_state_mavericks_hockey
state_not: NOT_FOUND
- condition: state
entity: sensor.minnesota_state_mavericks_hockey
state_not: BYE
- condition: state
entity: binary_sensor.minnesota_state_mavericks_hockey_inhibit
state: 'off'
show_league: false
column_span: 3
visibility:
- condition: or
conditions:
- condition: state
entity: binary_sensor.michigan_wolverines_hockey_inhibit
state: 'off'
- condition: state
entity: binary_sensor.minnesota_golden_gophers_hockey_inhibit
state: 'off'
- condition: state
entity: binary_sensor.minnesota_state_mavericks_hockey_inhibit
state: 'off'
max_columns: 5
cards: []
- theme: Backend-selected
title: Formula 1
path: formula-1
icon: fas:flag-checkered
subview: true
badges: []
cards:
- type: custom:stack-in-card
cards:
- type: custom:formulaone-card
card_type: next_race
title: Next Race
date_locale: us
image_clickable: false
- type: custom:formulaone-card
card_type: countdown
f1_font: true
- type: custom:formulaone-card
card_type: results
title: Results
standings:
show_flag: true
show_team: true
show_teamlogo: true
- type: custom:formulaone-card
card_type: constructor_standings
title: Constructor Standings
standings:
show_teamlogo: true
- type: custom:formulaone-card
card_type: driver_standings
title: Driver Standings
standings:
show_team: true
show_teamlogo: true
- type: custom:formulaone-card
card_type: schedule
standings:
show_flag: true
- title: House Stats
path: house-stats
icon: mdi:database
type: sections
sections:
- type: grid
cards:
- type: heading
heading: Batteries
- 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
- sensor.emma_bedroom_door_battery
- name: 'Window Sensors (min: {min}%, count: {count})'
secondary_info: Battery levels {range}%
icon: mdi:window-closed
entities:
- sensor.front_window_battery_1
- sensor.front_window_battery_2
- sensor.front_window_battery_3
- sensor.side_window_1_battery
- sensor.side_window_2_battery
- sensor.side_window_3_battery
- sensor.side_window_4_battery
- sensor.back_window_1_battery
- sensor.back_window_2_battery
- sensor.stairway_window_lower_battery
- sensor.stairway_window_upper_battery
- sensor.kitchen_big_window_battery
- sensor.kitchen_sink_window_battery
- sensor.mud_room_window_battery
- sensor.downstairs_bathroom_window_1_battery
- sensor.downstairs_bathroom_window_2_battery
- sensor.upstairs_bathroom_window_battery
- sensor.master_bedroom_window_1_battery
- sensor.master_bedroom_window_2_battery
- sensor.kallen_bedroom_window_1_battery
- sensor.kallen_bedroom_window_2_battery
- sensor.emma_bedroom_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: grid
cards:
- type: heading
heading: By The Numbers
- type: heading
icon: healthicons:health
heading: Health Checks
heading_style: subtitle
- type: custom:gauge-card-pro
segments:
- pos: 0
color: red
- pos: 50
color: '#FFA500'
- pos: 75
color: rgb(255, 255, 0)
- pos: 100
color: var(--green-color)
needle: true
gradient: true
titles:
primary:
value: Health Score
gradient_resolution: auto
entity: sensor.system_ha_global_health_score
min: 0
max: 100
round: small
- type: markdown
content: >
{% set e = 'sensor.system_ha_global_health_score' %} {% set hw =
state_attr(e, 'hardware_score') | int(0) %} {% set app =
state_attr(e, 'application_score') | int(0) %} {% set rec =
state_attr(e, 'recommendations') | default('', true) %} {% set
updates = state_attr(e, 'pending_updates') | default([], true) |
list %} {% set zombies = state_attr(e, 'zombie_count') | int(0) %}
{% set psi = state_attr(e, 'psi_available') | default(false, true)
%}
| Hardware | Application | | **{{ hw }}**/100 | **{{ app }}**/100
|
{% if updates | length > 0 %} 📦 {{ updates | length }} update(s)
pending — [Open Updates](/config/updates) {% endif %}
{% if zombies > 0 %} 🧟 {{ zombies }} zombie(s) — [Check
Entities](/config/entities) {% endif %}
{% if rec not in [none, 'unknown', 'unavailable'] and '✅' not in
rec %} {% else %} --- ✅ System healthy. No recommendations. {%
endif %}
**Metric source**: {% if psi %}🟢 PSI active (CPU + RAM + I/O +
Disk) — hardware score uses 4 components{% else %}⚙️ Classic
sensors (CPU + RAM + Disk) — hardware score uses 3 components{%
endif %}
- type: heading
icon: mdi:counter
heading: Entity Counters
heading_style: subtitle
- type: custom:auto-entities
card:
type: entities
show_header_toggle: false
filter:
include:
- name: Number of*
- name: Lines of Code
exclude:
- options: {}
integration: 906ce55dd1bd3e27336a7049f329149b
sort:
method: state
reverse: true
numeric: true
- type: heading
icon: mdi:database
heading: Databases
heading_style: subtitle
- type: entities
entities:
- entity: sensor.mariadb_database_size
name: MariaDB
show_header_toggle: false
state_color: true
- type: grid
cards:
- type: heading
heading: Usage Stats
- type: entities
entities:
- entity: sensor.basement_tv_time
name: Basement TV Time (24h)
- entity: sensor.living_room_tv_time
name: Living Room TV Time (24h)
- entity: sensor.master_bedroom_tv_time
name: Master Bedroom TV Time (24h)
- entity: sensor.outside_lights
name: Outside Lights (24h)
- entity: sensor.windows_open_time
name: Windows Open (24h)
- entity: sensor.doors_open_time
name: Doors Open (24h)
- entity: sensor.emma_a_c_compressor_time
name: Emma A/C Compressor (24h)
- entity: sensor.emma_a_c_fan_time
name: Emma A/C Fan (24h)
- entity: sensor.master_bedroom_a_c_compressor_time
name: MB A/C Compressor (24h)
- entity: sensor.master_bedroom_a_c_fan_time
name: MB A/C Fan (24h)
- entity: sensor.basement_fan_time
name: Basement Fan (24h)
- entity: sensor.kallen_fan_time
name: Kallen Fan (24h)
- entity: sensor.master_bedroom_fan_time
name: MB Fan (24h)
show_header_toggle: false
state_color: true
- type: grid
cards:
- type: heading
heading: Network Stats
- type: entities
entities:
- entity: binary_sensor.internet
- entity: sensor.internet_round_trip_time_minimum
name: Min Ping
- entity: sensor.internet_round_trip_time_average
name: Avg Ping
- entity: sensor.internet_round_trip_time_maximum
name: Max Ping
show_header_toggle: false
state_color: true
- type: entities
entities:
- entity: sensor.speedtest_download
name: Download
- entity: sensor.speedtest_upload
name: Upload
- entity: sensor.speedtest_ping
name: Ping
- type: entities
entities:
- entity: sensor.mosquitto_received_1min
- entity: sensor.mosquitto_received_5min
- entity: sensor.mosquitto_received_15min
- entity: sensor.mosquitto_sent_1min
- entity: sensor.mosquitto_sent_5min
- entity: sensor.mosquitto_sent_15min
show_header_toggle: false
state_color: true
- type: grid
cards:
- type: heading
heading: Proxmox VE - Down
- type: custom:auto-entities
card:
type: entities
show_header_toggle: false
state_color: true
filter:
include:
- entity_id: binary_sensor.basement_server_*
state: 'off'
exclude:
- name: Browser*
- entity_id: binary_sensor.basement_server_chrome*
- entity_id: binary_sensor.basement_server_on
sort:
method: entity_id
reverse: false
numeric: true
ignore_case: false
- type: grid
cards:
- type: heading
heading: Uptime Kuma - Down
- type: custom:auto-entities
card:
type: entities
filter:
include:
- options: {}
integration: 01KCMZH58AAJZTZCY1KQNGD3BB
domain: sensor
entity_id: '*status'
state: down
exclude: []
sort:
method: friendly_name
reverse: false
numeric: false
ignore_case: true
show_empty: false
visibility:
- condition: numeric_state
entity: sensor.services_down
above: 0
max_columns: 4
cards: []
- title: Testing
path: testing
icon: mdi:test-tube
type: sections
sections:
- type: grid
cards:
- type: heading
heading: Presence
- type: entities
entities:
- entity: sensor.people_at_home
- entity: binary_sensor.tony_presence
- entity: binary_sensor.tina_presence
- entity: binary_sensor.kallen_presence
- entity: sensor.tony_location
- entity: sensor.tina_location
- entity: sensor.kallen_location
- entity: input_boolean.kallen_at_school
- entity: binary_sensor.tony_home
- entity: binary_sensor.tina_home
- entity: binary_sensor.kallen_home
- entity: binary_sensor.nerds_home
- entity: binary_sensor.parents_home
- entity: binary_sensor.family_home
- entity: group.family
- entity: group.adults
- entity: device_tracker.tony_s_iphone
- entity: device_tracker.tony_s_iphone_app
- entity: device_tracker.tinas_iphone
- entity: device_tracker.tinas_iphone_app
- entity: device_tracker.kallen_iphone
- entity: device_tracker.kallen_iphone_app
- entity: binary_sensor.people_present
- entity: sensor.last_outdoor_presence_trigger
show_header_toggle: false
state_color: true
- type: grid
cards:
- type: heading
heading: Misc
- type: entities
state_color: true
entities:
- entity: input_boolean.tony_awake
- entity: input_boolean.tina_awake
- entity: input_boolean.kallen_awake
- entity: input_boolean.emma_awake
- entity: sensor.services_down
- entity: sensor.room_presence
- entity: sensor.last_alexa_name
- entity: sensor.last_alexa_serial
- entity: sensor.last_alexa_entity_id
- entity: sensor.tony_current_age
- entity: sensor.tina_current_age
- entity: sensor.kallen_current_age
- entity: sensor.emma_current_age
- entity: sensor.birthdays_today
- entity: sensor.total_age_years
- entity: binary_sensor.people_sleeping
- entity: sensor.people_sleeping_total
- entity: sensor.second_floor_plugs_current
- entity: sensor.first_floor_plugs_current
- entity: sensor.basement_plugs_current
show_header_toggle: false
- type: entities
entities:
- entity: sensor.bedrooms_max_temp
visibility:
- condition: numeric_state
entity: sensor.bedrooms_max_temp
above: 50
- condition: user
users:
- f387a983651a4321a7411ff8cf36f949
- 879b4c04e32841b3ad1d2763a11b4e70
- c3909d27048140729f002aaef0391775
- type: custom:twitch-followed-live-streams-card
global_credentials_user_name: ironnerd24
global_credentials_access_token: byewyefnhuigdv2t6bu4172tqggpy9
global_credentials_client_id: 5p6hri1olv96he0umxchi8vuh7el39
streams_limit_count: 8
streams_image_show: true
streams_show_viewers: true
streams_show_title: false
streams_vip:
- fuzhpuzy
- manasen
- misami_desu
- kobegriffin23
- type: grid
cards:
- type: heading
heading: Sports
- type: entities
entities:
- entity: switch.watching_sports
- entity: select.active_sporting_event
- entity: select.sports_room
name: Active Room
- entity: number.team_score
- entity: number.opponent_score
show_header_toggle: false
state_color: true
- type: custom:auto-entities
card:
type: entities
show_header_toggle: false
state_color: true
filter:
include:
- label: sports
domain: binary_sensor
sort:
method: entity_id
reverse: false
numeric: true
ignore_case: false
- type: grid
cards:
- type: heading
heading: Card Templating
- type: custom:card-templater
card:
type: entities
show_header_toggle: false
columns: 2
title: Card Templater
entities:
- entity: person.tony_stork
name_template: >-
{{ "Stupid" if
is_state('input_boolean.early_night_mode','on') else "Not
Stupid" }}
- type: custom:bubble-card
card_type: button
button_type: state
entity: weather.iron_nerd_weather_station
modules:
- weather_forecast
weather_forecast:
type: daily
tap_action:
action: navigate
navigation_path: /lovelace/weather
button_action:
tap_action:
action: navigate
navigation_path: /lovelace/weather
rows: '1'
name: Defiance
show_state: true
show_attribute: true
attribute: temperature
- type: custom:mass-player-card
entities:
- media_player.living_room_tv_3
- media_player.basement_tv_5
expressive_scheme: vibrant
default_section: music_player
player:
hide:
player_selector: false
media_browser:
default_enqueue_mode: add_to_queue
recommendations: {}
panel: false
expressive: true
download_local: false
queue:
show_artist_names: true
- type: custom:gauge-card-pro
segments:
- pos: 0
color: rgba(100,0,120,0.8)
- pos: 32
color: rgba(0,0,139,0.8)
- pos: 41
color: rgba(0,71,171,0.8)
- pos: 50
color: rgba(30,144,255,0.8)
- pos: 61
color: rgba(100,149,237,0.8)
- pos: 68
color: rgba(60,179,113,0.8)
- pos: 73
color: rgba(152,251,152,0.8)
- pos: 80
color: rgba(255,215,0,0.8)
- pos: 95
color: rgba(178,34,34,0.8)
- pos: 100
color: rgba(139,0,0,0.8)
needle: true
gradient: true
titles:
primary: >-
{{ state_attr(entity, 'friendly_name') | replace(' Temperature',
'') }}
gradient_resolution: auto
entity: sensor.home_tempest_temperature
min: 0
max: 100
round: full
- type: custom:gauge-card-pro
segments:
- pos: 50
color: rgba(30,144,255,0.8)
- pos: 61
color: rgba(100,149,237,0.8)
- pos: 68
color: rgba(60,179,113,0.8)
- pos: 73
color: rgba(152,251,152,0.8)
- pos: 78
color: rgba(255,223,186,0.8)
- pos: 80
color: rgba(255,215,0,0.8)
- pos: 90
color: rgba(178,34,34,0.8)
needle: true
gradient: true
titles:
primary: >-
{{ state_attr(entity, 'friendly_name') | replace(' Temperature',
'') }}
gradient_resolution: auto
entity: sensor.basement_studio_temperature
min: 50
max: 90
round: full
setpoint:
type: template
value: '{{ state_attr(''climate.basement_studio_vtherm'',''temperature'') }}'
label: true
precision: 0
min_indicator:
type: entity
value: input_number.basement_studio_cold_threshold
label: true
opacity: 0
max_indicator:
type: entity
value: input_number.basement_studio_hot_threshold
opacity: 0
label: true
- type: grid
cards:
- type: heading
heading: Diagnostics Feed
- type: custom:home-feed-card
card_id: diag_feed
show_empty: false
id_filter: ^diag_feed_.*
more_info_on_tap: true
state_color: true
entities:
- entity: automation.family_has_arrived
- entity: automation.family_has_left
- entity: automation.presence_disconnect_protection
- entity: automation.icloud3_restart
- entity: automation.basement_led_strip_reset
- entity: binary_sensor.lightning_warning
- entity: binary_sensor.raining
name: Raining
- entity: sensor.total_rain_sensors
- type: grid
cards:
- type: heading
heading: Alarm Clock Testing
- type: entities
entities:
- entity: input_boolean.master_bedroom_alarm_clock
- entity: input_datetime.master_bedroom_alarm_clock
- entity: input_boolean.kallen_alarm_clock
- entity: input_datetime.kallen_alarm_clock
- entity: input_boolean.emma_alarm_clock
- entity: input_datetime.emma_alarm_clock
show_header_toggle: false
state_color: true
- type: grid
cards:
- type: heading
heading: Testing Entities
- type: entities
entities:
- entity: input_datetime.time_testing
- entity: input_datetime.date_testing
- entity: input_datetime.datetime_testing
- entity: input_text.text_testing
- entity: input_text.password_testing
- entity: input_select.select_testing
- entity: input_boolean.toggle_testing
- entity: input_number.number_box_test
- entity: input_number.number_slider_test
- entity: switch.power_tester
- entity: sensor.power_tester_power
- entity: sensor.power_tester_current
- entity: sensor.power_tester_voltage
show_header_toggle: false
state_color: true
- type: grid
cards:
- type: heading
heading: Time of Day Sensors
- type: entities
entities:
- entity: binary_sensor.day
- entity: binary_sensor.after_midnight
- entity: binary_sensor.early_morning
- entity: binary_sensor.morning
- entity: binary_sensor.late_morning
- entity: binary_sensor.midday
- entity: binary_sensor.evening
- entity: binary_sensor.night
- entity: binary_sensor.overnight
- entity: binary_sensor.quiet_time
show_header_toggle: false
state_color: true
max_columns: 4
cards: []
background: {}
- title: Weather
path: weather
type: sections
sections:
- type: grid
cards:
- type: heading
heading: Weather Alerts
heading_style: title
icon: mdi:cloud-alert
- type: markdown
title: Weather Alerts (Summary)
content: >
{% set alerts =
state_attr('sensor.weatheralerts_defiance_ohz004_ohc039',
'alerts') or [] %} {% if alerts|length == 0 %} No active alerts.
{% else %} {% for alert in alerts[:5] %}
{% endfor %} {% endif %}
- type: markdown
title: Weather Alerts Status
content: >
{% set errs =
state_attr('sensor.weatheralerts_defiance_ohz004_ohc039', 'error')
or [] %} {% if errs|length == 0 %} **Status:** Unknown {% else %} {% set err = errs[0] %}
{% if err.get('type') == 'success' %} **Status:** **OK** {% else %} **Status:** **Error** **Type:** {{ err.get('type','') }}
**Status:** {{ err.get('status','') }} **Message:** {{
err.get('message','') }} **Time:** {{ err.get('timestamp','') }}
{% endif %} {% endif %}
visibility:
- condition: numeric_state
entity: sensor.weatheralerts_defiance_ohz004_ohc039
above: 0
- type: grid
cards:
- type: heading
heading: Lightning
heading_style: title
icon: mdi:lightning-bolt
- type: custom:blitzortung-lightning-card
distance_entity: sensor.blitzortung_lightning_distance
counter_entity: sensor.blitzortung_lightning_counter
azimuth_entity: sensor.blitzortung_lightning_azimuth
lightning_detection_radius: 40
period: 1h
grid_color: var(--primary-text-color)
strike_color: var(--error-color)
card_section_order:
- map
- compass_radar
- history_chart
always_show_full_card: false
- type: grid
cards:
- type: heading
heading: Radar
heading_style: title
icon: mdi:radar
- type: custom:weather-radar-card
map_style: Dark
center_latitude: 41.281681
marker_latitude: 41.281681
center_longitude: -84.369331
marker_longitude: -84.369331
show_marker: true
show_scale: true
show_playback: true
show_zoom: true
show_range: false
square_map: true
show_recenter: true
extra_labels: false
data_source: RainViewer-NEXRAD
zoom_level: 7
visibility:
- condition: screen
media_query: '(min-width: 768px)'
- type: grid
cards:
- type: heading
heading: Forecasts
heading_style: title
icon: mdi:sun-clock
- type: custom:weather-chart-card
entity: weather.iron_nerd_weather_station
show_main: true
show_temperature: true
show_current_condition: true
show_attributes: true
show_time: true
show_time_seconds: false
show_day: true
show_date: false
show_humidity: true
show_pressure: true
show_wind_direction: true
show_wind_speed: true
show_sun: true
show_visibility: true
show_dew_point: true
show_feels_like: false
use_12hour_format: true
icons_size: 25
animated_icons: true
icon_style: style1
forecast:
precipitation_type: rainfall
show_probability: true
labels_font_size: '11'
precip_bar_size: '100'
style: style1
show_wind_forecast: true
condition_icons: true
round_temp: false
type: daily
number_of_forecasts: '0'
disable_animation: false
units:
pressure: ''
speed: ''
uv: sensor.home_uv_index
show_wind_gust_speed: true
show_last_changed: true
- type: custom:weather-chart-card
entity: weather.home
show_main: false
show_temperature: false
show_current_condition: false
show_attributes: false
show_time: false
show_time_seconds: false
show_day: false
show_date: false
show_humidity: false
show_pressure: false
show_wind_direction: false
show_wind_speed: false
show_sun: false
show_feels_like: false
use_12hour_format: true
icons_size: 25
animated_icons: false
icon_style: style1
forecast:
precipitation_type: rainfall
show_probability: false
labels_font_size: '11'
precip_bar_size: '100'
style: style1
show_wind_forecast: true
condition_icons: true
round_temp: false
type: hourly
number_of_forecasts: '0'
units:
pressure: ''
speed: ''
- type: grid
cards:
- type: heading
heading: SPC Outlooks
heading_style: title
icon: fas:tornado
- type: vertical-stack
cards:
- type: grid
columns: 4
square: false
cards:
- type: markdown
content: '**Risk**'
- type: custom:mushroom-template-card
primary: Day 1
fill_container: true
secondary: >-
{{
as_local(strptime(state_attr('sensor.spc_outlook_day_1',
'valid')+'+0000', '%Y%m%d%H%M%z')).strftime('%a %d %H:%M')
}}
{{
as_local(strptime(state_attr('sensor.spc_outlook_day_1',
'expire')+'+0000', '%Y%m%d%H%M%z')).strftime('%a %d
%H:%M') }}
card_mod:
style:
mushroom-state-info$: |
.container {
--card-secondary-font-size: 9px;
}
.secondary {
white-space: break-spaces !important;
word-wrap: break-word;
overflow-wrap: break-word;
-webkit-hyphens: auto;
-moz-hyphens: auto;
hyphens: auto;
}
- type: custom:mushroom-template-card
primary: Day 2
fill_container: true
secondary: >-
{{
as_local(strptime(state_attr('sensor.spc_outlook_day_2',
'valid')+'+0000', '%Y%m%d%H%M%z')).strftime('%a %d %H:%M')
}}
{{
as_local(strptime(state_attr('sensor.spc_outlook_day_2',
'expire')+'+0000', '%Y%m%d%H%M%z')).strftime('%a %d
%H:%M') }}
card_mod:
style:
mushroom-state-info$: |
.container {
--card-secondary-font-size: 9px;
}
.secondary {
white-space: break-spaces !important;
word-wrap: break-word;
overflow-wrap: break-word;
-webkit-hyphens: auto;
-moz-hyphens: auto;
hyphens: auto;
}
- type: custom:mushroom-template-card
primary: Day 3
fill_container: true
secondary: >-
{{
as_local(strptime(state_attr('sensor.spc_outlook_day_3',
'valid')+'+0000', '%Y%m%d%H%M%z')).strftime('%a %d %H:%M')
}}
{{
as_local(strptime(state_attr('sensor.spc_outlook_day_3',
'expire')+'+0000', '%Y%m%d%H%M%z')).strftime('%a %d
%H:%M') }}
card_mod:
style:
mushroom-state-info$: |
.container {
--card-secondary-font-size: 9px;
}
.secondary {
white-space: break-spaces !important;
word-wrap: break-word;
overflow-wrap: break-word;
-webkit-hyphens: auto;
-moz-hyphens: auto;
hyphens: auto;
}
- type: grid
columns: 4
square: false
cards:
- type: custom:mushroom-template-card
icon: mdi:weather-lightning
icon_color: white
layout: vertical
fill_container: true
primary: Categorical
tap_action:
action: more-info
card_mod:
style:
mushroom-shape-icon$: |
.shape {
--icon-symbol-size: 40px;
--icon-size: 100px;
left: -20px;
top: -35px;
margin-bottom: -80px;
border-radius: 50% !important;
}
mushroom-state-info$: |
.container {
--card-primary-font-size: 10px;
--card-primary-color: white;
}
.: |
ha-card {
overflow: hidden;
}
- type: custom:mushroom-template-card
entity: sensor.spc_outlook_day_1_outlook_day
primary: '{{ states(''sensor.spc_outlook_day_1'') }}'
layout: vertical
fill_container: true
card_mod:
style:
mushroom-state-info$: |
.container {
--card-primary-font-size: 12px;
{% if not is_state('sensor.spc_outlook_day_1', 'No Risk') %}
--card-primary-color: black;
{% endif %}
}
.primary {
white-space: normal !important;
word-wrap: break-word;
overflow-wrap: break-word;
-webkit-hyphens: auto;
-moz-hyphens: auto;
hyphens: auto;
}
.: |
ha-card {
background-color: {{ state_attr('sensor.spc_outlook_day_1', 'categorical_fill') }}
}
- type: custom:mushroom-template-card
entity: sensor.spc_outlook_day_2
primary: '{{ states(''sensor.spc_outlook_day_2'') }}'
layout: vertical
fill_container: true
card_mod:
style:
mushroom-state-info$: |
.container {
--card-primary-font-size: 12px;
{% if not is_state('sensor.spc_outlook_day_2', 'No Risk') %}
--card-primary-color: black;
{% endif %}
}
.primary {
white-space: normal !important;
word-wrap: break-word;
overflow-wrap: break-word;
-webkit-hyphens: auto;
-moz-hyphens: auto;
hyphens: auto;
}
.: |
ha-card {
background-color: {{ state_attr('sensor.spc_outlook_day_2', 'categorical_fill') }}
}
- type: custom:mushroom-template-card
entity: sensor.spc_outlook_day_3
primary: '{{ states(''sensor.spc_outlook_day_3'') }}'
layout: vertical
fill_container: true
card_mod:
style:
mushroom-state-info$: |
.container {
--card-primary-font-size: 12px;
{% if not is_state('sensor.spc_outlook_day_3', 'No Risk') %}
--card-primary-color: black;
{% endif %}
}
.primary {
white-space: normal !important;
word-wrap: break-word;
overflow-wrap: break-word;
-webkit-hyphens: auto;
-moz-hyphens: auto;
hyphens: auto;
}
.: |
ha-card {
background-color: {{ state_attr('sensor.spc_outlook_day_3', 'categorical_fill') }}
}
- type: grid
columns: 4
square: false
cards:
- type: custom:mushroom-template-card
icon: mdi:weather-windy
icon_color: cyan
layout: vertical
fill_container: true
primary: Wind
card_mod:
style:
mushroom-shape-icon$: |
.shape {
--icon-symbol-size: 40px;
--icon-size: 100px;
left: -20px;
top: -45px;
margin-bottom: -80px;
border-radius: 50% !important;
}
mushroom-state-info$: |
.container {
--card-primary-font-size: 10px;
--card-primary-color: cyan;
}
.: |
ha-card {
overflow: hidden;
}
- type: custom:mushroom-template-card
entity: sensor.spc_outlook_day_1
primary: >-
{{ state_attr('sensor.spc_outlook_day_1',
'wind_probability') }}
layout: vertical
fill_container: true
card_mod:
style:
mushroom-state-info$: |
.container {
--card-primary-font-size: 12px;
{% if state_attr('sensor.spc_outlook_day_1', 'wind_probability') != 'No Risk' %}
--card-primary-color: black;
{% endif %}
}
.primary {
white-space: normal !important;
}
.: |
ha-card {
background-color: {{ state_attr('sensor.spc_outlook_day_1', 'wind_fill') }}
}
- type: custom:mushroom-template-card
entity: sensor.spc_outlook_day_2
primary: >-
{{ state_attr('sensor.spc_outlook_day_2',
'wind_probability') }}
layout: vertical
fill_container: true
card_mod:
style:
mushroom-state-info$: |
.container {
--card-primary-font-size: 12px;
{% if state_attr('sensor.spc_outlook_day_2', 'wind_probability') != 'No Risk' %}
--card-primary-color: black;
{% endif %}
}
.primary {
white-space: normal !important;
}
.: |
ha-card {
background-color: {{ state_attr('sensor.spc_outlook_day_2', 'wind_fill') }}
}
- type: vertical-stack
cards:
- type: custom:mushroom-template-card
primary: Day 4
secondary: '{{ states(''sensor.spc_outlook_day_4'') }}'
card_mod:
style:
mushroom-state-info$: |
.container {
--card-primary-font-size: 12px;
--card-secondary-font-size: 9px;
{% if not is_state('sensor.spc_outlook_day_4', 'No Risk') %}
--card-primary-color: black;
--card-secondary-color: black;
{% endif %}
}
.primary {
white-space: normal !important;
word-wrap: break-word;
overflow-wrap: break-word;
-webkit-hyphens: auto;
-moz-hyphens: auto;
hyphens: auto;
}
.: |
ha-card {
background-color: {{ state_attr('sensor.spc_outlook_day_4', 'probabilistic_fill') }}
}
- type: custom:mushroom-template-card
primary: Day 5
secondary: '{{ states(''sensor.spc_outlook_day_5'') }}'
card_mod:
style:
mushroom-state-info$: |
.container {
--card-primary-font-size: 12px;
--card-secondary-font-size: 9px;
{% if not is_state('sensor.spc_outlook_day_5', 'No Risk') %}
--card-primary-color: black;
--card-secondary-color: black;
{% endif %}
}
.primary {
white-space: normal !important;
word-wrap: break-word;
overflow-wrap: break-word;
-webkit-hyphens: auto;
-moz-hyphens: auto;
hyphens: auto;
}
.: |
ha-card {
background-color: {{ state_attr('sensor.spc_outlook_day_5', 'probabilistic_fill') }}
}
- type: grid
columns: 4
square: false
cards:
- type: custom:mushroom-template-card
icon: mdi:weather-tornado
icon_color: red
layout: vertical
fill_container: true
primary: Tornado
card_mod:
style:
mushroom-shape-icon$: |
.shape {
--icon-symbol-size: 40px;
--icon-size: 100px;
left: -20px;
top: -45px;
margin-bottom: -80px;
border-radius: 50% !important;
}
mushroom-state-info$: |
.container {
--card-primary-font-size: 10px;
--card-primary-color: red;
}
.: |
ha-card {
overflow: hidden;
}
- type: custom:mushroom-template-card
entity: sensor.spc_outlook_day_1
primary: >-
{{ state_attr('sensor.spc_outlook_day_1',
'torn_probability') }}
layout: vertical
fill_container: true
card_mod:
style:
mushroom-state-info$: |
.container {
--card-primary-font-size: 12px;
{% if state_attr('sensor.spc_outlook_day_1', 'torn_probability') != 'No Risk' %}
--card-primary-color: black;
{% endif %}
}
.primary {
white-space: normal !important;
}
.: |
ha-card {
background-color: {{ state_attr('sensor.spc_outlook_day_1', 'torn_fill') }}
}
- type: custom:mushroom-template-card
entity: sensor.spc_outlook_day_2
primary: >-
{{ state_attr('sensor.spc_outlook_day_2',
'torn_probability') }}
layout: vertical
fill_container: true
card_mod:
style:
mushroom-state-info$: |
.container {
--card-primary-font-size: 12px;
{% if state_attr('sensor.spc_outlook_day_2', 'torn_probability') != 'No Risk' %}
--card-primary-color: black;
{% endif %}
}
.primary {
white-space: normal !important;
}
.: |
ha-card {
background-color: {{ state_attr('sensor.spc_outlook_day_2', 'torn_fill') }}
}
- type: vertical-stack
cards:
- type: custom:mushroom-template-card
primary: Day 6
secondary: '{{ states(''sensor.spc_outlook_day_6'') }}'
card_mod:
style:
mushroom-state-info$: |
.container {
--card-primary-font-size: 12px;
--card-secondary-font-size: 9px;
{% if not is_state('sensor.spc_outlook_day_6', 'No Risk') %}
--card-primary-color: black;
--card-secondary-color: black;
{% endif %}
}
.primary {
white-space: normal !important;
word-wrap: break-word;
overflow-wrap: break-word;
-webkit-hyphens: auto;
-moz-hyphens: auto;
hyphens: auto;
}
.: |
ha-card {
background-color: {{ state_attr('sensor.spc_outlook_day_6', 'probabilistic_fill') }}
}
- type: custom:mushroom-template-card
primary: Day 7
secondary: '{{ states(''sensor.spc_outlook_day_7'') }}'
card_mod:
style:
mushroom-state-info$: |
.container {
--card-primary-font-size: 12px;
--card-secondary-font-size: 9px;
{% if not is_state('sensor.spc_outlook_day_7', 'No Risk') %}
--card-primary-color: black;
--card-secondary-color: black;
{% endif %}
}
.primary {
white-space: normal !important;
word-wrap: break-word;
overflow-wrap: break-word;
-webkit-hyphens: auto;
-moz-hyphens: auto;
hyphens: auto;
}
.: |
ha-card {
background-color: {{ state_attr('sensor.spc_outlook_day_7', 'probabilistic_fill') }}
}
- type: grid
columns: 4
square: false
cards:
- type: custom:mushroom-template-card
icon: mdi:weather-hail
icon_color: blue
layout: vertical
fill_container: true
primary: Hail
card_mod:
style:
mushroom-shape-icon$: |
.shape {
--icon-symbol-size: 40px;
--icon-size: 100px;
left: -20px;
top: -40px;
margin-bottom: -80px;
border-radius: 50% !important;
}
mushroom-state-info$: |
.container {
--card-primary-font-size: 10px;
--card-primary-color: #2196F2;
}
.: |
ha-card {
overflow: hidden;
}
- type: custom:mushroom-template-card
entity: sensor.spc_outlook_day_1
primary: >-
{{ state_attr('sensor.spc_outlook_day_1',
'hail_probability') }}
layout: vertical
fill_container: true
card_mod:
style:
mushroom-state-info$: |
.container {
--card-primary-font-size: 12px;
{% if state_attr('sensor.spc_outlook_day_1', 'hail_probability') != 'No Risk' %}
--card-primary-color: black;
{% endif %}
}
.primary {
white-space: normal !important;
}
.: |
ha-card {
background-color: {{ state_attr('sensor.spc_outlook_day_1', 'hail_fill') }}
}
- type: custom:mushroom-template-card
entity: sensor.spc_outlook_day_2
primary: >-
{{ state_attr('sensor.spc_outlook_day_2',
'hail_probability') }}
layout: vertical
fill_container: true
card_mod:
style:
mushroom-state-info$: |
.container {
--card-primary-font-size: 12px;
{% if state_attr('sensor.spc_outlook_day_2', 'hail_probability') != 'No Risk' %}
--card-primary-color: black;
{% endif %}
}
.primary {
white-space: normal !important;
}
.: |
ha-card {
background-color: {{ state_attr('sensor.spc_outlook_day_2', 'hail_fill') }}
}
- type: vertical-stack
cards:
- type: custom:mushroom-template-card
primary: Day 8
secondary: '{{ states(''sensor.spc_outlook_day_8'') }}'
card_mod:
style:
mushroom-state-info$: |
.container {
--card-primary-font-size: 12px;
--card-secondary-font-size: 9px;
{% if not is_state('sensor.spc_outlook_day_8', 'No Risk') %}
--card-primary-color: black;
--card-secondary-color: black;
{% endif %}
}
.primary {
white-space: normal !important;
word-wrap: break-word;
overflow-wrap: break-word;
-webkit-hyphens: auto;
-moz-hyphens: auto;
hyphens: auto;
}
.: |
ha-card {
background-color: {{ state_attr('sensor.spc_outlook_day_8', 'probabilistic_fill') }}
}
- type: custom:mushroom-template-card
primary: ...
card_mod:
style:
mushroom-state-info$: |
.container {
--card-primary-font-size: 12px;
}
.primary {
white-space: normal !important;
word-wrap: break-word;
overflow-wrap: break-word;
-webkit-hyphens: auto;
-moz-hyphens: auto;
hyphens: auto;
}
.: |
ha-card {
background-color: #000000;
}
- type: grid
cards:
- type: heading
heading: Temperature
heading_style: title
icon: mdi:thermometer
- type: custom:mini-graph-card
entities:
- sensor.home_tempest_temperature
name: Temperature (24h)
points_per_hour: 1
- type: custom:mini-graph-card
entities:
- sensor.pirateweather_apparent_temperature
name: Feels Like (24h)
points_per_hour: 1
- type: custom:comfortable-environment-card
name: Room Name
temperature_sensor: sensor.home_temperature
humidity_sensor: sensor.home_relative_humidity
display_precision: 0
show_index: ALL
room_name: Outdoor Comfort Level
- type: entities
entities:
- entity: sensor.thermal_comfort_frostrisk
name: Frost Risk
- entity: sensor.thermal_comfort_frostpoint
name: Frost Point
- entity: sensor.thermal_comfort_simmerindex
name: Simmer Index
- entity: sensor.thermal_comfort_simmerzone
name: Simmer Zone
- entity: sensor.thermal_comfort_absolutehumidity
name: Absolute Humidity
- entity: sensor.thermal_comfort_perception
name: Thermal Perception
title: Thermal Comfort
show_header_toggle: false
state_color: true
- type: grid
cards:
- type: heading
heading: Other Stats
heading_style: title
icon: mdi:weather-windy
- type: custom:windrose-card
title: Wind Rose
refresh_interval: 300
windspeed_bar_location: bottom
buttons_config:
location: top
buttons:
- type: period_selector
button_text: 1 Hour
period_back: '-1h'
- type: period_selector
button_text: 8 Hours
period_back: '-8h'
- type: period_selector
active: true
button_text: 1 Day
period_back: '-1d'
- type: period_selector
button_text: 10 Days
period_back: '-10d'
- type: period_shift_play
period_back: '-1w'
button_text: Play
step_period: +3h
window_period: +10d
delay: 50
use_statistics: true
statistics_period: hour
wind_direction_entity:
entity: sensor.home_wind_direction_degrees
windspeed_entities:
- entity: sensor.home_wind_speed
name: Wind
speed_range_beaufort: false
speed_unit: mph
output_speed_unit: mph
output_speed_unit_label: mph
windspeed_bar_full: false
speed_ranges:
- from_value: 0
color: rgb(0,255,0)
- from_value: 5
color: yellow
- from_value: 10
color: hsl(200,100%,60%)
- from_value: 20
color: orange
- from_value: 40
color: red
- from_value: 60
color: purple
- entity: sensor.home_wind_gust
name: Gust
speed_range_beaufort: false
speed_unit: mph
output_speed_unit: mph
output_speed_unit_label: mph
windspeed_bar_full: false
speed_ranges:
- from_value: 0
color: rgb(0,255,0)
- from_value: 5
color: yellow
- from_value: 10
color: hsl(200,100%,60%)
- from_value: 20
color: orange
- from_value: 40
color: red
- from_value: 60
color: purple
direction_labels:
cardinal_direction_labels: NESW
show_intercardinal_directions: true
show_secondary_intercardinal_directions: true
matching_strategy:
- name: direction-first
current_direction:
show_arrow: true
corner_info:
top_left:
label: Speed
unit: ' mph'
entity: sensor.home_wind_speed
top_right:
unit: ' mph'
label: Gust
entity: sensor.home_wind_gust
bottom_left:
unit: °
label: Bearing
entity: sensor.home_wind_direction_degrees
text_blocks:
top:
text: |-
| Direction measure’s: | ${direction-count} | Minimal speed: | ${min-speed} |
| Speed measure’s.: | ${speed-1-count} | Maximum speed: | ${max-speed} |
| Match count: | ${match-count} | Average speed: | ${average-speed} |
| Period hours | ${period-hours} | Calm percentage: | ${calm-percentage}% |
| First match time | ${date-first-match}, ${time-first-match} | ||
| Last match time | ${date-last-match}, ${time-last-match} | ||
| Period start | ${start-date} - ${start-time} | ||
| Period end | ${end-date} - ${end-time} | ||