2026-07-27 11:27:35 -04:00
|
|
|
# At-a-Glance — wall panel
|
|
|
|
|
#
|
|
|
|
|
# Styled with the CubeCraft Creations display system. The tokens live in
|
|
|
|
|
# themes/cubecraft.yaml, which mirrors the `:host` block of the production
|
|
|
|
|
# card's stylesheet (custom_components/cubecraft_production/www/
|
|
|
|
|
# cubecraft-production-card.js). Anything referenced here as --cc-* comes from
|
|
|
|
|
# that theme, so this file never hard-codes a brand hex.
|
|
|
|
|
#
|
|
|
|
|
# Three motifs carry the style, all lifted from the production card:
|
|
|
|
|
# .title → gradient title bar, white 800-weight type, brand radius
|
|
|
|
|
# .column header → uppercase 700/.05em muted section labels
|
|
|
|
|
# article → 8px radius, 4px brand left rule, shadow-sm on each tile
|
|
|
|
|
#
|
|
|
|
|
# Colour is deliberately restrained: brand indigo for anything informational,
|
|
|
|
|
# and green/amber/red kept in reserve so they still mean something when they
|
|
|
|
|
# show up. That is the same discipline the production card uses, where only a
|
|
|
|
|
# blocked order goes red.
|
2026-06-28 14:27:20 -04:00
|
|
|
title: At-a-Glance
|
2026-07-27 11:27:35 -04:00
|
|
|
theme: cubecraft
|
2026-06-28 14:27:20 -04:00
|
|
|
views:
|
|
|
|
|
- title: At-a-Glance
|
|
|
|
|
path: at-a-glance
|
|
|
|
|
icon: mdi:eye-outline
|
2026-07-27 11:27:35 -04:00
|
|
|
theme: cubecraft
|
2026-06-28 14:27:20 -04:00
|
|
|
type: masonry
|
|
|
|
|
cards:
|
2026-07-27 11:27:35 -04:00
|
|
|
# ── Brand title bar ──
|
|
|
|
|
# Mirrors `.shell.kiosk .title`: gradient ground, white type at 1.75rem,
|
|
|
|
|
# brand radius and the brand shadow. ha-markdown supplies its own 16px
|
|
|
|
|
# inset, so ha-card only tops that up to roughly the card's 20px/28px.
|
2026-06-28 14:27:20 -04:00
|
|
|
- type: markdown
|
|
|
|
|
content: |
|
|
|
|
|
# {{ now().strftime("%A, %B %d, %Y") }}
|
|
|
|
|
## {{ now().strftime("%I:%M %p") }}
|
|
|
|
|
card_mod:
|
|
|
|
|
style: |
|
|
|
|
|
ha-card {
|
2026-07-27 11:27:35 -04:00
|
|
|
background: var(--cc-gradient);
|
|
|
|
|
color: #fff;
|
|
|
|
|
border: none;
|
|
|
|
|
border-radius: var(--cc-radius-brand);
|
|
|
|
|
box-shadow: var(--cc-shadow-brand);
|
|
|
|
|
padding: 6px 12px;
|
2026-06-28 14:27:20 -04:00
|
|
|
text-align: center;
|
|
|
|
|
}
|
|
|
|
|
ha-card h1 {
|
|
|
|
|
margin: 0;
|
2026-07-27 11:27:35 -04:00
|
|
|
font-size: 1rem;
|
|
|
|
|
font-weight: 600;
|
|
|
|
|
letter-spacing: 0.02em;
|
|
|
|
|
opacity: 0.85;
|
|
|
|
|
color: #fff;
|
2026-06-28 14:27:20 -04:00
|
|
|
}
|
|
|
|
|
ha-card h2 {
|
|
|
|
|
margin: 2px 0 0 0;
|
2026-07-27 11:27:35 -04:00
|
|
|
font-size: 1.75rem;
|
|
|
|
|
font-weight: 800;
|
|
|
|
|
letter-spacing: -0.01em;
|
|
|
|
|
color: #fff;
|
2026-06-28 14:27:20 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# ── Weather Now ──
|
|
|
|
|
- type: weather-forecast
|
|
|
|
|
entity: weather.home
|
|
|
|
|
name: Now
|
|
|
|
|
show_forecast: false
|
|
|
|
|
show_current: true
|
|
|
|
|
round_temperature: true
|
|
|
|
|
|
|
|
|
|
# ── Indoor Climate ──
|
2026-07-27 11:27:35 -04:00
|
|
|
# First use of the section-label treatment; the rest of the file aliases
|
|
|
|
|
# it as *cc_section. Selectors are listed broadly on purpose — a heading
|
|
|
|
|
# card's internals are not a stable API, and any selector that misses
|
|
|
|
|
# simply leaves that bit at the theme default rather than breaking.
|
2026-06-28 14:27:20 -04:00
|
|
|
- type: heading
|
|
|
|
|
heading: Indoor Climate
|
|
|
|
|
heading_style: title
|
|
|
|
|
icon: mdi:home-thermometer-outline
|
2026-07-27 11:27:35 -04:00
|
|
|
card_mod: &cc_section
|
|
|
|
|
style: |
|
|
|
|
|
ha-card {
|
|
|
|
|
background: none;
|
|
|
|
|
border: none;
|
|
|
|
|
box-shadow: none;
|
|
|
|
|
padding: 0;
|
|
|
|
|
margin: 4px 0 -4px 0;
|
|
|
|
|
}
|
|
|
|
|
ha-card .heading,
|
|
|
|
|
ha-card .content p,
|
|
|
|
|
ha-card p {
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
letter-spacing: 0.05em;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
font-size: 0.9375rem;
|
|
|
|
|
color: var(--cc-text-muted, var(--secondary-text-color));
|
|
|
|
|
}
|
|
|
|
|
ha-card ha-icon,
|
|
|
|
|
ha-card ha-svg-icon {
|
|
|
|
|
color: var(--cc-accent, var(--primary-color));
|
|
|
|
|
}
|
2026-06-28 14:27:20 -04:00
|
|
|
|
|
|
|
|
- type: grid
|
|
|
|
|
columns: 3
|
|
|
|
|
square: false
|
|
|
|
|
cards:
|
2026-07-27 11:27:35 -04:00
|
|
|
# First use of the `article` treatment; aliased as *cc_tile below.
|
2026-06-28 14:27:20 -04:00
|
|
|
- type: tile
|
|
|
|
|
entity: sensor.living_room_temperature
|
|
|
|
|
name: Living Room
|
|
|
|
|
icon: mdi:sofa
|
2026-07-27 11:27:35 -04:00
|
|
|
color: primary
|
|
|
|
|
card_mod: &cc_tile
|
|
|
|
|
style: |
|
|
|
|
|
ha-card {
|
|
|
|
|
border-radius: var(--cc-radius-md);
|
|
|
|
|
border-left: 4px solid var(--cc-accent);
|
|
|
|
|
box-shadow: var(--cc-shadow-sm);
|
|
|
|
|
}
|
2026-06-28 14:27:20 -04:00
|
|
|
- type: tile
|
|
|
|
|
entity: sensor.office_temperature
|
|
|
|
|
name: Office
|
|
|
|
|
icon: mdi:desk
|
2026-07-27 11:27:35 -04:00
|
|
|
color: primary
|
|
|
|
|
card_mod: *cc_tile
|
2026-06-28 14:27:20 -04:00
|
|
|
- type: tile
|
|
|
|
|
entity: sensor.bedroom_temperature
|
|
|
|
|
name: Master Bedroom
|
|
|
|
|
icon: mdi:bed
|
2026-07-27 11:27:35 -04:00
|
|
|
color: primary
|
|
|
|
|
card_mod: *cc_tile
|
2026-06-28 14:27:20 -04:00
|
|
|
- type: tile
|
|
|
|
|
entity: sensor.upstairs_temperature
|
|
|
|
|
name: Upstairs
|
|
|
|
|
icon: mdi:stairs
|
2026-07-27 11:27:35 -04:00
|
|
|
color: primary
|
|
|
|
|
card_mod: *cc_tile
|
2026-06-28 14:27:20 -04:00
|
|
|
- type: tile
|
|
|
|
|
entity: sensor.blink_family_room_temperature
|
|
|
|
|
name: Family Room
|
|
|
|
|
icon: mdi:television
|
2026-07-27 11:27:35 -04:00
|
|
|
color: primary
|
|
|
|
|
card_mod: *cc_tile
|
2026-06-28 14:27:20 -04:00
|
|
|
- type: tile
|
|
|
|
|
entity: sensor.blink_kitchen_temperature
|
|
|
|
|
name: Kitchen
|
|
|
|
|
icon: mdi:stove
|
2026-07-27 11:27:35 -04:00
|
|
|
color: primary
|
|
|
|
|
card_mod: *cc_tile
|
2026-06-28 14:27:20 -04:00
|
|
|
|
|
|
|
|
# ── 3D Printer Status ──
|
|
|
|
|
- type: heading
|
|
|
|
|
heading: 3D Printers
|
|
|
|
|
heading_style: title
|
|
|
|
|
icon: mdi:printer-3d-nozzle
|
2026-07-27 11:27:35 -04:00
|
|
|
card_mod: *cc_section
|
2026-06-28 14:27:20 -04:00
|
|
|
|
|
|
|
|
- type: grid
|
|
|
|
|
columns: 2
|
|
|
|
|
square: false
|
|
|
|
|
cards:
|
2026-07-27 11:27:35 -04:00
|
|
|
# Online/offline is a genuine success signal, so these keep green and
|
|
|
|
|
# take the success-coloured left rule.
|
2026-06-28 14:27:20 -04:00
|
|
|
- type: tile
|
|
|
|
|
entity: binary_sensor.p1s_01p09c470102673_online
|
|
|
|
|
name: PrintsCharming
|
|
|
|
|
icon: mdi:printer-3d-nozzle
|
|
|
|
|
show_entity_picture: false
|
|
|
|
|
color: green
|
2026-07-27 11:27:35 -04:00
|
|
|
card_mod: &cc_tile_success
|
|
|
|
|
style: |
|
|
|
|
|
ha-card {
|
|
|
|
|
border-radius: var(--cc-radius-md);
|
|
|
|
|
border-left: 4px solid var(--success-color);
|
|
|
|
|
box-shadow: var(--cc-shadow-sm);
|
|
|
|
|
}
|
2026-06-28 14:27:20 -04:00
|
|
|
- type: tile
|
|
|
|
|
entity: binary_sensor.a1_03919d540806387_online
|
|
|
|
|
name: Ds-Turd-Flinger
|
|
|
|
|
icon: mdi:printer-3d-nozzle
|
|
|
|
|
show_entity_picture: false
|
|
|
|
|
color: green
|
2026-07-27 11:27:35 -04:00
|
|
|
card_mod: *cc_tile_success
|
2026-06-28 14:27:20 -04:00
|
|
|
- type: tile
|
|
|
|
|
entity: binary_sensor.a1mini_0309ca580403653_online
|
|
|
|
|
name: Polly-Pocket
|
|
|
|
|
icon: mdi:printer-3d-nozzle
|
|
|
|
|
show_entity_picture: false
|
|
|
|
|
color: green
|
2026-07-27 11:27:35 -04:00
|
|
|
card_mod: *cc_tile_success
|
2026-06-28 14:27:20 -04:00
|
|
|
- type: tile
|
|
|
|
|
entity: binary_sensor.constipation_orion_online
|
|
|
|
|
name: Constipation-Orion
|
|
|
|
|
icon: mdi:printer-3d-nozzle
|
|
|
|
|
show_entity_picture: false
|
|
|
|
|
color: green
|
2026-07-27 11:27:35 -04:00
|
|
|
card_mod: *cc_tile_success
|
2026-06-28 14:27:20 -04:00
|
|
|
- type: tile
|
|
|
|
|
entity: binary_sensor.jordyns_layer_slayer_online
|
|
|
|
|
name: Jordyn's Layer Slayer
|
|
|
|
|
icon: mdi:printer-3d-nozzle
|
|
|
|
|
show_entity_picture: false
|
|
|
|
|
color: green
|
2026-07-27 11:27:35 -04:00
|
|
|
card_mod: *cc_tile_success
|
2026-06-28 14:27:20 -04:00
|
|
|
- type: tile
|
|
|
|
|
entity: binary_sensor.centauri_carbon_sdcp_status
|
|
|
|
|
name: Centauri Carbon
|
|
|
|
|
icon: mdi:printer-3d-nozzle
|
|
|
|
|
show_entity_picture: false
|
|
|
|
|
color: green
|
2026-07-27 11:27:35 -04:00
|
|
|
card_mod: *cc_tile_success
|
2026-06-28 14:27:20 -04:00
|
|
|
|
|
|
|
|
# ── Litter Boxes ──
|
|
|
|
|
- type: heading
|
|
|
|
|
heading: Litter Boxes
|
|
|
|
|
heading_style: title
|
|
|
|
|
icon: mdi:cat
|
2026-07-27 11:27:35 -04:00
|
|
|
card_mod: *cc_section
|
2026-06-28 14:27:20 -04:00
|
|
|
|
|
|
|
|
- type: grid
|
|
|
|
|
columns: 2
|
|
|
|
|
square: false
|
|
|
|
|
cards:
|
2026-07-27 11:27:35 -04:00
|
|
|
# These are the "something needs doing" tiles — the equivalent of a
|
|
|
|
|
# blocked order in the production card, so they take the error rule.
|
2026-06-28 14:27:20 -04:00
|
|
|
- type: tile
|
|
|
|
|
entity: binary_sensor.cat_crapper_3000_wastebin_filled
|
|
|
|
|
name: Cat Crapper 3000
|
|
|
|
|
icon: mdi:delete-empty
|
|
|
|
|
show_entity_picture: false
|
|
|
|
|
color: red
|
2026-07-27 11:27:35 -04:00
|
|
|
card_mod: &cc_tile_alert
|
|
|
|
|
style: |
|
|
|
|
|
ha-card {
|
|
|
|
|
border-radius: var(--cc-radius-md);
|
|
|
|
|
border-left: 4px solid var(--error-color);
|
|
|
|
|
box-shadow: var(--cc-shadow-sm);
|
|
|
|
|
}
|
2026-06-28 14:27:20 -04:00
|
|
|
- type: tile
|
|
|
|
|
entity: binary_sensor.cat_crapper_3000_sand_lack
|
|
|
|
|
name: CC3000 Litter
|
|
|
|
|
icon: mdi:grain
|
|
|
|
|
show_entity_picture: false
|
|
|
|
|
color: amber
|
2026-07-27 11:27:35 -04:00
|
|
|
card_mod:
|
|
|
|
|
style: |
|
|
|
|
|
ha-card {
|
|
|
|
|
border-radius: var(--cc-radius-md);
|
|
|
|
|
border-left: 4px solid var(--warning-color);
|
|
|
|
|
box-shadow: var(--cc-shadow-sm);
|
|
|
|
|
}
|
2026-06-28 14:27:20 -04:00
|
|
|
- type: tile
|
|
|
|
|
entity: binary_sensor.poop_box_wastebin_filled
|
|
|
|
|
name: Poop Box
|
|
|
|
|
icon: mdi:delete-empty
|
|
|
|
|
show_entity_picture: false
|
|
|
|
|
color: red
|
2026-07-27 11:27:35 -04:00
|
|
|
card_mod: *cc_tile_alert
|
2026-06-28 14:27:20 -04:00
|
|
|
- type: tile
|
|
|
|
|
entity: binary_sensor.triple_threat_wastebin_filled
|
|
|
|
|
name: Triple Threat
|
|
|
|
|
icon: mdi:delete-empty
|
|
|
|
|
show_entity_picture: false
|
|
|
|
|
color: red
|
2026-07-27 11:27:35 -04:00
|
|
|
card_mod: *cc_tile_alert
|
2026-06-28 14:27:20 -04:00
|
|
|
|
|
|
|
|
# ── Security ──
|
|
|
|
|
- type: heading
|
|
|
|
|
heading: Security
|
|
|
|
|
heading_style: title
|
|
|
|
|
icon: mdi:shield-home-outline
|
|
|
|
|
badges:
|
|
|
|
|
- type: entity
|
|
|
|
|
entity: alarm_control_panel.blink_front
|
|
|
|
|
name: Front
|
|
|
|
|
- type: entity
|
|
|
|
|
entity: alarm_control_panel.blink_inside
|
|
|
|
|
name: Inside
|
|
|
|
|
- type: entity
|
|
|
|
|
entity: alarm_control_panel.blink_garage
|
|
|
|
|
name: Garage
|
|
|
|
|
- type: entity
|
|
|
|
|
entity: alarm_control_panel.blink_rear
|
|
|
|
|
name: Rear
|
2026-07-27 11:27:35 -04:00
|
|
|
card_mod: *cc_section
|
2026-06-28 14:27:20 -04:00
|
|
|
|
|
|
|
|
# ── Recent Activity ──
|
|
|
|
|
- type: logbook
|
|
|
|
|
entities:
|
|
|
|
|
- automation.announce_day_camp_preparation_and_pause_tv
|
|
|
|
|
- automation.announce_time_to_leave_for_day_camp_and_turn_off_tv
|
|
|
|
|
- automation.bedtime_snack_notification
|
|
|
|
|
- automation.chore_tracker_evening_reminder
|
|
|
|
|
hours_to_show: 24
|
|
|
|
|
title: Recent Family Activity
|