UI v3
@@ -23,8 +23,6 @@ lovelace:
|
|||||||
url: /hacsfiles/lovelace-state-switch/state-switch.js
|
url: /hacsfiles/lovelace-state-switch/state-switch.js
|
||||||
- type: module
|
- type: module
|
||||||
url: http://192.168.0.13:5000/time-picker-card.js
|
url: http://192.168.0.13:5000/time-picker-card.js
|
||||||
- type: module
|
|
||||||
url: /hacsfiles/lovelace-gui-sandbox/gui-sandbox.js
|
|
||||||
dashboards:
|
dashboards:
|
||||||
lovelace-home:
|
lovelace-home:
|
||||||
mode: yaml
|
mode: yaml
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ views:
|
|||||||
cards:
|
cards:
|
||||||
- type: grid
|
- type: grid
|
||||||
cards:
|
cards:
|
||||||
- type: custom:gui-sandbox
|
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
icon: mdi:reload
|
icon: mdi:reload
|
||||||
name: Theme
|
name: Theme
|
||||||
@@ -38,7 +37,6 @@ views:
|
|||||||
cards:
|
cards:
|
||||||
- type: horizontal-stack
|
- type: horizontal-stack
|
||||||
cards:
|
cards:
|
||||||
- type: custom:gui-sandbox
|
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
icon: mdi:reload
|
icon: mdi:reload
|
||||||
name: Theme
|
name: Theme
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ lovelace:
|
|||||||
mode: yaml
|
mode: yaml
|
||||||
title: Hallway Dashboard
|
title: Hallway Dashboard
|
||||||
icon: mdi:tablet-dashboard
|
icon: mdi:tablet-dashboard
|
||||||
show_in_sidebar: false
|
show_in_sidebar: true
|
||||||
filename: hallway-lovelace.yaml
|
filename: hallway-lovelace.yaml
|
||||||
lovelace-kitchen:
|
lovelace-kitchen:
|
||||||
mode: yaml
|
mode: yaml
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
custom_header:
|
|
||||||
hide_header: true
|
|
||||||
|
|
||||||
decluttering_templates: !include_dir_merge_named lovelace/decluttering_templates
|
decluttering_templates: !include_dir_merge_named lovelace/decluttering_templates
|
||||||
button_card_templates: !include_dir_merge_named lovelace/button_card_templates
|
button_card_templates: !include_dir_merge_named lovelace/button_card_templates
|
||||||
popup_cards: !include lovelace/popup_cards.yaml
|
popup_cards: !include lovelace/popup_cards.yaml
|
||||||
|
|
||||||
|
kiosk_mode:
|
||||||
|
hide_header: true
|
||||||
|
|
||||||
title: Floorplan
|
title: Floorplan
|
||||||
views:
|
views:
|
||||||
- title: Floorplan
|
- title: Floorplan
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ views:
|
|||||||
- title: Sarah
|
- title: Sarah
|
||||||
path: hallway_dashboard
|
path: hallway_dashboard
|
||||||
icon: mdi:tablet-dashboard
|
icon: mdi:tablet-dashboard
|
||||||
|
background: '#333'
|
||||||
panel: true
|
panel: true
|
||||||
cards:
|
cards:
|
||||||
- type: custom:state-switch
|
- type: custom:state-switch
|
||||||
|
|||||||
@@ -3,7 +3,8 @@ button_card_templates: !include_dir_merge_named lovelace/button_card_templates
|
|||||||
popup_cards: !include lovelace/popup_cards.yaml
|
popup_cards: !include lovelace/popup_cards.yaml
|
||||||
|
|
||||||
kiosk_mode:
|
kiosk_mode:
|
||||||
kiosk: true
|
kiosk: false
|
||||||
|
hide_overflow: true
|
||||||
|
|
||||||
title: Sarah
|
title: Sarah
|
||||||
views:
|
views:
|
||||||
@@ -11,4 +12,18 @@ views:
|
|||||||
path: kitchen
|
path: kitchen
|
||||||
icon: "mdi:chef-hat"
|
icon: "mdi:chef-hat"
|
||||||
panel: true
|
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
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ cards:
|
|||||||
- automation.slack_meeting_starts
|
- automation.slack_meeting_starts
|
||||||
- automation.slack_meeting_ends
|
- automation.slack_meeting_ends
|
||||||
- automation.hallway_tablet_set_to_home_after_10_minutes
|
- automation.hallway_tablet_set_to_home_after_10_minutes
|
||||||
|
- automation.hallway_tablet_leaving_goodbye_after_door_opened
|
||||||
|
|
||||||
- type: entities
|
- type: entities
|
||||||
title: Presence
|
title: Presence
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
cover:
|
cover:
|
||||||
template: default
|
|
||||||
icon: >
|
icon: >
|
||||||
[[[
|
[[[
|
||||||
return entity.state === "open" ? "mdi:window-shutter-open" : "mdi:window-shutter";
|
return entity.state === "open" ? "mdi:window-shutter-open" : "mdi:window-shutter";
|
||||||
@@ -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 ]]]"
|
||||||
@@ -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)
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
v3_badge_humidity:
|
||||||
|
template: v3_badge
|
||||||
|
state_display: "[[[ return Number.parseFloat(entity.state.split(' ')[0]).toFixed(1) + '%' ]]]"
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
v3_badge_temp:
|
||||||
|
template: v3_badge
|
||||||
|
state_display: "[[[ return Number.parseFloat(entity.state.split(' ')[0]).toFixed(1) + '°' ]]]"
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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';
|
||||||
|
]]]
|
||||||
@@ -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) + "%";
|
||||||
|
]]]
|
||||||
@@ -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]]]"
|
||||||
@@ -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';
|
||||||
|
]]]
|
||||||
@@ -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 ]]]"
|
||||||
@@ -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
|
||||||
@@ -9,6 +9,7 @@ sonos_media_player:
|
|||||||
name: "[[name]]"
|
name: "[[name]]"
|
||||||
info: "[[info]]"
|
info: "[[info]]"
|
||||||
entity: "[[player]]"
|
entity: "[[player]]"
|
||||||
|
scale: 1.2
|
||||||
speaker_group:
|
speaker_group:
|
||||||
sync_volume: "[[sync_volume]]"
|
sync_volume: "[[sync_volume]]"
|
||||||
entities: &entities_in_gorup
|
entities: &entities_in_gorup
|
||||||
|
|||||||
@@ -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
|
||||||
|
}
|
||||||
@@ -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
|
||||||
@@ -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]];
|
||||||
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
@@ -1,201 +1,307 @@
|
|||||||
type: custom:layout-card
|
type: custom:mod-card
|
||||||
layout_type: custom:horizontal-layout
|
style:
|
||||||
layout:
|
layout-card:
|
||||||
max_cols: 2
|
$:
|
||||||
cards:
|
horizontal-layout:
|
||||||
# Column 1
|
$:
|
||||||
- type: vertical-stack
|
.: |
|
||||||
cards:
|
#columns {
|
||||||
- type: custom:button-card
|
padding-left: 10px;
|
||||||
template: [hallway_dashboard_mode]
|
margin: 0 20px;
|
||||||
- type: horizontal-stack
|
grid-gap: 20px;
|
||||||
cards:
|
}
|
||||||
- type: custom:button-card
|
card:
|
||||||
template: half
|
type: custom:layout-card
|
||||||
icon: none
|
layout_type: custom:horizontal-layout
|
||||||
entity: light.all
|
layout:
|
||||||
name: All
|
max_cols: 2
|
||||||
- type: custom:button-card
|
cards:
|
||||||
template: half
|
# Column 1
|
||||||
icon: none
|
- type: vertical-stack
|
||||||
entity: light.ceiling
|
cards:
|
||||||
name: Ceiling
|
- type: custom:decluttering-card
|
||||||
- type: horizontal-stack
|
template: v3_section_title
|
||||||
cards:
|
variables:
|
||||||
- type: custom:button-card
|
- title: Sensors
|
||||||
template: [small, with_state_background]
|
- type: horizontal-stack
|
||||||
entity: light.living_room
|
cards:
|
||||||
name: Living room
|
- type: custom:button-card
|
||||||
- type: custom:button-card
|
template: v3_badge_temp
|
||||||
template: [small, with_state_background]
|
entity: sensor.average_temperature
|
||||||
entity: light.living_room_main
|
- type: custom:button-card
|
||||||
name: Main
|
template: v3_badge_humidity
|
||||||
- type: custom:button-card
|
entity: sensor.average_humidity
|
||||||
template: [small, with_state_background]
|
- type: custom:button-card
|
||||||
entity: light.pc
|
template: v3_badge_icon
|
||||||
- type: custom:button-card
|
entity: sensor.active_motion_sensors
|
||||||
template: [small, with_state_background]
|
icon: |
|
||||||
entity: light.living_room_ambient
|
[[[
|
||||||
name: Ambient
|
return entity.state === 0 ? 'mdi:motion-sensor-off' : 'mdi:motion-sensor';
|
||||||
- type: horizontal-stack
|
]]]
|
||||||
cards:
|
state:
|
||||||
- type: custom:button-card
|
- value: 0
|
||||||
template: [small, with_state_background]
|
operator: '!='
|
||||||
entity: light.master_bedroom
|
styles:
|
||||||
name: Bedroom
|
card:
|
||||||
- type: custom:button-card
|
- background-color: 'white'
|
||||||
template: [small, with_state_background]
|
icon:
|
||||||
entity: light.master_bedroom_main
|
- color: var(--primary-color)
|
||||||
name: Main
|
- type: custom:button-card
|
||||||
- type: custom:button-card
|
template: v3_badge_icon
|
||||||
template: [small, with_state_background]
|
entity: sensor.open_window_count
|
||||||
entity: light.bed_led
|
icon: |
|
||||||
name: Bed
|
[[[
|
||||||
tap_action:
|
return entity.state === 0 ? 'mdi:window-closed' : 'mdi:window-open';
|
||||||
action: call-service
|
]]]
|
||||||
service: script.bed_led_toggle
|
state:
|
||||||
- type: custom:button-card
|
- value: 0
|
||||||
template: [small, with_state_background]
|
operator: '!='
|
||||||
entity: light.bedside
|
styles:
|
||||||
name: Bedside
|
card:
|
||||||
- type: horizontal-stack
|
- background-color: 'white'
|
||||||
cards:
|
icon:
|
||||||
- type: custom:button-card
|
- color: var(--primary-color)
|
||||||
template: [small, with_state_background]
|
- type: custom:button-card
|
||||||
entity: light.kitchen
|
template: v3_badge_icon
|
||||||
name: Kitchen
|
entity: sensor.open_door_count
|
||||||
- type: custom:button-card
|
icon: |
|
||||||
template: [small, with_state_background]
|
[[[
|
||||||
entity: light.hallway_main
|
return entity.state === 0 ? 'mdi:door-closed' : 'mdi:door-open';
|
||||||
name: Hallway
|
]]]
|
||||||
- type: custom:button-card
|
state:
|
||||||
template: [small, with_state_background]
|
- value: 0
|
||||||
entity: light.hallway_entrance
|
operator: '!='
|
||||||
name: Entrance
|
styles:
|
||||||
|
card:
|
||||||
|
- background-color: 'white'
|
||||||
|
icon:
|
||||||
|
- color: var(--primary-color)
|
||||||
|
|
||||||
- type: custom:decluttering-card
|
- type: custom:decluttering-card
|
||||||
template: media_with_controls
|
template: v3_section_title
|
||||||
variables:
|
variables:
|
||||||
- player: media_player.master_bedroom
|
- title: Modes & Devices
|
||||||
- player_name: Bedroom
|
- type: horizontal-stack
|
||||||
- title: ""
|
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
|
# Column 2
|
||||||
- type: vertical-stack
|
- type: vertical-stack
|
||||||
cards:
|
cards:
|
||||||
- type: grid
|
- type: custom:decluttering-card
|
||||||
columns: 4
|
template: v3_section_title
|
||||||
square: false
|
variables:
|
||||||
cards:
|
- title: Lights
|
||||||
- type: custom:button-card
|
- type: horizontal-stack
|
||||||
template: [small, with_state_background]
|
cards:
|
||||||
entity: input_boolean.speech_notifications
|
- type: custom:button-card
|
||||||
name: Speech
|
template: v3_tablet_button
|
||||||
- type: custom:button-card
|
entity: light.living_room
|
||||||
template: [small, with_state_background]
|
name: Living room
|
||||||
entity: binary_sensor.house_mode
|
- type: custom:button-card
|
||||||
tap_action:
|
template: v3_tablet_button
|
||||||
action: call-service
|
entity: light.living_room_main
|
||||||
service: input_select.select_next
|
name: Main
|
||||||
service_data:
|
- type: custom:button-card
|
||||||
entity_id: input_select.house_mode
|
template: v3_tablet_button
|
||||||
- type: custom:button-card
|
entity: light.pc
|
||||||
template: [small, with_state_background]
|
- type: custom:button-card
|
||||||
entity: input_boolean.guest_mode
|
template: v3_tablet_button
|
||||||
tap_action:
|
entity: light.living_room_ambient
|
||||||
action: toggle
|
name: Ambient
|
||||||
- type: custom:button-card
|
- type: horizontal-stack
|
||||||
template: [small, with_state_background]
|
cards:
|
||||||
entity: switch.mercury_home_mode
|
- type: custom:button-card
|
||||||
name: Mercury Home
|
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
|
- type: horizontal-stack
|
||||||
template: small
|
cards:
|
||||||
entity: media_player.living_room_tv
|
- type: custom:button-card
|
||||||
name: TV
|
template: v3_xs_button
|
||||||
icon: mdi:television
|
entity: media_player.master_bedroom
|
||||||
tap_action:
|
name: Sonos
|
||||||
action: toggle
|
- type: custom:button-card
|
||||||
state:
|
template: v3_xs_button
|
||||||
- value: 'playing'
|
show_state: false
|
||||||
styles: &on_styles
|
entity: script.sonos_volume_10
|
||||||
card:
|
icon: mdi:volume-medium
|
||||||
- background-color: var(--primary-color)
|
name: Vol 10
|
||||||
- color: black
|
tap_action:
|
||||||
icon:
|
action: call-service
|
||||||
- color: black
|
service: script.sonos_volume_10
|
||||||
- value: 'standby'
|
- type: custom:button-card
|
||||||
styles: *on_styles
|
template: v3_xs_button
|
||||||
- value: 'on'
|
show_state: false
|
||||||
styles: *on_styles
|
entity: script.sonos_volume_20
|
||||||
- value: 'home'
|
icon: mdi:volume-high
|
||||||
styles: *on_styles
|
name: Vol 20
|
||||||
- value: 'idle'
|
tap_action:
|
||||||
styles: *on_styles
|
action: call-service
|
||||||
|
service: script.sonos_volume_20
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: [small, with_state_background, with_state_indicator]
|
template: v3_xs_button
|
||||||
entity: switch.titanium
|
entity: binary_sensor.sonos_is_bedroom_master
|
||||||
variables:
|
name: Bedroom
|
||||||
state_indicator_id: automation.titanium_turn_off_when_idle
|
icon: mdi:speaker-multiple
|
||||||
|
tap_action:
|
||||||
|
action: call-service
|
||||||
- type: custom:button-card
|
service: script.sonos_join_bedroom
|
||||||
template: [ac_button, small]
|
- type: custom:button-card
|
||||||
- type: custom:button-card
|
template: v3_xs_button
|
||||||
template: [radiator_button, small]
|
entity: binary_sensor.sonos_is_living_room_master
|
||||||
entity: climate.living_room_radiator_mode
|
name: TV
|
||||||
name: "Living room"
|
icon: mdi:speaker-multiple
|
||||||
- type: custom:button-card
|
tap_action:
|
||||||
template: [radiator_button, small]
|
action: call-service
|
||||||
entity: climate.bedroom_radiator_mode
|
service: script.sonos_join_tv
|
||||||
name: "Bedroom"
|
- type: horizontal-stack
|
||||||
- type: custom:button-card
|
cards:
|
||||||
template: [radiator_button, small]
|
- type: custom:button-card
|
||||||
entity: climate.kitchen_radiator_mode
|
template: v3_xs_button
|
||||||
name: "Kitchen"
|
entity: script.music_play
|
||||||
|
name: Chill
|
||||||
- type: custom:button-card
|
icon: mdi:music
|
||||||
template: [with_state_background, cover, small]
|
tap_action:
|
||||||
entity: cover.living_room
|
action: toggle
|
||||||
name: LR Cover
|
- type: custom:button-card
|
||||||
tap_action:
|
template: v3_xs_button
|
||||||
action: call-service
|
entity: script.music_play
|
||||||
service: script.toggle_living_room_cover
|
name: Chill 2
|
||||||
- type: custom:button-card
|
icon: mdi:music
|
||||||
template: [small, with_state_background, with_state_indicator]
|
tap_action:
|
||||||
entity: fan.philips_airpurifier
|
action: call-service
|
||||||
variables:
|
service: script.music_play
|
||||||
state_indicator_id: binary_sensor.purifier_filter_needs_change
|
service_data:
|
||||||
state_indicator_size: 5px
|
playlist: "Songs for a Romantic Evening"
|
||||||
state_indicator_off_size: 0px
|
shuffle: true
|
||||||
state_indicator_on_color: var(--color-red)
|
volume_level: 0.1
|
||||||
state_on_indicator_on_color: var(--color-red)
|
- type: custom:button-card
|
||||||
- type: custom:button-card
|
template: v3_xs_button
|
||||||
template: [small, with_state_background]
|
entity: script.music_play
|
||||||
entity: vacuum.vacuum
|
name: Retro
|
||||||
name: Vacuum
|
icon: mdi:music
|
||||||
- type: custom:button-card
|
tap_action:
|
||||||
template: [brita_water, small]
|
action: call-service
|
||||||
|
service: script.music_play
|
||||||
- type: horizontal-stack
|
service_data:
|
||||||
cards:
|
playlist: "Retro"
|
||||||
- type: "custom:mini-graph-card"
|
styles:
|
||||||
name: Temperature
|
card:
|
||||||
icon: mdi:thermometer
|
- margin-bottom: 8px
|
||||||
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
|
|
||||||
|
|||||||
@@ -1,188 +1,298 @@
|
|||||||
type: custom:layout-card
|
type: custom:mod-card
|
||||||
layout_type: custom:horizontal-layout
|
style:
|
||||||
layout:
|
layout-card:
|
||||||
max_cols: 2
|
$:
|
||||||
cards:
|
horizontal-layout:
|
||||||
# Column 1
|
$:
|
||||||
- type: vertical-stack
|
.: |
|
||||||
cards:
|
#columns {
|
||||||
- type: custom:button-card
|
padding-left: 10px;
|
||||||
template: [hallway_dashboard_mode]
|
margin: 0 20px;
|
||||||
- type: horizontal-stack
|
grid-gap: 20px;
|
||||||
cards:
|
}
|
||||||
- type: custom:button-card
|
card:
|
||||||
template: half
|
type: custom:layout-card
|
||||||
icon: none
|
layout_type: custom:horizontal-layout
|
||||||
entity: light.all
|
layout:
|
||||||
name: All
|
max_cols: 2
|
||||||
- type: custom:button-card
|
cards:
|
||||||
template: half
|
# Column 1
|
||||||
icon: none
|
- type: vertical-stack
|
||||||
entity: light.ceiling
|
cards:
|
||||||
name: Ceiling
|
- type: custom:decluttering-card
|
||||||
- type: horizontal-stack
|
template: v3_section_title
|
||||||
cards:
|
variables:
|
||||||
- type: custom:button-card
|
- title: Welcome!
|
||||||
template: [small, with_state_background]
|
- type: markdown
|
||||||
entity: light.living_room
|
content: !include ../../templates/partials/tasks.yaml
|
||||||
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:decluttering-card
|
- type: horizontal-stack
|
||||||
template: media_with_controls
|
cards:
|
||||||
variables:
|
- type: custom:button-card
|
||||||
- player: media_player.master_bedroom
|
template: v3_badge_temp
|
||||||
- player_name: Bedroom
|
entity: sensor.average_temperature
|
||||||
- title: ""
|
- 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: custom:decluttering-card
|
||||||
- type: vertical-stack
|
template: v3_section_title
|
||||||
cards:
|
variables:
|
||||||
- type: grid
|
- title: Modes & Devices
|
||||||
columns: 4
|
- type: horizontal-stack
|
||||||
square: false
|
cards:
|
||||||
cards:
|
- type: custom:button-card
|
||||||
- type: custom:button-card
|
template: v3_tablet_button
|
||||||
template: [small, with_state_background]
|
entity: input_select.hallway_dashboard_mode
|
||||||
entity: binary_sensor.georgi_home
|
name: Mode
|
||||||
name: Georgi home?
|
styles:
|
||||||
tap_action:
|
card:
|
||||||
action: call-service
|
- background-color: var(--primary-color)
|
||||||
service: input_boolean.toggle
|
tap_action:
|
||||||
service_data:
|
action: call-service
|
||||||
entity_id: input_boolean.georgi_home
|
service: input_select.select_next
|
||||||
- type: custom:button-card
|
service_data:
|
||||||
template: [small, with_state_background]
|
entity_id: input_select.hallway_dashboard_mode
|
||||||
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: markdown
|
- type: custom:button-card
|
||||||
content: !include ../../templates/partials/tasks.yaml
|
template: v3_tablet_button
|
||||||
- type: entities
|
entity: binary_sensor.georgi_home
|
||||||
entities:
|
name: Georgi home?
|
||||||
- type: custom:decluttering-card
|
tap_action:
|
||||||
template: percentage_card
|
action: call-service
|
||||||
variables:
|
service: input_boolean.toggle
|
||||||
- name: Quarantine
|
service_data:
|
||||||
- entity: sensor.quarantined_percent
|
entity_id: input_boolean.georgi_home
|
||||||
- icon: mdi:percent
|
- type: custom:button-card
|
||||||
- orange: 100
|
template: v3_tablet_button
|
||||||
- red: 100
|
entity: input_boolean.guest_mode
|
||||||
- entity: sensor.quarantine_times_left
|
tap_action:
|
||||||
name: Times left
|
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
|
||||||
|
|||||||
@@ -1,68 +1,117 @@
|
|||||||
type: custom:layout-card
|
type: custom:mod-card
|
||||||
layout_type: custom:horizontal-layout
|
style:
|
||||||
layout:
|
layout-card:
|
||||||
max_cols: 2
|
$:
|
||||||
cards:
|
horizontal-layout:
|
||||||
- type: vertical-stack
|
$:
|
||||||
cards:
|
.: |
|
||||||
- type: custom:button-card
|
#columns {
|
||||||
template: [hallway_dashboard_mode]
|
padding-left: 10px;
|
||||||
- type: custom:weather-card
|
margin: 0 20px;
|
||||||
entity: weather.dark_sky
|
grid-gap: 20px;
|
||||||
- type: custom:sun-card
|
}
|
||||||
darkMode: true
|
card:
|
||||||
- type: vertical-stack
|
type: custom:layout-card
|
||||||
cards:
|
layout_type: custom:horizontal-layout
|
||||||
- type: grid
|
layout:
|
||||||
square: false
|
max_cols: 2
|
||||||
columns: 4
|
cards:
|
||||||
cards:
|
- type: vertical-stack
|
||||||
- type: custom:button-card
|
cards:
|
||||||
template: [with_state_background, cover, small]
|
- type: custom:decluttering-card
|
||||||
entity: cover.living_room
|
template: v3_section_title
|
||||||
name: LR Cover
|
variables:
|
||||||
tap_action:
|
- title: Sensors
|
||||||
action: call-service
|
- type: horizontal-stack
|
||||||
service: script.toggle_living_room_cover
|
cards:
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: [small, with_state_background]
|
template: v3_badge
|
||||||
entity: binary_sensor.living_room_right_window
|
entity: sensor.quarantined_percent
|
||||||
name: Living room
|
- type: custom:button-card
|
||||||
- type: custom:button-card
|
template: v3_badge
|
||||||
template: [small, with_state_background]
|
entity: sensor.quarantine_times_left
|
||||||
entity: binary_sensor.bedroom_left_window
|
- type: custom:button-card
|
||||||
name: Bedroom left
|
template: v3_badge_icon
|
||||||
- type: custom:button-card
|
entity: sensor.active_motion_sensors
|
||||||
template: [small, with_state_background]
|
icon: |
|
||||||
entity: binary_sensor.bedroom_right_window
|
[[[
|
||||||
name: Bedroom right
|
return entity.state === 0 ? 'mdi:motion-sensor-off' : 'mdi:motion-sensor';
|
||||||
- type: custom:button-card
|
]]]
|
||||||
template: [small, with_state_background]
|
state:
|
||||||
entity: binary_sensor.kitchen_window
|
- value: 0
|
||||||
name: Kitchen
|
operator: '!='
|
||||||
- type: custom:button-card
|
styles:
|
||||||
template: [small, with_state_background]
|
card:
|
||||||
entity: binary_sensor.front_door
|
- background-color: 'white'
|
||||||
- type: custom:button-card
|
icon:
|
||||||
template: [small, with_state_background]
|
- color: var(--primary-color)
|
||||||
entity: binary_sensor.bedroom_door
|
- 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
|
- type: custom:decluttering-card
|
||||||
hours_to_show: 72
|
template: v3_section_title
|
||||||
line_width: 2
|
variables:
|
||||||
entities:
|
- title: Modes & Devices
|
||||||
- sensor.dark_sky_precip_probability
|
- type: horizontal-stack
|
||||||
- sensor.dark_sky_cloud_coverage
|
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:sun-card
|
||||||
- type: custom:decluttering-card
|
darkMode: true
|
||||||
template: percentage_card
|
- type: vertical-stack
|
||||||
variables:
|
cards:
|
||||||
- name: Quarantine
|
- type: custom:weather-card
|
||||||
- entity: sensor.quarantined_percent
|
entity: weather.dark_sky
|
||||||
- icon: mdi:percent
|
- type: custom:mini-graph-card
|
||||||
- orange: 100
|
hours_to_show: 72
|
||||||
- red: 100
|
line_width: 2
|
||||||
- entity: sensor.quarantine_times_left
|
entities:
|
||||||
name: Times left
|
- sensor.dark_sky_precip_probability
|
||||||
|
- sensor.dark_sky_cloud_coverage
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
- type: custom:mod-card
|
- type: custom:mod-card
|
||||||
style:
|
style:
|
||||||
layout-card:
|
layout-card:
|
||||||
|
.: |
|
||||||
|
* {
|
||||||
|
--primary-color: #FF7900
|
||||||
|
}
|
||||||
|
|
||||||
$:
|
$:
|
||||||
horizontal-layout:
|
horizontal-layout:
|
||||||
$:
|
$:
|
||||||
@@ -13,20 +18,31 @@
|
|||||||
type: custom:layout-card
|
type: custom:layout-card
|
||||||
layout_type: custom:horizontal-layout
|
layout_type: custom:horizontal-layout
|
||||||
layout:
|
layout:
|
||||||
max_cols: 2
|
max_cols: 3
|
||||||
cards:
|
cards:
|
||||||
- type: vertical-stack
|
- type: vertical-stack
|
||||||
cards:
|
cards:
|
||||||
- type: custom:decluttering-card
|
- type: custom:decluttering-card
|
||||||
template: media_with_controls
|
template: v3_title
|
||||||
variables:
|
variables:
|
||||||
- player: media_player.bathroom
|
|
||||||
- player_name: Bathroom
|
|
||||||
- title: Bathroom
|
- title: Bathroom
|
||||||
- type: custom:decluttering-card
|
|
||||||
template: climate_card
|
- type: horizontal-stack
|
||||||
variables:
|
cards:
|
||||||
- title: "Climate"
|
- type: custom:button-card
|
||||||
- main_entity: sensor.bathroom_weather_temperature
|
template: v3_badge_temp
|
||||||
- left_entity: sensor.bathroom_weather_humidity
|
entity: sensor.bathroom_weather_temperature
|
||||||
- right_entity: sensor.bathroom_weather_pressure
|
- 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
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
- type: custom:mod-card
|
- type: custom:mod-card
|
||||||
style:
|
style:
|
||||||
layout-card:
|
layout-card:
|
||||||
|
.: |
|
||||||
|
* {
|
||||||
|
--primary-color: #871CAB
|
||||||
|
}
|
||||||
|
|
||||||
$:
|
$:
|
||||||
horizontal-layout:
|
horizontal-layout:
|
||||||
$:
|
$:
|
||||||
@@ -16,141 +21,140 @@
|
|||||||
max_cols: 3
|
max_cols: 3
|
||||||
cards:
|
cards:
|
||||||
- type: vertical-stack
|
- type: vertical-stack
|
||||||
title: Bedroom
|
|
||||||
cards:
|
cards:
|
||||||
|
- type: custom:decluttering-card
|
||||||
|
template: v3_title
|
||||||
|
variables:
|
||||||
|
- title: Bedroom
|
||||||
- type: horizontal-stack
|
- type: horizontal-stack
|
||||||
cards:
|
cards:
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: default
|
template: v3_badge_temp
|
||||||
entity: light.master_bedroom
|
entity: sensor.bedroom_weather_temperature
|
||||||
name: Bedroom
|
state_display: "[[[return entity.state.split(' ')[0] + '°']]]"
|
||||||
- type: custom:button-card
|
- 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
|
entity: light.master_bedroom_main
|
||||||
name: Main
|
name: Main
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: default
|
template: v3_button_light
|
||||||
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
|
entity: light.bedside
|
||||||
name: Bedside
|
name: Bedside
|
||||||
- type: horizontal-stack
|
- type: horizontal-stack
|
||||||
cards:
|
cards:
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: [small, scene]
|
template: v3_button_light
|
||||||
entity: scene.bedroom_ambient_neon
|
entity: light.bed_led
|
||||||
name: Neon
|
name: Bed
|
||||||
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)
|
|
||||||
|
|
||||||
|
|
||||||
|
- type: vertical-stack
|
||||||
|
cards:
|
||||||
|
- type: custom:decluttering-card
|
||||||
|
template: v3_section_title
|
||||||
|
variables:
|
||||||
|
- title: Devices
|
||||||
- type: horizontal-stack
|
- type: horizontal-stack
|
||||||
title: Climate
|
|
||||||
cards:
|
cards:
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: radiator_button
|
template: v3_button
|
||||||
entity: climate.bedroom_radiator_mode
|
entity: media_player.master_bedroom
|
||||||
|
name: Sonos
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: [default, with_state_indicator]
|
template: v3_button_purifier
|
||||||
entity: fan.philips_airpurifier
|
entity: fan.philips_airpurifier
|
||||||
variables:
|
name: Air Purifier
|
||||||
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
|
- type: custom:button-card
|
||||||
template: default
|
template: v3_button_radiator
|
||||||
entity: sensor.purifier_speed
|
entity: climate.bedroom_radiator_mode
|
||||||
tap_action:
|
name: Radiator
|
||||||
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
|
|
||||||
|
|
||||||
- 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
|
- type: vertical-stack
|
||||||
title: Camera
|
|
||||||
cards:
|
cards:
|
||||||
|
- type: custom:decluttering-card
|
||||||
|
template: v3_section_title
|
||||||
|
variables:
|
||||||
|
- title: Camera
|
||||||
- type: picture-glance
|
- type: picture-glance
|
||||||
camera_image: camera.bedroom_hd
|
camera_image: camera.bedroom_hd
|
||||||
entities:
|
entities:
|
||||||
|
|||||||
@@ -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: []
|
|
||||||
@@ -1,6 +1,11 @@
|
|||||||
- type: custom:mod-card
|
- type: custom:mod-card
|
||||||
style:
|
style:
|
||||||
layout-card:
|
layout-card:
|
||||||
|
.: |
|
||||||
|
* {
|
||||||
|
--primary-color: #188A9C
|
||||||
|
}
|
||||||
|
|
||||||
$:
|
$:
|
||||||
horizontal-layout:
|
horizontal-layout:
|
||||||
$:
|
$:
|
||||||
@@ -13,54 +18,44 @@
|
|||||||
type: custom:layout-card
|
type: custom:layout-card
|
||||||
layout_type: custom:horizontal-layout
|
layout_type: custom:horizontal-layout
|
||||||
layout:
|
layout:
|
||||||
max_cols: 2
|
max_cols: 3
|
||||||
cards:
|
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
|
- type: vertical-stack
|
||||||
cards:
|
cards:
|
||||||
- type: custom:decluttering-card
|
- type: custom:decluttering-card
|
||||||
template: climate_card
|
template: v3_title
|
||||||
variables:
|
variables:
|
||||||
- title: "Climate"
|
- title: Hallway
|
||||||
- main_entity: sensor.hallway_weather_temperature
|
- type: horizontal-stack
|
||||||
- left_entity: sensor.hallway_weather_humidity
|
cards:
|
||||||
- right_entity: sensor.hallway_weather_pressure
|
- 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
|
||||||
|
|||||||
@@ -1,6 +1,11 @@
|
|||||||
- type: custom:mod-card
|
- type: custom:mod-card
|
||||||
style:
|
style:
|
||||||
layout-card:
|
layout-card:
|
||||||
|
.: |
|
||||||
|
* {
|
||||||
|
--primary-color: #58892D
|
||||||
|
}
|
||||||
|
|
||||||
$:
|
$:
|
||||||
horizontal-layout:
|
horizontal-layout:
|
||||||
$:
|
$:
|
||||||
@@ -9,72 +14,4 @@
|
|||||||
margin: 0 20px;
|
margin: 0 20px;
|
||||||
grid-gap: 20px;
|
grid-gap: 20px;
|
||||||
}
|
}
|
||||||
card:
|
card: !include kitchen_dashboard_card.yaml
|
||||||
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
|
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -1,6 +1,11 @@
|
|||||||
- type: custom:mod-card
|
- type: custom:mod-card
|
||||||
style:
|
style:
|
||||||
layout-card:
|
layout-card:
|
||||||
|
.: |
|
||||||
|
* {
|
||||||
|
--primary-color: #0040A0
|
||||||
|
}
|
||||||
|
|
||||||
$:
|
$:
|
||||||
horizontal-layout:
|
horizontal-layout:
|
||||||
$:
|
$:
|
||||||
@@ -16,137 +21,127 @@
|
|||||||
max_cols: 3
|
max_cols: 3
|
||||||
cards:
|
cards:
|
||||||
- type: vertical-stack
|
- type: vertical-stack
|
||||||
title: Living room
|
|
||||||
cards:
|
cards:
|
||||||
|
- type: custom:decluttering-card
|
||||||
|
template: v3_title
|
||||||
|
variables:
|
||||||
|
- title: Living room
|
||||||
- type: horizontal-stack
|
- type: horizontal-stack
|
||||||
cards:
|
cards:
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: default
|
template: v3_badge_temp
|
||||||
entity: light.living_room
|
entity: sensor.multisensor_6_temperature
|
||||||
name: Living room
|
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: default
|
template: v3_badge_humidity
|
||||||
entity: light.living_room_main
|
entity: sensor.multisensor_6_relative_humidity
|
||||||
name: Main
|
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: default
|
template: v3_badge_icon
|
||||||
entity: light.pc
|
entity: binary_sensor.living_room_right_window
|
||||||
name: PC
|
|
||||||
- type: custom:button-card
|
- type: custom:decluttering-card
|
||||||
template: default
|
template: v3_section_title
|
||||||
entity: light.living_room_ambient
|
variables:
|
||||||
name: Ambient
|
- title: Scenes
|
||||||
- type: vertical-stack
|
- 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
|
|
||||||
cards:
|
cards:
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: [small, scene]
|
template: v3_scene
|
||||||
entity: scene.living_room_ambient_neon
|
entity: scene.living_room_ambient_neon
|
||||||
name: Neon
|
name: Neon
|
||||||
variables:
|
variables:
|
||||||
scene_color_1: rgb(255, 0, 190)
|
scene_color_1: rgba(255, 0, 190, 0.7)
|
||||||
scene_color_2: rgb(0, 255, 190)
|
scene_color_2: rgba(0, 255, 190, 0.7)
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: [small, scene]
|
template: v3_scene
|
||||||
entity: scene.living_room_ambient_default
|
entity: scene.living_room_ambient_default
|
||||||
name: Regular
|
name: Warm
|
||||||
variables:
|
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
|
- type: horizontal-stack
|
||||||
title: Devices
|
|
||||||
cards:
|
cards:
|
||||||
- type: custom:button-card
|
- 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
|
entity: cover.living_room
|
||||||
name: Cover
|
name: Blinds
|
||||||
tap_action:
|
tap_action:
|
||||||
action: call-service
|
action: call-service
|
||||||
service: script.toggle_living_room_cover
|
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
|
- type: horizontal-stack
|
||||||
cards:
|
cards:
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: default
|
template: v3_button_radiator
|
||||||
entity: media_player.living_room_tv
|
entity: climate.living_room_radiator_mode
|
||||||
name: TV
|
name: Radiator
|
||||||
icon: mdi:television
|
- type: custom:button-card
|
||||||
|
template: v3_button_ac
|
||||||
|
entity: climate.toshiba_ac
|
||||||
|
name: AC
|
||||||
tap_action:
|
tap_action:
|
||||||
action: toggle
|
action: call-service
|
||||||
state:
|
service: script.toshiba_ac_toggle
|
||||||
- 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
|
- type: custom:button-card
|
||||||
template: [regular, progress]
|
template: v3_button_power
|
||||||
entity: sensor.desk_outlet_power
|
entity: switch.desk_outlet
|
||||||
name: Desk power
|
name: Desk Outlet
|
||||||
variables:
|
variables:
|
||||||
min_value: 1
|
power_sensor: sensor.desk_outlet_power
|
||||||
max_value: 800
|
|
||||||
normal_value: 100
|
|
||||||
high_value: 300
|
|
||||||
|
|
||||||
- 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
|
- type: vertical-stack
|
||||||
title: Camera
|
|
||||||
cards:
|
cards:
|
||||||
|
- type: custom:decluttering-card
|
||||||
|
template: v3_section_title
|
||||||
|
variables:
|
||||||
|
- title: Camera
|
||||||
- type: picture-glance
|
- type: picture-glance
|
||||||
camera_image: camera.mercury_amcrest_1
|
camera_image: camera.mercury_amcrest_1
|
||||||
entities: []
|
entities: []
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -1,6 +1,11 @@
|
|||||||
- type: custom:mod-card
|
- type: custom:mod-card
|
||||||
style:
|
style:
|
||||||
layout-card:
|
layout-card:
|
||||||
|
.: |
|
||||||
|
* {
|
||||||
|
--primary-color: #6A737A
|
||||||
|
}
|
||||||
|
|
||||||
$:
|
$:
|
||||||
horizontal-layout:
|
horizontal-layout:
|
||||||
$:
|
$:
|
||||||
@@ -13,78 +18,99 @@
|
|||||||
type: custom:layout-card
|
type: custom:layout-card
|
||||||
layout_type: custom:horizontal-layout
|
layout_type: custom:horizontal-layout
|
||||||
layout:
|
layout:
|
||||||
max_cols: 2
|
max_cols: 3
|
||||||
cards:
|
cards:
|
||||||
- type: vertical-stack
|
- type: vertical-stack
|
||||||
title: Temperature
|
|
||||||
cards:
|
cards:
|
||||||
- type: entities
|
- type: custom:decluttering-card
|
||||||
show_header_toggle: false
|
template: v3_title
|
||||||
entities:
|
variables:
|
||||||
- input_boolean.heating_enabled
|
- title: Preferences
|
||||||
- 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: vertical-stack
|
|
||||||
title: Controls
|
|
||||||
cards:
|
|
||||||
- type: horizontal-stack
|
- type: horizontal-stack
|
||||||
cards:
|
cards:
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: [default, with_state_indicator, with_state_background]
|
template: [v3_button, with_state_indicator]
|
||||||
entity: input_boolean.alarm_enabled
|
entity: input_boolean.alarm_enabled
|
||||||
state_display: >-
|
state_display: >-
|
||||||
[[[
|
[[[
|
||||||
|
if (entity.state === 'off') { return 'Off'; }
|
||||||
const time = states['input_datetime.alarm_time'].state;
|
const time = states['input_datetime.alarm_time'].state;
|
||||||
return time.split(':').slice(0, -1).join(':');
|
return time.split(':').slice(0, -1).join(':');
|
||||||
]]]
|
]]]
|
||||||
show_state: true
|
name: Alarm
|
||||||
show_name: false
|
|
||||||
styles:
|
|
||||||
icon:
|
|
||||||
- transform: translateY(0) # adjusted for state indicator size
|
|
||||||
state:
|
|
||||||
- transform: translateY(-8px) # adjusted for state indicator size
|
|
||||||
variables:
|
variables:
|
||||||
state_indicator_id: automation.alarm_set_time
|
state_indicator_id: automation.alarm_set_time
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: default
|
template: v3_button
|
||||||
entity: input_boolean.speech_notifications
|
entity: input_boolean.speech_notifications
|
||||||
name: Speech
|
name: Speech
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: default
|
template: v3_button
|
||||||
entity: binary_sensor.house_mode
|
entity: input_select.house_mode
|
||||||
name: House
|
name: House
|
||||||
tap_action:
|
tap_action:
|
||||||
action: call-service
|
action: call-service
|
||||||
service: input_select.select_next
|
service: input_select.select_next
|
||||||
service_data:
|
service_data:
|
||||||
entity_id: input_select.house_mode
|
entity_id: input_select.house_mode
|
||||||
- type: custom:button-card
|
|
||||||
template: default
|
|
||||||
name: Guests
|
|
||||||
entity: input_boolean.guest_mode
|
|
||||||
|
|
||||||
- type: horizontal-stack
|
- type: horizontal-stack
|
||||||
cards:
|
cards:
|
||||||
- type: custom:button-card
|
- 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
|
entity: input_boolean.simulation_mode
|
||||||
name: Simulation
|
name: Simulation
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: default
|
template: v3_button
|
||||||
entity: switch.mercury_home_mode
|
entity: switch.mercury_home_mode
|
||||||
name: Mercury
|
name: Mercury
|
||||||
|
- type: horizontal-stack
|
||||||
|
cards:
|
||||||
- type: custom:button-card
|
- type: custom:button-card
|
||||||
template: default
|
template: v3_button
|
||||||
entity: binary_sensor.pi_hole_enabled
|
entity: binary_sensor.pi_hole_enabled
|
||||||
name: Pi-Hole
|
name: Pi-Hole
|
||||||
icon: mdi: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
|
||||||
|
|||||||
@@ -1,10 +1,15 @@
|
|||||||
binary_sensor.house_mode:
|
binary_sensor.house_mode:
|
||||||
title: House mode
|
title: House mode
|
||||||
style: &popup_style
|
style: &popup_style |
|
||||||
"--ha-card-border-radius": 0 0 0.8em 0.8em
|
ha-dialog {
|
||||||
border-radius: 0.8em
|
--mdc-dialog-min-width: 400px !important;
|
||||||
opacity: 0.95
|
--mdc-dialog-max-width: 500px !important;
|
||||||
width: 500px
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
width: auto !important;
|
||||||
|
}
|
||||||
|
|
||||||
card:
|
card:
|
||||||
type: entities
|
type: entities
|
||||||
entities:
|
entities:
|
||||||
@@ -79,38 +84,45 @@ binary_sensor.camera_state:
|
|||||||
show_name: true
|
show_name: true
|
||||||
show_state: true
|
show_state: true
|
||||||
|
|
||||||
media_player.kitchen:
|
media_player.living_room:
|
||||||
title: Kitchen Sonos
|
title: Living room Sonos
|
||||||
style: *popup_style
|
|
||||||
card:
|
card:
|
||||||
type: custom:decluttering-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:
|
variables:
|
||||||
- player: media_player.kitchen
|
- player: media_player.kitchen
|
||||||
- name: Kitchen
|
- player_name: Kitchen
|
||||||
- sync_volume: false
|
- title: ""
|
||||||
|
|
||||||
media_player.bathroom:
|
media_player.bathroom:
|
||||||
title: Bathroom Sonos
|
title: Bathroom Sonos
|
||||||
style: *popup_style
|
|
||||||
card:
|
card:
|
||||||
type: custom:decluttering-card
|
type: custom:decluttering-card
|
||||||
template: sonos_media_player
|
template: v3_media_with_controls
|
||||||
variables:
|
variables:
|
||||||
- player: media_player.bathroom
|
- player: media_player.bathroom
|
||||||
- name: Bathroom
|
- player_name: Bathroom
|
||||||
- sync_volume: false
|
- title: ""
|
||||||
|
|
||||||
media_player.master_bedroom:
|
media_player.master_bedroom:
|
||||||
title: Master bedroom Sonos
|
title: Bedroom Sonos
|
||||||
style: *popup_style
|
|
||||||
card:
|
card:
|
||||||
type: custom:decluttering-card
|
type: custom:decluttering-card
|
||||||
template: sonos_media_player
|
template: v3_media_with_controls
|
||||||
variables:
|
variables:
|
||||||
- player: media_player.master_bedroom
|
- player: media_player.master_bedroom
|
||||||
- name: Bedroom
|
- player_name: Bedroom
|
||||||
- sync_volume: false
|
- title: ""
|
||||||
|
|
||||||
media_player.nvidia_shield: &nvidia_shield
|
media_player.nvidia_shield: &nvidia_shield
|
||||||
title: TV
|
title: TV
|
||||||
@@ -150,20 +162,21 @@ media_player.nvidia_shield: &nvidia_shield
|
|||||||
action: call-service
|
action: call-service
|
||||||
service: script.tv_bulsatcom_toggle
|
service: script.tv_bulsatcom_toggle
|
||||||
|
|
||||||
- type: "custom:mini-media-player"
|
- type: custom:mini-media-player
|
||||||
entity: media_player.nvidia_shield
|
entity: media_player.nvidia_shield
|
||||||
|
|
||||||
- type: "custom:mini-media-player"
|
- type: custom:mini-media-player
|
||||||
entity: media_player.living_room_tv
|
entity: media_player.living_room_tv
|
||||||
|
|
||||||
- type: custom:decluttering-card
|
- type: custom:decluttering-card
|
||||||
template: sonos_media_player
|
template: sonos_media_player
|
||||||
variables:
|
variables:
|
||||||
- player: media_player.living_room
|
- player: media_player.living_room
|
||||||
- name: Living room
|
- name: Sonos
|
||||||
- sync_volume: false
|
- sync_volume: false
|
||||||
|
|
||||||
- type: horizontal-stack
|
- type: horizontal-stack
|
||||||
|
title: Remotes
|
||||||
cards:
|
cards:
|
||||||
- type: custom:decluttering-card
|
- type: custom:decluttering-card
|
||||||
template: hdmi_switch_remote_card
|
template: hdmi_switch_remote_card
|
||||||
@@ -172,23 +185,112 @@ media_player.nvidia_shield: &nvidia_shield
|
|||||||
|
|
||||||
media_player.living_room_tv: *nvidia_shield
|
media_player.living_room_tv: *nvidia_shield
|
||||||
|
|
||||||
light.living_room_main:
|
|
||||||
title: Living room lights
|
sensor.active_motion_sensors:
|
||||||
style: *popup_style
|
title: Active motion sensors
|
||||||
card:
|
card:
|
||||||
type: custom:mod-card
|
type: vertical-stack
|
||||||
card:
|
cards:
|
||||||
type: custom:light-popup-card
|
- type: horizontal-stack
|
||||||
entity: light.living_room_main
|
cards:
|
||||||
fullscreen: false
|
- type: custom:button-card
|
||||||
supportedFeaturesTreshold: -1
|
template: v3_button
|
||||||
actionsInARow: 2
|
entity: binary_sensor.hallway_motion_occupancy
|
||||||
actions:
|
name: Hallway Entrance
|
||||||
- service: light.toggle
|
styles:
|
||||||
service_data:
|
card:
|
||||||
entity_id: light.living_room_main
|
- margin-left: 8px
|
||||||
color: "#ffffcc"
|
variables:
|
||||||
name: Toggle
|
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:
|
sensor.bedroom_weather_temperature:
|
||||||
title: Bedroom climate
|
title: Bedroom climate
|
||||||
|
|||||||
@@ -14,8 +14,6 @@
|
|||||||
type: module
|
type: module
|
||||||
- url: /hacsfiles/decluttering-card/decluttering-card.js
|
- url: /hacsfiles/decluttering-card/decluttering-card.js
|
||||||
type: module
|
type: module
|
||||||
- url: /hacsfiles/lovelace-gui-sandbox/gui-sandbox.js
|
|
||||||
type: module
|
|
||||||
- url: /hacsfiles/hass-bha-icons/hass-bha-icons.js
|
- url: /hacsfiles/hass-bha-icons/hass-bha-icons.js
|
||||||
type: module
|
type: module
|
||||||
- url: /hacsfiles/kiosk-mode/kiosk-mode.js
|
- url: /hacsfiles/kiosk-mode/kiosk-mode.js
|
||||||
@@ -46,6 +44,8 @@
|
|||||||
type: module
|
type: module
|
||||||
- url: /hacsfiles/kb-better-graph-colors/kb-better-graph-colors.js
|
- url: /hacsfiles/kb-better-graph-colors/kb-better-graph-colors.js
|
||||||
type: module
|
type: module
|
||||||
|
- url: /hacsfiles/lovelace-swipe-navigation/swipe-navigation.js
|
||||||
|
type: module
|
||||||
- url: /hacsfiles/lovelace-template-entity-row/template-entity-row.js
|
- url: /hacsfiles/lovelace-template-entity-row/template-entity-row.js
|
||||||
type: module
|
type: module
|
||||||
- url: /hacsfiles/travel-time-card/travel-time-card.js
|
- url: /hacsfiles/travel-time-card/travel-time-card.js
|
||||||
|
|||||||
@@ -272,7 +272,7 @@ automation:
|
|||||||
entity_id: fan.philips_airpurifier
|
entity_id: fan.philips_airpurifier
|
||||||
state: "off"
|
state: "off"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: input_boolean.georgi_home
|
entity_id: input_boolean.someone_home
|
||||||
state: "on"
|
state: "on"
|
||||||
action:
|
action:
|
||||||
- service: fan.turn_on
|
- service: fan.turn_on
|
||||||
@@ -299,7 +299,7 @@ automation:
|
|||||||
condition: and
|
condition: and
|
||||||
conditions:
|
conditions:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: input_boolean.georgi_home
|
entity_id: input_boolean.someone_home
|
||||||
state: "on"
|
state: "on"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: fan.philips_airpurifier
|
entity_id: fan.philips_airpurifier
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ automation:
|
|||||||
- alias: "Hallway tablet · Set to home after 10 minutes"
|
- alias: "Hallway tablet · Set to home after 10 minutes"
|
||||||
trigger:
|
trigger:
|
||||||
platform: state
|
platform: state
|
||||||
entity_id: binary_sensor.georgi_home
|
entity_id: binary_sensor.someone_home
|
||||||
to: "on"
|
to: "on"
|
||||||
for:
|
for:
|
||||||
minutes: 10
|
minutes: 10
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ script:
|
|||||||
- service: input_number.set_value
|
- service: input_number.set_value
|
||||||
entity_id: input_number.brita_remaining_liters
|
entity_id: input_number.brita_remaining_liters
|
||||||
data:
|
data:
|
||||||
value: 150
|
value: 100
|
||||||
- service: input_datetime.set_datetime
|
- service: input_datetime.set_datetime
|
||||||
entity_id: input_datetime.brita_next_change
|
entity_id: input_datetime.brita_next_change
|
||||||
data_template:
|
data_template:
|
||||||
|
|||||||
@@ -128,7 +128,7 @@ script:
|
|||||||
entity_id: sensor.dark_sky_apparent_temperature
|
entity_id: sensor.dark_sky_apparent_temperature
|
||||||
above: 23
|
above: 23
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: input_boolean.georgi_home
|
entity_id: input_boolean.someone_home
|
||||||
state: "on"
|
state: "on"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: binary_sensor.living_room_right_window
|
entity_id: binary_sensor.living_room_right_window
|
||||||
|
|||||||
@@ -144,6 +144,7 @@ automation:
|
|||||||
action:
|
action:
|
||||||
- service: media_player.turn_on
|
- service: media_player.turn_on
|
||||||
entity_id: media_player.living_room_tv
|
entity_id: media_player.living_room_tv
|
||||||
|
- delay: "00:00:15"
|
||||||
- service: media_player.select_source
|
- service: media_player.select_source
|
||||||
entity_id: media_player.living_room_tv
|
entity_id: media_player.living_room_tv
|
||||||
data:
|
data:
|
||||||
|
|||||||
@@ -7,7 +7,6 @@ input_number:
|
|||||||
radiators_temperature:
|
radiators_temperature:
|
||||||
name: Radiators target temperature
|
name: Radiators target temperature
|
||||||
unit_of_measurement: "°C"
|
unit_of_measurement: "°C"
|
||||||
mode: box
|
|
||||||
min: 22
|
min: 22
|
||||||
max: 27
|
max: 27
|
||||||
step: 0.5
|
step: 0.5
|
||||||
@@ -31,7 +30,7 @@ script:
|
|||||||
entity_id: input_boolean.heating_enabled
|
entity_id: input_boolean.heating_enabled
|
||||||
state: "on"
|
state: "on"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: binary_sensor.georgi_home
|
entity_id: binary_sensor.someone_home
|
||||||
state: "on"
|
state: "on"
|
||||||
- service: climate.turn_on
|
- service: climate.turn_on
|
||||||
data_template:
|
data_template:
|
||||||
@@ -66,7 +65,7 @@ script:
|
|||||||
entity_id: input_boolean.heating_enabled
|
entity_id: input_boolean.heating_enabled
|
||||||
state: "on"
|
state: "on"
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: binary_sensor.georgi_home
|
entity_id: binary_sensor.someone_home
|
||||||
state: "on"
|
state: "on"
|
||||||
- service: script.maybe_turn_radiator_on
|
- service: script.maybe_turn_radiator_on
|
||||||
data:
|
data:
|
||||||
|
|||||||
@@ -38,6 +38,22 @@ script:
|
|||||||
entity_id: scene.bedroom_ambient_pink
|
entity_id: scene.bedroom_ambient_pink
|
||||||
|
|
||||||
scene:
|
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
|
- name: Bedroom Ambient Neon
|
||||||
icon: "mdi:weather-night"
|
icon: "mdi:weather-night"
|
||||||
entities:
|
entities:
|
||||||
@@ -50,6 +66,22 @@ scene:
|
|||||||
xy_color: [0.66, 0.28]
|
xy_color: [0.66, 0.28]
|
||||||
brightness: 254
|
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
|
- name: Bedroom Ambient Pink
|
||||||
icon: "mdi:weather-night"
|
icon: "mdi:weather-night"
|
||||||
entities:
|
entities:
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ automation:
|
|||||||
to: "on"
|
to: "on"
|
||||||
condition:
|
condition:
|
||||||
condition: state
|
condition: state
|
||||||
entity_id: binary_sensor.georgi_home
|
entity_id: binary_sensor.someone_home
|
||||||
state: "on"
|
state: "on"
|
||||||
action:
|
action:
|
||||||
- choose:
|
- choose:
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ automation:
|
|||||||
to: "on"
|
to: "on"
|
||||||
condition:
|
condition:
|
||||||
condition: state
|
condition: state
|
||||||
entity_id: binary_sensor.georgi_home
|
entity_id: binary_sensor.someone_home
|
||||||
state: "on"
|
state: "on"
|
||||||
action:
|
action:
|
||||||
- choose:
|
- choose:
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ automation:
|
|||||||
offset: "-00:30:00"
|
offset: "-00:30:00"
|
||||||
condition:
|
condition:
|
||||||
- condition: state
|
- condition: state
|
||||||
entity_id: binary_sensor.georgi_home
|
entity_id: binary_sensor.someone_home
|
||||||
state: "on"
|
state: "on"
|
||||||
action:
|
action:
|
||||||
- service: light.turn_on
|
- service: light.turn_on
|
||||||
|
|||||||
@@ -255,7 +255,7 @@ homeassistant:
|
|||||||
icon: mdi:ceiling-light
|
icon: mdi:ceiling-light
|
||||||
|
|
||||||
light.living_room_main:
|
light.living_room_main:
|
||||||
icon: bha:ceiling-lamp-plafond
|
icon: bha:ceiling-spot-lamp
|
||||||
|
|
||||||
light.pc:
|
light.pc:
|
||||||
friendly_name: PC
|
friendly_name: PC
|
||||||
@@ -273,23 +273,23 @@ homeassistant:
|
|||||||
|
|
||||||
light.master_bedroom_main:
|
light.master_bedroom_main:
|
||||||
friendly_name: Bedroom main
|
friendly_name: Bedroom main
|
||||||
icon: bha:ceiling-lamp-plafond
|
icon: bha:ceiling-spot-lamp
|
||||||
|
|
||||||
light.bedside:
|
light.bedside:
|
||||||
icon: mdi:desk-lamp
|
icon: mdi:desk-lamp
|
||||||
|
|
||||||
# Kitchen
|
# Kitchen
|
||||||
light.kitchen_main:
|
light.kitchen_main:
|
||||||
icon: bha:ceiling-lamp-plafond
|
icon: bha:ceiling-spot-lamp
|
||||||
light.kitchen_secondary:
|
light.kitchen_secondary:
|
||||||
icon: bha:ceiling-lamp-plafond
|
icon: bha:ceiling-spot-lamp
|
||||||
|
|
||||||
# Hallway
|
# Hallway
|
||||||
light.hallway:
|
light.hallway:
|
||||||
icon: mdi:lightbulb-group
|
icon: mdi:lightbulb-group
|
||||||
|
|
||||||
light.hallway_entrance:
|
light.hallway_entrance:
|
||||||
icon: bha:ceiling-lamp-plafond
|
icon: bha:ceiling-spot-lamp
|
||||||
|
|
||||||
light.hallway_main:
|
light.hallway_main:
|
||||||
icon: bha:ceiling-lamp-plafond
|
icon: bha:ceiling-spot-lamp
|
||||||
|
|||||||
@@ -26,40 +26,52 @@ homekit:
|
|||||||
filter:
|
filter:
|
||||||
include_entities:
|
include_entities:
|
||||||
# Living Room
|
# Living Room
|
||||||
|
- light.living_room
|
||||||
- light.living_room_main
|
- light.living_room_main
|
||||||
- light.living_room_ambient
|
- light.living_room_ambient
|
||||||
- light.pc
|
- light.pc
|
||||||
- binary_sensor.living_room_right_window
|
- binary_sensor.living_room_right_window
|
||||||
- sensor.multisensor_6_temperature
|
- camera.mercury_amcrest_1
|
||||||
- sensor.multisensor_6_relative_humidity
|
- climate.living_room_radiator_mode
|
||||||
- climate.toshiba_ac
|
- climate.toshiba_ac
|
||||||
- switch.desk_outlet
|
- cover.living_room
|
||||||
- switch.titanium
|
- media_player.living_room
|
||||||
- sensor.living_room_radiator_temperature
|
- media_player.living_room_tv
|
||||||
- media_player.nvidia_shield
|
- 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
|
# Bedroom
|
||||||
|
- light.master_bedroom
|
||||||
- light.master_bedroom_main
|
- light.master_bedroom_main
|
||||||
- light.bedside
|
- light.bedside
|
||||||
- light.bed_led
|
- 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_door
|
||||||
- binary_sensor.bedroom_left_window
|
- binary_sensor.bedroom_left_window
|
||||||
- binary_sensor.bedroom_right_window
|
- binary_sensor.bedroom_right_window
|
||||||
|
- camera.bedroom_hd
|
||||||
|
- climate.bedroom_radiator_mode
|
||||||
|
- fan.philips_airpurifier
|
||||||
- media_player.master_bedroom
|
- media_player.master_bedroom
|
||||||
|
- sensor.bedroom_weather_humidity
|
||||||
|
- sensor.bedroom_weather_temperature
|
||||||
|
- sensor.purifier_air_quality
|
||||||
|
- sensor.purifier_allergens
|
||||||
|
|
||||||
# Kitchen
|
# Kitchen
|
||||||
|
- light.kitchen
|
||||||
- light.kitchen_main
|
- light.kitchen_main
|
||||||
- light.kitchen_secondary
|
- light.kitchen_secondary
|
||||||
- climate.kitchen_radiator_mode
|
- climate.kitchen_radiator_mode
|
||||||
- binary_sensor.kitchen_motion_occupancy
|
- binary_sensor.kitchen_motion_occupancy
|
||||||
- binary_sensor.kitchen_window
|
- binary_sensor.kitchen_window
|
||||||
- sensor.kitchen_weather_temperature
|
- input_number.brita_remaining_liters
|
||||||
|
- script.brita_pour_water
|
||||||
- sensor.kitchen_weather_humidity
|
- sensor.kitchen_weather_humidity
|
||||||
|
- sensor.kitchen_weather_temperature
|
||||||
- vacuum.vacuum
|
- vacuum.vacuum
|
||||||
|
|
||||||
# Bathroom
|
# Bathroom
|
||||||
@@ -67,6 +79,7 @@ homekit:
|
|||||||
- sensor.bathroom_weather_humidity
|
- sensor.bathroom_weather_humidity
|
||||||
|
|
||||||
# Hallway
|
# Hallway
|
||||||
|
- light.hallway
|
||||||
- light.hallway_entrance
|
- light.hallway_entrance
|
||||||
- light.hallway_main
|
- light.hallway_main
|
||||||
- group.hallway_motion
|
- group.hallway_motion
|
||||||
|
|||||||
@@ -84,13 +84,6 @@ binary_sensor:
|
|||||||
device_class: motion
|
device_class: motion
|
||||||
value_template: "{{ is_state('sensor.multisensor_6_burglar', '8') }}"
|
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:
|
sensor:
|
||||||
- platform: history_stats
|
- platform: history_stats
|
||||||
name: Quarantined percent
|
name: Quarantined percent
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ script:
|
|||||||
{% if (is_state('media_player.master_bedroom', 'playing')
|
{% if (is_state('media_player.master_bedroom', 'playing')
|
||||||
and is_state('binary_sensor.sonos_recoverable', 'off'))
|
and is_state('binary_sensor.sonos_recoverable', 'off'))
|
||||||
or is_state('input_boolean.speech_notifications', '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
|
notify.telegram
|
||||||
{% else %}
|
{% else %}
|
||||||
{% if is_state('media_player.master_bedroom', 'playing')
|
{% if is_state('media_player.master_bedroom', 'playing')
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
|
group:
|
||||||
|
all_doors:
|
||||||
|
name: All doors
|
||||||
|
entities:
|
||||||
|
- binary_sensor.front_door
|
||||||
|
- binary_sensor.bedroom_door
|
||||||
|
|
||||||
sensor:
|
sensor:
|
||||||
- platform: mqtt
|
- platform: mqtt
|
||||||
name: "Bedroom door battery"
|
name: "Bedroom door battery"
|
||||||
@@ -31,6 +38,15 @@ sensor:
|
|||||||
unit_of_measurement: "lqi"
|
unit_of_measurement: "lqi"
|
||||||
value_template: "{{ value_json.linkquality }}"
|
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:
|
binary_sensor:
|
||||||
- platform: mqtt
|
- platform: mqtt
|
||||||
name: "Bedroom door"
|
name: "Bedroom door"
|
||||||
|
|||||||
@@ -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:
|
binary_sensor:
|
||||||
- platform: mqtt
|
- platform: mqtt
|
||||||
name: "Hallway motion occupancy"
|
name: "Hallway motion occupancy"
|
||||||
@@ -60,3 +75,11 @@ sensor:
|
|||||||
icon: "mdi:signal"
|
icon: "mdi:signal"
|
||||||
unit_of_measurement: "lqi"
|
unit_of_measurement: "lqi"
|
||||||
value_template: "{{ value_json.linkquality }}"
|
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 }}
|
||||||
|
|||||||
@@ -2,45 +2,54 @@ decluttering_templates: !include_dir_merge_named lovelace/decluttering_templates
|
|||||||
button_card_templates: !include_dir_merge_named lovelace/button_card_templates
|
button_card_templates: !include_dir_merge_named lovelace/button_card_templates
|
||||||
popup_cards: !include lovelace/popup_cards.yaml
|
popup_cards: !include lovelace/popup_cards.yaml
|
||||||
|
|
||||||
|
swipe_nav:
|
||||||
|
swipe_amount: 30
|
||||||
|
skip_tabs: 5
|
||||||
|
|
||||||
|
kiosk_mode:
|
||||||
|
hide_overflow: true
|
||||||
|
|
||||||
title: Home
|
title: Home
|
||||||
views:
|
views:
|
||||||
- title: Home
|
- title: Living Room
|
||||||
path: default_view
|
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"
|
icon: "mdi:sofa"
|
||||||
panel: true
|
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
|
cards: !include lovelace/home_dashboard/living_room_dashboard.yaml
|
||||||
- title: Master bedroom
|
theme: sarah-noctis-grey
|
||||||
path: master_bedroom
|
- title: Bedroom
|
||||||
|
path: bedroom
|
||||||
icon: "mdi:bed-empty"
|
icon: "mdi:bed-empty"
|
||||||
panel: true
|
panel: true
|
||||||
|
background: 'center / cover no-repeat url("/local/images/wallpapers-3/bedroom.jpg") #871CAB fixed'
|
||||||
cards: !include lovelace/home_dashboard/bedroom_dashboard.yaml
|
cards: !include lovelace/home_dashboard/bedroom_dashboard.yaml
|
||||||
|
theme: sarah-noctis-grey
|
||||||
- title: Kitchen
|
- title: Kitchen
|
||||||
path: kitchen
|
path: kitchen
|
||||||
icon: "mdi:chef-hat"
|
icon: "mdi:chef-hat"
|
||||||
panel: true
|
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
|
cards: !include lovelace/home_dashboard/kitchen_dashboard.yaml
|
||||||
|
theme: sarah-noctis-grey
|
||||||
- title: Bathroom
|
- title: Bathroom
|
||||||
path: bathroom
|
path: bathroom
|
||||||
icon: "mdi:shower-head"
|
icon: "mdi:shower-head"
|
||||||
panel: true
|
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
|
cards: !include lovelace/home_dashboard/bathroom_dashboard.yaml
|
||||||
|
theme: sarah-noctis-grey
|
||||||
- title: Hallway
|
- title: Hallway
|
||||||
path: hallway
|
path: hallway
|
||||||
icon: "mdi:door-closed"
|
icon: "mdi:door-closed"
|
||||||
panel: true
|
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
|
cards: !include lovelace/home_dashboard/hallway_dashboard.yaml
|
||||||
|
theme: sarah-noctis-grey
|
||||||
- title: Preferences
|
- title: Preferences
|
||||||
path: preferences
|
path: Preferences
|
||||||
icon: "mdi:cogs"
|
icon: "mdi:cogs"
|
||||||
panel: true
|
panel: true
|
||||||
|
background: 'center / cover no-repeat url("/local/images/wallpapers-3/preferences.jpg") #6A737A fixed'
|
||||||
cards: !include lovelace/home_dashboard/preferences_dashboard.yaml
|
cards: !include lovelace/home_dashboard/preferences_dashboard.yaml
|
||||||
- title: Cameras
|
theme: sarah-noctis-grey
|
||||||
path: cameras
|
|
||||||
icon: "mdi:webcam"
|
|
||||||
panel: true
|
|
||||||
cards: !include lovelace/home_dashboard/cameras_dashboard.yaml
|
|
||||||
|
|||||||
|
After Width: | Height: | Size: 145 KiB |
|
After Width: | Height: | Size: 144 KiB |
|
After Width: | Height: | Size: 142 KiB |
|
After Width: | Height: | Size: 123 KiB |
|
After Width: | Height: | Size: 137 KiB |
|
After Width: | Height: | Size: 184 KiB |
|
After Width: | Height: | Size: 184 KiB |
|
After Width: | Height: | Size: 175 KiB |
|
After Width: | Height: | Size: 165 KiB |
|
After Width: | Height: | Size: 154 KiB |
|
After Width: | Height: | Size: 118 KiB |
|
After Width: | Height: | Size: 105 KiB |