diff --git a/config-dev/configuration.yaml b/config-dev/configuration.yaml index 475e1f4..50550a8 100644 --- a/config-dev/configuration.yaml +++ b/config-dev/configuration.yaml @@ -23,8 +23,6 @@ lovelace: url: /hacsfiles/lovelace-state-switch/state-switch.js - type: module url: http://192.168.0.13:5000/time-picker-card.js - - type: module - url: /hacsfiles/lovelace-gui-sandbox/gui-sandbox.js dashboards: lovelace-home: mode: yaml diff --git a/config-dev/ui-lovelace.yaml b/config-dev/ui-lovelace.yaml index fce5e06..9c6fd3e 100644 --- a/config-dev/ui-lovelace.yaml +++ b/config-dev/ui-lovelace.yaml @@ -5,7 +5,6 @@ views: cards: - type: grid cards: - - type: custom:gui-sandbox - type: custom:button-card icon: mdi:reload name: Theme @@ -38,7 +37,6 @@ views: cards: - type: horizontal-stack cards: - - type: custom:gui-sandbox - type: custom:button-card icon: mdi:reload name: Theme diff --git a/config/configuration.yaml b/config/configuration.yaml index 0f6199b..e097671 100644 --- a/config/configuration.yaml +++ b/config/configuration.yaml @@ -52,7 +52,7 @@ lovelace: mode: yaml title: Hallway Dashboard icon: mdi:tablet-dashboard - show_in_sidebar: false + show_in_sidebar: true filename: hallway-lovelace.yaml lovelace-kitchen: mode: yaml diff --git a/config/floorplan-lovelace.yaml b/config/floorplan-lovelace.yaml index 589f2f1..eb43784 100644 --- a/config/floorplan-lovelace.yaml +++ b/config/floorplan-lovelace.yaml @@ -1,10 +1,10 @@ -custom_header: - hide_header: true - decluttering_templates: !include_dir_merge_named lovelace/decluttering_templates button_card_templates: !include_dir_merge_named lovelace/button_card_templates popup_cards: !include lovelace/popup_cards.yaml +kiosk_mode: + hide_header: true + title: Floorplan views: - title: Floorplan diff --git a/config/hallway-lovelace.yaml b/config/hallway-lovelace.yaml index efe87de..8050961 100644 --- a/config/hallway-lovelace.yaml +++ b/config/hallway-lovelace.yaml @@ -10,6 +10,7 @@ views: - title: Sarah path: hallway_dashboard icon: mdi:tablet-dashboard + background: '#333' panel: true cards: - type: custom:state-switch diff --git a/config/kitchen-lovelace.yaml b/config/kitchen-lovelace.yaml index 5d0a148..b7277ab 100644 --- a/config/kitchen-lovelace.yaml +++ b/config/kitchen-lovelace.yaml @@ -3,7 +3,8 @@ button_card_templates: !include_dir_merge_named lovelace/button_card_templates popup_cards: !include lovelace/popup_cards.yaml kiosk_mode: - kiosk: true + kiosk: false + hide_overflow: true title: Sarah views: @@ -11,4 +12,18 @@ views: path: kitchen icon: "mdi:chef-hat" panel: true - cards: !include lovelace/home_dashboard/kitchen_dashboard.yaml + background: "#333" + cards: + - type: custom:mod-card + style: + layout-card: + $: + horizontal-layout: + $: + .: | + #columns { + padding: 0 10px; + margin: 0 20px; + grid-gap: 20px; + } + card: !include lovelace/home_dashboard/kitchen_dashboard_card.yaml diff --git a/config/lovelace/advanced_dashboard/08_automations.yaml b/config/lovelace/advanced_dashboard/08_automations.yaml index 2bb2d73..c20f72b 100644 --- a/config/lovelace/advanced_dashboard/08_automations.yaml +++ b/config/lovelace/advanced_dashboard/08_automations.yaml @@ -37,6 +37,7 @@ cards: - automation.slack_meeting_starts - automation.slack_meeting_ends - automation.hallway_tablet_set_to_home_after_10_minutes + - automation.hallway_tablet_leaving_goodbye_after_door_opened - type: entities title: Presence diff --git a/config/lovelace/button_card_templates/default_button.yaml b/config/lovelace/button_card_templates/v2/default_button.yaml similarity index 100% rename from config/lovelace/button_card_templates/default_button.yaml rename to config/lovelace/button_card_templates/v2/default_button.yaml diff --git a/config/lovelace/button_card_templates/devices/ac_button.yaml b/config/lovelace/button_card_templates/v2/devices/ac_button.yaml similarity index 100% rename from config/lovelace/button_card_templates/devices/ac_button.yaml rename to config/lovelace/button_card_templates/v2/devices/ac_button.yaml diff --git a/config/lovelace/button_card_templates/devices/brita_water_button.yaml b/config/lovelace/button_card_templates/v2/devices/brita_water_button.yaml similarity index 100% rename from config/lovelace/button_card_templates/devices/brita_water_button.yaml rename to config/lovelace/button_card_templates/v2/devices/brita_water_button.yaml diff --git a/config/lovelace/button_card_templates/devices/cover.yaml b/config/lovelace/button_card_templates/v2/devices/cover.yaml similarity index 85% rename from config/lovelace/button_card_templates/devices/cover.yaml rename to config/lovelace/button_card_templates/v2/devices/cover.yaml index 11da713..92806e7 100644 --- a/config/lovelace/button_card_templates/devices/cover.yaml +++ b/config/lovelace/button_card_templates/v2/devices/cover.yaml @@ -1,5 +1,4 @@ cover: - template: default icon: > [[[ return entity.state === "open" ? "mdi:window-shutter-open" : "mdi:window-shutter"; diff --git a/config/lovelace/button_card_templates/devices/hallway_dashboard_mode_button.yaml b/config/lovelace/button_card_templates/v2/devices/hallway_dashboard_mode_button.yaml similarity index 100% rename from config/lovelace/button_card_templates/devices/hallway_dashboard_mode_button.yaml rename to config/lovelace/button_card_templates/v2/devices/hallway_dashboard_mode_button.yaml diff --git a/config/lovelace/button_card_templates/devices/radiator_button.yaml b/config/lovelace/button_card_templates/v2/devices/radiator_button.yaml similarity index 100% rename from config/lovelace/button_card_templates/devices/radiator_button.yaml rename to config/lovelace/button_card_templates/v2/devices/radiator_button.yaml diff --git a/config/lovelace/button_card_templates/humidity_button.yaml b/config/lovelace/button_card_templates/v2/humidity_button.yaml similarity index 100% rename from config/lovelace/button_card_templates/humidity_button.yaml rename to config/lovelace/button_card_templates/v2/humidity_button.yaml diff --git a/config/lovelace/button_card_templates/mixins/progress_button.yaml b/config/lovelace/button_card_templates/v2/mixins/progress_button.yaml similarity index 100% rename from config/lovelace/button_card_templates/mixins/progress_button.yaml rename to config/lovelace/button_card_templates/v2/mixins/progress_button.yaml diff --git a/config/lovelace/button_card_templates/mixins/scene_button.yaml b/config/lovelace/button_card_templates/v2/mixins/scene_button.yaml similarity index 100% rename from config/lovelace/button_card_templates/mixins/scene_button.yaml rename to config/lovelace/button_card_templates/v2/mixins/scene_button.yaml diff --git a/config/lovelace/button_card_templates/mixins/with_state_background_button.yaml b/config/lovelace/button_card_templates/v2/mixins/with_state_background_button.yaml similarity index 100% rename from config/lovelace/button_card_templates/mixins/with_state_background_button.yaml rename to config/lovelace/button_card_templates/v2/mixins/with_state_background_button.yaml diff --git a/config/lovelace/button_card_templates/mixins/with_state_indicator_button.yaml b/config/lovelace/button_card_templates/v2/mixins/with_state_indicator_button.yaml similarity index 100% rename from config/lovelace/button_card_templates/mixins/with_state_indicator_button.yaml rename to config/lovelace/button_card_templates/v2/mixins/with_state_indicator_button.yaml diff --git a/config/lovelace/button_card_templates/sizes/half_button.yaml b/config/lovelace/button_card_templates/v2/sizes/half_button.yaml similarity index 100% rename from config/lovelace/button_card_templates/sizes/half_button.yaml rename to config/lovelace/button_card_templates/v2/sizes/half_button.yaml diff --git a/config/lovelace/button_card_templates/sizes/regular_button.yaml b/config/lovelace/button_card_templates/v2/sizes/regular_button.yaml similarity index 100% rename from config/lovelace/button_card_templates/sizes/regular_button.yaml rename to config/lovelace/button_card_templates/v2/sizes/regular_button.yaml diff --git a/config/lovelace/button_card_templates/sizes/small_button.yaml b/config/lovelace/button_card_templates/v2/sizes/small_button.yaml similarity index 100% rename from config/lovelace/button_card_templates/sizes/small_button.yaml rename to config/lovelace/button_card_templates/v2/sizes/small_button.yaml diff --git a/config/lovelace/button_card_templates/sizes/xs_button.yaml b/config/lovelace/button_card_templates/v2/sizes/xs_button.yaml similarity index 100% rename from config/lovelace/button_card_templates/sizes/xs_button.yaml rename to config/lovelace/button_card_templates/v2/sizes/xs_button.yaml diff --git a/config/lovelace/button_card_templates/v3/primitives/v3_badge.yaml b/config/lovelace/button_card_templates/v3/primitives/v3_badge.yaml new file mode 100644 index 0000000..0e4b502 --- /dev/null +++ b/config/lovelace/button_card_templates/v3/primitives/v3_badge.yaml @@ -0,0 +1,22 @@ +v3_badge: + variables: + state_size: 15px + show_name: false + show_icon: false + show_state: true + hold_action: + action: more-info + styles: + card: + - width: 60px + - height: 60px + - font-size: 15px + - border-radius: 60px + - box-shadow: none + - --ha-card-background: transparent + - border: 2px solid rgba(255, 255, 255, 0.5) + state: + - text-overflow: initial + - width: 80% + - font-weight: bold + - font-size: "[[[ return variables.state_size ]]]" diff --git a/config/lovelace/button_card_templates/v3/primitives/v3_badge_icon.yaml b/config/lovelace/button_card_templates/v3/primitives/v3_badge_icon.yaml new file mode 100644 index 0000000..9dea4b1 --- /dev/null +++ b/config/lovelace/button_card_templates/v3/primitives/v3_badge_icon.yaml @@ -0,0 +1,17 @@ +v3_badge_icon: + template: v3_badge + show_state: false + show_icon: true + styles: + icon: + - transform: translateX(-4px) translateY(11px) + - --mdc-icon-size: 30px + - color: white + state: + - value: 'on' + styles: + card: + - background-color: white + - color: black + icon: + - color: var(--primary-color) diff --git a/config/lovelace/button_card_templates/v3/primitives/v3_button.yaml b/config/lovelace/button_card_templates/v3/primitives/v3_button.yaml new file mode 100644 index 0000000..17e7c53 --- /dev/null +++ b/config/lovelace/button_card_templates/v3/primitives/v3_button.yaml @@ -0,0 +1,64 @@ +v3_button: + variables: + value_has_error: false + background_color: 'var(--v3-background)' + + show_state: true + show_icon: true + show_name: true + size: 120px + card_size: 2 + hold_action: + action: more-info + styles: + card: + - width: 120px + - height: 120px + - box-shadow: none + - --ha-card-background: "[[[ return variables.background_color ]]]" + icon: + - position: absolute + - top: 8px + - left: 16px + - width: 30px + - height: 30px + - --mdc-icon-size: 30px + - color: white + state: + - position: absolute + - bottom: 10px + - left: 16px + - font-weight: bold + - font-size: 13px + - color: "[[[ return variables.value_has_error ? 'red' : 'white' ]]]" + name: + - position: absolute + - left: 16px + - bottom: 28px + - white-space: normal + - word-wrap: break-word + - word-break: break-word + - width: 90px + - text-align: left + - font-weight: bold + - font-size: 15px + state: + - value: 'on' + styles: &on_styles + card: + - background-color: white + - color: black + icon: + - color: var(--primary-color) + state: + - color: "[[[ return variables.value_has_error ? 'red' : 'black' ]]]" + - value: 'home' + styles: *on_styles + - value: 'recording' + styles: *on_styles + - value: 'open' + styles: *on_styles + - value: 'playing' + styles: *on_styles + - value: 'heat' + styles: *on_styles diff --git a/config/lovelace/button_card_templates/v3/primitives/v3_pill.yaml b/config/lovelace/button_card_templates/v3/primitives/v3_pill.yaml new file mode 100644 index 0000000..a448d7d --- /dev/null +++ b/config/lovelace/button_card_templates/v3/primitives/v3_pill.yaml @@ -0,0 +1,29 @@ +v3_pill: + show_name: true + show_icon: true + show_state: false + card_size: 5 + hold_action: + action: more-info + styles: + card: + - width: 380px + - margin-left: 16px + - height: 60px + - font-size: 15px + - border-radius: 8px + - background-color: 'rgba(70, 70, 70, 1)' + icon: + - position: absolute + - left: 16px + - width: 30px + - --mdc-icon-size: 30px + - display: flex + - align-items: center + name: + - position: absolute + - top: 22px + - left: 60px + - width: 180px + - font-weight: bold + - text-align: left diff --git a/config/lovelace/button_card_templates/v3/primitives/v3_scene.yaml b/config/lovelace/button_card_templates/v3/primitives/v3_scene.yaml new file mode 100644 index 0000000..eee04f2 --- /dev/null +++ b/config/lovelace/button_card_templates/v3/primitives/v3_scene.yaml @@ -0,0 +1,48 @@ +v3_scene: + variables: + scene_color_1: rgb(255, 255, 255) + scene_color_2: rgb(255, 255, 255) + degrees: 315 + show_name: true + show_icon: true + show_state: false + card_size: 5 + tap_action: + action: call-service + service: scene.turn_on + service_data: + entity_id: "[[[ return entity.entity_id ]]]" + hold_action: + action: more-info + styles: + card: + - width: 250px + - height: 60px + - font-size: 15px + - box-shadow: none + - background: > + [[[ + const color_1 = variables.scene_color_1; + const color_2 = variables.scene_color_2 || variables.scene_color_1; + const degrees = variables.degrees; + + return "linear-gradient(" + + degrees + "deg, " + + color_1 + " 14%, " + + color_2 + " 14%, " + + color_2 + " 24%, var(--v3-background) 24%)" + ]]] + icon: + - position: absolute + - left: 16px + - width: 30px + - --mdc-icon-size: 30px + - display: flex + - align-items: center + name: + - position: absolute + - top: 22px + - left: 60px + - width: 180px + - font-weight: bold + - text-align: left diff --git a/config/lovelace/button_card_templates/v3/primitives/v3_tablet_button.yaml b/config/lovelace/button_card_templates/v3/primitives/v3_tablet_button.yaml new file mode 100644 index 0000000..a2fa7d0 --- /dev/null +++ b/config/lovelace/button_card_templates/v3/primitives/v3_tablet_button.yaml @@ -0,0 +1,21 @@ +v3_tablet_button: + template: v3_button + styles: + card: + - width: 100px + - height: 100px + - border-radius: 16px + icon: + - top: 4px + - left: 12px + - width: 20px + - height: 20px + - --mdc-icon-size: 20px + state: + - bottom: 4px + - left: 12px + name: + - left: 12px + - bottom: 22px + - width: 60px + - font-size: 13px diff --git a/config/lovelace/button_card_templates/v3/primitives/v3_xs_button.yaml b/config/lovelace/button_card_templates/v3/primitives/v3_xs_button.yaml new file mode 100644 index 0000000..905dd0f --- /dev/null +++ b/config/lovelace/button_card_templates/v3/primitives/v3_xs_button.yaml @@ -0,0 +1,22 @@ +v3_xs_button: + template: v3_button + show_state: false + styles: + card: + - width: 75px + - height: 75px + - border-radius: 12px + icon: + - top: 4px + - left: 12px + - width: 20px + - height: 20px + - --mdc-icon-size: 20px + name: + - left: 12px + - bottom: 8px + - white-space: normal + - word-wrap: break-word + - word-break: break-word + - width: 60px + - font-size: 13px diff --git a/config/lovelace/button_card_templates/v3/v3_badge_humidity.yaml b/config/lovelace/button_card_templates/v3/v3_badge_humidity.yaml new file mode 100644 index 0000000..fc7cec9 --- /dev/null +++ b/config/lovelace/button_card_templates/v3/v3_badge_humidity.yaml @@ -0,0 +1,3 @@ +v3_badge_humidity: + template: v3_badge + state_display: "[[[ return Number.parseFloat(entity.state.split(' ')[0]).toFixed(1) + '%' ]]]" diff --git a/config/lovelace/button_card_templates/v3/v3_badge_temp.yaml b/config/lovelace/button_card_templates/v3/v3_badge_temp.yaml new file mode 100644 index 0000000..4a465b3 --- /dev/null +++ b/config/lovelace/button_card_templates/v3/v3_badge_temp.yaml @@ -0,0 +1,3 @@ +v3_badge_temp: + template: v3_badge + state_display: "[[[ return Number.parseFloat(entity.state.split(' ')[0]).toFixed(1) + '°' ]]]" diff --git a/config/lovelace/button_card_templates/v3/v3_button_ac.yaml b/config/lovelace/button_card_templates/v3/v3_button_ac.yaml new file mode 100644 index 0000000..b3309a7 --- /dev/null +++ b/config/lovelace/button_card_templates/v3/v3_button_ac.yaml @@ -0,0 +1,27 @@ +v3_button_ac: + template: v3_button + icon: mdi:air-conditioner + state_display: | + [[[ + if (!entity) { + return "Unavailable"; + } + + if (entity.state === "off") { + return "Off"; + } + return entity.attributes.hvac_action.charAt(0).toUpperCase() + + entity.attributes.hvac_action.slice(1) + ' to ' + + entity.attributes.temperature + '°'; + ]]] + state: + - value: 'off' + operator: '!=' + styles: + card: + - background-color: white + - color: black + icon: + - color: var(--primary-color) + state: + - color: black diff --git a/config/lovelace/button_card_templates/v3/v3_button_brita_water.yaml b/config/lovelace/button_card_templates/v3/v3_button_brita_water.yaml new file mode 100644 index 0000000..9fd92df --- /dev/null +++ b/config/lovelace/button_card_templates/v3/v3_button_brita_water.yaml @@ -0,0 +1,58 @@ +v3_button_brita_water: + template: v3_button + name: Brita water + entity: script.brita_pour_water + variables: + long_state: true + value_has_error: | + [[[ + return states['binary_sensor.brita_should_change_filter'].state === 'on'; + ]]] + state_display: | + [[[ + return Math.round(states['input_number.brita_remaining_liters'].state) + + (variables.long_state ? 'L Remaining' : 'L') + ]]] + tap_action: + action: toggle + styles: + card: + - background: > + [[[ + const remaining = states['input_number.brita_remaining_liters'].state; + const percent = 100 - remaining; + + const gradient = [ + '180deg', + 'var(--v3-background) 0%', + `var(--v3-background) ${percent}%`, + `white ${percent}%` + ] + + return `linear-gradient(${gradient.join(',')})`; + ]]] + name: + - color: | + [[[ + const remaining = states['input_number.brita_remaining_liters'].state; + return remaining > 25 ? 'black' : 'white'; + ]]] + - background-color: | + [[[ + const remaining = states['input_number.brita_remaining_liters'].state; + return remaining > 25 ? 'white' : 'transparent'; + ]]] + - border-radius: 4px + + icon: + - color: | + [[[ + const remaining = states['input_number.brita_remaining_liters'].state; + return remaining > 65 ? 'black' : 'white'; + ]]] + - background-color: | + [[[ + const remaining = states['input_number.brita_remaining_liters'].state; + return remaining > 65 ? 'white' : 'transparent'; + ]]] + - border-radius: 4px diff --git a/config/lovelace/button_card_templates/v3/v3_button_cover.yaml b/config/lovelace/button_card_templates/v3/v3_button_cover.yaml new file mode 100644 index 0000000..90ddc89 --- /dev/null +++ b/config/lovelace/button_card_templates/v3/v3_button_cover.yaml @@ -0,0 +1,7 @@ +v3_button_cover: + template: [v3_button, cover] + state_display: | + [[[ + if (entity.state === 'closed') { return 'Closed' } + return entity.attributes.current_position + '% Open'; + ]]] diff --git a/config/lovelace/button_card_templates/v3/v3_button_light.yaml b/config/lovelace/button_card_templates/v3/v3_button_light.yaml new file mode 100644 index 0000000..ab2b0a4 --- /dev/null +++ b/config/lovelace/button_card_templates/v3/v3_button_light.yaml @@ -0,0 +1,7 @@ +v3_button_light: + template: v3_button + state_display: | + [[[ + if (entity.state === 'off') { return 'Off'; } + return Math.round(entity.attributes.brightness * 100 / 255) + "%"; + ]]] diff --git a/config/lovelace/button_card_templates/v3/v3_button_power.yaml b/config/lovelace/button_card_templates/v3/v3_button_power.yaml new file mode 100644 index 0000000..c1669be --- /dev/null +++ b/config/lovelace/button_card_templates/v3/v3_button_power.yaml @@ -0,0 +1,13 @@ +v3_button_power: + template: v3_button + variables: + power_sensor: + state_display: | + [[[ + if (entity.state === 'off') return 'Off'; + return states[variables.power_sensor].state + " W"; + ]]] + icon: mdi:power-socket + tap_action: + action: more-info + entity: "[[[return variables.power_sensor]]]" diff --git a/config/lovelace/button_card_templates/v3/v3_button_purifier.yaml b/config/lovelace/button_card_templates/v3/v3_button_purifier.yaml new file mode 100644 index 0000000..2fe7c67 --- /dev/null +++ b/config/lovelace/button_card_templates/v3/v3_button_purifier.yaml @@ -0,0 +1,12 @@ +v3_button_purifier: + template: v3_button + state_display: | + [[[ + if (entity.state === 'off') { return 'Off'; } + return entity.attributes.speed.charAt(0).toUpperCase() + entity.attributes.speed.slice(1); + ]]] + variables: + value_has_error: | + [[[ + return states['binary_sensor.purifier_filter_needs_change'].state === 'on'; + ]]] diff --git a/config/lovelace/button_card_templates/v3/v3_button_radiator.yaml b/config/lovelace/button_card_templates/v3/v3_button_radiator.yaml new file mode 100644 index 0000000..92c42e7 --- /dev/null +++ b/config/lovelace/button_card_templates/v3/v3_button_radiator.yaml @@ -0,0 +1,15 @@ +v3_button_radiator: + template: v3_button + icon: mdi:radiator + state_display: | + [[[ + if (entity.state === 'off') { return 'Off'}; + return entity.state.charAt(0).toUpperCase() + + entity.state.slice(1) + "ing to " + + entity.attributes.temperature + '°'; + ]]] + tap_action: + action: call-service + service: script.toggle_radiator + service_data: + entity_id: "[[[ return entity.entity_id ]]]" diff --git a/config/lovelace/button_card_templates/v3/v3_button_tv.yaml b/config/lovelace/button_card_templates/v3/v3_button_tv.yaml new file mode 100644 index 0000000..0678cf5 --- /dev/null +++ b/config/lovelace/button_card_templates/v3/v3_button_tv.yaml @@ -0,0 +1,21 @@ +v3_button_tv: + template: v3_button + tap_action: + action: toggle + icon: mdi:television + state: + - value: 'playing' + styles: &on_styles + card: + - background-color: white + - color: black + icon: + - color: var(--primary-color) + - value: 'standby' + styles: *on_styles + - value: 'on' + styles: *on_styles + - value: 'home' + styles: *on_styles + - value: 'idle' + styles: *on_styles diff --git a/config/lovelace/decluttering_templates/media_player.yaml b/config/lovelace/decluttering_templates/media_player.yaml index eeb93a6..b92305b 100644 --- a/config/lovelace/decluttering_templates/media_player.yaml +++ b/config/lovelace/decluttering_templates/media_player.yaml @@ -9,6 +9,7 @@ sonos_media_player: name: "[[name]]" info: "[[info]]" entity: "[[player]]" + scale: 1.2 speaker_group: sync_volume: "[[sync_volume]]" entities: &entities_in_gorup diff --git a/config/lovelace/decluttering_templates/v3/v3_horizontal_stack_card.yaml b/config/lovelace/decluttering_templates/v3/v3_horizontal_stack_card.yaml new file mode 100644 index 0000000..8724e16 --- /dev/null +++ b/config/lovelace/decluttering_templates/v3/v3_horizontal_stack_card.yaml @@ -0,0 +1,16 @@ +v3_horizontal_stack_card: + card: + type: custom:mod-card + card_size: 12 + card: + type: horizontal-stack + cards: "[[cards]]" + card_mod: + style: + hui-horizontal-stack-card: + $: | + #root { + max-width: 100vw; + padding-bottom: 10px; + overflow: scroll + } diff --git a/config/lovelace/decluttering_templates/v3/v3_media_with_controls.yaml b/config/lovelace/decluttering_templates/v3/v3_media_with_controls.yaml new file mode 100644 index 0000000..b7dddbe --- /dev/null +++ b/config/lovelace/decluttering_templates/v3/v3_media_with_controls.yaml @@ -0,0 +1,121 @@ +v3_media_with_controls: + default: + - title: "Media" + - player_name: + card: + type: vertical-stack + title: "[[title]]" + cards: + - type: custom:decluttering-card + template: sonos_media_player + variables: + - player: "[[player]]" + - name: "[[player_name]]" + - sync_volume: false + - type: horizontal-stack + cards: + - type: vertical-stack + cards: + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Volume + - margin_left: 16px + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_xs_button + show_state: false + entity: script.sonos_volume_10 + icon: mdi:volume-medium + name: Vol 10 + tap_action: + action: call-service + service: script.sonos_volume_10 + styles: + card: + - margin-left: 16px + variables: + background_color: rgba(60, 60, 60, 1) + - type: custom:button-card + template: v3_xs_button + show_state: false + entity: script.sonos_volume_20 + icon: mdi:volume-high + name: Vol 20 + tap_action: + action: call-service + service: script.sonos_volume_20 + variables: + background_color: rgba(60, 60, 60, 1) + - type: vertical-stack + cards: + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Group + - margin_left: 16px + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_xs_button + entity: binary_sensor.sonos_is_bedroom_master + name: Bedroom + icon: mdi:speaker-multiple + tap_action: + action: call-service + service: script.sonos_join_bedroom + styles: + card: + - margin-left: 16px + variables: + background_color: rgba(60, 60, 60, 1) + - type: custom:button-card + template: v3_xs_button + entity: binary_sensor.sonos_is_living_room_master + name: TV + icon: mdi:speaker-multiple + tap_action: + action: call-service + service: script.sonos_join_tv + variables: + background_color: rgba(60, 60, 60, 1) + - type: vertical-stack + cards: + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Playlists + - margin_left: 16px + - type: custom:button-card + template: v3_pill + entity: script.music_play + name: Chill + icon: mdi:music + tap_action: + action: toggle + - type: custom:button-card + template: v3_pill + entity: script.music_play + name: Chill 2 + icon: mdi:music + tap_action: + action: call-service + service: script.music_play + service_data: + playlist: "Songs for a Romantic Evening" + shuffle: true + volume_level: 0.1 + - type: custom:button-card + template: v3_pill + entity: script.music_play + name: Retro + icon: mdi:music + tap_action: + action: call-service + service: script.music_play + service_data: + playlist: "Retro" + styles: + card: + - margin-bottom: 8px diff --git a/config/lovelace/decluttering_templates/v3/v3_section_title.yaml b/config/lovelace/decluttering_templates/v3/v3_section_title.yaml new file mode 100644 index 0000000..2cc6ae1 --- /dev/null +++ b/config/lovelace/decluttering_templates/v3/v3_section_title.yaml @@ -0,0 +1,18 @@ +v3_section_title: + default: + margin_left: '0' + card: + type: markdown + content: > + ### [[title]] + card_mod: + style: | + ha-card { + box-shadow: none; + background: transparent; + } + + ha-card > ha-markdown { + font-size: 18px; + padding: 16px 6px 6px [[margin_left]]; + } diff --git a/config/lovelace/decluttering_templates/v3/v3_title.yaml b/config/lovelace/decluttering_templates/v3/v3_title.yaml new file mode 100644 index 0000000..2d541bc --- /dev/null +++ b/config/lovelace/decluttering_templates/v3/v3_title.yaml @@ -0,0 +1,17 @@ +v3_title: + card: + type: markdown + content: > + ## [[title]] + card_mod: + style: | + ha-card { + box-shadow: none; + background: transparent; + } + + ha-card > ha-markdown { + font-size: 22px; + padding: 20px 20px 20px 0; + letter-spacing: -1px; + } diff --git a/config/lovelace/hallway_dashboard/at_home_dashboard.yaml b/config/lovelace/hallway_dashboard/at_home_dashboard.yaml index 39c1ad8..e5a6288 100644 --- a/config/lovelace/hallway_dashboard/at_home_dashboard.yaml +++ b/config/lovelace/hallway_dashboard/at_home_dashboard.yaml @@ -1,201 +1,307 @@ -type: custom:layout-card -layout_type: custom:horizontal-layout -layout: - max_cols: 2 -cards: - # Column 1 - - type: vertical-stack - cards: - - type: custom:button-card - template: [hallway_dashboard_mode] - - type: horizontal-stack - cards: - - type: custom:button-card - template: half - icon: none - entity: light.all - name: All - - type: custom:button-card - template: half - icon: none - entity: light.ceiling - name: Ceiling - - type: horizontal-stack - cards: - - type: custom:button-card - template: [small, with_state_background] - entity: light.living_room - name: Living room - - type: custom:button-card - template: [small, with_state_background] - entity: light.living_room_main - name: Main - - type: custom:button-card - template: [small, with_state_background] - entity: light.pc - - type: custom:button-card - template: [small, with_state_background] - entity: light.living_room_ambient - name: Ambient - - type: horizontal-stack - cards: - - type: custom:button-card - template: [small, with_state_background] - entity: light.master_bedroom - name: Bedroom - - type: custom:button-card - template: [small, with_state_background] - entity: light.master_bedroom_main - name: Main - - type: custom:button-card - template: [small, with_state_background] - entity: light.bed_led - name: Bed - tap_action: - action: call-service - service: script.bed_led_toggle - - type: custom:button-card - template: [small, with_state_background] - entity: light.bedside - name: Bedside - - type: horizontal-stack - cards: - - type: custom:button-card - template: [small, with_state_background] - entity: light.kitchen - name: Kitchen - - type: custom:button-card - template: [small, with_state_background] - entity: light.hallway_main - name: Hallway - - type: custom:button-card - template: [small, with_state_background] - entity: light.hallway_entrance - name: Entrance +type: custom:mod-card +style: + layout-card: + $: + horizontal-layout: + $: + .: | + #columns { + padding-left: 10px; + margin: 0 20px; + grid-gap: 20px; + } +card: + type: custom:layout-card + layout_type: custom:horizontal-layout + layout: + max_cols: 2 + cards: + # Column 1 + - type: vertical-stack + cards: + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Sensors + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_badge_temp + entity: sensor.average_temperature + - type: custom:button-card + template: v3_badge_humidity + entity: sensor.average_humidity + - type: custom:button-card + template: v3_badge_icon + entity: sensor.active_motion_sensors + icon: | + [[[ + return entity.state === 0 ? 'mdi:motion-sensor-off' : 'mdi:motion-sensor'; + ]]] + state: + - value: 0 + operator: '!=' + styles: + card: + - background-color: 'white' + icon: + - color: var(--primary-color) + - type: custom:button-card + template: v3_badge_icon + entity: sensor.open_window_count + icon: | + [[[ + return entity.state === 0 ? 'mdi:window-closed' : 'mdi:window-open'; + ]]] + state: + - value: 0 + operator: '!=' + styles: + card: + - background-color: 'white' + icon: + - color: var(--primary-color) + - type: custom:button-card + template: v3_badge_icon + entity: sensor.open_door_count + icon: | + [[[ + return entity.state === 0 ? 'mdi:door-closed' : 'mdi:door-open'; + ]]] + state: + - value: 0 + operator: '!=' + styles: + card: + - background-color: 'white' + icon: + - color: var(--primary-color) - - type: custom:decluttering-card - template: media_with_controls - variables: - - player: media_player.master_bedroom - - player_name: Bedroom - - title: "" + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Modes & Devices + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_tablet_button + entity: input_select.hallway_dashboard_mode + name: Mode + styles: + card: + - background-color: var(--primary-color) + tap_action: + action: call-service + service: input_select.select_next + service_data: + entity_id: input_select.hallway_dashboard_mode + - type: custom:button-card + template: v3_tablet_button + entity: input_boolean.guest_mode + tap_action: + action: toggle + - type: custom:button-card + template: [v3_button_tv, v3_tablet_button] + entity: media_player.living_room_tv + name: TV + - type: horizontal-stack + cards: + - type: custom:button-card + template: [v3_button_ac, v3_tablet_button] + entity: climate.toshiba_ac + name: AC + tap_action: + action: call-service + service: script.toshiba_ac_toggle + - type: custom:button-card + template: [v3_button_radiator, v3_tablet_button] + entity: climate.living_room_radiator_mode + name: "Living room" + - type: custom:button-card + template: [v3_button_radiator, v3_tablet_button] + entity: climate.bedroom_radiator_mode + name: "Bedroom" + - type: custom:button-card + template: [v3_button_radiator, v3_tablet_button] + entity: climate.kitchen_radiator_mode + name: "Kitchen" + - type: horizontal-stack + cards: + - type: custom:button-card + template: [v3_button_cover, v3_tablet_button] + entity: cover.living_room + name: LR Cover + tap_action: + action: call-service + service: script.toggle_living_room_cover + - type: custom:button-card + template: [v3_button_purifier, v3_tablet_button] + entity: fan.philips_airpurifier + name: Air Purifier + - type: custom:button-card + template: v3_tablet_button + entity: vacuum.vacuum + name: Vacuum + - type: custom:button-card + template: v3_button_brita_water + variables: + long_state: false + styles: + card: + - width: 100px + - height: 100px + - border-radius: 16px + icon: + - top: 4px + - left: 12px + - width: 20px + - height: 20px + - --mdc-icon-size: 20px + state: + - bottom: 4px + - left: 12px + name: + - left: 12px + - bottom: 22px + - width: 60px + - font-size: 13px - # Column 2 - - type: vertical-stack - cards: - - type: grid - columns: 4 - square: false - cards: - - type: custom:button-card - template: [small, with_state_background] - entity: input_boolean.speech_notifications - name: Speech - - type: custom:button-card - template: [small, with_state_background] - entity: binary_sensor.house_mode - tap_action: - action: call-service - service: input_select.select_next - service_data: - entity_id: input_select.house_mode - - type: custom:button-card - template: [small, with_state_background] - entity: input_boolean.guest_mode - tap_action: - action: toggle - - type: custom:button-card - template: [small, with_state_background] - entity: switch.mercury_home_mode - name: Mercury Home + # Column 2 + - type: vertical-stack + cards: + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Lights + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_tablet_button + entity: light.living_room + name: Living room + - type: custom:button-card + template: v3_tablet_button + entity: light.living_room_main + name: Main + - type: custom:button-card + template: v3_tablet_button + entity: light.pc + - type: custom:button-card + template: v3_tablet_button + entity: light.living_room_ambient + name: Ambient + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_tablet_button + entity: light.master_bedroom + name: Bedroom + - type: custom:button-card + template: v3_tablet_button + entity: light.master_bedroom_main + name: Main + - type: custom:button-card + template: v3_tablet_button + entity: light.bed_led + name: Bed + tap_action: + action: call-service + service: script.bed_led_toggle + - type: custom:button-card + template: v3_tablet_button + entity: light.bedside + name: Bedside + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_tablet_button + entity: light.kitchen + name: Kitchen + - type: custom:button-card + template: v3_tablet_button + entity: light.hallway_main + name: Hallway + - type: custom:button-card + template: v3_tablet_button + entity: light.hallway_entrance + name: Entrance + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Media - - type: custom:button-card - template: small - entity: media_player.living_room_tv - name: TV - icon: mdi:television - tap_action: - action: toggle - state: - - value: 'playing' - styles: &on_styles - card: - - background-color: var(--primary-color) - - color: black - icon: - - color: black - - value: 'standby' - styles: *on_styles - - value: 'on' - styles: *on_styles - - value: 'home' - styles: *on_styles - - value: 'idle' - styles: *on_styles - - - type: custom:button-card - template: [small, with_state_background, with_state_indicator] - entity: switch.titanium - variables: - state_indicator_id: automation.titanium_turn_off_when_idle - - - - type: custom:button-card - template: [ac_button, small] - - type: custom:button-card - template: [radiator_button, small] - entity: climate.living_room_radiator_mode - name: "Living room" - - type: custom:button-card - template: [radiator_button, small] - entity: climate.bedroom_radiator_mode - name: "Bedroom" - - type: custom:button-card - template: [radiator_button, small] - entity: climate.kitchen_radiator_mode - name: "Kitchen" - - - type: custom:button-card - template: [with_state_background, cover, small] - entity: cover.living_room - name: LR Cover - tap_action: - action: call-service - service: script.toggle_living_room_cover - - type: custom:button-card - template: [small, with_state_background, with_state_indicator] - entity: fan.philips_airpurifier - variables: - state_indicator_id: binary_sensor.purifier_filter_needs_change - state_indicator_size: 5px - state_indicator_off_size: 0px - state_indicator_on_color: var(--color-red) - state_on_indicator_on_color: var(--color-red) - - type: custom:button-card - template: [small, with_state_background] - entity: vacuum.vacuum - name: Vacuum - - type: custom:button-card - template: [brita_water, small] - - - type: horizontal-stack - cards: - - type: "custom:mini-graph-card" - name: Temperature - icon: mdi:thermometer - entities: - - sensor.average_temperature - cache: false - group_by: hour - hours_to_show: 72 - line_width: 2 - - type: "custom:mini-graph-card" - name: Humidity - icon: mdi:water-percent - entities: - - sensor.average_humidity - cache: false - group_by: hour - hours_to_show: 72 - line_width: 2 + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_xs_button + entity: media_player.master_bedroom + name: Sonos + - type: custom:button-card + template: v3_xs_button + show_state: false + entity: script.sonos_volume_10 + icon: mdi:volume-medium + name: Vol 10 + tap_action: + action: call-service + service: script.sonos_volume_10 + - type: custom:button-card + template: v3_xs_button + show_state: false + entity: script.sonos_volume_20 + icon: mdi:volume-high + name: Vol 20 + tap_action: + action: call-service + service: script.sonos_volume_20 + - type: custom:button-card + template: v3_xs_button + entity: binary_sensor.sonos_is_bedroom_master + name: Bedroom + icon: mdi:speaker-multiple + tap_action: + action: call-service + service: script.sonos_join_bedroom + - type: custom:button-card + template: v3_xs_button + entity: binary_sensor.sonos_is_living_room_master + name: TV + icon: mdi:speaker-multiple + tap_action: + action: call-service + service: script.sonos_join_tv + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_xs_button + entity: script.music_play + name: Chill + icon: mdi:music + tap_action: + action: toggle + - type: custom:button-card + template: v3_xs_button + entity: script.music_play + name: Chill 2 + icon: mdi:music + tap_action: + action: call-service + service: script.music_play + service_data: + playlist: "Songs for a Romantic Evening" + shuffle: true + volume_level: 0.1 + - type: custom:button-card + template: v3_xs_button + entity: script.music_play + name: Retro + icon: mdi:music + tap_action: + action: call-service + service: script.music_play + service_data: + playlist: "Retro" + styles: + card: + - margin-bottom: 8px diff --git a/config/lovelace/hallway_dashboard/coming_home_dashboard.yaml b/config/lovelace/hallway_dashboard/coming_home_dashboard.yaml index d035447..aa92d6a 100644 --- a/config/lovelace/hallway_dashboard/coming_home_dashboard.yaml +++ b/config/lovelace/hallway_dashboard/coming_home_dashboard.yaml @@ -1,188 +1,298 @@ -type: custom:layout-card -layout_type: custom:horizontal-layout -layout: - max_cols: 2 -cards: - # Column 1 - - type: vertical-stack - cards: - - type: custom:button-card - template: [hallway_dashboard_mode] - - type: horizontal-stack - cards: - - type: custom:button-card - template: half - icon: none - entity: light.all - name: All - - type: custom:button-card - template: half - icon: none - entity: light.ceiling - name: Ceiling - - type: horizontal-stack - cards: - - type: custom:button-card - template: [small, with_state_background] - entity: light.living_room - name: Living room - - type: custom:button-card - template: [small, with_state_background] - entity: light.living_room_main - name: Main - - type: custom:button-card - template: [small, with_state_background] - entity: light.pc - - type: custom:button-card - template: [small, with_state_background] - entity: light.living_room_ambient - name: Ambient - - type: horizontal-stack - cards: - - type: custom:button-card - template: [small, with_state_background] - entity: light.master_bedroom - name: Bedroom - - type: custom:button-card - template: [small, with_state_background] - entity: light.master_bedroom_main - name: Main - - type: custom:button-card - template: [small, with_state_background] - entity: light.bed_led - name: Bed - tap_action: - action: call-service - service: script.bed_led_toggle - - type: custom:button-card - template: [small, with_state_background] - entity: light.bedside - name: Bedside - - type: horizontal-stack - cards: - - type: custom:button-card - template: [small, with_state_background] - entity: light.kitchen - name: Kitchen - - type: custom:button-card - template: [small, with_state_background] - entity: light.hallway_main - name: Hallway - - type: custom:button-card - template: [small, with_state_background] - entity: light.hallway_entrance - name: Entrance +type: custom:mod-card +style: + layout-card: + $: + horizontal-layout: + $: + .: | + #columns { + padding-left: 10px; + margin: 0 20px; + grid-gap: 20px; + } +card: + type: custom:layout-card + layout_type: custom:horizontal-layout + layout: + max_cols: 2 + cards: + # Column 1 + - type: vertical-stack + cards: + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Welcome! + - type: markdown + content: !include ../../templates/partials/tasks.yaml - - type: custom:decluttering-card - template: media_with_controls - variables: - - player: media_player.master_bedroom - - player_name: Bedroom - - title: "" + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_badge_temp + entity: sensor.average_temperature + - type: custom:button-card + template: v3_badge_humidity + entity: sensor.average_humidity + - type: custom:button-card + template: v3_badge_icon + entity: sensor.active_motion_sensors + icon: | + [[[ + return entity.state === 0 ? 'mdi:motion-sensor-off' : 'mdi:motion-sensor'; + ]]] + state: + - value: 0 + operator: '!=' + styles: + card: + - background-color: 'white' + icon: + - color: var(--primary-color) + - type: custom:button-card + template: v3_badge_icon + entity: sensor.open_window_count + icon: | + [[[ + return entity.state === 0 ? 'mdi:window-closed' : 'mdi:window-open'; + ]]] + state: + - value: 0 + operator: '!=' + styles: + card: + - background-color: 'white' + icon: + - color: var(--primary-color) + - type: custom:button-card + template: v3_badge_icon + entity: sensor.open_door_count + icon: | + [[[ + return entity.state === 0 ? 'mdi:door-closed' : 'mdi:door-open'; + ]]] + state: + - value: 0 + operator: '!=' + styles: + card: + - background-color: 'white' + icon: + - color: var(--primary-color) - # Column 2 - - type: vertical-stack - cards: - - type: grid - columns: 4 - square: false - cards: - - type: custom:button-card - template: [small, with_state_background] - entity: binary_sensor.georgi_home - name: Georgi home? - tap_action: - action: call-service - service: input_boolean.toggle - service_data: - entity_id: input_boolean.georgi_home - - type: custom:button-card - template: [small, with_state_background] - entity: input_boolean.speech_notifications - name: Speech - - type: custom:button-card - template: [small, with_state_background] - entity: input_boolean.guest_mode - tap_action: - action: toggle - - type: custom:button-card - template: [small, with_state_background] - entity: switch.mercury_home_mode - name: Mercury Home - - type: custom:button-card - template: small - entity: media_player.living_room_tv - name: TV - icon: mdi:television - tap_action: - action: toggle - state: - - value: 'playing' - styles: &on_styles - card: - - background-color: var(--primary-color) - - color: black - icon: - - color: black - - value: 'standby' - styles: *on_styles - - value: 'on' - styles: *on_styles - - value: 'home' - styles: *on_styles - - value: 'idle' - styles: *on_styles - - type: custom:button-card - template: [small, with_state_background, with_state_indicator] - entity: switch.titanium - variables: - state_indicator_id: automation.titanium_turn_off_when_idle - - type: custom:button-card - template: [ac_button, small] - - type: custom:button-card - template: [radiator_button, small] - entity: climate.living_room_radiator_mode - name: "Living room" - - type: custom:button-card - template: [radiator_button, small] - entity: climate.bedroom_radiator_mode - name: "Bedroom" - - type: custom:button-card - template: [radiator_button, small] - entity: climate.kitchen_radiator_mode - name: "Kitchen" - - type: custom:button-card - template: [with_state_background, cover, small] - entity: cover.living_room - name: LR Cover - tap_action: - action: call-service - service: script.toggle_living_room_cover - - type: custom:button-card - template: [small, with_state_background, with_state_indicator] - entity: fan.philips_airpurifier - variables: - state_indicator_id: binary_sensor.purifier_filter_needs_change - state_indicator_size: 5px - state_indicator_off_size: 0px - state_indicator_on_color: var(--color-red) - state_on_indicator_on_color: var(--color-red) - - type: custom:button-card - template: [small, with_state_background] - entity: vacuum.vacuum - name: Vacuum + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Modes & Devices + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_tablet_button + entity: input_select.hallway_dashboard_mode + name: Mode + styles: + card: + - background-color: var(--primary-color) + tap_action: + action: call-service + service: input_select.select_next + service_data: + entity_id: input_select.hallway_dashboard_mode - - type: markdown - content: !include ../../templates/partials/tasks.yaml - - type: entities - entities: - - type: custom:decluttering-card - template: percentage_card - variables: - - name: Quarantine - - entity: sensor.quarantined_percent - - icon: mdi:percent - - orange: 100 - - red: 100 - - entity: sensor.quarantine_times_left - name: Times left + - type: custom:button-card + template: v3_tablet_button + entity: binary_sensor.georgi_home + name: Georgi home? + tap_action: + action: call-service + service: input_boolean.toggle + service_data: + entity_id: input_boolean.georgi_home + - type: custom:button-card + template: v3_tablet_button + entity: input_boolean.guest_mode + tap_action: + action: toggle + - type: custom:button-card + template: [v3_button_tv, v3_tablet_button] + entity: media_player.living_room_tv + name: TV + - type: horizontal-stack + cards: + - type: custom:button-card + template: [v3_button_ac, v3_tablet_button] + entity: climate.toshiba_ac + name: AC + tap_action: + action: call-service + service: script.toshiba_ac_toggle + - type: custom:button-card + template: [v3_button_radiator, v3_tablet_button] + entity: climate.living_room_radiator_mode + name: "Living room" + - type: custom:button-card + template: [v3_button_radiator, v3_tablet_button] + entity: climate.bedroom_radiator_mode + name: "Bedroom" + - type: custom:button-card + template: [v3_button_radiator, v3_tablet_button] + entity: climate.kitchen_radiator_mode + name: "Kitchen" + - type: horizontal-stack + cards: + - type: custom:button-card + template: [v3_button_cover, v3_tablet_button] + entity: cover.living_room + name: LR Cover + tap_action: + action: call-service + service: script.toggle_living_room_cover + - type: custom:button-card + template: [v3_button_purifier, v3_tablet_button] + entity: fan.philips_airpurifier + name: Air Purifier + - type: custom:button-card + template: v3_tablet_button + entity: vacuum.vacuum + name: Vacuum + + + # Column 2 + - type: vertical-stack + cards: + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Lights + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_tablet_button + entity: light.living_room + name: Living room + - type: custom:button-card + template: v3_tablet_button + entity: light.living_room_main + name: Main + - type: custom:button-card + template: v3_tablet_button + entity: light.pc + - type: custom:button-card + template: v3_tablet_button + entity: light.living_room_ambient + name: Ambient + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_tablet_button + entity: light.master_bedroom + name: Bedroom + - type: custom:button-card + template: v3_tablet_button + entity: light.master_bedroom_main + name: Main + - type: custom:button-card + template: v3_tablet_button + entity: light.bed_led + name: Bed + tap_action: + action: call-service + service: script.bed_led_toggle + - type: custom:button-card + template: v3_tablet_button + entity: light.bedside + name: Bedside + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_tablet_button + entity: light.kitchen + name: Kitchen + - type: custom:button-card + template: v3_tablet_button + entity: light.hallway_main + name: Hallway + - type: custom:button-card + template: v3_tablet_button + entity: light.hallway_entrance + name: Entrance + + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Media + + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_xs_button + entity: media_player.master_bedroom + name: Sonos + - type: custom:button-card + template: v3_xs_button + show_state: false + entity: script.sonos_volume_10 + icon: mdi:volume-medium + name: Vol 10 + tap_action: + action: call-service + service: script.sonos_volume_10 + - type: custom:button-card + template: v3_xs_button + show_state: false + entity: script.sonos_volume_20 + icon: mdi:volume-high + name: Vol 20 + tap_action: + action: call-service + service: script.sonos_volume_20 + - type: custom:button-card + template: v3_xs_button + entity: binary_sensor.sonos_is_bedroom_master + name: Bedroom + icon: mdi:speaker-multiple + tap_action: + action: call-service + service: script.sonos_join_bedroom + - type: custom:button-card + template: v3_xs_button + entity: binary_sensor.sonos_is_living_room_master + name: TV + icon: mdi:speaker-multiple + tap_action: + action: call-service + service: script.sonos_join_tv + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_xs_button + entity: script.music_play + name: Chill + icon: mdi:music + tap_action: + action: toggle + - type: custom:button-card + template: v3_xs_button + entity: script.music_play + name: Chill 2 + icon: mdi:music + tap_action: + action: call-service + service: script.music_play + service_data: + playlist: "Songs for a Romantic Evening" + shuffle: true + volume_level: 0.1 + - type: custom:button-card + template: v3_xs_button + entity: script.music_play + name: Retro + icon: mdi:music + tap_action: + action: call-service + service: script.music_play + service_data: + playlist: "Retro" + styles: + card: + - margin-bottom: 8px diff --git a/config/lovelace/hallway_dashboard/leaving_home_dashboard.yaml b/config/lovelace/hallway_dashboard/leaving_home_dashboard.yaml index d772bb8..77b6c87 100644 --- a/config/lovelace/hallway_dashboard/leaving_home_dashboard.yaml +++ b/config/lovelace/hallway_dashboard/leaving_home_dashboard.yaml @@ -1,68 +1,117 @@ -type: custom:layout-card -layout_type: custom:horizontal-layout -layout: - max_cols: 2 -cards: - - type: vertical-stack - cards: - - type: custom:button-card - template: [hallway_dashboard_mode] - - type: custom:weather-card - entity: weather.dark_sky - - type: custom:sun-card - darkMode: true - - type: vertical-stack - cards: - - type: grid - square: false - columns: 4 - cards: - - type: custom:button-card - template: [with_state_background, cover, small] - entity: cover.living_room - name: LR Cover - tap_action: - action: call-service - service: script.toggle_living_room_cover - - type: custom:button-card - template: [small, with_state_background] - entity: binary_sensor.living_room_right_window - name: Living room - - type: custom:button-card - template: [small, with_state_background] - entity: binary_sensor.bedroom_left_window - name: Bedroom left - - type: custom:button-card - template: [small, with_state_background] - entity: binary_sensor.bedroom_right_window - name: Bedroom right - - type: custom:button-card - template: [small, with_state_background] - entity: binary_sensor.kitchen_window - name: Kitchen - - type: custom:button-card - template: [small, with_state_background] - entity: binary_sensor.front_door - - type: custom:button-card - template: [small, with_state_background] - entity: binary_sensor.bedroom_door +type: custom:mod-card +style: + layout-card: + $: + horizontal-layout: + $: + .: | + #columns { + padding-left: 10px; + margin: 0 20px; + grid-gap: 20px; + } +card: + type: custom:layout-card + layout_type: custom:horizontal-layout + layout: + max_cols: 2 + cards: + - type: vertical-stack + cards: + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Sensors + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_badge + entity: sensor.quarantined_percent + - type: custom:button-card + template: v3_badge + entity: sensor.quarantine_times_left + - type: custom:button-card + template: v3_badge_icon + entity: sensor.active_motion_sensors + icon: | + [[[ + return entity.state === 0 ? 'mdi:motion-sensor-off' : 'mdi:motion-sensor'; + ]]] + state: + - value: 0 + operator: '!=' + styles: + card: + - background-color: 'white' + icon: + - color: var(--primary-color) + - type: custom:button-card + template: v3_badge_icon + entity: sensor.open_window_count + icon: | + [[[ + return entity.state === 0 ? 'mdi:window-closed' : 'mdi:window-open'; + ]]] + state: + - value: 0 + operator: '!=' + styles: + card: + - background-color: 'white' + icon: + - color: var(--primary-color) + - type: custom:button-card + template: v3_badge_icon + entity: sensor.open_door_count + icon: | + [[[ + return entity.state === 0 ? 'mdi:door-closed' : 'mdi:door-open'; + ]]] + state: + - value: 0 + operator: '!=' + styles: + card: + - background-color: 'white' + icon: + - color: var(--primary-color) - - type: custom:mini-graph-card - hours_to_show: 72 - line_width: 2 - entities: - - sensor.dark_sky_precip_probability - - sensor.dark_sky_cloud_coverage + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Modes & Devices + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_tablet_button + entity: input_select.hallway_dashboard_mode + name: Mode + styles: + card: + - background-color: var(--primary-color) + tap_action: + action: call-service + service: input_select.select_next + service_data: + entity_id: input_select.hallway_dashboard_mode + - type: custom:button-card + template: [v3_button_cover, v3_tablet_button] + entity: cover.living_room + name: LR Cover + tap_action: + action: call-service + service: script.toggle_living_room_cover - - type: entities - entities: - - type: custom:decluttering-card - template: percentage_card - variables: - - name: Quarantine - - entity: sensor.quarantined_percent - - icon: mdi:percent - - orange: 100 - - red: 100 - - entity: sensor.quarantine_times_left - name: Times left + + - type: custom:sun-card + darkMode: true + - type: vertical-stack + cards: + - type: custom:weather-card + entity: weather.dark_sky + - type: custom:mini-graph-card + hours_to_show: 72 + line_width: 2 + entities: + - sensor.dark_sky_precip_probability + - sensor.dark_sky_cloud_coverage diff --git a/config/lovelace/home_dashboard/bathroom_dashboard.yaml b/config/lovelace/home_dashboard/bathroom_dashboard.yaml index fbf4908..8030a66 100644 --- a/config/lovelace/home_dashboard/bathroom_dashboard.yaml +++ b/config/lovelace/home_dashboard/bathroom_dashboard.yaml @@ -1,6 +1,11 @@ - type: custom:mod-card style: layout-card: + .: | + * { + --primary-color: #FF7900 + } + $: horizontal-layout: $: @@ -13,20 +18,31 @@ type: custom:layout-card layout_type: custom:horizontal-layout layout: - max_cols: 2 + max_cols: 3 cards: - type: vertical-stack cards: - type: custom:decluttering-card - template: media_with_controls + template: v3_title variables: - - player: media_player.bathroom - - player_name: Bathroom - title: Bathroom - - type: custom:decluttering-card - template: climate_card - variables: - - title: "Climate" - - main_entity: sensor.bathroom_weather_temperature - - left_entity: sensor.bathroom_weather_humidity - - right_entity: sensor.bathroom_weather_pressure + + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_badge_temp + entity: sensor.bathroom_weather_temperature + - type: custom:button-card + template: v3_badge_humidity + entity: sensor.bathroom_weather_humidity + + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Devices + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_button + entity: media_player.bathroom + name: Sonos diff --git a/config/lovelace/home_dashboard/bedroom_dashboard.yaml b/config/lovelace/home_dashboard/bedroom_dashboard.yaml index 66292a9..1375cd5 100644 --- a/config/lovelace/home_dashboard/bedroom_dashboard.yaml +++ b/config/lovelace/home_dashboard/bedroom_dashboard.yaml @@ -1,6 +1,11 @@ - type: custom:mod-card style: layout-card: + .: | + * { + --primary-color: #871CAB + } + $: horizontal-layout: $: @@ -16,141 +21,140 @@ max_cols: 3 cards: - type: vertical-stack - title: Bedroom cards: + - type: custom:decluttering-card + template: v3_title + variables: + - title: Bedroom - type: horizontal-stack cards: - type: custom:button-card - template: default - entity: light.master_bedroom - name: Bedroom + template: v3_badge_temp + entity: sensor.bedroom_weather_temperature + state_display: "[[[return entity.state.split(' ')[0] + '°']]]" - type: custom:button-card - template: default + template: v3_badge_humidity + entity: sensor.bedroom_weather_humidity + - type: custom:button-card + template: v3_badge + entity: sensor.purifier_air_quality + state_display: "[[[return entity.state.split(' ')[0] + ' pm2.5']]]" + variables: + state_size: "11px" + - type: custom:button-card + template: v3_badge_icon + entity: binary_sensor.bedroom_left_window + - type: custom:button-card + template: v3_badge_icon + entity: binary_sensor.bedroom_right_window + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_badge_icon + entity: binary_sensor.bedroom_door + + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Scenes + - type: custom:decluttering-card + template: v3_horizontal_stack_card + variables: + - cards: + - type: custom:button-card + template: v3_scene + entity: scene.bedroom_neon + name: Neon + variables: + scene_color_1: rgb(255, 0, 190) + scene_color_2: rgb(0, 255, 190) + - type: custom:button-card + template: v3_scene + entity: scene.bedroom_ambient_neon + name: Ambient neon + variables: + scene_color_1: rgb(255, 0, 190) + scene_color_2: rgb(0, 255, 190) + - type: custom:button-card + template: v3_scene + entity: scene.bedroom_default + name: Regular + variables: + scene_color_1: rgb(254, 255, 209) + - type: custom:button-card + template: v3_scene + entity: scene.bedroom_ambient_default + name: Ambient regular + variables: + scene_color_1: rgb(254, 255, 209) + - type: custom:button-card + template: v3_scene + entity: scene.bedroom_pink + name: Pink + variables: + scene_color_1: rgb(255, 92, 38) + scene_color_2: rgb(255, 0, 190) + - type: custom:button-card + template: v3_scene + entity: scene.bedroom_ambient_pink + name: Ambient pink + variables: + scene_color_1: rgb(255, 92, 38) + scene_color_2: rgb(255, 0, 190) + + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Lights + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_button_light + entity: light.master_bedroom + name: All + - type: custom:button-card + template: v3_button_light entity: light.master_bedroom_main name: Main - type: custom:button-card - template: default - entity: light.bed_led - name: Bed - tap_action: - action: call-service - service: script.bed_led_toggle - - type: custom:button-card - template: default + template: v3_button_light entity: light.bedside name: Bedside - type: horizontal-stack cards: - type: custom:button-card - template: [small, scene] - entity: scene.bedroom_ambient_neon - name: Neon - variables: - scene_color_1: rgb(255, 0, 190) - scene_color_2: rgb(0, 255, 190) - tap_action: - action: call-service - service: script.apply_bedroom_neon - - type: custom:button-card - template: [small, scene] - entity: scene.bedroom_ambient_neon - name: Ambient neon - variables: - scene_color_1: rgb(255, 0, 190) - scene_color_2: rgb(0, 255, 190) - tap_action: - action: call-service - service: script.apply_bedroom_ambient_neon - - type: custom:button-card - template: [small, scene] - entity: scene.bedroom_default - name: Regular - variables: - scene_color_1: rgb(254, 255, 209) - - type: custom:button-card - template: [small, scene] - entity: scene.bedroom_ambient_default - name: Ambient regular - variables: - scene_color_1: rgb(254, 255, 209) - - type: custom:button-card - template: [small, scene] - entity: scene.bedroom_ambient_pink - name: Ambient pink - tap_action: - action: call-service - service: script.apply_bedroom_pink - variables: - scene_color_1: rgb(255, 92, 38) - scene_color_2: rgb(255, 0, 190) + template: v3_button_light + entity: light.bed_led + name: Bed + + - type: vertical-stack + cards: + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Devices - type: horizontal-stack - title: Climate cards: - type: custom:button-card - template: radiator_button - entity: climate.bedroom_radiator_mode + template: v3_button + entity: media_player.master_bedroom + name: Sonos - type: custom:button-card - template: [default, with_state_indicator] + template: v3_button_purifier entity: fan.philips_airpurifier - variables: - state_indicator_id: binary_sensor.purifier_filter_needs_change - state_indicator_size: 5px - state_indicator_off_size: 0px - state_indicator_on_color: var(--color-red) - state_on_indicator_on_color: var(--color-red) + name: Air Purifier - type: custom:button-card - template: default - entity: sensor.purifier_speed - tap_action: - action: call-service - service: input_select.select_next - service_data: - entity_id: input_select.purifier_speed - - type: custom:button-card - template: default - entity: sensor.purifier_function - tap_action: - action: call-service - service: script.purifier_toggle_function - - type: custom:decluttering-card - template: purifier_target_humidity + template: v3_button_radiator + entity: climate.bedroom_radiator_mode + name: Radiator - - type: horizontal-stack - cards: - - type: custom:button-card - template: default - entity: binary_sensor.bedroom_door - name: Door - - type: custom:button-card - template: default - entity: binary_sensor.bedroom_left_window - name: Left window - - type: custom:button-card - template: default - entity: binary_sensor.bedroom_right_window - name: Right window - - - type: vertical-stack - cards: - - type: custom:decluttering-card - template: climate_card - variables: - - title: "Climate" - - main_entity: sensor.bedroom_weather_temperature - - left_entity: sensor.bedroom_weather_humidity - - right_entity: sensor.bedroom_weather_pressure - - - type: vertical-stack - cards: - - type: custom:decluttering-card - template: media_with_controls - variables: - - player: media_player.master_bedroom - - player_name: Bedroom - type: vertical-stack - title: Camera cards: + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Camera - type: picture-glance camera_image: camera.bedroom_hd entities: diff --git a/config/lovelace/home_dashboard/cameras_dashboard.yaml b/config/lovelace/home_dashboard/cameras_dashboard.yaml deleted file mode 100644 index 5fb4cc7..0000000 --- a/config/lovelace/home_dashboard/cameras_dashboard.yaml +++ /dev/null @@ -1,30 +0,0 @@ -- type: custom:mod-card - style: - layout-card: - $: - horizontal-layout: - $: - .: | - #columns { - margin: 0 20px; - grid-gap: 20px; - } - card: - type: custom:layout-card - layout_type: custom:horizontal-layout - layout: - max_cols: 2 - cards: - - type: vertical-stack - title: Living Room - cards: - - type: picture-glance - camera_image: camera.mercury_amcrest_1 - entities: [] - - - type: vertical-stack - title: Bedroom - cards: - - type: picture-glance - camera_image: camera.mercury_bedroom - entities: [] diff --git a/config/lovelace/home_dashboard/hallway_dashboard.yaml b/config/lovelace/home_dashboard/hallway_dashboard.yaml index 5968488..235675b 100644 --- a/config/lovelace/home_dashboard/hallway_dashboard.yaml +++ b/config/lovelace/home_dashboard/hallway_dashboard.yaml @@ -1,6 +1,11 @@ - type: custom:mod-card style: layout-card: + .: | + * { + --primary-color: #188A9C + } + $: horizontal-layout: $: @@ -13,54 +18,44 @@ type: custom:layout-card layout_type: custom:horizontal-layout layout: - max_cols: 2 + max_cols: 3 cards: - - type: vertical-stack - title: Hallway - cards: - - type: horizontal-stack - cards: - - type: custom:button-card - template: default - entity: light.hallway - name: Hallway - - type: custom:button-card - template: default - entity: light.hallway_entrance - name: Entrance - - type: custom:button-card - template: default - entity: light.hallway_main - name: Main - - - type: horizontal-stack - title: "Sensors" - cards: - - type: custom:button-card - template: default - entity: binary_sensor.front_door - name: Front door - - type: custom:button-card - template: [default, with_state_indicator] - entity: group.hallway_motion - name: Motion - variables: - state_indicator_id: automation.lighting_hallway_motion_on - - type: custom:button-card - template: [regular, progress] - entity: sensor.hallway_motion_illuminance - name: Lux - variables: - min_value: 0 - max_value: 1000 - normal_value: 1000 - - type: vertical-stack cards: - type: custom:decluttering-card - template: climate_card + template: v3_title variables: - - title: "Climate" - - main_entity: sensor.hallway_weather_temperature - - left_entity: sensor.hallway_weather_humidity - - right_entity: sensor.hallway_weather_pressure + - title: Hallway + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_badge_temp + entity: sensor.hallway_weather_temperature + - type: custom:button-card + template: v3_badge_humidity + entity: sensor.hallway_weather_humidity + - type: custom:button-card + template: v3_badge_icon + entity: binary_sensor.hallway_motion_occupancy + - type: custom:button-card + template: v3_badge_icon + entity: binary_sensor.front_door + + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Lights + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_button_light + entity: light.hallway + name: All + - type: custom:button-card + template: v3_button_light + entity: light.hallway_main + name: Main + - type: custom:button-card + template: v3_button_light + entity: light.hallway_entrance + name: Entrance diff --git a/config/lovelace/home_dashboard/kitchen_dashboard.yaml b/config/lovelace/home_dashboard/kitchen_dashboard.yaml index 96541ed..e3ee282 100644 --- a/config/lovelace/home_dashboard/kitchen_dashboard.yaml +++ b/config/lovelace/home_dashboard/kitchen_dashboard.yaml @@ -1,6 +1,11 @@ - type: custom:mod-card style: layout-card: + .: | + * { + --primary-color: #58892D + } + $: horizontal-layout: $: @@ -9,72 +14,4 @@ margin: 0 20px; grid-gap: 20px; } - card: - type: custom:layout-card - layout_type: custom:horizontal-layout - layout: - max_cols: 2 - cards: - - type: vertical-stack - title: Kitchen - cards: - - type: horizontal-stack - cards: - - type: custom:button-card - template: default - entity: light.kitchen - name: Kitchen - - type: custom:button-card - template: default - entity: light.kitchen_main - name: Main - - type: custom:button-card - template: default - entity: light.kitchen_secondary - name: Secondary - - type: vertical-stack - cards: - - type: custom:button-card - template: half - entity: light.hallway_entrance - name: Entrance - - type: custom:button-card - template: half - entity: light.hallway_main - name: Hallway - styles: - card: - - height: 46px - - - type: horizontal-stack - title: Devices - cards: - - type: custom:button-card - template: brita_water - - type: custom:button-card - template: radiator_button - entity: climate.kitchen_radiator_mode - - type: custom:button-card - template: default - entity: vacuum.vacuum - name: Vacuum - - type: custom:button-card - template: default - entity: binary_sensor.kitchen_window - name: Window - - - type: custom:decluttering-card - template: media_with_controls - variables: - - player: media_player.kitchen - - player_name: Kitchen - - - type: vertical-stack - cards: - - type: custom:decluttering-card - template: climate_card - variables: - - title: "Climate" - - main_entity: sensor.kitchen_weather_temperature - - left_entity: sensor.kitchen_weather_humidity - - right_entity: sensor.kitchen_weather_pressure + card: !include kitchen_dashboard_card.yaml diff --git a/config/lovelace/home_dashboard/kitchen_dashboard_card.yaml b/config/lovelace/home_dashboard/kitchen_dashboard_card.yaml new file mode 100644 index 0000000..f8af2f3 --- /dev/null +++ b/config/lovelace/home_dashboard/kitchen_dashboard_card.yaml @@ -0,0 +1,70 @@ +type: custom:layout-card +layout_type: custom:horizontal-layout +layout: + max_cols: 3 +cards: + - type: vertical-stack + cards: + - type: custom:decluttering-card + template: v3_title + variables: + - title: Kitchen + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_badge_temp + entity: sensor.kitchen_weather_temperature + - type: custom:button-card + template: v3_badge_humidity + entity: sensor.kitchen_weather_humidity + - type: custom:button-card + template: v3_badge_icon + entity: binary_sensor.kitchen_motion_occupancy + - type: custom:button-card + template: v3_badge_icon + entity: binary_sensor.kitchen_window + + + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Lights + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_button_light + entity: light.kitchen + name: All + - type: custom:button-card + template: v3_button_light + entity: light.kitchen_main + name: Main + - type: custom:button-card + template: v3_button_light + entity: light.kitchen_secondary + name: Secondary + + - type: vertical-stack + cards: + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Devices + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_button_brita_water + - type: custom:button-card + template: v3_button_radiator + entity: climate.kitchen_radiator_mode + name: Radiator + - type: custom:button-card + template: v3_button + entity: vacuum.vacuum + name: Vacuum + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_button + entity: media_player.kitchen + name: Sonos diff --git a/config/lovelace/home_dashboard/living_room_dashboard.yaml b/config/lovelace/home_dashboard/living_room_dashboard.yaml index 6c3feb4..5d7c038 100644 --- a/config/lovelace/home_dashboard/living_room_dashboard.yaml +++ b/config/lovelace/home_dashboard/living_room_dashboard.yaml @@ -1,6 +1,11 @@ - type: custom:mod-card style: layout-card: + .: | + * { + --primary-color: #0040A0 + } + $: horizontal-layout: $: @@ -16,137 +21,127 @@ max_cols: 3 cards: - type: vertical-stack - title: Living room cards: + - type: custom:decluttering-card + template: v3_title + variables: + - title: Living room - type: horizontal-stack cards: - type: custom:button-card - template: default - entity: light.living_room - name: Living room + template: v3_badge_temp + entity: sensor.multisensor_6_temperature - type: custom:button-card - template: default - entity: light.living_room_main - name: Main + template: v3_badge_humidity + entity: sensor.multisensor_6_relative_humidity - type: custom:button-card - template: default - entity: light.pc - name: PC - - type: custom:button-card - template: default - entity: light.living_room_ambient - name: Ambient - - type: vertical-stack - cards: - - type: custom:button-card - template: half - entity: light.living_room_ambient_main - name: Main - - type: custom:button-card - template: half - entity: light.light_avatar_small_1 - name: Secondary - styles: - card: - - height: 46px - - type: horizontal-stack + template: v3_badge_icon + entity: binary_sensor.living_room_right_window + + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Scenes + - type: vertical-stack cards: - type: custom:button-card - template: [small, scene] + template: v3_scene entity: scene.living_room_ambient_neon name: Neon variables: - scene_color_1: rgb(255, 0, 190) - scene_color_2: rgb(0, 255, 190) + scene_color_1: rgba(255, 0, 190, 0.7) + scene_color_2: rgba(0, 255, 190, 0.7) - type: custom:button-card - template: [small, scene] + template: v3_scene entity: scene.living_room_ambient_default - name: Regular + name: Warm variables: - scene_color_1: rgb(254, 255, 209) + scene_color_1: rgba(240, 240, 190, 0.7) + scene_color_2: rgba(255, 210, 170, 0.7) + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Lights - type: horizontal-stack - title: Devices cards: - type: custom:button-card - template: [default, cover] + template: v3_button_light + entity: light.living_room + name: All + - type: custom:button-card + template: v3_button_light + entity: light.living_room_main + name: Main + - type: custom:button-card + template: v3_button_light + entity: light.pc + name: PC + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_button_light + entity: light.living_room_ambient + name: Ambient + - type: custom:button-card + template: v3_button_light + entity: light.living_room_ambient_main + name: Ambient Main + - type: custom:button-card + template: v3_button + entity: light.light_avatar_small_1 + name: Ambient 2nd + + - type: vertical-stack + cards: + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: "Devices" + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_button + entity: media_player.living_room + name: Sonos + - type: custom:button-card + template: v3_button_tv + entity: media_player.living_room_tv + name: TV + - type: custom:button-card + template: v3_button_cover entity: cover.living_room - name: Cover + name: Blinds tap_action: action: call-service service: script.toggle_living_room_cover - - type: custom:button-card - template: radiator_button - entity: climate.living_room_radiator_mode - - type: custom:button-card - template: ac_button - - type: custom:button-card - template: default - entity: binary_sensor.living_room_right_window - name: Window + - type: horizontal-stack cards: - type: custom:button-card - template: default - entity: media_player.living_room_tv - name: TV - icon: mdi:television + template: v3_button_radiator + entity: climate.living_room_radiator_mode + name: Radiator + - type: custom:button-card + template: v3_button_ac + entity: climate.toshiba_ac + name: AC tap_action: - action: toggle - state: - - value: 'playing' - styles: &on_styles - card: - - background-color: var(--primary-color) - - color: black - icon: - - color: black - - value: 'standby' - styles: *on_styles - - value: 'on' - styles: *on_styles - - value: 'home' - styles: *on_styles - - value: 'idle' - styles: *on_styles - - type: custom:button-card - template: [default, with_state_indicator] - entity: switch.titanium - variables: - state_indicator_id: automation.titanium_turn_off_when_idle + action: call-service + service: script.toshiba_ac_toggle - type: custom:button-card - template: [regular, progress] - entity: sensor.desk_outlet_power - name: Desk power + template: v3_button_power + entity: switch.desk_outlet + name: Desk Outlet variables: - min_value: 1 - max_value: 800 - normal_value: 100 - high_value: 300 + power_sensor: sensor.desk_outlet_power - - type: vertical-stack - cards: - - type: custom:decluttering-card - template: climate_card - variables: - - title: "Climate" - - main_entity: sensor.multisensor_6_temperature - - left_entity: sensor.multisensor_6_relative_humidity - - left_name: Humidity (6) - - right_entity: sensor.multisensor_6_luminance - - right_name: Luminance (6) - - - - type: vertical-stack - cards: - - type: custom:decluttering-card - template: media_with_controls - variables: - - player: media_player.living_room - - player_name: Living room - type: vertical-stack - title: Camera cards: + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Camera - type: picture-glance camera_image: camera.mercury_amcrest_1 entities: [] diff --git a/config/lovelace/home_dashboard/main_dashboard.yaml b/config/lovelace/home_dashboard/main_dashboard.yaml deleted file mode 100644 index dc565fc..0000000 --- a/config/lovelace/home_dashboard/main_dashboard.yaml +++ /dev/null @@ -1,271 +0,0 @@ -- type: custom:mod-card - style: - layout-card: - $: - horizontal-layout: - $: - .: | - #columns { - margin: 0 20px; - grid-gap: 20px; - } - card: - type: custom:layout-card - layout_type: custom:horizontal-layout - layout: - max_cols: 3 - cards: - # Column 1 - - type: vertical-stack - cards: - - type: vertical-stack - title: Lights - cards: - - type: horizontal-stack - cards: - - type: custom:button-card - template: half - icon: none - entity: light.all - name: All - - type: custom:button-card - template: half - icon: none - entity: light.ceiling - name: Ceiling - - type: horizontal-stack - cards: - - type: custom:button-card - template: default - entity: light.living_room - name: Living room - - type: custom:button-card - template: default - entity: light.living_room_main - name: Main - - type: custom:button-card - template: default - entity: light.pc - - type: custom:button-card - template: default - entity: light.living_room_ambient - name: Ambient - - type: horizontal-stack - cards: - - type: custom:button-card - template: default - entity: light.master_bedroom - name: Bedroom - - type: custom:button-card - template: default - entity: light.master_bedroom_main - name: Main - - type: custom:button-card - template: default - entity: light.bed_led - name: Bed - tap_action: - action: call-service - service: script.bed_led_toggle - - type: custom:button-card - template: default - entity: light.bedside - name: Bedside - - type: horizontal-stack - cards: - - type: custom:button-card - template: default - entity: light.kitchen - name: Kitchen - - type: custom:button-card - template: default - entity: light.hallway_main - name: Hallway - - type: custom:button-card - template: default - entity: light.hallway_entrance - name: Entrance - - type: vertical-stack - title: Climate - cards: - - type: horizontal-stack - cards: - - type: custom:button-card - template: [regular, progress] - entity: sensor.average_temperature - icon: mdi:thermometer - state_display: "[[[ return Math.round(entity.state) + ' °C' ]]]" - - type: custom:button-card - template: [regular, progress] - entity: sensor.average_humidity - icon: mdi:water-percent - state_display: "[[[ return Math.round(entity.state) + ' %' ]]]" - variables: - min_value: 25 - max_value: 90 - normal_value: 40 - high_value: 65 - low_color: "var(--color-red)" - - # Column 2 - - type: vertical-stack - cards: - - type: vertical-stack - cards: - - type: vertical-stack - title: Devices - cards: - - type: horizontal-stack - cards: - - type: custom:button-card - template: [default, cover] - entity: cover.living_room - name: LR Cover - tap_action: - action: call-service - service: script.toggle_living_room_cover - - type: custom:button-card - template: regular - entity: media_player.living_room_tv - name: TV - icon: mdi:television - tap_action: - action: toggle - state: - - value: 'playing' - styles: &on_styles - card: - - background-color: var(--primary-color) - - color: black - icon: - - color: black - - value: 'standby' - styles: *on_styles - - value: 'on' - styles: *on_styles - - value: 'home' - styles: *on_styles - - value: 'idle' - styles: *on_styles - - - type: custom:button-card - template: [default, with_state_indicator] - entity: switch.titanium - variables: - state_indicator_id: automation.titanium_turn_off_when_idle - - - type: custom:button-card - template: default - entity: binary_sensor.pi_hole_enabled - name: Pi-Hole - icon: mdi:pi-hole - - - type: horizontal-stack - cards: - - type: custom:button-card - template: ac_button - - type: custom:button-card - template: radiator_button - entity: climate.living_room_radiator_mode - name: "Living room" - - type: custom:button-card - template: radiator_button - entity: climate.bedroom_radiator_mode - name: "Bedroom" - - type: custom:button-card - template: radiator_button - entity: climate.kitchen_radiator_mode - name: "Kitchen" - - type: horizontal-stack - cards: - - type: custom:button-card - template: default - entity: camera.mercury_amcrest_1 - name: Living Room - - type: custom:button-card - template: default - entity: switch.tapo_bedroom - name: Bedroom - - type: custom:button-card - template: [default, with_state_indicator] - entity: fan.philips_airpurifier - variables: - state_indicator_id: binary_sensor.purifier_filter_needs_change - state_indicator_size: 5px - state_indicator_off_size: 0px - state_indicator_on_color: var(--color-red) - state_on_indicator_on_color: var(--color-red) - - type: custom:button-card - template: default - entity: vacuum.vacuum - name: Vacuum - - type: custom:button-card - template: brita_water - - - type: vertical-stack - title: Sensors - cards: - - type: horizontal-stack - cards: - - type: custom:button-card - template: default - entity: binary_sensor.living_room_right_window - name: Living room - - type: custom:button-card - template: default - entity: binary_sensor.bedroom_left_window - name: Bedroom left - - type: custom:button-card - template: default - entity: binary_sensor.bedroom_right_window - name: Bedroom right - - type: custom:button-card - template: default - entity: binary_sensor.kitchen_window - name: Kitchen - - type: horizontal-stack - cards: - - type: custom:button-card - template: default - entity: binary_sensor.georgi_home - tap_action: - action: call-service - service: input_boolean.toggle - service_data: - entity_id: input_boolean.georgi_home - - type: custom:button-card - template: default - entity: binary_sensor.front_door - - type: custom:button-card - template: default - entity: binary_sensor.bedroom_door - - - # Column 3 - - type: vertical-stack - cards: - - type: vertical-stack - cards: - - type: custom:decluttering-card - template: media_with_controls - variables: - - player: media_player.master_bedroom - - player_name: Bedroom - - - type: custom:decluttering-card - template: sonos_media_player_small - variables: - - player: media_player.living_room - - name: Living room - - - type: custom:decluttering-card - template: sonos_media_player_small - variables: - - player: media_player.kitchen - - name: Kitchen - - - type: custom:decluttering-card - template: sonos_media_player_small - variables: - - player: media_player.bathroom - - name: Bathroom diff --git a/config/lovelace/home_dashboard/preferences_dashboard.yaml b/config/lovelace/home_dashboard/preferences_dashboard.yaml index 8e78574..186198e 100644 --- a/config/lovelace/home_dashboard/preferences_dashboard.yaml +++ b/config/lovelace/home_dashboard/preferences_dashboard.yaml @@ -1,6 +1,11 @@ - type: custom:mod-card style: layout-card: + .: | + * { + --primary-color: #6A737A + } + $: horizontal-layout: $: @@ -13,78 +18,99 @@ type: custom:layout-card layout_type: custom:horizontal-layout layout: - max_cols: 2 + max_cols: 3 cards: - type: vertical-stack - title: Temperature cards: - - type: entities - show_header_toggle: false - entities: - - input_boolean.heating_enabled - - input_number.radiators_temperature - - script.turn_on_all_radiators - - type: divider - - input_boolean.ac_heating - - input_number.toshiba_heat_temp - - input_number.toshiba_cool_temp - - input_number.toshiba_trigger_temp - - type: entities - entities: - - input_number.bathroom_high_volume + - type: custom:decluttering-card + template: v3_title + variables: + - title: Preferences - - type: vertical-stack - title: Controls - cards: - type: horizontal-stack cards: - type: custom:button-card - template: [default, with_state_indicator, with_state_background] + template: [v3_button, with_state_indicator] entity: input_boolean.alarm_enabled state_display: >- [[[ + if (entity.state === 'off') { return 'Off'; } const time = states['input_datetime.alarm_time'].state; return time.split(':').slice(0, -1).join(':'); ]]] - show_state: true - show_name: false - styles: - icon: - - transform: translateY(0) # adjusted for state indicator size - state: - - transform: translateY(-8px) # adjusted for state indicator size + name: Alarm variables: state_indicator_id: automation.alarm_set_time - type: custom:button-card - template: default + template: v3_button entity: input_boolean.speech_notifications name: Speech - type: custom:button-card - template: default - entity: binary_sensor.house_mode + template: v3_button + entity: input_select.house_mode name: House tap_action: action: call-service service: input_select.select_next service_data: entity_id: input_select.house_mode - - type: custom:button-card - template: default - name: Guests - entity: input_boolean.guest_mode - type: horizontal-stack cards: - type: custom:button-card - template: default + template: v3_button + name: Guests + entity: input_boolean.guest_mode + - type: custom:button-card + template: v3_button entity: input_boolean.simulation_mode name: Simulation - type: custom:button-card - template: default + template: v3_button entity: switch.mercury_home_mode name: Mercury + - type: horizontal-stack + cards: - type: custom:button-card - template: default + template: v3_button entity: binary_sensor.pi_hole_enabled name: Pi-Hole icon: mdi:pi-hole + + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Media + - type: entities + entities: + - input_number.bathroom_high_volume + + - type: vertical-stack + cards: + - type: custom:decluttering-card + template: v3_section_title + variables: + - title: Climate + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_button + entity: input_boolean.heating_enabled + name: Central Heating + - type: custom:button-card + template: v3_button + entity: input_boolean.ac_heating + name: AC Heating + - type: custom:button-card + template: v3_button + entity: script.turn_on_all_radiators + name: Turn On Radiators + + - type: entities + show_header_toggle: false + entities: + - input_number.radiators_temperature + - type: divider + - input_number.toshiba_heat_temp + - input_number.toshiba_cool_temp + - input_number.toshiba_trigger_temp diff --git a/config/lovelace/popup_cards.yaml b/config/lovelace/popup_cards.yaml index c06fbf5..a8af9e4 100644 --- a/config/lovelace/popup_cards.yaml +++ b/config/lovelace/popup_cards.yaml @@ -1,10 +1,15 @@ binary_sensor.house_mode: title: House mode - style: &popup_style - "--ha-card-border-radius": 0 0 0.8em 0.8em - border-radius: 0.8em - opacity: 0.95 - width: 500px + style: &popup_style | + ha-dialog { + --mdc-dialog-min-width: 400px !important; + --mdc-dialog-max-width: 500px !important; + } + + .content { + width: auto !important; + } + card: type: entities entities: @@ -79,38 +84,45 @@ binary_sensor.camera_state: show_name: true show_state: true -media_player.kitchen: - title: Kitchen Sonos - style: *popup_style +media_player.living_room: + title: Living room Sonos card: type: custom:decluttering-card - template: sonos_media_player + template: v3_media_with_controls + variables: + - player: media_player.living_room + - player_name: Living room + - title: "" + +media_player.kitchen: + title: Kitchen Sonos + card: + type: custom:decluttering-card + template: v3_media_with_controls variables: - player: media_player.kitchen - - name: Kitchen - - sync_volume: false + - player_name: Kitchen + - title: "" media_player.bathroom: title: Bathroom Sonos - style: *popup_style card: type: custom:decluttering-card - template: sonos_media_player + template: v3_media_with_controls variables: - player: media_player.bathroom - - name: Bathroom - - sync_volume: false + - player_name: Bathroom + - title: "" media_player.master_bedroom: - title: Master bedroom Sonos - style: *popup_style + title: Bedroom Sonos card: type: custom:decluttering-card - template: sonos_media_player + template: v3_media_with_controls variables: - player: media_player.master_bedroom - - name: Bedroom - - sync_volume: false + - player_name: Bedroom + - title: "" media_player.nvidia_shield: &nvidia_shield title: TV @@ -150,20 +162,21 @@ media_player.nvidia_shield: &nvidia_shield action: call-service service: script.tv_bulsatcom_toggle - - type: "custom:mini-media-player" + - type: custom:mini-media-player entity: media_player.nvidia_shield - - type: "custom:mini-media-player" + - type: custom:mini-media-player entity: media_player.living_room_tv - type: custom:decluttering-card template: sonos_media_player variables: - player: media_player.living_room - - name: Living room + - name: Sonos - sync_volume: false - type: horizontal-stack + title: Remotes cards: - type: custom:decluttering-card template: hdmi_switch_remote_card @@ -172,23 +185,112 @@ media_player.nvidia_shield: &nvidia_shield media_player.living_room_tv: *nvidia_shield -light.living_room_main: - title: Living room lights - style: *popup_style + +sensor.active_motion_sensors: + title: Active motion sensors card: - type: custom:mod-card - card: - type: custom:light-popup-card - entity: light.living_room_main - fullscreen: false - supportedFeaturesTreshold: -1 - actionsInARow: 2 - actions: - - service: light.toggle - service_data: - entity_id: light.living_room_main - color: "#ffffcc" - name: Toggle + type: vertical-stack + cards: + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_button + entity: binary_sensor.hallway_motion_occupancy + name: Hallway Entrance + styles: + card: + - margin-left: 8px + variables: + background_color: rgba(60, 60, 60, 1) + - type: custom:button-card + template: v3_button + entity: binary_sensor.trisensor_motion + name: Hallway + variables: + background_color: rgba(60, 60, 60, 1) + - type: custom:button-card + template: v3_button + entity: binary_sensor.multisensor_motion + name: Living Room + variables: + background_color: rgba(60, 60, 60, 1) + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_button + entity: binary_sensor.kitchen_motion_occupancy + name: Kitchen + styles: + card: + - margin-left: 8px + - margin-bottom: 8px + variables: + background_color: rgba(60, 60, 60, 1) + + +sensor.open_door_count: + title: Open doors + card: + type: vertical-stack + cards: + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_button + entity: binary_sensor.front_door + styles: + card: + - margin-left: 8px + - margin-bottom: 8px + variables: + background_color: rgba(60, 60, 60, 1) + - type: custom:button-card + template: v3_button + entity: binary_sensor.bedroom_door + name: Bedroom + variables: + background_color: rgba(60, 60, 60, 1) + +sensor.open_window_count: + title: Open windows + card: + type: vertical-stack + cards: + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_button + entity: binary_sensor.living_room_right_window + name: Living Room + styles: + card: + - margin-left: 8px + variables: + background_color: rgba(60, 60, 60, 1) + - type: custom:button-card + template: v3_button + entity: binary_sensor.bedroom_left_window + name: Bedroom Left + variables: + background_color: rgba(60, 60, 60, 1) + - type: custom:button-card + template: v3_button + entity: binary_sensor.bedroom_right_window + name: Bedroom Right + variables: + background_color: rgba(60, 60, 60, 1) + - type: horizontal-stack + cards: + - type: custom:button-card + template: v3_button + entity: binary_sensor.kitchen_window + name: Kitchen + styles: + card: + - margin-left: 8px + - margin-bottom: 8px + variables: + background_color: rgba(60, 60, 60, 1) sensor.bedroom_weather_temperature: title: Bedroom climate diff --git a/config/lovelace/resources.yaml b/config/lovelace/resources.yaml index d66a8c6..860f2b1 100644 --- a/config/lovelace/resources.yaml +++ b/config/lovelace/resources.yaml @@ -14,8 +14,6 @@ type: module - url: /hacsfiles/decluttering-card/decluttering-card.js type: module -- url: /hacsfiles/lovelace-gui-sandbox/gui-sandbox.js - type: module - url: /hacsfiles/hass-bha-icons/hass-bha-icons.js type: module - url: /hacsfiles/kiosk-mode/kiosk-mode.js @@ -46,6 +44,8 @@ type: module - url: /hacsfiles/kb-better-graph-colors/kb-better-graph-colors.js type: module +- url: /hacsfiles/lovelace-swipe-navigation/swipe-navigation.js + type: module - url: /hacsfiles/lovelace-template-entity-row/template-entity-row.js type: module - url: /hacsfiles/travel-time-card/travel-time-card.js diff --git a/config/packages/devices/bedroom/purifier.yaml b/config/packages/devices/bedroom/purifier.yaml index 6f436e1..1602d37 100644 --- a/config/packages/devices/bedroom/purifier.yaml +++ b/config/packages/devices/bedroom/purifier.yaml @@ -272,7 +272,7 @@ automation: entity_id: fan.philips_airpurifier state: "off" - condition: state - entity_id: input_boolean.georgi_home + entity_id: input_boolean.someone_home state: "on" action: - service: fan.turn_on @@ -299,7 +299,7 @@ automation: condition: and conditions: - condition: state - entity_id: input_boolean.georgi_home + entity_id: input_boolean.someone_home state: "on" - condition: state entity_id: fan.philips_airpurifier diff --git a/config/packages/devices/hallway/hallway_tablet.yaml b/config/packages/devices/hallway/hallway_tablet.yaml index 120b2a1..5c5b528 100644 --- a/config/packages/devices/hallway/hallway_tablet.yaml +++ b/config/packages/devices/hallway/hallway_tablet.yaml @@ -11,7 +11,7 @@ automation: - alias: "Hallway tablet · Set to home after 10 minutes" trigger: platform: state - entity_id: binary_sensor.georgi_home + entity_id: binary_sensor.someone_home to: "on" for: minutes: 10 diff --git a/config/packages/devices/kitchen/brita_filter.yaml b/config/packages/devices/kitchen/brita_filter.yaml index eb771d8..1c3676e 100644 --- a/config/packages/devices/kitchen/brita_filter.yaml +++ b/config/packages/devices/kitchen/brita_filter.yaml @@ -47,7 +47,7 @@ script: - service: input_number.set_value entity_id: input_number.brita_remaining_liters data: - value: 150 + value: 100 - service: input_datetime.set_datetime entity_id: input_datetime.brita_next_change data_template: diff --git a/config/packages/devices/living_room/toshiba_ac.yaml b/config/packages/devices/living_room/toshiba_ac.yaml index 82821f7..4266603 100644 --- a/config/packages/devices/living_room/toshiba_ac.yaml +++ b/config/packages/devices/living_room/toshiba_ac.yaml @@ -128,7 +128,7 @@ script: entity_id: sensor.dark_sky_apparent_temperature above: 23 - condition: state - entity_id: input_boolean.georgi_home + entity_id: input_boolean.someone_home state: "on" - condition: state entity_id: binary_sensor.living_room_right_window diff --git a/config/packages/devices/living_room/tv.yaml b/config/packages/devices/living_room/tv.yaml index 59b1c1e..a85b3e4 100644 --- a/config/packages/devices/living_room/tv.yaml +++ b/config/packages/devices/living_room/tv.yaml @@ -144,6 +144,7 @@ automation: action: - service: media_player.turn_on entity_id: media_player.living_room_tv + - delay: "00:00:15" - service: media_player.select_source entity_id: media_player.living_room_tv data: diff --git a/config/packages/modules/climate/radiators.yaml b/config/packages/modules/climate/radiators.yaml index e40ad3b..c5670d8 100644 --- a/config/packages/modules/climate/radiators.yaml +++ b/config/packages/modules/climate/radiators.yaml @@ -7,7 +7,6 @@ input_number: radiators_temperature: name: Radiators target temperature unit_of_measurement: "°C" - mode: box min: 22 max: 27 step: 0.5 @@ -31,7 +30,7 @@ script: entity_id: input_boolean.heating_enabled state: "on" - condition: state - entity_id: binary_sensor.georgi_home + entity_id: binary_sensor.someone_home state: "on" - service: climate.turn_on data_template: @@ -66,7 +65,7 @@ script: entity_id: input_boolean.heating_enabled state: "on" - condition: state - entity_id: binary_sensor.georgi_home + entity_id: binary_sensor.someone_home state: "on" - service: script.maybe_turn_radiator_on data: diff --git a/config/packages/modules/lighting/areas/bedroom.yaml b/config/packages/modules/lighting/areas/bedroom.yaml index 0c47b68..e622677 100644 --- a/config/packages/modules/lighting/areas/bedroom.yaml +++ b/config/packages/modules/lighting/areas/bedroom.yaml @@ -38,6 +38,22 @@ script: entity_id: scene.bedroom_ambient_pink scene: + - name: Bedroom Neon + icon: "mdi:weather-night" + entities: + light.master_bedroom_main: + state: 'on' + xy_color: [0.66, 0.28] + brightness: 254 + light.bedside: + state: "on" + rgb_color: [0, 255, 190] + brightness: 230 + light.bed_led: + state: "on" + xy_color: [0.66, 0.28] + brightness: 254 + - name: Bedroom Ambient Neon icon: "mdi:weather-night" entities: @@ -50,6 +66,22 @@ scene: xy_color: [0.66, 0.28] brightness: 254 + - name: Bedroom Pink + icon: "mdi:weather-night" + entities: + light.master_bedroom_main: + state: "on" + rgb_color: [255, 36, 145] + brightness: 114 + light.bedside: + state: "on" + rgb_color: [255, 36, 145] + brightness: 230 + light.bed_led: + state: "on" + xy_color: [0.66, 0.28] + brightness: 254 + - name: Bedroom Ambient Pink icon: "mdi:weather-night" entities: diff --git a/config/packages/modules/lighting/areas/hallway.yaml b/config/packages/modules/lighting/areas/hallway.yaml index 83ff277..9f54735 100644 --- a/config/packages/modules/lighting/areas/hallway.yaml +++ b/config/packages/modules/lighting/areas/hallway.yaml @@ -6,7 +6,7 @@ automation: to: "on" condition: condition: state - entity_id: binary_sensor.georgi_home + entity_id: binary_sensor.someone_home state: "on" action: - choose: diff --git a/config/packages/modules/lighting/areas/kitchen.yaml b/config/packages/modules/lighting/areas/kitchen.yaml index 0ef0fc3..981ce37 100644 --- a/config/packages/modules/lighting/areas/kitchen.yaml +++ b/config/packages/modules/lighting/areas/kitchen.yaml @@ -6,7 +6,7 @@ automation: to: "on" condition: condition: state - entity_id: binary_sensor.georgi_home + entity_id: binary_sensor.someone_home state: "on" action: - choose: diff --git a/config/packages/modules/lighting/schedule.yaml b/config/packages/modules/lighting/schedule.yaml index 3aa0299..ece5c30 100644 --- a/config/packages/modules/lighting/schedule.yaml +++ b/config/packages/modules/lighting/schedule.yaml @@ -6,7 +6,7 @@ automation: offset: "-00:30:00" condition: - condition: state - entity_id: binary_sensor.georgi_home + entity_id: binary_sensor.someone_home state: "on" action: - service: light.turn_on diff --git a/config/packages/modules/lighting/setup/groups.yaml b/config/packages/modules/lighting/setup/groups.yaml index 3503e11..b108c29 100644 --- a/config/packages/modules/lighting/setup/groups.yaml +++ b/config/packages/modules/lighting/setup/groups.yaml @@ -255,7 +255,7 @@ homeassistant: icon: mdi:ceiling-light light.living_room_main: - icon: bha:ceiling-lamp-plafond + icon: bha:ceiling-spot-lamp light.pc: friendly_name: PC @@ -273,23 +273,23 @@ homeassistant: light.master_bedroom_main: friendly_name: Bedroom main - icon: bha:ceiling-lamp-plafond + icon: bha:ceiling-spot-lamp light.bedside: icon: mdi:desk-lamp # Kitchen light.kitchen_main: - icon: bha:ceiling-lamp-plafond + icon: bha:ceiling-spot-lamp light.kitchen_secondary: - icon: bha:ceiling-lamp-plafond + icon: bha:ceiling-spot-lamp # Hallway light.hallway: icon: mdi:lightbulb-group light.hallway_entrance: - icon: bha:ceiling-lamp-plafond + icon: bha:ceiling-spot-lamp light.hallway_main: - icon: bha:ceiling-lamp-plafond + icon: bha:ceiling-spot-lamp diff --git a/config/packages/modules/network.yaml b/config/packages/modules/network.yaml index 3f18ea9..036a593 100644 --- a/config/packages/modules/network.yaml +++ b/config/packages/modules/network.yaml @@ -26,40 +26,52 @@ homekit: filter: include_entities: # Living Room + - light.living_room - light.living_room_main - light.living_room_ambient - light.pc - binary_sensor.living_room_right_window - - sensor.multisensor_6_temperature - - sensor.multisensor_6_relative_humidity + - camera.mercury_amcrest_1 + - climate.living_room_radiator_mode - climate.toshiba_ac - - switch.desk_outlet - - switch.titanium - - sensor.living_room_radiator_temperature + - cover.living_room + - media_player.living_room + - media_player.living_room_tv - media_player.nvidia_shield + - scene.living_room_ambient_neon + - sensor.living_room_radiator_temperature + - sensor.multisensor_6_relative_humidity + - sensor.multisensor_6_temperature + - switch.desk_outlet # Bedroom + - light.master_bedroom - light.master_bedroom_main - light.bedside - light.bed_led - - sensor.bedroom_weather_temperature - - sensor.bedroom_weather_humidity - - fan.philips_airpurifier - - sensor.purifier_air_quality - - sensor.purifier_allergens - binary_sensor.bedroom_door - binary_sensor.bedroom_left_window - binary_sensor.bedroom_right_window + - camera.bedroom_hd + - climate.bedroom_radiator_mode + - fan.philips_airpurifier - media_player.master_bedroom + - sensor.bedroom_weather_humidity + - sensor.bedroom_weather_temperature + - sensor.purifier_air_quality + - sensor.purifier_allergens # Kitchen + - light.kitchen - light.kitchen_main - light.kitchen_secondary - climate.kitchen_radiator_mode - binary_sensor.kitchen_motion_occupancy - binary_sensor.kitchen_window - - sensor.kitchen_weather_temperature + - input_number.brita_remaining_liters + - script.brita_pour_water - sensor.kitchen_weather_humidity + - sensor.kitchen_weather_temperature - vacuum.vacuum # Bathroom @@ -67,6 +79,7 @@ homekit: - sensor.bathroom_weather_humidity # Hallway + - light.hallway - light.hallway_entrance - light.hallway_main - group.hallway_motion diff --git a/config/packages/modules/presence.yaml b/config/packages/modules/presence.yaml index 8725832..91270ef 100644 --- a/config/packages/modules/presence.yaml +++ b/config/packages/modules/presence.yaml @@ -84,13 +84,6 @@ binary_sensor: device_class: motion value_template: "{{ is_state('sensor.multisensor_6_burglar', '8') }}" -group: - hallway_motion: - name: Hallway Motion - entities: - - binary_sensor.hallway_motion_occupancy - - binary_sensor.trisensor_motion - sensor: - platform: history_stats name: Quarantined percent diff --git a/config/packages/modules/speech.yaml b/config/packages/modules/speech.yaml index c865e1b..3eaab12 100644 --- a/config/packages/modules/speech.yaml +++ b/config/packages/modules/speech.yaml @@ -56,7 +56,7 @@ script: {% if (is_state('media_player.master_bedroom', 'playing') and is_state('binary_sensor.sonos_recoverable', 'off')) or is_state('input_boolean.speech_notifications', 'off') - or is_state('input_boolean.georgi_home', 'off') %} + or is_state('input_boolean.someone_home', 'off') %} notify.telegram {% else %} {% if is_state('media_player.master_bedroom', 'playing') diff --git a/config/packages/sensors/doors.yaml b/config/packages/sensors/doors.yaml index 3a040c5..29f956b 100644 --- a/config/packages/sensors/doors.yaml +++ b/config/packages/sensors/doors.yaml @@ -1,3 +1,10 @@ +group: + all_doors: + name: All doors + entities: + - binary_sensor.front_door + - binary_sensor.bedroom_door + sensor: - platform: mqtt name: "Bedroom door battery" @@ -31,6 +38,15 @@ sensor: unit_of_measurement: "lqi" value_template: "{{ value_json.linkquality }}" + - platform: template + sensors: + open_door_count: + friendly_name: Open door count + value_template: >- + {% set entityStates = states | selectattr('entity_id', 'in', state_attr('group.all_doors', 'entity_id')) %} + {{ entityStates | selectattr('state', 'eq', 'on') | list | count | int }} + + binary_sensor: - platform: mqtt name: "Bedroom door" diff --git a/config/packages/sensors/motion.yaml b/config/packages/sensors/motion.yaml index cd1c0d2..a812cb9 100644 --- a/config/packages/sensors/motion.yaml +++ b/config/packages/sensors/motion.yaml @@ -1,3 +1,18 @@ +group: + all_motion_sensors: + name: All motion_sensors + entities: + - binary_sensor.hallway_motion_occupancy + - binary_sensor.kitchen_motion_occupancy + - binary_sensor.multisensor_motion + - binary_sensor.trisensor_motion + + hallway_motion: + name: Hallway Motion + entities: + - binary_sensor.hallway_motion_occupancy + - binary_sensor.trisensor_motion + binary_sensor: - platform: mqtt name: "Hallway motion occupancy" @@ -60,3 +75,11 @@ sensor: icon: "mdi:signal" unit_of_measurement: "lqi" value_template: "{{ value_json.linkquality }}" + + - platform: template + sensors: + active_motion_sensors: + friendly_name: Active motion sensor count + value_template: >- + {% set entityStates = states | selectattr('entity_id', 'in', state_attr('group.all_motion_sensors', 'entity_id')) %} + {{ entityStates | selectattr('state', 'eq', 'on') | list | count | int }} diff --git a/config/ui-lovelace.yaml b/config/ui-lovelace.yaml index 6c181ee..19977c8 100644 --- a/config/ui-lovelace.yaml +++ b/config/ui-lovelace.yaml @@ -2,45 +2,54 @@ decluttering_templates: !include_dir_merge_named lovelace/decluttering_templates button_card_templates: !include_dir_merge_named lovelace/button_card_templates popup_cards: !include lovelace/popup_cards.yaml +swipe_nav: + swipe_amount: 30 + skip_tabs: 5 + +kiosk_mode: + hide_overflow: true + title: Home views: - - title: Home + - title: Living Room path: default_view - icon: "mdi:home" - panel: true - cards: !include lovelace/home_dashboard/main_dashboard.yaml - - title: Living room - path: living_room icon: "mdi:sofa" panel: true + background: 'center / cover no-repeat url("/local/images/wallpapers-3/living_room.jpg") #0040A0 fixed' cards: !include lovelace/home_dashboard/living_room_dashboard.yaml - - title: Master bedroom - path: master_bedroom + theme: sarah-noctis-grey + - title: Bedroom + path: bedroom icon: "mdi:bed-empty" panel: true + background: 'center / cover no-repeat url("/local/images/wallpapers-3/bedroom.jpg") #871CAB fixed' cards: !include lovelace/home_dashboard/bedroom_dashboard.yaml + theme: sarah-noctis-grey - title: Kitchen path: kitchen icon: "mdi:chef-hat" panel: true + background: 'center / cover no-repeat url("/local/images/wallpapers-3/kitchen_3.jpg") #58892D fixed' cards: !include lovelace/home_dashboard/kitchen_dashboard.yaml + theme: sarah-noctis-grey - title: Bathroom path: bathroom icon: "mdi:shower-head" panel: true + background: 'center / cover no-repeat url("/local/images/wallpapers-3/bathroom_2.jpg") #FF7900 fixed' cards: !include lovelace/home_dashboard/bathroom_dashboard.yaml + theme: sarah-noctis-grey - title: Hallway path: hallway icon: "mdi:door-closed" panel: true + background: 'center / cover no-repeat url("/local/images/wallpapers-3/hallway_2.jpg") #188A9C fixed' cards: !include lovelace/home_dashboard/hallway_dashboard.yaml + theme: sarah-noctis-grey - title: Preferences - path: preferences + path: Preferences icon: "mdi:cogs" panel: true + background: 'center / cover no-repeat url("/local/images/wallpapers-3/preferences.jpg") #6A737A fixed' cards: !include lovelace/home_dashboard/preferences_dashboard.yaml - - title: Cameras - path: cameras - icon: "mdi:webcam" - panel: true - cards: !include lovelace/home_dashboard/cameras_dashboard.yaml + theme: sarah-noctis-grey diff --git a/config/www/images/wallpapers-3/bathroom.jpg b/config/www/images/wallpapers-3/bathroom.jpg new file mode 100644 index 0000000..139b62c Binary files /dev/null and b/config/www/images/wallpapers-3/bathroom.jpg differ diff --git a/config/www/images/wallpapers-3/bathroom_2.jpg b/config/www/images/wallpapers-3/bathroom_2.jpg new file mode 100644 index 0000000..1006356 Binary files /dev/null and b/config/www/images/wallpapers-3/bathroom_2.jpg differ diff --git a/config/www/images/wallpapers-3/bedroom.jpg b/config/www/images/wallpapers-3/bedroom.jpg new file mode 100644 index 0000000..5114f53 Binary files /dev/null and b/config/www/images/wallpapers-3/bedroom.jpg differ diff --git a/config/www/images/wallpapers-3/hallway.jpg b/config/www/images/wallpapers-3/hallway.jpg new file mode 100644 index 0000000..e0452a0 Binary files /dev/null and b/config/www/images/wallpapers-3/hallway.jpg differ diff --git a/config/www/images/wallpapers-3/hallway_2.jpg b/config/www/images/wallpapers-3/hallway_2.jpg new file mode 100644 index 0000000..7803e09 Binary files /dev/null and b/config/www/images/wallpapers-3/hallway_2.jpg differ diff --git a/config/www/images/wallpapers-3/kitchen.jpg b/config/www/images/wallpapers-3/kitchen.jpg new file mode 100644 index 0000000..ae44e72 Binary files /dev/null and b/config/www/images/wallpapers-3/kitchen.jpg differ diff --git a/config/www/images/wallpapers-3/kitchen_2.jpg b/config/www/images/wallpapers-3/kitchen_2.jpg new file mode 100644 index 0000000..2742786 Binary files /dev/null and b/config/www/images/wallpapers-3/kitchen_2.jpg differ diff --git a/config/www/images/wallpapers-3/kitchen_3.jpg b/config/www/images/wallpapers-3/kitchen_3.jpg new file mode 100644 index 0000000..77bfb0e Binary files /dev/null and b/config/www/images/wallpapers-3/kitchen_3.jpg differ diff --git a/config/www/images/wallpapers-3/living_room.jpg b/config/www/images/wallpapers-3/living_room.jpg new file mode 100644 index 0000000..f4aa32b Binary files /dev/null and b/config/www/images/wallpapers-3/living_room.jpg differ diff --git a/config/www/images/wallpapers-3/living_room_2.jpg b/config/www/images/wallpapers-3/living_room_2.jpg new file mode 100644 index 0000000..f2a7ffb Binary files /dev/null and b/config/www/images/wallpapers-3/living_room_2.jpg differ diff --git a/config/www/images/wallpapers-3/preferences.jpg b/config/www/images/wallpapers-3/preferences.jpg new file mode 100644 index 0000000..b637677 Binary files /dev/null and b/config/www/images/wallpapers-3/preferences.jpg differ diff --git a/config/www/images/wallpapers-3/preferences_2.jpg b/config/www/images/wallpapers-3/preferences_2.jpg new file mode 100644 index 0000000..cf930b7 Binary files /dev/null and b/config/www/images/wallpapers-3/preferences_2.jpg differ