From 463737a2062a317f087c782b711ec025ec91808e Mon Sep 17 00:00:00 2001 From: Tony Stork Date: Sat, 27 Jul 2024 20:22:47 -0400 Subject: [PATCH] Initial upload --- main_dashboard.yaml | 6408 ++++++++++++++++++++++++++++++++++++++ mobile_dashboard.yaml | 6853 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 13261 insertions(+) create mode 100644 main_dashboard.yaml create mode 100644 mobile_dashboard.yaml diff --git a/main_dashboard.yaml b/main_dashboard.yaml new file mode 100644 index 0000000..728508b --- /dev/null +++ b/main_dashboard.yaml @@ -0,0 +1,6408 @@ +decluttering_templates: + 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 +background: var(--background-image) +title: Stratton Ave +views: + - title: Home + path: default_view + type: sections + sections: + - type: grid + cards: + - type: custom:meteoalarm-card + entities: + entity: sensor.weatheralerts + integration: weatheralerts + hide_when_no_warning: true + visibility: + - condition: state + entity: sensor.weatheralerts_alerts_are_active + state: 'Yes' + - type: custom:clock-weather-card + entity: weather.iron_nerd_weather_station + sun_entity: sun.sun + weather_icon_type: fill + humidity_sensor: sensor.home_relative_humidity + show_humidity: true + apparent_sensor: sensor.home_temperature_feels_like + animated_icon: true + forecast_rows: 7 + time_format: 12 + tap_action: + action: navigate + navigation_path: /lovelace/weather + title: Weather + - type: grid + cards: + - 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.min_ping') | round }}ms/{{ + states('sensor.avg_ping') | round }}ms/{{ + states('sensor.max_ping') | 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 + - type: custom:fold-entity-row + head: + type: section + label: Stats + 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 + state_color: true + show_header_toggle: false + title: Master Switches and Info + - type: grid + cards: + - 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 + title: Cameras + - type: grid + cards: + - 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 + title: Residents + - type: grid + cards: + - type: custom:atomic-calendar-revive + enableModeChange: true + firstDayOfWeek: 1 + maxDaysToShow: 7 + refreshInterval: 15 + entities: + - calendar.family + - calendar.kallen_school_days + - calendar.tony_s_twitch_schedule + - calendar.kallen_early_release + - calendar.tm24fan8_gmail_com + - calendar.irishpirate1988_gmail_com + - calendar.vacation + showLoader: true + hideFinishedEvents: true + showRelativeTime: false + showDate: true + sortByStartTime: true + showLocation: true + hideDuplicates: false + noEventText: Nothing scheduled for today! + showCurrentEventLine: false + showMonth: false + showProgressBar: true + showWeekDay: true + disableEventLink: false + showNoEventsForToday: true + showEventIcon: false + showFullDayProgress: false + showLastCalendarWeek: false + disableCalEventLink: false + disableCalLocationLink: false + showTimeRemaining: true + showAllDayEvents: true + hoursOnSameLine: false + showMultiDayEventParts: false + showMultiDay: false + showDescription: false + disableLocationLink: false + showCalendarName: false + showAllDayHours: true + disableCalLink: false + title: Family Calendar + - type: grid + cards: + - 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 + - entity: person.christina_stork + name: Christina Stork + content_template: '{{display_name}} is {{state}}' + remove_repeats: false + state_map: + not_home: traveling + Wal-Mart: at Wal-Mart + School: at the middle school + Hospital: at the hospital + Bob Evans: at work + BobEvans: at work + - entity: timer.kallen_timer + - entity: person.kallen_stork + - entity: person.emmalynn_stork + - entity: automation.family_has_arrived + content_template: Family Arrived + - entity: automation.family_has_left + content_template: Family Left + - entity: 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: binary_sensor.raining + state_map: + 'off': It is not currently raining + 'on': It is currently raining + unavailable: I have no idea if it is raining + unknown: I have no idea if it is raining + content_template: '{{state}}' + - entity: input_boolean.recliner_mode + - entity: timer.washer_timer + state_map: + idle: not running + active: running + content_template: The washer is {{state}} + - entity: timer.dryer_timer + state_map: + idle: not running + active: running + content_template: The dryer is {{state}} + - entity: light.stairwell_led_strip + icon: hue:lightstrip + - entity: binary_sensor.internet + state_map: + 'off': Disconnected + 'on': Connected + title: Home Feed + - type: grid + cards: + - 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 + title: Communications + - type: grid + cards: + - type: markdown + content: >- + ## Documentation + + [Iron Nerd Automations Wiki + (***Outdated!***)](https://wiki.nerdhomeinc.com) + + [See what I'm working + on](https://github.com/users/tm24fan8/projects/1) + + + ## 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) + title: Misc + 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:stack-in-card + card_mod: + style: | + ha-card { + overflow: visible !important; + } + cards: + - type: custom:mushroom-light-card + icon: hue:room-living + name: Living Room + double_tap_action: + action: call-service + service: input_select.select_option + service_data: + option: Adaptive + target: + entity_id: input_select.living_room_scenes + hold_action: + action: more-info + entity: light.living_room_lights + use_light_color: true + show_brightness_control: true + show_color_temp_control: true + show_color_control: true + collapsible_controls: true + fill_container: false + layout: vertical + - type: custom:state-switch + entity: light.living_room_lights + states: + 'on': + type: custom:mushroom-template-card + primary: Current Scene + secondary: '{{ states(''input_text.living_room_selected_scene'') }}' + tap_action: + action: none + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:mushroom-template-card + entity: sensor.living_room_total_power_sensor + primary: Power Usage + secondary: '{{ states(''sensor.living_room_total_power_sensor'') }} W' + tap_action: + action: more-info + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:timer-bar-card + filter: true + 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 + - type: entities + entities: + - type: custom:paper-buttons-row + buttons: + - entity: light.living_room_overhead + name: Overhead + layout: icon|name_state + state: + case: first + state_icons: + 'on': hue:ceiling-devere + 'off': hue:ceiling-devere-off + unavailable: mdi:map-marker-question + - entity: light.living_room_led_strip + name: LED Strip + layout: icon|name_state + state: + case: first + state_icons: + 'on': hue:lightstrip + 'off': hue:lightstrip-off + unavailable: mdi:map-marker-question + - type: entities + entities: + - entity: input_select.living_room_scenes + - entity: select.living_room_led_strip_theme + name: LED Strip Theme + show_header_toggle: false + - type: glance + show_name: true + show_icon: true + show_state: true + state_color: true + entities: + - entity: binary_sensor.front_door + - entity: binary_sensor.front_window_1 + name: FW1 + - entity: binary_sensor.front_window_2 + name: FW2 + - type: glance + show_name: true + show_icon: true + show_state: true + state_color: true + entities: + - entity: sensor.living_room_front_temperature + name: Temp + - entity: sensor.living_room_front_illuminance + name: Light + - entity: binary_sensor.living_room_front_motion + name: Motion + - entity: binary_sensor.living_room_occupied + name: Occupied + - type: custom:fold-entity-row + head: + type: section + label: More Settings + entities: + - type: custom:paper-buttons-row + buttons: + - entity: switch.adaptive_lighting_living_room + name: Adaptive Lighting + layout: icon|name_state + state: + case: first + - entity: switch.adaptive_lighting_sleep_mode_living_room + name: Night Mode + layout: icon|name_state + state: + case: first + - type: custom:paper-buttons-row + buttons: + - entity: input_boolean.living_room_dynamic_scenes + name: Dynamic Scenes + layout: icon|name_state + state_icons: + 'on': mdi:animation + 'off': mdi:animation-outline + state: + case: first + - entity: input_boolean.living_room_entertainment_control + name: Media Scenes + layout: icon|name_state + state_icons: + 'on': mdi:television-ambient-light + 'off': mdi:television-off + state: + case: first + - type: custom:paper-buttons-row + buttons: + - entity: switch.adaptive_lighting_adapt_color_living_room + name: Adapt Color + layout: icon|name_state + state: + case: first + - entity: switch.adaptive_lighting_adapt_brightness_living_room + name: Adapt Brightness + layout: icon|name_state + state: + case: first + - 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 + secondary_info: Only used at night + - entity: input_number.living_room_lux_threshold + name: Lux Threshold + - entity: binary_sensor.living_room_sync_issue + name: Sync Issue + - entity: script.emma_rainbow_lights + name: Emma Rainbow + - type: grid + cards: + - type: custom:stack-in-card + card_mod: + style: | + ha-card { + overflow: visible !important; + } + cards: + - type: custom:mushroom-light-card + entity: light.downstairs_bathroom_lights + double_tap_action: + action: call-service + service: input_select.select_option + service_data: + option: Adaptive + target: + entity_id: input_select.downstairs_bathroom_scenes + name: Downstairs Bathroom + icon: mdi:toilet + layout: vertical + show_brightness_control: true + collapsible_controls: true + - type: custom:state-switch + entity: light.downstairs_bathroom_lights + states: + 'on': + type: custom:mushroom-template-card + primary: Current Scene + secondary: >- + {{ states('input_text.downstairs_bathroom_selected_scene') + }} + tap_action: + action: none + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:state-switch + entity: light.downstairs_bathroom_lights + states: + 'on': + type: custom:mushroom-template-card + entity: sensor.downstairs_bathroom_lights_power_sensor + primary: Power Usage + secondary: >- + {{ + states('sensor.downstairs_bathroom_lights_power_sensor') + }} W + tap_action: + action: more-info + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:timer-bar-card + filter: true + entities: + - entity: timer.downstairs_bathroom_lights_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.downstairs_bathroom_lights_timer + - type: entities + entities: + - type: custom:paper-buttons-row + base_config: + state_styles: + idle: + button: + background-color: var(--table-row-alternative-background-color) + name: + color: white + icon: + color: white + state: + color: white + ripple: + color: purple + active: + button: + background-color: var(--primary-color) + name: + color: white + icon: + color: white + state: + color: white + ripple: + color: purple + buttons: + - entity: timer.washer_timer + name: Washer + layout: icon|name_state + state: + case: first + state_text: + idle: 'Off' + active: Active + state_icons: + idle: mdi:washing-machine-off + active: mdi:washing-machine + unavailable: mdi:map-marker-question + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:stack-in-card + cards: + - type: entities + title: Washer Controls + entities: + - entity: input_number.washer_cycle_length + name: Cycle Length + - entity: input_datetime.washer_finished + name: Finished At + - entity: input_boolean.washer_finished + name: Cycle Finished + secondary_info: Turn off after collecting laundry + - type: custom:timer-bar-card + filter: true + show_empty: The washer is not currently running + entities: + - 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 + - type: custom:stack-in-card + mode: horizontal + cards: + - type: custom:button-card + entity: timer.washer_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: Start + icon: mdi:play + tap_action: + action: call-service + service: button.press + service_data: + entity_id: button.washer_start + hold_action: + action: more-info + entity: timer.washer_timer + - type: custom:button-card + entity: timer.washer_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: button.press + service_data: + entity_id: button.washer_cancel + hold_action: + action: more-info + entity: timer.washer_timer + - entity: timer.dryer_timer + name: Dryer + layout: icon|name_state + state: + case: first + state_text: + idle: 'Off' + active: Active + state_icons: + idle: mdi:tumble-dryer-off + active: mdi:tumble-dryer + unavailable: mdi:map-marker-question + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:stack-in-card + cards: + - type: entities + title: Dryer Controls + entities: + - entity: input_number.dryer_cycle_length + name: Cycle Length + - entity: input_datetime.dryer_finished + name: Finished At + - entity: input_boolean.dryer_finished + name: Cycle Finished + secondary_info: Turn off after collecting laundry + - type: custom:timer-bar-card + filter: true + show_empty: The dryer is not currently running + entities: + - 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 + - type: custom:stack-in-card + mode: horizontal + cards: + - type: custom:button-card + entity: timer.dryer_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: Start + icon: mdi:play + tap_action: + action: call-service + service: button.press + service_data: + entity_id: button.dryer_start + hold_action: + action: more-info + entity: timer.dryer_timer + - type: custom:button-card + entity: timer.dryer_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: button.press + service_data: + entity_id: button.dryer_cancel + hold_action: + action: more-info + entity: timer.dryer_timer + - type: entities + entities: + - entity: input_select.downstairs_bathroom_scenes + - type: glance + show_name: true + show_icon: true + show_state: true + state_color: true + entities: + - entity: sensor.downstairs_bathroom_temperature + name: Temp + - entity: sensor.downstairs_bathroom_illuminance + name: Light + - entity: binary_sensor.downstairs_bathroom_motion + name: Motion + - entity: binary_sensor.downstairs_bathroom_occupied + name: Occupied + - type: custom:fold-entity-row + head: + type: section + label: More Settings + entities: + - type: custom:paper-buttons-row + buttons: + - entity: switch.adaptive_lighting_downstairs_bathroom + name: Adaptive Lighting + layout: icon|name_state + state: + case: first + - entity: >- + switch.adaptive_lighting_sleep_mode_downstairs_bathroom + name: Night Mode + layout: icon|name_state + state: + case: first + - 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 + show_header_toggle: false + - type: grid + cards: + - type: custom:stack-in-card + card_mod: + style: | + ha-card { + overflow: visible !important; + } + cards: + - type: custom:mushroom-light-card + entity: light.tina_desk_lights + name: Tina Desk + tap_action: + action: call-service + service: input_boolean.toggle + service_data: + entity_id: input_boolean.tina_desk_lights + double_tap_action: + action: call-service + service: input_select.select_option + service_data: + entity_id: input_select.tina_desk_scenes + option: Reset + hold_action: + action: more-info + icon: mdi:floor-lamp + layout: vertical + use_light_color: true + show_brightness_control: true + show_color_temp_control: true + show_color_control: true + collapsible_controls: true + - type: custom:state-switch + entity: light.tina_desk_lights + states: + 'on': + type: custom:mushroom-template-card + primary: Current Scene + secondary: '{{ states(''input_text.tina_desk_selected_scene'') }}' + tap_action: + action: none + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:mushroom-template-card + entity: sensor.kallen_bedroom_lights_power_sensor + primary: Power Usage + secondary: '{{ states(''sensor.tina_desk_total_power_sensor'') }} W' + tap_action: + action: more-info + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: entities + entities: + - type: custom:paper-buttons-row + buttons: + - entity: light.tina_lamp_top + name: Top + layout: icon|name_state + state: + case: first + state_icons: + 'on': hue:floor-shade + 'off': hue:floor-shade-off + unavailable: mdi:map-marker-question + - entity: light.tina_lamp_side + name: Side + layout: icon|name_state + state: + case: first + state_icons: + 'on': hue:floor-shade + 'off': hue:floor-shade-off + unavailable: mdi:map-marker-question + - entity: light.tina_desk_strip + name: Strip + layout: icon|name_state + state: + case: first + state_icons: + 'on': hue:lightstrip + 'off': hue:lightstrip-off + unavailable: mdi:map-marker-question + icon: mdi:led-strip + - entity: input_select.tina_desk_scenes + name: Tina Desk Scenes + - entity: input_select.tina_lamp_scenes + name: Tina Lamp Scenes + - type: glance + show_name: true + show_icon: true + show_state: true + state_color: true + entities: + - entity: binary_sensor.tina_desk_occupied + name: Occupied + - type: custom:fold-entity-row + head: + type: section + label: More Settings + entities: + - type: custom:paper-buttons-row + buttons: + - entity: switch.adaptive_lighting_tina_lamp + name: Adaptive Lighting (Lamp) + layout: icon|name_state + state: + case: first + - entity: switch.adaptive_lighting_sleep_mode_tina_lamp + name: Night Mode (Lamp) + layout: icon|name_state + state: + case: first + - 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 + - type: grid + cards: + - type: custom:stack-in-card + card_mod: + style: | + ha-card { + overflow: visible !important; + } + cards: + - type: glance + title: Kitchen Card - Placeholder + show_name: true + show_icon: true + show_state: true + state_color: true + entities: + - entity: binary_sensor.kitchen_big_window + - type: grid + cards: + - type: custom:stack-in-card + card_mod: + style: | + ha-card { + overflow: visible !important; + } + cards: + - type: custom:mushroom-light-card + entity: light.mud_room_overhead + name: Mud Room + double_tap_action: + action: call-service + service: input_select.select_option + service_data: + option: Adaptive + target: + entity_id: input_select.mud_room_scenes + icon: hue:room-other + layout: vertical + show_brightness_control: true + collapsible_controls: true + - type: custom:state-switch + entity: light.mud_room_overhead + states: + 'on': + type: custom:mushroom-template-card + primary: Current Scene + secondary: '{{ states(''input_text.mud_room_selected_scene'') }}' + tap_action: + action: none + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:state-switch + entity: light.mud_room_overhead + states: + 'on': + type: custom:mushroom-template-card + entity: sensor.mud_room_overhead_power_sensor + primary: Power Usage + secondary: '{{ states(''sensor.mud_room_overhead_power_sensor'') }} W' + tap_action: + action: more-info + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:timer-bar-card + filter: true + entities: + - entity: timer.mud_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.mud_room_motion_timer + - type: entities + entities: + - entity: input_select.mud_room_scenes + show_header_toggle: false + - type: glance + show_name: true + show_icon: true + show_state: true + state_color: true + entities: + - entity: binary_sensor.back_door + - entity: binary_sensor.mud_room_window + - type: glance + show_name: true + show_icon: true + show_state: true + state_color: true + entities: + - entity: sensor.mud_room_temperature + name: Temp + - entity: sensor.mud_room_illuminance + name: Lux + - entity: binary_sensor.mud_room_motion + name: Motion + - entity: binary_sensor.mud_room_occupied + name: Occupied + - type: custom:fold-entity-row + head: + type: section + label: More Settings + entities: + - type: custom:paper-buttons-row + buttons: + - entity: switch.adaptive_lighting_mud_room + name: Adaptive Lighting + layout: icon|name_state + state: + case: first + - entity: switch.adaptive_lighting_sleep_mode_mud_room + name: Night Mode + layout: icon|name_state + state: + case: first + - 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 + max_columns: 4 + cards: [] + - 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 + visibility: + - condition: state + entity: light.second_floor_lights + state: 'on' + - type: grid + cards: + - type: custom:stack-in-card + card_mod: + style: | + ha-card { + overflow: visible !important; + } + cards: + - type: custom:mushroom-light-card + entity: light.stairwell_led_strip + icon: hue:lightstrip + double_tap_action: + action: call-service + service: script.stairwell_led_strip + service_data: + brightness: reset + name: Stairwell + layout: vertical + use_light_color: true + show_brightness_control: true + show_color_temp_control: true + show_color_control: true + collapsible_controls: true + fill_container: false + - type: custom:timer-bar-card + filter: true + entities: + - 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 + 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 + - type: glance + show_name: true + show_icon: true + show_state: true + state_color: true + entities: + - entity: binary_sensor.stairway_window_lower + name: SW1 + - type: glance + show_name: true + show_icon: true + show_state: true + state_color: true + entities: + - entity: sensor.stairwell_bottom_temperature + name: Temp + - entity: sensor.stairwell_bottom_illuminance + name: Light + - entity: binary_sensor.stairwell_bottom_motion + name: Motion + - entity: binary_sensor.stairwell_occupied + name: Occupied + - type: custom:fold-entity-row + head: + type: section + label: More Settings + entities: + - type: custom:paper-buttons-row + buttons: + - entity: switch.adaptive_lighting_stairwell + name: Adaptive Lighting + layout: icon|name_state + state: + case: first + - entity: switch.adaptive_lighting_sleep_mode_stairwell + name: Sleep Mode + layout: icon|name_state + state: + case: first + - 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 + - type: grid + cards: + - type: custom:stack-in-card + card_mod: + style: | + ha-card { + overflow: visible !important; + } + cards: + - type: custom:mushroom-light-card + entity: light.hallway_overhead + double_tap_action: + action: call-service + service: input_select.select_option + service_data: + option: Adaptive + target: + entity_id: input_select.upstairs_hallway_scenes + name: Upstairs Hallway + layout: vertical + show_brightness_control: true + collapsible_controls: true + - type: custom:state-switch + entity: light.hallway_overhead + states: + 'on': + type: custom:mushroom-template-card + primary: Current Scene + secondary: '{{ states(''input_text.upstairs_hallway_selected_scene'') }}' + tap_action: + action: none + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:state-switch + entity: light.hallway_overhead + states: + 'on': + type: custom:mushroom-template-card + entity: sensor.hallway_overhead_power_sensor + primary: Power Usage + secondary: '{{ states(''sensor.hallway_overhead_power_sensor'') }} W' + tap_action: + action: more-info + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:timer-bar-card + filter: true + entities: + - entity: timer.upstairs_hallway_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.upstairs_hallway_motion_timer + - type: entities + entities: + - entity: input_select.upstairs_hallway_scenes + - type: glance + show_name: true + show_icon: true + show_state: true + state_color: true + entities: + - entity: sensor.stairwell_top_temperature + name: Temp + - entity: sensor.stairwell_top_illuminance + name: Lux + - entity: binary_sensor.stairwell_top_motion + name: Motion + - entity: binary_sensor.upstairs_hallway_occupied + name: Occupied + show_header_toggle: false + - type: custom:fold-entity-row + head: + type: section + label: More Settings + entities: + - type: custom:paper-buttons-row + buttons: + - entity: switch.adaptive_lighting_upstairs_hallway + name: Adaptive Lighting + layout: icon|name_state + state: + case: first + - entity: switch.adaptive_lighting_sleep_mode_upstairs_hallway + name: Sleep Mode + layout: icon|name_state + state: + case: first + - 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 + - type: grid + cards: + - type: custom:stack-in-card + card_mod: + style: | + ha-card { + overflow: visible !important; + } + cards: + - type: custom:mushroom-light-card + entity: light.upstairs_bathroom_lights + double_tap_action: + action: call-service + service: input_select.select_option + service_data: + option: Adaptive + target: + entity_id: input_select.upstairs_bathroom_scenes + name: Upstairs Bathroom + icon: mdi:toilet + layout: vertical + show_brightness_control: true + collapsible_controls: true + - type: custom:state-switch + entity: light.upstairs_bathroom_lights + states: + 'on': + type: custom:mushroom-template-card + primary: Current Scene + secondary: >- + {{ states('input_text.upstairs_bathroom_selected_scene') + }} + tap_action: + action: none + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:state-switch + entity: light.upstairs_bathroom_lights + states: + 'on': + type: custom:mushroom-template-card + entity: sensor.upstairs_bathroom_lights_power_sensor + primary: Power Usage + secondary: >- + {{ states('sensor.upstairs_bathroom_lights_power_sensor') + }} W + tap_action: + action: more-info + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:timer-bar-card + filter: true + entities: + - 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 + 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 + - type: entities + entities: + - type: custom:paper-buttons-row + buttons: + - entity: light.upstairs_bathroom_left + name: Left + layout: icon|name_state + state: + case: first + state_icons: + unavailable: mdi:map-marker-question + - entity: light.upstairs_bathroom_middle_left + name: Mid L + layout: icon|name_state + state: + case: first + state_icons: + unavailable: mdi:map-marker-question + - entity: light.upstairs_bathroom_middle_right + name: Mid R + layout: icon|name_state + state: + case: first + state_icons: + unavailable: mdi:map-marker-question + - entity: light.upstairs_bathroom_right + name: Right + layout: icon|name_state + state: + case: first + state_icons: + unavailable: mdi:map-marker-question + - type: custom:paper-buttons-row + buttons: + - entity: light.upstairs_bathroom_wall + name: Wall + layout: icon|name_state + state: + case: first + state_icons: + 'on': hue:bulb-classic + 'off': hue:bulb-classic-off + unavailable: mdi:map-marker-question + show_header_toggle: false + - type: entities + entities: + - type: custom:paper-buttons-row + buttons: + - entity: input_boolean.shower_mode + name: Shower Mode + layout: icon|name_state + state: + case: first + - entity: input_select.upstairs_bathroom_scenes + show_header_toggle: false + - type: glance + show_name: true + show_icon: true + show_state: true + state_color: true + entities: + - entity: sensor.upstairs_bathroom_temperature + name: Temp + - entity: sensor.upstairs_bathroom_illuminance + name: Light + - entity: binary_sensor.upstairs_bathroom_motion + name: Motion + - entity: binary_sensor.upstairs_bathroom_occupied + name: Occupied + - type: custom:fold-entity-row + head: + type: section + label: More Settings + entities: + - type: custom:paper-buttons-row + buttons: + - entity: switch.adaptive_lighting_upstairs_bathroom + name: Adaptive Lighting + layout: icon|name_state + state: + case: first + - entity: switch.adaptive_lighting_sleep_mode_upstairs_bathroom + name: Sleep Mode + layout: icon|name_state + state: + case: first + - 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: Motion Off Delay + - entity: input_number.upstairs_bathroom_lux_threshold + name: Lux Threshold + - type: grid + cards: + - type: custom:stack-in-card + card_mod: + style: | + ha-card { + overflow: visible !important; + } + cards: + - type: custom:mushroom-light-card + entity: light.master_bedroom_lights + name: Master Bedroom + double_tap_action: + action: call-service + service: input_select.select_option + service_data: + option: Adaptive + target: + entity_id: input_select.master_bedroom_scenes + icon: mdi:bed + layout: vertical + show_brightness_control: true + collapsible_controls: true + - type: custom:state-switch + entity: light.master_bedroom_lights + states: + 'on': + type: custom:mushroom-template-card + primary: Current Scene + secondary: '{{ states(''input_text.master_bedroom_selected_scene'') }}' + tap_action: + action: none + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:mushroom-template-card + entity: sensor.master_bedroom_all_lights_power_sensor + primary: Power Usage + secondary: '{{ states(''sensor.master_bedroom_total_power_sensor'') }} W' + tap_action: + action: more-info + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:timer-bar-card + filter: true + entities: + - entity: timer.master_bedroom_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.master_bedroom_motion_timer + - type: entities + entities: + - type: custom:paper-buttons-row + buttons: + - entity: light.master_bedroom_front + name: Front + layout: icon|name_state + state: + case: first + state_icons: + 'on': hue:wall-lantern + 'off': hue:wall-lantern-off + unavailable: mdi:map-marker-question + - entity: light.master_bedroom_side + name: Side + layout: icon|name_state + state: + case: first + state_icons: + 'on': hue:wall-lantern + 'off': hue:wall-lantern-off + unavailable: mdi:map-marker-question + - entity: light.master_bedroom_closet + name: Closet + layout: icon|name_state + state: + case: first + state_icons: + 'on': hue:bulb-sultan + 'off': hue:bulb-sultan-off + unavailable: mdi:map-marker-question + - type: custom:paper-buttons-row + buttons: + - entity: fan.master_bedroom_fan + name: Fan + layout: icon|name_state + state_icons: + 'on': mdi:fan + 'off': mdi:fan-off + unavailable: mdi:map-marker-question + state: + case: first + - entity: input_boolean.master_bedroom_sleeping + name: Sleeping + layout: icon|name_state + state_icons: + 'on': mdi:sleep + 'off': mdi:sleep-off + state: + case: first + show_header_toggle: false + - type: custom:state-switch + entity: input_boolean.master_bedroom_aircon_installed + states: + 'on': + type: custom:simple-thermostat + entity: climate.master_bedroom_aircon + header: false + decimals: 0 + step_size: 1 + layout: + mode: + headings: false + names: true + icons: true + step: row + control: + hvac: + heat: false + preset: + none: + name: Eco Off + eco: + name: Eco On + boost: false + - type: custom:state-switch + entity: input_boolean.master_bedroom_aircon_installed + states: + 'on': + type: glance + show_name: true + show_icon: true + show_state: true + state_color: true + entities: + - entity: binary_sensor.master_bedroom_aircon_compressor + name: Compressor + - entity: binary_sensor.master_bedroom_aircon_filter_alert + name: Filter + - type: glance + show_name: true + show_icon: true + show_state: true + state_color: true + entities: + - entity: sensor.master_bedroom_temperature + name: Temp + - entity: sensor.master_bedroom_illuminance + name: Lux + - entity: binary_sensor.master_bedroom_motion + name: Motion + - entity: binary_sensor.master_bedroom_occupied + name: Occupied + - type: entities + entities: + - entity: input_select.master_bedroom_scenes + show_header_toggle: false + - type: custom:fold-entity-row + head: + type: section + label: More Settings + entities: + - type: custom:paper-buttons-row + buttons: + - entity: switch.adaptive_lighting_master_bedroom + name: Adaptive Lighting + layout: icon|name_state + state: + case: first + - entity: switch.adaptive_lighting_sleep_mode_master_bedroom + name: Sleep Mode + layout: icon|name_state + state: + case: first + - 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 + - type: grid + cards: + - type: custom:restriction-card + restrictions: + confirm: + text: Kallen is sleeping, are you sure? + condition: + value: 'on' + entity: input_boolean.kallen_sleeping + exemptions: + - user: 879b4c04e32841b3ad1d2763a11b4e70 + card: + type: custom:stack-in-card + card_mod: + style: | + ha-card { + overflow: visible !important; + } + cards: + - type: custom:mushroom-light-card + entity: light.kallen_bedroom_lights + name: Kallen Bedroom + double_tap_action: + action: call-service + service: input_select.select_option + service_data: + option: Adaptive + target: + entity_id: input_select.kallen_bedroom_scenes + icon: mdi:bunk-bed + layout: vertical + show_brightness_control: true + collapsible_controls: true + - type: custom:state-switch + entity: light.kallen_bedroom_lights + states: + 'on': + type: custom:mushroom-template-card + primary: Current Scene + secondary: '{{ states(''input_text.kallen_bedroom_selected_scene'') }}' + tap_action: + action: none + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:mushroom-template-card + entity: sensor.kallen_bedroom_lights_power_sensor + primary: Power Usage + secondary: '{{ states(''sensor.kallen_bedroom_lights_power_sensor'') }} W' + tap_action: + action: more-info + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:timer-bar-card + filter: true + entities: + - entity: timer.kallen_bedroom_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.kallen_bedroom_motion_timer + - type: entities + entities: + - type: custom:paper-buttons-row + buttons: + - entity: light.kallen_bedroom_overhead + name: Overhead + layout: icon|name_state + state: + case: first + state_icons: + 'on': hue:bulb-sultan + 'off': hue:bulb-sultan-off + unavailable: mdi:map-marker-question + - entity: light.kallen_bedroom_wall + name: Wall + layout: icon|name_state + state: + case: first + state_icons: + 'on': hue:bulb-sultan + 'off': hue:bulb-sultan-off + unavailable: mdi:map-marker-question + - type: entities + entities: + - type: custom:paper-buttons-row + buttons: + - entity: input_boolean.kallen_sleeping + name: Sleeping + layout: icon|name_state + state_icons: + 'on': mdi:sleep + 'off': mdi:sleep-off + unavailable: mdi:map-marker-question + state: + case: first + - entity: fan.kallen_bedroom_fan + name: Fan + layout: icon|name_state + state_icons: + 'on': mdi:fan + 'off': mdi:fan-off + unavailable: mdi:map-marker-question + state: + case: first + - entity: input_boolean.white_noise_kallen_bedroom + name: White Noise + layout: icon|name_state + state_icons: + 'on': mdi:volume-high + 'off': mdi:volume-off + unavailable: mdi:map-marker-question + state: + case: first + - entity: input_select.kallen_bedroom_scenes + show_header_toggle: false + - type: glance + show_name: true + show_icon: true + show_state: true + state_color: true + entities: + - entity: sensor.kallen_bedroom_temperature + name: Temp + - entity: sensor.kallen_bedroom_illuminance + name: Lux + - entity: binary_sensor.kallen_bedroom_motion + name: Motion + - entity: binary_sensor.kallen_bedroom_occupied + name: Occupied + - type: custom:fold-entity-row + head: + type: section + label: More Settings + entities: + - type: custom:paper-buttons-row + buttons: + - entity: switch.adaptive_lighting_kallen_bedroom + name: Adaptive Lighting + layout: icon|name_state + state: + case: first + - entity: switch.adaptive_lighting_sleep_mode_kallen_bedroom + name: Sleep Mode + layout: icon|name_state + state: + case: first + - entity: input_boolean.kallen_overnight + name: Overnight + layout: icon|name_state + state: + case: first + - 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 + - type: grid + cards: + - type: custom:restriction-card + restrictions: + confirm: + text: Emma is sleeping, are you sure? + condition: + value: 'on' + entity: input_boolean.emma_sleeping + exemptions: null + card: + type: custom:stack-in-card + card_mod: + style: | + ha-card { + overflow: visible !important; + } + cards: + - type: custom:mushroom-light-card + entity: light.emma_bedroom_light + name: Emma Bedroom + double_tap_action: + action: call-service + service: input_select.select_option + service_data: + option: Adaptive + target: + entity_id: input_select.emma_bedroom_scenes + icon: hue:room-nursery + layout: vertical + show_brightness_control: true + collapsible_controls: true + - type: custom:state-switch + entity: light.emma_bedroom_light + states: + 'on': + type: custom:mushroom-template-card + primary: Current Scene + secondary: '{{ states(''input_text.emma_bedroom_selected_scene'') }}' + tap_action: + action: none + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:mushroom-template-card + entity: sensor.emma_bedroom_light_power_sensor + primary: Power Usage + secondary: '{{ states(''sensor.emma_bedroom_total_power_sensor'') }} W' + tap_action: + action: more-info + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:timer-bar-card + filter: true + entities: + - 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 + 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 + - type: custom:state-switch + entity: input_boolean.emma_bedroom_aircon_installed + states: + 'on': + type: entities + state_color: true + entities: + - type: custom:paper-buttons-row + buttons: + - entity: input_boolean.emma_sleeping + name: Sleeping + layout: icon|name_state + state: + case: first + state_icons: + 'on': mdi:sleep + 'off': mdi:sleep-off + unavailable: mdi:map-marker-question + - entity: fan.emma_air_conditioner + name: A/C + layout: icon|name_state + state: + case: first + state_icons: + 'on': mdi:fan + 'off': mdi:fan-off + unavailable: mdi:map-marker-question + - entity: input_boolean.white_noise_emma_bedroom + name: White Noise + layout: icon|name_state + state: + case: first + state_icons: + 'on': mdi:volume-high + 'off': mdi:volume-off + unavailable: mdi:map-marker-question + - entity: binary_sensor.emma_aircon_compressor + name: Compressor + - entity: script.emma_aircon_shutoff + name: Aircon Shutoff + 'off': + type: entities + entities: + - type: custom:paper-buttons-row + buttons: + - entity: input_boolean.emma_sleeping + name: Sleeping + layout: icon|name_state + state: + case: first + state_icons: + 'on': mdi:sleep + 'off': mdi:sleep-off + unavailable: mdi:map-marker-question + - entity: input_boolean.white_noise_emma_bedroom + name: White Noise + layout: icon|name_state + state: + case: first + state_icons: + 'on': mdi:volume-high + 'off': mdi:volume-off + unavailable: mdi:map-marker-question + show_header_toggle: false + - type: entities + entities: + - entity: input_select.emma_bedroom_scenes + - type: glance + show_name: true + show_icon: true + show_state: true + state_color: true + entities: + - entity: sensor.emma_bedroom_temperature + name: Temp + - entity: sensor.emma_bedroom_illuminance + name: Light + - entity: binary_sensor.emma_bedroom_motion + name: Motion + - entity: binary_sensor.emma_bedroom_occupied + name: Occupied + - type: custom:fold-entity-row + head: + type: section + label: More Settings + entities: + - type: custom:paper-buttons-row + buttons: + - entity: switch.adaptive_lighting_emma_bedroom + name: Adaptive Lighting + layout: icon|name_state + state: + case: first + - entity: switch.adaptive_lighting_sleep_mode_emma_bedroom + name: Sleep Mode + layout: icon|name_state + state: + case: first + - 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 + max_columns: 4 + cards: [] + - title: Basement + path: basement + icon: mdi:home-floor-b + type: sections + sections: + - type: grid + cards: + - 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 + layout: vertical + - type: vertical-stack + cards: + - type: custom:mushroom-template-card + primary: Current Scene + secondary: '{{ states(''input_text.basement_studio_selected_scene'') }}' + tap_action: + action: none + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:mushroom-template-card + entity: sensor.basement_studio_lights_power_sensor + primary: Power Usage + secondary: '{{ states(''sensor.basement_total_power_sensor'') }} W' + tap_action: + action: more-info + hold_action: + action: none + double_tap_action: + action: none + fill_container: false + layout: vertical + visibility: + - condition: state + entity: light.basement_studio_lights + state: 'on' + - type: custom:timer-bar-card + filter: true + entities: + - 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 + visibility: + - condition: or + conditions: + - condition: state + entity: timer.basement_studio_door_timer + state: running + - condition: state + entity: timer.basement_studio_door_timer + state: paused + - type: custom:bubble-card + card_type: button + button_type: slider + entity: light.basement_led_strip_1 + name: LED Strip 1 + show_state: true + show_attribute: true + attribute: brightness + show_icon: true + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + columns: 2 + card_layout: large + - type: custom:bubble-card + card_type: button + button_type: slider + entity: light.basement_stairwell + name: Stairwell + show_state: true + show_attribute: true + attribute: brightness + show_icon: true + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + columns: 2 + card_layout: large + - type: custom:bubble-card + card_type: button + button_type: slider + entity: light.basement_short_lamp + name: Short Lamp + show_state: true + show_attribute: true + attribute: brightness + show_icon: true + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + columns: 2 + card_layout: large + - 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 + show_icon: true + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + columns: 2 + card_layout: large + - type: entities + entities: + - type: custom:paper-buttons-row + buttons: + - entity: input_boolean.recliner_mode + layout: icon|name_state + name: Recliner Mode + state_icons: + unavailable: mdi:map-marker-question + state: + case: first + - entity: input_boolean.basement_studio_entertainment_control + layout: icon|name_state + name: Entertainment + state_icons: + unavailable: mdi:map-marker-question + state: + case: first + state_color: true + show_header_toggle: false + - type: entities + entities: + - type: custom:paper-buttons-row + buttons: + - entity: fan.basement_fan + name: Fan + layout: icon|name_state + state_icons: + 'on': mdi:fan + 'off': mdi:fan-off + unavailable: mdi:map-marker-question + state: + case: first + - entity: input_boolean.white_noise_basement + name: White Noise + layout: icon|name_state + state_icons: + 'on': mdi:volume-high + 'off': mdi:volume-off + unavailable: mdi:map-marker-question + state: + case: first + - entity: input_boolean.studio_quiet + name: Quiet + layout: icon|name_state + state_icons: + unavailable: mdi:map-marker-question + state: + case: first + - entity: input_boolean.gaming_mode + name: Gaming + layout: icon|name_state + state_icons: + unavailable: mdi:map-marker-question + state: + case: first + state_color: true + show_header_toggle: false + - type: custom:mushroom-select-card + entity: input_select.basement_studio_scenes + layout: horizontal + name: Scenes + secondary_info: none + - type: custom:mushroom-select-card + entity: select.basement_led_strip_1_theme + layout: horizontal + name: LED Strip Theme + secondary_info: none + - type: glance + show_name: true + show_icon: true + show_state: true + state_color: true + entities: + - entity: binary_sensor.basement_studio_door + name: Door + - type: glance + show_name: true + show_icon: true + show_state: true + state_color: true + entities: + - entity: sensor.basement_studio_temperature + name: Temp + - entity: sensor.basement_studio_illuminance + name: Lux + - entity: binary_sensor.basement_studio_motion + name: Motion + - entity: binary_sensor.basement_occupied + name: Occupied + - type: custom:fold-entity-row + show_header_toggle: false + state_color: true + head: + type: section + label: More Settings + entities: + - type: custom:paper-buttons-row + buttons: + - entity: switch.adaptive_lighting_basement_studio + name: Adaptive Lighting + layout: icon|name_state + state: + case: first + - entity: switch.adaptive_lighting_sleep_mode_basement_studio + name: Night Mode + layout: icon|name_state + state: + case: first + - type: custom:paper-buttons-row + buttons: + - entity: switch.adaptive_lighting_adapt_brightness_basement_studio + name: Adapt Brightness + layout: icon|name_state + state: + case: first + - entity: switch.adaptive_lighting_adapt_color_basement_studio + name: Adapt Color + layout: icon|name_state + state: + case: first + - entity: input_boolean.basement_studio_dynamic_scenes + name: Dynamic Scenes + layout: icon|name_state + state: + case: first + - 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 + title: Basement Studio + visibility: + - condition: or + conditions: + - condition: state + entity: input_boolean.studio_quiet + state: 'off' + - condition: user + users: + - c3909d27048140729f002aaef0391775 + - type: grid + cards: + - 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 + title: Furnace Room + 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:auto-entities + show_empty: false + card: + type: entities + title: Lights on + show_header_toggle: false + state_color: true + filter: + include: + - group: light.outside_lights + exclude: + - state: 'off' + - state: unavailable + sort: + method: friendly_name + visibility: + - condition: state + entity: light.outside_lights + state: 'on' + - type: custom:stack-in-card + card_mod: + style: | + ha-card { + overflow: visible !important; + } + cards: + - type: custom:mushroom-light-card + icon: hue:room-porch + name: Front Porch + double_tap_action: + action: call-service + service: input_select.select_option + service_data: + option: Adaptive + target: + entity_id: input_select.front_porch_scenes + hold_action: + action: more-info + entity: light.front_porch_light + use_light_color: true + show_brightness_control: true + show_color_temp_control: true + show_color_control: true + collapsible_controls: true + fill_container: false + layout: vertical + - type: custom:state-switch + entity: light.front_porch_light + states: + 'on': + type: custom:mushroom-template-card + primary: Current Scene + secondary: '{{ states(''input_text.front_porch_selected_scene'') }}' + tap_action: + action: none + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:state-switch + entity: light.front_porch_light + states: + 'on': + type: custom:mushroom-template-card + entity: sensor.outside_lights_power_sensor + primary: Power Usage + secondary: '{{ states(''sensor.outside_lights_power_sensor'') }} W' + tap_action: + action: more-info + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:timer-bar-card + filter: true + entities: + - 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 + 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 + - type: entities + entities: + - entity: input_select.front_porch_scenes + show_header_toggle: false + - type: glance + show_name: true + show_icon: true + show_state: true + state_color: true + entities: + - entity: binary_sensor.front_doorbell_ding_mqtt + name: Ding + - entity: binary_sensor.front_doorbell_motion_mqtt + name: Motion + - entity: sensor.front_doorbell_battery_mqtt + name: Battery + - type: custom:fold-entity-row + head: + type: section + label: More Settings + entities: + - type: custom:paper-buttons-row + buttons: + - entity: switch.adaptive_lighting_front_porch + name: Adaptive Lighting + layout: icon|name_state + state: + case: first + - entity: input_boolean.front_porch_light_on + name: Automation + layout: icon|name_state + state: + case: first + - type: custom:paper-buttons-row + buttons: + - entity: input_boolean.delivery_mode + name: Delivery Mode + layout: icon|name_state + state: + case: first + - entity: input_boolean.holiday_mode + name: Holiday Mode + layout: icon|name_state + state: + case: first + - 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_motion_off_delay + name: Lights Off Delay + max_columns: 4 + cards: [] + - title: Housewide + path: housewide + icon: mdi:home-lightbulb-outline + type: sections + sections: + - type: grid + cards: + - 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_naptime_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_naptime_update + - 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 + title: Running Timers + - type: grid + cards: + - type: entities + entities: + - entity: script.give_me_darkness + secondary_info: After kid's bedtime + - entity: button.good_morning + secondary_info: Optional, when we wake up + - entity: button.goodnight + secondary_info: When Tony goes to bed + - entity: script.global_on + secondary_info: Turn all lights on + - entity: script.global_off + secondary_info: Turn all lights/fans off + - entity: script.max_brightness + secondary_info: Turn all lights on at 100% + - entity: script.going_upstairs + secondary_info: When coming to bed from basement + - entity: button.basement_on_manual + name: Basement On + secondary_info: Turns on lights/computer/TV + - entity: button.sunset_lights_trigger + name: Sunset Lights Manual Trigger + secondary_info: If flow gets interrupted + - entity: script.adaptive_on_first_floor + secondary_info: Reset lights to adaptive + - entity: script.adaptive_on_second_floor + secondary_info: Reset lights to adaptive + - entity: script.bright_on_first_floor + - entity: script.bright_on_second_floor + - entity: script.evening_on_first_floor + - entity: script.evening_on_second_floor + - entity: script.emma_rainbow_lights + title: Global Scenes + - type: grid + cards: + - 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 + title: Announcements + - type: grid + cards: + - 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 + title: Room Illuminance + max_columns: 4 + cards: [] + - title: Climate + path: climate + icon: mdi:home-thermometer + type: sections + sections: + - type: grid + cards: + - type: vertical-stack + cards: + - 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 + 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 + title: Overview + - type: grid + cards: + - type: entities + entities: + - entity: input_boolean.master_bedroom_aircon_installed + name: Aircon Installed + - entity: input_boolean.master_bedroom_climate_protocol + name: Climate Automations + state_color: true + show_header_toggle: false + - type: entities + entities: + - entity: switch.master_bedroom_aircon_display + name: A/C Display + - 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_climate_reset + name: Climate Reset + show_header_toggle: false + state_color: true + visibility: + - condition: state + entity: input_boolean.master_bedroom_aircon_installed + state: 'on' + title: Master Bedroom + visibility: + - condition: user + users: + - f387a983651a4321a7411ff8cf36f949 + - c3909d27048140729f002aaef0391775 + - type: grid + cards: + - type: custom:state-switch + entity: input_boolean.emma_bedroom_aircon_installed + transition: flip + states: + 'on': + type: entities + entities: + - entity: input_boolean.emma_bedroom_aircon_installed + name: Emma Bedroom Aircon Installed + - entity: script.emma_aircon_shutoff + name: Shut A/C off safely + show_header_toggle: false + state_color: true + 'off': + type: entities + entities: + - entity: input_boolean.emma_bedroom_aircon_installed + name: Emma Bedroom Aircon Installed + secondary_info: Turn on in summer + show_header_toggle: false + state_color: true + title: Emma Bedroom + visibility: + - condition: user + users: + - f387a983651a4321a7411ff8cf36f949 + - c3909d27048140729f002aaef0391775 + - type: grid + cards: + - 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: sensor.master_bedroom_target_temp + icon: mdi:thermostat + name: Master 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: fan.emma_air_conditioner + exclude_states: + - unavailable + - unknown + - entity: sensor.master_bedroom_aircon_eco_mode + name: Master Bedroom Eco Mode + exclude_states: + - unavailable + - unknown + - entity: sensor.master_bedroom_aircon_fan_mode + name: Master Bedroom A/C Fan + exclude_states: + - unavailable + - unknown + - entity: binary_sensor.emma_aircon_fan + name: Emma A/C Fan + exclude_states: + - unavailable + - unknown + - entity: binary_sensor.emma_aircon_compressor + name: Emma A/C Compressor + 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 + title: Climate Feed + max_columns: 4 + cards: [] + - title: Kallens Korner + path: kallens-korner + icon: mdi:human-male-boy + type: sections + sections: + - type: grid + cards: + - type: custom:flipdown-timer-card + entity: timer.kallen_timer + name: Kallen Activity Timer + duration: '00:00:00' + show_title: false + show_header: true + show_error: false + show_hour: auto + styles: + button: + location: hide + 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 + title: Activity Timer + - type: grid + cards: + - 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 + title: School + - type: grid + cards: + - type: horizontal-stack + cards: + - type: gauge + entity: sensor.kallen_desktop_cpu_usage + unit: '%' + min: 0 + max: 100 + needle: true + segments: + - from: 0 + color: var(--success-color) + - from: 75 + color: var(--warning-color) + - from: 90 + color: var(--error-color) + label: ALERT + name: CPU Usage + - type: gauge + entity: sensor.kallen_desktop_memory_usage + name: RAM Usage + unit: '%' + min: 0 + max: 100 + needle: true + segments: + - from: 0 + color: var(--success-color) + - from: 75 + color: var(--warning-color) + - from: 90 + color: var(--error-color) + label: ALERT + visibility: + - condition: state + entity: binary_sensor.kallen_desktop_on + state: 'on' + - type: horizontal-stack + cards: + - type: gauge + entity: sensor.kallen_desktop_cpu_temperature + unit: °C + min: 0 + max: 100 + needle: true + segments: + - from: 0 + color: var(--success-color) + - from: 80 + color: var(--warning-color) + - from: 95 + color: var(--error-color) + label: ALERT + name: CPU Temp + - type: gauge + entity: sensor.kallen_desktop_gpu_temperature + name: GPU Temp + unit: °C + min: 0 + max: 100 + needle: true + segments: + - from: 0 + color: var(--success-color) + - from: 88 + color: var(--warning-color) + - from: 95 + color: var(--error-color) + label: ALERT + visibility: + - condition: state + entity: binary_sensor.kallen_desktop_on + state: 'on' + - type: entities + entities: + - entity: binary_sensor.kallen_desktop_on + name: Status + show_header_toggle: false + state_color: true + - 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_gpu_core_load + name: GPU Core Load + - entity: sensor.kallen_desktop_gpu_memory_used + name: GPU VRAM Used + - 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: custom:battery-state-card + icon: mdi:harddisk + color_thresholds: + - 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: entities + entities: + - entity: script.kallen_desktop_refresh + name: Refresh + - entity: script.kallen_desktop_reboot + name: Reboot + - entity: script.kallen_desktop_shutdown + name: Shutdown + - entity: script.kallen_desktop_wake + name: Wake + title: Kallen Desktop + - type: grid + cards: + - type: entities + entities: + - entity: input_boolean.kallen_awake + name: I am awake + - entity: input_select.kallen_morning_briefing_location + name: Morning Briefing Location + title: Settings + 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: 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 + title: General + - type: grid + cards: + - type: entities + entities: + - entity: sensor.local_minimum_gas_price + name: Minimum + - entity: sensor.local_average_gas_price + name: Average + - entity: sensor.local_maximum_gas_price + name: Maximum + - type: custom:auto-entities + card: + type: entities + filter: + include: [] + exclude: [] + entities: + - entity: sensor.south_side_shell + - entity: sensor.circle_k + - entity: sensor.kroger + - entity: sensor.kecks + - entity: sensor.the_barn + - entity: sensor.the_big_fish + - entity: sensor.marathon_cleveland_avenue + - entity: sensor.speedway + - entity: sensor.meijer + - entity: sensor.east_side_shell + - entity: sensor.shell_ottawa_avenue + - entity: sensor.ridis + sort: + method: state + numeric: true + reverse: false + ignore_case: false + title: Defiance Gas Statistics + - type: grid + cards: + - 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 + title: Router Stats + max_columns: 3 + cards: [] + - title: Mobile Devices + path: mobile-devices + icon: mdi:cellphone-information + type: sections + sections: + - type: grid + cards: + - type: custom:decluttering-card + template: iphone_entities_card + variables: + - device: tony_s_iphone + title: Tony's iPhone + - type: grid + cards: + - type: custom:decluttering-card + template: phone_info_grid + variables: + - device: tony_s_iphone + title: Location Info - Tony + - type: grid + cards: + - type: custom:decluttering-card + template: iphone_entities_card + variables: + - device: tinas_iphone + title: Tina's iPhone + - type: grid + cards: + - type: custom:decluttering-card + template: phone_info_grid + variables: + - device: tinas_iphone + title: Location Info - Tina + - type: grid + cards: + - 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.rite_aid + - entity: zone.the_elder_storks + - entity: zone.wal_mart + - entity: zone.latty + hours_to_show: 24 + theme_mode: dark + title: Map + - type: grid + cards: + - type: custom:decluttering-card + template: iphone_entities_card + variables: + - device: kallen_iphone + title: Kallen's iPhone + - type: grid + cards: + - type: custom:decluttering-card + template: phone_info_grid + variables: + - device: kallen_iphone + title: Location Info - Kallen + - type: grid + cards: + - type: custom:decluttering-card + template: ipad_entities_card + variables: + - device: tony_s_ipad + title: Tony's iPad + - type: grid + cards: + - type: custom:decluttering-card + template: ipad_entities_card + variables: + - device: tinas_ipad + title: Tina’s iPad + - type: grid + cards: + - 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 + title: Tony's Accessories + - type: grid + cards: + - 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 + title: Tina's Accessories + max_columns: 4 + cards: [] + - title: Computers + path: computers + icon: mdi:laptop + type: sections + sections: + - type: grid + cards: + - type: vertical-stack + cards: + - type: horizontal-stack + cards: + - type: gauge + entity: sensor.tony_desktop_power + name: Tony Desktop + unit: W + min: 0 + max: 750 + needle: true + segments: + - from: 0 + color: var(--success-color) + label: 'Off' + - from: 10 + color: var(--success-color) + - from: 500 + color: var(--warning-color) + - from: 650 + color: var(--error-color) + label: ALERT + - type: gauge + entity: sensor.tina_desktop_power + name: Tina Desktop + unit: W + min: 0 + max: 750 + needle: true + segments: + - from: 0 + color: var(--success-color) + label: 'Off' + - from: 10 + color: var(--success-color) + - from: 500 + color: var(--warning-color) + - from: 650 + color: var(--error-color) + label: ALERT + - type: horizontal-stack + cards: + - type: gauge + entity: sensor.kallen_desktop_power + name: Kallen Desktop + unit: W + min: 0 + max: 500 + needle: true + segments: + - from: 0 + color: var(--success-color) + label: 'Off' + - from: 10 + color: var(--success-color) + - from: 350 + color: var(--warning-color) + - from: 450 + color: var(--error-color) + label: ALERT + - type: gauge + entity: sensor.basement_server_power + name: Basement Server + unit: W + min: 0 + max: 650 + needle: true + segments: + - from: 0 + color: var(--success-color) + label: 'Off' + - from: 10 + color: var(--success-color) + - from: 400 + color: var(--warning-color) + - from: 550 + color: var(--error-color) + label: ALERT + title: Power Usage + - type: grid + cards: + - type: horizontal-stack + cards: + - type: gauge + entity: sensor.tony_asus_cpu_usage + unit: '%' + min: 0 + max: 100 + needle: true + segments: + - from: 0 + color: var(--success-color) + - from: 75 + color: var(--warning-color) + - from: 90 + color: var(--error-color) + label: ALERT + name: CPU Usage + - type: gauge + entity: sensor.tony_desktop_memory_usage + name: RAM Usage + unit: '%' + min: 0 + max: 100 + needle: true + segments: + - from: 0 + color: var(--success-color) + - from: 75 + color: var(--warning-color) + - from: 90 + color: var(--error-color) + label: ALERT + 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: gauge + entity: sensor.tony_desktop_cpu_temperature + unit: °C + min: 0 + max: 100 + needle: true + segments: + - from: 0 + color: var(--success-color) + - from: 80 + color: var(--warning-color) + - from: 95 + color: var(--error-color) + label: ALERT + name: CPU Temp + - type: gauge + entity: sensor.tony_desktop_gpu_temperature + name: GPU Temp + unit: °C + min: 0 + max: 100 + needle: true + segments: + - from: 0 + color: var(--success-color) + - from: 88 + color: var(--warning-color) + - from: 95 + color: var(--error-color) + label: ALERT + 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: entities + entities: + - entity: binary_sensor.tony_desktop_on + name: Status + show_header_toggle: false + state_color: true + - 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: binary_sensor.tony_desktop_idle + name: Idle + - entity: sensor.tony_asus_system_uptime + name: System Uptime + - entity: sensor.tony_asus_system_idle_time + name: Idle Time + - entity: sensor.tony_desktop_gpu_core_load + name: GPU Core Load + - entity: sensor.tony_desktop_gpu_memory_used + name: GPU VRAM Used + - entity: sensor.tony_asus_memory_used + name: Memory Used + - entity: sensor.tony_desktop_virtual_memory_usage + name: Virtual Memory Usage + - 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:\ + - 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 + visibility: + - condition: state + entity: binary_sensor.tony_desktop_on + state: 'on' + - type: custom:battery-state-card + icon: mdi:harddisk + color_thresholds: + - 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: Storage + to: Drive + - from: Temperature + to: Temp + filter: + include: + - name: entity_id + value: sensor.tony_desktop_storage_*_temperature + visibility: + - condition: state + entity: binary_sensor.tony_desktop_on + state: 'on' + - type: entities + entities: + - entity: script.tony_desktop_refresh + name: Refresh + - entity: script.tony_desktop_reboot + name: Reboot + - entity: script.tony_desktop_shutdown + name: Shutdown + - entity: script.tony_desktop_wake + name: Wake + title: Tony Desktop + - type: grid + cards: + - type: horizontal-stack + cards: + - type: gauge + entity: sensor.xia_desktop_cpu_usage + unit: '%' + min: 0 + max: 100 + needle: true + segments: + - from: 0 + color: var(--success-color) + - from: 75 + color: var(--warning-color) + - from: 90 + color: var(--error-color) + label: ALERT + name: CPU Usage + - type: gauge + entity: sensor.xia_desktop_memory_usage + name: RAM Usage + unit: '%' + min: 0 + max: 100 + needle: true + segments: + - from: 0 + color: var(--success-color) + - from: 75 + color: var(--warning-color) + - from: 90 + color: var(--error-color) + label: ALERT + 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: gauge + entity: sensor.tina_desktop_cpu_temperature + unit: °C + min: 0 + max: 100 + needle: true + segments: + - from: 0 + color: var(--success-color) + - from: 80 + color: var(--warning-color) + - from: 95 + color: var(--error-color) + label: ALERT + name: CPU Temp + - type: gauge + entity: sensor.tina_desktop_gpu_temperature + name: GPU Temp + unit: °C + min: 0 + max: 100 + needle: true + segments: + - from: 0 + color: var(--success-color) + - from: 88 + color: var(--warning-color) + - from: 95 + color: var(--error-color) + label: ALERT + 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: entities + entities: + - entity: binary_sensor.tina_desktop_on + name: Status + show_header_toggle: false + state_color: true + - 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: binary_sensor.tina_desktop_idle + name: Idle + - entity: sensor.xia_desktop_system_uptime + name: System Uptime + - entity: sensor.xia_desktop_system_idle_time + name: Idle Time + - entity: sensor.tina_desktop_gpu_core_load + name: GPU Core Load + - entity: sensor.tina_desktop_gpu_memory_used + name: GPU VRAM Used + - entity: sensor.xia_desktop_memory_used + name: Memory Used + - entity: sensor.tina_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:\ + - entity: sensor.xia_desktop_windowsupdates_driver_updates_pending + name: Windows Updates - Drivers + - entity: sensor.xia_desktop_windowsupdates_software_updates_pending + name: Windows Updates - Software + show_header_toggle: false + state_color: true + visibility: + - condition: state + entity: binary_sensor.tina_desktop_on + state: 'on' + - type: custom:battery-state-card + icon: mdi:harddisk + color_thresholds: + - 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: 'Tina Desktop - ' + to: '' + - from: 'Xia Desktop - ' + to: '' + - from: Storage + to: Drive + - from: Temperature + to: Temp + filter: + include: + - name: entity_id + value: sensor.tina_desktop_storage_*_temperature + visibility: + - condition: state + entity: binary_sensor.tina_desktop_on + state: 'on' + - type: entities + entities: + - entity: script.tina_desktop_refresh + name: Refresh + - entity: script.tina_desktop_reboot + name: Reboot + - entity: script.tina_desktop_shutdown + name: Shutdown + - entity: script.tina_desktop_wake + name: Wake + title: Tina Desktop + - type: grid + cards: + - type: horizontal-stack + cards: + - type: gauge + entity: sensor.asus_laptop_cpu_usage + unit: '%' + min: 0 + max: 100 + needle: true + segments: + - from: 0 + color: var(--success-color) + - from: 75 + color: var(--warning-color) + - from: 90 + color: var(--error-color) + label: ALERT + name: CPU Usage + - type: gauge + entity: sensor.asus_laptop_memory_usage + name: RAM Usage + unit: '%' + min: 0 + max: 100 + needle: true + segments: + - from: 0 + color: var(--success-color) + - from: 75 + color: var(--warning-color) + - from: 90 + color: var(--error-color) + label: ALERT + 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: gauge + entity: sensor.asus_laptop_cpu_temperature + unit: °C + min: 0 + max: 100 + needle: true + segments: + - from: 0 + color: var(--success-color) + - from: 80 + color: var(--warning-color) + - from: 95 + color: var(--error-color) + label: ALERT + name: CPU Temp + - type: gauge + entity: sensor.asus_laptop_gpu_temperature + name: GPU Temp + unit: °C + min: 0 + max: 100 + needle: true + segments: + - from: 0 + color: var(--success-color) + - from: 88 + color: var(--warning-color) + - from: 95 + color: var(--error-color) + label: ALERT + 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: 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_gpu_core_load + name: GPU Core Load + - entity: sensor.asus_laptop_gpu_memory_used + name: GPU VRAM Used + - 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: custom:battery-state-card + icon: mdi:harddisk + color_thresholds: + - 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: entities + entities: + - entity: script.asus_laptop_refresh + name: Refresh + - entity: script.asus_laptop_reboot + name: Reboot + - entity: script.asus_laptop_shutdown + name: Shutdown + title: Asus Laptop + visibility: + - condition: state + entity: binary_sensor.asus_laptop_idle + state_not: unavailable + - type: grid + cards: + - 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 + title: Canon PIXMA TS3522 + max_columns: 4 + cards: [] + - title: Gaming Stuff + path: gaming-stuff + icon: mdi:microsoft-xbox-controller + type: sections + sections: + - type: grid + cards: + - 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 + title: Gamer Score Leaderboard + - type: grid + cards: + - type: entities + entities: + - entity: sensor.tm24fan_status + name: Status + - entity: binary_sensor.tm24fan + name: Online + - entity: binary_sensor.tm24fan_in_game + name: In Game + - entity: binary_sensor.tm24fan_in_multiplayer + name: In Multiplayer + - entity: binary_sensor.tm24fan_in_party + name: In Party + - entity: sensor.tm24fan_account_tier + name: Account Tier + - entity: sensor.tm24fan_gamer_score + name: Gamer Score + show_header_toggle: false + title: ironnerd24 + - type: grid + cards: + - type: entities + entities: + - entity: sensor.kjsgamer2012_status + name: Status + - entity: binary_sensor.kjsgamer2012 + name: Online + - entity: binary_sensor.kjsgamer2012_in_game + name: In Game + - entity: binary_sensor.kjsgamer2012_in_multiplayer + name: In Multiplayer + - entity: binary_sensor.kjsgamer2012_in_party + name: In Party + - entity: sensor.kjsgamer2012_account_tier + name: Account Tier + - entity: sensor.kjsgamer2012_gamer_score + name: Gamer Score + show_header_toggle: false + title: kjsgamer2012 + - type: grid + cards: + - type: entities + entities: + - entity: sensor.irishpirate1988_status + name: Status + - entity: binary_sensor.irishpirate1988 + name: Online + - entity: binary_sensor.irishpirate1988_in_game + name: In Game + - entity: binary_sensor.irishpirate1988_in_multiplayer + name: In Multiplayer + - entity: binary_sensor.irishpirate1988_in_party + name: In Party + - entity: sensor.irishpirate1988_account_tier + name: Account Tier + - entity: sensor.irishpirate1988_gamer_score + name: Gamer Score + show_header_toggle: false + title: irishpirate1988 + - type: grid + cards: + - type: entities + entities: + - entity: sensor.twitch_ironnerd24 + - entity: sensor.twitch_xia_p988 + show_header_toggle: false + title: Twitch + - type: grid + cards: + - 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 + title: Steam + max_columns: 4 + cards: [] + - title: Sports + path: sports + icon: mdi:football + type: sections + sections: + - type: grid + cards: + - 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: grid + cards: + - 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: grid + cards: + - 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' + - type: grid + cards: + - 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: grid + cards: + - 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' + - type: grid + cards: + - 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: grid + cards: + - 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: grid + cards: + - 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' + - type: grid + cards: + - 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' + - type: grid + cards: + - 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 %} + max_columns: 5 + cards: [] + - theme: Backend-selected + title: Formula 1 + path: formula-1 + icon: fas:flag-checkered + type: custom:horizontal-layout + 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: custom:battery-state-card + sort_by_level: asc + bulk_rename: + - from: Battery + to: '' + - from: Stratton Ave + to: '' + - from: Dimmer Switch + to: '' + collapse: + - name: 'Door Sensors (min: {min}%, count: {count})' + secondary_info: Battery levels {range}% + icon: mdi:door + entities: + - sensor.front_door_battery + - sensor.back_door_battery + - sensor.basement_studio_door_battery + - sensor.downstairs_bathroom_door_battery + - name: 'Window Sensors (min: {min}%, count: {count})' + secondary_info: Battery levels {range}% + icon: mdi:window-closed + entities: + - sensor.front_window_battery_1 + - sensor.front_window_battery_2 + - sensor.front_window_battery_3 + - sensor.side_window_1_battery + - sensor.side_window_2_battery + - sensor.side_window_3_battery + - sensor.side_window_4_battery + - sensor.back_window_1_battery + - sensor.back_window_2_battery + - sensor.stairway_window_lower_battery + - sensor.stairway_window_upper_battery + - sensor.kitchen_big_window_battery + - sensor.kitchen_sink_window_battery + - sensor.mud_room_window_battery + - sensor.downstairs_bathroom_window_1_battery + - sensor.downstairs_bathroom_window_2_battery + - sensor.upstairs_bathroom_window_battery + - name: 'Glass Break Sensors (min: {min}%, count: {count})' + secondary_info: Battery levels {range}% + icon: mdi:image-broken-variant + entities: + - sensor.living_room_glass_break_battery + - name: 'Motion Detectors (min: {min}%, count: {count})' + secondary_info: Battery levels {range}% + icon: mdi:motion-sensor + entities: + - sensor.living_room_front_battery + - sensor.upstairs_bathroom_battery + - sensor.downstairs_bathroom_battery + - sensor.emma_bedroom_battery + - sensor.stairwell_bottom_battery + - sensor.basement_studio_battery + - sensor.kallen_bedroom_battery + - sensor.mud_room_battery + - sensor.stairwell_top_battery + - sensor.living_room_back_battery + - sensor.master_bedroom_battery + - name: 'Dimmer Switches (min: {min}%, count: {count})' + secondary_info: Battery Levels {range}% + icon: mdi:toggle-switch + entities: + - sensor.kallen_bedroom_dimmer_switch_battery + - sensor.tina_desk_dimmer_switch_battery + - sensor.emma_bedroom_dimmer_switch_battery + - sensor.master_bedroom_dimmer_switch_battery + - sensor.living_room_dimmer_switch_battery + filter: + include: + - name: entity_id + value: '*_battery' + - name: entity_id + value: '*battery_mqtt' + exclude: + - name: entity_id + value: '*iphone*' + - name: entity_id + value: '*ipad*' + - name: entity_id + value: '*airpod*' + - name: entity_id + value: '*apple*' + - name: entity_id + value: '*chrome*' + - name: entity_id + value: sensor.front_doorbell_battery + tap_action: more-info + title: Batteries + - type: grid + cards: + - type: custom:auto-entities + card: + type: entities + show_header_toggle: false + filter: + include: + - name: Number of* + - name: Lines of Code + exclude: [] + sort: + method: state + reverse: true + numeric: true + - type: entities + entities: + - entity: sensor.mariadb_database_size + name: MariaDB + show_header_toggle: false + state_color: true + title: By The Numbers + - type: grid + cards: + - 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 + title: Usage Stats + - type: grid + cards: + - type: entities + entities: + - entity: binary_sensor.internet + - entity: sensor.min_ping + - entity: sensor.avg_ping + - entity: sensor.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 + title: Network Stats + - type: grid + cards: + - 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 + title: Proxmox VE - Down + - type: grid + cards: + - type: custom:auto-entities + card: + type: entities + show_header_toggle: false + state_color: true + filter: + include: + - entity_id: binary_sensor.uptimekuma* + state: 'off' + sort: + method: friendly_name + reverse: false + numeric: false + ignore_case: true + show_empty: false + title: Uptime Kuma - Down + 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: 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 + title: Presence + - type: grid + cards: + - 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 + title: Misc + - type: grid + cards: + - 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 + title: Sports + - type: grid + cards: + - 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:config-template-card + variables: + BOOL_STATE: states['input_boolean.toggle_testing'].state + LIGHT_STATE: states['light.living_room_lights'].state + entities: + - light.living_room_lights + - input_boolean.toggle_testing + card: + type: entities + title: '${BOOL_STATE === ''on'' ? ''Testing'' : ''Fucked Up''}' + entities: + - entity: light.living_room_lights + name: '${BOOL_STATE === ''on'' ? ''Lights'' : ''Other Lights''}' + - entity: input_boolean.toggle_testing + show_header_toggle: false + state_color: true + title: Card Templating + - type: grid + cards: + - 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 + title: Diagnostics Feed + - type: grid + cards: + - 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 + title: Alarm Clock Testing + - type: grid + cards: + - 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 + title: Testing Entities + - type: grid + cards: + - 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 + title: Time of Day Sensors + max_columns: 4 + cards: [] + background: {} + - title: Weather + path: weather + type: sections + sections: + - type: grid + cards: + - content: > +
{% set alerts = [ + "sensor.weatheralerts_alert_1", + "sensor.weatheralerts_alert_2", + "sensor.weatheralerts_alert_3", + "sensor.weatheralerts_alert_4", + "sensor.weatheralerts_alert_5"] %} + {% for alert in alerts if is_state(alert, 'on') %} {% if 'warning' + or 'severe' in state_attr( alert, 'display_title')|lower() %} + {% endif %} {{ state_attr( alert, + 'display_title') }} {%- if 'warning' or 'severe' in + state_attr( alert, 'display_title')|lower() -%} {%- endif + %}
{{ state_attr( alert, 'display_message') }} {% if loop.last + %} {% else %}
{% endif %} {% endfor %} + type: markdown + title: Weather Alerts + visibility: + - condition: state + entity: sensor.weatheralerts_alerts_are_active + state: 'Yes' + - type: grid + cards: + - type: custom:stack-in-card + cards: + - type: entity + entity: sensor.blitzortung_lightning_counter + name: Strike Counter + state_color: false + - type: map + geo_location_sources: + - blitzortung + dark_mode: true + title: Lightning + visibility: + - condition: numeric_state + entity: sensor.blitzortung_lightning_counter + above: 0 + - type: grid + cards: + - 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 + title: Radar + visibility: + - condition: screen + media_query: '(min-width: 768px)' + - type: grid + cards: + - type: custom:weather-chart-card + entity: weather.home + 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: '' + press: sensor.home_pressure + uv: sensor.home_uv_index + dew_point: sensor.home_dewpoint + 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: '' + title: Forecasts + - type: grid + cards: + - type: custom:mini-graph-card + entities: + - sensor.home_temperature + name: Temperature (24h) + points_per_hour: 1 + - type: custom:mini-graph-card + entities: + - sensor.home_temperature_feels_like + 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 + title: Temperature + - type: grid + cards: + - type: custom:compass-card + indicator_sensors: + - sensor: sensor.home_wind_direction_degrees + indicator: + type: arrow_inward + value_sensors: + - sensor: sensor.home_wind_speed + header: + title: + value: Wind + - type: entities + entities: + - entity: sensor.home_wind_speed + type: custom:multiple-entity-row + name: Wind + format: precision1 + state_header: Speed + entities: + - entity: sensor.home_wind_direction_degrees + name: Bearing + format: precision0 + - entity: sensor.home_wind_gust + name: Gust + format: precision1 + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:windrose-card + title: Wind direction + data_period: + from_hour_of_day: 0 + max_width: 1000 + refresh_interval: 300 + windspeed_bar_location: right + windspeed_bar_full: true + wind_direction_entity: + entity: sensor.home_wind_direction_degrees + windspeed_entities: + - entity: sensor.home_wind_speed + name: Wind + speed_unit: mph + - entity: sensor.home_wind_gust + name: Gust + speed_unit: mph + output_speed_unit: mph + output_speed_unit_label: mph + cardinal_direction_letters: NESW + matching_strategy: direction-first + wind_direction_count: 32 + speed_range_beaufort: 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_relative_humidity + type: custom:multiple-entity-row + name: Moisture + state_header: Humidity + entities: + - entity: sensor.home_dewpoint + name: Dew Point + - entity: sensor.home_pressure + name: Barometric Pressure + - entity: sensor.current_season + icon: mdi:leaf + - entity: sensor.home_uv_index + name: UV Index + - entity: sensor.pirateweather_cloud_coverage + name: Cloud Coverage + - entity: sensor.pirateweather_visibility + name: Visibility + - entity: sensor.temperature_change_per_hour + show_header_toggle: false + state_color: true + title: Other Stats + - type: grid + cards: + - type: custom:horizon-card + fields: + moonrise: true + moonset: true + moon_phase: true + moon: true + - type: custom:timer-bar-card + name: Sun + entities: + - entity: sun.sun + name: Sunrise + icon: mdi:weather-sunset-up + active_state: below_horizon + end_time: + attribute: next_rising + translations: + above_horizon: Not yet ☀️ + - entity: sun.sun + name: Sunset + icon: mdi:weather-sunset-down + active_state: above_horizon + end_time: + attribute: next_setting + translations: + below_horizon: Not yet 🌙 + text_width: 5em + bar_radius: 4px + - type: custom:uv-index-card + entity: sensor.home_uv_index + title: Sun + max_columns: 4 + icon: mdi:weather-cloudy + cards: [] + subview: true + - title: weather-test + path: weather-test + icon: mdi:weather-cloudy-alert + type: custom:horizontal-layout + visible: + - user: c3909d27048140729f002aaef0391775 + badges: [] + cards: + - type: custom:stack-in-card + cards: + - type: custom:meteoalarm-card + entities: + entity: sensor.weatheralerts + integration: weatheralerts + hide_when_no_warning: true + - type: custom:clock-weather-card + entity: weather.iron_nerd_studios + sun_entity: sun.sun + weather_icon_type: fill + animated_icon: true + forecast_rows: 7 + time_format: 12 + tap_action: + action: navigate + navigation_path: /lovelace/weather + - type: custom:stack-in-card + cards: + - type: custom:meteoalarm-card + entities: + entity: sensor.weatheralerts + integration: weatheralerts + hide_when_no_warning: true + - type: custom:clock-weather-card + entity: weather.home + sun_entity: sun.sun + weather_icon_type: fill + animated_icon: true + forecast_rows: 7 + time_format: 12 + tap_action: + action: navigate + navigation_path: /lovelace/weather + - type: custom:stack-in-card + cards: + - type: custom:meteoalarm-card + entities: + entity: sensor.weatheralerts + integration: weatheralerts + hide_when_no_warning: true + - type: custom:clock-weather-card + entity: weather.kdfi_daynight + sun_entity: sun.sun + weather_icon_type: fill + animated_icon: true + forecast_rows: 7 + time_format: 12 + tap_action: + action: navigate + navigation_path: /lovelace/weather + - type: custom:stack-in-card + cards: + - type: custom:meteoalarm-card + entities: + entity: sensor.weatheralerts + integration: weatheralerts + hide_when_no_warning: true + - type: custom:clock-weather-card + entity: weather.openweathermap + sun_entity: sun.sun + weather_icon_type: fill + animated_icon: true + forecast_rows: 7 + time_format: 12 + tap_action: + action: navigate + navigation_path: /lovelace/weather + - type: custom:stack-in-card + cards: + - type: custom:meteoalarm-card + entities: + entity: sensor.weatheralerts + integration: weatheralerts + hide_when_no_warning: true + - type: custom:weather-card + entity: weather.iron_nerd_studios + number_of_forecasts: '5' + current: false + details: false + hourly_forecast: false + - type: custom:hourly-weather + entity: weather.iron_nerd_studios_hourly + num_segments: 12 + name: null + icons: true + show_precipitation_probability: true + show_precipitation_amounts: true + show_wind: barb-and-speed + - type: custom:stack-in-card + cards: + - type: custom:meteoalarm-card + entities: + entity: sensor.weatheralerts + integration: weatheralerts + hide_when_no_warning: true + - type: custom:weather-card + entity: weather.kdfi_daynight + number_of_forecasts: '5' + current: false + details: false + hourly_forecast: false + - type: custom:hourly-weather + entity: weather.kdfi_hourly + num_segments: 12 + name: null + icons: true + show_precipitation_probability: true + show_precipitation_amounts: true + show_wind: barb-and-speed + - type: custom:stack-in-card + cards: + - type: custom:meteoalarm-card + entities: + entity: sensor.weatheralerts + integration: weatheralerts + hide_when_no_warning: true + - type: custom:weather-card + entity: weather.tomorrow_io_stratton_ave_daily + number_of_forecasts: '5' + current: false + details: false + hourly_forecast: false + - type: custom:hourly-weather + entity: weather.tomorrow_io_stratton_ave_hourly + num_segments: 12 + name: null + icons: true + show_precipitation_probability: true + show_precipitation_amounts: true + show_wind: barb-and-speed + - type: custom:stack-in-card + cards: + - type: custom:meteoalarm-card + entities: + entity: sensor.weatheralerts + integration: weatheralerts + hide_when_no_warning: true + - type: custom:weather-card + entity: sensor.weather_com_daily_weather_forecast + number_of_forecasts: '5' + current: false + details: false + hourly_forecast: false + - type: custom:hourly-weather + entity: weather.iron_nerd_weather_station + num_segments: 12 + name: null + icons: true + show_precipitation_probability: true + show_precipitation_amounts: true + show_wind: barb-and-speed + - type: entities + title: Temperature + entities: + - entity: sensor.home_temperature + - entity: sensor.home_temperature_feels_like + - entity: sensor.pirateweather_temperature + - entity: sensor.pirateweather_apparent_temperature + - entity: sensor.openweathermap_temperature + - entity: sensor.openweathermap_feels_like_temperature + - entity: sensor.tomorrow_io_stratton_ave_feels_like + - entity: sensor.kdfi_temperature + - entity: sensor.kdfi_heat_index + - entity: sensor.kdfi_wind_chill + - entity: sensor.stratton_ave_apparent_temperature + - type: entities + title: Pressure + show_header_toggle: false + state_color: true + entities: + - entity: sensor.home_pressure + - entity: sensor.kdfi_barometric_pressure + - entity: sensor.kdfi_sea_level_pressure + - entity: sensor.openweathermap_pressure + - entity: sensor.pirateweather_pressure + - entity: sensor.outside_pressure + - entity: sensor.stratton_ave_pressure_tendency + - type: entities + entities: + - entity: sensor.home_relative_humidity + - entity: sensor.kdfi_relative_humidity + - entity: sensor.pirateweather_humidity + - entity: sensor.openweathermap_humidity + title: Humidity + show_header_toggle: false + state_color: true + - type: entities + title: Wind Gust + show_header_toggle: false + state_color: true + entities: + - entity: sensor.home_wind_speed + - entity: sensor.home_wind_gust + - entity: sensor.kdfi_wind_speed + - entity: sensor.kdfi_wind_gust + - entity: sensor.pirateweather_wind_speed + - entity: sensor.pirateweather_wind_gust + - entity: sensor.openweathermap_wind_speed + - entity: sensor.tomorrow_io_stratton_ave_wind_gust + - type: entities + entities: + - entity: sensor.home_uv_index + - entity: sensor.weatherapi_stratton_ave_uv_index + - entity: sensor.stratton_ave_uv_index + - entity: sensor.stratton_ave_uv_index_day_1 + - entity: sensor.stratton_ave_uv_index_day_2 + - entity: sensor.stratton_ave_uv_index_day_3 + - entity: sensor.stratton_ave_uv_index_day_4 + - entity: sensor.stratton_ave_uv_index_today + - entity: sensor.pirateweather_uv_index + - entity: sensor.openweathermap_uv_index + title: UV Index + show_header_toggle: false + state_color: true + - title: Scrapyard + path: scrapyard + icon: mdi:trash-can + type: sections + visible: + - user: c3909d27048140729f002aaef0391775 + sections: + - type: grid + cards: + - type: custom:restriction-card + restrictions: + block: + text: Studio is live, no touchy! + condition: + value: 'on' + entity: input_boolean.studio_quiet + exemptions: + - user: c3909d27048140729f002aaef0391775 + card: + type: custom:stack-in-card + card_mod: + style: | + ha-card { + overflow: visible !important; + } + cards: + - type: custom:mushroom-light-card + entity: light.basement_studio_lights + name: Basement Studio + icon: mdi:twitch + fill_container: false + 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 + layout: vertical + - type: custom:state-switch + entity: light.basement_studio_lights + states: + 'on': + type: custom:mushroom-template-card + primary: Current Scene + secondary: >- + {{ states('input_text.basement_studio_selected_scene') + }} + tap_action: + action: none + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:mushroom-template-card + entity: sensor.basement_studio_lights_power_sensor + primary: Power Usage + secondary: '{{ states(''sensor.basement_total_power_sensor'') }} W' + tap_action: + action: more-info + hold_action: + action: none + double_tap_action: + action: none + layout: vertical + - type: custom:timer-bar-card + filter: true + entities: + - 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 + - type: entities + entities: + - type: custom:paper-buttons-row + buttons: + - entity: input_boolean.recliner_mode + layout: icon|name_state + name: Recliner Mode + state_icons: + unavailable: mdi:map-marker-question + state: + case: first + - entity: input_boolean.basement_studio_entertainment_control + layout: icon|name_state + name: Entertainment + state_icons: + unavailable: mdi:map-marker-question + state: + case: first + - type: custom:paper-buttons-row + buttons: + - entity: light.basement_led_strip_1 + layout: icon|name_state + name: LED Strip 1 + state: + case: first + state_icons: + 'on': hue:lightstrip + 'off': hue:lightstrip-off + unavailable: mdi:map-marker-question + - entity: light.basement_stairwell + layout: icon|name_state + name: Stairwell + state: + case: first + state_icons: + 'on': hue:wall-lantern + 'off': hue:wall-lantern-off + unavailable: mdi:map-marker-question + - type: custom:paper-buttons-row + buttons: + - entity: light.basement_short_lamp + layout: icon|name_state + name: Short Lamp + state: + case: first + state_icons: + 'on': hue:floor-shade + 'off': hue:floor-shade-off + unavailable: mdi:map-marker-question + - entity: light.basement_tall_lamp + layout: icon|name_state + name: Tall Lamp + state: + case: first + state_icons: + 'on': hue:floor-shade + 'off': hue:floor-shade-off + unavailable: mdi:map-marker-question + show_header_toggle: false + state_color: true + - type: entities + entities: + - type: custom:paper-buttons-row + buttons: + - entity: fan.basement_fan + name: Fan + layout: icon|name_state + state_icons: + 'on': mdi:fan + 'off': mdi:fan-off + unavailable: mdi:map-marker-question + state: + case: first + - entity: input_boolean.white_noise_basement + name: White Noise + layout: icon|name_state + state_icons: + 'on': mdi:volume-high + 'off': mdi:volume-off + unavailable: mdi:map-marker-question + state: + case: first + - entity: input_boolean.studio_quiet + name: Quiet + layout: icon|name_state + state_icons: + unavailable: mdi:map-marker-question + state: + case: first + - entity: input_boolean.gaming_mode + name: Gaming + layout: icon|name_state + state_icons: + unavailable: mdi:map-marker-question + state: + case: first + state_color: true + show_header_toggle: false + - type: entities + entities: + - entity: input_select.basement_studio_scenes + - entity: select.basement_led_strip_1_theme + name: LED Strip Theme + state_color: true + show_header_toggle: false + - type: glance + show_name: true + show_icon: true + show_state: true + state_color: true + entities: + - entity: binary_sensor.basement_studio_door + name: Door + - type: glance + show_name: true + show_icon: true + show_state: true + state_color: true + entities: + - entity: sensor.basement_studio_temperature + name: Temp + - entity: sensor.basement_studio_illuminance + name: Lux + - entity: binary_sensor.basement_studio_motion + name: Motion + - entity: binary_sensor.basement_occupied + name: Occupied + - type: custom:fold-entity-row + show_header_toggle: false + state_color: true + head: + type: section + label: More Settings + entities: + - type: custom:paper-buttons-row + buttons: + - entity: switch.adaptive_lighting_basement_studio + name: Adaptive Lighting + layout: icon|name_state + state: + case: first + - entity: switch.adaptive_lighting_sleep_mode_basement_studio + name: Night Mode + layout: icon|name_state + state: + case: first + - type: custom:paper-buttons-row + buttons: + - entity: >- + switch.adaptive_lighting_adapt_brightness_basement_studio + name: Adapt Brightness + layout: icon|name_state + state: + case: first + - entity: switch.adaptive_lighting_adapt_color_basement_studio + name: Adapt Color + layout: icon|name_state + state: + case: first + - entity: input_boolean.basement_studio_dynamic_scenes + name: Dynamic Scenes + layout: icon|name_state + state: + case: first + - 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 diff --git a/mobile_dashboard.yaml b/mobile_dashboard.yaml new file mode 100644 index 0000000..102f835 --- /dev/null +++ b/mobile_dashboard.yaml @@ -0,0 +1,6853 @@ +decluttering_templates: + main_button_state_red: + default: + - name: '' + - columns: 2 + - navigation_path: '' + card: + type: custom:bubble-card + card_type: button + button_type: state + entity: '[[entity]]' + name: '[[name]]' + tap_action: + action: navigate + navigation_path: '[[navigation_path]]' + double_tap_action: + action: none + hold_action: + action: more-info + button_action: + tap_action: + action: navigate + navigation_path: '[[navigation_path]]' + double_tap_action: + action: none + hold_action: + action: more-info + styles: |- + .is-unavailable { + opacity: 0.5 !important; + } + .bubble-button-background { + opacity: 1 !important; + background-color: ${state === 'on' ? 'var(--error-color)' : 'var(--background-color-2)'} !important; + transition: background-color 1s !important; + } + .bubble-icon-container { + background: ${state === 'on' ? 'var(--error-color)' : 'var(--card-background-color)'} !important; + } + .bubble-icon-container::after { + opacity: ${state === 'on' ? 0.3 : 0} !important; + transition: all 1s !important; + } + .bubble-icon { + display: flex !important; + opacity: 0.5 !important; + } + .is-on .bubble-icon { + opacity: 1 !important; + } + show_state: false + columns: '[[columns]]' + card_layout: large + main_button_name: + default: + - name: '' + - columns: 2 + - navigation_path: '' + card: + type: custom:bubble-card + card_type: button + button_type: name + name: '[[name]]' + icon: mdi:[[icon]] + tap_action: + action: navigate + navigation_path: '[[navigation_path]]' + button_action: + tap_action: + action: navigate + navigation_path: '[[navigation_path]]' + card_layout: large + columns: '[[columns]]' + main_button_floors: + defaults: + name: '' + icon: '' + navigation_path: '' + occupancy_entity: '' + temp_entity: '' + lux_entity: '' + card: + type: custom:bubble-card + card_type: button + button_type: state + entity: '[[occupancy_entity]]' + name: '[[name]]' + icon: '[[icon]]' + show_state: false + double_tap_action: + action: none + hold_action: + action: none + tap_action: + action: navigate + navigation_path: '[[navigation_path]]' + button_action: + double_tap_action: + action: none + hold_action: + action: none + tap_action: + action: navigate + navigation_path: '[[navigation_path]]' + styles: |- + .is-unavailable { + opacity: 0.5 !important; + } + .bubble-button-background { + opacity: 1 !important; + background-color: ${state === 'on' ? 'var(--accent-color)' : 'var(--background-color-2)'} !important; + transition: background-color 1s !important; + } + .bubble-icon-container { + background: ${state === 'on' ? 'var(--accent-color)' : 'var(--card-background-color)'} !important; + } + .bubble-icon-container::after { + opacity: ${state === 'on' ? 0.3 : 0} !important; + transition: all 1s !important; + } + .bubble-icon { + display: flex !important; + opacity: 0.5 !important; + } + .is-on .bubble-icon { + opacity: 1 !important; + } + card_layout: large-2-rows + sub_button: + - entity: '[[temp_entity]]' + name: Temp + show_state: true + show_name: false + tap_action: + action: navigate + navigation_path: '[[navigation_path]]' + show_background: false + - entity: '[[lux_entity]]' + show_state: true + name: Lux + tap_action: + action: navigate + navigation_path: '[[navigation_path]]' + show_background: false + floors_separator: + defaults: + - name: '' + - icon: '' + card: + type: custom:bubble-card + card_type: separator + name: '[[name]]' + icon: '[[icon]]' + card_layout: large + sub_button: + - entity: '[[power_entity]]' + name: Power + show_state: true + tap_action: + action: none + - entity: '[[lights_entity]]' + name: Lights + icon: mdi:lightbulb + show_name: true + show_state: false + tap_action: + action: toggle + popup_security_button: + defaults: + - name: '' + card: + type: custom:bubble-card + card_type: button + button_type: state + entity: '[[entity]]' + name: '[[name]]' + double_tap_action: + action: none + hold_action: + action: none + button_action: + double_tap_action: + action: none + hold_action: + action: none + styles: |- + .is-unavailable { + opacity: 0.5 !important; + } + .bubble-button-background { + opacity: 1 !important; + background-color: ${state === 'on' ? 'var(--error-color)' : 'var(--background-color-2)'} !important; + transition: background-color 1s !important; + } + .bubble-icon-container { + background: ${state === 'on' ? 'var(--error-color)' : 'var(--card-background-color)'} !important; + } + .bubble-icon-container::after { + opacity: ${state === 'on' ? 0.3 : 0} !important; + transition: all 1s !important; + } + .bubble-icon { + display: flex !important; + opacity: 0.5 !important; + } + .is-on .bubble-icon { + opacity: 1 !important; + } + popup_accent_color_button: + defaults: + - name: '' + card: + type: custom:bubble-card + card_type: button + button_type: state + entity: '[[entity]]' + name: '[[name]]' + show_state: true + tap_action: + action: more-info + double_tap_action: + action: none + hold_action: + action: none + button_action: + double_tap_action: + action: none + hold_action: + action: none + styles: |- + .bubble-button-background { + opacity: 1 !important; + background-color: ${state === 'on' ? 'var(--accent-color)' : 'var(--background-color-2)'} !important; + } + .bubble-icon { + color: ${state === 'on' ? 'var(--accent-color)' : 'var(--text-color)'} !important; + } + popup_temperature_button: + defaults: + - name: '' + card: + type: custom:bubble-card + card_type: button + button_type: state + entity: '[[entity]]' + name: '[[name]]' + show_attribute: false + styles: | + .is-unavailable { + opacity: 0.5 !important; + } + .bubble-button-background { + opacity: 1 !important; + background-color: ${hass.states['[[hot_entity]]'].state === 'on' ? 'var(--error-color)' : 'var(--background-color-2)'} !important; + transition: background-color 1s !important; + } + .bubble-icon-container { + background: ${hass.states['[[hot_entity]]'].state === 'on' ? 'var(--error-color)' : 'var(--card-background-color)'} !important; + } + .bubble-icon-container::after { + opacity: ${hass.states['[[hot_entity]]'].state === 'on' ? 0.3 : 0} !important; + transition: all 1s !important; + } +views: + - title: Home + path: home + type: sections + sections: + - type: grid + cards: + - type: custom:meteoalarm-card + entities: + entity: sensor.weatheralerts + integration: weatheralerts + hide_when_no_warning: true + visibility: + - condition: state + entity: sensor.weatheralerts_alerts_are_active + state: 'Yes' + - type: custom:clock-weather-card + entity: weather.iron_nerd_weather_station + sun_entity: sun.sun + weather_icon_type: fill + humidity_sensor: sensor.home_relative_humidity + show_humidity: true + apparent_sensor: sensor.home_temperature_feels_like + animated_icon: true + forecast_rows: 7 + time_format: 12 + tap_action: + action: navigate + navigation_path: /lovelace/weather + - 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 + - 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: custom:bubble-card + card_type: button + button_type: state + entity: binary_sensor.security_faults + name: Security + tap_action: + action: navigate + navigation_path: '#security' + double_tap_action: + action: none + hold_action: + action: more-info + button_action: + tap_action: + action: navigate + navigation_path: '#security' + double_tap_action: + action: none + styles: |- + .is-unavailable { + opacity: 0.5 !important; + } + .bubble-button-background { + opacity: 1 !important; + background-color: ${state === 'on' ? 'var(--error-color)' : 'var(--background-color-2)'} !important; + transition: background-color 1s !important; + } + .bubble-icon-container { + background: ${state === 'on' ? 'var(--error-color)' : 'var(--card-background-color)'} !important; + } + .bubble-icon-container::after { + opacity: ${state === 'on' ? 0.3 : 0} !important; + transition: all 1s !important; + } + .bubble-icon { + display: flex !important; + opacity: 0.5 !important; + } + .is-on .bubble-icon { + opacity: 1 !important; + } + show_state: false + columns: 2 + card_layout: large + - type: custom:bubble-card + card_type: button + button_type: name + name: Batteries + icon: mdi:battery-charging + tap_action: + action: navigate + navigation_path: '#batteries' + button_action: + tap_action: + action: navigate + navigation_path: '#batteries' + card_layout: large + columns: 2 + - type: custom:bubble-card + card_type: button + button_type: name + name: Rabbit + icon: mdi:rabbit + tap_action: + action: navigate + navigation_path: /dashboard-mobile/rabbit + button_action: + tap_action: + action: navigate + navigation_path: /dashboard-mobile/rabbit + columns: 2 + card_layout: large + card_mod: + style: |- + .is-unavailable { + opacity: 0.5 !important; + } + .bubble-button-background { + opacity: 1 !important; + background-color: + {% set feeding_reminders = states('counter.rabbit_feeding_reminder_count') | int %} + {% set cleaning_reminders = states('counter.rabbit_hutch_cleaning_reminder_count') | int %} + {% if feeding_reminders == 0 and cleaning_reminders == 0 %} + var(--background-color-2) + {% elif feeding_reminders < 3 and cleaning_reminders < 3 %} + var(--warning-color) + {% else %} + var(--error-color) + {% endif %} + !important; + transition: background-color 1s !important; + } + .bubble-icon-container { + background: + {% set feeding_reminders = states('counter.rabbit_feeding_reminder_count') | int %} + {% set cleaning_reminders = states('counter.rabbit_hutch_cleaning_reminder_count') | int %} + {% if feeding_reminders == 0 and cleaning_reminders == 0 %} + var(--card-background-color) + {% elif feeding_reminders < 3 and cleaning_reminders < 3 %} + var(--warning-color) + {% else %} + var(--error-color) + {% endif %} + !important; + } + .bubble-icon-container::after { + opacity: + {% set feeding_reminders = states('counter.rabbit_feeding_reminder_count') | int %} + {% set cleaning_reminders = states('counter.rabbit_hutch_cleaning_reminder_count') | int %} + {% if feeding_reminders > 0 or cleaning_reminders > 0 %} + 0.3 + {% else %} + 0 + {% endif %} + !important; + transition: all 1s !important; + } + .bubble-icon { + display: flex !important; + opacity: 0.5 !important; + } + .is-on .bubble-icon { + opacity: 1 !important; + } + - type: custom:bubble-card + card_type: button + button_type: name + name: Messaging + icon: mdi:bullhorn + columns: 2 + card_layout: large + tap_action: + action: navigate + navigation_path: '#messaging' + button_action: + tap_action: + action: navigate + navigation_path: '#messaging' + - type: custom:bubble-card + card_type: button + button_type: name + name: Temp Graphs + tap_action: + action: navigate + navigation_path: '#roomtemps' + double_tap_action: + action: none + hold_action: + action: more-info + button_action: + tap_action: + action: navigate + navigation_path: '#roomtemps' + double_tap_action: + action: none + styles: '' + show_state: false + columns: 2 + card_layout: large + icon: mdi:chart-areaspline + - type: custom:bubble-card + card_type: button + button_type: name + name: Light Graphs + tap_action: + action: navigate + navigation_path: '#roomlux' + double_tap_action: + action: none + hold_action: + action: more-info + button_action: + tap_action: + action: navigate + navigation_path: '#roomlux' + double_tap_action: + action: none + styles: '' + show_state: false + columns: 2 + card_layout: large + icon: mdi:chart-areaspline + - type: custom:bubble-card + card_type: button + button_type: name + name: Running + icon: mdi:database-clock + card_layout: large + columns: 4 + visibility: + - condition: user + users: + - c3909d27048140729f002aaef0391775 + button_action: + tap_action: + action: navigate + navigation_path: '#running' + tap_action: + action: navigate + navigation_path: '#running' + - type: custom:bubble-card + card_type: button + button_type: name + name: Go to Main Dashboard + icon: mdi:navigation-variant + tap_action: + action: navigate + navigation_path: /lovelace/default_view + button_action: + tap_action: + action: navigate + navigation_path: /lovelace/default_view + card_layout: large + visibility: + - condition: screen + media_query: '(min-width: 0px) and (max-width: 767px)' + title: Housewide + - type: grid + cards: + - type: custom:bubble-card + card_type: button + button_type: name + name: Tony + card_layout: large + sub_button: [] + columns: 2 + icon: mdi:human-male + tap_action: + action: navigate + navigation_path: /dashboard-mobile/tony + button_action: + tap_action: + action: navigate + navigation_path: /dashboard-mobile/tony + card_mod: + style: | + .is-unavailable { + opacity: 0.5 !important; + } + .bubble-button-background { + opacity: 1 !important; + background-color: + {% set morning_reminders = states('counter.tony_morning_meds_reminder_count') | int %} + {% set afternoon_reminders = states('counter.tony_afternoon_meds_reminder_count') | int %} + {% set night_reminders = states('counter.tony_night_meds_reminder_count') | int %} + {% if morning_reminders == 0 and afternoon_reminders == 0 and night_reminders == 0 %} + var(--background-color-2) + {% elif morning_reminders < 3 and afternoon_reminders < 3 and night_reminders < 3 %} + var(--warning-color) + {% else %} + var(--error-color) + {% endif %} + !important; + transition: background-color 1s !important; + } + .bubble-icon-container { + background: + {% set morning_reminders = states('counter.tony_morning_meds_reminder_count') | int %} + {% set afternoon_reminders = states('counter.tony_afternoon_meds_reminder_count') | int %} + {% set night_reminders = states('counter.tony_night_meds_reminder_count') | int %} + {% if morning_reminders == 0 and afternoon_reminders == 0 and night_reminders == 0 %} + var(--card-background-color) + {% elif morning_reminders < 3 and afternoon_reminders < 3 and night_reminders < 3 %} + var(--warning-color) + {% else %} + var(--error-color) + {% endif %} + !important; + } + .bubble-icon-container::after { + opacity: + {% set morning_reminders = states('counter.tony_morning_meds_reminder_count') | int %} + {% set afternoon_reminders = states('counter.tony_afternoon_meds_reminder_count') | int %} + {% set night_reminders = states('counter.tony_night_meds_reminder_count') | int %} + {% if morning_reminders > 0 or afternoon_reminders > 0 or night_reminders > 0 %} + 0.3 + {% else %} + 0 + {% endif %} + !important; + transition: all 1s !important; + } + .bubble-icon { + display: flex !important; + opacity: 0.5 !important; + } + .is-on .bubble-icon { + opacity: 1 !important; + } + visibility: + - condition: user + users: + - f387a983651a4321a7411ff8cf36f949 + - c3909d27048140729f002aaef0391775 + - type: custom:bubble-card + card_type: button + button_type: name + name: Tina + card_layout: large + sub_button: [] + columns: 2 + icon: mdi:human-female + tap_action: + action: navigate + navigation_path: /dashboard-mobile/tina + button_action: + tap_action: + action: navigate + navigation_path: /dashboard-mobile/tina + card_mod: + style: |- + .is-unavailable { + opacity: 0.5 !important; + } + .bubble-button-background { + opacity: 1 !important; + background-color: + {% set morning_reminders = states('counter.tina_morning_meds_reminder_count') | int %} + {% set night_reminders = states('counter.tina_night_meds_reminder_count') | int %} + {% if morning_reminders == 0 and night_reminders == 0 %} + var(--background-color-2) + {% elif morning_reminders < 3 and night_reminders < 3 %} + var(--warning-color) + {% else %} + var(--error-color) + {% endif %} + !important; + transition: background-color 1s !important; + } + .bubble-icon-container { + background: + {% set morning_reminders = states('counter.tina_morning_meds_reminder_count') | int %} + {% set night_reminders = states('counter.tina_night_meds_reminder_count') | int %} + {% if morning_reminders == 0 and night_reminders == 0 %} + var(--card-background-color) + {% elif morning_reminders < 3 and night_reminders < 3 %} + var(--warning-color) + {% else %} + var(--error-color) + {% endif %} + !important; + } + .bubble-icon-container::after { + opacity: + {% set morning_reminders = states('counter.tina_morning_meds_reminder_count') | int %} + {% set night_reminders = states('counter.tina_night_meds_reminder_count') | int %} + {% if morning_reminders > 0 or night_reminders > 0 %} + 0.3 + {% else %} + 0 + {% endif %} + !important; + transition: all 1s !important; + } + .bubble-icon { + display: flex !important; + opacity: 0.5 !important; + } + .is-on .bubble-icon { + opacity: 1 !important; + } + visibility: + - condition: user + users: + - f387a983651a4321a7411ff8cf36f949 + - c3909d27048140729f002aaef0391775 + - type: custom:bubble-card + card_type: button + button_type: name + name: Kallen + card_layout: large + sub_button: [] + columns: 2 + icon: mdi:human-child + tap_action: + action: navigate + navigation_path: /dashboard-mobile/kallen + button_action: + tap_action: + action: navigate + navigation_path: /dashboard-mobile/kallen + card_mod: + style: |- + .is-unavailable { + opacity: 0.5 !important; + } + .bubble-button-background { + opacity: 1 !important; + background-color: + {% set morning_reminders = states('counter.kallen_morning_meds_reminder_count') | int %} + {% set night_reminders = states('counter.kallen_night_meds_reminder_count') | int %} + {% if morning_reminders == 0 and night_reminders == 0 %} + var(--background-color-2) + {% elif morning_reminders < 3 and night_reminders < 3 %} + var(--warning-color) + {% else %} + var(--error-color) + {% endif %} + !important; + transition: background-color 1s !important; + } + .bubble-icon-container { + background: + {% set morning_reminders = states('counter.kallen_morning_meds_reminder_count') | int %} + {% set night_reminders = states('counter.kallen_night_meds_reminder_count') | int %} + {% if morning_reminders == 0 and night_reminders == 0 %} + var(--card-background-color) + {% elif morning_reminders < 3 and night_reminders < 3 %} + var(--warning-color) + {% else %} + var(--error-color) + {% endif %} + !important; + } + .bubble-icon-container::after { + opacity: + {% set morning_reminders = states('counter.kallen_morning_meds_reminder_count') | int %} + {% set night_reminders = states('counter.kallen_night_meds_reminder_count') | int %} + {% if morning_reminders > 0 or night_reminders < 0 %} + 0.3 + {% else %} + 0 + {% endif %} + !important; + transition: all 1s !important; + } + .bubble-icon { + display: flex !important; + opacity: 0.5 !important; + } + .is-on .bubble-icon { + opacity: 1 !important; + } + visibility: + - condition: user + users: + - f387a983651a4321a7411ff8cf36f949 + - c3909d27048140729f002aaef0391775 + - type: custom:bubble-card + card_type: button + button_type: name + name: Emma + card_layout: large + sub_button: [] + columns: 2 + icon: mdi:bow-tie + tap_action: + action: navigate + navigation_path: /dashboard-mobile/emma + button_action: + tap_action: + action: navigate + navigation_path: /dashboard-mobile/emma + styles: '' + visibility: + - condition: user + users: + - f387a983651a4321a7411ff8cf36f949 + - c3909d27048140729f002aaef0391775 + - type: custom:bubble-card + card_type: button + button_type: state + entity: timer.kallen_timer + card_layout: large + columns: 4 + visibility: + - condition: user + users: + - 879b4c04e32841b3ad1d2763a11b4e70 + styles: '' + show_attribute: false + tap_action: + action: navigate + navigation_path: /dashboard-mobile/kallen-timer + double_tap_action: + action: none + hold_action: + action: none + button_action: + tap_action: + action: navigate + navigation_path: /dashboard-mobile/kallen-timer + double_tap_action: + action: none + hold_action: + action: none + title: Personal + - type: grid + cards: + - type: custom:decluttering-card + template: floors_separator + variables: + - name: Outdoors + - icon: hue:room-outdoors + - power_entity: sensor.outside_lights_power_sensor + - lights_entity: light.outside_lights + - type: custom:bubble-card + card_type: button + button_type: state + entity: binary_sensor.front_doorbell_motion_mqtt + name: Front Porch + icon: hue:room-porch + show_state: false + double_tap_action: + action: none + hold_action: + action: none + button_action: + double_tap_action: + action: none + hold_action: + action: none + tap_action: + action: navigate + navigation_path: '#front-porch' + styles: |- + .is-unavailable { + opacity: 0.5 !important; + } + .bubble-button-background { + opacity: 1 !important; + background-color: ${state === 'on' ? 'var(--accent-color)' : 'var(--background-color-2)'} !important; + transition: background-color 1s !important; + } + .bubble-icon-container { + background: ${state === 'on' ? 'var(--accent-color)' : 'var(--card-background-color)'} !important; + } + .bubble-icon-container::after { + opacity: ${state === 'on' ? 0.3 : 0} !important; + transition: all 1s !important; + } + .bubble-icon { + display: flex !important; + opacity: 0.5 !important; + } + .is-on .bubble-icon { + opacity: 1 !important; + } + tap_action: + action: navigate + navigation_path: '#front-porch' + card_layout: large-2-rows + sub_button: [] + - type: custom:decluttering-card + template: floors_separator + variables: + - name: Basement + - icon: mdi:home-floor-b + - power_entity: sensor.basement_total_power_sensor + - lights_entity: light.basement_lights + - type: custom:decluttering-card + template: main_button_floors + variables: + - name: Basement Studio + - icon: mdi:twitch + - navigation_path: '#basement-studio' + - occupancy_entity: binary_sensor.basement_occupied + - temp_entity: sensor.basement_studio_temperature + - lux_entity: sensor.basement_studio_illuminance + - type: custom:decluttering-card + template: floors_separator + variables: + - name: First Floor + - icon: mdi:home-floor-1 + - power_entity: sensor.first_floor_total_power_sensor + - lights_entity: light.first_floor_lights + - type: custom:decluttering-card + template: main_button_floors + variables: + - name: Living Room + - icon: mdi:sofa + - navigation_path: '#living-room' + - occupancy_entity: binary_sensor.living_room_occupied + - temp_entity: sensor.living_room_front_temperature + - lux_entity: sensor.living_room_front_illuminance + - type: custom:decluttering-card + template: main_button_floors + variables: + - name: Tina Desk + - icon: mdi:desk + - navigation_path: '#tina-desk' + - occupancy_entity: binary_sensor.tina_desk_occupied + - temp_entity: sensor.living_room_back_temperature + - lux_entity: sensor.living_room_back_illuminance + - type: custom:decluttering-card + template: main_button_floors + variables: + - name: Stairwell + - icon: mdi:stairs + - navigation_path: '#stairwell' + - occupancy_entity: binary_sensor.stairwell_occupied + - temp_entity: sensor.stairwell_bottom_temperature + - lux_entity: sensor.stairwell_bottom_illuminance + - type: custom:decluttering-card + template: main_button_floors + variables: + - name: Downstairs Bathroom + - icon: mdi:toilet + - navigation_path: '#downstairs-bathroom' + - occupancy_entity: binary_sensor.downstairs_bathroom_occupied + - temp_entity: sensor.downstairs_bathroom_temperature + - lux_entity: sensor.downstairs_bathroom_illuminance + - type: custom:decluttering-card + template: main_button_floors + variables: + - name: Mud Room + - icon: hue:room-other + - navigation_path: '#mud-room' + - occupancy_entity: binary_sensor.mud_room_occupied + - temp_entity: sensor.mud_room_temperature + - lux_entity: sensor.mud_room_illuminance + - type: custom:bubble-card + card_type: button + button_type: name + name: Kitchen + icon: hue:room-kitchen + tap_action: + action: navigate + navigation_path: '#kitchen' + button_action: + tap_action: + action: navigate + navigation_path: '#kitchen' + card_layout: large + - type: custom:decluttering-card + template: floors_separator + variables: + - name: Second Floor + - icon: mdi:home-floor-2 + - power_entity: sensor.second_floor_total_power_sensor + - lights_entity: light.second_floor_lights + - type: custom:decluttering-card + template: main_button_floors + variables: + - name: Upstairs Hallway + - icon: hue:ceiling-round + - navigation_path: '#upstairs-hallway' + - occupancy_entity: binary_sensor.upstairs_hallway_occupied + - temp_entity: sensor.stairwell_top_temperature + - lux_entity: sensor.stairwell_top_illuminance + - type: custom:decluttering-card + template: main_button_floors + variables: + - name: Upstairs Bathroom + - icon: mdi:toilet + - navigation_path: '#upstairs-bathroom' + - occupancy_entity: binary_sensor.upstairs_bathroom_occupied + - temp_entity: sensor.upstairs_bathroom_temperature + - lux_entity: sensor.upstairs_bathroom_illuminance + - type: custom:decluttering-card + template: main_button_floors + variables: + - name: Master Bedroom + - icon: mdi:bed + - navigation_path: '#master-bedroom' + - occupancy_entity: binary_sensor.master_bedroom_occupied + - temp_entity: sensor.master_bedroom_temperature + - lux_entity: sensor.master_bedroom_illuminance + - type: custom:decluttering-card + template: main_button_floors + variables: + - name: Kallen Bedroom + - icon: mdi:bunk-bed + - navigation_path: '#kallen-bedroom' + - occupancy_entity: binary_sensor.kallen_bedroom_occupied + - temp_entity: sensor.kallen_bedroom_temperature + - lux_entity: sensor.kallen_bedroom_illuminance + - type: custom:decluttering-card + template: main_button_floors + variables: + - name: Emma Bedroom + - icon: hue:room-nursery + - navigation_path: '#emma-bedroom' + - occupancy_entity: binary_sensor.emma_bedroom_occupied + - temp_entity: sensor.emma_bedroom_temperature + - lux_entity: sensor.emma_bedroom_illuminance + title: Areas + - type: grid + cards: + - type: vertical-stack + cards: + - type: custom:bubble-card + card_type: pop-up + hash: '#front-porch' + button_type: slider + entity: light.front_porch_light + name: Front Porch + icon: hue:room-porch + show_state: true + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + sub_button: + - entity: input_select.front_porch_scenes + name: Scenes + tap_action: + action: toggle + icon: mdi:palette + - entity: input_boolean.front_porch_light_on + name: Motion Lighting + icon: mdi:motion-sensor + tap_action: + action: toggle + - type: custom:bubble-card + card_type: separator + name: Status + icon: mdi:list-box + - type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + button_type: state + entity: binary_sensor.front_doorbell_motion_mqtt + name: Motion + double_tap_action: + action: none + hold_action: + action: none + button_action: + double_tap_action: + action: none + hold_action: + action: none + styles: |- + .bubble-button-background { + opacity: 1 !important; + background-color: ${state === 'on' ? 'var(--accent-color)' : 'var(--background-color-2)'} !important; + } + .bubble-icon { + color: ${state === 'on' ? 'var(--accent-color)' : 'var(--text-color)'} !important; + } + - type: custom:bubble-card + card_type: button + button_type: state + entity: binary_sensor.front_doorbell_ding + name: Ding + double_tap_action: + action: none + hold_action: + action: none + button_action: + double_tap_action: + action: none + hold_action: + action: none + styles: |- + .bubble-button-background { + opacity: 1 !important; + background-color: ${state === 'on' ? 'var(--success-color)' : 'var(--background-color-2)'} !important; + } + .bubble-icon { + color: ${state === 'on' ? 'var(--success-color)' : 'var(--text-color)'} !important; + } + - type: vertical-stack + cards: + - type: custom:bubble-card + card_type: pop-up + hash: '#basement-studio' + button_type: slider + entity: light.basement_studio_lights + name: Basement Studio + icon: mdi:twitch + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + action: call-service + service: input_select.select_option + target: + entity_id: input_select.basement_studio_scenes + data: + option: Adaptive + hold_action: + action: more-info + sub_button: + - entity: input_select.basement_studio_scenes + show_name: false + name: Scenes + show_state: false + show_last_changed: false + tap_action: + action: toggle + icon: mdi:palette + styles: '' + - type: custom:bubble-card + card_type: separator + name: Lights + icon: mdi:lightbulb + - type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + button_type: slider + entity: light.basement_led_strip_1 + show_attribute: true + show_state: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + icon: hue:lightstrip + name: LED Strip 1 + styles: >- + ${icon.setAttribute("icon", state === 'off' ? + 'hue:lightstrip-off' : 'hue:lightstrip')} + - type: custom:bubble-card + card_type: button + button_type: slider + entity: light.basement_stairwell + name: Stairwell + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + styles: >- + ${icon.setAttribute("icon", state === 'off' ? + 'hue:floor-shade-off' : 'hue:floor-shade')} + - type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + button_type: slider + entity: light.basement_short_lamp + show_attribute: true + show_state: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + name: Short Lamp + styles: >- + ${icon.setAttribute("icon", state === 'off' ? + 'hue:floor-shade-off' : 'hue:floor-shade')} + - type: custom:bubble-card + card_type: button + button_type: slider + entity: light.basement_tall_lamp + name: Tall Lamp + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + styles: >- + ${icon.setAttribute("icon", state === 'off' ? + 'hue:floor-shade-off' : 'hue:floor-shade')} + - type: custom:bubble-card + card_type: separator + name: Media + icon: mdi:volume-high + - type: custom:bubble-card + card_type: media-player + entity: media_player.basement_tv + name: TV + show_state: true + show_last_changed: false + show_attribute: true + attribute: app_name + force_icon: false + hide: + play_pause_button: false + volume_button: false + power_button: false + - type: custom:bubble-card + card_type: separator + name: Environment + icon: mdi:thermometer + - type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + button_type: switch + entity: fan.basement_fan + name: Fan + show_state: true + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + button_action: + double_tap_action: + action: none + styles: |- + .bubble-icon { + animation: ${state === 'on' ? 'slow-rotate 2s linear infinite' : ''}; + } + @keyframes slow-rotate { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } + } + - type: custom:bubble-card + card_type: button + button_type: switch + entity: input_boolean.white_noise_basement + name: White Noise + show_state: true + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + button_action: + double_tap_action: + action: none + - type: custom:bubble-card + card_type: separator + name: Modes + icon: mdi:toggle-switch + - type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + entity: input_boolean.studio_quiet + name: Studio Quiet + show_state: true + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + button_action: + double_tap_action: + action: none + - type: custom:bubble-card + card_type: button + button_type: switch + entity: input_boolean.gaming_mode + name: Gaming Mode + show_state: true + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + button_action: + double_tap_action: + action: none + - type: custom:bubble-card + card_type: separator + name: Status + icon: mdi:list-box + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_temperature_button + variables: + - name: Temp + - entity: sensor.basement_studio_temperature + - hot_entity: binary_sensor.basement_studio_hot + - type: custom:bubble-card + card_type: button + button_type: state + entity: sensor.basement_studio_illuminance + name: Lux + show_state: true + tap_action: + action: more-info + double_tap_action: + action: none + hold_action: + action: none + button_action: + double_tap_action: + action: none + hold_action: + action: none + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Motion + - entity: binary_sensor.basement_studio_motion + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Occupied + - entity: binary_sensor.basement_occupied + - type: custom:timer-bar-card + filter: true + entities: + - entity: timer.basement_studio_door_timer + name: Door Timer + sync_issues: ignore + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.basement_studio_door_timer + hold_action: + action: more-info + double_tap_action: + action: none + modifications: + - elapsed: 40% + bar_foreground: orange + - elapsed: 80% + bar_foreground: red + compressed: true + - type: grid + cards: + - type: vertical-stack + cards: + - type: custom:bubble-card + card_type: pop-up + hash: '#living-room' + button_type: slider + entity: light.living_room_lights + show_state: true + show_attribute: true + attribute: brightness + icon: hue:room-living + tap_action: + action: toggle + double_tap_action: + action: call-service + service: input_select.select_option + target: + entity_id: input_select.living_room_scenes + data: + option: Adaptive + hold_action: + action: more-info + name: Living Room + sub_button: + - entity: select.basement_led_strip_1_theme + name: LED Strip Scenes + tap_action: + action: toggle + show_name: false + icon: hue:lightstrip + - entity: input_select.living_room_scenes + name: Scenes + tap_action: + action: toggle + show_name: false + icon: mdi:palette + - type: custom:bubble-card + card_type: separator + name: Lights + icon: mdi:lightbulb + - type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + button_type: slider + entity: light.living_room_overhead + name: Overhead + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + - type: custom:bubble-card + card_type: button + button_type: slider + entity: light.living_room_led_strip + name: LED Strip + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + icon: hue:lightstrip + - type: custom:bubble-card + card_type: separator + name: Media + icon: mdi:volume-high + - type: custom:bubble-card + card_type: media-player + entity: media_player.living_room_tv + name: TV + show_state: true + show_last_changed: false + show_attribute: true + attribute: app_id + force_icon: false + hide: + play_pause_button: false + volume_button: false + power_button: false + - type: custom:bubble-card + card_type: separator + name: Status + icon: mdi:list-box + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_temperature_button + variables: + - name: Front Temp + - entity: sensor.living_room_front_temperature + - hot_entity: binary_sensor.living_room_hot + - type: custom:bubble-card + card_type: button + button_type: state + entity: sensor.living_room_front_illuminance + name: Front Lux + show_attribute: false + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_temperature_button + variables: + - name: Back Temp + - entity: sensor.living_room_back_temperature + - hot_entity: binary_sensor.living_room_back_hot + - type: custom:bubble-card + card_type: button + button_type: state + entity: sensor.living_room_back_illuminance + name: Back Lux + show_attribute: false + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Front Motion + - entity: binary_sensor.living_room_front_motion + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Back Motion + - entity: binary_sensor.living_room_back_motion + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Occupied + - entity: binary_sensor.living_room_occupied + - type: custom:timer-bar-card + filter: true + entities: + - entity: timer.living_room_motion_timer + name: Motion Timer + sync_issues: ignore + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.living_room_motion_timer + hold_action: + action: more-info + double_tap_action: + action: none + modifications: + - elapsed: 40% + bar_foreground: orange + - elapsed: 80% + bar_foreground: red + compressed: true + - type: custom:bubble-card + card_type: separator + name: Security + icon: mdi:security + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Door + - entity: binary_sensor.front_door + - type: custom:bubble-card + card_type: empty-column + - type: custom:bubble-card + card_type: empty-column + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Front 1 + - entity: binary_sensor.front_window_1 + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Front 2 + - entity: binary_sensor.front_window_2 + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Front 3 + - entity: binary_sensor.front_window_3 + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Side 1 + - entity: binary_sensor.side_window_1 + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Side 2 + - entity: binary_sensor.side_window_2 + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Side 3 + - entity: binary_sensor.side_window_3 + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Side 4 + - entity: binary_sensor.side_window_4 + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Back 1 + - entity: binary_sensor.back_window_1 + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Back 2 + - entity: binary_sensor.back_window_2 + - type: vertical-stack + cards: + - type: custom:bubble-card + card_type: pop-up + hash: '#downstairs-bathroom' + button_type: slider + entity: light.downstairs_bathroom_lights + name: Downstairs Bathroom + icon: mdi:toilet + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + action: call-service + service: input_select.select_option + target: + entity_id: input_select.downstairs_bathroom_scenes + data: + option: Adaptive + hold_action: + action: more-info + sub_button: + - entity: input_select.downstairs_bathroom_scenes + name: Scenes + tap_action: + action: toggle + show_name: false + icon: mdi:palette + - entity: switch.downstairs_bathroom_motion_lighting + name: Motion Lighting + tap_action: + action: toggle + - type: custom:bubble-card + card_type: separator + name: Laundry + icon: mdi:tshirt-crew + - type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + entity: timer.washer_timer + button_type: state + name: Washer + show_attribute: false + - type: custom:bubble-card + card_type: button + entity: timer.dryer_timer + button_type: state + name: Dryer + show_attribute: false + - type: custom:bubble-card + card_type: separator + name: Status + icon: mdi:list-box + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_temperature_button + variables: + - name: Temp + - entity: sensor.downstairs_bathroom_temperature + - hot_entity: binary_sensor.downstairs_bathroom_hot + - type: custom:bubble-card + card_type: button + button_type: state + entity: sensor.downstairs_bathroom_illuminance + name: Lux + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Motion + - entity: binary_sensor.downstairs_bathroom_motion + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Occupied + - entity: binary_sensor.downstairs_bathroom_occupied + - type: custom:bubble-card + card_type: separator + name: Security + icon: mdi:security + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Back + - entity: binary_sensor.downstairs_bathroom_window_1 + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Side + - entity: binary_sensor.downstairs_bathroom_window_2 + - type: custom:timer-bar-card + filter: true + entities: + - entity: timer.downstairs_bathroom_lights_timer + name: Motion Timer + sync_issues: ignore + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.downstairs_bathroom_lights_timer + hold_action: + action: more-info + double_tap_action: + action: none + modifications: + - elapsed: 40% + bar_foreground: orange + - elapsed: 80% + bar_foreground: red + compressed: true + - type: horizontal-stack + cards: [] + - type: vertical-stack + cards: + - type: custom:bubble-card + card_type: pop-up + hash: '#tina-desk' + button_type: slider + entity: light.tina_desk_lights + name: Tina Desk + icon: mdi:desk + show_last_changed: false + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + action: call-service + service: input_select.select_option + target: + entity_id: input_select.tina_desk_scenes + data: + option: Reset + hold_action: + action: more-info + sub_button: + - entity: input_select.tina_desk_scenes + name: Scenes + tap_action: + action: toggle + show_name: false + icon: mdi:palette + - type: custom:bubble-card + card_type: separator + name: Lights + icon: mdi:lightbulb + - type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + button_type: slider + entity: light.tina_lamp_top + name: Lamp Top + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + - type: custom:bubble-card + card_type: button + button_type: slider + entity: light.tina_lamp_side + name: Lamp Side + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + - type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + button_type: slider + entity: light.tina_desk_strip + name: LED Strip + icon: hue:lightstrip + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + - type: vertical-stack + cards: + - type: custom:bubble-card + card_type: pop-up + hash: '#kitchen' + button_type: name + name: Kitchen (No Lights) + icon: hue:room-kitchen + - type: custom:bubble-card + card_type: separator + name: Security + icon: mdi:security + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Big Window + - entity: binary_sensor.kitchen_big_window + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Sink Window + - entity: binary_sensor.kitchen_sink_window + - type: vertical-stack + cards: + - type: custom:bubble-card + card_type: pop-up + hash: '#mud-room' + button_type: slider + entity: light.mud_room_overhead + name: Mud Room + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + hold_action: + action: more-info + double_tap_action: + action: call-service + service: input_select.select_option + target: + entity_id: input_select.mud_room_scenes + data: + option: Adaptive + sub_button: + - entity: input_select.mud_room_scenes + name: Scenes + tap_action: + action: toggle + show_name: false + icon: mdi:palette + - entity: switch.mud_room_motion_lighting + name: Motion Lighting + tap_action: + action: toggle + - type: custom:bubble-card + card_type: separator + name: Status + icon: mdi:list-box + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_temperature_button + variables: + - name: Temp + - entity: sensor.mud_room_temperature + - hot_entity: binary_sensor.mud_room_hot + - type: custom:bubble-card + card_type: button + button_type: state + entity: sensor.mud_room_illuminance + name: Lux + double_tap_action: + action: none + hold_action: + action: none + button_action: + double_tap_action: + action: none + hold_action: + action: none + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Motion + - entity: binary_sensor.mud_room_motion + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Occupied + - entity: binary_sensor.mud_room_occupied + - type: custom:bubble-card + card_type: separator + name: Security + icon: mdi:security + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Back Door + - entity: binary_sensor.back_door + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Window + - entity: binary_sensor.mud_room_window + - type: custom:timer-bar-card + filter: true + entities: + - entity: timer.mud_room_motion_timer + name: Motion Timer + sync_issues: ignore + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.mud_room_motion_timer + hold_action: + action: more-info + double_tap_action: + action: none + modifications: + - elapsed: 40% + bar_foreground: orange + - elapsed: 80% + bar_foreground: red + compressed: true + - type: vertical-stack + cards: + - type: custom:bubble-card + card_type: pop-up + hash: '#stairwell' + button_type: slider + entity: light.stairwell_led_strip + name: Stairwell + icon: mdi:stairs + show_last_changed: false + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + service: script.stairwell_led_strip + service_data: + brightness: reset + target: {} + action: none + hold_action: + action: more-info + sub_button: + - entity: switch.stairwell_motion_lighting + name: Motion Lighting + tap_action: + action: toggle + - type: custom:bubble-card + card_type: separator + name: Status + icon: mdi:list-box + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_temperature_button + variables: + - name: Temp + - entity: sensor.stairwell_bottom_temperature + - hot_entity: binary_sensor.stairwell_bottom_hot + - type: custom:bubble-card + card_type: button + button_type: state + entity: sensor.stairwell_bottom_illuminance + name: Lux + double_tap_action: + action: none + hold_action: + action: none + button_action: + double_tap_action: + action: none + hold_action: + action: none + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Motion + - entity: binary_sensor.stairwell_bottom_motion + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Occupied + - entity: binary_sensor.stairwell_occupied + - type: custom:bubble-card + card_type: separator + name: Security + icon: mdi:security + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Window + - entity: binary_sensor.stairway_window_lower + - type: custom:bubble-card + card_type: empty-column + - type: custom:timer-bar-card + filter: true + entities: + - entity: timer.stairwell_motion_timer + name: Motion Timer + sync_issues: ignore + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.stairwell_motion_timer + hold_action: + action: more-info + double_tap_action: + action: none + modifications: + - elapsed: 40% + bar_foreground: orange + - elapsed: 80% + bar_foreground: red + compressed: true + - type: grid + cards: + - type: vertical-stack + cards: + - type: custom:bubble-card + card_type: pop-up + hash: '#upstairs-hallway' + button_type: slider + entity: light.hallway_overhead + name: Upstairs Hallway + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + action: call-service + service: input_select.select_option + target: + entity_id: input_select.upstairs_hallway_scenes + data: + option: Adaptive + hold_action: + action: more-info + sub_button: + - entity: input_select.upstairs_hallway_scenes + name: Scenes + tap_action: + action: toggle + show_name: false + icon: mdi:palette + - type: custom:bubble-card + card_type: separator + name: Status + icon: mdi:list-box + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_temperature_button + variables: + - name: Temp + - entity: sensor.stairwell_top_temperature + - hot_entity: binary_sensor.stairwell_top_hot + - type: custom:bubble-card + card_type: button + button_type: state + entity: sensor.stairwell_top_illuminance + name: Lux + double_tap_action: + action: none + hold_action: + action: none + button_action: + double_tap_action: + action: none + hold_action: + action: none + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Motion + - entity: binary_sensor.stairwell_top_motion + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Occupied + - entity: binary_sensor.upstairs_hallway_occupied + - type: custom:timer-bar-card + filter: true + entities: + - entity: timer.upstairs_hallway_motion_timer + name: Motion Timer + sync_issues: ignore + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.upstairs_hallway_motion_timer + hold_action: + action: more-info + double_tap_action: + action: none + modifications: + - elapsed: 40% + bar_foreground: orange + - elapsed: 80% + bar_foreground: red + compressed: true + visibility: + - condition: or + conditions: + - condition: state + entity: timer.upstairs_hallway_motion_timer + state: running + - condition: state + entity: timer.upstairs_hallway_motion_timer + state: paused + - type: vertical-stack + cards: + - type: custom:bubble-card + card_type: pop-up + hash: '#upstairs-bathroom' + button_type: slider + entity: light.upstairs_bathroom_lights + name: Upstairs Bathroom + icon: mdi:toilet + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + action: call-service + service: input_select.select_option + target: + entity_id: input_select.upstairs_bathroom_scenes + data: + option: Adaptive + hold_action: + action: more-info + sub_button: + - entity: input_select.upstairs_bathroom_scenes + name: Scenes + tap_action: + action: toggle + show_name: false + icon: mdi:palette + - entity: switch.upstairs_bathroom_motion_lighting + name: Motion Lighting + tap_action: + action: toggle + hold_action: + action: more-info + - type: custom:bubble-card + card_type: separator + name: Modes + icon: mdi:toggle-switch + - type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + entity: input_boolean.shower_mode + name: Shower Mode + show_last_changed: false + show_state: true + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + button_action: + double_tap_action: + action: none + - type: custom:bubble-card + card_type: empty-column + - type: custom:bubble-card + card_type: separator + name: Status + icon: mdi:list-box + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_temperature_button + variables: + - name: Temp + - entity: sensor.upstairs_bathroom_temperature + - hot_entity: binary_sensor.upstairs_bathroom_hot + - type: custom:bubble-card + card_type: button + button_type: state + entity: sensor.upstairs_bathroom_illuminance + name: Lux + show_attribute: false + double_tap_action: + action: none + hold_action: + action: none + button_action: + double_tap_action: + action: none + hold_action: + action: none + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Motion + - entity: binary_sensor.upstairs_bathroom_motion + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Occupied + - entity: binary_sensor.upstairs_bathroom_occupied + - type: custom:timer-bar-card + filter: true + entities: + - entity: timer.upstairs_bathroom_motion_timer + name: Motion Timer + sync_issues: ignore + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.upstairs_bathroom_motion_timer + hold_action: + action: more-info + double_tap_action: + action: none + - entity: timer.shower_mode_cooldown + name: Cooldown + sync_issues: ignore + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.shower_mode_cooldown + hold_action: + action: more-info + double_tap_action: + action: none + modifications: + - elapsed: 40% + bar_foreground: orange + - elapsed: 80% + bar_foreground: red + compressed: true + - type: vertical-stack + cards: + - type: custom:bubble-card + card_type: pop-up + hash: '#master-bedroom' + button_type: slider + entity: light.master_bedroom_lights + name: Master Bedroom + icon: mdi:bed + show_last_changed: false + show_attribute: true + show_state: true + attribute: brightness + tap_action: + action: toggle + hold_action: + action: more-info + double_tap_action: + action: call-service + service: input_select.select_option + target: + entity_id: input_select.master_bedroom_scenes + data: + option: Adaptive + sub_button: + - entity: input_select.master_bedroom_scenes + name: Scenes + tap_action: + action: toggle + show_name: false + icon: mdi:palette + - entity: switch.master_bedroom_motion_lighting + name: Motion Lighting + icon: mdi:motion-sensor + tap_action: + action: toggle + - type: custom:bubble-card + card_type: separator + name: Lights + icon: mdi:lightbulb + - type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + button_type: slider + entity: light.master_bedroom_front + name: Front + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + - type: custom:bubble-card + card_type: button + button_type: slider + entity: light.master_bedroom_side + name: Side + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + - type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + button_type: slider + entity: light.master_bedroom_closet + name: Closet + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + icon: hue:bulb-sultan + - type: custom:bubble-card + card_type: empty-column + - type: custom:bubble-card + card_type: separator + name: Modes + icon: mdi:toggle-switch + - type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + entity: input_boolean.master_bedroom_sleeping + name: Sleeping + show_state: true + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + button_action: + double_tap_action: + action: none + - type: custom:bubble-card + card_type: empty-column + - type: custom:bubble-card + card_type: separator + name: Environment + icon: mdi:thermometer + - type: conditional + conditions: + - condition: state + entity: input_boolean.master_bedroom_aircon_installed + state: 'on' + card: + type: custom:stack-in-card + cards: + - features: + - style: icons + type: climate-hvac-modes + hvac_modes: + - fan_only + - dry + - cool + - auto + - 'off' + - type: target-temperature + - style: dropdown + type: climate-fan-modes + - style: dropdown + type: climate-preset-modes + preset_modes: + - none + - eco + type: tile + entity: climate.master_bedroom_aircon + vertical: false + show_entity_picture: false + hide_state: false + name: Air Conditioner + - type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + button_type: state + entity: binary_sensor.master_bedroom_aircon_compressor + name: Compressor + show_attribute: false + double_tap_action: + action: none + hold_action: + action: none + button_action: + double_tap_action: + action: none + hold_action: + action: none + styles: |- + .bubble-button-background { + opacity: 1 !important; + background-color: ${state === 'on' ? 'var(--accent-color)' : 'var(--background-color-2)'} !important; + } + .bubble-icon { + color: ${state === 'on' ? 'var(--accent-color)' : 'var(--text-color)'} !important; + } + - type: custom:bubble-card + card_type: button + button_type: state + entity: binary_sensor.master_bedroom_aircon_filter_alert + name: Filter + show_attribute: false + double_tap_action: + action: none + hold_action: + action: none + button_action: + double_tap_action: + action: none + hold_action: + action: none + styles: |- + .is-unavailable { + opacity: 0.5 !important; + } + .bubble-button-background { + opacity: 1 !important; + background-color: ${state === 'on' ? 'var(--error-color)' : 'var(--background-color-2)'} !important; + transition: background-color 1s !important; + } + .bubble-icon-container { + background: ${state === 'on' ? 'var(--error-color)' : 'var(--card-background-color)'} !important; + } + .bubble-icon-container::after { + opacity: ${state === 'on' ? 0.3 : 0} !important; + transition: all 1s !important; + } + .bubble-icon { + display: flex !important; + opacity: 0.5 !important; + } + .is-on .bubble-icon { + opacity: 1 !important; + } + - type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + entity: fan.master_bedroom_fan + name: Fan + show_state: true + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + button_action: + double_tap_action: + action: none + styles: |- + .bubble-icon { + animation: ${state === 'on' ? 'slow-rotate 2s linear infinite' : ''}; + } + @keyframes slow-rotate { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } + } + - type: custom:bubble-card + card_type: empty-column + - type: custom:bubble-card + card_type: separator + name: Status + icon: mdi:list-box + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_temperature_button + variables: + - name: Temp + - entity: sensor.master_bedroom_temperature + - hot_entity: binary_sensor.master_bedroom_hot + - type: custom:bubble-card + card_type: button + button_type: state + entity: sensor.master_bedroom_illuminance + name: Lux + show_attribute: false + double_tap_action: + action: none + hold_action: + action: none + button_action: + double_tap_action: + action: none + hold_action: + action: none + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Motion + - entity: binary_sensor.master_bedroom_motion + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Occupied + - entity: binary_sensor.master_bedroom_occupied + - type: custom:timer-bar-card + filter: true + entities: + - entity: timer.master_bedroom_motion_timer + name: Motion Timer + sync_issues: ignore + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.master_bedroom_motion_timer + hold_action: + action: more-info + double_tap_action: + action: none + - entity: timer.shower_mode_cooldown + name: Cooldown + sync_issues: ignore + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.shower_mode_cooldown + hold_action: + action: more-info + double_tap_action: + action: none + modifications: + - elapsed: 40% + bar_foreground: orange + - elapsed: 80% + bar_foreground: red + compressed: true + - type: vertical-stack + cards: + - type: custom:bubble-card + card_type: pop-up + hash: '#kallen-bedroom' + button_type: slider + entity: light.kallen_bedroom_lights + name: Kallen Bedroom + icon: mdi:bunk-bed + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + hold_action: + action: more-info + double_tap_action: + action: call-service + service: input_select.select_option + target: + entity_id: input_select.kallen_bedroom_scenes + data: + option: Adaptive + sub_button: + - entity: input_select.kallen_bedroom_scenes + name: Scenes + tap_action: + action: toggle + show_name: false + icon: mdi:palette + - entity: switch.kallen_bedroom_motion_lighting + name: Motion Lighting + tap_action: + action: toggle + - type: custom:bubble-card + card_type: separator + name: Lights + icon: mdi:lightbulb + - type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + button_type: slider + entity: light.kallen_bedroom_overhead + name: Overhead + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + - type: custom:bubble-card + card_type: button + button_type: slider + entity: light.kallen_bedroom_wall + name: Wall + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + - type: custom:bubble-card + card_type: separator + name: Modes + icon: mdi:toggle-switch + - type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + entity: input_boolean.kallen_sleeping + name: Sleeping + show_state: true + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + button_action: + double_tap_action: + action: none + - type: custom:bubble-card + card_type: empty-column + - type: custom:bubble-card + card_type: separator + name: Environment + icon: mdi:thermometer + - type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + button_type: switch + entity: fan.kallen_bedroom_fan + name: Fan + show_state: true + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + button_action: + double_tap_action: + action: none + styles: |- + .bubble-icon { + animation: ${state === 'on' ? 'slow-rotate 2s linear infinite' : ''}; + } + @keyframes slow-rotate { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } + } + - type: custom:bubble-card + card_type: button + button_type: switch + entity: input_boolean.white_noise_kallen_bedroom + name: White Noise + show_state: true + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + button_action: + double_tap_action: + action: none + - type: custom:bubble-card + card_type: separator + name: Status + icon: mdi:list-box + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_temperature_button + variables: + - name: Temp + - entity: sensor.kallen_bedroom_temperature + - hot_entity: binary_sensor.kallen_bedroom_hot + - type: custom:bubble-card + card_type: button + button_type: state + entity: sensor.kallen_bedroom_illuminance + name: Lux + show_attribute: false + double_tap_action: + action: none + hold_action: + action: none + button_action: + double_tap_action: + action: none + hold_action: + action: none + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Motion + - entity: binary_sensor.kallen_bedroom_motion + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Occupied + - entity: binary_sensor.kallen_bedroom_occupied + - type: custom:timer-bar-card + filter: true + entities: + - entity: timer.kallen_bedroom_motion_timer + name: Motion Timer + sync_issues: ignore + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.kallen_bedroom_motion_timer + hold_action: + action: more-info + double_tap_action: + action: none + modifications: + - elapsed: 40% + bar_foreground: orange + - elapsed: 80% + bar_foreground: red + compressed: true + - type: vertical-stack + cards: + - type: custom:bubble-card + card_type: pop-up + hash: '#emma-bedroom' + button_type: slider + entity: light.emma_bedroom_light + name: Emma Bedroom + icon: hue:room-nursery + show_state: true + show_attribute: true + attribute: brightness + tap_action: + action: toggle + double_tap_action: + action: call-service + service: input_select.select_option + target: + entity_id: input_select.emma_bedroom_scenes + data: + option: Adaptive + hold_action: + action: more-info + sub_button: + - entity: input_select.emma_bedroom_scenes + name: Scenes + tap_action: + action: toggle + show_name: false + icon: mdi:palette + - entity: switch.emma_bedroom_motion_lighting + name: Motion Lighting + tap_action: + action: toggle + hold_action: + action: more-info + - type: custom:bubble-card + card_type: separator + name: Modes + icon: mdi:toggle-switch + - type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + entity: input_boolean.emma_sleeping + name: Sleeping + show_state: true + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + button_action: + double_tap_action: + action: none + - type: custom:bubble-card + card_type: empty-column + - type: custom:bubble-card + card_type: separator + name: Environment + icon: mdi:thermometer + - type: conditional + conditions: + - condition: state + entity: input_boolean.emma_bedroom_aircon_installed + state: 'on' + card: + type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + entity: fan.emma_air_conditioner + name: Air Conditioner + show_state: true + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + button_action: + double_tap_action: + action: none + styles: | + .bubble-icon { + animation: ${state === 'on' ? 'slow-rotate 2s linear infinite' : ''}; + } + @keyframes slow-rotate { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } + } + - type: custom:bubble-card + card_type: button + button_type: state + entity: binary_sensor.emma_aircon_compressor + name: Compressor + double_tap_action: + action: none + hold_action: + action: none + button_action: + double_tap_action: + action: none + hold_action: + action: none + styles: | + .bubble-button-background { + opacity: 1 !important; + background-color: ${state === 'on' ? 'var(--accent-color)' : 'var(--background-color-2)'} !important; + } + .bubble-icon { + color: ${state === 'on' ? 'var(--accent-color)' : 'var(--text-color)'} !important; + } + - type: horizontal-stack + cards: + - type: custom:bubble-card + card_type: button + entity: input_boolean.white_noise_emma_bedroom + name: White Noise + show_state: true + tap_action: + action: toggle + double_tap_action: + action: none + hold_action: + action: more-info + button_action: + double_tap_action: + action: none + - type: custom:bubble-card + card_type: empty-column + - type: custom:bubble-card + card_type: separator + name: Status + icon: mdi:list-box + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_temperature_button + variables: + - name: Temp + - entity: sensor.emma_bedroom_temperature + - hot_entity: binary_sensor.emma_bedroom_hot + - type: custom:bubble-card + card_type: button + button_type: state + entity: sensor.emma_bedroom_illuminance + name: Lux + show_attribute: false + double_tap_action: + action: none + hold_action: + action: none + button_action: + double_tap_action: + action: none + hold_action: + action: none + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Motion + - entity: binary_sensor.emma_bedroom_motion + - type: custom:decluttering-card + template: popup_accent_color_button + variables: + - name: Occupied + - entity: binary_sensor.emma_bedroom_occupied + - type: custom:timer-bar-card + filter: true + entities: + - entity: timer.emma_bedroom_motion_timer + name: Motion Timer + sync_issues: ignore + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.emma_bedroom_motion_timer + hold_action: + action: more-info + double_tap_action: + action: none + modifications: + - elapsed: 40% + bar_foreground: orange + - elapsed: 80% + bar_foreground: red + compressed: true + - type: grid + cards: + - type: vertical-stack + cards: + - type: custom:bubble-card + card_type: pop-up + hash: '#security' + button_type: state + entity: binary_sensor.security_faults + name: Security Overview + show_attribute: false + double_tap_action: + action: none + hold_action: + action: none + button_action: + double_tap_action: + action: none + hold_action: + action: none + styles: |- + .is-unavailable { + opacity: 0.5 !important; + } + .bubble-button-background { + opacity: 1 !important; + background-color: ${state === 'on' ? 'var(--error-color)' : 'var(--background-color-2)'} !important; + transition: background-color 1s !important; + } + .bubble-icon-container { + background: ${state === 'on' ? 'var(--error-color)' : 'var(--card-background-color)'} !important; + } + .bubble-icon-container::after { + opacity: ${state === 'on' ? 0.3 : 0} !important; + transition: all 1s !important; + } + .bubble-icon { + display: flex !important; + opacity: 0.5 !important; + } + .is-on .bubble-icon { + opacity: 1 !important; + } + - type: custom:bubble-card + card_type: separator + name: Doors + styles: >- + ${icon.setAttribute("icon", + hass.states['binary_sensor.exterior_doors'].state === 'on' ? + 'mdi.door_open' : 'mdi:door-closed')} + icon: mdi:door + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Front + - entity: binary_sensor.front_door + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Back + - entity: binary_sensor.back_door + - type: custom:bubble-card + card_type: separator + name: Living Room + icon: hue:room-living + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Front 1 + - entity: binary_sensor.front_window_1 + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Front 2 + - entity: binary_sensor.front_window_2 + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Front 3 + - entity: binary_sensor.front_window_3 + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Side 1 + - entity: binary_sensor.side_window_1 + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Side 2 + - entity: binary_sensor.side_window_2 + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Side 3 + - entity: binary_sensor.side_window_3 + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Side 4 + - entity: binary_sensor.side_window_4 + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Back 1 + - entity: binary_sensor.back_window_1 + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Back 2 + - entity: binary_sensor.back_window_2 + - type: custom:bubble-card + card_type: separator + name: Stairwell + icon: mdi:stairs + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Window + - entity: binary_sensor.stairway_window_lower + - type: custom:bubble-card + card_type: empty-column + - type: custom:bubble-card + card_type: separator + name: Kitchen + icon: hue:room-kitchen + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Big + - entity: binary_sensor.kitchen_big_window + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Sink + - entity: binary_sensor.kitchen_sink_window + - type: custom:bubble-card + card_type: separator + name: Mud Room + icon: hue:room-other + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Window + - entity: binary_sensor.mud_room_window + - type: custom:bubble-card + card_type: empty-column + - type: custom:bubble-card + card_type: separator + name: Downstairs Bathroom + icon: mdi:toilet + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Back + - entity: binary_sensor.downstairs_bathroom_window_1 + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Side + - entity: binary_sensor.downstairs_bathroom_window_2 + - type: custom:bubble-card + card_type: separator + name: Upstairs Hallway + icon: hue:ceiling-round + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Window + - entity: binary_sensor.stairway_window_upper + - type: custom:bubble-card + card_type: empty_column + - type: custom:bubble-card + card_type: separator + name: Upstairs Bathroom + icon: mdi:toilet + - type: horizontal-stack + cards: + - type: custom:decluttering-card + template: popup_security_button + variables: + - name: Window + - entity: binary_sensor.upstairs_bathroom_window + - type: custom:bubble-card + card_type: empty_column + - type: vertical-stack + cards: + - type: custom:bubble-card + card_type: pop-up + hash: '#messaging' + button_type: name + name: Messaging + icon: mdi:bullhorn + - type: custom:bubble-card + card_type: separator + name: Premade + - type: entities + entities: + - entity: script.dinner_is_ready + name: Dinner Is Ready + icon: mdi:bullhorn + - entity: script.we_are_leaving + name: We Are Leaving + icon: mdi:bullhorn + - entity: script.birthday_announcement + name: Birthday Announcement + icon: mdi:bullhorn + - entity: script.server_maintenance_annc + name: Server Maintenance + icon: mdi:bullhorn + - entity: script.server_maintenance_done_annc + name: Server Maintenance Done + icon: mdi:bullhorn + - entity: script.speech_engine + name: Speech Engine + icon: mdi:bullhorn + - type: custom:bubble-card + card_type: separator + name: Custom + - type: custom:tabbed-card + styles: + '--mdc-theme-primary': null + '--mdc-tab-text-label-color-default': null + '--mdc-typography-button-font-size': null + tabs: + - card: + type: entities + entities: + - entity: input_text.tts_message + name: Message + - entity: input_select.tts_devices + name: Devices + - entity: input_select.announcement_voice + - entity: button.send_alexa_message + name: Send Message + title: House Announcement System + attributes: + label: TTS + icon: mdi:volume-high + - card: + type: entities + title: Text Notification System + entities: + - entity: input_select.select_phones + - entity: input_select.select_tvs + - entity: input_text.text_notification_title + name: Title + - entity: input_text.text_notification + name: Body + - entity: input_select.text_notification_priority_level + name: Priority Level (Only works for phones) + - entity: button.send_text_notification + name: Send + show_header_toggle: false + state_color: false + attributes: + label: Text Notify + icon: mdi:text + - card: + type: entities + entities: + - entity: input_text.report_system + name: Description + - entity: input_select.report_type + name: Report Type + - entity: button.send_report + title: Report System + show_header_toggle: false + state_color: false + attributes: + label: Reports + icon: mdi:bug + - type: vertical-stack + cards: + - type: custom:bubble-card + card_type: pop-up + hash: '#batteries' + button_type: name + name: Batteries + icon: mdi:battery-charging + - type: custom:battery-state-card + sort_by_level: asc + bulk_rename: + - from: Battery + to: '' + - from: Stratton Ave + to: '' + - from: Dimmer Switch + to: '' + collapse: + - name: 'Door Sensors (min: {min}%, count: {count})' + secondary_info: Battery levels {range}% + icon: mdi:door + entities: + - sensor.front_door_battery + - sensor.back_door_battery + - sensor.basement_studio_door_battery + - sensor.downstairs_bathroom_door_battery + - name: 'Window Sensors (min: {min}%, count: {count})' + secondary_info: Battery levels {range}% + icon: mdi:window-closed + entities: + - sensor.front_window_battery_1 + - sensor.front_window_battery_2 + - sensor.front_window_battery_3 + - sensor.side_window_1_battery + - sensor.side_window_2_battery + - sensor.side_window_3_battery + - sensor.side_window_4_battery + - sensor.back_window_1_battery + - sensor.back_window_2_battery + - sensor.stairway_window_lower_battery + - sensor.stairway_window_upper_battery + - sensor.kitchen_big_window_battery + - sensor.kitchen_sink_window_battery + - sensor.mud_room_window_battery + - sensor.downstairs_bathroom_window_1_battery + - sensor.downstairs_bathroom_window_2_battery + - sensor.upstairs_bathroom_window_battery + - name: 'Glass Break Sensors (min: {min}%, count: {count})' + secondary_info: Battery levels {range}% + icon: mdi:image-broken-variant + entities: + - sensor.living_room_glass_break_battery + - name: 'Motion Detectors (min: {min}%, count: {count})' + secondary_info: Battery levels {range}% + icon: mdi:motion-sensor + entities: + - sensor.living_room_front_battery + - sensor.upstairs_bathroom_battery + - sensor.downstairs_bathroom_battery + - sensor.emma_bedroom_battery + - sensor.stairwell_bottom_battery + - sensor.basement_studio_battery + - sensor.kallen_bedroom_battery + - sensor.mud_room_battery + - sensor.stairwell_top_battery + - sensor.living_room_back_battery + - sensor.master_bedroom_battery + - name: 'Dimmer Switches (min: {min}%, count: {count})' + secondary_info: Battery Levels {range}% + icon: mdi:toggle-switch + entities: + - sensor.kallen_bedroom_dimmer_switch_battery + - sensor.tina_desk_dimmer_switch_battery + - sensor.emma_bedroom_dimmer_switch_battery + - sensor.master_bedroom_dimmer_switch_battery + - sensor.living_room_dimmer_switch_battery + filter: + include: + - name: entity_id + value: '*_battery' + - name: entity_id + value: '*battery_mqtt' + exclude: + - name: entity_id + value: '*iphone*' + - name: entity_id + value: '*ipad*' + - name: entity_id + value: '*airpod*' + - name: entity_id + value: '*apple*' + - name: entity_id + value: '*chrome*' + - name: entity_id + value: sensor.front_doorbell_battery + tap_action: more-info + - type: vertical-stack + cards: + - type: custom:bubble-card + card_type: pop-up + hash: '#running' + button_type: name + name: Running + icon: mdi:database-clock + - type: custom:auto-entities + filter: + include: + - domain: automation + attributes: + current: '> 0' + - domain: script + attributes: + current: '> 0' + exclude: [] + sort: + method: last_triggered + reverse: false + show_empty: true + card: + type: entities + show_header_toggle: false + state_color: true + - type: vertical-stack + cards: + - type: custom:bubble-card + card_type: pop-up + hash: '#roomtemps' + button_type: name + name: Room Temperatures (24h) + icon: mdi:home-thermometer + show_header: false + - type: custom:bubble-card + card_type: separator + name: Basement + icon: mdi:home-floor-b + - type: custom:mini-graph-card + entities: + - sensor.basement_studio_temperature + name: Studio + points_per_hour: 2 + - type: custom:bubble-card + card_type: separator + name: First Floor + icon: mdi:home-floor-1 + - type: custom:mini-graph-card + entities: + - sensor.living_room_front_temperature + name: Living Room Front + points_per_hour: 2 + - type: custom:mini-graph-card + entities: + - sensor.living_room_back_temperature + name: Living Room Back + points_per_hour: 2 + - type: custom:mini-graph-card + entities: + - sensor.stairwell_bottom_temperature + name: Stairwell + points_per_hour: 2 + - type: custom:mini-graph-card + entities: + - sensor.downstairs_bathroom_temperature + name: Downstairs Bathroom + points_per_hour: 2 + - type: custom:mini-graph-card + entities: + - sensor.mud_room_temperature + name: Mud Room + points_per_hour: 2 + - type: custom:bubble-card + card_type: separator + name: Second Floor + icon: mdi:home-floor-2 + - type: custom:mini-graph-card + entities: + - sensor.stairwell_top_temperature + name: Upstairs Hallway + points_per_hour: 2 + - type: custom:mini-graph-card + entities: + - sensor.upstairs_bathroom_temperature + name: Upstairs Bathroom + points_per_hour: 2 + - type: custom:mini-graph-card + entities: + - sensor.master_bedroom_temperature + name: Master Bedroom + points_per_hour: 2 + - type: custom:mini-graph-card + entities: + - sensor.kallen_bedroom_temperature + name: Kallen Bedroom + points_per_hour: 2 + - type: custom:mini-graph-card + entities: + - sensor.emma_bedroom_temperature + name: Emma Bedroom + points_per_hour: 2 + - type: vertical-stack + cards: + - type: custom:bubble-card + card_type: pop-up + hash: '#roomlux' + button_type: name + name: Room Light Levels (24h) + icon: mdi:brightness-5 + show_header: false + - type: custom:bubble-card + card_type: separator + name: Basement + icon: mdi:home-floor-b + - type: custom:mini-graph-card + entities: + - sensor.basement_studio_illuminance + name: Studio + points_per_hour: 2 + - type: custom:bubble-card + card_type: separator + name: First Floor + icon: mdi:home-floor-1 + - type: custom:mini-graph-card + entities: + - sensor.living_room_front_illuminance + name: Living Room Front + points_per_hour: 2 + - type: custom:mini-graph-card + entities: + - sensor.living_room_back_illuminance + name: Living Room Back + points_per_hour: 2 + - type: custom:mini-graph-card + entities: + - sensor.stairwell_bottom_illuminance + name: Stairwell + points_per_hour: 2 + - type: custom:mini-graph-card + entities: + - sensor.downstairs_bathroom_illuminance + name: Downstairs Bathroom + points_per_hour: 2 + - type: custom:mini-graph-card + entities: + - sensor.mud_room_illuminance + name: Mud Room + points_per_hour: 2 + - type: custom:bubble-card + card_type: separator + name: Second Floor + icon: mdi:home-floor-2 + - type: custom:mini-graph-card + entities: + - sensor.stairwell_top_illuminance + name: Upstairs Hallway + points_per_hour: 2 + - type: custom:mini-graph-card + entities: + - sensor.upstairs_bathroom_illuminance + name: Upstairs Bathroom + points_per_hour: 2 + - type: custom:mini-graph-card + entities: + - sensor.master_bedroom_illuminance + name: Master Bedroom + points_per_hour: 2 + - type: custom:mini-graph-card + entities: + - sensor.kallen_bedroom_illuminance + name: Kallen Bedroom + points_per_hour: 2 + - type: custom:mini-graph-card + entities: + - sensor.emma_bedroom_illuminance + name: Emma Bedroom + points_per_hour: 2 + visible: + - user: c3909d27048140729f002aaef0391775 + - user: f387a983651a4321a7411ff8cf36f949 + - user: 879b4c04e32841b3ad1d2763a11b4e70 + - user: 5244463d054a454389c06b76e6229b53 + - user: cc8352d070b64246820a8af4302a5f52 + cards: [] + max_columns: 4 + - title: Old + path: old + icon: '' + visible: + - user: f387a983651a4321a7411ff8cf36f949 + - user: 879b4c04e32841b3ad1d2763a11b4e70 + - user: c3909d27048140729f002aaef0391775 + cards: + - type: custom:meteoalarm-card + entities: + entity: sensor.weatheralerts + integration: weatheralerts + hide_when_no_warning: true + - type: custom:mushroom-template-card + primary: Hello, {{user}} + secondary: >- + {% from 'weather.jinja' import weatherReport %} + + {{ weatherReport('full','text') }} + + --- Indoor Temps --- + + Average: {{ states('sensor.average_room_temperature',with_unit=true) + }} + + Coldest: {{ state_attr('sensor.coldest_room_temperature','room') }}, + {{ states('sensor.coldest_room_temperature',with_unit=true) }} + + Warmest: {{ state_attr('sensor.warmest_room_temperature','room') }}, + {{ states('sensor.warmest_room_temperature',with_unit=true) }} + + + --- Lights --- + + Average: {{ states('sensor.average_room_illuminance',with_unit=true) + }} + + Dimmest: {{ state_attr('sensor.dimmest_room','room') }}, {{ + states('sensor.dimmest_room',with_unit=true) }} + + Brightest: {{ state_attr('sensor.brightest_room','room') }}, {{ + states('sensor.brightest_room',with_unit=true) }} + + + For advanced controls, click this card to go to the main dashboard. + icon: mdi:home + tap_action: + action: navigate + navigation_path: /lovelace + multiline_secondary: true + icon_color: blue + fill_container: false + - square: false + type: grid + cards: + - type: custom:button-card + name: Global Scenes + icon: mdi:home-lightbulb-outline + show_label: true + aspect_ratio: 1.25/1 + styles: + card: + - '--mdc-ripple-color': purple + - '--mdc-ripple-press-opacity': 0.5 + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: entities + entities: + - script.give_me_darkness + - button.good_morning + - button.goodnight + - script.max_brightness + - button.sunset_lights_trigger + - entity: button.basement_on_manual + name: Basement On + - script.adaptive_on_first_floor + - script.adaptive_on_second_floor + - script.bright_on_first_floor + - script.bright_on_second_floor + - script.evening_on_first_floor + - script.evening_on_second_floor + - switch.animated_scene_halloween + - script.emma_rainbow_lights + - type: custom:button-card + name: Messages + icon: mdi:bullhorn + show_label: true + aspect_ratio: 1.25/1 + styles: + card: + - '--mdc-ripple-color': purple + - '--mdc-ripple-press-opacity': 0.5 + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:stack-in-card + cards: + - type: entities + title: Premade + entities: + - entity: script.dinner_is_ready + name: Dinner Is Ready + icon: mdi:bullhorn + - entity: script.we_are_leaving + name: We Are Leaving + icon: mdi:bullhorn + - entity: script.birthday_announcement + name: Birthday Announcement + icon: mdi:bullhorn + - entity: script.server_maintenance_annc + name: Server Maintenance + icon: mdi:bullhorn + - entity: script.server_maintenance_done_annc + name: Server Maintenance Done + icon: mdi:bullhorn + - entity: script.speech_engine + name: Speech Engine + icon: mdi:bullhorn + - type: custom:tabbed-card + styles: + '--mdc-theme-primary': null + '--mdc-tab-text-label-color-default': null + '--mdc-typography-button-font-size': null + tabs: + - card: + type: entities + entities: + - entity: input_text.tts_message + name: Message + - entity: input_select.tts_devices + name: Devices + - entity: input_select.announcement_voice + - entity: button.send_alexa_message + name: Send Message + attributes: + label: TTS + icon: mdi:volume-high + - card: + type: entities + entities: + - entity: input_select.select_phones + - entity: input_select.select_tvs + - entity: input_text.text_notification_title + name: Title + - entity: input_text.text_notification + name: Body + - entity: >- + input_select.text_notification_priority_level + name: Priority Level (Only works for phones) + - entity: button.send_text_notification + name: Send + show_header_toggle: false + state_color: false + attributes: + label: Text Notify + icon: mdi:text + - card: + type: entities + entities: + - entity: input_text.report_system + name: Description + - entity: input_select.report_type + name: Report Type + - entity: button.send_report + show_header_toggle: false + state_color: false + attributes: + label: Reports + icon: mdi:bug + - type: custom:button-card + name: Weather + icon: mdi:weather-partly-cloudy + show_label: true + aspect_ratio: 1.25/1 + styles: + card: + - '--mdc-ripple-color': purple + - '--mdc-ripple-press-opacity': 0.5 + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:clock-weather-card + entity: weather.iron_nerd_weather_station + sun_entity: sun.sun + weather_icon_type: fill + animated_icon: true + forecast_rows: 7 + time_format: 12 + tap_action: + action: navigate + navigation_path: /lovelace/weather + - type: custom:button-card + name: Batteries + icon: mdi:battery-charging + show_label: true + aspect_ratio: 1.25/1 + styles: + card: + - '--mdc-ripple-color': purple + - '--mdc-ripple-press-opacity': 0.5 + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:battery-state-card + sort_by_level: asc + bulk_rename: + - from: Battery + to: '' + - from: Stratton Ave + to: '' + - from: Dimmer Switch + to: '' + collapse: + - name: 'Door Sensors (min: {min}%, count: {count})' + secondary_info: Battery levels {range}% + icon: mdi:door + entities: + - sensor.front_door_battery + - sensor.back_door_battery + - sensor.basement_studio_door_battery + - sensor.downstairs_bathroom_door_battery + - name: 'Window Sensors (min: {min}%, count: {count})' + secondary_info: Battery levels {range}% + icon: mdi:window-closed + entities: + - sensor.front_window_battery_1 + - sensor.front_window_battery_2 + - sensor.front_window_battery_3 + - sensor.side_window_1_battery + - sensor.side_window_2_battery + - sensor.side_window_3_battery + - sensor.side_window_4_battery + - sensor.back_window_1_battery + - sensor.back_window_2_battery + - sensor.stairway_window_lower_battery + - sensor.stairway_window_upper_battery + - sensor.kitchen_big_window_battery + - sensor.kitchen_sink_window_battery + - sensor.mud_room_window_battery + - sensor.downstairs_bathroom_window_1_battery + - sensor.downstairs_bathroom_window_2_battery + - sensor.upstairs_bathroom_window_battery + - name: 'Glass Break Sensors (min: {min}%, count: {count})' + secondary_info: Battery levels {range}% + icon: mdi:image-broken-variant + entities: + - sensor.living_room_glass_break_battery + - name: 'Motion Detectors (min: {min}%, count: {count})' + secondary_info: Battery levels {range}% + icon: mdi:motion-sensor + entities: + - sensor.living_room_front_battery + - sensor.upstairs_bathroom_battery + - sensor.downstairs_bathroom_battery + - sensor.emma_bedroom_battery + - sensor.stairwell_bottom_battery + - sensor.basement_studio_battery + - sensor.kallen_bedroom_battery + - sensor.mud_room_battery + - sensor.stairwell_top_battery + - sensor.living_room_back_battery + - sensor.master_bedroom_battery + - name: 'Dimmer Switches (min: {min}%, count: {count})' + secondary_info: Battery Levels {range}% + icon: mdi:toggle-switch + entities: + - sensor.kallen_bedroom_dimmer_switch_battery + - sensor.tina_desk_dimmer_switch_battery + - sensor.emma_bedroom_dimmer_switch_battery + - sensor.master_bedroom_dimmer_switch_battery + - sensor.living_room_dimmer_switch_battery + filter: + include: + - name: entity_id + value: '*_battery' + - name: entity_id + value: '*battery_mqtt' + exclude: + - name: entity_id + value: '*iphone*' + - name: entity_id + value: '*ipad*' + - name: entity_id + value: '*airpod*' + - name: entity_id + value: '*apple*' + - name: entity_id + value: '*chrome*' + - name: entity_id + value: sensor.front_doorbell_battery + tap_action: more-info + columns: 4 + - type: grid + square: false + columns: 4 + cards: + - type: custom:button-card + name: Tony + icon: mdi:human-male + show_label: true + aspect_ratio: 1.25/1 + styles: + card: + - '--mdc-ripple-color': purple + - '--mdc-ripple-press-opacity': 0.5 + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: vertical-stack + cards: + - type: entities + title: Meds + entities: + - entity: input_boolean.tony_morning_meds_taken + name: Morning Meds + - entity: input_boolean.tony_afternoon_meds_taken + name: Afternoon Meds + - entity: input_boolean.tony_night_meds_taken + name: Night Meds + - entity: input_datetime.tony_morning_meds_taken + name: Morning Meds Taken + - entity: input_datetime.tony_afternoon_meds_taken + name: Afternoon Meds Taken + - entity: input_datetime.tony_night_meds_taken + name: Night Meds Taken + - entity: input_datetime.tony_morning_meds_notify + name: Morning Notify + - entity: input_datetime.tony_afternoon_meds_notify + name: Afternoon Notify + - entity: input_datetime.tony_night_meds_notify + name: Night Notify + - entity: counter.tony_morning_meds_reminder_count + name: Morning Reminders + - entity: counter.tony_afternoon_meds_reminder_count + name: Afternoon Reminders + - entity: counter.tony_night_meds_reminder_count + name: Night Reminders + - entity: input_number.tony_afternoon_meds_interval + name: Afternoon Interval + show_header_toggle: false + state_color: true + - type: entities + title: Computer + entities: + - entity: binary_sensor.tony_desktop_on + name: Status + - entity: script.tony_desktop_wake + name: Wake + - entity: script.tony_desktop_shutdown + name: Shutdown + show_header_toggle: false + state_color: true + - type: custom:button-card + name: Tina + icon: mdi:human-female + show_label: true + aspect_ratio: 1.25/1 + styles: + card: + - '--mdc-ripple-color': purple + - '--mdc-ripple-press-opacity': 0.5 + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: vertical-stack + cards: + - type: entities + title: Meds + entities: + - entity: input_boolean.tina_morning_meds_taken + name: Morning Meds + - entity: input_boolean.tina_night_meds_taken + name: Night Meds + - entity: input_datetime.tina_morning_meds_taken + name: Morning Meds Taken + - entity: input_datetime.tina_night_meds_taken + name: Night Meds Taken + - entity: input_datetime.tina_morning_meds_notify + name: Morning Notify + - entity: input_datetime.tina_night_meds_notify + name: Night Notify + - entity: counter.tina_morning_meds_reminder_count + name: Morning Reminders + - entity: counter.tina_night_meds_reminder_count + name: Night Reminders + show_header_toggle: false + state_color: true + - type: entities + title: Computer + entities: + - entity: binary_sensor.tina_desktop_on + name: Status + - entity: script.tina_desktop_wake + name: Wake + - entity: script.tina_desktop_shutdown + name: Shutdown + show_header_toggle: false + state_color: true + - type: custom:button-card + name: Kallen + icon: mdi:human-child + show_label: true + aspect_ratio: 1.25/1 + styles: + card: + - '--mdc-ripple-color': purple + - '--mdc-ripple-press-opacity': 0.5 + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: vertical-stack + cards: + - type: entities + title: Meds + entities: + - entity: input_boolean.kallen_morning_meds_taken + name: Morning Meds + - entity: input_boolean.kallen_night_meds_taken + name: Night Meds + - entity: input_datetime.kallen_morning_meds_taken + name: Morning Meds Taken + - entity: input_datetime.kallen_night_meds_taken + name: Night Meds Taken + - entity: input_datetime.kallen_morning_meds_notify + name: Morning Notify + - entity: input_datetime.kallen_night_meds_notify + name: Night Notify + - entity: counter.kallen_morning_meds_reminder_count + name: Morning Reminders + - entity: counter.kallen_night_meds_reminder_count + name: Night Reminders + - entity: input_boolean.kallen_late_bedtime + name: Late Bedtime + show_header_toggle: false + state_color: true + - type: entities + title: Computer + entities: + - entity: binary_sensor.kallen_desktop_on + name: Status + - entity: script.kallen_desktop_wake + name: Wake + - entity: script.kallen_desktop_shutdown + name: Shutdown + show_header_toggle: false + state_color: true + - type: custom:button-card + name: Emma + icon: mdi:bow-tie + show_label: true + aspect_ratio: 1.25/1 + styles: + card: + - '--mdc-ripple-color': purple + - '--mdc-ripple-press-opacity': 0.5 + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: entities + title: Emma Meds + entities: + - type: custom:fold-entity-row + head: + type: section + label: Alternating Meds + entities: + - entity: input_boolean.emma_alternating_meds_active + name: Alternating Meds Active + - entity: input_boolean.emma_tylenol + name: Tylenol Taken + - entity: input_datetime.emma_tylenol + name: Tylenol Given + - entity: input_datetime.emma_tylenol_notify + name: Tylenol Notify + - entity: input_boolean.emma_ibuprofen + name: Ibuprofen Taken + - entity: input_datetime.emma_ibuprofen + name: Ibuprofen Given + - entity: input_datetime.emma_ibuprofen_notify + name: Ibuprofen Notify + - type: custom:fold-entity-row + head: + type: section + label: Cough Meds + entities: + - entity: input_boolean.emma_cough_meds_active + name: Cough Meds Active + - entity: input_boolean.emma_cough_meds + name: Cough Meds Taken + - entity: input_datetime.emma_cough_meds + name: Cough Meds Given + - entity: input_datetime.emma_cough_meds_notify + name: Cough Meds Notify + - entity: input_number.emma_cough_meds_interval + name: Interval + visibility: + - condition: user + users: + - f387a983651a4321a7411ff8cf36f949 + - c3909d27048140729f002aaef0391775 + - type: grid + square: false + columns: 2 + cards: + - type: custom:button-card + name: Cats + icon: mdi:cat + show_label: true + aspect_ratio: 2.5/1 + styles: + card: + - '--mdc-ripple-color': purple + - '--mdc-ripple-press-opacity': 0.5 + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:mushroom-template-card + primary: '' + secondary: Cat stuff coming soon. Maybe. + icon: '' + layout: vertical + multiline_secondary: false + fill_container: false + tap_action: + action: none + hold_action: + action: none + double_tap_action: + action: none + - type: custom:button-card + name: Rabbit + icon: mdi:rabbit + show_label: true + aspect_ratio: 2.5/1 + styles: + card: + - '--mdc-ripple-color': purple + - '--mdc-ripple-press-opacity': 0.5 + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: vertical-stack + cards: + - type: entities + entities: + - entity: input_boolean.rabbit_fed + - entity: input_datetime.rabbit_fed + - entity: input_datetime.rabbit_feeding_notify + name: Notify + - entity: input_number.rabbit_feeding_interval + name: Interval + - entity: counter.rabbit_feeding_reminder_count + name: Reminder Count + show_header_toggle: false + state_color: true + title: Rabbit Feeding + - type: entities + entities: + - entity: input_boolean.rabbit_hutch_cleaned + name: Hutch Cleaned + - entity: input_datetime.rabbit_hutch_cleaned + name: Hutch Cleaned + - entity: input_datetime.rabbit_hutch_cleaning_notify + name: Notify + - entity: input_number.rabbit_hutch_cleaning_interval + name: Interval + - entity: counter.rabbit_hutch_cleaning_reminder_count + name: Reminder Count + title: Rabbit Hutch Cleaning + show_header_toggle: false + state_color: true + - type: grid + square: false + columns: 1 + cards: + - type: custom:button-card + name: Running + icon: mdi:database-clock + show_label: true + aspect_ratio: 5/1 + styles: + card: + - '--mdc-ripple-color': purple + - '--mdc-ripple-press-opacity': 0.5 + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:auto-entities + filter: + include: + - domain: automation + attributes: + current: '> 0' + - domain: script + attributes: + current: '> 0' + exclude: [] + sort: + method: last_triggered + reverse: false + else: + type: custom:mushroom-template-card + primary: Nothing running + secondary: There are currently no automations or scripts running + multiline_secondary: true + layout: vertical + tap_action: + action: none + hold_action: + action: none + double_tap_action: + action: none + fill_container: false + card: + type: entities + show_header_toggle: false + state_color: true + title: Running Automations/Scripts + card_mod: + style: | + ha-dialog { + --mdc-dialog-min-height: 10px !important; + } + visibility: + - condition: user + users: + - c3909d27048140729f002aaef0391775 + - type: grid + square: false + columns: 1 + cards: + - type: custom:button-card + name: Kallen Timer + icon: mdi:timer + show_label: true + aspect_ratio: 5/1 + styles: + card: + - '--mdc-ripple-color': purple + - '--mdc-ripple-press-opacity': 0.5 + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:stack-in-card + title: Activity Timer + cards: + - type: custom:flipdown-timer-card + entity: timer.kallen_timer + name: Kallen Activity Timer + duration: '00:00:00' + show_title: false + show_header: true + show_error: false + show_hour: auto + styles: + button: + location: hide + - type: entities + entities: + - entity: input_number.kallen_activity_duration + name: Duration + - entity: input_boolean.kallen_timer_control_lights + name: Control Lights + - entity: input_select.kallen_activity_room + name: Room + - entity: input_select.kallen_activities + name: Activity + show_header_toggle: false + state_color: true + - type: custom:stack-in-card + mode: horizontal + cards: + - type: custom:button-card + entity: timer.kallen_timer + name: [] + show_label: true + aspect_ratio: 2.7/1 + styles: + card: + - '--mdc-ripple-color': purple + - '--mdc-ripple-press-opacity': 0.5 + state: + - value: active + label: Running + icon: mdi:play + styles: + icon: + - color: green + - value: paused + label: Paused + icon: mdi:pause + styles: + icon: + - color: yellow + - value: idle + label: Idle + icon: mdi:play + tap_action: + action: call-service + service: button.press + service_data: + entity_id: button.kallen_timer_start + hold_action: + action: more-info + entity: timer.kallen_timer + - type: custom:button-card + entity: timer.kallen_timer + name: [] + icon: mdi:cancel + label: Cancel + show_label: true + aspect_ratio: 2.7/1 + styles: + card: + - '--mdc-ripple-color': purple + - '--mdc-ripple-press-opacity': 0.5 + state: + - value: active + styles: + icon: + - color: green + - value: paused + styles: + icon: + - color: yellow + - value: idle + tap_action: + action: call-service + service: script.kallen_timer_cancel + hold_action: + action: more-info + entity: timer.kallen_timer + visibility: + - condition: user + users: + - 879b4c04e32841b3ad1d2763a11b4e70 + - type: custom:mushroom-template-card + primary: '' + multiline_secondary: true + secondary: |- + {% from 'formatting.jinja' import cleanup %} + {% import 'status.jinja' as status %} + + {{ cleanup(status.tony_status_report('full','text')) }} + + {{ cleanup(status.tina_status_report('full','text')) }} + + {{ cleanup(status.kallen_status_report('full','text')) }} + + {{ cleanup(status.emma_status_report('full','text')) }} + + {{ cleanup(status.house_status_report('full','text')) }} + + {{ cleanup(status.laundry_report('full','text')) }} + tap_action: + action: none + hold_action: + action: none + double_tap_action: + action: none + fill_container: false + - type: custom:room-card + title: Front Porch + entity: light.front_porch_light + show_icon: true + state_color: true + content_alignment: center + tap_action: + action: toggle + icon: + template: + icon: > + if (entity.state === 'on') return 'mdi:lightbulb'; if + (entity.state === 'off') return 'mdi:lightbulb-outline'; else + return 'mdi:map-marker-question'; + rows: + - content_alignment: center + entities: + - entity: input_select.front_porch_scenes + name: Scenes + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:select-list-card + entity: input_select.front_porch_scenes + icon: '' + truncate: true + show_toggle: false + scroll_to_selected: true + max_options: 0 + info_entities: + - entity: sensor.front_doorbell_battery_mqtt + hide_unavailable: true + show_icon: true + state_color: false + tap_action: + action: more-info + - entity: binary_sensor.front_doorbell_ding_mqtt + hide_unavailable: true + show_icon: true + state_color: true + tap_action: + action: more-info + - entity: binary_sensor.front_doorbell_motion_mqtt + hide_unavailable: true + show_icon: true + state_color: true + tap_action: + action: more-info + - entity: timer.front_porch_motion_timer + hide_unavailable: true + hide_if: + conditions: + - condition: equals + entity: timer.front_porch_motion_timer + value: idle + show_icon: true + state_color: true + icon: mdi:timer-outline + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:timer-bar-card + name: Motion Timer + filter: true + show_empty: Timer is idle + entity: timer.front_porch_motion_timer + sync_issues: ignore + bar_radius: 10px + mushroom: null + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.front_porch_motion_timer + hold_action: + action: more_info + double_tap_action: + action: none + modifications: + - elapsed: 40% + bar_foreground: orange + - elapsed: 80% + bar_foreground: red + - type: custom:restriction-card + restrictions: + block: + text: Studio is live, no touchy! + condition: + value: 'on' + entity: input_boolean.studio_quiet + exemptions: + - user: c3909d27048140729f002aaef0391775 + card: + type: custom:room-card + title: Basement Studio + entity: light.basement_studio_lights + show_icon: true + state_color: true + content_alignment: center + tap_action: + action: toggle + icon: + template: + icon: > + if (entity.state === 'on') return 'mdi:lightbulb'; if + (entity.state === 'off') return 'mdi:lightbulb-outline'; else + return 'mdi:map-marker-question'; + rows: + - content_alignment: center + entities: + - entity: light.basement_stairwell + name: Stairwell + hide_unavailable: true + show_icon: true + state_color: true + tap_action: + action: toggle + icon: + template: + icon: > + if (entity.state === 'on') return 'hue:wall-lantern'; if + (entity.state === 'off') return 'hue:wall-lantern-off'; + else return 'mdi:map-marker-question'; + - entity: light.basement_led_strip_1 + name: LED Strip + hide_unavailable: true + show_icon: true + state_color: true + tap_action: + action: toggle + icon: + template: + icon: > + if (entity.state === 'on') return 'hue:lightstrip'; if + (entity.state === 'off') return 'hue:lightstrip-off'; + else return 'mdi:map-marker-question'; + - entity: light.basement_short_lamp + name: Short + hide_unavailable: true + show_icon: true + state_color: true + tap_action: + action: toggle + icon: + template: + icon: > + if (entity.state === 'on') return 'hue:floor-shade'; if + (entity.state === 'off') return 'hue:floor-shade-off'; + else return 'mdi:map-marker-question'; + - entity: light.basement_tall_lamp + name: Tall + hide_unavailable: true + show_icon: true + state_color: true + tap_action: + action: toggle + icon: + template: + icon: > + if (entity.state === 'on') return 'hue:floor-shade'; if + (entity.state === 'off') return 'hue:floor-shade-off'; + else return 'mdi:map-marker-question'; + - content_alignment: center + entities: + - entity: input_boolean.recliner_mode + name: Recliner + state_color: true + show_icon: true + tap_action: + action: toggle + - entity: fan.basement_fan + name: Fan + hide_unavailable: true + state_color: true + show_icon: true + tap_action: + action: toggle + - entity: input_boolean.white_noise_basement + name: Sound + state_color: true + show_icon: true + tap_action: + action: toggle + - entity: input_boolean.studio_quiet + name: Quiet + state_color: true + show_icon: true + tap_action: + action: toggle + - content_alignment: center + entities: + - entity: sensor.basement_studio_temperature + show_state: true + show_name: false + - entity: sensor.basement_studio_illuminance + show_state: true + show_name: false + - content_alignment: center + entities: + - entity: input_select.basement_studio_scenes + name: Scenes + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:select-list-card + entity: input_select.basement_studio_scenes + icon: '' + truncate: true + show_toggle: false + scroll_to_selected: true + max_options: 0 + info_entities: + - entity: binary_sensor.basement_studio_door + hide_unavailable: true + state_color: true + show_icon: true + tap_action: + action: more-info + - entity: binary_sensor.basement_occupied + hide_unavailable: true + state_color: true + show_icon: true + icon: + template: + icon: > + if (entity.state === 'off') return 'mdi:close-thick'; if + (entity.state === 'on') return 'mdi:check'; else return + 'mdi:map-marker-question'; + - entity: timer.basement_studio_door_timer + hide_unavailable: true + state_color: true + show_icon: true + icon: mdi:timer-outline + hide_if: + conditions: + - condition: equals + entity: timer.basement_studio_door_timer + value: idle + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:timer-bar-card + name: Motion Timer + filter: true + show_empty: Timer is idle + entity: timer.basement_studio_door_timer + sync_issues: ignore + bar_radius: 10px + mushroom: null + 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 + - entity: timer.kallen_timer + state_color: true + show_icon: true + icon: mdi:timer-outline + hide_if: + conditions: + - condition: not_equals + value: active + - condition: not_equals + entity: input_select.kallen_activity_room + value: Basement + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:stack-in-card + cards: + - type: markdown + content: >- + Do *not* use the start button on the timer. Use the + start button on the **settings card only**, or else + the reading duration will not be set properly. This + is a bug I could not fix. + + + - Dad + title: IMPORTANT + - type: custom:flipdown-timer-card + entity: timer.kallen_timer + name: Kallen Activity Timer + show_title: true + show_error: false + - 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: custom:room-card + title: Living Room + entity: light.living_room_lights + show_icon: true + state_color: true + content_alignment: center + tap_action: + action: toggle + icon: + template: + icon: > + if (entity.state === 'on') return 'mdi:lightbulb'; if + (entity.state === 'off') return 'mdi:lightbulb-outline'; else + return 'mdi:map-marker-question'; + rows: + - content_alignment: center + entities: + - entity: light.living_room_overhead + name: Overhead + hide_unavailable: true + show_icon: true + state_color: true + tap_action: + action: toggle + icon: + template: + icon: > + if (entity.state === 'on') return 'hue:ceiling-devere'; if + (entity.state === 'off') return 'hue:ceiling-devere-off'; + else return 'mdi:map-marker-question'; + - entity: light.living_room_led_strip + name: LED Strip + hide_unavailable: true + show_icon: true + state_color: true + tap_action: + action: toggle + icon: + template: + icon: > + if (entity.state === 'on') return 'hue:lightstrip'; if + (entity.state === 'off') return 'hue:lightstrip-off'; else + return 'mdi:map-marker-question'; + - content_alignment: center + entities: + - entity: sensor.living_room_front_temperature + show_state: true + show_name: false + - entity: sensor.living_room_front_illuminance + show_state: true + show_name: false + - content_alignment: center + entities: + - entity: input_select.living_room_scenes + name: Scenes + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:select-list-card + entity: input_select.living_room_scenes + icon: '' + truncate: true + show_toggle: false + scroll_to_selected: true + max_options: 0 + info_entities: + - entity: binary_sensor.front_door + hide_unavailable: true + state_color: true + show_icon: true + - entity: binary_sensor.living_room_windows + hide_unavailable: true + state_color: true + show_icon: true + - entity: binary_sensor.living_room_occupied + hide_unavailable: true + state_color: true + show_icon: true + icon: + template: + icon: > + if (entity.state === 'off') return 'mdi:close-thick'; if + (entity.state === 'on') return 'mdi:check'; else return + 'mdi:map-marker-question'; + - entity: timer.kallen_timer + state_color: true + show_icon: true + hide_if: + conditions: + - condition: not_equals + value: active + - condition: not_equals + entity: input_select.kallen_activity_room + value: Living Room + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:stack-in-card + cards: + - type: markdown + content: >- + Do *not* use the start button on the timer. Use the + start button on the **settings card only**, or else + the reading duration will not be set properly. This is + a bug I could not fix. + + + - Dad + title: IMPORTANT + - type: custom:flipdown-timer-card + entity: timer.kallen_timer + name: Kallen Activity Timer + show_title: true + show_error: false + - 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: custom:room-card + title: Tina Desk + entity: light.tina_desk_lights + show_icon: true + state_color: true + content_alignment: center + tap_action: + action: call-service + service: input_boolean.toggle + target: + entity_id: input_boolean.tina_desk_lights + icon: + template: + icon: > + if (entity.state === 'on') return 'mdi:lightbulb'; if + (entity.state === 'off') return 'mdi:lightbulb-outline'; else + return 'mdi:map-marker-question'; + rows: + - content_alignment: center + entities: + - entity: light.tina_lamp_top + name: Top + hide_unavailable: true + state_color: true + show_icon: true + tap_action: + action: toggle + icon: + template: + icon: > + if (entity.state === 'on') return 'hue:floor-shade'; if + (entity.state === 'off') return 'hue:floor-shade-off'; + else return 'mdi:map-marker-question'; + - entity: light.tina_lamp_side + name: Side + hide_unavailable: true + state_color: true + show_icon: true + tap_action: + action: toggle + icon: + template: + icon: > + if (entity.state === 'on') return 'hue:floor-shade'; if + (entity.state === 'off') return 'hue:floor-shade-off'; + else return 'mdi:map-marker-question'; + - entity: light.tina_desk_strip + name: Strip + hide_unavailable: true + state_color: true + show_icon: true + tap_action: + action: toggle + icon: + template: + icon: > + if (entity.state === 'on') return 'hue:lightstrip'; if + (entity.state === 'off') return 'hue:lightstrip-off'; else + return 'mdi:map-marker-question'; + - content_alignment: center + entities: + - entity: input_select.tina_desk_scenes + name: Scenes + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:select-list-card + entity: input_select.tina_desk_scenes + icon: '' + truncate: true + show_toggle: false + scroll_to_selected: true + max_options: 0 + info_entities: + - entity: binary_sensor.tina_desk_occupied + hide_unavailable: true + show_icon: true + state_color: true + icon: + template: + icon: > + if (entity.state === 'off') return 'mdi:close-thick'; if + (entity.state === 'on') return 'mdi:check'; else return + 'mdi:map-marker-question'; + - type: custom:room-card + title: Downstairs Bathroom + entity: light.downstairs_bathroom_lights + show_icon: true + state_color: true + content_alignment: center + tap_action: + action: toggle + icon: + template: + icon: > + if (entity.state === 'on') return 'mdi:lightbulb'; if + (entity.state === 'off') return 'mdi:lightbulb-outline'; else + return 'mdi:map-marker-question'; + rows: + - content_alignment: center + entities: + - entity: timer.washer_timer + name: Washer + state_color: true + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:stack-in-card + cards: + - type: entities + title: Washer Controls + entities: + - entity: input_number.washer_cycle_length + name: Cycle Length + - entity: input_datetime.washer_finished + name: Finished At + - entity: input_boolean.washer_finished + name: Cycle Finished + secondary_info: Turn off after collecting laundry + - type: custom:flipdown-timer-card + entity: timer.washer_timer + name: Washer Timer + duration: '00:00:00' + show_title: false + show_header: true + show_error: false + show_hour: auto + styles: + button: + location: hide + - type: custom:stack-in-card + mode: horizontal + cards: + - type: custom:button-card + entity: timer.washer_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: Start + icon: mdi:play + tap_action: + action: call-service + service: button.press + service_data: + entity_id: button.washer_start + hold_action: + action: more-info + entity: timer.washer_timer + - type: custom:button-card + entity: timer.washer_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: button.press + service_data: + entity_id: button.washer_cancel + hold_action: + action: more-info + entity: timer.washer_timer + - entity: timer.dryer_timer + name: Dryer + state_color: true + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:stack-in-card + cards: + - type: entities + title: Dryer Controls + entities: + - entity: input_number.dryer_cycle_length + name: Cycle Length + - entity: input_datetime.dryer_finished + name: Finished At + - entity: input_boolean.dryer_finished + name: Cycle Finished + secondary_info: Turn off after collecting laundry + - type: custom:flipdown-timer-card + entity: timer.dryer_timer + name: Dryer Timer + duration: '00:00:00' + show_title: false + show_header: true + show_error: false + show_hour: auto + styles: + button: + location: hide + - type: custom:stack-in-card + mode: horizontal + cards: + - type: custom:button-card + entity: timer.dryer_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: Start + icon: mdi:play + tap_action: + action: call-service + service: button.press + service_data: + entity_id: button.dryer_start + hold_action: + action: more-info + entity: timer.dryer_timer + - type: custom:button-card + entity: timer.dryer_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: button.press + service_data: + entity_id: button.dryer_cancel + hold_action: + action: more-info + entity: timer.dryer_timer + - content_alignment: center + entities: + - entity: sensor.downstairs_bathroom_temperature + show_state: true + show_name: false + - entity: sensor.downstairs_bathroom_illuminance + show_state: true + show_name: false + - content_alignment: center + entities: + - entity: input_select.downstairs_bathroom_scenes + name: Scenes + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:select-list-card + entity: input_select.downstairs_bathroom_scenes + icon: '' + truncate: true + show_toggle: false + scroll_to_selected: true + max_options: 0 + info_entities: + - entity: binary_sensor.downstairs_bathroom_occupied + hide_unavailable: true + show_icon: true + state_color: true + icon: + template: + icon: > + if (entity.state === 'off') return 'mdi:close-thick'; if + (entity.state === 'on') return 'mdi:check'; else return + 'mdi:map-marker-question'; + - entity: timer.downstairs_bathroom_lights_timer + hide_unavailable: true + show_icon: true + state_color: true + icon: mdi:timer-outline + hide_if: + conditions: + - condition: equals + entity: timer.downstairs_bathroom_lights_timer + value: idle + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:timer-bar-card + name: Motion Timer + filter: true + show_empty: Timer is idle + entity: timer.downstairs_bathroom_lights_timer + sync_issues: ignore + bar_radius: 10px + mushroom: null + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.downstairs_bathroom_lights_timer + hold_action: + action: more_info + double_tap_action: + action: none + modifications: + - elapsed: 40% + bar_foreground: orange + - elapsed: 80% + bar_foreground: red + - type: custom:room-card + title: Mud Room + entity: light.mud_room_overhead + show_icon: true + state_color: true + content_alignment: center + tap_action: + action: toggle + icon: + template: + icon: > + if (entity.state === 'on') return 'mdi:lightbulb'; if + (entity.state === 'off') return 'mdi:lightbulb-outline'; else + return 'mdi:map-marker-question'; + rows: + - content_alignment: center + entities: + - entity: sensor.mud_room_temperature + show_state: true + show_name: false + - entity: sensor.mud_room_illuminance + show_state: true + show_name: false + - content_alignment: center + entities: + - entity: input_select.mud_room_scenes + name: Scenes + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:select-list-card + entity: input_select.mud_room_scenes + icon: '' + truncate: true + show_toggle: false + scroll_to_selected: true + max_options: 0 + info_entities: + - entity: binary_sensor.back_door + hide_unavailable: true + show_icon: true + state_color: true + - entity: binary_sensor.mud_room_window + hide_unavailable: true + show_icon: true + state_color: true + - entity: binary_sensor.mud_room_occupied + hide_unavailable: true + show_icon: true + state_color: true + icon: + template: + icon: > + if (entity.state === 'off') return 'mdi:close-thick'; if + (entity.state === 'on') return 'mdi:check'; else return + 'mdi:map-marker-question'; + - entity: timer.mud_room_motion_timer + hide_unavailable: true + state_color: true + show_icon: true + icon: mdi:timer-outline + hide_if: + conditions: + - condition: equals + entity: timer.mud_room_motion_timer + value: idle + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:timer-bar-card + name: Motion Timer + filter: true + show_empty: Timer is idle + entity: timer.mud_room_motion_timer + sync_issues: ignore + bar_radius: 10px + mushroom: null + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.mud_room_motion_timer + hold_action: + action: more_info + double_tap_action: + action: none + modifications: + - elapsed: 40% + bar_foreground: orange + - elapsed: 80% + bar_foreground: red + - type: custom:room-card + title: Kitchen + entity: light.mud_room_overhead + show_icon: true + state_color: false + content_alignment: center + tap_action: + action: none + icon: mdi:close-thick + info_entities: + - entity: binary_sensor.kitchen_big_window + hide_unavailable: true + show_icon: true + state_color: true + - type: custom:room-card + title: Stairwell + entity: light.stairwell_led_strip + show_icon: true + state_color: true + content_alignment: center + tap_action: + action: toggle + icon: + template: + icon: > + if (entity.state === 'on') return 'hue:lightstrip'; if + (entity.state === 'off') return 'hue:lightstrip-off'; else return + 'mdi:map-marker-question'; + rows: + - content_alignment: center + entities: + - entity: sensor.stairwell_bottom_temperature + show_state: true + show_name: false + - entity: sensor.stairwell_bottom_illuminance + show_state: true + show_name: false + info_entities: + - entity: binary_sensor.stairwell_occupied + hide_unavailable: true + show_icon: true + state_color: true + icon: + template: + icon: > + if (entity.state === 'off') return 'mdi:close-thick'; if + (entity.state === 'on') return 'mdi:check'; else return + 'mdi:map-marker-question'; + - entity: timer.stairwell_motion_timer + hide_unavailable: true + state_color: true + show_icon: true + icon: mdi:timer-outline + hide_if: + conditions: + - condition: equals + entity: timer.stairwell_motion_timer + value: idle + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:timer-bar-card + name: Motion Timer + filter: true + show_empty: Timer is idle + entity: timer.stairwell_motion_timer + sync_issues: ignore + bar_radius: 10px + mushroom: null + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.stairwell_motion_timer + hold_action: + action: more_info + double_tap_action: + action: none + modifications: + - elapsed: 40% + bar_foreground: orange + - elapsed: 80% + bar_foreground: red + - type: custom:room-card + title: Upstairs Hallway + entity: light.hallway_overhead + show_icon: true + state_color: false + content_alignment: center + tap_action: + action: none + icon: + template: + icon: > + if (entity.state === 'on') return 'mdi:lightbulb'; if + (entity.state === 'off') return 'mdi:lightbulb-outline'; else + return 'mdi:map-marker-question'; + rows: + - content_alignment: center + entities: + - entity: sensor.stairwell_top_temperature + show_state: true + show_name: false + - entity: sensor.stairwell_top_illuminance + show_state: true + show_name: false + - content_alignment: center + entities: + - entity: input_select.upstairs_hallway_scenes + name: Scenes + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:select-list-card + entity: input_select.upstairs_hallway_scenes + icon: '' + truncate: true + show_toggle: false + scroll_to_selected: true + max_options: 0 + info_entities: + - entity: binary_sensor.upstairs_hallway_occupied + hide_unavailable: true + show_icon: true + state_color: true + icon: + template: + icon: > + if (entity.state === 'off') return 'mdi:close-thick'; if + (entity.state === 'on') return 'mdi:check'; else return + 'mdi:map-marker-question'; + - entity: timer.upstairs_hallway_motion_timer + hide_unavailable: true + state_color: true + show_icon: true + icon: mdi:timer-outline + hide_if: + conditions: + - condition: equals + entity: timer.upstairs_hallway_motion_timer + value: idle + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:timer-bar-card + name: Motion Timer + filter: true + show_empty: Timer is idle + entity: timer.upstairs_hallway_motion_timer + sync_issues: ignore + bar_radius: 10px + mushroom: null + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.upstairs_hallway_motion_timer + hold_action: + action: more_info + double_tap_action: + action: none + modifications: + - elapsed: 40% + bar_foreground: orange + - elapsed: 80% + bar_foreground: red + - type: custom:room-card + title: Upstairs Bathroom + entity: light.upstairs_bathroom_lights + show_icon: true + state_color: true + content_alignment: center + tap_action: + action: toggle + icon: + template: + icon: > + if (entity.state === 'on') return 'mdi:lightbulb'; if + (entity.state === 'off') return 'mdi:lightbulb-outline'; else + return 'mdi:map-marker-question'; + rows: + - entities: + - entity: input_boolean.shower_mode + name: Shower + state_color: true + show_icon: true + tap_action: + action: toggle + content_alignment: center + - content_alignment: center + entities: + - entity: sensor.upstairs_bathroom_temperature + show_state: true + show_name: false + - entity: sensor.upstairs_bathroom_illuminance + show_state: true + show_name: false + - entities: + - entity: input_select.upstairs_bathroom_scenes + name: Scenes + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:select-list-card + entity: input_select.upstairs_bathroom_scenes + icon: '' + truncate: true + show_toggle: false + scroll_to_selected: true + max_options: 0 + content_alignment: center + info_entities: + - entity: binary_sensor.upstairs_bathroom_occupied + hide_unavailable: true + show_icon: true + state_color: true + icon: + template: + icon: > + if (entity.state === 'off') return 'mdi:close-thick'; if + (entity.state === 'on') return 'mdi:check'; else return + 'mdi:map-marker-question'; + - entity: timer.upstairs_bathroom_motion_timer + hide_unavailable: true + state_color: true + show_icon: true + icon: mdi:timer-outline + hide_if: + conditions: + - condition: equals + entity: timer.upstairs_bathroom_motion_timer + value: idle + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:timer-bar-card + name: Motion Timer + filter: true + show_empty: Timer is idle + entity: timer.upstairs_bathroom_motion_timer + sync_issues: ignore + bar_radius: 10px + mushroom: null + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.upstairs_bathroom_motion_timer + hold_action: + action: more_info + double_tap_action: + action: none + modifications: + - elapsed: 40% + bar_foreground: orange + - elapsed: 80% + bar_foreground: red + - type: custom:room-card + title: Master Bedroom + entity: light.master_bedroom_lights + show_icon: true + state_color: true + content_alignment: center + tap_action: + action: toggle + icon: + template: + icon: > + if (entity.state === 'on') return 'mdi:lightbulb'; if + (entity.state === 'off') return 'mdi:lightbulb-outline'; else + return 'mdi:map-marker-question'; + rows: + - content_alignment: center + entities: + - entity: light.master_bedroom_closet + name: Closet + hide_unavailable: true + state_color: true + show_icon: true + tap_action: + action: toggle + icon: + template: + icon: > + if (entity.state === 'on') return 'mdi:lightbulb'; if + (entity.state === 'off') return 'mdi:lightbulb-outline'; + else return 'mdi:map-marker-question'; + - entity: climate.master_bedroom_aircon + name: A/C + hide_unavailable: true + state_color: true + show_icon: true + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: tile + features: + - type: climate-hvac-modes + hvac_modes: + - fan_only + - dry + - cool + - auto + - 'off' + - type: target-temperature + - style: dropdown + preset_modes: + - none + - eco + type: climate-preset-modes + entity: climate.master_bedroom_aircon + vertical: true + show_entity_picture: false + - entity: fan.master_bedroom_fan + name: Fan + hide_unavailable: true + state_color: true + show_icon: true + tap_action: + action: toggle + - entity: input_boolean.master_bedroom_sleeping + name: Sleeping + state_color: true + show_icon: true + tap_action: + action: toggle + - content_alignment: center + entities: + - entity: sensor.master_bedroom_temperature + show_state: true + show_name: false + - entity: sensor.master_bedroom_illuminance + show_state: true + show_name: false + - content_alignment: center + entities: + - entity: input_select.master_bedroom_scenes + name: Scenes + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:select-list-card + entity: input_select.master_bedroom_scenes + icon: '' + truncate: true + show_toggle: false + scroll_to_selected: true + max_options: 0 + - entity: input_boolean.master_bedroom_alarm_clock + name: Alarm + state_color: true + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:restriction-card + restrictions: + block: + text: This ain't yo room, boiiiiii + exemptions: + - user: f387a983651a4321a7411ff8cf36f949 + - user: c3909d27048140729f002aaef0391775 + card: + type: entities + title: TESTING, use at own risk + state_color: true + show_header_toggle: false + entities: + - entity: input_boolean.master_bedroom_alarm_clock + name: Enabled + - entity: input_datetime.master_bedroom_alarm_clock + name: Set Time + info_entities: + - entity: binary_sensor.master_bedroom_aircon_fan + hide_unavailable: true + show_icon: true + state_color: true + icon: mdi:air-filter + hide_if: + conditions: + - condition: equals + entity: climate.master_bedroom_aircon + value: unavailable + - condition: equals + value: 'off' + - condition: equals + entity: climate.master_bedroom_aircon + value: 'off' + - condition: equals + entity: binary_sensor.master_bedroom_aircon_compressor + value: 'on' + - entity: binary_sensor.master_bedroom_aircon_compressor + hide_unavailable: true + show_icon: true + state_color: true + icon: mdi:air-conditioner + hide_if: + conditions: + - condition: equals + entity: climate.master_bedroom_aircon + value: unavailable + - condition: equals + value: 'off' + - condition: equals + entity: climate.master_bedroom_aircon + value: 'off' + - entity: binary_sensor.master_bedroom_aircon_filter_alert + hide_unavailable: true + show_icon: true + state_color: true + hide_if: + conditions: + - condition: equals + entity: climate.master_bedroom_aircon + value: unavailable + - condition: equals + value: 'off' + - entity: binary_sensor.master_bedroom_occupied + hide_unavailable: true + show_icon: true + state_color: true + icon: + template: + icon: > + if (entity.state === 'off') return 'mdi:close-thick'; if + (entity.state === 'on') return 'mdi:check'; else return + 'mdi:map-marker-question'; + - entity: timer.shower_mode_cooldown + hide_unavailable: true + state_color: true + show_icon: true + icon: mdi:timer-outline + hide_if: + conditions: + - condition: equals + entity: timer.shower_mode_cooldown + value: idle + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:timer-bar-card + name: Shower Mode Cooldown + filter: true + show_empty: Timer is idle + entity: timer.shower_mode_cooldown + sync_issues: ignore + bar_radius: 10px + mushroom: null + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.shower_mode_cooldown + hold_action: + action: more_info + double_tap_action: + action: none + modifications: + - elapsed: 40% + bar_foreground: orange + - elapsed: 80% + bar_foreground: red + - entity: timer.master_bedroom_motion_timer + hide_unavailable: true + state_color: true + show_icon: true + icon: mdi:timer-outline + hide_if: + conditions: + - condition: equals + entity: timer.master_bedroom_motion_timer + value: idle + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:timer-bar-card + name: Motion Timer + filter: true + show_empty: Timer is idle + entity: timer.master_bedroom_motion_timer + sync_issues: ignore + bar_radius: 10px + mushroom: null + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.master_bedroom_motion_timer + hold_action: + action: more_info + double_tap_action: + action: none + modifications: + - elapsed: 40% + bar_foreground: orange + - elapsed: 80% + bar_foreground: red + - type: custom:restriction-card + restrictions: + confirm: + text: Kallen is sleeping, are you sure? + condition: + value: 'on' + entity: input_boolean.kallen_sleeping + exemptions: + - user: 879b4c04e32841b3ad1d2763a11b4e70 + card: + type: custom:room-card + title: Kallen Bedroom + entity: light.kallen_bedroom_lights + show_icon: true + state_color: true + content_alignment: center + tap_action: + action: toggle + icon: + template: + icon: > + if (entity.state === 'on') return 'mdi:lightbulb'; if + (entity.state === 'off') return 'mdi:lightbulb-outline'; else + return 'mdi:map-marker-question'; + rows: + - content_alignment: center + entities: + - entity: fan.kallen_bedroom_fan + name: Fan + hide_unavailable: true + state_color: true + show_icon: true + tap_action: + action: toggle + - entity: input_boolean.white_noise_kallen_bedroom + name: Sound + state_color: true + show_icon: true + tap_action: + action: toggle + - entity: input_boolean.kallen_sleeping + name: Sleeping + state_color: true + show_icon: true + tap_action: + action: toggle + - content_alignment: center + entities: + - entity: sensor.kallen_bedroom_temperature + show_state: true + show_name: false + - entity: sensor.kallen_bedroom_illuminance + show_state: true + show_name: false + - content_alignment: center + entities: + - entity: input_select.kallen_bedroom_scenes + name: Scenes + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:select-list-card + entity: input_select.kallen_bedroom_scenes + icon: '' + truncate: true + show_toggle: false + scroll_to_selected: true + max_options: 0 + card_mod: + style: | + ha-dialog { + --mdc-dialog-min-height: 10px !important; + } + - entity: input_boolean.kallen_alarm_clock + name: Alarm + state_color: true + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: entities + title: TESTING, use at own risk + state_color: true + show_header_toggle: false + entities: + - entity: input_boolean.kallen_alarm_clock + name: Enabled + - entity: input_datetime.kallen_alarm_clock + name: Set Time + info_entities: + - entity: binary_sensor.kallen_bedroom_occupied + hide_unavailable: true + show_icon: true + state_color: true + icon: + template: + icon: > + if (entity.state === 'off') return 'mdi:close-thick'; if + (entity.state === 'on') return 'mdi:check'; else return + 'mdi:map-marker-question'; + - entity: timer.kallen_timer + state_color: true + show_icon: true + hide_if: + conditions: + - condition: not_equals + value: active + - condition: not_equals + entity: input_select.kallen_activity_room + value: Kallen Bedroom + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:stack-in-card + cards: + - type: markdown + content: >- + Do *not* use the start button on the timer. Use the + start button on the **settings card only**, or else + the reading duration will not be set properly. This + is a bug I could not fix. + + + - Dad + title: IMPORTANT + - type: custom:flipdown-timer-card + entity: timer.kallen_timer + name: Kallen Activity Timer + show_title: true + show_error: false + - 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 + - entity: timer.kallen_bedroom_motion_timer + hide_unavailable: true + state_color: true + show_icon: true + icon: mdi:timer-outline + hide_if: + conditions: + - condition: equals + entity: timer.kallen_bedroom_motion_timer + value: idle + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:timer-bar-card + name: Motion Timer + filter: true + show_empty: Timer is idle + entity: timer.kallen_bedroom_motion_timer + sync_issues: ignore + bar_radius: 10px + mushroom: null + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.kallen_bedroom_motion_timer + hold_action: + action: more_info + double_tap_action: + action: none + modifications: + - elapsed: 40% + bar_foreground: orange + - elapsed: 80% + bar_foreground: red + - type: custom:restriction-card + restrictions: + confirm: + text: Emma is sleeping, are you sure? + condition: + value: 'on' + entity: input_boolean.emma_sleeping + exemptions: null + card: + type: custom:room-card + title: Emma Bedroom + entity: light.emma_bedroom_light + show_icon: true + state_color: true + content_alignment: center + tap_action: + action: toggle + icon: + template: + icon: > + if (entity.state === 'on') return 'mdi:lightbulb'; if + (entity.state === 'off') return 'mdi:lightbulb-outline'; else + return 'mdi:map-marker-question'; + rows: + - content_alignment: center + entities: + - entity: fan.emma_air_conditioner + name: A/C + hide_unavailable: true + state_color: true + show_icon: true + tap_action: + action: toggle + - entity: input_boolean.white_noise_emma_bedroom + name: Sound + state_color: true + show_icon: true + tap_action: + action: toggle + - entity: input_boolean.emma_sleeping + name: Sleeping + state_color: true + show_icon: true + tap_action: + action: toggle + - content_alignment: center + entities: + - entity: sensor.emma_bedroom_temperature + show_state: true + show_name: false + - entity: sensor.emma_bedroom_illuminance + show_state: true + show_name: false + - content_alignment: center + entities: + - entity: input_select.emma_bedroom_scenes + name: Scenes + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:select-list-card + entity: input_select.emma_bedroom_scenes + icon: '' + truncate: true + show_toggle: false + scroll_to_selected: true + max_options: 0 + - entity: input_boolean.emma_alarm_clock + name: Alarm + state_color: true + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: entities + title: TESTING, use at own risk + state_color: true + show_header_toggle: false + entities: + - entity: input_boolean.emma_alarm_clock + name: Enabled + - entity: input_datetime.emma_alarm_clock + name: Set Time + info_entities: + - entity: binary_sensor.emma_aircon_fan + hide_unavailable: true + show_icon: true + state_color: true + icon: mdi:air-filter + hide_if: + conditions: + - condition: equals + entity: fan.emma_air_conditioner + value: unavailable + - condition: equals + entity: fan.emma_air_conditioner + value: 'off' + - condition: equals + entity: binary_sensor.emma_aircon_compressor + value: 'on' + - entity: binary_sensor.emma_aircon_compressor + hide_unavailable: true + show_icon: true + state_color: true + icon: mdi:air-conditioner + hide_if: + conditions: + - condition: equals + entity: fan.emma_air_conditioner + value: unavailable + - condition: equals + value: 'off' + - condition: equals + entity: fan.emma_air_conditioner + value: 'off' + - entity: binary_sensor.emma_bedroom_occupied + hide_unavailable: true + show_icon: true + state_color: true + icon: + template: + icon: > + if (entity.state === 'off') return 'mdi:close-thick'; if + (entity.state === 'on') return 'mdi:check'; else return + 'mdi:map-marker-question'; + - entity: timer.emma_naptime_update + hide_unavailable: true + state_color: true + show_icon: true + icon: mdi:timer-outline + hide_if: + conditions: + - condition: equals + entity: timer.emma_naptime_update + value: idle + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:timer-bar-card + name: Naptime Update + filter: true + show_empty: Timer is idle + entities: + - entity: timer.emma_naptime_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_naptime_update + - entity: timer.emma_bedtime_update + hide_unavailable: true + state_color: true + show_icon: true + icon: mdi:timer-outline + hide_if: + conditions: + - condition: equals + entity: timer.emma_bedtime_update + value: idle + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:timer-bar-card + name: Bedtime Update + filter: true + show_empty: Timer is idle + entities: + - 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.emma_bedroom_motion_timer + hide_unavailable: true + show_icon: true + state_color: true + icon: mdi:timer-outline + hide_if: + conditions: + - condition: equals + entity: timer.emma_bedroom_motion_timer + value: idle + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + content: + type: custom:timer-bar-card + name: Motion Timer + filter: true + show_empty: Timer is idle + entity: timer.emma_bedroom_motion_timer + sync_issues: ignore + bar_radius: 10px + mushroom: null + tap_action: + action: call-service + service: timer.finish + target: + entity_id: timer.emma_bedroom_motion_timer + hold_action: + action: more_info + double_tap_action: + action: none + modifications: + - elapsed: 40% + bar_foreground: orange + - elapsed: 80% + bar_foreground: red + - type: custom:mushroom-template-card + primary: '' + secondary: Cat stuff coming soon. Maybe. + icon: '' + layout: vertical + multiline_secondary: false + fill_container: false + tap_action: + action: none + hold_action: + action: none + double_tap_action: + action: none + - title: Global Scenes + path: global-scenes + icon: mdi:home-lightbulb-outline + type: sections + max_columns: 4 + subview: true + sections: + - type: grid + cards: + - type: entities + entities: + - script.give_me_darkness + - button.good_morning + - button.goodnight + - script.max_brightness + - button.sunset_lights_trigger + - entity: button.basement_on_manual + name: Basement On + - script.adaptive_on_first_floor + - script.adaptive_on_second_floor + - script.bright_on_first_floor + - script.bright_on_second_floor + - script.evening_on_first_floor + - script.evening_on_second_floor + - switch.animated_scene_halloween + - script.emma_rainbow_lights + - title: Tony + path: tony + icon: mdi:human-male + type: sections + max_columns: 4 + subview: true + sections: + - type: grid + cards: + - type: custom:card-templater + card: + type: entities + state_color: true + show_header_toggle: false + entities: + - entity: input_boolean.tony_custom_meds_taken_p1 + name_template: >- + {{ states('input_text.tony_custom_med_name_p1') + ' Taken' + }} + - entity: input_datetime.tony_custom_meds_taken_p1 + name_template: >- + {{ states('input_text.tony_custom_med_name_p1') + ' Taken' + }} + - entity: input_datetime.tony_custom_meds_notify_p1 + name_template: >- + {{ states('input_text.tony_custom_med_name_p1') + ' Notify' + }} + visibility: + - condition: state + entity: input_boolean.tony_custom_meds_tracker_p1 + state: 'on' + - type: entities + state_color: true + show_header_toggle: false + entities: + - entity: input_boolean.tony_ibuprofen_taken + - entity: input_datetime.tony_ibuprofen_taken + - entity: input_datetime.tony_ibuprofen_notify + visibility: + - condition: state + entity: input_boolean.tony_ibuprofen_active + state: 'on' + - type: entities + state_color: true + show_header_toggle: false + entities: + - entity: input_boolean.tony_tylenol_taken + - entity: input_datetime.tony_tylenol_taken + - entity: input_datetime.tony_tylenol_notify + visibility: + - condition: state + entity: input_boolean.tony_tylenol_active + state: 'on' + - type: entities + entities: + - entity: input_boolean.tony_morning_meds_taken + name: Morning Meds + - entity: input_datetime.tony_morning_meds_taken + name: Morning Meds Taken + - entity: input_datetime.tony_morning_meds_notify + name: Morning Notify + - entity: binary_sensor.tony_morning_meds_needed + name: Needed + - entity: counter.tony_morning_meds_reminder_count + name: Reminder Count + show_header_toggle: false + state_color: true + - type: entities + entities: + - entity: input_boolean.tony_afternoon_meds_taken + name: Afternoon Meds + - entity: input_datetime.tony_afternoon_meds_taken + name: Afternoon Meds Taken + - entity: input_datetime.tony_afternoon_meds_notify + name: Afternoon Notify + - entity: input_number.tony_afternoon_meds_interval + name: Afternoon Interval + - entity: counter.tony_afternoon_meds_reminder_count + name: Reminder Count + show_header_toggle: false + state_color: true + - type: entities + entities: + - entity: input_boolean.tony_night_meds_taken + name: Night Meds + - entity: input_datetime.tony_night_meds_taken + name: Night Meds Taken + - entity: input_datetime.tony_night_meds_notify + name: Night Notify + - entity: counter.tony_night_meds_reminder_count + name: Reminder Count + show_header_toggle: false + state_color: true + - type: entities + entities: + - type: custom:fold-entity-row + head: + type: section + label: Settings + entities: + - entity: input_boolean.tony_custom_meds_tracker_p1 + name: Custom Tracker 1 + - entity: input_text.tony_custom_med_name_p1 + name: Custom 1 Name + - entity: input_select.tony_custom_meds_type_p1 + name: Custom 1 Type + - entity: input_number.tony_custom_meds_interval_p1 + name: Custom 1 Interval + - entity: input_boolean.tony_ibuprofen_active + name: Ibuprofen Active + - entity: input_boolean.tony_tylenol_active + name: Tylenol Active + title: Meds + - type: grid + cards: + - type: entities + entities: + - entity: binary_sensor.tony_desktop_on + name: Status + - entity: script.tony_desktop_wake + name: Wake + - entity: script.tony_desktop_shutdown + name: Shutdown + show_header_toggle: false + state_color: true + title: Computer + visible: + - user: f387a983651a4321a7411ff8cf36f949 + - user: c3909d27048140729f002aaef0391775 + cards: [] + - title: Tina + path: tina + icon: mdi:human-female + type: sections + max_columns: 4 + subview: true + visible: + - user: f387a983651a4321a7411ff8cf36f949 + - user: c3909d27048140729f002aaef0391775 + sections: + - type: grid + cards: + - type: entities + entities: + - entity: input_boolean.tina_morning_meds_taken + name: Morning Meds + - entity: input_boolean.tina_night_meds_taken + name: Night Meds + - entity: input_datetime.tina_morning_meds_taken + name: Morning Meds Taken + - entity: input_datetime.tina_night_meds_taken + name: Night Meds Taken + - entity: input_datetime.tina_morning_meds_notify + name: Morning Notify + - entity: input_datetime.tina_night_meds_notify + name: Night Notify + - entity: counter.tina_morning_meds_reminder_count + name: Morning Reminders + - entity: counter.tina_night_meds_reminder_count + name: Night Reminders + show_header_toggle: false + state_color: true + title: Meds + - type: grid + cards: + - type: entities + entities: + - entity: binary_sensor.tina_desktop_on + name: Status + - entity: script.tina_desktop_wake + name: Wake + - entity: script.tina_desktop_shutdown + name: Shutdown + show_header_toggle: false + state_color: true + title: Computer + - title: Kallen + path: kallen + icon: mdi:human-child + type: sections + max_columns: 4 + subview: true + sections: + - type: grid + cards: + - type: entities + entities: + - entity: input_boolean.kallen_morning_meds_taken + name: Morning Meds + - entity: input_boolean.kallen_night_meds_taken + name: Night Meds + - entity: input_datetime.kallen_morning_meds_taken + name: Morning Meds Taken + - entity: input_datetime.kallen_night_meds_taken + name: Night Meds Taken + - entity: input_datetime.kallen_morning_meds_notify + name: Morning Notify + - entity: input_datetime.kallen_night_meds_notify + name: Night Notify + - entity: counter.kallen_morning_meds_reminder_count + name: Morning Reminders + - entity: counter.kallen_night_meds_reminder_count + name: Night Reminders + show_header_toggle: false + state_color: true + title: Meds + - type: grid + cards: + - type: entities + entities: + - entity: binary_sensor.kallen_desktop_on + name: Status + - entity: script.kallen_desktop_wake + name: Wake + - entity: script.kallen_desktop_shutdown + name: Shutdown + show_header_toggle: false + state_color: true + title: Computer + - title: Emma + path: emma + icon: mdi:bow-tie + type: sections + max_columns: 4 + subview: true + visible: + - user: f387a983651a4321a7411ff8cf36f949 + - user: c3909d27048140729f002aaef0391775 + sections: + - type: grid + cards: + - type: entities + entities: + - entity: input_boolean.emma_alternating_meds_active + name: Alternating Meds Active + - entity: input_boolean.emma_cough_meds_active + name: Cough Meds Active + show_header_toggle: false + state_color: true + - type: entities + entities: + - entity: input_boolean.emma_cough_meds + name: Cough Meds Taken + - entity: input_datetime.emma_cough_meds + name: Cough Meds Given + - entity: input_datetime.emma_cough_meds_notify + name: Cough Meds Notify + - entity: input_number.emma_cough_meds_interval + name: Interval + show_header_toggle: false + state_color: true + visibility: + - condition: state + entity: input_boolean.emma_cough_meds_active + state: 'on' + - type: entities + entities: + - entity: input_boolean.emma_tylenol + name: Tylenol Taken + - entity: input_datetime.emma_tylenol + name: Tylenol Given + - entity: input_datetime.emma_tylenol_notify + name: Tylenol Notify + show_header_toggle: false + state_color: true + visibility: + - condition: state + entity: input_boolean.emma_alternating_meds_active + state: 'on' + - type: entities + entities: + - entity: input_boolean.emma_ibuprofen + name: Ibuprofen Taken + - entity: input_datetime.emma_ibuprofen + name: Ibuprofen Given + - entity: input_datetime.emma_ibuprofen_notify + name: Ibuprofen Notify + show_header_toggle: false + state_color: true + visibility: + - condition: state + entity: input_boolean.emma_alternating_meds_active + state: 'on' + title: Meds + - title: Rabbit + path: rabbit + icon: mdi:rabbit + type: sections + max_columns: 4 + subview: true + sections: + - type: grid + cards: + - type: entities + entities: + - entity: input_boolean.rabbit_fed + - entity: input_datetime.rabbit_fed + - entity: input_datetime.rabbit_feeding_notify + name: Notify + - entity: input_number.rabbit_feeding_interval + name: Interval + - entity: counter.rabbit_feeding_reminder_count + name: Reminder Count + show_header_toggle: false + state_color: true + title: Feeding + - type: grid + cards: + - type: entities + entities: + - entity: input_boolean.rabbit_hutch_cleaned + name: Hutch Cleaned + - entity: input_datetime.rabbit_hutch_cleaned + name: Hutch Cleaned + - entity: input_datetime.rabbit_hutch_cleaning_notify + name: Notify + - entity: input_number.rabbit_hutch_cleaning_interval + name: Interval + - entity: counter.rabbit_hutch_cleaning_reminder_count + name: Reminder Count + show_header_toggle: false + state_color: true + title: Cleaning + - title: Kallen Timer + path: kallen-timer + icon: mdi:timer + type: sections + max_columns: 4 + subview: true + sections: + - type: grid + cards: + - type: custom:stack-in-card + title: Activity Timer + cards: + - type: custom:flipdown-timer-card + entity: timer.kallen_timer + name: Kallen Activity Timer + duration: '00:00:00' + show_title: false + show_header: true + show_error: false + show_hour: auto + styles: + button: + location: hide + - type: entities + entities: + - entity: input_number.kallen_activity_duration + name: Duration + - entity: input_boolean.kallen_timer_control_lights + name: Control Lights + - entity: input_select.kallen_activity_room + name: Room + - entity: input_select.kallen_activities + name: Activity + show_header_toggle: false + state_color: true + - type: custom:stack-in-card + mode: horizontal + cards: + - type: custom:button-card + entity: timer.kallen_timer + name: [] + show_label: true + aspect_ratio: 2.7/1 + styles: + card: + - '--mdc-ripple-color': purple + - '--mdc-ripple-press-opacity': 0.5 + state: + - value: active + label: Running + icon: mdi:play + styles: + icon: + - color: green + - value: paused + label: Paused + icon: mdi:pause + styles: + icon: + - color: yellow + - value: idle + label: Idle + icon: mdi:play + tap_action: + action: call-service + service: button.press + service_data: + entity_id: button.kallen_timer_start + hold_action: + action: more-info + entity: timer.kallen_timer + - type: custom:button-card + entity: timer.kallen_timer + name: [] + icon: mdi:cancel + label: Cancel + show_label: true + aspect_ratio: 2.7/1 + styles: + card: + - '--mdc-ripple-color': purple + - '--mdc-ripple-press-opacity': 0.5 + state: + - value: active + styles: + icon: + - color: green + - value: paused + styles: + icon: + - color: yellow + - value: idle + tap_action: + action: call-service + service: script.kallen_timer_cancel + hold_action: + action: more-info + entity: timer.kallen_timer +title: ''