Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- wallpanel:
- enabled: true
- debug: false
- fullscreen: false
- idle_time: 0
- fade_in_time: 1
- black_screen_after_time: 0
- control_reactivation_time: 0
- screensaver_entity: input_boolean.${browser_id}_screensaver
- screensaver_stop_navigation_path: /lovelace/overview/
- image_url: media-source://media_source/local/wall-tablet
- image_fit: cover
- image_list_update_interval: 3600
- image_order: random
- display_time: 60
- crossfade_time: 1
- profile: device_${browser_id}
- profiles:
- device_wall_tablet_hallway:
- idle_time: 0
- title: ''
- background: var(--background-image)
- kiosk_mode:
- non_admin_settings:
- kiosk: true
- mobile_settings:
- hide_header: true
- sidebar:
- width:
- mobile: 0
- tablet: 25
- desktop: 20
- digitalClock: true
- digitalClockWithSeconds: false
- twelveHourVersion: true
- date: true
- dateFormat: dddd, MMMM DD
- period: false
- sidebarMenu:
- - action: navigate
- navigation_path: /lovelace/overview
- name: Overview
- active: true
- icon: mdi:view-dashboard
- - action: navigate
- navigation_path: /lovelace/lights
- name: Lights
- active: true
- icon: mdi:lightbulb-on
- - action: navigate
- navigation_path: /lovelace/music
- name: Music
- active: true
- icon: mdi:music
- - action: navigate
- navigation_path: /lovelace/calendar
- name: Calendar
- active: true
- icon: mdi:calendar
- - action: navigate
- navigation_path: /lovelace/security
- name: Security
- active: true
- icon: mdi:cctv
- - action: navigate
- navigation_path: /lovelace/system
- name: System
- active: true
- icon: mdi:cog
- bottomCard:
- type: custom:layout-card
- cardOptions:
- layout_type: custom:grid-layout
- cards:
- - type: custom:atomic-calendar-revive
- enableModeChange: true
- entities:
- - entity: calendar.holidays
- name: Holidays
- - entity: calendar.garbage_schedule
- name: Garbage Schedule
- - entity: calendar.birthdays
- name: Birthdays
- - entity: calendar.miscellaneous
- name: Miscellaneous
- defaultMode: Event
- hoursOnSameLine: true
- showMonth: false
- showAllDayHours: false
- showEventDate: true
- showCalendarName: false
- showLastCalendarWeek: false
- disableCalEventLink: false
- disableCalLocationLink: false
- showTimeRemaining: false
- showDatePerEvent: false
- showDate: false
- showLoader: false
- showRelativeTime: false
- compactMode: true
- showLocation: false
- showHours: false
- eventDateFormat: ddd D
- card_mod:
- style: |
- ha-card{
- box-shadow: none;
- border-top: 1px solid rgba(255, 255, 255, 0.2);
- border-radius: 0;
- padding: 0 !important;
- }
- ha-card .single-event-container{
- padding: 10px 0 !important;
- }
- ha-card .single-event-container:not(.daywrap):not(:first-child){
- padding-top: 0 !important;
- }
- ha-card .daywrap{
- border-top: 1px solid rgba(255, 255, 255, 0.2);
- }
- ha-card .event-left{
- width: 60px;
- }
- ha-card .single-event-container{
- line-height: 1.5em;
- }
- - type: conditional
- condition: and
- conditions:
- - condition: state
- entity: media_player.kabootlers_spotify
- state_not: idle
- - condition: state
- entity: media_player.kabootlers_spotify
- state_not: unavailable
- card:
- type: custom:bubble-card
- card_type: media-player
- entity: media_player.kabootlers_spotify
- hide:
- volume_button: true
- power_button: true
- next_button: true
- previous_button: true
- hideTopMenu: true
- style: |
- :host{
- --sidebar-background: var(--ha-card-background,var(--card-background-color,#fff));
- }
- :host .digitalClock{
- font-family: sans-serif;
- font-weight: 500;
- text-align: center;
- }
- :host .date{
- font-size: 20px;
- text-align: center;
- }
- :host .bottom layout-card{
- width: 100%;
- }
- views:
- - title: Overview
- path: overview
- type: sections
- sections:
- - type: grid
- cards:
- - type: heading
- heading: Outdoor Climate
- heading_style: title
- icon: ''
- - show_current: true
- show_forecast: true
- type: weather-forecast
- entity: weather.forecast_my_location
- forecast_type: daily
- name: My Location, My State
- column_span: 1
- - type: grid
- cards:
- - type: heading
- heading: Indoor Climate
- heading_style: title
- icon: ''
- - graph: line
- type: sensor
- detail: 1
- entity: sensor.house_temperature
- name: Temperature
- hours_to_show: 24
- - graph: line
- type: sensor
- detail: 1
- name: Humidity
- hours_to_show: 24
- entity: sensor.house_humidity
- - type: custom:mushroom-climate-card
- entity: climate.ecobee3lite
- name: Thermostat
- hvac_modes:
- - cool
- - 'off'
- - heat
- - heat_cool
- layout: horizontal
- show_temperature_control: false
- tap_action:
- action: more-info
- - type: grid
- cards:
- - type: heading
- heading: Modes
- heading_style: title
- icon: ''
- - type: tile
- tap_action:
- action: toggle
- entity: input_boolean.sleep_mode
- color: purple
- - type: tile
- entity: input_boolean.eco_mode
- tap_action:
- action: toggle
- color: green
- - type: tile
- tap_action:
- action: toggle
- entity: input_boolean.guest_mode
- color: teal
- - type: tile
- tap_action:
- action: toggle
- entity: input_boolean.away_mode
- color: primary
- - type: custom:mushroom-template-card
- primary: Focus Mode
- secondary: '{{ state_translated(''input_boolean.focus_mode'') }}'
- icon: mdi:bullseye-arrow
- tap_action:
- action: navigate
- navigation_path: '#focus-mode'
- icon_color: |-
- {% if is_state('input_boolean.focus_mode', 'on') %}
- yellow
- {% endif %}
- entity: input_boolean.focus_mode
- card_mod:
- style: |
- ha-state-icon{
- animation: {% if is_state('input_boolean.party_mode', 'on') %} wiggle 0.18s linear infinite;
- {% else %} none;
- {% endif %}
- }
- @keyframes wiggle{
- 0% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 25% {
- webkit-transform: rotate(5deg);
- transform: rotate(5deg);
- }
- 50% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 75% {
- webkit-transform: rotate(-5deg);
- transform: rotate(-5deg);
- }
- 100% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- }
- - type: tile
- tap_action:
- action: toggle
- color: deep-orange
- entity: input_boolean.vacation_mode
- - type: custom:mushroom-template-card
- primary: Party Mode
- secondary: '{{ state_translated(''input_boolean.party_mode'') }}'
- icon: mdi:party-popper
- tap_action:
- action: navigate
- navigation_path: '#party-mode'
- icon_color: |-
- {% if is_state('input_boolean.party_mode', 'on') %}
- pink
- {% endif %}
- card_mod:
- style: |
- ha-state-icon{
- animation: {% if is_state('input_boolean.party_mode', 'on') %} wiggle 0.18s linear infinite;
- {% else %} none;
- {% endif %}
- }
- @keyframes wiggle{
- 0% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 25% {
- webkit-transform: rotate(5deg);
- transform: rotate(5deg);
- }
- 50% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 75% {
- webkit-transform: rotate(-5deg);
- transform: rotate(-5deg);
- }
- 100% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- }
- - type: grid
- cards:
- - type: heading
- heading: Rooms & Areas
- heading_style: title
- icon: ''
- - type: custom:mushroom-template-card
- primary: Office
- secondary: >-
- {{ (states('sensor.thermostat_office_temperature_current') |
- round(1)) | string + " °F" }} / {{
- (states('sensor.thermostat_office_humidity_current') | round(1)) |
- string + "%" }}
- icon: mdi:briefcase
- tap_action:
- action: navigate
- navigation_path: '#office'
- icon_color: |-
- {% if is_state('light.all_office_lights', 'on') %}
- orange
- {% endif %}
- - type: custom:mushroom-template-card
- primary: Bedroom
- secondary: >-
- {{ (states('sensor.thermostat_main_bedroom_temperature_current') |
- round(1)) | string + " °F" }} / {{
- (states('sensor.thermostat_main_bedroom_humidity_current') |
- round(1)) | string + "%" }}
- icon: mdi:bed
- icon_color: |-
- {% if is_state('light.all_bedroom_lights', 'on') %}
- orange
- {% endif %}
- tap_action:
- action: navigate
- navigation_path: '#bedroom'
- badge_icon: |-
- {% if is_state('binary_sensor.bed_occupancy', 'on') %}
- mdi:sleep
- {% endif %}
- badge_color: |-
- {% if is_state('binary_sensor.bed_occupancy', 'on') %}
- purple
- {% endif %}
- - type: custom:mushroom-template-card
- primary: Living Room
- secondary: >-
- {{ (states('sensor.thermostat_living_room_temperature_current') |
- round(1)) | string + " °F" }} / {{
- (states('sensor.thermostat_living_room_humidity_current') |
- round(1)) | string + "%" }}
- icon: mdi:sofa
- tap_action:
- action: navigate
- navigation_path: '#living-room'
- icon_color: |-
- {% if is_state('light.all_living_room_lights', 'on') %}
- orange
- {% endif %}
- badge_icon: ''
- badge_color: ''
- - type: custom:mushroom-template-card
- primary: Kitchen
- secondary: >-
- {{ (states('sensor.thermostat_dining_room_temperature_current') |
- round(1)) | string + " °F" }} / {{
- (states('sensor.thermostat_dining_room_humidity_current') |
- round(1)) | string + "%" }}
- icon: mdi:chef-hat
- tap_action:
- action: navigate
- navigation_path: '#kitchen'
- icon_color: |-
- {% if is_state('light.all_kitchen_lights', 'on') %}
- orange
- {% endif %}
- badge_icon: >-
- {% if
- is_state('binary_sensor.kitchen_multisensor_motion_detection',
- 'on') %}
- mdi:run
- {% endif %}
- badge_color: >-
- {% if
- is_state('binary_sensor.kitchen_multisensor_motion_detection',
- 'on') %}
- blue
- {% endif %}
- multiline_secondary: false
- fill_container: false
- - type: custom:mushroom-template-card
- primary: Bathroom
- secondary: >-
- {{ (states('sensor.thermostat_main_bathroom_temperature_current')
- | round(1)) | string + " °F" }} / {{
- (states('sensor.thermostat_main_bathroom_humidity_current') |
- round(1)) | string + "%" }}
- icon: mdi:toilet
- tap_action:
- action: navigate
- navigation_path: '#bathroom'
- icon_color: |-
- {% if is_state('light.all_main_bathroom_lights', 'on') %}
- orange
- {% endif %}
- - type: custom:mushroom-template-card
- primary: Hallway
- secondary: >-
- {{ (states('sensor.thermostat_hallway_temperature_current') |
- round(1)) | string + " °F" }} / {{
- (states('sensor.thermostat_hallway_humidity_current') | round(1))
- | string + "%" }}
- icon: mdi:door
- tap_action:
- action: navigate
- navigation_path: '#hallway'
- icon_color: |-
- {% if is_state('light.all_hallway_lights', 'on') %}
- orange
- {% endif %}
- - type: custom:mushroom-template-card
- primary: Basement
- secondary: ''
- icon: mdi:stairs
- tap_action:
- action: navigate
- navigation_path: '#basement'
- icon_color: |-
- {% if is_state('light.all_basement_lights', 'on') %}
- orange
- {% endif %}
- - type: custom:mushroom-template-card
- primary: Garage
- secondary: ''
- icon: |-
- {% if is_state('cover.garage_door', 'open') %}
- mdi:garage-open
- {% else %}
- mdi:garage
- {% endif %}
- tap_action:
- action: navigate
- navigation_path: '#garage'
- icon_color: |-
- {% if is_state('cover.garage_door', 'open') %}
- red
- {% elif is_state('light.all_garage_lights', 'on') %}
- orange
- {% endif %}
- badge_color: ''
- badge_icon: ''
- - type: grid
- cards:
- - type: heading
- heading: Security
- heading_style: title
- icon: ''
- - type: custom:mushroom-alarm-control-panel-card
- entity: alarm_control_panel.alarmo
- states:
- - armed_home
- - armed_away
- - armed_night
- - armed_vacation
- show_keypad: false
- fill_container: false
- layout: horizontal
- name: Security
- - type: heading
- heading: Doors
- heading_style: title
- icon: ''
- - type: custom:mushroom-template-card
- primary: Side Door
- secondary: '{{ state_translated(''lock.side_door'') }}'
- icon: >-
- {% if is_state('lock.side_door', 'locked') %}
- mdi:lock
- {% elif is_state('lock.side_door', 'locking') or
- is_state('lock.side_door', 'unlocking') %}
- mdi:lock-clock
- {% elif is_state('lock.side_door', 'unlocked') %}
- mdi:lock-open-variant
- {% else %}
- mdi:lock-alert
- {% endif %}
- tap_action:
- action: toggle
- entity: lock.side_door
- icon_color: >-
- {% if is_state('lock.side_door', 'locked') %}
- green
- {% elif is_state('lock.side_door', 'locking') or
- is_state('lock.side_door', 'unlocking') %}
- orange
- {% else %}
- red
- {% endif %}
- fill_container: false
- layout: horizontal
- badge_icon: |-
- {% if is_state('binary_sensor.side_doorbell_person', 'on') %}
- mdi:walk
- {% endif %}
- badge_color: |-
- {% if is_state('binary_sensor.side_doorbell_person', 'on') %}
- blue
- {% endif %}
- - type: custom:mushroom-cover-card
- name: Garage Door
- show_buttons_control: true
- layout: horizontal
- show_position_control: false
- entity: cover.garage_door
- - type: grid
- cards:
- - type: heading
- heading: To-Do List
- heading_style: title
- badges: []
- icon: ''
- - type: todo-list
- entity: todo.to_do_list
- card_mod:
- style: |
- ha-card.type-todo-list{
- height: 256px;
- overflow-y: scroll;
- }
- ha-card .addRow{
- display: none;
- }
- ha-card .header{
- display: none;
- }
- ha-card .completed{
- display: none;
- }
- ha-card div[role="separator"]{
- display: none;
- }
- ha-card .empty{
- padding: 8px 32px;
- }
- - type: grid
- cards:
- - type: heading
- heading: Appliances
- heading_style: title
- icon: ''
- - type: custom:mushroom-template-card
- primary: Washer
- secondary: >-
- {{ states('sensor.washer_status') }} {% if
- is_state('sensor.washer_status', 'Washing') or
- is_state('sensor.washer_status', 'Rinsing') or
- is_state('sensor.washer_status', 'Spinning') or
- is_state('sensor.washer_status', 'Preparing') %}- {% set
- remaining_seconds =
- (as_timestamp(states('sensor.washer_washer_completion_time'))-as_timestamp(now()))|int
- %} {% set remaining_minutes = (remaining_seconds // 60) %} {{
- remaining_minutes }}m {% endif %}
- icon: mdi:washing-machine
- icon_color: >-
- {% if is_state('sensor.washer_status', 'Washing') or
- is_state('sensor.washer_status', 'Rinsing') or
- is_state('sensor.washer_status', 'Spinning') or
- is_state('sensor.washer_status', 'Preparing') %}
- blue
- {% elif is_state('sensor.washer_status', 'Paused') %}
- orange
- {% elif is_state('sensor.washer_status', 'Finished') %}
- green
- {% endif %}
- tap_action:
- action: navigate
- navigation_path: '#washer'
- entity: sensor.washer_time_remaining
- card_mod:
- style: |
- ha-state-icon{
- animation: {% if is_state('sensor.washer_status', 'Preparing') or is_state('sensor.washer_status', 'Washing') or is_state('sensor.washer_status', 'Rinsing') or is_state('sensor.washer_status', 'Spinning') %} wiggle 0.4s linear infinite;
- {% elif is_state('sensor.washer_status', 'Unknown') or is_state('sensor.washer_status', 'Paused') %} blink 0.5s linear infinite;
- {% else %} none;
- {% endif %}
- }
- @keyframes blink{
- 0%, 100% {opacity: 1;}
- 50% {opacity: 0;}
- }
- @keyframes wiggle{
- 0% {
- webkit-transform: translate(0, 0) rotate(0deg);
- transform: translate(0, 0) rotate(0deg);
- }
- 25% {
- webkit-transform: translate(1px, 1px) rotate(5deg);
- transform: translate(1px, 1px) rotate(5deg);
- }
- 50% {
- webkit-transform: translate(0, 0) rotate(0deg);
- transform: translate(0, 0) rotate(0deg);
- }
- 75% {
- webkit-transform: translate(-1px, 1px) rotate(-5deg);
- transform: translate(-1px, 1px) rotate(-5deg);
- }
- 100% {
- webkit-transform: translate(0, 0) rotate(0deg);
- transform: translate(0, 0) rotate(0deg);
- }
- }
- - type: custom:mushroom-template-card
- primary: Dryer
- secondary: >-
- {{ states('sensor.dryer_status') }}{% if
- is_state('sensor.dryer_status', 'Drying') or
- is_state('sensor.dryer_status', 'Cooling') %} - {% set
- remaining_seconds =
- (as_timestamp(states('sensor.dryer_dryer_completion_time'))-as_timestamp(now()))|int
- %} {% set remaining_minutes = (remaining_seconds // 60) %} {{
- remaining_minutes }}m {% endif %}
- icon: mdi:tumble-dryer
- icon_color: |-
- {% if is_state('sensor.dryer_status', 'Drying') %}
- red
- {% elif is_state('sensor.dryer_status', 'Cooling') %}
- blue
- {% elif is_state('sensor.dryer_status', 'Paused') %}
- orange
- {% elif is_state('sensor.dryer_status', 'Finished') %}
- green
- {% endif %}
- tap_action:
- action: navigate
- navigation_path: '#dryer'
- entity: sensor.dryer_status
- card_mod:
- style: |
- ha-state-icon{
- animation: {% if is_state('sensor.dryer_status', 'Drying') or is_state('sensor.dryer_status', 'Cooling') %} wiggle 0.4s linear infinite;
- {% elif is_state('sensor.dryer_status', 'Unknown') or is_state('sensor.dryer_status', 'Paused') %} blink 2s linear infinite;
- {% else %} none;
- {% endif %}
- }
- @keyframes blink{}
- @keyframes wiggle{
- 0% {
- webkit-transform: translate(0, 0) rotate(0deg);
- transform: translate(0, 0) rotate(0deg);
- }
- 25% {
- webkit-transform: translate(1px, 1px) rotate(5deg);
- transform: translate(1px, 1px) rotate(5deg);
- }
- 50% {
- webkit-transform: translate(0, 0) rotate(0deg);
- transform: translate(0, 0) rotate(0deg);
- }
- 75% {
- webkit-transform: translate(-1px, 1px) rotate(-5deg);
- transform: translate(-1px, 1px) rotate(-5deg);
- }
- 100% {
- webkit-transform: translate(0, 0) rotate(0deg);
- transform: translate(0, 0) rotate(0deg);
- }
- }
- - type: custom:mushroom-template-card
- primary: Dishwasher
- secondary: '{{ states(''sensor.dishwasher_status'') }}'
- icon: mdi:dishwasher
- badge_color: ''
- icon_color: >-
- {% if is_state('sensor.dishwasher_status', 'Preparing') or
- is_state('sensor.dishwasher_status', 'Running') %}
- blue
- {% endif %}
- tap_action:
- action: more-info
- entity: sensor.dishwasher_energy
- card_mod:
- style: |
- ha-state-icon{
- animation: {% if is_state('sensor.dishwasher_status', 'Running') %} wiggle 0.4s linear infinite;
- {% elif is_state('sensor.dishwasher_status', 'Unknown') %} blink 2s linear infinite;
- {% else %} none;
- {% endif %}
- }
- @keyframes blink{}
- @keyframes wiggle{
- 0% {
- webkit-transform: translate(0, 0) rotate(0deg);
- transform: translate(0, 0) rotate(0deg);
- }
- 25% {
- webkit-transform: translate(1px, 1px) rotate(5deg);
- transform: translate(1px, 1px) rotate(5deg);
- }
- 50% {
- webkit-transform: translate(0, 0) rotate(0deg);
- transform: translate(0, 0) rotate(0deg);
- }
- 75% {
- webkit-transform: translate(-1px, 1px) rotate(-5deg);
- transform: translate(-1px, 1px) rotate(-5deg);
- }
- 100% {
- webkit-transform: translate(0, 0) rotate(0deg);
- transform: translate(0, 0) rotate(0deg);
- }
- }
- - type: custom:mushroom-vacuum-card
- entity: vacuum.dionysus
- tap_action:
- action: more-info
- icon_animation: true
- - type: grid
- cards:
- - type: heading
- heading: Mail
- heading_style: title
- icon: ''
- - type: custom:mushroom-template-card
- primary: USPS
- secondary: |-
- {% if states('sensor.mail_usps_delivered') | int > 0 %}
- Delivered
- {% else %}
- {{ states('sensor.mail_usps_mail') + " piece(s)"}}
- {% endif %}
- icon: mdi:mailbox
- icon_color: |-
- {% if states('sensor.mail_usps_delivered') | int > 0 %}
- green
- {% elif states('sensor.mail_usps_mail') | int > 0 %}
- blue
- {% endif %}
- entity: camera.mail_usps_camera
- tap_action:
- action: more-info
- - type: custom:mushroom-template-card
- primary: Amazon
- secondary: |-
- {% if states('sensor.mail_amazon_packages_delivered') | int > 0 %}
- Delivered
- {% else %}
- {{ states('sensor.mail_amazon_packages') + " package(s)"}}
- {% endif %}
- icon: mdi:package
- icon_color: |-
- {% if states('sensor.mail_amazon_packages_delivered') | int > 0 %}
- green
- {% elif states('sensor.mail_amazon_packages') | int > 0 %}
- blue
- {% endif %}
- entity: sensor.mail_amazon_packages
- tap_action:
- action: more-info
- - type: custom:mushroom-template-card
- primary: UPS
- secondary: |-
- {% if states('sensor.mail_ups_delivered') | int > 0 %}
- Delivered
- {% else %}
- {{ states('sensor.mail_ups_packages') + " package(s)"}}
- {% endif %}
- icon: mdi:package
- icon_color: |-
- {% if states('sensor.mail_ups_delivered') | int > 0 %}
- green
- {% elif states('sensor.mail_ups_packages') | int > 0 %}
- blue
- {% endif %}
- - type: custom:mushroom-template-card
- primary: FedEx
- secondary: |-
- {% if states('sensor.mail_fedex_delivered') | int > 0 %}
- Delivered
- {% else %}
- {{ states('sensor.mail_fedex_packages') + " package(s)"}}
- {% endif %}
- icon: mdi:package
- icon_color: |-
- {% if states('sensor.mail_fedex_delivered') | int > 0 %}
- green
- {% elif states('sensor.mail_fedex_packages') | int > 0 %}
- blue
- {% endif %}
- - type: grid
- cards:
- - type: heading
- heading: Lighting
- heading_style: title
- icon: ''
- - type: custom:mushroom-template-card
- primary: Light Mode
- secondary: ''
- icon: mdi:white-balance-sunny
- tap_action:
- action: call-service
- service: input_select.select_option
- target:
- entity_id: input_select.lighting_theme
- data:
- option: Light Mode
- icon_color: |-
- {% if is_state('input_select.lighting_theme', 'Light Mode') %}
- orange
- {% endif %}
- entity: input_select.lighting_theme
- card_mod:
- style: |
- ha-state-icon{
- animation: {% if is_state('input_select.lighting_theme', 'Light Mode') %} spin 5s linear infinite;
- {% else %} none;
- {% endif %}
- }
- @keyframes spin{
- 0% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
- }
- - type: custom:mushroom-template-card
- primary: Dark Mode
- secondary: ''
- icon: mdi:moon-waxing-crescent
- tap_action:
- action: call-service
- service: input_select.select_option
- target:
- entity_id: input_select.lighting_theme
- data:
- option: Dark Mode
- icon_color: |-
- {% if is_state('input_select.lighting_theme', 'Dark Mode') %}
- purple
- {% endif %}
- entity: input_select.lighting_theme
- card_mod:
- style: |
- ha-state-icon{
- animation: {% if is_state('input_select.lighting_theme', 'Dark Mode') %} wiggle 6s ease infinite;
- {% else %} none;
- {% endif %}
- }
- @keyframes wiggle{
- 0% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 25% {
- webkit-transform: rotate(50deg);
- transform: rotate(50deg);
- }
- 50% {
- webkit-transform: rotate(50deg);
- transform: rotate(50deg);
- }
- 75% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- }
- - type: custom:mushroom-template-card
- primary: Party Mode
- secondary: ''
- icon: mdi:party-popper
- tap_action:
- action: call-service
- service: input_select.select_option
- target:
- entity_id: input_select.lighting_theme
- data:
- option: Party Mode
- icon_color: |-
- {% if is_state('input_select.lighting_theme', 'Party Mode') %}
- pink
- {% endif %}
- entity: input_select.lighting_theme
- card_mod:
- style: |
- ha-state-icon{
- animation: {% if is_state('input_select.lighting_theme', 'Party Mode') %} wiggle 0.18s linear infinite;
- {% else %} none;
- {% endif %}
- }
- @keyframes wiggle{
- 0% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 25% {
- webkit-transform: rotate(5deg);
- transform: rotate(5deg);
- }
- 50% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 75% {
- webkit-transform: rotate(-5deg);
- transform: rotate(-5deg);
- }
- 100% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- }
- - type: grid
- cards:
- - type: vertical-stack
- cards:
- - type: custom:bubble-card
- card_type: pop-up
- hash: '#party-mode'
- - type: custom:mushroom-title-card
- title: Party Mode
- subtitle: Let's get the party started!
- - type: custom:bubble-card
- card_type: select
- entity: input_select.party_music
- show_state: true
- show_attribute: false
- attribute: options
- show_last_changed: false
- force_icon: false
- show_icon: true
- scrolling_effect: true
- - type: conditional
- conditions:
- - condition: state
- entity: input_boolean.party_mode
- state: 'off'
- card:
- type: custom:bubble-card
- card_type: button
- tap_action:
- action: call-service
- target:
- entity_id: input_boolean.party_mode
- service: input_boolean.turn_on
- entity: input_boolean.party_mode
- name: Start the Party
- styles: |2-
- .bubble-icon{
- animation: wiggle 0.18s linear infinite;
- }
- @keyframes wiggle{
- 0% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 25% {
- webkit-transform: rotate(5deg);
- transform: rotate(5deg);
- }
- 50% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 75% {
- webkit-transform: rotate(-5deg);
- transform: rotate(-5deg);
- }
- 100% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- }
- .bubble-button-card-container {
- background: var(--pink-color) !important;
- }
- .bubble-icon{
- color: var(--pink-color) !important;
- }
- .bubble-icon-container{
- background-color: rgba(0,0,0,0.6) !important;
- }
- button_action:
- tap_action:
- action: call-service
- service: input_boolean.turn_on
- target:
- entity_id: input_boolean.party_mode
- - type: conditional
- conditions:
- - condition: state
- entity: input_boolean.party_mode
- state: 'on'
- card:
- type: custom:bubble-card
- card_type: button
- tap_action:
- action: call-service
- target:
- entity_id: input_boolean.party_mode
- service: input_boolean.turn_off
- entity: input_boolean.party_mode
- name: End the Party
- styles: ''
- button_action:
- tap_action:
- action: call-service
- service: input_boolean.turn_off
- target:
- entity_id: input_boolean.party_mode
- - type: grid
- cards:
- - type: vertical-stack
- cards:
- - type: custom:bubble-card
- card_type: pop-up
- hash: '#focus-mode'
- - type: custom:mushroom-title-card
- title: Focus Mode
- subtitle: Set Focus Time to zero for no time limit.
- - type: custom:bubble-card
- card_type: button
- entity: input_number.focus_time
- button_type: state
- - type: conditional
- conditions:
- - condition: state
- entity: input_boolean.focus_mode
- state: 'off'
- card:
- type: custom:bubble-card
- card_type: button
- tap_action:
- action: call-service
- target: {}
- service: script.focus_mode_start
- name: Start the Focus
- styles: |
- .bubble-button-card-container {
- background: var(--orange-color) !important;
- }
- .bubble-icon{
- color: var(--orange-color) !important;
- }
- .bubble-icon-container{
- background-color: rgba(0,0,0,0.6) !important;
- }
- button_action:
- tap_action:
- action: call-service
- service: script.focus_mode_start
- target: {}
- entity: script.focus_mode_start
- - type: conditional
- conditions:
- - condition: state
- entity: input_boolean.focus_mode
- state: 'on'
- - condition: numeric_state
- entity: input_number.focus_time
- above: 0
- card:
- type: custom:bubble-card
- card_type: button
- tap_action:
- action: call-service
- target:
- entity_id: timer.focus_mode_timer
- service: timer.cancel
- name: End the Focus
- styles: ''
- button_action:
- tap_action:
- action: call-service
- service: timer.cancel
- target:
- entity_id: timer.focus_mode_timer
- button_type: name
- icon: mdi:bullseye-arrow
- - type: conditional
- conditions:
- - condition: state
- entity: input_boolean.focus_mode
- state: 'on'
- - condition: numeric_state
- entity: input_number.focus_time
- below: 1
- card:
- type: custom:bubble-card
- card_type: button
- tap_action:
- action: call-service
- target:
- entity_id: input_boolean.focus_mode
- service: input_boolean.turn_off
- name: End the Focus
- styles: ''
- button_action:
- tap_action:
- action: call-service
- service: input_boolean.turn_off
- target:
- entity_id: input_boolean.focus_mode
- button_type: name
- icon: mdi:bullseye-arrow
- - type: grid
- cards:
- - type: vertical-stack
- cards:
- - type: custom:bubble-card
- card_type: pop-up
- hash: '#office'
- - type: custom:mushroom-title-card
- title: Office
- subtitle: So work or play?...or both?
- - type: horizontal-stack
- cards:
- - type: custom:mini-graph-card
- name: Temperature
- entities:
- - entity: sensor.thermostat_office_temperature_current
- hours_to_show: 24
- points_per_hour: 1
- animate: true
- - type: custom:mini-graph-card
- name: Humidity
- entities:
- - entity: sensor.thermostat_office_humidity_current
- hours_to_show: 24
- points_per_hour: 1
- animate: true
- - type: custom:bubble-card
- entity: climate.thermostat_office
- card_type: button
- name: Thermostat
- show_attribute: true
- attribute: current_temperature
- button_type: state
- sub_button: []
- - type: horizontal-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- entity: switch.office_studio_monitors
- show_attribute: false
- show_state: true
- - type: custom:mushroom-title-card
- title: ''
- subtitle: Lights
- - type: horizontal-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- entity: light.office_entertainment_center_lamp
- name: TV Lamp
- show_state: true
- button_type: slider
- tap_action:
- action: toggle
- - type: custom:bubble-card
- card_type: button
- name: TV Lamp
- show_state: true
- button_type: slider
- entity: light.desk_lamp
- tap_action:
- action: toggle
- - type: horizontal-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- entity: light.office_desk_leds
- name: ''
- show_state: true
- button_type: slider
- icon: mdi:led-strip-variant
- tap_action:
- action: toggle
- - type: custom:bubble-card
- card_type: button
- name: Computer Monitor LEDs
- show_state: true
- button_type: slider
- entity: light.office_desk_computer_monitor_leds
- icon: mdi:led-strip-variant
- tap_action:
- action: toggle
- - type: horizontal-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- name: Bookshelf Lights
- show_state: true
- button_type: slider
- entity: light.office_bookshelf_leds
- tap_action:
- action: toggle
- - type: custom:bubble-card
- card_type: button
- name: Entertainment Center Lights
- show_state: true
- button_type: slider
- entity: light.office_entertainment_center_leds
- icon: mdi:led-strip-variant
- tap_action:
- action: toggle
- - type: horizontal-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- name: Ceiling Light
- show_state: true
- button_type: slider
- entity: light.office_ceiling_light
- tap_action:
- action: toggle
- - type: grid
- cards:
- - type: vertical-stack
- cards:
- - type: custom:bubble-card
- card_type: pop-up
- hash: '#living-room'
- - type: custom:mushroom-title-card
- title: Living Room
- subtitle: Please god, not another round of zombies...
- - type: horizontal-stack
- cards:
- - type: custom:mini-graph-card
- name: Temperature
- entities:
- - entity: sensor.thermostat_living_room_temperature_current
- hours_to_show: 24
- points_per_hour: 1
- animate: true
- - type: custom:mini-graph-card
- name: Humidity
- entities:
- - entity: sensor.thermostat_living_room_humidity_current
- hours_to_show: 24
- points_per_hour: 1
- animate: true
- - type: custom:bubble-card
- entity: climate.thermostat_living_room
- card_type: button
- name: Thermostat
- show_attribute: true
- attribute: current_temperature
- button_type: state
- sub_button: []
- - type: custom:mushroom-title-card
- title: ''
- subtitle: Lights
- - type: horizontal-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- name: Lamp
- show_state: true
- button_type: slider
- entity: light.living_room_lamp
- tap_action:
- action: toggle
- - type: custom:bubble-card
- card_type: button
- name: TV Lights
- show_state: true
- button_type: slider
- entity: light.living_room_tv_lights
- icon: mdi:led-strip-variant
- tap_action:
- action: toggle
- - type: horizontal-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- entity: light.playstation_light_master
- name: PlayStation Light
- show_state: true
- button_type: slider
- icon: mdi:sony-playstation
- tap_action:
- action: toggle
- - type: grid
- cards:
- - type: vertical-stack
- cards:
- - type: custom:bubble-card
- card_type: pop-up
- hash: '#kitchen'
- - type: custom:mushroom-title-card
- title: Kitchen
- subtitle: Cookin up some goods, ey?
- - type: horizontal-stack
- cards:
- - type: custom:mini-graph-card
- name: Temperature
- entities:
- - entity: sensor.thermostat_dining_room_temperature_current
- hours_to_show: 24
- points_per_hour: 1
- animate: true
- - type: custom:mini-graph-card
- name: Humidity
- entities:
- - entity: sensor.thermostat_dining_room_humidity_current
- hours_to_show: 24
- points_per_hour: 1
- animate: true
- - type: custom:bubble-card
- entity: climate.thermostat_dining_room
- card_type: button
- name: Thermostat
- show_attribute: true
- attribute: current_temperature
- button_type: state
- sub_button: []
- - type: custom:mushroom-title-card
- title: ''
- subtitle: Lights
- - type: horizontal-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- name: Under Cabinet Lights
- show_state: true
- button_type: slider
- entity: light.kitchen_under_cabinet
- tap_action:
- action: toggle
- - type: custom:bubble-card
- card_type: button
- name: Ceiling Lights
- show_state: true
- button_type: slider
- entity: light.kitchen_ceiling_light
- icon: ''
- tap_action:
- action: toggle
- - type: horizontal-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- name: ''
- show_state: true
- button_type: slider
- icon: ''
- entity: light.side_door_outside
- tap_action:
- action: toggle
- - type: grid
- cards:
- - type: vertical-stack
- cards:
- - type: custom:bubble-card
- card_type: pop-up
- hash: '#bathroom'
- - type: custom:mushroom-title-card
- title: Bathroom
- subtitle: Please tell me you've been taking fiber supplements...
- - type: horizontal-stack
- cards:
- - type: custom:mini-graph-card
- name: Temperature
- entities:
- - entity: sensor.thermostat_main_bathroom_temperature_current
- hours_to_show: 24
- points_per_hour: 1
- animate: true
- - type: custom:mini-graph-card
- name: Humidity
- entities:
- - entity: sensor.thermostat_main_bathroom_humidity_current
- hours_to_show: 24
- points_per_hour: 1
- animate: true
- - type: custom:bubble-card
- entity: climate.thermostat_main_bathroom
- card_type: button
- name: Thermostat
- show_attribute: true
- attribute: current_temperature
- button_type: state
- sub_button: []
- - type: custom:mushroom-title-card
- title: ''
- subtitle: Lights
- - type: horizontal-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- name: Sconces
- show_state: true
- button_type: slider
- entity: light.main_bathroom_sconces
- tap_action:
- action: toggle
- - type: grid
- cards:
- - type: vertical-stack
- cards:
- - type: custom:bubble-card
- card_type: pop-up
- hash: '#hallway'
- - type: custom:mushroom-title-card
- title: Hallway
- subtitle: Welcome to your local liminal space
- - type: horizontal-stack
- cards:
- - type: custom:mini-graph-card
- name: Temperature
- entities:
- - entity: sensor.thermostat_hallway_temperature_current
- hours_to_show: 24
- points_per_hour: 1
- animate: true
- - type: custom:mini-graph-card
- name: Humidity
- entities:
- - entity: sensor.thermostat_hallway_humidity_current
- hours_to_show: 24
- points_per_hour: 1
- animate: true
- - type: custom:bubble-card
- entity: climate.ecobee3lite
- card_type: button
- name: Thermostat
- show_attribute: true
- attribute: current_temperature
- button_type: state
- sub_button: []
- - type: custom:mushroom-title-card
- title: ''
- subtitle: Lights
- - type: horizontal-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- name: ''
- show_state: true
- button_type: slider
- entity: light.hallway_ceiling_light
- tap_action:
- action: toggle
- - type: grid
- cards:
- - type: vertical-stack
- cards:
- - type: custom:bubble-card
- card_type: pop-up
- hash: '#basement'
- - type: custom:mushroom-title-card
- title: Basement
- subtitle: So will it be rocking out or watching a rom com?
- - type: custom:mushroom-title-card
- title: ''
- subtitle: Lights
- - type: horizontal-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- name: Ceiling Lights
- show_state: true
- button_type: slider
- entity: light.basement_ceiling_lights
- tap_action:
- action: toggle
- - type: custom:bubble-card
- card_type: button
- name: Bookshelf Lights
- show_state: true
- button_type: slider
- entity: light.basement_bookshelf_lights
- icon: mdi:bookshelf
- tap_action:
- action: toggle
- - type: horizontal-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- name: ''
- show_state: true
- button_type: slider
- icon: ''
- entity: light.cloud_sign
- tap_action:
- action: toggle
- - type: custom:bubble-card
- card_type: button
- name: Server Rack Lights
- show_state: true
- button_type: slider
- icon: ''
- entity: light.server_rack_leds
- tap_action:
- action: toggle
- - type: grid
- cards:
- - type: vertical-stack
- cards:
- - type: custom:bubble-card
- card_type: pop-up
- hash: '#garage'
- - type: custom:mushroom-title-card
- title: Garage
- subtitle: Oh, you must think you're some sort of Dom Toretto...
- - type: custom:bubble-card
- card_type: button
- name: Garage Door
- show_attribute: true
- attribute: current_position
- button_type: state
- sub_button: []
- entity: cover.garage_door
- - type: custom:mushroom-title-card
- title: ''
- subtitle: Lights
- - type: horizontal-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- name: Sconces
- show_state: true
- button_type: slider
- entity: light.garage_sconces
- tap_action:
- action: toggle
- - type: custom:bubble-card
- card_type: button
- name: Server Rack Lights
- show_state: true
- button_type: slider
- icon: ''
- entity: light.garage_server_rack_leds
- tap_action:
- action: toggle
- - type: grid
- cards:
- - type: vertical-stack
- cards:
- - type: custom:bubble-card
- card_type: pop-up
- hash: '#bedroom'
- - type: custom:mushroom-title-card
- title: Bedroom
- subtitle: Oh...shall I dim the lights?
- - type: horizontal-stack
- cards:
- - type: custom:mini-graph-card
- name: Temperature
- entities:
- - entity: sensor.thermostat_main_bedroom_temperature_current
- hours_to_show: 24
- points_per_hour: 1
- animate: true
- - type: custom:mini-graph-card
- name: Humidity
- entities:
- - entity: sensor.thermostat_main_bedroom_humidity_current
- hours_to_show: 24
- points_per_hour: 1
- animate: true
- - type: custom:bubble-card
- entity: climate.thermostat_main_bedroom
- card_type: button
- name: Thermostat
- show_attribute: true
- attribute: current_temperature
- button_type: state
- sub_button: []
- - type: custom:mushroom-title-card
- title: ''
- subtitle: Lights
- - type: horizontal-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- name: Lamp
- show_state: true
- button_type: slider
- entity: light.bedroom_lamp
- tap_action:
- action: toggle
- - type: custom:bubble-card
- card_type: button
- name: TV Lights
- show_state: true
- button_type: slider
- icon: mdi:led-strip-variant
- entity: light.bedroom_tv_leds
- tap_action:
- action: toggle
- - type: horizontal-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- name: Logo
- show_state: true
- button_type: slider
- icon: ''
- entity: light.main_bedroom_logo
- tap_action:
- action: toggle
- - type: grid
- cards:
- - type: vertical-stack
- cards:
- - type: custom:bubble-card
- card_type: pop-up
- hash: '#washer'
- - type: custom:mushroom-title-card
- title: Washer
- subtitle: Oh man...I sure hope that stain comes out!
- - type: horizontal-stack
- cards:
- - type: custom:mushroom-template-card
- primary: Status
- secondary: '{{ states(''sensor.washer_status'') }}'
- icon: mdi:washing-machine
- icon_color: >-
- {% if is_state('sensor.washer_status', 'Washing') or
- is_state('sensor.washer_status', 'Rinsing') or
- is_state('sensor.washer_status', 'Spinning') or
- is_state('sensor.washer_status', 'Preparing') %}
- blue
- {% elif is_state('sensor.washer_status', 'Paused') %}
- orange
- {% elif is_state('sensor.washer_status', 'Finished') %}
- green
- {% endif %}
- tap_action:
- action: more-info
- entity: sensor.washer_time_remaining
- card_mod:
- style: |
- ha-state-icon{
- animation: {% if is_state('sensor.washer_status', 'Preparing') or is_state('sensor.washer_status', 'Washing') or is_state('sensor.washer_status', 'Rinsing') or is_state('sensor.washer_status', 'Spinning') %} wiggle 0.4s linear infinite;
- {% elif is_state('sensor.washer_status', 'Unknown') or is_state('sensor.washer_status', 'Paused') %} blink 0.5s linear infinite;
- {% else %} none;
- {% endif %}
- }
- @keyframes blink{
- 0%, 100% {opacity: 1;}
- 50% {opacity: 0;}
- }
- @keyframes wiggle{
- 0% {
- webkit-transform: translate(0, 0) rotate(0deg);
- transform: translate(0, 0) rotate(0deg);
- }
- 25% {
- webkit-transform: translate(1px, 1px) rotate(5deg);
- transform: translate(1px, 1px) rotate(5deg);
- }
- 50% {
- webkit-transform: translate(0, 0) rotate(0deg);
- transform: translate(0, 0) rotate(0deg);
- }
- 75% {
- webkit-transform: translate(-1px, 1px) rotate(-5deg);
- transform: translate(-1px, 1px) rotate(-5deg);
- }
- 100% {
- webkit-transform: translate(0, 0) rotate(0deg);
- transform: translate(0, 0) rotate(0deg);
- }
- }
- - type: conditional
- conditions:
- - condition: state
- entity: sensor.washer_status
- state_not: Idle
- card:
- type: custom:mushroom-template-card
- primary: Time Remaining
- secondary: >-
- {% set remaining_seconds =
- (as_timestamp(states('sensor.washer_washer_completion_time'))-as_timestamp(now()))|int
- %} {% set remaining_minutes = (remaining_seconds // 60)
- %} {{ remaining_minutes }} minutes
- icon: mdi:clock
- icon_color: blue
- tap_action:
- action: more-info
- entity: sensor.washer_time_remaining
- - type: horizontal-stack
- cards:
- - graph: line
- type: sensor
- detail: 2
- entity: sensor.washer_energy
- hours_to_show: 12
- name: Energy Usage
- - type: grid
- cards:
- - type: vertical-stack
- cards:
- - type: custom:bubble-card
- card_type: pop-up
- hash: '#dryer'
- - type: custom:mushroom-title-card
- title: Dryer
- subtitle: Nobody wants damp underwear.
- - type: horizontal-stack
- cards:
- - type: custom:mushroom-template-card
- primary: Status
- secondary: '{{ states(''sensor.dryer_status'') }}'
- icon: mdi:tumble-dryer
- icon_color: |-
- {% if is_state('sensor.dryer_status', 'Drying') %}
- red
- {% elif is_state('sensor.dryer_status', 'Cooling') %}
- blue
- {% elif is_state('sensor.dryer_status', 'Paused') %}
- orange
- {% elif is_state('sensor.dryer_status', 'Finished') %}
- green
- {% endif %}
- tap_action:
- action: more-info
- entity: sensor.dryer_status
- card_mod:
- style: |
- ha-state-icon{
- animation: {% if is_state('sensor.dryer_status', 'Drying') or is_state('sensor.dryer_status', 'Cooling') %} wiggle 0.4s linear infinite;
- {% elif is_state('sensor.dryer_status', 'Unknown') or is_state('sensor.dryer_status', 'Paused') %} blink 2s linear infinite;
- {% else %} none;
- {% endif %}
- }
- @keyframes blink{}
- @keyframes wiggle{
- 0% {
- webkit-transform: translate(0, 0) rotate(0deg);
- transform: translate(0, 0) rotate(0deg);
- }
- 25% {
- webkit-transform: translate(1px, 1px) rotate(5deg);
- transform: translate(1px, 1px) rotate(5deg);
- }
- 50% {
- webkit-transform: translate(0, 0) rotate(0deg);
- transform: translate(0, 0) rotate(0deg);
- }
- 75% {
- webkit-transform: translate(-1px, 1px) rotate(-5deg);
- transform: translate(-1px, 1px) rotate(-5deg);
- }
- 100% {
- webkit-transform: translate(0, 0) rotate(0deg);
- transform: translate(0, 0) rotate(0deg);
- }
- }
- - type: conditional
- conditions:
- - condition: state
- entity: sensor.dryer_status
- state_not: Idle
- card:
- type: custom:mushroom-template-card
- primary: Time Remaining
- secondary: >-
- {% set remaining_seconds =
- (as_timestamp(states('sensor.dryer_dryer_completion_time'))-as_timestamp(now()))|int
- %} {% set remaining_minutes = (remaining_seconds // 60)
- %} {{ remaining_minutes }} minutes
- icon: mdi:clock
- icon_color: blue
- tap_action:
- action: more-info
- entity: sensor.washer_time_remaining
- - type: horizontal-stack
- cards:
- - graph: line
- type: sensor
- detail: 2
- hours_to_show: 12
- name: Energy Usage
- entity: sensor.dryer_energy
- cards: []
- subview: false
- layout: {}
- max_columns: 3
- - title: Security
- path: security
- type: sections
- sections:
- - type: grid
- cards:
- - camera_view: live
- type: picture-glance
- image: https://demo.home-assistant.io/stub_config/kitchen.png
- entities: []
- camera_image: camera.front_door_camera
- aspect_ratio: '4:3'
- - camera_view: live
- type: picture-glance
- image: https://demo.home-assistant.io/stub_config/kitchen.png
- entities: []
- camera_image: camera.side_door_camera
- aspect_ratio: '4:3'
- - camera_view: live
- type: picture-glance
- image: https://demo.home-assistant.io/stub_config/kitchen.png
- entities: []
- camera_image: camera.garage_front_camera_2
- - type: grid
- cards: []
- - type: grid
- cards: []
- - title: Lights
- path: lights
- cards: []
- type: sections
- sections:
- - type: grid
- cards:
- - type: heading
- heading: Lighting Controls
- - type: custom:mushroom-template-card
- primary: All Lights On
- secondary: ''
- icon: mdi:lightbulb-on
- tap_action:
- action: perform-action
- perform_action: light.turn_on
- target:
- entity_id:
- - light.all_garage_lights
- - light.all_office_lights
- - light.all_hallway_lights
- - light.all_kitchen_lights
- - light.all_bedroom_lights
- - light.all_basement_lights
- - light.all_living_room_lights
- - light.all_main_bathroom_lights
- icon_color: orange
- - type: custom:mushroom-template-card
- primary: All Lights Off
- secondary: ''
- icon: mdi:lightbulb-off
- tap_action:
- action: perform-action
- perform_action: light.turn_off
- target:
- entity_id:
- - light.all_garage_lights
- - light.all_office_lights
- - light.all_hallway_lights
- - light.all_kitchen_lights
- - light.all_bedroom_lights
- - light.all_basement_lights
- - light.all_living_room_lights
- - light.all_main_bathroom_lights
- icon_color: ''
- - type: grid
- cards:
- - type: heading
- heading: Lighting Themes
- - type: custom:mushroom-template-card
- primary: Light Mode
- secondary: ''
- icon: mdi:white-balance-sunny
- tap_action:
- action: perform-action
- perform_action: input_select.select_option
- data:
- option: Light Mode
- target:
- entity_id: input_select.lighting_theme
- icon_color: |-
- {% if is_state('input_select.lighting_theme', 'Light Mode') %}
- orange
- {% endif %}
- entity: input_select.lighting_theme
- card_mod:
- style: |
- ha-state-icon{
- animation: {% if is_state('input_select.lighting_theme', 'Light Mode') %} spin 5s linear infinite;
- {% else %} none;
- {% endif %}
- }
- @keyframes spin{
- 0% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
- }
- - type: custom:mushroom-template-card
- primary: Dark Mode
- secondary: ''
- icon: mdi:moon-waxing-crescent
- tap_action:
- action: call-service
- service: input_select.select_option
- target:
- entity_id: input_select.lighting_theme
- data:
- option: Dark Mode
- icon_color: |-
- {% if is_state('input_select.lighting_theme', 'Dark Mode') %}
- purple
- {% endif %}
- entity: input_select.lighting_theme
- card_mod:
- style: |
- ha-state-icon{
- animation: {% if is_state('input_select.lighting_theme', 'Dark Mode') %} wiggle 6s ease infinite;
- {% else %} none;
- {% endif %}
- }
- @keyframes wiggle{
- 0% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 25% {
- webkit-transform: rotate(50deg);
- transform: rotate(50deg);
- }
- 50% {
- webkit-transform: rotate(50deg);
- transform: rotate(50deg);
- }
- 75% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 100% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- }
- - type: custom:mushroom-template-card
- primary: Party Mode
- secondary: ''
- icon: mdi:party-popper
- tap_action:
- action: call-service
- service: input_select.select_option
- target:
- entity_id: input_select.lighting_theme
- data:
- option: Party Mode
- icon_color: |-
- {% if is_state('input_select.lighting_theme', 'Party Mode') %}
- pink
- {% endif %}
- entity: input_select.lighting_theme
- card_mod:
- style: |
- ha-state-icon{
- animation: {% if is_state('input_select.lighting_theme', 'Party Mode') %} wiggle 0.18s linear infinite;
- {% else %} none;
- {% endif %}
- }
- @keyframes wiggle{
- 0% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 25% {
- webkit-transform: rotate(5deg);
- transform: rotate(5deg);
- }
- 50% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- 75% {
- webkit-transform: rotate(-5deg);
- transform: rotate(-5deg);
- }
- 100% {
- webkit-transform: rotate(0deg);
- transform: rotate(0deg);
- }
- }
- - type: grid
- cards:
- - type: heading
- heading: Lighting Automations
- - type: tile
- entity: input_boolean.motion_activated_lighting_automations
- name: Motion Lights
- tap_action:
- action: toggle
- - type: tile
- name: Lights on at Dark
- tap_action:
- action: toggle
- entity: input_boolean.lights_on_at_dark_automation
- - type: grid
- cards:
- - type: heading
- heading: Office Lights
- heading_style: title
- badges:
- - type: entity
- show_state: true
- show_icon: true
- entity: light.office_lights
- color: orange
- state_content: state
- tap_action:
- action: toggle
- icon: ''
- - type: custom:mushroom-light-card
- entity: light.desk_lamp
- name: Desk Lamp
- - type: custom:mushroom-light-card
- entity: light.office_desk_leds
- name: Desk LEDs
- - type: custom:mushroom-light-card
- name: Bookshelf LEDs
- entity: light.office_bookshelf_leds_grouped
- icon: mdi:bookshelf
- - type: custom:mushroom-light-card
- name: Computer Monitor LEDs
- icon: ''
- entity: light.office_desk_computer_monitor_leds
- - type: custom:mushroom-light-card
- name: Entertainment Center
- icon: ''
- entity: light.office_entertainment_center_leds
- - type: custom:mushroom-light-card
- name: TV Lamp
- entity: light.office_entertainment_center_lamp
- - type: custom:mushroom-light-card
- name: Ceiling Light
- entity: light.office_ceiling_light
- icon: mdi:light-recessed
- - type: grid
- cards:
- - type: heading
- heading: Living Room Lights
- heading_style: title
- badges:
- - type: entity
- show_state: true
- show_icon: true
- entity: light.living_room_lights
- color: orange
- tap_action:
- action: toggle
- icon: ''
- - type: custom:mushroom-light-card
- entity: light.living_room_lamp
- name: Lamp
- - type: custom:mushroom-light-card
- entity: light.living_room_tv_leds
- name: TV LEDs
- - type: custom:mushroom-light-card
- entity: light.playstation_light_master
- icon: mdi:sony-playstation
- use_light_color: true
- - type: grid
- cards:
- - type: heading
- heading: Kitchen Lights
- heading_style: title
- badges:
- - type: entity
- show_state: true
- show_icon: true
- entity: light.kitchen_lights
- color: orange
- state_content: state
- tap_action:
- action: toggle
- icon: ''
- - type: custom:mushroom-light-card
- entity: light.kitchen_under_cabinet
- name: Under Cabinet
- - type: custom:mushroom-light-card
- entity: light.kitchen_ceiling_light
- name: Ceiling Light
- - type: custom:mushroom-light-card
- entity: light.side_door_outside
- - type: grid
- cards:
- - type: heading
- heading: Basement Lights
- heading_style: title
- badges:
- - type: entity
- show_state: true
- show_icon: true
- entity: light.basement_lights
- color: orange
- state_content: state
- tap_action:
- action: toggle
- icon: ''
- - type: custom:mushroom-light-card
- entity: light.basement_ceiling_lights
- name: Ceiling Lights
- - type: custom:mushroom-light-card
- entity: light.basement_bookshelf_leds
- name: Bookshelf LEDs
- icon: ''
- - type: custom:mushroom-light-card
- entity: light.server_rack_leds
- name: Server Rack
- - type: custom:mushroom-light-card
- entity: light.cloud_sign
- - type: grid
- cards:
- - type: heading
- heading: Bedroom Lights
- heading_style: title
- badges:
- - type: entity
- show_state: true
- show_icon: true
- entity: light.bedroom_lights
- color: orange
- state_content: state
- tap_action:
- action: toggle
- icon: ''
- - type: custom:mushroom-light-card
- entity: light.bedroom_lamp
- name: Lamp
- - type: custom:mushroom-light-card
- entity: light.main_bedroom_logo
- name: Logo
- - type: custom:mushroom-light-card
- entity: light.bedroom_tv_leds
- name: TV LEDs
- icon: ''
- - type: grid
- cards:
- - type: heading
- heading: Garage Lights
- heading_style: title
- badges:
- - type: entity
- show_state: true
- show_icon: true
- entity: light.all_garage_lights
- color: orange
- state_content: state
- tap_action:
- action: toggle
- icon: ''
- - type: custom:mushroom-light-card
- entity: light.garage_sconces
- name: Sconces
- - type: custom:mushroom-light-card
- entity: light.garage_server_rack_leds
- name: Server Rack
- - type: grid
- cards:
- - type: heading
- heading: Bathroom Lights
- heading_style: title
- badges:
- - type: entity
- show_state: true
- show_icon: true
- entity: light.main_bathroom_lights
- color: orange
- state_content: state
- tap_action:
- action: toggle
- icon: ''
- - type: custom:mushroom-light-card
- entity: light.main_bathroom_sconces
- name: Sconces
- - type: grid
- cards:
- - type: heading
- heading: Hallway Lights
- heading_style: title
- badges:
- - type: entity
- show_state: true
- show_icon: true
- entity: light.hallway_lights
- color: orange
- state_content: state
- tap_action:
- action: toggle
- icon: ''
- - type: custom:mushroom-light-card
- entity: light.hallway_ceiling_light
- icon: mdi:light-recessed
- name: Ceiling Light
- - title: System
- path: system
- type: sections
- max_columns: 4
- sections:
- - type: grid
- cards:
- - type: heading
- heading: Home Assistant
- heading_style: title
- badges:
- - type: entity
- entity: sensor.cpu_temperature
- - graph: line
- type: sensor
- detail: 2
- entity: sensor.cpu_usage
- - graph: line
- type: sensor
- detail: 2
- entity: sensor.memory_usage
- - type: custom:mushroom-update-card
- name: Operating System
- entity: update.home_assistant_operating_system_update
- - type: custom:mushroom-update-card
- entity: update.home_assistant_core_update
- show_buttons_control: false
- collapsible_controls: false
- name: Home Assistant Core
- icon: mdi:home-assistant
- - type: custom:mushroom-template-card
- primary: Uptime
- secondary: >-
- {% set uptime_seconds =
- (as_timestamp(now())-as_timestamp(states('sensor.uptime')))|int %}
- {% set uptime_minutes = (uptime_seconds // 60) %} {% set
- uptime_hours = (uptime_minutes // 60) %} {% set uptime_days =
- (uptime_hours // 24) %} {% if uptime_days != 0 %}{{ uptime_days
- }}d {% endif %}{% if uptime_hours != 0 %}{{ uptime_hours -
- (uptime_days*24)}}h {% endif %}{{ uptime_minutes -
- (uptime_hours*60) }}m
- icon: mdi:clock
- icon_color: green
- entity: sensor.uptime
- tap_action:
- action: more-info
- - type: custom:mushroom-template-card
- primary: Last Backup
- secondary: '{{ states(''sensor.hours_since_last_backup'') + " hours ago" }}'
- icon: mdi:harddisk
- icon_color: |-
- {% if states('sensor.hours_since_last_backup') | int < 24 %}
- green
- {% elif states('sensor.hours_since_last_backup') | int < 48 %}
- orange
- {% else %}
- red
- {% endif %}
- tap_action:
- action: more-info
- entity: sensor.hours_since_last_backup
- - type: grid
- cards:
- - type: heading
- heading: Wall Tablet
- - graph: line
- type: sensor
- detail: 2
- entity: sensor.hallway_wall_tablet_internal_storage_used
- name: Storage
- icon: mdi:harddisk
- - graph: line
- type: sensor
- detail: 2
- entity: sensor.hallway_wall_tablet_used_memory
- icon: mdi:memory
- name: Memory Usage
- - type: custom:mushroom-template-card
- primary: Tablet Battery
- secondary: >-
- {{ states('sensor.hallway_wall_tablet_battery') + "%" }}{% if
- is_state('binary_sensor.hallway_wall_tablet_plugged_in', 'on') %}
- - Charging
- {% endif %}
- icon: >-
- {% if states('sensor.hallway_wall_tablet_battery') | int == 100 %}
- mdi:battery
- {% elif states('sensor.hallway_wall_tablet_battery') | int >= 90
- %}
- mdi:battery-90
- {% elif states('sensor.hallway_wall_tablet_battery') | int >= 80
- %}
- mdi:battery-80
- {% elif states('sensor.hallway_wall_tablet_battery') | int >= 70
- %}
- mdi:battery-70
- {% elif states('sensor.hallway_wall_tablet_battery') | int >= 60
- %}
- mdi:battery-60
- {% elif states('sensor.hallway_wall_tablet_battery') | int >= 50
- %}
- mdi:battery-50
- {% elif states('sensor.hallway_wall_tablet_battery') | int >= 40
- %}
- mdi:battery-40
- {% elif states('sensor.hallway_wall_tablet_battery') | int >= 30
- %}
- mdi:battery-30
- {% elif states('sensor.hallway_wall_tablet_battery') | int >= 20
- %}
- mdi:battery-20
- {% elif states('sensor.hallway_wall_tablet_battery') | int >= 10
- %}
- mdi:battery-10
- {% else %}
- mdi:battery-outline
- {% endif %}
- icon_color: >-
- {% if states('sensor.hallway_wall_tablet_battery') | int >= 20 or
- is_state('binary_sensor.hallway_wall_tablet_plugged_in', 'on') %}
- green
- {% elif states('sensor.hallway_wall_tablet_battery') | int >= 10
- %}
- orange
- {% else %}
- red
- {% endif %}
- tap_action:
- action: toggle
- entity: switch.hallway_outlet_upper
- - type: tile
- entity: automation.hallway_wall_tablet_screensaver
- name: Screensaver
- tap_action:
- action: toggle
- - type: tile
- name: Refresh Tablet
- hide_state: true
- color: primary
- entity: button.hallway_wall_tablet_load_start_url
- icon: mdi:refresh
- tap_action:
- action: toggle
- - type: tile
- entity: button.hallway_wall_tablet_restart_device
- name: Restart Tablet
- hide_state: true
- color: primary
- - type: grid
- cards:
- - type: heading
- heading: Network
- heading_style: title
- badges: []
- - graph: line
- type: sensor
- detail: 2
- entity: sensor.wan_download_rate
- name: Download
- - graph: line
- type: sensor
- detail: 2
- name: Upload
- entity: sensor.wan_upload_rate
- - type: custom:mushroom-template-card
- primary: WAN Status
- secondary: |-
- {% if states('binary_sensor.wan_status') %}
- Connected
- {% else %}
- Disconnected
- {% endif %}
- icon: |-
- {% if states('binary_sensor.wan_status') %}
- mdi:check-network
- {% else %}
- mdi:close-network
- {% endif %}
- entity: binary_sensor.wan_status
- icon_color: |-
- {% if states('binary_sensor.wan_status') %}
- green
- {% else %}
- red
- {% endif %}
- tap_action:
- action: more-info
- badge_icon: ''
- - type: custom:mushroom-template-card
- primary: LAN Status
- secondary: |-
- {% if states('binary_sensor.lan_status') %}
- Connected
- {% else %}
- Disconnected
- {% endif %}
- icon: |-
- {% if states('binary_sensor.lan_status') %}
- mdi:check-network
- {% else %}
- mdi:close-network
- {% endif %}
- icon_color: |-
- {% if states('binary_sensor.lan_status') %}
- green
- {% else %}
- red
- {% endif %}
- tap_action:
- action: more-info
- badge_icon: ''
- entity: binary_sensor.lan_status
- - type: custom:mushroom-template-card
- primary: UPS Battery
- secondary: '{{ states(''sensor.ups_battery_charge'') + "%" }}'
- icon: |-
- {% if states('sensor.ups_battery_charge') | int == 100 %}
- mdi:battery
- {% elif states('sensor.ups_battery_charge') | int >= 90 %}
- mdi:battery-90
- {% elif states('sensor.ups_battery_charge') | int >= 80 %}
- mdi:battery-80
- {% elif states('sensor.ups_battery_charge') | int >= 70 %}
- mdi:battery-70
- {% elif states('sensor.ups_battery_charge') | int >= 60 %}
- mdi:battery-60
- {% elif states('sensor.ups_battery_charge') | int >= 50 %}
- mdi:battery-50
- {% elif states('sensor.ups_battery_charge') | int >= 40 %}
- mdi:battery-40
- {% elif states('sensor.ups_battery_charge') | int >= 30 %}
- mdi:battery-30
- {% elif states('sensor.ups_battery_charge') | int >= 20 %}
- mdi:battery-20
- {% elif states('sensor.ups_battery_charge') | int >= 10 %}
- mdi:battery-10
- {% else %}
- mdi:battery-outline
- {% endif %}
- icon_color: |-
- {% if states('sensor.ups_battery_charge') | int >= 80 %}
- green
- {% elif states('sensor.ups_battery_charge') | int >= 50 %}
- orange
- {% else %}
- red
- {% endif %}
- tap_action:
- action: more-info
- entity: sensor.ups_battery_charge
- - type: custom:mushroom-template-card
- primary: UPS Load
- secondary: '{{ states(''sensor.ups_load'') + "%" }}'
- icon: |-
- {% if states('sensor.ups_load') | int >= 80 %}
- mdi:gauge-full
- {% elif states('sensor.ups_load') | int >= 50 %}
- mdi:gauge
- {% else %}
- mdi:gauge-empty
- {% endif %}
- icon_color: |-
- {% if states('sensor.ups_load') | int >= 80 %}
- red
- {% elif states('sensor.ups_load') | int >= 50 %}
- orange
- {% else %}
- green
- {% endif %}
- entity: sensor.ups_load
- tap_action:
- action: more-info
- - type: custom:mushroom-template-card
- primary: Social Media
- secondary: |-
- {% if is_state('switch.block_social_media', 'on') %}
- Blocked
- {% elif is_state('switch.block_social_media', 'off') %}
- Allowed
- {% endif %}
- icon: mdi:web
- icon_color: |-
- {% if is_state('switch.block_social_media', 'on') %}
- red
- {% elif is_state('switch.block_social_media', 'off') %}
- green
- {% endif %}
- tap_action:
- action: none
- hold_action:
- action: none
- double_tap_action:
- action: none
- - type: custom:mushroom-template-card
- primary: Pi-hole
- secondary: |-
- {% if states('binary_sensor.uptimekuma_pihole') %}
- Connected
- {% else %}
- Disconnected
- {% endif %}
- icon: |-
- {% if states('binary_sensor.uptimekuma_pihole') %}
- mdi:check-network
- {% else %}
- mdi:close-network
- {% endif %}
- icon_color: |-
- {% if states('binary_sensor.uptimekuma_pihole') %}
- green
- {% else %}
- red
- {% endif %}
- tap_action:
- action: more-info
- badge_icon: ''
- entity: binary_sensor.uptimekuma_pihole
- - type: grid
- cards:
- - type: heading
- heading: Synology NAS
- heading_style: title
- badges:
- - type: entity
- entity: sensor.nas_temperature
- - type: entity
- entity: binary_sensor.uptimekuma_nas
- - graph: line
- type: sensor
- detail: 2
- entity: sensor.nas_cpu_utilization_total
- name: CPU Usage
- icon: mdi:cpu-64-bit
- - graph: line
- type: sensor
- detail: 1
- entity: sensor.nas_memory_usage_real
- name: Memory Usage
- icon: ''
- - type: custom:mushroom-update-card
- show_buttons_control: false
- collapsible_controls: false
- name: DSM
- icon: ''
- entity: update.nas_dsm_update
- - type: grid
- cards:
- - type: heading
- heading: Frigate
- heading_style: title
- icon: ''
- badges:
- - type: entity
- entity: sensor.server_surveillance_cpu_temp
- - type: entity
- entity: binary_sensor.uptimekuma_frigate
- - graph: line
- type: sensor
- detail: 2
- name: CPU Usage
- icon: mdi:cpu-64-bit
- entity: sensor.server_surveillance_cpu_usage
- - graph: line
- type: sensor
- detail: 2
- icon: ''
- entity: sensor.server_surveillance_memory_usage
- name: Memory Usage
- - type: grid
- cards:
- - type: heading
- heading: Automations
- - type: tile
- entity: input_boolean.motion_activated_lighting_automations
- name: Motion Lights
- tap_action:
- action: toggle
- - type: tile
- name: Lights on at Dark
- tap_action:
- action: toggle
- entity: input_boolean.lights_on_at_dark_automation
- - type: tile
- name: Thermostat Syncing
- tap_action:
- action: toggle
- entity: input_boolean.thermostat_syncing_automations
- - type: tile
- name: Bathroom Fan
- tap_action:
- action: toggle
- entity: input_boolean.bathroom_fan_automations
- cards: []
- - title: Music
- path: music
- type: panel
- cards:
- - type: iframe
- url: http://homeassistant.local:8095/#/home
- card_mod:
- style: |
- ha-card{
- height: calc(100vh - 16px);
- }
- - title: Calendar
- path: calendar
- type: panel
- cards:
- - type: calendar
- entities:
- - calendar.garbage_schedule
- - calendar.birthdays
- - calendar.holidays
- - calendar.miscellaneous
- card_mod:
- style: |
- ha-full-calendar{
- height: 100%;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement