first commit
This commit is contained in:
354
config.yaml
Normal file
354
config.yaml
Normal file
@@ -0,0 +1,354 @@
|
||||
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
|
||||
Reference in New Issue
Block a user