|
|
3 weeks ago | |
|---|---|---|
| .. | ||
| bedroom | 2 months ago | |
| infrastructure | 3 weeks ago | |
| kiosk | 3 months ago | |
| kiosk_satellite_staging | 1 month ago | |
| overview | 3 weeks ago | |
| shared | 9 months ago | |
| README.md | 3 weeks ago | |
| SCRATCHPAD.md | 9 months ago | |
| resources.yaml | 3 weeks ago | |
README.md
Bear Stone Smart Home Documentation
Be sure to ⭐ my configuration repo so you can keep up to date on any daily progress!
Dashboards (Lovelace YAML)
This folder holds YAML-managed Home Assistant Lovelace dashboards and UI resources.
Walkthrough
- Mobile quick-access video:
- Mobile quick-access companion post:
- Video:
- Companion post:
- Kiosk camera tablet video:
Why this exists
- Home Assistant stores dashboards and resources in
config/.storage/by default (runtime state). - YAML dashboards make the UI version-controllable and editable by automation tools (including Codex).
What is in here
resources.yaml- Lovelace JS resources used by custom cards (HACS and local resources).
- This is used when
lovelace.resource_mode: yamlis enabled. - Card-mod is also preloaded through
frontend.extra_module_urlso nested kiosk cards receive their styles on cold loads. Keep both card-mod URLs identical and refresh their cache version together when the installed module changes.
SCRATCHPAD.md- Parking lot for multi-step dashboard work and patterns.
<dashboard>/- One folder per dashboard (example:
overview/,infrastructure/,kiosk/). dashboard.yamlis the dashboard entrypoint.views/contains one YAML file per view.partials/is reusable card lists included into views.popups/is reusable standalone popup cards (typicallybubble-card) included into views.card_mod/is CSS overrides (use only when card-native options are insufficient).
- One folder per dashboard (example:
shared/- Cross-dashboard reuse only. If something is only used by one dashboard, keep it in that dashboard folder.
Mobile Quick Access
- Mobile is the second visible Overview view, directly after Home and before Cameras.
- Two-column controls use large labels, states, icons, and touch targets for quick use without glasses.
- Primary actions cover garage doors, the front-door lock, thermostats, household alerts, and entry-point status.
- Packages opens the doorbell camera; Systems opens the desktop control center; destination views place a large Back to Home control at the top.
Lighting Controls
- Home places lighting beneath Sleep Score in the middle column, keeping family presence and cameras directly below the priority ribbon. On Now, Indoor, Exterior, All Lights Off, and the shared everyday controls use two equal columns.
- Mobile keeps Lights & Switches and All Lights Off together in its first quick-control row. The lighting submenu has the same shutdown action; native Back returns to the view used to enter it.
- All Lights Off calls
script.lighting_all_off. It targets available household lights and an explicit allowlist of lamp, accent, landscape, and seasonal outlets. Media power, thermostat power, screens, network indicators, and voice routines are outside its scope. - On Now and the shutdown script share
custom_templates/lighting.jinja, so their lighting membership stays aligned. The switch allowlist rejects equipment switches even if a broad group later includes one. - The shared everyday buttons combine Living Room main lights and accents using the native Living Room Lighting Light Group helper (
light.living_room_lighting, memberslight.living_room_lightsandlight.living_room_accents, any-on state, members visible). The existing Kitchen group already includes Sink. Detailed Indoor controls retain individual light groups. - Tap a named light or group to toggle it; hold for native brightness, color, and entity details. OFFLINE stays visible on unavailable room controls. Bedtime, guest-mode, motion, sunset, and other lighting automations keep their existing behavior.
Camera Overview
The Camera tab keeps the doorbell and pool on the left, three exterior cameras across the upper right, and Kids Gate, Bedroom Gate, Filter Gate, and Conico Wireless across the second right-hand row. A full-width grid prevents the camera group from wrapping below the doorbell on desktop; narrow screens reflow into two columns. Recent Frigate events remain below the camera rows.
Event-Driven Kiosk Dashboards
- Upcycled Nest display: project guide, round kiosk preview, Nest Album submenu,
- Logic and recovery package:
- Bedroom dashboard:
- Bedroom landscape view:
- Android 5 fixed-dark renderer:
- Kiosk Satellite preview:
- Kitchen tablet view:
. Verified personal bests rotate for seven days alongside household reminders; the Health view retains step trends without persistent record cards. While the sink light is unavailable, a rotating reminder asks occupants to check its physical switch and clears when the light reconnects.
- Echo Show 5 compact view:
. A full-screen landscape clock/date and small current-weather icon sit beside the shared rotating household alerts, above Front Lawn and Driveway. The forecast is omitted; actionable alerts open the same transient details as Kitchen, scaled for the smaller display. Kiosk Satellite hides the Home Assistant header/sidebar.
- Automatic day/night theme:
The displays share only the reusable event and screen-policy state they need. Kitchen keeps its clock/current-weather/forecast banner and rotating household context, including the next confirmed cruise countdown and 48-hour Carlo/Stacey bowling-result highlights, while the fixed-landscape Bedroom dashboard omits the redundant clock and uses that space for the next wake alarm, security/weather context, larger Front Lawn and Driveway feeds, and a readable household alert. Fresh personal bests rotate on Kitchen and alternate with lower-priority Bedroom context for seven days; safety alerts and reminders retain priority. Both use the same Garage-then-Front-Door event priority, with Garage held for three minutes after both doors close before the default dashboard returns. A lower-priority Frigate Driveway alert replaces both displays with the live Driveway feed until occupancy clears or ten minutes elapse, whichever happens first. The canonical Bedroom Lovelace view and its Android 5 lightweight renderer consume the same camera, header, and alert sensors; the renderer bypasses only the unsupported Home Assistant frontend on the frozen Fire WebView and stays dark at all times for bedroom readability. Kitchen uses native Kiosk Satellite overlays for Garage and Front Door, a full-view Lovelace Driveway alert, and idle dimming; Home Assistant handles household sleep/away enforcement, volume, and event-camera wake instead of periodically forcing the screen on. Nearby rain or lightning starts one five-minute NOAA radar takeover during daylight; afterward, the rotating Storms Approaching banner can replay the latest 20-minute loop while the weather event remains active. Actionable NWS, package, family-location, entry-point, Phyn, and low-hot-water slides open a shared short-lived detail surface; the family map centers only the person named by the tapped slide and shows that person's prior 24-hour trail, while a closed Phyn main valve can be restored only from its detail view after explicit confirmation. The ambient wall remains in place after sunset. True idle panel-off remains disabled until the Crown LineageOS device has a reliable motion-wake input. Its device schedule changes the Home Assistant theme between light at 07:00 and dark at 19:00. Other clients follow their own system preference.
Kitchen, Upstairs and Office use the same native Kiosk Satellite Garage and Front Door overlays with imported Home Assistant camera entities; HLS is preferred over WebRTC on the Fire/WebView-class Kitchen Show display. Driveway alerts use the same live Home Assistant camera through the dashboard because Driveway is not configured as a native Kiosk Satellite shortcut.
How it is wired into Home Assistant
This folder is referenced from config/configuration.yaml via:
lovelace.resource_mode: yamllovelace.resources: !include dashboards/resources.yamllovelace.dashboards: ...frontend.themes: !include_dir_merge_named themesloads the tablet palettes; the Kitchen Show uses the fixed-dark theme while the Bedroom Lovelace view can still follow client light/dark mode.- Default Overview YAML dashboard:
lovelace.dashboards.lovelace.filename: ui-lovelace.yaml - Additional YAML dashboards:
filename: dashboards/<dashboard>/dashboard.yaml dashboard-bedroomis the canonical Bedroom desktop-review and future-hardware route; it is hidden from the sidebar and linked from the Bedroom Tablet snapshot on Systems' Kiosks tab. The current Android 5 Fire uses the equivalent lightweight renderer underwww/.dashboard-kiosk-satellite-stagingis the hidden validation surface for the shared Kiosk Satellite camera view.- Systems' visible Kiosks tab sits immediately before Joanna and combines attention telemetry with the latest Bedroom Tablet, Kitchen Show, Upstairs Show, and Office Show screenshots; tapping a snapshot opens that display's live dashboard. Upstairs and Office use the compact Echo Show 5 view and native ESPHome telemetry; offline, page/app drift, power, and stale-screenshot faults join the shared Systems rollup. App updates remain advisory. Native voice status, assistant pipeline, and wake word are visible for all enrolled Shows.
- Mini App local/public health leads Joanna's top status row; total 24-hour dispatches sit in Latest Activity, with AI Diagnostics at the bottom. Runtime & Memory retains failure details. Sustained failures appear in Systems Active Issues and the shared issue count, with persistent Repairs and independent mobile alerts.
- The Systems Joanna page links to BearClaw Admin from Dispatch Trend and to a hidden AI Diagnostics subview that shows the latest OpenAI instructions and response together; package-classification diagnostics and retired QMD health telemetry are not shown.
- Overview's second visible view is Mobile, a phone-first quick-control surface for garage doors, the front-door lock, thermostats, and compact household alerts.
- Overview Home uses ordered production sections under
overview/sections/; approved pilot edits now apply directly there. - Overview Home's Windows ribbon opens a dedicated GPIO entry-point subview with perimeter, MQTT, and individual contact status.
dashboard-infrastructureis presented as Systems while retaining its stable URL; it owns Home Water, Vacuum, Car telemetry and JuicePassProxy safety status, network, compute, storage, UPS power, and service drill-downs, including hidden WAN/Pi-hole/website detail views. Both Car Odometer tiles open a daily snapshot of the five-year TeslaMate visited map inside Home Assistant; hold either tile for odometer details. The local-file camera serves the private cached image. The first hourly check after 06:00 refreshes it, retaining the previous image if Grafana is unavailable. Eaton status and alarm rows use the same guarded 24-hour acknowledgment policy as the overview; raw NUT readings remain in diagnostic attributes.
- Default Overview YAML dashboard:
Note:
- Do not use legacy
lovelace.mode: yaml(removed in Home Assistant 2026.8).
Lovelace resources are loaded from:
config/dashboards/resources.yaml(referenced bylovelace.resources)
Migration / Cutover Notes
- During migration you may have both storage dashboards (from the UI) and YAML dashboards (from this folder) at the same time.
- Do not try to create YAML dashboards with the same dashboard ID/key as an existing storage dashboard; remove/disable the storage version first in the UI.
- Once you confirm the YAML dashboards render correctly:
- Hide or delete the old storage dashboards in Settings -> Dashboards.
- Keep strategies/dynamic dashboards in storage (Map, Areas, etc.) unless you intentionally export them.
Conventions
- Include paths in Lovelace YAML should use absolute container paths starting with
/config/.- Example:
!include /config/dashboards/overview/partials/some_cards.yaml
- Example:
- Views are loaded using
!include_dir_listand ordered by filename (prefix with01_,02_, etc.). - Systems views are desktop-first and dense by default: use
type: sections,max_columns: 4, anddense_section_placement: trueon every standard view.- Use responsive
layout-cardgrids withmin-contentrows inside full-width section wrappers so panels pack tightly without fixed-height gaps. - Keep related panels similar in height, avoid spacer cards, and verify both desktop and single-column mobile layouts.
- Keep WAN telemetry, compact dual Pi-hole controls, and current website health together on the Network view; reserve hidden subviews for detailed Pi-hole analytics and domain/monitor telemetry.
- Use primary KPI tiles as the canonical drill-down entry point instead of repeating navigation rows at the bottom of a view.
- Treat NAS long-term statistics as the Docker capacity source of truth; keep host cleanup controls in full-width, single-column maintenance popups.
- Use responsive
- Major Overview redesigns use a hidden
-stagingdashboard for review and keep production view paths unchanged until explicit promotion approval. - Overview is the daily home page: preserve people, climate, lighting, cameras, weather, and frequently used controls while bubbling up a compact mix of actionable system state and key household context.
- Home Water and Vacuum live under Systems; personal Health remains under Overview. Detailed Salt Trends, Sprinklers, and Vacuum Map views are Systems subviews.
- Vacuum keeps the cleaning plan, everyday controls, and consumables together. Its Robot tile opens native vacuum controls; Current Room and the Live Map & Room Cleaning row open the interactive current map. For manual cleans, press Stop before Return home. To cancel an automated cycle, switch On-Demand Cycle off, which stops the task and docks the robot. Camera calibration follows the current map instead of fixed coordinates.
- Vacuum uses the free Xiaomi Vacuum Map Card with the Dreame integration for zone, point, and room cleaning. Native controls provide start, pause, stop, and dock actions, cleaning mode, suction, mop moisture, auto-empty settings, and consumable maintenance.
- The free map opens in room mode with named selectors; choose rooms and press Run to start. Room IDs and display bounds are maintained in
infrastructure/partials/vacuum_map_rooms.yamlfrom the current camera'sroomsattribute. Regenerate that partial after remapping or splitting/merging rooms; camera calibration remains dynamic. - Prefer card-native styling; treat
card_modas a last resort. - Prefer CSS variables (
var(--*)) over hardcoded hex colors. - When using the Stitch MCP for inspiration, generation may exceed the tool timeout; wait and then fetch results via
stitch/list_screensandstitch/get_screen.
Notes
- Do not edit
config/.storageby hand. Export once, then maintain the YAML files here. - It is safe to restart Home Assistant after dashboard changes as long as a configuration check passes first.
All of my configuration files are tested against the most stable version of home-assistant.
Still have questions on my Config?
Message me on X :
You can buy me a coffee

Affiliate Disclosure
Kitchen, Upstairs and Office share the event overlays, screen policy, and 15-minute snapshot refresh. Kitchen leads the Kiosk Satellite fleet; its Echo Show 5 profile synchronizes voice, camera shortcuts, and kiosk behavior while preserving the compact dashboard, device identity, local brightness, and volume. Upstairs and Office volume remain under the physical buttons.
Upstairs and Office use their available front cameras for motion wake. Each dims after 90 idle seconds, then uses a plain black screen at zero backlight after two more minutes. True panel-off on this build enters Android doze and blocks camera access, so it remains disabled. The Echo Show 5 fleet profile preserves these local sleep settings, and shared policy reconciliation does not restart its idle timer. Kitchen retains idle dimming; its current Android build does not expose the built-in camera.
Systems Network includes managed switch health, PoE capacity, and named physical uplink/server/AP/camera port rows. Switch faults join the shared Systems issue count and Active Issues. The Datacenter summary shows the average CPU package temperature, hottest host, and reporting-host count. These are hardware temperatures, not ambient air readings; SSD readings are not mixed into them. Proxmox has separate 24-hour CPU temperature and host utilization graphs for all three hosts. Utilization uses a fixed 0-100 percent scale with 5-minute averages; hover values describe that historical interval, while the header shows the current reading. Recorder explicitly retains these final dashboard metrics. VM utilization and SSD diagnostic cards are omitted. All monitoring cards are read-only.
The Kiosks view links to the Nest Album subview. Refresh photo list requests the latest cached thumbnails; there is no periodic album poll or framebuffer capture. Tap a photo to toggle Keep (up to 10 within 45 personal photos). FIFO replaces only unprotected photos, while the avatar stays separate. The Nest shows all photos in shuffled rounds. An eleventh Keep is rejected visibly without releasing another.
Joanna Security & Updates
The Joanna view includes a private security summary from the appliance's native read-only scheduler. The sensor.joanna_security_updates entity exposes aggregate counts and scan freshness. Review tiles open the internal Admin report directly (no token required); the vendor tile is informational. Vendor-only waits leave the main dashboards clear and remain amber inside the report. Actionable work, failed maintenance and missing coverage still warn. Configure the private destination in the local bearclaw_security_admin_url secret. Security summaries and raw poll snapshots are excluded from recorder; existing dispatch trends remain recorded. Detailed inventory, CVEs, and findings remain in appliance private state and are never committed to this repository. The dashboard does not trigger updates or public issues.