Update to the current version
Some checks failed
Savin's Home Assistant / build (push) Failing after 1m45s

This commit is contained in:
2025-05-11 16:06:31 -04:00
parent d45649f8b8
commit 26d86dec90
55 changed files with 10355 additions and 2245 deletions

View File

@ -0,0 +1,764 @@
---
#name: Home
#icon: mdi:home
title: Security
icon: mdi:shield-home
#panel: true
visible:
- user: 1614b22cbef54f979741cf8a6b3413ec # Alex
- user: 76e8af2547254ef0ab523ae1ad0bf81a # Tanya
cards:
- type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: custom:mushroom-chips-card
chips:
- type: template
icon: mdi:faucet-variant
icon_color: "{% if is_state('binary_sensor.presence_kitchen_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_kitchen_sensor_1
tap_action:
action: more-info
- type: template
icon: mdi:sofa
icon_color: "{% if is_state('binary_sensor.presence_living_room_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_living_room_sensor_1
tap_action:
action: more-info
- type: template
icon: mdi:bed-king
icon_color: "{% if is_state('binary_sensor.presence_bedroom_master_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_bedroom_master_sensor_1
tap_action:
action: more-info
- type: template
icon: mdi:bed
icon_color: "{% if is_state('binary_sensor.presence_bedroom_maxim_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_bedroom_maxim_sensor_1
tap_action:
action: more-info
- type: template
icon: mdi:bed
icon_color: "{% if is_state('binary_sensor.presence_bedroom_olivia_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_bedroom_olivia_sensor_1
tap_action:
action: more-info
- type: template
icon: mdi:stairs
icon_color: "{% if is_state('binary_sensor.presence_stairwell_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_stairwell_sensor_1
tap_action:
action: more-info
- type: template
icon: mdi:garage-variant
icon_color: "{% if is_state('binary_sensor.presence_garage_sensor_1', 'on') -%} #FFC107 {%- else -%} #44739E {%- endif %}"
entity: binary_sensor.presence_garage_sensor_1
tap_action:
action: more-info
- type: custom:bubble-card
entity: alarm_control_panel.home_alarm
card_type: button
button_type: name
name: Security
icon: mdi:shield-check
show_state: true
show_last_changed: true
sub_button:
- name: Doors
icon: mdi:door-open
show_state: false
show_background: true
tap_action:
action: navigate
navigation_path: '#popup-open-doors'
- name: Windows
icon: mdi:window-open
show_background: true
tap_action:
action: navigate
navigation_path: '#popup-open-windows'
- name: Lights
icon: mdi:lightbulb-group
tap_action:
action: navigate
navigation_path: '#popup-on-lights'
- name: Garage Cover
icon: mdi:garage-variant
entity: cover.garage_gate
tap_action:
confirmation:
text: open/Close a Garage Cover?
action: call-service
service: cover.toggle
target:
entity_id: cover.garage_gate
- name: Lock
icon: mdi:lock-smart
entity: lock.lock_01
tap_action:
confirmation:
text: Lock/Unlock a Lock?
action: call-service
service: lock.lock
target:
entity_id: lock.lock_01
modules:
- badges
badges:
main_icon:
badge_1:
icon: mdi:alert-circle-outline
sub_button:
sub_button_index: 1
badge_1:
icon: mdi:alert-circle-outline
color: red
condition:
- condition: numeric_state
entity_id: sensor.number_doors_open
above: 0
styles: |
.bubble-button-background {
opacity: 1 !important;
background-color: ${ state === 'on' ? 'var(--light-theme-disabled-color)' : 'var(--light-theme-disabled-color)' } !important;
}
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-2 {
background-color: white !important;
}
.bubble-sub-button-3 {
background-color: white !important;
}
.bubble-sub-button-4 {
background-color: white !important;
}
.bubble-sub-button-5 {
background-color: white !important;
}
- type: horizontal-stack
cards:
- image: /local/profile_savin_alex.jpg
type: picture-entity
show_name: false
tap_action:
action: more-info
entity: person.alexander_savin
- image: /local/profile_savin_tanya.jpg
type: picture-entity
show_name: false
tap_action:
action: more-info
entity: person.tatiana_savin
- type: horizontal-stack
cards:
- image: /local/profile_savin_maxim.jpg
type: picture-entity
show_name: false
tap_action:
action: more-info
entity: person.maxim_savin
- image: /local/profile_savin_olivia.jpg
type: picture-entity
show_name: false
tap_action:
action: more-info
entity: person.olivia_savin
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: state
name: Alexander Savin
entity: person.alexander_savin
show_state: true
show_last_changed: true
tap_action:
action: more-info
button_action:
tap_action:
action: more-info
modules:
- progress_border
progress_border:
entity: sensor.alex_s_google_pixel_8_pro_battery_level
color: purple
backcolor: deep-purple
styles: |
.bubble-entity-picture {
display: flex !important;
background-image: url("/local/profile_savin_alex.jpg") !important;
background-size: 300%;
}
- type: custom:bubble-card
card_type: button
button_type: state
name: Tatiana Savin
entity: person.tatiana_savin
show_state: true
show_last_changed: true
tap_action:
action: more-info
button_action:
tap_action:
action: more-info
modules:
- progress_border
progress_border:
entity: sensor.tanya_s_google_pixel_8_pro_battery_level
color: purple
backcolor: deep-purple
styles: |
.bubble-entity-picture {
display: flex !important;
background-image: url("/local/profile_savin_tanya.jpg") !important;
background-size: 300%;
}
- type: horizontal-stack
cards:
- type: custom:bubble-card
card_type: button
button_type: state
name: Maxim Savin
entity: person.maxim_savin
show_state: true
show_last_changed: true
tap_action:
action: more-info
button_action:
tap_action:
action: more-info
styles: |
.bubble-entity-picture {
display: flex !important;
background-image: url("/local/profile_savin_maxim.jpg") !important;
background-size: 300%;
}
- type: custom:bubble-card
card_type: button
button_type: state
name: Olivia Savin
entity: person.olivia_savin
show_state: true
show_last_changed: true
tap_action:
action: more-info
button_action:
tap_action:
action: more-info
styles: |
.bubble-entity-picture {
display: flex !important;
background-image: url("/local/profile_savin_olivia.jpg") !important;
background-size: 300%;
}
- type: map
aspect_ratio: 100%
entities:
- entity: person.alexander_savin
- entity: person.tatiana_savin
- entity: person.maxim_savin
- entity: person.olivia_savin
- entity: device_tracker.subaru_outback_txt
- zone.home
- zone.npfd
- zone.work_kiswe
- zone.ymca_berkley_heights
- zone.nphs_school
- zone.awr_school
# - type: map
# aspect_ratio: 100%
# entities:
# - entity: person.maxim
- type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: 'custom:mushroom-lock-card'
name: Main Lock
entity: lock.lock_01
fill_container: true
layout: horizontal
# show_name: false
# icon: mdi:lock
# size: 50px
# state:
# - value: "locked"
# color: rgb(79, 114, 154)
# icon: mdi:lock-smart
# - value: "unlocked"
# color: red
# icon: mdi:lock-smart
tap_action:
action: toggle
# - type: custom:mushroom-climate-card
# entity: climate.living_room
# name: Thermostat
# show_temperature_control: true
# hvac_modes:
# - heat
# - cool
# - off
# layout: vertical
- type: custom:bubble-card
card_type: climate
entity: climate.living_room
sub_button:
- name: HVAC modes menu
select_attribute: hvac_modes
show_arrow: false
state_background: false
# - type: horizontal-stack
# cards:
# - type: 'custom:simple-thermostat'
# entity: climate.living_room
# step_size: 1
# header: false
# control:
# hvac:
# 'off':
# name: 'Off'
# cool:
# name: A/C
# heat:
# name: Heat
# heat_cool: false
# sensors:
# - entity: sensor.power_house_6_1d
# name: Blower Energy
# - entity: sensor.power_house_8_1d
# name: AC Energy
- type: custom:bubble-card
card_type: button
button_type: switch
name: Vacuum
entity: vacuum.roborock_s5_max
icon: mdi:robot-vacuum
show_state: true
show_last_changed: true
tap_action:
action: navigate
navigation_path: '#popup-vacuum-cleaner-kitchen'
button_action:
tap_action:
action: more-info
sub_button:
- name: Return to dock
icon: mdi:home
show_background: false
tap_action:
action: call-service
service: vacuum.return_to_base
target:
entity_id: vacuum.roborock_s5_max
- name: Pause
icon: mdi:pause
show_background: false
tap_action:
action: call-service
service: vacuum.pause
target:
entity_id: vacuum.roborock_s5_max
- name: Start
icon: mdi:play
tap_action:
action: call-service
service: vacuum.start
target:
entity_id: vacuum.roborock_s5_max
styles: |
.bubble-button-card-container {
/* Change the background color when the vacuum get an error (optional), more details in the styles template section */
background: ${state === 'error' ? 'rgb(200, 80, 40)' : ''} !important;
}
/* Change the first sub-button battery icon based on the battery_icon attribute, more details in the styles template section */
${subButtonIcon[0].setAttribute("icon", hass.states['vacuum.roborock_s5_max'].attributes.battery_icon)}
- type: custom:layout-break
- type: vertical-stack
cards:
- type: weather-forecast
entity: weather.my_weather_station
secondary_info_attribute: humidity
show_current: true
show_forecast: true
- type: horizontal-stack
cards:
- type: picture
image: https://objects.savin.nyc/api/frontyard/person/best.jpg
- type: picture
image: https://objects.savin.nyc/api/side1/person/best.jpg
- type: horizontal-stack
cards:
- type: picture
image: https://objects.savin.nyc/api/doorbell/person/best.jpg
- type: picture
image: https://objects.savin.nyc/api/entrance/person/best.jpg
- type: horizontal-stack
cards:
- type: picture
image: https://objects.savin.nyc/api/side2/person/best.jpg
- type: picture
image: https://objects.savin.nyc/api/backyard/person/best.jpg
# - type: custom:auto-entities
# card:
# type: entities
# filter:
# template: "{{states.light | map(attribute='entity_id') | list}}"
- type: vertical-stack
cards:
- type: 'custom:bubble-card'
card_type: pop-up
hash: '#popup-open-windows'
name: Windows
icon: 'mdi:window-open'
- type: 'custom:bubble-card'
card_type: button
button_type: name
name: Kitchen
icon: mdi:countertop
show_state: false
sub_button:
- name: Kitchen Window
entity: binary_sensor.window_kitchen_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
styles: |
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['binary_sensor.window_kitchen_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
${subButtonIcon[0].setAttribute("icon", hass.states['binary_sensor.window_kitchen_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
- type: 'custom:bubble-card'
card_type: button
button_type: name
name: Living Room
icon: mdi:sofa
show_state: false
sub_button:
- name: Front (Left)
entity: binary_sensor.window_living_room_front_left_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
- name: Front (Center)
entity: binary_sensor.window_living_room_front_center_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
- name: Front (Right)
entity: binary_sensor.window_living_room_front_right_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
- name: Side
entity: binary_sensor.window_living_room_side_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
styles: |
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['binary_sensor.window_living_room_front_left_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-2 {
background-color: white !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${ hass.states['binary_sensor.window_living_room_front_center_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-3 {
background-color: white !important;
}
.bubble-sub-button-3 > ha-icon {
color: ${ hass.states['binary_sensor.window_living_room_front_right_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-4 {
background-color: white !important;
}
.bubble-sub-button-4 > ha-icon {
color: ${ hass.states['binary_sensor.window_living_room_side_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
${subButtonIcon[0].setAttribute("icon", hass.states['binary_sensor.window_living_room_front_left_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
${subButtonIcon[1].setAttribute("icon", hass.states['binary_sensor.window_living_room_front_center_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
${subButtonIcon[2].setAttribute("icon", hass.states['binary_sensor.window_living_room_front_right_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
${subButtonIcon[3].setAttribute("icon", hass.states['binary_sensor.window_living_room_side_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
- type: 'custom:bubble-card'
card_type: button
button_type: name
name: Master Bedroom
icon: mdi:bed-king
show_state: false
sub_button:
- name: Front (Left)
entity: binary_sensor.window_bedroom_master_left_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
- name: Front (Center)
entity: binary_sensor.window_bedroom_master_center_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
- name: Front (Right)
entity: binary_sensor.window_bedroom_master_right_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
styles: |
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['binary_sensor.window_bedroom_master_left_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-2 {
background-color: white !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${ hass.states['binary_sensor.window_bedroom_master_center_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-3 {
background-color: white !important;
}
.bubble-sub-button-3 > ha-icon {
color: ${ hass.states['binary_sensor.window_bedroom_master_right_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
${subButtonIcon[0].setAttribute("icon", hass.states['binary_sensor.window_bedroom_master_left_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
${subButtonIcon[1].setAttribute("icon", hass.states['binary_sensor.window_bedroom_master_center_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
${subButtonIcon[2].setAttribute("icon", hass.states['binary_sensor.window_bedroom_master_right_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
- type: 'custom:bubble-card'
card_type: button
button_type: name
name: Maxim Bedroom
icon: mdi:bed
show_state: false
sub_button:
- name: Window
entity: binary_sensor.window_bedroom_max_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
styles: |
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['binary_sensor.window_bedroom_max_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
${subButtonIcon[0].setAttribute("icon", hass.states['binary_sensor.window_bedroom_max_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
- type: 'custom:bubble-card'
card_type: button
button_type: name
name: Olivia Bedroom
icon: mdi:bed
show_state: false
sub_button:
- name: Window
entity: binary_sensor.window_bedroom_olivia_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
styles: |
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['binary_sensor.window_bedroom_olivia_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
${subButtonIcon[0].setAttribute("icon", hass.states['binary_sensor.window_bedroom_olivia_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
- type: 'custom:bubble-card'
card_type: button
button_type: name
name: Master Bathroom
icon: mdi:shower
show_state: false
sub_button:
- name: Window
entity: binary_sensor.window_bathroom_master_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
styles: |
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['binary_sensor.window_bathroom_master_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
${subButtonIcon[0].setAttribute("icon", hass.states['binary_sensor.window_bathroom_master_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
- type: 'custom:bubble-card'
card_type: button
button_type: name
name: Bedroom Bathroom
icon: mdi:shower
show_state: false
sub_button:
- name: Window
entity: binary_sensor.window_bathroom_bedroom_01_contact
icon: mdi:window-closed
show_state: false
show_background: true
styles: |
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['binary_sensor.window_bathroom_bedroom_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
${subButtonIcon[0].setAttribute("icon", hass.states['binary_sensor.window_bathroom_bedroom_01_contact'].state === 'on' ? 'mdi:window-open' : 'mdi:window-closed')}
- type: vertical-stack
cards:
- type: 'custom:bubble-card'
card_type: pop-up
hash: '#popup-open-doors'
name: Doors
icon: 'mdi:door-open'
- type: 'custom:bubble-card'
card_type: button
button_type: name
name: Kitchen
icon: mdi:countertop
show_state: false
sub_button:
- name: Kitchen Door
entity: binary_sensor.door_kitchen_01
icon: mdi:door-sliding
show_state: false
show_background: true
styles: |
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['binary_sensor.door_kitchen_01'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
${subButtonIcon[0].setAttribute("icon", hass.states['binary_sensor.door_kitchen_01'].state === 'on' ? 'mdi:door-sliding-open' : 'mdi:door-sliding')}
- type: 'custom:bubble-card'
card_type: button
button_type: name
name: Living Room
icon: mdi:sofa
show_state: false
sub_button:
- name: Entrance Door
entity: binary_sensor.door_entrance_01
icon: mdi:door-closed
show_state: false
show_background: true
styles: |
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['binary_sensor.door_entrance_01'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
${subButtonIcon[0].setAttribute("icon", hass.states['binary_sensor.door_entrance_01'].state === 'on' ? 'mdi:door-open' : 'mdi:door-closed')}
- type: 'custom:bubble-card'
card_type: button
button_type: name
name: Garage
icon: mdi:garage-variant
show_state: false
sub_button:
- name: Garage Gate
entity: binary_sensor.door_kitchen_01_contact
icon: mdi:garage-variant
show_state: false
show_background: true
- name: Garage Door
entity: binary_sensor.door_garage_01_contact
icon: mdi:door-closed
show_state: false
show_background: true
styles: |
.bubble-sub-button-1 {
background-color: white !important;
}
.bubble-sub-button-1 > ha-icon {
color: ${ hass.states['binary_sensor.window_kitchen_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
.bubble-sub-button-2 {
background-color: white !important;
}
.bubble-sub-button-2 > ha-icon {
color: ${ hass.states['binary_sensor.window_kitchen_01_contact'].state === 'on' ? 'rgb(255, 152, 0)' : '' } !important;
}
${subButtonIcon[0].setAttribute("icon", hass.states['binary_sensor.window_kitchen_01_contact'].state === 'on' ? 'mdi:garage-open-variant' : 'mdi:garage-variant')}
${subButtonIcon[1].setAttribute("icon", hass.states['binary_sensor.door_garage_01_contact'].state === 'on' ? 'mdi:door-open' : 'mdi:door-closed')}
- type: vertical-stack
cards:
- type: 'custom:bubble-card'
card_type: pop-up
hash: '#popup-on-lights'
name: Doors
icon: 'mdi:door-open'
- type: custom:auto-entities
card:
type: grid
columns: 1
square: false
card_param: cards
filter:
include:
- domain: light
state: 'on'
options:
type: custom:bubble-card
card_type: button
button_type: slider
show_attribute: false
show_last_changed: true
show_state: true
exclude: []
show_empty: true
- type: vertical-stack
cards:
- type: 'custom:bubble-card'
card_type: pop-up
hash: '#popup-vacuum-cleaner-kitchen'
name: Vacuum Cleaner
icon: 'mdi:door-open'
- type: horizontal-stack
cards:
- type: custom:xiaomi-vacuum-map-card
entity: vacuum.roborock_s5_max
map_source:
camera: camera.xiaomi_cloud_map_extractor
calibration_source:
camera: true
debug: false
map_modes:
- template: vacuum_clean_zone
- template: vacuum_goto
- template: vacuum_clean_zone_predefined
predefined_selections:
- zones: [[26600,21200,23600,27000]] # Kitchen
- zones: [[32700,26000,26600,20700]] # Living Room
map_locked: true