355 lines
14 KiB
YAML
355 lines
14 KiB
YAML
views:
|
|
- title: Home
|
|
sections:
|
|
- type: grid
|
|
cards:
|
|
- square: false
|
|
type: grid
|
|
cards:
|
|
- type: custom:better-moment-card
|
|
parentStyle: |
|
|
line-height:normal;
|
|
moment:
|
|
- parentStyle: |
|
|
font-size:1em; text-align:center; margin-top:5px;
|
|
templateRaw: |
|
|
{{moment format=cccc}}
|
|
- parentStyle: |
|
|
font-size:1.5em; text-align:center; margin-top:5px;
|
|
templateRaw: |
|
|
{{moment format=LLLL dd, yyyy}}
|
|
- parentStyle: |
|
|
font-size:4em; text-align:center; font-weight:400;
|
|
templateRaw: |
|
|
{{moment format=hh:mm}}
|
|
card_mod:
|
|
style: |
|
|
ha-card {
|
|
background: transparent !important;
|
|
box-shadow: none !important;
|
|
border: none !important;
|
|
}
|
|
- type: custom:weather-card
|
|
entity: weather.forecast_home
|
|
current: true
|
|
details: true
|
|
forecast: false
|
|
- type: weather-forecast
|
|
entity: weather.forecast_home
|
|
show_current: false
|
|
show_forecast: true
|
|
forecast_type: daily
|
|
name: Weather Forecast
|
|
card_mod:
|
|
style: |
|
|
ha-card {
|
|
background: transparent !important;
|
|
box-shadow: none !important;
|
|
border: none !important;
|
|
}
|
|
grid_options:
|
|
columns: full
|
|
column_span: 4
|
|
- type: grid
|
|
cards:
|
|
- type: horizontal-stack
|
|
cards:
|
|
- type: custom:bubble-card
|
|
card_type: button
|
|
button_type: state
|
|
entity: person.brian
|
|
scrolling_effect: false
|
|
show_icon: true
|
|
show_name: true
|
|
show_state: false
|
|
tap_action:
|
|
action: perform-action
|
|
perform_action: script.brian_calendar_visible_filter
|
|
target: {}
|
|
button_action:
|
|
tap_action:
|
|
action: perform-action
|
|
perform_action: script.brian_calendar_visible_filter
|
|
target: {}
|
|
styles: |
|
|
.bubble-button-background {
|
|
opacity: 1 !important;
|
|
background-color: ${hass.states['input_text.brian_calendar_filter'].state === '.*' ? 'light-grey' : 'rgba(15, 208, 184, 0.3)'} !important;}
|
|
}
|
|
- type: custom:bubble-card
|
|
card_type: button
|
|
button_type: state
|
|
entity: person.brian
|
|
name: Dogs
|
|
scrolling_effect: false
|
|
show_icon: true
|
|
show_name: true
|
|
show_state: false
|
|
tap_action:
|
|
action: perform-action
|
|
perform_action: script.dog_calendar_visible_filter
|
|
target: {}
|
|
button_action:
|
|
tap_action:
|
|
action: perform-action
|
|
perform_action: script.dog_calendar_visible_filter
|
|
target: {}
|
|
styles: |
|
|
.bubble-button-background {
|
|
opacity: 1 !important;
|
|
background-color: ${hass.states['input_text.dog_calendar_filter'].state === '.*' ? 'light-grey' : 'rgba(15, 100, 255, 0.5)'} !important;}
|
|
}
|
|
- type: custom:bubble-card
|
|
card_type: button
|
|
button_type: name
|
|
card_layout: large
|
|
name: Add Event
|
|
icon: mdi:calendar-plus
|
|
tap_action:
|
|
action: navigate
|
|
navigation_path: '#addcalendarevent'
|
|
button_action:
|
|
tap_action:
|
|
action: navigate
|
|
navigation_path: '#addcalendarevent'
|
|
styles: |
|
|
* {
|
|
font-size: 1.05em !important;
|
|
}
|
|
ha-card {
|
|
--bubble-main-background-color: #393745 !important;
|
|
width: 300px;
|
|
}
|
|
.bubble-icon {
|
|
--mdc-icon-size: 30px !important;
|
|
color: snow !important;
|
|
opacity: 1;
|
|
}
|
|
.bubble-icon-container {
|
|
background: #393745 !important;
|
|
display: flex;
|
|
|
|
}
|
|
.bubble-name {
|
|
color: snow !important;
|
|
opacity: 1;
|
|
display: flex;
|
|
line-height: 18px;
|
|
flex-direction: row;
|
|
justify-content: center;
|
|
flex-grow: 1;
|
|
margin: 0 40px 0 0;
|
|
pointer-events: none;
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
- type: custom:bubble-card
|
|
card_type: select
|
|
entity: input_select.calendar_view
|
|
show_name: true
|
|
show_state: true
|
|
name: Select View
|
|
show_last_changed: false
|
|
show_attribute: false
|
|
grid_options:
|
|
columns: full
|
|
- type: custom:config-template-card
|
|
entities:
|
|
- input_text.brian_calendar_filter
|
|
- input_text.dog_calendar_filter
|
|
- inpup_select.calendar_view
|
|
variables:
|
|
PERSONCAL: states['input_text.brian_calendar_filter']?.state
|
|
DOGCAL: states['input_text.dog_calendar_filter']?.state
|
|
VIEW: states['input_select.calendar_view']?.state
|
|
DAYS: |
|
|
(() => {
|
|
const calendarView = states['input_select.calendar_view']?.state;
|
|
|
|
if (calendarView === 'Today') return 1;
|
|
if (calendarView === 'Tomorrow') return 2;
|
|
|
|
// Check for Month, Biweek, or Week based on screen width
|
|
if (calendarView === 'Week') return 7;
|
|
if (calendarView === 'Biweek') return 14;
|
|
if (calendarView === 'Month') return 28;
|
|
if (calendarView === 'Bimonth') return 56;
|
|
|
|
// Default fallback to 7 if no condition matches
|
|
return 28;
|
|
})()
|
|
card:
|
|
type: custom:week-planner-card
|
|
calendars:
|
|
- entity: calendar.personal
|
|
name: brian
|
|
color: rgba(15, 208, 184, 0.3)
|
|
filter: ${ PERSONCAL }
|
|
- entity: calendar.dogs
|
|
name: dogs
|
|
color: rgba(15, 100, 255, 0.5)
|
|
filter: ${ DOGCAL }
|
|
days: ${ DAYS }
|
|
startingDayOffset: 0
|
|
startingDay: sunday
|
|
hideWeekend: false
|
|
noCardBackground: false
|
|
compact: false
|
|
weather:
|
|
showCondition: true
|
|
showTemperature: true
|
|
showLowTemperature: true
|
|
useTwiceDaily: false
|
|
entity: weather.forecast_home
|
|
locale: en
|
|
timeFormat: hh:mm
|
|
showLocation: false
|
|
hidePastEvents: false
|
|
hideDaysWithoutEvents: false
|
|
hideTodayWithoutEvents: false
|
|
combineSimilarEvents: true
|
|
showLegend: false
|
|
legendToggle: false
|
|
texts:
|
|
monday: Mon
|
|
tuesday: Tue
|
|
wednesday: Wed
|
|
thursday: Thu
|
|
friday: Fri
|
|
saturday: Sat
|
|
sunday: Sun
|
|
yesterday: ''
|
|
today: ''
|
|
tomorrow: ''
|
|
card_mod:
|
|
style: |
|
|
ha-card {
|
|
.event.past {
|
|
opacity: .2;
|
|
background-color: gray !important;
|
|
}
|
|
.time {
|
|
color: #333333 !important;
|
|
font-size: 0.8em !important;
|
|
}
|
|
.event {
|
|
color: #333333 !important;
|
|
line-height: 16px !important;
|
|
background-color: var(--border-color) !important;
|
|
border-radius: 10px !important;
|
|
max-height: 80px !important;
|
|
overflow: hidden !important;
|
|
font-size: 1.1em !important;
|
|
}
|
|
.none {
|
|
background-color: transparent !important;
|
|
}
|
|
.today .number {
|
|
border-radius: 5px;
|
|
background-color: orange !important;
|
|
padding-left: 4px;
|
|
padding-right: 4px;
|
|
|
|
}
|
|
.day .date .text {
|
|
font-size: 1em !important;
|
|
font-weight: bold !important;
|
|
}
|
|
.day .date .number {
|
|
font-weight: bold !important;
|
|
font-size: 3em !important;
|
|
}
|
|
.day {
|
|
border-radius: 8px;
|
|
--background-color: red;
|
|
border: solid 1px whitesmoke;
|
|
padding: 0.2%;
|
|
width: 13% !important;
|
|
}
|
|
|
|
|
|
|
|
}
|
|
grid_options:
|
|
columns: full
|
|
- type: vertical-stack
|
|
cards:
|
|
- type: custom:bubble-card
|
|
card_type: pop-up
|
|
hash: '#addcalendarevent'
|
|
button_type: name
|
|
name: Add Calendar Event
|
|
icon: mdi:calendar-plus
|
|
scrolling_effect: false
|
|
show_icon: true
|
|
show_name: true
|
|
styles: |
|
|
.bubble-button-card-container {
|
|
background:
|
|
${hass.states['input_select.calendar_select'].state ==
|
|
'brian' ? 'rgba(15, 208, 184, 0.3)'
|
|
: hass.states['input_select.calendar_select'].state ==
|
|
'dogs' ? 'rgba(15, 100, 255, 0.5)'
|
|
: hass.states['input_select.calendar_select'].state ==
|
|
'Birthdays' ? '#000000'
|
|
: 'red'} !important;
|
|
}
|
|
modules: []
|
|
- type: vertical-stack
|
|
cards:
|
|
- type: entities
|
|
entities:
|
|
- entity: input_select.calendar_select
|
|
- entity: input_text.calendar_event_title
|
|
name: Event Title
|
|
- entity: input_text.calendar_event_description
|
|
name: Event Description
|
|
- entity: input_boolean.calendar_all_day_event
|
|
name: All Day Event
|
|
title: Add Calendar Event
|
|
state_color: false
|
|
- type: conditional
|
|
conditions:
|
|
- entity: input_boolean.calendar_all_day_event
|
|
state: 'off'
|
|
card:
|
|
type: entities
|
|
entities:
|
|
- entity: input_datetime.calendar_event_start
|
|
name: Start Time
|
|
- entity: input_datetime.calendar_event_end
|
|
name: End Time
|
|
- type: conditional
|
|
conditions:
|
|
- entity: input_boolean.calendar_all_day_event
|
|
state: 'on'
|
|
card:
|
|
type: entities
|
|
entities:
|
|
- entity: input_datetime.calendar_day_event_start
|
|
name: Event Start Date
|
|
- entity: input_datetime.calendar_day_event_end
|
|
name: Event End Date
|
|
- type: custom:button-card
|
|
name: Add Event to Calendar
|
|
tap_action:
|
|
action: call-service
|
|
service: script.add_calendar_event
|
|
styles:
|
|
card:
|
|
- background-color: |
|
|
[[[
|
|
if (states['input_select.calendar_select'].state == 'brian')
|
|
return "rgba(15, 208, 184, 0.3)";
|
|
if (states['input_select.calendar_select'].state == 'dogs')
|
|
return "rgba(15, 100, 255, 0.5)";
|
|
if (states['input_select.calendar_select'].state == 'Birthdays')
|
|
return "#33a02c";
|
|
return "gray";
|
|
]]]
|
|
column_span: 4
|
|
header:
|
|
layout: center
|
|
badges_position: bottom
|
|
badges_wrap: scroll
|