-
-
Save xbmcnut/47d4e37a587136a64e43bf8fda8f0b8d to your computer and use it in GitHub Desktop.
views: | |
- badges: [] | |
cards: | |
- cards: | |
- cards: | |
- entity: sensor.time | |
style: | | |
ha-card { | |
color: yellow; | |
#--paper-item-icon-color: green; | |
font-weight: bold; | |
#font-family: Roboslab; | |
#font-size: 80px; | |
} | |
type: entity | |
- entity: sensor.processor_use | |
name: HA CPU | |
type: entity | |
- entity: sensor.north_sprinkler_time_on | |
icon: 'mdi:sprinkler' | |
name: North Today | |
type: entity | |
- entity: sensor.east_sprinkler_time_on | |
icon: 'mdi:sprinkler' | |
name: East Today | |
type: entity | |
- entity: sensor.rainy_day | |
name: Rain? | |
type: entity | |
- entity: sensor.hacs | |
name: HACS | |
type: entity | |
- entity: sensor.tide_my_favourite_beach_next_high_time | |
name: High Tide | |
style: | | |
ha-card { | |
color: dodgerblue; | |
#--paper-item-icon-color: green; | |
font-weight: bold; | |
#font-family: Roboslab; | |
#font-size: 80px; | |
} | |
type: entity | |
type: horizontal-stack | |
- cards: | |
- aspect_ratio: 50% | |
camera_image: camera.proxy_driveway_720_2fps | |
entity: camera.proxy_driveway_720_2fps | |
show_name: false | |
show_state: false | |
type: picture-entity | |
- aspect_ratio: 50% | |
camera_image: camera.proxy_entry_720_2fps | |
entity: camera.proxy_entry_720_2fps | |
show_name: false | |
show_state: false | |
type: picture-entity | |
- aspect_ratio: 50% | |
camera_image: camera.proxy_deck_720_2fps | |
entity: camera.proxy_deck_720_2fps | |
show_name: false | |
show_state: false | |
type: picture-entity | |
- aspect_ratio: 50% | |
camera_image: camera.proxy_path_720_2fps | |
entity: camera.proxy_path_720_2fps | |
show_name: false | |
show_state: false | |
type: picture-entity | |
- aspect_ratio: 50% | |
camera_image: camera.last_doorbell_snapshot | |
entity: camera.last_doorbell_snapshot | |
show_state: false | |
type: picture-entity | |
- aspect_ratio: 50% | |
camera_image: camera.last_pool_gate_snapshot | |
entity: camera.last_pool_gate_snapshot | |
show_state: false | |
type: picture-entity | |
type: horizontal-stack | |
- cards: | |
- color: var(--paper-card-background-color) | |
color_type: card | |
custom_fields: | |
notification: > | |
[[[ return | |
states['sensor.deadbolt_batteries_front_door'].state | |
]]] | |
entity: lock.frontdoor_deadbolt | |
icon: 'mdi:lock' | |
name: Deadbolt | |
size: 48% | |
state: | |
- color: red | |
icon: 'mdi:lock-open' | |
styles: | |
card: | |
- animation: blink 5s ease infinite | |
icon: | |
- color: var(--paper-card-background-color) | |
name: | |
- color: var(--paper-card-background-color) | |
value: unlocked | |
styles: | |
card: | |
- height: 85px | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
icon: | |
- color: green | |
custom_fields: | |
notification: | |
- background-color: | | |
[[[ | |
if (states['sensor.deadbolt_batteries_front_door'].state >= 85) | |
return "green"; | |
return "red"; | |
]]] | |
- border-radius: 50% | |
- position: absolute | |
- left: 75% | |
- top: 5% | |
- height: 18px | |
- width: 18px | |
- font-size: 8px | |
- line-height: 18px | |
grid: | |
- position: relative | |
type: 'custom:button-card' | |
- color: var(--paper-card-background-color) | |
color_type: card | |
entity: cover.garage | |
icon: 'mdi:garage' | |
name: Garage | |
size: 60% | |
state: | |
- color: red | |
icon: 'mdi:garage-alert' | |
styles: | |
card: | |
- animation: blink 5s ease infinite | |
icon: | |
- color: var(--paper-card-background-color) | |
name: | |
- color: var(--paper-card-background-color) | |
value: open | |
styles: | |
card: | |
- height: 85px | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
icon: | |
- color: green | |
type: 'custom:button-card' | |
- color: green | |
color_type: icon | |
custom_fields: | |
notification: > | |
[[[ return states['sensor.steel_gate_battery_level'].state | |
]]] | |
entity: binary_sensor.door_window_sensor_steel_gate | |
icon: 'mdi:gate' | |
name: Steel | |
size: 40% | |
state: | |
- color: red | |
icon: 'mdi:gate' | |
styles: | |
icon: | |
- animation: blink 10s ease infinite | |
value: 'on' | |
- color: orange | |
icon: 'mdi:gate' | |
styles: | |
icon: | |
- animation: blink 3s ease infinite | |
value: unavailable | |
- operator: default | |
styles: | |
card: | |
- height: 85px | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
custom_fields: | |
notification: | |
- background-color: | | |
[[[ | |
if (states['sensor.steel_gate_battery_level'].state >= 98) | |
return "green"; | |
return "red"; | |
]]] | |
- border-radius: 50% | |
- position: absolute | |
- left: 75% | |
- top: 5% | |
- height: 18px | |
- width: 18px | |
- font-size: 8px | |
- line-height: 18px | |
grid: | |
- position: relative | |
type: 'custom:button-card' | |
- color: green | |
color_type: icon | |
custom_fields: | |
notification: > | |
[[[ return | |
states['sensor.courtyard_gate_battery_level'].state | |
]]] | |
entity: binary_sensor.door_window_sensor_courtyard | |
icon: 'mdi:gate' | |
name: Courtyard | |
size: 40% | |
state: | |
- color: red | |
icon: 'mdi:gate' | |
styles: | |
icon: | |
- animation: blink 10s ease infinite | |
value: 'on' | |
- color: orange | |
icon: 'mdi:gate' | |
styles: | |
icon: | |
- animation: blink 3s ease infinite | |
value: unavailable | |
- operator: default | |
styles: | |
card: | |
- height: 85px | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
custom_fields: | |
notification: | |
- background-color: | | |
[[[ | |
if (states['sensor.courtyard_gate_battery_level'].state >= 98) | |
return "green"; | |
return "red"; | |
]]] | |
- border-radius: 50% | |
- position: absolute | |
- left: 75% | |
- top: 5% | |
- height: 18px | |
- width: 18px | |
- font-size: 8px | |
- line-height: 18px | |
grid: | |
- position: relative | |
type: 'custom:button-card' | |
- color: green | |
color_type: icon | |
custom_fields: | |
notification: > | |
[[[ return states['sensor.pool_gate_battery_level'].state | |
]]] | |
entity: binary_sensor.door_window_sensor_pool_gate | |
icon: 'mdi:gate' | |
name: Pool | |
size: 40% | |
state: | |
- color: red | |
icon: 'mdi:gate' | |
styles: | |
icon: | |
- animation: blink 10s ease infinite | |
value: 'on' | |
- color: orange | |
icon: 'mdi:gate' | |
styles: | |
icon: | |
- animation: blink 3s ease infinite | |
value: unavailable | |
- operator: default | |
styles: | |
card: | |
- height: 85px | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
custom_fields: | |
notification: | |
- background-color: | | |
[[[ | |
if (states['sensor.pool_gate_battery_level'].state >= 98) | |
return "green"; | |
return "red"; | |
]]] | |
- border-radius: 50% | |
- position: absolute | |
- left: 75% | |
- top: 5% | |
- height: 18px | |
- width: 18px | |
- font-size: 8px | |
- line-height: 18px | |
grid: | |
- position: relative | |
type: 'custom:button-card' | |
- color: green | |
color_type: icon | |
custom_fields: | |
notification: > | |
[[[ return states['sensor.beach_gate_battery_level'].state | |
]]] | |
entity: binary_sensor.door_window_sensor_beach_gate | |
icon: 'mdi:gate' | |
name: Beach | |
size: 40% | |
state: | |
- color: red | |
icon: 'mdi:gate' | |
styles: | |
icon: | |
- animation: blink 10s ease infinite | |
value: 'on' | |
- color: orange | |
icon: 'mdi:gate' | |
styles: | |
icon: | |
- animation: blink 3s ease infinite | |
value: unavailable | |
- operator: default | |
styles: | |
card: | |
- height: 85px | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
custom_fields: | |
notification: | |
- background-color: | | |
[[[ | |
if (states['sensor.beach_gate_battery_level'].state >= 98) | |
return "green"; | |
return "red"; | |
]]] | |
- border-radius: 50% | |
- position: absolute | |
- left: 75% | |
- top: 5% | |
- height: 18px | |
- width: 18px | |
- font-size: 8px | |
- line-height: 18px | |
grid: | |
- position: relative | |
type: 'custom:button-card' | |
- color: green | |
color_type: icon | |
custom_fields: | |
notification: > | |
[[[ return states['sensor.north_gate_battery_level'].state | |
]]] | |
entity: binary_sensor.door_window_sensor_north_gate | |
icon: 'mdi:gate' | |
name: North | |
size: 40% | |
state: | |
- color: red | |
icon: 'mdi:gate' | |
styles: | |
icon: | |
- animation: blink 10s ease infinite | |
value: 'on' | |
- color: orange | |
icon: 'mdi:gate' | |
styles: | |
icon: | |
- animation: blink 3s ease infinite | |
value: unavailable | |
- operator: default | |
styles: | |
card: | |
- height: 85px | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
custom_fields: | |
notification: | |
- background-color: | | |
[[[ | |
if (states['sensor.north_gate_battery_level'].state >= 98) | |
return "green"; | |
return "red"; | |
]]] | |
- border-radius: 50% | |
- position: absolute | |
- left: 75% | |
- top: 5% | |
- height: 18px | |
- width: 18px | |
- font-size: 8px | |
- line-height: 18px | |
grid: | |
- position: relative | |
type: 'custom:button-card' | |
- color: green | |
color_type: icon | |
entity: calendar.bottle_collection | |
icon: 'mdi:recycle' | |
name: Recycling | |
size: 40% | |
state: | |
- color: green | |
icon: 'mdi:recycle' | |
styles: | |
icon: | |
- animation: blink 3s ease infinite | |
value: 'on' | |
- operator: default | |
styles: | |
card: | |
- height: 85px | |
- border-radius: 3% | |
- border: 'solid 2px rgba(0,255,0,.6)' | |
type: 'custom:button-card' | |
- color: green | |
color_type: icon | |
entity: calendar.rubbish_collection | |
icon: 'mdi:delete' | |
name: Rubbish | |
size: 40% | |
state: | |
- color: red | |
icon: 'mdi:delete-empty' | |
styles: | |
icon: | |
- animation: blink 3s ease infinite | |
value: 'on' | |
- operator: default | |
styles: | |
card: | |
- height: 85px | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,0,0,.6)' | |
type: 'custom:button-card' | |
- entity: fan.template_bedroom_fan | |
icon: 'mdi:fan' | |
name: Master | |
size: 40% | |
state: | |
- color: 'rgb(0, 0, 230)' | |
spin: true | |
value: 'on' | |
- color: 'rgb(28, 128, 199)' | |
value: 'off' | |
styles: | |
card: | |
- height: 85px | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
type: 'custom:button-card' | |
- entity: fan.template_david_fan | |
icon: 'mdi:fan' | |
name: David | |
size: 40% | |
state: | |
- color: 'rgb(0, 0, 230)' | |
spin: true | |
value: 'on' | |
- color: 'rgb(28, 128, 199)' | |
value: 'off' | |
styles: | |
card: | |
- height: 85px | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
type: 'custom:button-card' | |
- entity: switch.office_aircon_ts_auto | |
icon: 'mdi:air-conditioner' | |
name: Office | |
size: 35% | |
state: | |
- color: green | |
spin: true | |
value: 'on' | |
- color: 'rgb(28, 128, 199)' | |
value: 'off' | |
styles: | |
card: | |
- height: 85px | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
type: 'custom:button-card' | |
- entity: climate.family_ac | |
icon: 'mdi:air-conditioner' | |
name: Family | |
size: 35% | |
state: | |
- color: green | |
spin: true | |
value: 'on' | |
- color: 'rgb(28, 128, 199)' | |
value: 'off' | |
styles: | |
card: | |
- height: 85px | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
type: 'custom:button-card' | |
- entity: switch.lounge_heat_pump | |
icon: 'mdi:air-conditioner' | |
name: Lounge | |
size: 35% | |
state: | |
- color: green | |
spin: true | |
value: 'on' | |
- color: 'rgb(28, 128, 199)' | |
value: 'off' | |
styles: | |
card: | |
- height: 85px | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
type: 'custom:button-card' | |
type: horizontal-stack | |
- cards: | |
- animate: true | |
color_thresholds: | |
- color: '#0012ff' | |
value: 5 | |
- color: '#0032ff' | |
value: 10 | |
- color: '#0084ff' | |
value: 15 | |
- color: '#00d4ff' | |
value: 20 | |
- color: '#00ff83' | |
value: 25 | |
- color: '#3eff00' | |
value: 30 | |
- color: '#fdff00' | |
value: 35 | |
- color: '#FFd200' | |
value: 40 | |
color_thresholds_transition: hard | |
entities: | |
- entity: sensor.temperature_xiaomi_office | |
hours_to_show: 12 | |
icon: 'mdi:thermometer' | |
name: Office | |
points_per_hour: 1 | |
show: | |
graph: line | |
legend: false | |
style: > | |
ha-card {--label-badge-text-color: #b58e31; | |
--paper-item-icon-color: dodgerblue; | |
border: 1px solid grey;} | |
type: 'custom:mini-graph-card' | |
- animate: true | |
color_thresholds: | |
- color: '#0012ff' | |
value: 5 | |
- color: '#0032ff' | |
value: 10 | |
- color: '#0084ff' | |
value: 15 | |
- color: '#00d4ff' | |
value: 20 | |
- color: '#00ff83' | |
value: 25 | |
- color: '#3eff00' | |
value: 30 | |
- color: '#fdff00' | |
value: 35 | |
- color: '#FFd200' | |
value: 40 | |
color_thresholds_transition: hard | |
entities: | |
- entity: sensor.bathroom_sensor_temperature | |
hours_to_show: 12 | |
icon: 'mdi:thermometer' | |
name: Bathroom | |
points_per_hour: 1 | |
show: | |
graph: line | |
style: > | |
ha-card {--label-badge-text-color: #b58e31; | |
--paper-item-icon-color: dodgerblue; | |
border: 1px solid grey;} | |
type: 'custom:mini-graph-card' | |
- animate: true | |
color_thresholds: | |
- color: '#0012ff' | |
value: 5 | |
- color: '#0032ff' | |
value: 10 | |
- color: '#0084ff' | |
value: 15 | |
- color: '#00d4ff' | |
value: 20 | |
- color: '#00ff83' | |
value: 25 | |
- color: '#3eff00' | |
value: 30 | |
- color: '#fdff00' | |
value: 35 | |
- color: '#FFd200' | |
value: 40 | |
color_thresholds_transition: hard | |
entities: | |
- entity: sensor.temperature_xiaomi_guest | |
hours_to_show: 12 | |
icon: 'mdi:thermometer' | |
name: Guest | |
points_per_hour: 1 | |
show: | |
graph: line | |
legend: false | |
style: > | |
ha-card {--label-badge-text-color: #b58e31; | |
--paper-item-icon-color: dodgerblue; | |
border: 1px solid grey;} | |
type: 'custom:mini-graph-card' | |
- animate: true | |
color_thresholds: | |
- color: '#0012ff' | |
value: 5 | |
- color: '#0032ff' | |
value: 10 | |
- color: '#0084ff' | |
value: 15 | |
- color: '#00d4ff' | |
value: 20 | |
- color: '#00ff83' | |
value: 25 | |
- color: '#3eff00' | |
value: 30 | |
- color: '#fdff00' | |
value: 35 | |
- color: '#FFd200' | |
value: 40 | |
color_thresholds_transition: hard | |
entities: | |
- entity: sensor.foyer_plant_temperature | |
hours_to_show: 12 | |
icon: 'mdi:thermometer' | |
name: Foyer | |
points_per_hour: 1 | |
show: | |
graph: line | |
style: > | |
ha-card {--label-badge-text-color: #b58e31; | |
--paper-item-icon-color: dodgerblue; | |
border: 1px solid grey;} | |
type: 'custom:mini-graph-card' | |
- animate: true | |
color_thresholds: | |
- color: '#0012ff' | |
value: 5 | |
- color: '#0032ff' | |
value: 10 | |
- color: '#0084ff' | |
value: 15 | |
- color: '#00d4ff' | |
value: 20 | |
- color: '#00ff83' | |
value: 25 | |
- color: '#3eff00' | |
value: 30 | |
- color: '#fdff00' | |
value: 35 | |
- color: '#FFd200' | |
value: 40 | |
color_thresholds_transition: hard | |
entities: | |
- entity: sensor.ensuite_sensor_temperature | |
hours_to_show: 12 | |
icon: 'mdi:thermometer' | |
name: Ensuite | |
points_per_hour: 1 | |
show: | |
graph: line | |
style: > | |
ha-card {--label-badge-text-color: #b58e31; | |
--paper-item-icon-color: dodgerblue; | |
border: 1px solid grey;} | |
type: 'custom:mini-graph-card' | |
- animate: true | |
color_thresholds: | |
- color: '#0012ff' | |
value: 5 | |
- color: '#0032ff' | |
value: 10 | |
- color: '#0084ff' | |
value: 15 | |
- color: '#00d4ff' | |
value: 20 | |
- color: '#00ff83' | |
value: 25 | |
- color: '#3eff00' | |
value: 30 | |
- color: '#fdff00' | |
value: 35 | |
- color: '#FFd200' | |
value: 40 | |
color_thresholds_transition: hard | |
entities: | |
- entity: sensor.temperature_xiaomi_kitchen | |
hours_to_show: 12 | |
icon: 'mdi:thermometer' | |
name: Kitchen | |
points_per_hour: 1 | |
show: | |
graph: line | |
style: > | |
ha-card {--label-badge-text-color: #b58e31; | |
--paper-item-icon-color: dodgerblue; | |
border: 1px solid grey;} | |
type: 'custom:mini-graph-card' | |
- animate: true | |
color_thresholds: | |
- color: '#0012ff' | |
value: 5 | |
- color: '#0032ff' | |
value: 10 | |
- color: '#0084ff' | |
value: 15 | |
- color: '#00d4ff' | |
value: 20 | |
- color: '#00ff83' | |
value: 25 | |
- color: '#3eff00' | |
value: 30 | |
- color: '#fdff00' | |
value: 35 | |
- color: '#FFd200' | |
value: 40 | |
color_thresholds_transition: hard | |
entities: | |
- entity: sensor.lounge_plant_temperature | |
hours_to_show: 12 | |
icon: 'mdi:thermometer' | |
name: Lounge | |
points_per_hour: 1 | |
show: | |
graph: line | |
style: > | |
ha-card {--label-badge-text-color: #b58e31; | |
--paper-item-icon-color: dodgerblue; | |
border: 1px solid grey;} | |
type: 'custom:mini-graph-card' | |
type: horizontal-stack | |
- cards: | |
- aspect_ratio: 1.3/1 | |
color: yellow | |
color_type: icon | |
custom_fields: | |
notification: > | |
[[[ var bri = Math.round(entity.attributes.brightness / | |
2.55); if | |
(entity.state === 'on') return (bri ? (bri+"%") : '') ]]] | |
entity: light.rumpus_lights | |
hold_action: | |
action: more-info | |
name: Rumpus | |
size: 50% | |
styles: | |
card: | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
custom_fields: | |
notification: | |
- border-radius: 50% | |
- position: absolute | |
- left: 63% | |
- top: 5% | |
- height: 40px | |
- width: 40px | |
- font-size: 12px | |
- line-height: 20px | |
grid: | |
- position: relative | |
type: 'custom:button-card' | |
- aspect_ratio: 1.3/1 | |
color: auto | |
color_type: icon | |
custom_fields: | |
notification: > | |
[[[ var bri = Math.round(entity.attributes.brightness / | |
2.55); if | |
(entity.state === 'on') return (bri ? (bri+"%") : '') ]]] | |
entity: light.gateway_light | |
name: Gateway | |
size: 50% | |
styles: | |
card: | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
custom_fields: | |
notification: | |
- border-radius: 50% | |
- position: absolute | |
- left: 56% | |
- top: 3% | |
- height: 50px | |
- width: 50px | |
- font-size: 12px | |
- line-height: 20px | |
grid: | |
- position: relative | |
tap_action: | |
action: more-info | |
type: 'custom:button-card' | |
- aspect_ratio: 1.3/1 | |
color: yellow | |
color_type: icon | |
entity: light.stair_lights | |
name: Stairs | |
size: 50% | |
styles: | |
card: | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
type: 'custom:button-card' | |
- aspect_ratio: 1.3/1 | |
color: yellow | |
color_type: icon | |
entity: light.colditz | |
icon: 'mdi:spotlight' | |
name: Garage | |
size: 50% | |
state: | |
- color: yellow | |
styles: | |
icon: | |
- animation: blink 3s ease infinite | |
value: 'on' | |
- color: orange | |
styles: | |
icon: | |
- animation: blink 3s ease infinite | |
value: unavailable | |
- operator: default | |
styles: | |
card: | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
type: 'custom:button-card' | |
- aspect_ratio: 1.3/1 | |
color: yellow | |
color_type: icon | |
entity: light.foyer_front_light | |
name: Foyer | |
size: 50% | |
styles: | |
card: | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
type: 'custom:button-card' | |
- aspect_ratio: 1.3/1 | |
color: yellow | |
color_type: icon | |
custom_fields: | |
notification: > | |
[[[ var bri = Math.round(entity.attributes.brightness / | |
2.55); if | |
(entity.state === 'on') return (bri ? (bri+"%") : '') ]]] | |
entity: light.tuya_dimmer | |
hold_action: | |
action: more-info | |
name: Master | |
size: 50% | |
styles: | |
card: | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
custom_fields: | |
notification: | |
- border-radius: 50% | |
- position: absolute | |
- left: 62% | |
- top: 5% | |
- height: 40px | |
- width: 40px | |
- font-size: 12px | |
- line-height: 20px | |
grid: | |
- position: relative | |
type: 'custom:button-card' | |
- aspect_ratio: 1.3/1 | |
color: yellow | |
color_type: icon | |
custom_fields: | |
notification: > | |
[[[ var bri = Math.round(entity.attributes.brightness / | |
2.55); if | |
(entity.state === 'on') return (bri ? (bri+"%") : '') ]]] | |
entity: light.shelly_dimmer_kitchen | |
hold_action: | |
action: more-info | |
name: Kitchen | |
size: 50% | |
styles: | |
card: | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
custom_fields: | |
notification: | |
- border-radius: 50% | |
- position: absolute | |
- left: 62% | |
- top: 5% | |
- height: 40px | |
- width: 40px | |
- font-size: 12px | |
- line-height: 20px | |
grid: | |
- position: relative | |
type: 'custom:button-card' | |
- aspect_ratio: 1.3/1 | |
color: yellow | |
color_type: icon | |
entity: light.family_room_lamp | |
icon: 'mdi:floor-lamp' | |
name: Lamp | |
size: 50% | |
styles: | |
card: | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
type: 'custom:button-card' | |
- aspect_ratio: 1.3/1 | |
color: yellow | |
color_type: icon | |
custom_fields: | |
notification: > | |
[[[ var bri = Math.round(entity.attributes.brightness / | |
2.55); if | |
(entity.state === 'on') return (bri ? (bri+"%") : '') ]]] | |
entity: light.shelly_dimmer_lounge | |
hold_action: | |
action: more-info | |
name: Lounge | |
size: 50% | |
styles: | |
card: | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
custom_fields: | |
notification: | |
- border-radius: 50% | |
- position: absolute | |
- left: 62% | |
- top: 5% | |
- height: 40px | |
- width: 40px | |
- font-size: 12px | |
- line-height: 20px | |
grid: | |
- position: relative | |
type: 'custom:button-card' | |
- aspect_ratio: 1.3/1 | |
color: yellow | |
color_type: icon | |
entity: light.bottle_lights | |
icon: 'mdi:bottle-tonic-outline' | |
name: Bottles | |
size: 50% | |
styles: | |
card: | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
type: 'custom:button-card' | |
- aspect_ratio: 1.3/1 | |
color: yellow | |
color_type: icon | |
entity: light.pool_light | |
icon: 'mdi:spotlight' | |
name: Deck | |
size: 50% | |
styles: | |
card: | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
type: 'custom:button-card' | |
- aspect_ratio: 1.3/1 | |
color: auto | |
color_type: icon | |
custom_fields: | |
notification: > | |
[[[ var bri = Math.round(entity.attributes.brightness / | |
2.55); if | |
(entity.state === 'on') return (bri ? (bri+"%") : '') ]]] | |
entity: light.pool_led | |
name: Pool LED | |
size: 50% | |
styles: | |
card: | |
- border-radius: 3% | |
- border: 'solid 2px rgba(255,255,255,.2)' | |
custom_fields: | |
notification: | |
- border-radius: 50% | |
- position: absolute | |
- left: 63% | |
- top: 5% | |
- height: 40px | |
- width: 40px | |
- font-size: 12px | |
- line-height: 20px | |
grid: | |
- position: relative | |
tap_action: | |
action: more-info | |
type: 'custom:button-card' | |
type: horizontal-stack | |
- cards: | |
- entity: sensor.humidity_xiaomi_outside | |
font_size: 1em | |
gauge: | |
animatedValue: true | |
borders: true | |
colorBorderInner: '#111' | |
colorBorderInnerEnd: '#333' | |
colorBorderMiddle: '#222' | |
colorBorderMiddleEnd: '#111' | |
colorBorderOuter: '#333' | |
colorBorderOuterEnd: '#111' | |
colorNumbers: '#ccc' | |
colorPlate: '' | |
colorTitle: '#f5f5f5' | |
colorUnits: '#f5f5f5' | |
height: 200 | |
highlights: | |
- color: 'rgba(74, 123, 180, .75)' | |
from: 0 | |
to: 40 | |
- color: 'rgba(4, 205, 24, .75)' | |
from: 40 | |
to: 70 | |
- color: 'rgba(239, 93, 13, .75)' | |
from: 70 | |
to: 100 | |
majorTicks: | |
- '0' | |
- '10' | |
- '20' | |
- '30' | |
- '40' | |
- '50' | |
- '60' | |
- '70' | |
- '80' | |
- '90' | |
- '100' | |
maxValue: 100 | |
minValue: 0 | |
minorTicks: 5 | |
startAngle: 45 | |
strokeTicks: true | |
ticksAngle: 270 | |
title: Outside Humidity | |
type: radial-gauge | |
units: (%) | |
valueBox: true | |
valueDec: 1 | |
valueInt: 2 | |
width: 205 | |
type: 'custom:canvas-gauge-card' | |
- entity: sensor.temperature_xiaomi_outside | |
font_size: 1em | |
gauge: | |
animatedValue: true | |
borders: true | |
colorBorderInner: '#111' | |
colorBorderInnerEnd: '#333' | |
colorBorderMiddle: '#222' | |
colorBorderMiddleEnd: '#111' | |
colorBorderOuter: '#333' | |
colorBorderOuterEnd: '#111' | |
colorNumbers: '#ccc' | |
colorPlate: '' | |
colorTitle: '#f5f5f5' | |
colorUnits: '#f5f5f5' | |
height: 200 | |
highlights: | |
- color: 'rgba(0, 68, 255, .75)' | |
from: 0 | |
to: 5 | |
- color: 'rgba(74, 123, 180, .75)' | |
from: 5 | |
to: 15 | |
- color: 'rgba(4, 205, 24, .75)' | |
from: 15 | |
to: 25 | |
- color: 'rgba(239, 93, 13, .75)' | |
from: 25 | |
to: 40 | |
majorTicks: | |
- '0' | |
- '5' | |
- '10' | |
- '15' | |
- '20' | |
- '25' | |
- '30' | |
- '35' | |
- '40' | |
maxValue: 40 | |
minValue: 0 | |
minorTicks: 5 | |
startAngle: 45 | |
strokeTicks: true | |
ticksAngle: 270 | |
title: Outside Temp | |
type: radial-gauge | |
units: °C | |
valueBox: true | |
valueDec: 1 | |
valueInt: 2 | |
width: 205 | |
type: 'custom:canvas-gauge-card' | |
- entity: sensor.pool_temperature | |
font_size: 1em | |
gauge: | |
animatedValue: true | |
borders: true | |
colorBorderInner: '#111' | |
colorBorderInnerEnd: '#333' | |
colorBorderMiddle: '#222' | |
colorBorderMiddleEnd: '#111' | |
colorBorderOuter: '#333' | |
colorBorderOuterEnd: '#111' | |
colorNumbers: '#ccc' | |
colorPlate: '' | |
colorTitle: '#f5f5f5' | |
colorUnits: '#f5f5f5' | |
height: 200 | |
highlights: | |
- color: 'rgba(0, 68, 255, .75)' | |
from: 5 | |
to: 21 | |
- color: 'rgba(4, 205, 24, .75)' | |
from: 21 | |
to: 26 | |
- color: 'rgba(239, 93, 13, .75)' | |
from: 26 | |
to: 40 | |
majorTicks: | |
- '5' | |
- '10' | |
- '15' | |
- '20' | |
- '25' | |
- '30' | |
- '35' | |
- '40' | |
maxValue: 40 | |
minValue: 5 | |
minorTicks: 5 | |
startAngle: 45 | |
strokeTicks: true | |
ticksAngle: 270 | |
title: Pool Temp | |
type: radial-gauge | |
units: °C | |
valueBox: true | |
valueDec: 1 | |
valueInt: 2 | |
width: 205 | |
type: 'custom:canvas-gauge-card' | |
- entity: sensor.spa_temperature | |
font_size: 1em | |
gauge: | |
animatedValue: true | |
borders: true | |
colorBorderInner: '#111' | |
colorBorderInnerEnd: '#333' | |
colorBorderMiddle: '#222' | |
colorBorderMiddleEnd: '#111' | |
colorBorderOuter: '#333' | |
colorBorderOuterEnd: '#111' | |
colorNumbers: '#ccc' | |
colorPlate: '' | |
colorTitle: '#f5f5f5' | |
colorUnits: '#f5f5f5' | |
height: 200 | |
highlights: | |
- color: 'rgba(0, 68, 255, .75)' | |
from: 5 | |
to: 38 | |
- color: 'rgba(4, 205, 24, .75)' | |
from: 38 | |
to: 41 | |
- color: 'rgba(239, 93, 13, .75)' | |
from: 41 | |
to: 45 | |
majorTicks: | |
- '5' | |
- '10' | |
- '15' | |
- '20' | |
- '25' | |
- '30' | |
- '35' | |
- '40' | |
- '45' | |
maxValue: 45 | |
minValue: 5 | |
minorTicks: 5 | |
startAngle: 45 | |
strokeTicks: true | |
ticksAngle: 270 | |
title: Spa Temp | |
type: radial-gauge | |
units: °C | |
valueBox: true | |
valueDec: 1 | |
valueInt: 2 | |
width: 205 | |
type: 'custom:canvas-gauge-card' | |
- entities: | |
- entity: input_boolean.swimming_season | |
name: Swim Season | |
- entity: input_select.pool_pump | |
- entity: sensor.aggregate_pool_level | |
name: Pool Level | |
show_header_toggle: false | |
type: entities | |
- entities: | |
- entity: sensor.pool_pump_time_on | |
name: Pump Hrs | |
- entity: sensor.w_reg12 | |
entity_row: true | |
height: 30 | |
icon: 'mdi:transmission-tower' | |
max: 12000 | |
name: Power | |
severity: | |
- color: Green | |
from: 0 | |
to: 1000 | |
- color: Orange | |
from: 1000 | |
to: 5000 | |
- color: Red | |
from: 5000 | |
to: 12000 | |
type: 'custom:bar-card' | |
- entity: sensor.spa_element_power | |
entity_row: true | |
height: 30 | |
icon: 'mdi:hot-tub' | |
max: 3500 | |
name: SPA | |
severity: | |
- color: Green | |
from: 0 | |
to: 1000 | |
- color: Orange | |
from: 1000 | |
to: 2000 | |
- color: Red | |
from: 2000 | |
to: 3500 | |
type: 'custom:bar-card' | |
- entity: sensor.hwc_element_status | |
entity_row: true | |
height: 30 | |
icon: 'mdi:water-boiler' | |
max: 3500 | |
name: HWC | |
severity: | |
- color: Green | |
from: 0 | |
to: 0 | |
- color: Red | |
from: 1 | |
to: 1 | |
type: 'custom:bar-card' | |
show_header_toggle: false | |
theme: '' | |
type: entities | |
type: horizontal-stack | |
type: vertical-stack | |
icon: 'mdi:tablet' | |
panel: true | |
path: tablets | |
theme: slate | |
title: tablets | |
visible: | |
- user: 1aab1dfa28b9485880ae010f21db6976 | |
- user: 1bcb704e16984480a82b6e9bdf61ae22 | |
- badges: [] | |
cards: | |
- cards: | |
- color_stops: | |
'40': '#3443eb' | |
'42': '#3443eb' | |
'45': '#3465eb' | |
'50': '#3474eb' | |
'55': '#f7911b' | |
'60': '#f76c1b' | |
'65': '#f74b1b' | |
'70': '#1bf7da' | |
'75': '#1bf794' | |
'80': '#8f040e' | |
entities: | |
- area: iGrill Temp | |
decimals: 1 | |
entity: sensor.igrill_thermometer | |
icon: 'mdi:thermometer' | |
name: [] | |
- decimals: 0 | |
entity: input_number.igrill_probe_1_target | |
name: Preset | |
- decimals: 0 | |
entity: sensor.igrill_battery | |
name: Battery | |
horseshoe_scale: | |
color: var(--primary-background-color) | |
max: 80 | |
min: 40 | |
width: 6 | |
horseshoe_state: | |
color: '#FFF6E3' | |
layout: | |
areas: | |
- entity_index: 0 | |
id: 0 | |
styles: | |
- font-size: 0.7em; | |
xpos: 50 | |
ypos: 85 | |
hlines: | |
- color: '#FFF6E3' | |
id: 0 | |
length: 40 | |
styles: | |
- stroke: var(--primary-text-color); | |
- stroke-width: 5; | |
- opacity: 0.9; | |
- stroke-linecap: round; | |
xpos: 50 | |
ypos: 38 | |
names: | |
- entity_index: 0 | |
id: 0 | |
styles: | |
- font-size: 1.2em; | |
xpos: 50 | |
ypos: 100 | |
- entity_index: 1 | |
id: 1 | |
styles: | |
- font-size: 0.8em; | |
- text-anchor: end; | |
- opacity: 0.7; | |
xpos: 46 | |
ypos: 62 | |
- entity_index: 2 | |
id: 2 | |
styles: | |
- font-size: 0.8em; | |
- text-anchor: start; | |
- opacity: 0.7; | |
xpos: 54 | |
ypos: 62 | |
states: | |
- entity_index: 0 | |
id: 0 | |
styles: | |
- font-size: 3em; | |
- opacity: 0.9; | |
xpos: 50 | |
ypos: 30 | |
- entity_index: 1 | |
id: 1 | |
styles: | |
- font-size: 1.5em; | |
- text-anchor: end; | |
xpos: 46 | |
ypos: 54 | |
- entity_index: 2 | |
id: 2 | |
styles: | |
- font-size: 1.5em; | |
- text-anchor: start; | |
xpos: 54 | |
ypos: 54 | |
vlines: | |
- id: 0 | |
length: 20 | |
styles: | |
- stroke: var(--primary-text-color); | |
- opacity: 0.5; | |
- stroke-width: 2; | |
- stroke-linecap: round; | |
xpos: 50 | |
ypos: 56 | |
show: | |
horseshoe_style: lineargradient | |
scale_tickmarks: true | |
type: 'custom:flex-horseshoe-card' | |
- entities: | |
- entity: input_number.igrill_probe_1_target | |
- entity: sensor.igrill_pretarget_alert_temp_probe_1 | |
- entity: sensor.igrill_target_alert_temp_probe_1 | |
- entity: automation.announce_igrill_offline | |
- entity: automation.announce_igrill_online | |
- entity: automation.announce_igrill_probe_1_at_prealert_temp | |
- entity: automation.announce_igrill_probe_1_at_target_temp | |
- entity: input_select.igrill_meat_selection | |
show_header_toggle: false | |
title: Weber iGrill | |
type: entities | |
state_color: true | |
type: horizontal-stack | |
icon: 'mdi:thermometer' | |
panel: true | |
path: thermometer | |
title: iGrill | |
- badges: [] | |
cards: | |
- cards: | |
- aspect_ratio: 0% | |
camera_image: camera.proxy_entry_720_2fps | |
camera_view: live | |
entities: | |
- entity: lock.frontdoor_deadbolt | |
- entity: light.foyer_front_light | |
- entity: script.activate_gateway_siren | |
image: 'https://demo.home-assistant.io/stub_config/kitchen.png' | |
type: picture-glance | |
type: horizontal-stack | |
icon: 'mdi:cctv' | |
panel: true | |
path: camera | |
- badges: [] | |
cards: | |
- aspect_ratio: 50% | |
type: iframe | |
url: >- | |
https://embed.windy.com/embed2.html?lat=-36.851&lon=174.768&zoom=5&level=surface&overlay=wind&menu=&message=&marker=&calendar=&pressure=&type=map&location=coordinates&detail=&detailLat=-36.851&detailLon=174.768&metricWind=default&metricTemp=default&radarRange=-1 | |
icon: 'mdi:cloud' | |
panel: true | |
path: wind | |
title: '' |
xbmcnut
commented
Dec 15, 2020
Congratulations, very nice work,.
This is really nice. I'm having trouble integrating this in my config. Can you help me identify where exactly the canvas-gauge-card.js file needs to be placed. I keep getting a custom element doesn't exist error.
Apologies @Eddenm, been on holiday. Did you figure it out? If not, use HACS to install fully or place the .js file here:
config\www\community\canvas-gauge-card
I'm not sure of the path to put under http://haipaddress/config/lovelace/resources but let me know you're installing manually and that's the bit your stuck on.
Thanks @xbmcnut - I did manage to figure it out - I had placed the call to the resources in the wrong place. Spent a little more time than I would have liked troubleshooting (as should have been obvious), but when I eventually got the right place - it all kicked into gear! Thanks for the response and for the great inspiration!