Add YAML dashboards and enable Lovelace YAML mode

pull/1581/head
Carlo Costanzo 2 months ago
parent 8c74f99f51
commit fcf81d5266

@ -21,7 +21,7 @@ Live view of the `config/` directory my production Home Assistant instance loads
### Quick navigation
- You are here: `config/` (configuration root)
- [Repo overview](../README.md) | [Blog](https://www.vcloudinfo.com) | [Issues](https://github.com/CCOSTAN/Home-AssistantConfig/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc) | [Diagram](config/www/custom_ui/floorplan/images/branding/Bear-Stone-Docker-Diagram.jpg) | [YouTube](https://youtube.com/vCloudInfo)
- Directory highlights: [packages](packages), [automation](automation), [script](script), [scene](scene), [templates](templates), [www](www), [custom_components](custom_components)
- Directory highlights: [packages](packages), [automation](automation), [script](script), [scene](scene), [templates](templates), [dashboards](dashboards), [www](www), [custom_components](custom_components)
![Home Assistant header](https://i.imgur.com/vjDH1LJ.png)
@ -36,6 +36,7 @@ Live view of the `config/` directory my production Home Assistant instance loads
- **Automations (`automation/`)** event-driven YAML broken out by area or device; the legacy `automations.yaml` remains for UI-created flows.
- **Scripts & scenes (`script/`, `scene/`)** curated lighting and ambiance logic used by presence, holiday, and seasonal routines.
- **Templates (`templates/`)** Jinja helpers and speech templates reused by the notify/speech engines.
- **Dashboards (`dashboards/`)** YAML-managed Lovelace dashboards and UI resources (generated from storage, then maintained as code).
- **www/ + custom components** branding assets, floorplans, and any custom components the core install depends on.
### Featured automations by section

@ -24,6 +24,36 @@ homeassistant:
default_config:
# -------------------------------------------------------------------
# Lovelace (YAML dashboards/resources)
# Dashboard YAML lives under config/dashboards. Do not edit config/.storage.
# -------------------------------------------------------------------
lovelace:
resource_mode: yaml
resources: !include dashboards/resources.yaml
dashboards:
lovelace:
mode: yaml
title: "Overview"
icon: mdi:home
show_in_sidebar: true
require_admin: false
filename: dashboards/overview/dashboard.yaml
dashboard-infrastructure:
mode: yaml
title: "Infrastructure"
icon: mdi:server-network
show_in_sidebar: true
require_admin: true
filename: dashboards/infrastructure/dashboard.yaml
dashboard-kiosk:
mode: yaml
title: "KIOSK"
icon: mdi:tablet-dashboard
show_in_sidebar: true
require_admin: false
filename: dashboards/kiosk/dashboard.yaml
config:
cloud:

@ -0,0 +1,50 @@
<h1 align="center">
Dashboards (Lovelace YAML)
</h1>
This folder holds YAML-managed Home Assistant Lovelace dashboards and UI resources.
### 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: yaml` is enabled.
- `SCRATCHPAD.md`
- Parking lot for multi-step dashboard work and patterns.
- `<dashboard>/`
- One folder per dashboard (example: `overview/`, `infrastructure/`, `kiosk/`).
- `dashboard.yaml` is the dashboard entrypoint.
- `views/` contains one YAML file per view.
- `partials/` is reusable card lists included into views.
- `popups/` is reusable popup stacks (typically `bubble-card`) included into views.
- `card_mod/` is CSS overrides (use only when card-native options are insufficient).
- `shared/`
- Cross-dashboard reuse only. If something is only used by one dashboard, keep it in that dashboard folder.
### How it is wired into Home Assistant
This folder is referenced from `config/configuration.yaml` via:
- `lovelace.resource_mode: yaml`
- `lovelace.resources: !include dashboards/resources.yaml`
- `lovelace.dashboards: ... filename: dashboards/<dashboard>/dashboard.yaml`
### 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`
- Views are loaded using `!include_dir_list` and ordered by filename (prefix with `01_`, `02_`, etc.).
- Prefer card-native styling; treat `card_mod` as 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_screens` and `stitch/get_screen`.
### Notes
- Do not edit `config/.storage` by 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.

@ -0,0 +1,9 @@
# Dashboards Scratchpad
## Current Working Items
- (empty)
## Patterns / Notes
- (empty)

@ -0,0 +1,17 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure card_mod - Base card polish
# Shared card_mod style block used across Infrastructure views.
# -------------------------------------------------------------------
# Notes: card_mod style is YAML scalar (multi-line string) so it can be `!include`d.
######################################################################
|
ha-card {
border-radius: 18px;
border: 1px solid rgba(0,0,0,0.06);
box-shadow: none;
}

@ -0,0 +1,18 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure card_mod - Panel container
# Wrapper style for multi-row panels (Stitch-inspired).
# -------------------------------------------------------------------
# Notes: card_mod style is YAML scalar (multi-line string) so it can be `!include`d.
######################################################################
|
ha-card {
border-radius: 18px;
border: 1px solid rgba(0,0,0,0.06);
box-shadow: none;
padding: 12px;
}

@ -0,0 +1,13 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure Dashboard - YAML entrypoint
# YAML-exported Lovelace dashboard (split into view files).
# -------------------------------------------------------------------
# Notes: Entry point for dashboard key `dashboard-infrastructure`. Views are loaded from /config/dashboards/infrastructure/views.
######################################################################
button_card_templates: !include /config/dashboards/infrastructure/templates/button_card_templates.yaml
views: !include_dir_list /config/dashboards/infrastructure/views

@ -0,0 +1,451 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure Include - Docker container restart buttons
# Auto-entities include list for Portainer container restart buttons (button.*_restart_container).
# -------------------------------------------------------------------
# Notes: Generated from core.entity_registry (platform: portainer).
######################################################################
- entity_id: button.91aca40203c0_portainer_agent_restart_container
options:
type: tile
name: 91aca40203c0_portainer_agent
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.91aca40203c0_portainer_agent_restart_container
- entity_id: button.cloudflared_kch_restart_container
options:
type: tile
name: cloudflared_kch
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.cloudflared_kch_restart_container
- entity_id: button.cloudflared_wp_restart_container
options:
type: tile
name: cloudflared_wp
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.cloudflared_wp_restart_container
- entity_id: button.codex_appliance_restart_container
options:
type: tile
name: codex_appliance
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.codex_appliance_restart_container
- entity_id: button.college_budget_app_restart_container
options:
type: tile
name: college_budget_app
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.college_budget_app_restart_container
- entity_id: button.cruise_tracker_restart_container
options:
type: tile
name: cruise_tracker
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.cruise_tracker_restart_container
- entity_id: button.dashy_restart_container
options:
type: tile
name: dashy
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.dashy_restart_container
- entity_id: button.dozzle_agent_10_restart_container
options:
type: tile
name: dozzle_agent_10
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.dozzle_agent_10_restart_container
- entity_id: button.dozzle_agent_14_restart_container
options:
type: tile
name: dozzle_agent_14
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.dozzle_agent_14_restart_container
- entity_id: button.dozzle_restart_container
options:
type: tile
name: dozzle
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.dozzle_restart_container
- entity_id: button.duplicati_restart_container
options:
type: tile
name: duplicati
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.duplicati_restart_container
- entity_id: button.esphome_restart_container
options:
type: tile
name: esphome
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.esphome_restart_container
- entity_id: button.foodie_tracker_restart_container
options:
type: tile
name: foodie_tracker
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.foodie_tracker_restart_container
- entity_id: button.frigate_restart_container
options:
type: tile
name: frigate
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.frigate_restart_container
- entity_id: button.games_hub_restart_container
options:
type: tile
name: games_hub
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.games_hub_restart_container
- entity_id: button.home_assistant_restart_container
options:
type: tile
name: home-assistant
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.home_assistant_restart_container
- entity_id: button.imposter_restart_container
options:
type: tile
name: imposter
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.imposter_restart_container
- entity_id: button.infra_info_restart_container
options:
type: tile
name: infra_info
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.infra_info_restart_container
- entity_id: button.kingcrafthomes_restart_container
options:
type: tile
name: kingcrafthomes
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.kingcrafthomes_restart_container
- entity_id: button.mariadb_backup_restart_container
options:
type: tile
name: mariadb-backup
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.mariadb_backup_restart_container
- entity_id: button.mariadb_restart_container
options:
type: tile
name: mariadb
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.mariadb_restart_container
- entity_id: button.matter_server_restart_container
options:
type: tile
name: matter-server
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.matter_server_restart_container
- entity_id: button.mqtt_restart_container
options:
type: tile
name: mqtt
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.mqtt_restart_container
- entity_id: button.nebula_sync_restart_container
options:
type: tile
name: nebula_sync
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.nebula_sync_restart_container
- entity_id: button.panel_notes_restart_container
options:
type: tile
name: panel_notes
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.panel_notes_restart_container
- entity_id: button.pihole_restart_container
options:
type: tile
name: pihole
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.pihole_restart_container
- entity_id: button.pihole_secondary_restart_container
options:
type: tile
name: pihole_secondary
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.pihole_secondary_restart_container
- entity_id: button.poker_tracker_restart_container
options:
type: tile
name: poker_tracker
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.poker_tracker_restart_container
- entity_id: button.portainer_agent_restart_container
options:
type: tile
name: portainer_agent
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.portainer_agent_restart_container
- entity_id: button.portainer_restart_container
options:
type: tile
name: portainer
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.portainer_restart_container
- entity_id: button.postgres_webhooks_engine_restart_container
options:
type: tile
name: postgres_webhooks_engine
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.postgres_webhooks_engine_restart_container
- entity_id: button.rc_price_checker_restart_container
options:
type: tile
name: rc_price_checker
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.rc_price_checker_restart_container
- entity_id: button.redis_webhooks_engine_restart_container
options:
type: tile
name: redis_webhooks_engine
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.redis_webhooks_engine_restart_container
- entity_id: button.rvtools_ppt_web_restart_container
options:
type: tile
name: rvtools_ppt_web
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.rvtools_ppt_web_restart_container
- entity_id: button.steelesharing_home_restart_container
options:
type: tile
name: steelesharing_home
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.steelesharing_home_restart_container
- entity_id: button.tapple_restart_container
options:
type: tile
name: tapple
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.tapple_restart_container
- entity_id: button.tugtainer_agent_restart_container
options:
type: tile
name: tugtainer-agent
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.tugtainer_agent_restart_container
- entity_id: button.tugtainer_restart_container
options:
type: tile
name: tugtainer
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.tugtainer_restart_container
- entity_id: button.tugtainer_socket_proxy_restart_container
options:
type: tile
name: tugtainer_socket_proxy
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.tugtainer_socket_proxy_restart_container
- entity_id: button.unifi_restart_container
options:
type: tile
name: unifi
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.unifi_restart_container
- entity_id: button.webhooks_engine_restart_container
options:
type: tile
name: webhooks_engine
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.webhooks_engine_restart_container
- entity_id: button.wordpress_db_restart_container
options:
type: tile
name: wordpress_db
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.wordpress_db_restart_container
- entity_id: button.wordpress_wp_restart_container
options:
type: tile
name: wordpress_wp
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.wordpress_wp_restart_container
- entity_id: button.wyze_bridge_restart_container
options:
type: tile
name: wyze-bridge
hide_state: true
tap_action:
action: call-service
service: button.press
service_data:
entity_id: button.wyze_bridge_restart_container

@ -0,0 +1,407 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure Include - Docker container rows
# Auto-entities include list mapping Portainer status -> restart button.
# -------------------------------------------------------------------
# Notes: Generated from core.entity_registry + button restart entities.
######################################################################
- entity_id: binary_sensor.91aca40203c0_portainer_agent_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: 91aca40203c0_portainer_agent
icon: mdi:docker
variables:
restart_button: button.91aca40203c0_portainer_agent_restart_container
name: 91aca40203c0_portainer_agent
- entity_id: binary_sensor.cloudflared_kch_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: cloudflared_kch
icon: mdi:docker
variables:
restart_button: button.cloudflared_kch_restart_container
name: cloudflared_kch
- entity_id: binary_sensor.cloudflared_wp_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: cloudflared_wp
icon: mdi:docker
variables:
restart_button: button.cloudflared_wp_restart_container
name: cloudflared_wp
- entity_id: binary_sensor.codex_appliance_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: codex_appliance
icon: mdi:docker
variables:
restart_button: button.codex_appliance_restart_container
name: codex_appliance
- entity_id: binary_sensor.college_budget_app_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: college_budget_app
icon: mdi:docker
variables:
restart_button: button.college_budget_app_restart_container
name: college_budget_app
- entity_id: binary_sensor.cruise_tracker_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: cruise_tracker
icon: mdi:docker
variables:
restart_button: button.cruise_tracker_restart_container
name: cruise_tracker
- entity_id: binary_sensor.dashy_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: dashy
icon: mdi:docker
variables:
restart_button: button.dashy_restart_container
name: dashy
- entity_id: binary_sensor.dozzle_agent_10_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: dozzle_agent_10
icon: mdi:docker
variables:
restart_button: button.dozzle_agent_10_restart_container
name: dozzle_agent_10
- entity_id: binary_sensor.dozzle_agent_14_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: dozzle_agent_14
icon: mdi:docker
variables:
restart_button: button.dozzle_agent_14_restart_container
name: dozzle_agent_14
- entity_id: binary_sensor.dozzle_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: dozzle
icon: mdi:docker
variables:
restart_button: button.dozzle_restart_container
name: dozzle
- entity_id: binary_sensor.duplicati_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: duplicati
icon: mdi:docker
variables:
restart_button: button.duplicati_restart_container
name: duplicati
- entity_id: binary_sensor.esphome_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: esphome
icon: mdi:docker
variables:
restart_button: button.esphome_restart_container
name: esphome
- entity_id: binary_sensor.foodie_tracker_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: foodie_tracker
icon: mdi:docker
variables:
restart_button: button.foodie_tracker_restart_container
name: foodie_tracker
- entity_id: binary_sensor.frigate_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: frigate
icon: mdi:docker
variables:
restart_button: button.frigate_restart_container
name: frigate
- entity_id: binary_sensor.games_hub_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: games_hub
icon: mdi:docker
variables:
restart_button: button.games_hub_restart_container
name: games_hub
- entity_id: binary_sensor.home_assistant_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: home-assistant
icon: mdi:docker
variables:
restart_button: button.home_assistant_restart_container
name: home-assistant
- entity_id: binary_sensor.imposter_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: imposter
icon: mdi:docker
variables:
restart_button: button.imposter_restart_container
name: imposter
- entity_id: binary_sensor.infra_info_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: infra_info
icon: mdi:docker
variables:
restart_button: button.infra_info_restart_container
name: infra_info
- entity_id: binary_sensor.kingcrafthomes_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: kingcrafthomes
icon: mdi:docker
variables:
restart_button: button.kingcrafthomes_restart_container
name: kingcrafthomes
- entity_id: binary_sensor.mariadb_backup_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: mariadb-backup
icon: mdi:docker
variables:
restart_button: button.mariadb_backup_restart_container
name: mariadb-backup
- entity_id: binary_sensor.mariadb_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: mariadb
icon: mdi:docker
variables:
restart_button: button.mariadb_restart_container
name: mariadb
- entity_id: binary_sensor.matter_server_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: matter-server
icon: mdi:docker
variables:
restart_button: button.matter_server_restart_container
name: matter-server
- entity_id: binary_sensor.mqtt_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: mqtt
icon: mdi:docker
variables:
restart_button: button.mqtt_restart_container
name: mqtt
- entity_id: binary_sensor.nebula_sync_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: nebula_sync
icon: mdi:docker
variables:
restart_button: button.nebula_sync_restart_container
name: nebula_sync
- entity_id: binary_sensor.panel_notes_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: panel_notes
icon: mdi:docker
variables:
restart_button: button.panel_notes_restart_container
name: panel_notes
- entity_id: binary_sensor.pihole_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: pihole
icon: mdi:docker
variables:
restart_button: button.pihole_restart_container
name: pihole
- entity_id: binary_sensor.pihole_secondary_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: pihole_secondary
icon: mdi:docker
variables:
restart_button: button.pihole_secondary_restart_container
name: pihole_secondary
- entity_id: binary_sensor.poker_tracker_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: poker_tracker
icon: mdi:docker
variables:
restart_button: button.poker_tracker_restart_container
name: poker_tracker
- entity_id: binary_sensor.portainer_agent_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: portainer_agent
icon: mdi:docker
variables:
restart_button: button.portainer_agent_restart_container
name: portainer_agent
- entity_id: binary_sensor.portainer_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: portainer
icon: mdi:docker
variables:
restart_button: button.portainer_restart_container
name: portainer
- entity_id: binary_sensor.postgres_webhooks_engine_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: postgres_webhooks_engine
icon: mdi:docker
variables:
restart_button: button.postgres_webhooks_engine_restart_container
name: postgres_webhooks_engine
- entity_id: binary_sensor.rc_price_checker_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: rc_price_checker
icon: mdi:docker
variables:
restart_button: button.rc_price_checker_restart_container
name: rc_price_checker
- entity_id: binary_sensor.redis_webhooks_engine_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: redis_webhooks_engine
icon: mdi:docker
variables:
restart_button: button.redis_webhooks_engine_restart_container
name: redis_webhooks_engine
- entity_id: binary_sensor.rvtools_ppt_web_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: rvtools_ppt_web
icon: mdi:docker
variables:
restart_button: button.rvtools_ppt_web_restart_container
name: rvtools_ppt_web
- entity_id: binary_sensor.steelesharing_home_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: steelesharing_home
icon: mdi:docker
variables:
restart_button: button.steelesharing_home_restart_container
name: steelesharing_home
- entity_id: binary_sensor.tapple_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: tapple
icon: mdi:docker
variables:
restart_button: button.tapple_restart_container
name: tapple
- entity_id: binary_sensor.tugtainer_agent_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: tugtainer-agent
icon: mdi:docker
variables:
restart_button: button.tugtainer_agent_restart_container
name: tugtainer-agent
- entity_id: binary_sensor.tugtainer_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: tugtainer
icon: mdi:docker
variables:
restart_button: button.tugtainer_restart_container
name: tugtainer
- entity_id: binary_sensor.tugtainer_socket_proxy_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: tugtainer_socket_proxy
icon: mdi:docker
variables:
restart_button: button.tugtainer_socket_proxy_restart_container
name: tugtainer_socket_proxy
- entity_id: binary_sensor.unifi_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: unifi
icon: mdi:docker
variables:
restart_button: button.unifi_restart_container
name: unifi
- entity_id: binary_sensor.webhooks_engine_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: webhooks_engine
icon: mdi:docker
variables:
restart_button: button.webhooks_engine_restart_container
name: webhooks_engine
- entity_id: binary_sensor.wordpress_db_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: wordpress_db
icon: mdi:docker
variables:
restart_button: button.wordpress_db_restart_container
name: wordpress_db
- entity_id: binary_sensor.wordpress_wp_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: wordpress_wp
icon: mdi:docker
variables:
restart_button: button.wordpress_wp_restart_container
name: wordpress_wp
- entity_id: binary_sensor.wyze_bridge_status
options:
type: custom:button-card
template: bearstone_infra_container_row
name: wyze-bridge
icon: mdi:docker
variables:
restart_button: button.wyze_bridge_restart_container
name: wyze-bridge

@ -0,0 +1,82 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure Partial - Docker containers sections
# Sections layout for the Docker containers view.
# -------------------------------------------------------------------
# Notes: Uses Portainer entities (`binary_sensor.*_status`, `button.*_restart_container`).
######################################################################
- type: grid
column_span: 4
columns: 4
square: false
cards:
- type: custom:button-card
template: bearstone_infra_chip
entity: binary_sensor.node_proxmox1_updates_packages
name: Proxmox01
icon: mdi:server
state_display: >
[[[ return entity.state === 'on' ? 'Updates pending' : 'Up to date'; ]]]
- type: custom:button-card
template: bearstone_infra_chip
entity: binary_sensor.node_proxmox02_updates_packages
name: Proxmox02
icon: mdi:server
state_display: >
[[[ return entity.state === 'on' ? 'Updates pending' : 'Up to date'; ]]]
- type: custom:button-card
template: bearstone_infra_chip
entity: sensor.garage_ups_status
name: Garage UPS
icon: mdi:transmission-tower
- type: custom:button-card
template: bearstone_infra_chip
entity: sensor.vcloudinfo_com
name: vCloudinfo
icon: mdi:microsoft-internet-explorer
- type: grid
column_span: 4
columns: 1
square: false
cards:
- type: custom:auto-entities
show_empty: true
grid_options:
columns: full
card:
type: grid
title: Docker Containers
columns: 4
square: false
card_param: cards
filter:
include: !include /config/dashboards/infrastructure/partials/docker_container_rows_include.yaml
exclude:
- state: unavailable
sort:
method: name
- type: grid
column_span: 4
columns: 1
square: false
cards:
- type: markdown
grid_options:
columns: full
content: |-
**Tip:** Hold a container row to restart it (confirmation required).
card_mod:
style: |
ha-card {
background: transparent;
border: none;
box-shadow: none;
text-align: center;
color: var(--secondary-text-color);
}

@ -0,0 +1,339 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure Partial - Home sections
# Rebuilt homepage layout (Stitch-inspired).
# -------------------------------------------------------------------
# Notes: Standardized on `custom:button-card` + `custom:mini-graph-card` with `card_mod` polish.
######################################################################
- type: grid
column_span: 4
columns: 4
square: false
cards:
- type: custom:button-card
template: bearstone_infra_chip
entity: binary_sensor.node_proxmox1_updates_packages
name: Proxmox01
icon: mdi:server
state_display: >
[[[ return entity.state === 'on' ? 'Updates pending' : 'Up to date'; ]]]
- type: custom:button-card
template: bearstone_infra_chip
entity: binary_sensor.node_proxmox02_updates_packages
name: Proxmox02
icon: mdi:server
state_display: >
[[[ return entity.state === 'on' ? 'Updates pending' : 'Up to date'; ]]]
- type: custom:button-card
template: bearstone_infra_chip
entity: sensor.garage_ups_status
name: Garage UPS
icon: mdi:transmission-tower
- type: custom:button-card
template: bearstone_infra_chip
entity: sensor.vcloudinfo_com
name: vCloudinfo
icon: mdi:microsoft-internet-explorer
- type: grid
column_span: 3
columns: 2
square: false
cards:
- type: vertical-stack
cards:
- type: custom:mini-graph-card
name: Proxmox01
icon: mdi:server
hours_to_show: 24
points_per_hour: 2
line_width: 2
animate: true
show:
fill: true
legend: true
icon: true
name: true
state: true
entities:
- entity: sensor.node_proxmox1_cpu_used
name: CPU
- entity: sensor.node_proxmox1_memory_used_percentage
name: Memory
card_mod:
style: !include /config/dashboards/infrastructure/card_mod/infra_card.yaml
- type: grid
columns: 3
square: false
cards:
- type: custom:button-card
template: bearstone_infra_device_tile
entity: sensor.qemu_docker69_169_status
name: Docker69
icon: mdi:docker
label: >
[[[ return "Last boot: " + (states['sensor.qemu_docker69_169_last_boot']?.state ?? 'unknown'); ]]]
variables:
button_entity: button.qemu_docker69_169_reboot
name: Docker69
- type: custom:button-card
template: bearstone_infra_device_tile
entity: sensor.qemu_carlo_hass_105_status
name: HASS
icon: mdi:home-assistant
label: >
[[[ return "Last boot: " + (states['sensor.qemu_carlo_hass_105_last_boot']?.state ?? 'unknown'); ]]]
variables:
button_entity: button.qemu_carlo_hass_105_reboot
name: HASS
- type: custom:button-card
template: bearstone_infra_device_tile
entity: sensor.qemu_wireguard_104_status
name: WireGuard
icon: mdi:vpn
label: >
[[[ return "Last boot: " + (states['sensor.qemu_wireguard_104_last_boot']?.state ?? 'unknown'); ]]]
variables:
button_entity: button.qemu_wireguard_104_reboot
name: WireGuard
- type: vertical-stack
cards:
- type: custom:mini-graph-card
name: Proxmox02
icon: mdi:server
hours_to_show: 24
points_per_hour: 2
line_width: 2
animate: true
show:
fill: true
legend: true
icon: true
name: true
state: true
entities:
- entity: sensor.node_proxmox02_cpu_used
name: CPU
- entity: sensor.node_proxmox02_memory_used_percentage
name: Memory
card_mod:
style: !include /config/dashboards/infrastructure/card_mod/infra_card.yaml
- type: grid
columns: 3
square: false
cards:
- type: custom:button-card
template: bearstone_infra_device_tile
entity: sensor.qemu_docker2_101_status
name: Frigate
icon: mdi:video
label: >
[[[ return "Last boot: " + (states['sensor.qemu_docker2_101_last_boot']?.state ?? 'unknown'); ]]]
variables:
button_entity: button.qemu_docker2_101_reboot
name: Frigate
- type: grid
column_span: 1
columns: 1
square: false
cards:
- type: custom:mini-graph-card
entities:
- entity: sensor.proxmox_garage_average_temperature
name: Garage
- entity: sensor.pirateweather_temperature
name: Outside
name: Garage Temp
hours_to_show: 96
color_thresholds:
- value: 50
color: '#f39c12'
- value: 120
color: '#d35400'
- value: 145
color: '#c0392b'
card_mod:
style: !include /config/dashboards/infrastructure/card_mod/infra_card.yaml
- type: custom:mini-graph-card
name: Garage UPS Load
icon: mdi:transmission-tower
entities:
- entity: sensor.garage_ups_load
name: Load
unit: '%'
hours_to_show: 24
points_per_hour: 4
line_width: 2
animate: true
color_thresholds:
- value: 20
color: '#43a047'
- value: 50
color: '#ffa000'
- value: 80
color: '#e53935'
show:
fill: true
icon: true
name: true
state: true
graph: line
card_mod:
style: !include /config/dashboards/infrastructure/card_mod/infra_card.yaml
- type: grid
column_span: 2
columns: 2
square: true
cards:
- type: custom:flex-horseshoe-card
entities:
- entity: sensor.carlo_nvr_volume_1_volume_used
name: NVR Video
decimals: 1
unit: '%'
- entity: sensor.carlo_nvr_volume_1_total_size
name: Total
decimals: 2
unit: TiB
show:
horseshoe_style: colorstopgradient
horseshoe_scale:
min: 0
max: 100
color_stops:
'0': '#43a047'
'50': '#fbc02d'
'80': '#e53935'
card_mod:
style: !include /config/dashboards/infrastructure/card_mod/infra_card.yaml
- type: custom:flex-horseshoe-card
entities:
- entity: sensor.carlo_nas01_volume_1_volume_used
name: NAS Storage
decimals: 1
unit: '%'
- entity: sensor.carlo_nas01_volume_1_total_size
name: Total
decimals: 2
unit: TiB
show:
horseshoe_style: colorstopgradient
horseshoe_scale:
min: 0
max: 100
color_stops:
'0': '#43a047'
'50': '#fbc02d'
'80': '#e53935'
card_mod:
style: !include /config/dashboards/infrastructure/card_mod/infra_card.yaml
- type: grid
column_span: 2
columns: 1
square: false
cards:
- type: custom:mini-graph-card
name: Wi-Fi Overview
icon: mdi:wifi
hours_to_show: 24
line_width: 2
points_per_hour: 1
smoothing: true
show:
graph: line
legend: true
labels: false
name: true
icon: true
state: true
entities:
- entity: sensor.total_wifi_clients
name: Total
show_state: true
show_graph: false
show_line: false
show_points: false
show_fill: false
show_legend: false
- entity: sensor.unifi_ap_office_clients
name: Office AP
show_state: true
- entity: sensor.unifi_ap_study_clients
name: Study AP
show_state: true
- entity: sensor.unifi_ap_garage_clients
name: Garage AP
show_state: true
card_mod:
style: !include /config/dashboards/infrastructure/card_mod/infra_card.yaml
- type: grid
column_span: 4
columns: 3
square: false
cards:
- type: custom:button-card
template: bearstone_infra_device_tile
name: Garage AP
icon: mdi:access-point
entity: sensor.unifi_ap_garage_clients
label: >
[[[ return "Uptime: " + (states['sensor.unifi_ap_garage_uptime']?.state ?? 'unknown'); ]]]
variables:
button_entity: button.unifi_ap_garage_restart
name: Garage AP
- type: custom:button-card
template: bearstone_infra_device_tile
name: Office AP
icon: mdi:access-point
entity: sensor.unifi_ap_office_clients
label: >
[[[ return "Uptime: " + (states['sensor.unifi_ap_office_uptime']?.state ?? 'unknown'); ]]]
variables:
button_entity: button.unifi_ap_office_restart
name: Office AP
- type: custom:button-card
template: bearstone_infra_device_tile
name: Study AP
icon: mdi:access-point
entity: sensor.unifi_ap_study_clients
label: >
[[[ return "Uptime: " + (states['sensor.unifi_ap_study_uptime']?.state ?? 'unknown'); ]]]
variables:
button_entity: button.unifi_ap_study_restart
name: Study AP
- type: grid
column_span: 4
columns: 3
square: false
cards:
- type: custom:button-card
template: bearstone_infra_tile
name: docker_10
icon: mdi:server
entity: sensor.docker_10_apt_status
label: >
[[[ return "Last update: " + (states['sensor.docker_10_apt_last_update']?.state ?? 'unknown') + " | " + (states['sensor.docker_10_apt_reboot_status']?.state ?? ''); ]]]
- type: custom:button-card
template: bearstone_infra_tile
name: docker_69
icon: mdi:server
entity: sensor.docker_69_apt_status
label: >
[[[ return "Last update: " + (states['sensor.docker_69_apt_last_update']?.state ?? 'unknown') + " | " + (states['sensor.docker_69_apt_reboot_status']?.state ?? ''); ]]]
- type: custom:button-card
template: bearstone_infra_tile
name: docker_14
icon: mdi:server
entity: sensor.docker_14_apt_status
label: >
[[[ return "Last update: " + (states['sensor.docker_14_apt_last_update']?.state ?? 'unknown') + " | " + (states['sensor.docker_14_apt_reboot_status']?.state ?? ''); ]]]

@ -0,0 +1,146 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure Partial - mariadb sections
# Reusable list extracted from a view for smaller diffs and safer edits.
# -------------------------------------------------------------------
# Notes: Stitch-inspired MariaDB layout (3 panel columns).
######################################################################
- column_span: 1
cards:
- type: custom:vertical-stack-in-card
card_mod:
style: !include /config/dashboards/infrastructure/card_mod/infra_panel.yaml
cards:
- type: custom:button-card
template: bearstone_infra_panel_header
name: Database Statistics
- type: custom:button-card
template: bearstone_infra_list_row
entity: sensor.database_size
name: Database Size
icon: mdi:database
- type: custom:button-card
template: bearstone_infra_list_row
entity: sensor.database_tables_count
name: Number of Tables
icon: mdi:table
- type: custom:button-card
template: bearstone_infra_list_row
entity: sensor.database_total_records
name: Total Records
icon: mdi:counter
- type: custom:button-card
template: bearstone_infra_list_row
entity: sensor.database_records_per_day
name: Records per Day
icon: mdi:chart-line
- type: custom:button-card
template: bearstone_infra_list_row
entity: sensor.database_oldest_record
name: Oldest Record
icon: mdi:clock-start
- column_span: 1
cards:
- type: custom:vertical-stack-in-card
card_mod:
style: !include /config/dashboards/infrastructure/card_mod/infra_panel.yaml
cards:
- type: custom:button-card
template: bearstone_infra_panel_header
name: MariaDB Status
- type: custom:button-card
template: bearstone_infra_list_row_running
entity: sensor.mariadb_status
name: Server Status
icon: mdi:database
state_display: >
[[[
if (entity.state === 'unknown') return 'Unknown';
return String(entity.state).toUpperCase();
]]]
- type: custom:button-card
template: bearstone_infra_list_row
entity: sensor.mariadb_version
name: Version
icon: mdi:information-outline
- type: custom:button-card
template: bearstone_infra_list_row
entity: sensor.mariadb_performance
name: Performance
icon: mdi:chart-line
- type: custom:button-card
template: bearstone_infra_list_row
entity: sensor.mariadb_uptime
name: Uptime
icon: mdi:timer-outline
- type: custom:button-card
template: bearstone_infra_list_row
entity: sensor.mariadb_connections
name: Active Connections
icon: mdi:lan-connect
- type: custom:button-card
template: bearstone_infra_list_row
entity: sensor.mariadb_questions
name: Total Queries
icon: mdi:database-search
- column_span: 1
cards:
- type: custom:vertical-stack-in-card
card_mod:
style: !include /config/dashboards/infrastructure/card_mod/infra_panel.yaml
cards:
- type: custom:button-card
template: bearstone_infra_panel_header
name: MariaDB Tuning
- type: grid
columns: 2
square: false
cards:
- type: custom:button-card
template: bearstone_infra_kpi
entity: sensor.mariadb_buffer_pool_size
name: InnoDB Buffer
icon: mdi:memory
- type: custom:button-card
template: bearstone_infra_kpi
entity: sensor.mariadb_max_connections
name: Max Conn.
icon: mdi:account-multiple
- type: custom:button-card
template: bearstone_infra_kpi
entity: sensor.mariadb_log_file_size
name: Log File
icon: mdi:file
- type: custom:button-card
template: bearstone_infra_kpi
entity: sensor.mariadb_tmp_table_size
name: Temp Size
icon: mdi:table
- type: custom:button-card
template: bearstone_infra_kpi
entity: sensor.mariadb_io_capacity
name: IO Capacity
icon: mdi:speedometer
- type: custom:button-card
template: bearstone_infra_kpi
entity: sensor.mariadb_io_threads
name: IO Threads
icon: mdi:developer-board
- type: custom:button-card
template: bearstone_infra_kpi
entity: sensor.mariadb_table_cache
name: Table Cache
icon: mdi:cached
- type: custom:button-card
template: bearstone_infra_kpi
entity: sensor.mariadb_buffer_sizes
name: Sort/Join
icon: mdi:code-brackets

@ -0,0 +1,15 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure Partial - pi_hole cards
# Reusable list extracted from a view for smaller diffs and safer edits.
# -------------------------------------------------------------------
# Notes: Extracted from config/dashboards/infrastructure/views/02_pi_hole.yaml key `cards`.
######################################################################
- type: custom:pi-hole
device_id: d69637da16f7d7f3626070582be59808
grid_options:
columns: full

@ -0,0 +1,37 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure Partial - proxmox badges
# Reusable list extracted from a view for smaller diffs and safer edits.
# -------------------------------------------------------------------
# Notes: Extracted from config/dashboards/infrastructure/views/01_proxmox.yaml key `badges`.
######################################################################
- type: entity
show_name: true
show_state: true
show_icon: true
entity: binary_sensor.node_proxmox1_updates_packages
name: ProxMox1
- type: entity
show_name: true
show_state: true
show_icon: true
entity: binary_sensor.node_proxmox02_updates_packages
name: Proxmox02
- type: entity
icon: mdi:transmission-tower
show_name: true
show_state: true
show_icon: true
entity: sensor.garage_ups_status
name: Garage UPS
- type: entity
show_name: true
show_state: true
show_icon: true
icon: mdi:microsoft-internet-explorer
entity: sensor.vcloudinfo_com
name: vCloudinfo

@ -0,0 +1,187 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure Partial - proxmox sections
# Reusable list extracted from a view for smaller diffs and safer edits.
# -------------------------------------------------------------------
# Notes: Standardized on `custom:button-card` + `custom:mini-graph-card` with `card_mod` polish.
######################################################################
- type: grid
column_span: 4
columns: 4
square: false
cards:
- type: custom:button-card
template: bearstone_infra_chip
entity: binary_sensor.node_proxmox1_updates_packages
name: Proxmox01
icon: mdi:server
state_display: >
[[[ return entity.state === 'on' ? 'Updates pending' : 'Up to date'; ]]]
- type: custom:button-card
template: bearstone_infra_chip
entity: binary_sensor.node_proxmox02_updates_packages
name: Proxmox02
icon: mdi:server
state_display: >
[[[ return entity.state === 'on' ? 'Updates pending' : 'Up to date'; ]]]
- type: custom:button-card
template: bearstone_infra_chip
entity: sensor.garage_ups_status
name: Garage UPS
icon: mdi:transmission-tower
- type: custom:button-card
template: bearstone_infra_chip
entity: sensor.vcloudinfo_com
name: vCloudinfo
icon: mdi:microsoft-internet-explorer
- type: grid
column_span: 4
columns: 2
square: false
cards:
- type: vertical-stack
cards:
- type: custom:mini-graph-card
name: Proxmox01
icon: mdi:server
hours_to_show: 24
points_per_hour: 2
line_width: 2
animate: true
show:
fill: true
legend: true
icon: true
name: true
state: true
entities:
- entity: sensor.node_proxmox1_cpu_used
name: CPU
- entity: sensor.node_proxmox1_memory_used_percentage
name: Memory
card_mod:
style: !include /config/dashboards/infrastructure/card_mod/infra_card.yaml
- type: custom:mini-graph-card
name: Proxmox01 VMs (CPU / MEM)
icon: mdi:chart-line
hours_to_show: 24
points_per_hour: 2
line_width: 2
animate: true
show:
fill: false
legend: true
icon: true
name: true
state: false
entities:
- entity: sensor.qemu_docker69_169_cpu_used
name: Docker69 CPU
- entity: sensor.qemu_docker69_169_memory_used_percentage
name: Docker69 MEM
- entity: sensor.qemu_carlo_hass_105_cpu_used
name: HASS CPU
- entity: sensor.qemu_carlo_hass_105_memory_used_percentage
name: HASS MEM
- entity: sensor.qemu_wireguard_104_cpu_used
name: WireGuard CPU
- entity: sensor.qemu_wireguard_104_memory_used_percentage
name: WireGuard MEM
card_mod:
style: !include /config/dashboards/infrastructure/card_mod/infra_card.yaml
- type: grid
columns: 3
square: false
cards:
- type: custom:button-card
template: bearstone_infra_device_tile
entity: sensor.qemu_docker69_169_status
name: Docker69
icon: mdi:docker
label: >
[[[ return "Last boot: " + (states['sensor.qemu_docker69_169_last_boot']?.state ?? 'unknown'); ]]]
variables:
button_entity: button.qemu_docker69_169_reboot
name: Docker69
- type: custom:button-card
template: bearstone_infra_device_tile
entity: sensor.qemu_carlo_hass_105_status
name: HASS
icon: mdi:home-assistant
label: >
[[[ return "Last boot: " + (states['sensor.qemu_carlo_hass_105_last_boot']?.state ?? 'unknown'); ]]]
variables:
button_entity: button.qemu_carlo_hass_105_reboot
name: HASS
- type: custom:button-card
template: bearstone_infra_device_tile
entity: sensor.qemu_wireguard_104_status
name: WireGuard
icon: mdi:vpn
label: >
[[[ return "Last boot: " + (states['sensor.qemu_wireguard_104_last_boot']?.state ?? 'unknown'); ]]]
variables:
button_entity: button.qemu_wireguard_104_reboot
name: WireGuard
- type: vertical-stack
cards:
- type: custom:mini-graph-card
name: Proxmox02
icon: mdi:server
hours_to_show: 24
points_per_hour: 2
line_width: 2
animate: true
show:
fill: true
legend: true
icon: true
name: true
state: true
entities:
- entity: sensor.node_proxmox02_cpu_used
name: CPU
- entity: sensor.node_proxmox02_memory_used_percentage
name: Memory
card_mod:
style: !include /config/dashboards/infrastructure/card_mod/infra_card.yaml
- type: custom:mini-graph-card
name: Frigate VM (CPU / MEM)
icon: mdi:video
hours_to_show: 24
points_per_hour: 2
line_width: 2
animate: true
show:
fill: false
legend: true
icon: true
name: true
state: false
entities:
- entity: sensor.qemu_docker2_101_cpu_used
name: CPU
- entity: sensor.qemu_docker2_101_memory_used_percentage
name: MEM
card_mod:
style: !include /config/dashboards/infrastructure/card_mod/infra_card.yaml
- type: grid
columns: 3
square: false
cards:
- type: custom:button-card
template: bearstone_infra_device_tile
entity: sensor.qemu_docker2_101_status
name: Frigate
icon: mdi:video
label: >
[[[ return "Last boot: " + (states['sensor.qemu_docker2_101_last_boot']?.state ?? 'unknown'); ]]]
variables:
button_entity: button.qemu_docker2_101_reboot
name: Frigate

@ -0,0 +1,16 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure Partial - vacuum badges
# Reusable list extracted from a view for smaller diffs and safer edits.
# -------------------------------------------------------------------
# Notes: Extracted from config/dashboards/infrastructure/views/03_vacuum.yaml key `badges`.
######################################################################
- type: entity
show_name: true
show_state: true
show_icon: true
entity: input_boolean.l10s_vacuum_on_demand

@ -0,0 +1,344 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure Partial - vacuum sections
# Reusable list extracted from a view for smaller diffs and safer edits.
# -------------------------------------------------------------------
# Notes: Extracted from config/dashboards/infrastructure/views/03_vacuum.yaml key `sections`.
######################################################################
- type: grid
cards:
- type: tile
entity: input_text.l10s_vacuum_room_catalog
vertical: false
features_position: bottom
grid_options:
columns: full
- type: tile
entity: input_text.l10s_vacuum_room_queue
vertical: false
features_position: bottom
grid_options:
columns: full
- type: tile
entity: input_text.l10s_vacuum_rooms_cleaned_today
vertical: false
features_position: bottom
grid_options:
columns: full
- type: tile
grid_options:
columns: full
entity: sensor.l10s_vacuum_current_room
state_content:
- state
- room_id
- last_changed
vertical: false
features_position: bottom
- type: tile
entity: input_select.l10s_vacuum_phase
- type: grid
cards:
- type: custom:xiaomi-vacuum-map-card
map_source:
camera: camera.l10s_vacuum_map
calibration_source:
camera: true
entity: vacuum.l10s_vacuum
vacuum_platform: Tasshack/dreame-vacuum
map_modes:
- template: vacuum_clean_zone
- template: vacuum_clean_point
- template: vacuum_clean_segment
predefined_selections:
- id: '1'
icon:
name: mdi:home-outline
x: -8100
y: 12400
label:
text: Pool-Bath
x: -8100
y: 12400
offset_y: 35
outline:
- - -9950
- 11350
- - -6650
- 11350
- - -6650
- 12900
- - -9950
- 12900
- id: '2'
icon:
name: mdi:monitor-shimmer
x: -4650
y: 10900
label:
text: Office
x: -4650
y: 10900
offset_y: 35
outline:
- - -6650
- 7400
- - -2800
- 7400
- - -2800
- 12850
- - -6650
- 12850
- id: '3'
icon:
name: mdi:home-outline
x: -5600
y: 5250
label:
text: Kids-Bathroom
x: -5600
y: 5250
offset_y: 35
outline:
- - -6450
- 4250
- - -4750
- 4250
- - -4750
- 6150
- - -6450
- 6150
- id: '4'
icon:
name: mdi:home-outline
x: 7300
y: 4100
label:
text: Master-Bathroom
x: 7300
y: 4100
offset_y: 35
outline:
- - 5450
- 250
- - 9400
- 250
- - 9400
- 7850
- - 5450
- 7850
- id: '6'
icon:
name: mdi:home-outline
x: -8450
y: 4200
label:
text: Paige-Bedroom
x: -8450
y: 4200
offset_y: 35
outline:
- - -9900
- 1600
- - -6600
- 1600
- - -6600
- 6100
- - -9900
- 6100
- id: '7'
icon:
name: mdi:home-outline
x: 6450
y: 10400
label:
text: Master-Bedroom
x: 6450
y: 10400
offset_y: 35
outline:
- - 3450
- 7850
- - 9550
- 7850
- - 9550
- 12850
- - 3450
- 12850
- id: '8'
icon:
name: mdi:home-outline
x: -8300
y: 9300
label:
text: Justin-Bedroom
x: -8300
y: 9300
offset_y: 35
outline:
- - -9950
- 6250
- - -6650
- 6250
- - -6650
- 11150
- - -9950
- 11150
- id: '9'
icon:
name: mdi:home-outline
x: 7250
y: -2200
label:
text: Stacey-Office
x: 7250
y: -2200
offset_y: 35
outline:
- - 5450
- -4700
- - 9450
- -4700
- - 9450
- 350
- - 5450
- 350
- id: '10'
icon:
name: mdi:sofa-outline
x: 2500
y: 4800
label:
text: Living Room
x: 2500
y: 4800
offset_y: 35
outline:
- - -650
- 750
- - 5300
- 750
- - 5300
- 8800
- - -650
- 8800
- id: '11'
icon:
name: mdi:home-outline
x: -5350
y: 2600
label:
text: Garage-Hallway
x: -5350
y: 2600
offset_y: 35
outline:
- - -6600
- 1100
- - -4050
- 1100
- - -4050
- 4200
- - -6600
- 4200
- id: '12'
icon:
name: mdi:home-outline
x: 700
y: 8900
label:
text: Dining-Room
x: 700
y: 8900
offset_y: 35
outline:
- - -4350
- 6000
- - 2650
- 6000
- - 2650
- 12650
- - -4350
- 12650
- id: '13'
icon:
name: mdi:home-outline
x: -6200
y: 6800
label:
text: Hallway
x: -6200
y: 6800
offset_y: 35
outline:
- - -7550
- 6100
- - -4350
- 6100
- - -4350
- 7700
- - -7550
- 7700
- id: '14'
icon:
name: mdi:chef-hat
x: -1700
y: 3350
label:
text: Kitchen
x: -1700
y: 3350
offset_y: 35
outline:
- - -4200
- 950
- - -300
- 950
- - -300
- 6100
- - -4200
- 6100
- id: '15'
icon:
name: mdi:home-outline
x: 4050
y: -1350
label:
text: Foyer
x: 4050
y: -1350
offset_y: 35
outline:
- - 2850
- -3500
- - 5450
- -3500
- - 5450
- 800
- - 2850
- 800
- id: '17'
icon:
name: mdi:home-outline
x: 750
y: -1250
label:
text: Formal-Dining
x: 750
y: -1250
offset_y: 35
outline:
- - -1500
- -3500
- - 2950
- -3500
- - 2950
- 950
- - -1500
- 950
map_locked: true
two_finger_pan: true

@ -0,0 +1,15 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure Partial - view cards
# Reusable list extracted from a view for smaller diffs and safer edits.
# -------------------------------------------------------------------
# Notes: Extracted from config/dashboards/infrastructure/views/04_view.yaml key `cards`.
######################################################################
- type: logbook
target:
entity_id:
- sensor.activity_feed

@ -0,0 +1,304 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure Templates - custom:button-card
# Shared `button_card_templates` used across Infrastructure views.
# -------------------------------------------------------------------
# Notes: Keep templates generic; view-specific tuning stays in the view partials.
######################################################################
bearstone_infra_base:
show_icon: true
show_name: true
show_state: true
tap_action:
action: more-info
styles:
card:
- border-radius: 18px
- padding: 14px
- box-shadow: none
- background: var(--ha-card-background, var(--card-background-color))
- border: 1px solid rgba(0,0,0,0.06)
- overflow: hidden
grid:
- grid-template-areas: "\"i n\" \"i s\""
- grid-template-columns: 40px 1fr
- grid-template-rows: min-content min-content
icon:
- width: 22px
- color: var(--primary-text-color)
name:
- font-weight: 700
- font-size: 14px
- justify-self: start
- padding-bottom: 2px
state:
- font-size: 12px
- opacity: 0.75
- justify-self: start
bearstone_infra_chip:
template: bearstone_infra_base
show_state: true
styles:
card:
- border-radius: 999px
- padding: 10px 12px
- border: 1px solid rgba(0,0,0,0.06)
- background: rgba(255,255,255,0.75)
- backdrop-filter: blur(6px)
- -webkit-backdrop-filter: blur(6px)
grid:
- grid-template-areas: "\"i n\" \"i s\""
- grid-template-columns: 28px 1fr
icon:
- width: 18px
name:
- font-weight: 700
- font-size: 12px
state:
- font-size: 11px
- opacity: 0.7
bearstone_infra_chip_running:
template: bearstone_infra_chip
state:
- value: 'on'
styles:
card:
- border-color: rgba(67,160,71,0.45)
- background: rgba(232,245,233,0.85)
icon:
- color: rgba(46,125,50,1)
- value: 'off'
styles:
card:
- border-color: rgba(229,57,53,0.35)
- background: rgba(255,235,238,0.85)
icon:
- color: rgba(198,40,40,1)
- value: unavailable
styles:
card:
- border-color: rgba(229,57,53,0.35)
- background: rgba(255,235,238,0.85)
icon:
- color: rgba(198,40,40,1)
bearstone_infra_tile:
template: bearstone_infra_base
show_label: true
label: '[[[ return variables.label ? variables.label : "" ]]]'
styles:
grid:
- grid-template-areas: "\"i n\" \"i l\""
- grid-template-rows: min-content min-content
label:
- font-size: 12px
- opacity: 0.8
- justify-self: start
state:
- value: unavailable
styles:
card:
- border-color: rgba(229,57,53,0.35)
- background: rgba(255,235,238,0.85)
bearstone_infra_reboot:
template: bearstone_infra_tile
show_state: false
icon: mdi:restart
label: '[[[ return variables.subtitle ? variables.subtitle : "Hold to reboot" ]]]'
hold_action:
action: call-service
service: button.press
service_data:
entity_id: '[[[ return variables.button_entity ]]]'
confirmation:
text: '[[[ return "Reboot " + (variables.name ? variables.name : "device") + "?" ]]]'
styles:
icon:
- color: var(--secondary-text-color)
bearstone_infra_device_tile:
template: bearstone_infra_tile
show_state: true
label: '[[[ return variables.subtitle ? variables.subtitle : "" ]]]'
hold_action:
action: call-service
service: button.press
service_data:
entity_id: '[[[ return variables.button_entity ]]]'
confirmation:
text: '[[[ return "Restart " + (variables.name ? variables.name : "device") + "?" ]]]'
styles:
state:
- font-weight: 700
bearstone_infra_container_row:
template: bearstone_infra_list_row_running
show_label: false
tap_action:
action: none
hold_action:
action: call-service
service: button.press
service_data:
entity_id: '[[[ return variables.restart_button ]]]'
confirmation:
text: '[[[ return "Restart container " + entity.attributes.friendly_name + "?" ]]]'
icon: mdi:docker
bearstone_infra_panel_header:
show_icon: false
show_state: false
show_label: false
tap_action:
action: none
styles:
card:
- background: transparent
- border: none
- box-shadow: none
- padding: 6px 2px 10px 2px
name:
- font-size: 18px
- font-weight: 800
- justify-self: start
bearstone_infra_list_row:
show_icon: true
show_name: true
show_state: true
show_label: false
tap_action:
action: more-info
styles:
card:
- border-radius: 14px
- padding: 12px 12px
- box-shadow: none
- border: 1px solid rgba(0,0,0,0.03)
- background: rgba(0,0,0,0.02)
- width: 100%
- box-sizing: border-box
grid:
- grid-template-areas: "\"i n s\""
- grid-template-columns: 24px 1fr auto
- align-items: center
- column-gap: 10px
icon:
- width: 18px
- color: var(--primary-color)
name:
- font-weight: 700
- font-size: 14px
- justify-self: start
- opacity: 0.95
- min-width: 0
- overflow: hidden
- text-overflow: ellipsis
- white-space: nowrap
state:
- justify-self: end
- font-weight: 700
- font-size: 13px
- opacity: 0.8
- padding-left: 8px
- white-space: nowrap
bearstone_infra_list_row_running:
template: bearstone_infra_list_row
state:
- value: 'on'
styles:
card:
- border-color: rgba(67,160,71,0.45)
- background: rgba(232,245,233,0.85)
icon:
- color: rgba(46,125,50,1)
state:
- color: rgba(46,125,50,1)
- opacity: 1
- value: 'off'
styles:
card:
- border-color: rgba(229,57,53,0.35)
- background: rgba(255,235,238,0.85)
icon:
- color: rgba(198,40,40,1)
state:
- color: rgba(198,40,40,1)
- opacity: 1
- value: Running
styles:
icon:
- color: rgba(46,125,50,1)
state:
- color: rgba(46,125,50,1)
- opacity: 1
- value: running
styles:
icon:
- color: rgba(46,125,50,1)
state:
- color: rgba(46,125,50,1)
- opacity: 1
- value: Stopped
styles:
icon:
- color: rgba(198,40,40,1)
state:
- color: rgba(198,40,40,1)
- opacity: 1
- value: stopped
styles:
icon:
- color: rgba(198,40,40,1)
state:
- color: rgba(198,40,40,1)
- opacity: 1
- value: unavailable
styles:
icon:
- color: rgba(198,40,40,1)
state:
- color: rgba(198,40,40,1)
- opacity: 1
bearstone_infra_kpi:
show_icon: true
show_name: true
show_state: true
show_label: false
tap_action:
action: more-info
styles:
card:
- border-radius: 14px
- padding: 12px
- box-shadow: none
- border: 1px solid rgba(0,0,0,0.03)
- background: rgba(0,0,0,0.02)
grid:
- grid-template-areas: "\"i\" \"n\" \"s\""
- grid-template-rows: 22px min-content min-content
- row-gap: 6px
- justify-items: center
icon:
- width: 18px
- color: var(--primary-color)
name:
- font-size: 11px
- font-weight: 800
- opacity: 0.65
- text-transform: uppercase
- text-align: center
- letter-spacing: 0.6px
state:
- font-size: 16px
- font-weight: 800
- opacity: 0.9

@ -0,0 +1,19 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure View - Home
# Clean layout inspired by Stitch wireframe (hosts, right-rail trends, storage, wifi, apt).
# -------------------------------------------------------------------
# Notes: Uses existing Infrastructure entities from Proxmox/UniFi/UPS/Docker hosts.
######################################################################
title: Infrastructure
path: home
type: sections
icon: mdi:view-dashboard-variant
max_columns: 4
badges: []
sections: !include /config/dashboards/infrastructure/partials/home_sections.yaml
cards: []

@ -0,0 +1,19 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure View - ProxMox
# YAML-exported Lovelace dashboard (split into view files).
# -------------------------------------------------------------------
# Notes: Exported from config/.storage/lovelace.dashboard_infrastructure view index 1.
######################################################################
title: ProxMox
path: proxmox
cards: []
type: sections
icon: mdi:server
badges: []
sections: !include /config/dashboards/infrastructure/partials/proxmox_sections.yaml
max_columns: 4

@ -0,0 +1,18 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure View - Pi-Hole
# YAML-exported Lovelace dashboard (split into view files).
# -------------------------------------------------------------------
# Notes: Exported from config/.storage/lovelace.dashboard_infrastructure view index 2.
######################################################################
type: panel
path: pi-hole
title: Pi-Hole
icon: mdi:pi-hole
visible:
- user: be280a93c9d7416e98d25d0470f414be
cards: !include /config/dashboards/infrastructure/partials/pi_hole_cards.yaml

@ -0,0 +1,23 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure View - Vacuum
# YAML-exported Lovelace dashboard (split into view files).
# -------------------------------------------------------------------
# Notes: Exported from config/.storage/lovelace.dashboard_infrastructure view index 3.
######################################################################
title: Vacuum
icon: mdi:robot-vacuum
type: sections
cards: []
visible:
- user: be280a93c9d7416e98d25d0470f414be
- user: 46a8d15eb20e4a1daf2d1d1f63180ec5
- user: 8fc5ba22cb32430a9143beb4df70541b
- user: 19970706e7e4492c844ea2fc94a4599a
sections: !include /config/dashboards/infrastructure/partials/vacuum_sections.yaml
max_columns: 2
badges: !include /config/dashboards/infrastructure/partials/vacuum_badges.yaml

@ -0,0 +1,16 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure View - Untitled
# YAML-exported Lovelace dashboard (split into view files).
# -------------------------------------------------------------------
# Notes: Exported from config/.storage/lovelace.dashboard_infrastructure view index 4.
######################################################################
type: panel
icon: mdi:clipboard-text-outline
title: Activity
path: activity
cards: !include /config/dashboards/infrastructure/partials/view_cards.yaml

@ -0,0 +1,18 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure View - MariaDB
# YAML-exported Lovelace dashboard (split into view files).
# -------------------------------------------------------------------
# Notes: Exported from config/.storage/lovelace.dashboard_infrastructure view index 5.
######################################################################
type: sections
title: MariaDB
path: mariadb
max_columns: 3
icon: mdi:database
sections: !include /config/dashboards/infrastructure/partials/mariadb_sections.yaml
cards: []

@ -0,0 +1,18 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Infrastructure View - Docker containers
# Container status + restart controls (Portainer integration).
# -------------------------------------------------------------------
# Notes: Uses `binary_sensor.*_status` and `button.*_restart_container` entities (Portainer integration).
######################################################################
title: Docker
path: docker
type: sections
icon: mdi:docker
badges: []
sections: !include /config/dashboards/infrastructure/partials/docker_containers_sections.yaml
max_columns: 4

@ -0,0 +1,12 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# KIOSK Dashboard - YAML entrypoint
# YAML-exported Lovelace dashboard (split into view files).
# -------------------------------------------------------------------
# Notes: Entry point for dashboard key `dashboard-kiosk`. Views are loaded from /config/dashboards/kiosk/views.
######################################################################
views: !include_dir_list /config/dashboards/kiosk/views

@ -0,0 +1,20 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Kiosk Partial - kiosk_oveview badges
# Reusable list extracted from a view for smaller diffs and safer edits.
# -------------------------------------------------------------------
# Notes: Extracted from config/dashboards/kiosk/views/01_kiosk_oveview.yaml key `badges`.
######################################################################
- type: entity
show_name: true
show_state: false
show_icon: true
entity: switch.alarm_panel_1_screensaver
tap_action:
action: toggle
show_entity_picture: false
name: Turn On ScreenSaver

@ -0,0 +1,73 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Kiosk Partial - kiosk_oveview sections
# Reusable list extracted from a view for smaller diffs and safer edits.
# -------------------------------------------------------------------
# Notes: Extracted from config/dashboards/kiosk/views/01_kiosk_oveview.yaml key `sections`.
######################################################################
- type: grid
cards:
- type: picture-glance
camera_image: camera.frontdoorbell
camera_view: auto
entities: []
grid_options:
columns: 12
rows: auto
column_span: 1
- type: grid
column_span: 1
cards:
- type: picture-glance
camera_image: camera.garagecam
camera_view: auto
entities: []
grid_options:
columns: 6
rows: auto
- type: picture-glance
camera_image: camera.driveway
camera_view: auto
entities: []
grid_options:
columns: 6
rows: auto
- type: picture-glance
camera_image: camera.kidsgate
camera_view: auto
entities: []
grid_options:
columns: 6
rows: auto
- type: picture-glance
camera_image: camera.frontlawn
camera_view: auto
entities: []
grid_options:
columns: 6
rows: auto
- type: picture-glance
camera_image: camera.bedroomgate
camera_view: auto
entities: []
grid_options:
columns: 6
rows: auto
- type: picture-glance
camera_image: camera.filtergate
camera_view: auto
entities: []
grid_options:
columns: 6
rows: auto
- type: picture-glance
camera_image: camera.poolcam
camera_view: auto
entities: []
grid_options:
columns: 6
rows: auto

@ -0,0 +1,134 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Kiosk Partial - locator sections
# Reusable list extracted from a view for smaller diffs and safer edits.
# -------------------------------------------------------------------
# Notes: Extracted from config/dashboards/kiosk/views/02_locator.yaml key `sections`.
######################################################################
- cards:
- square: true
type: grid
cards:
- type: picture-entity
entity: person.carlo
name: Carlo
show_state: false
show_name: false
state_filter:
home: none
not_home: grayscale(100%) opacity(50%)
- type: picture-entity
entity: person.stacey
name: Stacey (Mom)
show_state: false
show_name: false
state_filter:
home: none
not_home: grayscale(100%) opacity(50%)
- type: picture-entity
entity: person.justin
name: Justin (Son)
show_state: false
show_name: false
state_filter:
home: none
not_home: grayscale(100%) opacity(50%)
- type: picture-entity
entity: person.paige
name: Paige (Daughter)
show_state: false
show_name: false
state_filter:
home: none
not_home: grayscale(100%) opacity(50%)
columns: 4
- type: entities
entities:
- type: conditional
conditions:
- entity: person.carlo
state_not: home
row:
type: attribute
entity: sensor.carlo_place
name: Carlo Location
- type: conditional
conditions:
- entity: person.stacey
state_not: home
row:
type: attribute
entity: sensor.stacey_place
attribute: place_name
name: Stacey Location
- type: conditional
conditions:
- entity: person.justin
state_not: home
row:
type: attribute
entity: sensor.justin_place
attribute: place_name
name: Justin Location
- type: conditional
conditions:
- entity: person.paige
state_not: home
row:
type: attribute
entity: sensor.paige_place
attribute: place_name
name: Paige Location
- show_state: true
show_name: true
camera_view: live
type: picture-entity
entity: camera.birdseye
column_span: 1
- type: grid
cards:
- type: custom:mushroom-template-card
primary: Family Map
icon: mdi:map-marker
tap_action:
action: navigate
navigation_path: /lovelace/family_locator
hold_action:
action: none
double_tap_action:
action: none
layout: horizontal
fill_container: true
- type: map
entities:
- person.justin
- person.paige
hours_to_show: 48
aspect_ratio: '4:3'
theme_mode: auto
card_mod:
style: null
ha-map $ ha-entity-marker $: ".marker { \n /* Style person marker & adjust position to avoid blocking waypoints */\
\ \n border: 3px solid var(\u2014state-person) !important; \n border-radius: 50% 50% 50% 0px !important; \n transform:\
\ rotate(-45deg) translate(50%, -50%); \n overflow: visible !important;\n} \n.entity-picture { \n /* Correct orientation\
\ of person avatar / \n transform: rotate(45deg); \n border-radius: 50%; \n} \n"
ha-map $: "path:first-child { \n / Style accuracy radius / \n stroke: var(\u2014state-person); \n fill: color-mix(in\
\ srgb, var(\u2014state-person) 50%, transparent); \n stroke-width: 0px; } \npath:nth-child(even) { \n / Styling\
\ for waypoints / \n stroke: var(\u2014purple-color); \n stroke-width: 4px; \n} \npath:nth-child(odd):not(:first-child)\
\ { \n / Styling for lines */ \n stroke: var(\u2014purple-color); \n stroke-width: 4px; \n}\n:host { \n /* Define\
\ Person State colors. Can be added to theme / \n \u2014state-person-home: var(\u2014green-color); \n \u2014state-person-not-home:\
\ var(\u2014red-color); \n \u2014state-person-zone: var(\u2014blue-color); \n \u2014state-person-unknown: var(\u2014\
grey-color); \n / Set person state color */ \n \u2014state-person: \n {% if is_state(config.entities[0].entity,\
\ [\u2018home\u2019, \u2018not_home\u2019, \u2018unknown\u2019]) %} \n var(\u2014state-person-{{ states(config.entities[0].entity)\
\ | replace(\u2018_\u2019, \u2018-\u2018) }}) \n {% else %} \n var(\u2014state-person-zone) \n {% endif\
\ %}; \n}\n"
- show_current: true
show_forecast: true
type: weather-forecast
entity: weather.pirateweather
forecast_type: daily
secondary_info_attribute: humidity

@ -0,0 +1,33 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# KIOSK View - Overview
# YAML-exported Lovelace dashboard (split into view files).
# -------------------------------------------------------------------
# Notes: Exported from config/.storage/lovelace.dashboard_kiosk view index 1.
######################################################################
title: Overview
path: kiosk_oveview
icon: mdi:cctv
type: sections
max_columns: 2
sections: !include /config/dashboards/kiosk/partials/kiosk_oveview_sections.yaml
badges: !include /config/dashboards/kiosk/partials/kiosk_oveview_badges.yaml
cards: []
visible:
- user: be280a93c9d7416e98d25d0470f414be
- user: 9543feb5402742a0ab90f301f09f1c0e
dense_section_placement: true
background:
opacity: 100
alignment: center
size: cover
repeat: no-repeat
attachment: fixed
image: /api/image/serve/caf7862354abd804ef658f899fb3218b/original
header:
layout: center
badges_position: top

@ -0,0 +1,29 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# KIOSK View - Locator
# YAML-exported Lovelace dashboard (split into view files).
# -------------------------------------------------------------------
# Notes: Exported from config/.storage/lovelace.dashboard_kiosk view index 2.
######################################################################
type: sections
max_columns: 3
title: Locator
path: locator
icon: mdi:map-marker-radius-outline
dense_section_placement: true
background:
opacity: 100
alignment: center
size: cover
repeat: no-repeat
attachment: fixed
image: /api/image/serve/caf7862354abd804ef658f899fb3218b/original
visible:
- user: be280a93c9d7416e98d25d0470f414be
- user: 9543feb5402742a0ab90f301f09f1c0e
sections: !include /config/dashboards/kiosk/partials/locator_sections.yaml
cards: []

@ -0,0 +1,13 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Overview Dashboard - YAML entrypoint
# YAML-exported Lovelace dashboard (split into view files).
# -------------------------------------------------------------------
# Notes: Entry point for dashboard key `lovelace`. Views are loaded from /config/dashboards/overview/views.
######################################################################
title: Bear Stone
views: !include_dir_list /config/dashboards/overview/views

@ -0,0 +1,61 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Overview Partial - admin sections
# Reusable list extracted from a view for smaller diffs and safer edits.
# -------------------------------------------------------------------
# Notes: Extracted from config/dashboards/overview/views/07_admin.yaml key `sections`.
######################################################################
- type: grid
cards:
- type: tile
entity: automation.llm_vision_garage_cans_upper_right
- type: tile
entity: input_text.llmvision_garbage_last_keyframe
- type: tile
entity: input_datetime.llmvision_garbage_last_run
- type: tile
entity: input_text.llmvision_garbage_last_response
- type: tile
entity: calendar.llm_vision_timeline
- type: tile
entity: update.llm_vision_update
- type: tile
entity: input_button.llmvision_garbage_check
- type: grid
cards:
- type: markdown
title: AI Diagnostics
content: '**OpenAI Response:**
{{ state_attr(''sensor.openai_response'', ''response'') }}
'
- type: markdown
title: AI Diagnostics
content: '**OpenAI Instructions:**
{{ state_attr(''sensor.openai_instructions'', ''instructions'') }}
'
- type: grid
cards:
- camera_view: auto
type: picture-glance
title: Bedroom Tablet
image: https://demo.home-assistant.io/stub_config/kitchen.png
entities:
- entity: switch.alarm_panel_1_screensaver
image_entity: image.alarm_panel_1_screenshot
- camera_view: auto
type: picture-glance
title: Bedroom Tablet
image: https://demo.home-assistant.io/stub_config/kitchen.png
entities:
- entity: sensor.alarm_panel_1_battery
camera_image: camera.alarm_panel_1

@ -0,0 +1,29 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Overview Partial - camera badges
# Reusable list extracted from a view for smaller diffs and safer edits.
# -------------------------------------------------------------------
# Notes: Extracted from config/dashboards/overview/views/03_camera.yaml key `badges`.
######################################################################
- type: entity
show_name: true
show_state: true
show_icon: true
entity: cover.large_garage_door
color: ''
- type: entity
show_name: true
show_state: true
show_icon: true
entity: cover.small_garage_door
color: ''
- type: entity
show_name: true
show_state: true
show_icon: true
entity: lock.front_door
color: ''

@ -0,0 +1,54 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Overview Partial - camera sections
# Reusable list extracted from a view for smaller diffs and safer edits.
# -------------------------------------------------------------------
# Notes: Extracted from config/dashboards/overview/views/03_camera.yaml key `sections`.
######################################################################
- type: grid
cards:
- type: picture-glance
camera_image: camera.frontdoorbell
camera_view: auto
entities: []
grid_options:
columns: 12
rows: 7
- type: picture-glance
camera_image: camera.poolcam
camera_view: auto
entities: []
- type: grid
column_span: 3
cards:
- type: picture-glance
camera_image: camera.garagecam
camera_view: auto
entities: []
- type: picture-glance
camera_image: camera.frontlawn
camera_view: auto
entities: []
- type: picture-glance
camera_image: camera.driveway
camera_view: auto
entities: []
- type: picture-glance
camera_image: camera.kidsgate
camera_view: auto
entities: []
- type: picture-glance
camera_image: camera.bedroomgate
camera_view: auto
entities: []
- type: picture-glance
camera_image: camera.filtergate
camera_view: auto
entities: []
- type: custom:frigate-events-card
frigate_client_id: frigate
event_count: 3

@ -0,0 +1,51 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Overview Partial - cameras cards
# Reusable list extracted from a view for smaller diffs and safer edits.
# -------------------------------------------------------------------
# Notes: Extracted from config/dashboards/overview/views/04_cameras.yaml key `cards`.
######################################################################
- type: custom:frigate-card
cameras:
- camera_entity: camera.frontdoorbell
dependencies:
all_cameras: true
cameras:
- camera.bedroomgate
- camera.filtergate
- camera.driveway
- camera_entity: camera.bedroomgate
- camera_entity: camera.filtergate
- camera_entity: camera.driveway
- camera_entity: camera.poolcam
live_provider: auto
- camera_entity: camera.blink1
live_provider: auto
- camera_entity: camera.frontlawn
live_provider: auto
- camera_entity: camera.kidsgate
- camera_entity: camera.garagecam
view:
default: snapshots
update_cycle_camera: true
scan:
enabled: true
menu:
style: outside
media_gallery:
controls:
thumbnails:
size: 175
show_favorite_control: false
show_details: false
dimensions:
min_height: '500'
aspect_ratio: '16:9'
aspect_ratio_mode: unconstrained
media_viewer:
layout:
fit: cover

@ -0,0 +1,36 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Overview Partial - family_locator cards
# Reusable list extracted from a view for smaller diffs and safer edits.
# -------------------------------------------------------------------
# Notes: Extracted from config/dashboards/overview/views/02_family_locator.yaml key `cards`.
######################################################################
- type: map
entities:
- person.carlo
- person.stacey
- person.justin
- person.paige
hours_to_show: 48
aspect_ratio: '4:3'
theme_mode: auto
card_mod:
style: null
ha-map $ ha-entity-marker $: ".marker { \n /* Style person marker & adjust position to avoid blocking waypoints */ \n\
\ border: 3px solid var(\u2014state-person) !important; \n border-radius: 50% 50% 50% 0px !important; \n transform:\
\ rotate(-45deg) translate(50%, -50%); \n overflow: visible !important;\n} \n.entity-picture { \n /* Correct orientation\
\ of person avatar / \n transform: rotate(45deg); \n border-radius: 50%; \n} \n"
ha-map $: "path:first-child { \n / Style accuracy radius / \n stroke: var(\u2014state-person); \n fill: color-mix(in\
\ srgb, var(\u2014state-person) 50%, transparent); \n stroke-width: 0px; } \npath:nth-child(even) { \n / Styling for\
\ waypoints / \n stroke: var(\u2014purple-color); \n stroke-width: 4px; \n} \npath:nth-child(odd):not(:first-child)\
\ { \n / Styling for lines */ \n stroke: var(\u2014purple-color); \n stroke-width: 4px; \n}\n:host { \n /* Define\
\ Person State colors. Can be added to theme / \n \u2014state-person-home: var(\u2014green-color); \n \u2014state-person-not-home:\
\ var(\u2014red-color); \n \u2014state-person-zone: var(\u2014blue-color); \n \u2014state-person-unknown: var(\u2014\
grey-color); \n / Set person state color */ \n \u2014state-person: \n {% if is_state(config.entities[0].entity,\
\ [\u2018home\u2019, \u2018not_home\u2019, \u2018unknown\u2019]) %} \n var(\u2014state-person-{{ states(config.entities[0].entity)\
\ | replace(\u2018_\u2019, \u2018-\u2018) }}) \n {% else %} \n var(\u2014state-person-zone) \n {% endif %};\
\ \n}\n"

@ -0,0 +1,21 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Overview Partial - home badges
# Reusable list extracted from a view for smaller diffs and safer edits.
# -------------------------------------------------------------------
# Notes: Extracted from config/dashboards/overview/views/01_home.yaml key `badges`.
######################################################################
- type: entity
entity: cover.large_garage_door
display_type: complete
show_entity_picture: false
- type: entity
entity: cover.small_garage_door
display_type: complete
- type: entity
entity: lock.front_door
display_type: complete

@ -0,0 +1,412 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Overview Partial - home sections
# Reusable list extracted from a view for smaller diffs and safer edits.
# -------------------------------------------------------------------
# Notes: Extracted from config/dashboards/overview/views/01_home.yaml key `sections`.
######################################################################
- cards:
- square: true
type: grid
cards:
- type: picture-entity
entity: person.carlo
name: Carlo
show_state: false
show_name: false
state_filter:
home: none
not_home: grayscale(100%) opacity(50%)
driving: grayscale(100%) opacity(50%)
- type: picture-entity
entity: person.stacey
name: Stacey
show_state: false
show_name: false
state_filter:
home: none
not_home: grayscale(100%) opacity(50%)
gym: grayscale(100%) opacity(50%)
driving: grayscale(100%) opacity(50%)
- type: picture-entity
entity: person.justin
name: Justin
show_state: false
show_name: false
state_filter:
home: none
not_home: grayscale(100%) opacity(50%)
Justin Dorm: grayscale(10%) opacity(50%)
Paige Dorm: grayscale(10%) opacity(50%)
gym: grayscale(100%) opacity(50%)
driving: grayscale(100%) opacity(50%)
- type: picture-entity
entity: person.paige
name: Paige
show_state: false
show_name: false
state_filter:
home: none
not_home: grayscale(100%) opacity(50%)
paige_work: grayscale(100%) opacity(50%)
Justin Dorm: grayscale(10%) opacity(50%)
Paige Dorm: grayscale(10%) opacity(50%)
gym: grayscale(100%) opacity(50%)
driving: grayscale(100%) opacity(50%)
columns: 4
- type: entities
entities:
- type: conditional
conditions:
- entity: person.carlo
state_not: home
row:
type: attribute
entity: sensor.carlo_place
attribute: formatted_place
name: Carlo Location
- type: conditional
conditions:
- entity: person.stacey
state_not: home
row:
type: attribute
entity: sensor.stacey_place
attribute: formatted_place
name: Stacey Location
- type: conditional
conditions:
- entity: person.justin
state_not: home
row:
type: attribute
entity: sensor.justin_place
attribute: formatted_place
name: Justin Location
- type: conditional
conditions:
- entity: person.paige
state_not: home
row:
type: attribute
entity: sensor.paige_place
attribute: formatted_place
name: Paige Location
state_color: false
- type: custom:mushroom-template-card
primary: Zoom Map
icon: mdi:map-marker
tap_action:
action: navigate
navigation_path: /lovelace/family_locator
hold_action:
action: none
double_tap_action:
action: none
layout: horizontal
fill_container: true
- type: map
entities:
- person.justin
- person.paige
hours_to_show: 48
aspect_ratio: '4:3'
theme_mode: auto
card_mod:
style: null
ha-map $ ha-entity-marker $: ".marker { \n /* Style person marker & adjust position to avoid blocking waypoints */\
\ \n border: 3px solid var(\u2014state-person) !important; \n border-radius: 50% 50% 50% 0px !important; \n transform:\
\ rotate(-45deg) translate(50%, -50%); \n overflow: visible !important;\n} \n.entity-picture { \n /* Correct orientation\
\ of person avatar / \n transform: rotate(45deg); \n border-radius: 50%; \n} \n"
ha-map $: "path:first-child { \n / Style accuracy radius / \n stroke: var(\u2014state-person); \n fill: color-mix(in\
\ srgb, var(\u2014state-person) 50%, transparent); \n stroke-width: 0px; } \npath:nth-child(even) { \n / Styling\
\ for waypoints / \n stroke: var(\u2014purple-color);\n stroke-width: 4px; \n} \npath:nth-child(odd):not(:first-child)\
\ { \n / Styling for lines */ \n stroke: var(\u2014purple-color);\n stroke-width: 4px; \n}\n:host { \n /* Define\
\ Person State colors. Can be added to theme / \n \u2014state-person-home: var(\u2014green-color); \n \u2014state-person-not-home:\
\ var(\u2014red-color); \n \u2014state-person-zone: var(\u2014blue-color); \n \u2014state-person-unknown: var(\u2014\
grey-color); \n / Set person state color */ \n \u2014state-person: \n {% if is_state(config.entities[0].entity,\
\ [\u2018home\u2019, \u2018not_home\u2019, \u2018unknown\u2019]) %} \n var(\u2014state-person-{{ states(config.entities[0].entity)\
\ | replace(\u2018_\u2019, \u2018-\u2018) }}) \n {% else %} \n var(\u2014state-person-zone) \n {% endif\
\ %}; \n}\n"
- type: map
entities:
- person.carlo
- person.stacey
hours_to_show: 48
aspect_ratio: '4:3'
theme_mode: auto
card_mod:
style: null
ha-map $ ha-entity-marker $: ".marker { \n /* Style person marker & adjust position to avoid blocking waypoints */\
\ \n border: 3px solid var(\u2014state-person) !important; \n border-radius: 50% 50% 50% 0px !important; \n transform:\
\ rotate(-45deg) translate(50%, -50%); \n overflow: visible !important;\n} \n.entity-picture { \n /* Correct orientation\
\ of person avatar / \n transform: rotate(45deg); \n border-radius: 50%; \n} \n"
ha-map $: "path:first-child { \n / Style accuracy radius / \n stroke: var(\u2014state-person); \n fill: color-mix(in\
\ srgb, var(\u2014state-person) 50%, transparent); \n stroke-width: 0px; } \npath:nth-child(even) { \n / Styling\
\ for waypoints / \n stroke: var(\u2014purple-color); \n stroke-width: 4px; \n} \npath:nth-child(odd):not(:first-child)\
\ { \n / Styling for lines */ \n stroke: var(\u2014purple-color); \n stroke-width: 4px; \n}\n:host { \n /* Define\
\ Person State colors. Can be added to theme / \n \u2014state-person-home: var(\u2014green-color); \n \u2014state-person-not-home:\
\ var(\u2014red-color); \n \u2014state-person-zone: var(\u2014blue-color); \n \u2014state-person-unknown: var(\u2014\
grey-color); \n / Set person state color */ \n \u2014state-person: \n {% if is_state(config.entities[0].entity,\
\ [\u2018home\u2019, \u2018not_home\u2019, \u2018unknown\u2019]) %} \n var(\u2014state-person-{{ states(config.entities[0].entity)\
\ | replace(\u2018_\u2019, \u2018-\u2018) }}) \n {% else %} \n var(\u2014state-person-zone) \n {% endif\
\ %}; \n}\n"
column_span: 1
- cards:
- type: custom:mushroom-vacuum-card
entity: vacuum.l10s_vacuum
icon_animation: true
commands:
- return_home
- start_pause
- locate
double_tap_action:
action: none
tap_action:
action: navigate
navigation_path: /lovelace/vacuum
visibility:
- condition: state
entity: vacuum.l10s_vacuum
state_not: docked
primary_info: name
fill_container: true
grid_options:
rows: 1
columns: full
layout: horizontal
- type: tile
entity: climate.downstairs
state_content:
- current_temperature
- temperature
vertical: false
features_position: bottom
- type: tile
entity: climate.upstairs
show_entity_picture: false
hide_state: false
state_content:
- current_temperature
- temperature
vertical: false
features_position: bottom
- type: custom:search-card
max_results: 10
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.living_room_lights
name: Living Room Lights
icon: mdi:sofa
show_state: true
show_attribute: false
show_last_changed: true
tap_action:
action: navigate
navigation_path: '#living_room'
grid_options:
columns: 6
rows: 1
card_layout: large
- type: custom:bubble-card
card_type: button
name: Lights On
icon: mdi:lightbulb-on-outline
show_state: true
tap_action:
action: navigate
navigation_path: '#lights-popup'
button_action:
tap_action:
action: navigate
navigation_path: '#lights-popup'
grid_options:
columns: 6
rows: 1
card_layout: large
button_type: switch
show_name: true
show_attribute: false
attribute: icon
entity: sensor.number_of_lights_on
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#living_room'
button_type: slider
entity: light.living_room_lights
name: Living Room Lights
icon: mdi:sofa
show_attribute: false
slide_to_close_distance: '100000'
trigger: []
bg_opacity: '35'
show_state: true
show_last_changed: true
tap_action:
action: toggle
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.m1_front_left
name: Front Left
icon: mdi:light-recessed
show_state: true
show_attribute: false
show_last_changed: true
sub_button: []
grid_options:
columns: 6
rows: 1
columns: 2
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.m1_front_right
name: Front Right
icon: mdi:light-recessed
show_state: true
show_attribute: false
show_last_changed: true
sub_button: []
grid_options:
columns: 6
rows: 1
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.m1_back_left
name: Back Left
icon: mdi:light-recessed
show_state: true
show_attribute: false
show_last_changed: true
sub_button: []
grid_options:
columns: 6
rows: 1
- type: custom:bubble-card
card_type: button
button_type: slider
entity: light.m1_back_right
name: Back Right
icon: mdi:light-recessed
show_state: true
show_attribute: false
show_last_changed: true
sub_button: []
grid_options:
columns: 6
rows: 1
grid_options:
columns: 12
rows: auto
- type: custom:bubble-card
card_type: button
button_type: switch
entity: group.interior_switches
name: Interior Switches
icon: mdi:lightning-bolt
show_state: true
show_attribute: false
show_last_changed: false
button_action:
tap_action:
action: more-info
grid_options:
columns: 6
rows: 1
tap_action:
action: toggle
card_layout: large
- type: custom:bubble-card
card_type: button
button_type: state
entity: group.exterior_lights
name: Exterior Lights
icon: mdi:palm-tree
show_state: true
show_attribute: false
show_last_changed: true
grid_options:
columns: 6
rows: 1
- type: vertical-stack
cards:
- type: custom:bubble-card
card_type: pop-up
hash: '#lights-popup'
name: Lights Control
icon: mdi:lightbulb-group
width_desktop: 500px
show_header: true
entity: sensor.number_of_lights_on
button_type: name
- type: custom:auto-entities
filter:
include:
- domain: light
exclude:
- state: 'off'
- state: unavailable
- hidden_by: user
show_empty: true
entity: sensor.number_of_lights_on
button_type: state
show_name: true
card:
type: custom:auto-entities
card:
type: entities
filter:
include: []
exclude: []
- cards:
- type: custom:frigate-events-card
frigate_client_id: frigate
event_count: 5
- show_state: true
show_name: true
camera_view: live
type: picture-entity
entity: camera.birdseye
tap_action:
action: navigate
navigation_path: /lovelace/camera
- type: vertical-stack
cards:
- type: weather-forecast
show_current: true
show_forecast: true
entity: weather.pirateweather
forecast_type: hourly
secondary_info_attribute: humidity
- type: custom:clock-weather-card
entity: weather.pirateweather
sun_entity: sun.sun
temperature_sensor: sensor.pirateweather_temperature
humidity_sensor: sensor.pirateweather_humidity
weather_icon_type: fill
animated_icon: true
forecast_rows: 5
locale: en-GB
time_pattern: HH:mm
time_format: 12
date_pattern: DDDD
hide_today_section: true
hide_forecast_section: false
show_humidity: true
hide_clock: false
hide_date: true
hourly_forecast: false
use_browser_time: false
time_zone: null
show_decimal: false
aqi_sensor: sensor.bear_stone_common_air_quality_index
apparent_sensor: null

@ -0,0 +1,16 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Overview Partial - vacuum badges
# Reusable list extracted from a view for smaller diffs and safer edits.
# -------------------------------------------------------------------
# Notes: Extracted from config/dashboards/overview/views/05_vacuum.yaml key `badges`.
######################################################################
- type: entity
show_name: true
show_state: true
show_icon: true
entity: input_boolean.l10s_vacuum_on_demand

@ -0,0 +1,352 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Overview Partial - vacuum sections
# Reusable list extracted from a view for smaller diffs and safer edits.
# -------------------------------------------------------------------
# Notes: Extracted from config/dashboards/overview/views/05_vacuum.yaml key `sections`.
######################################################################
- type: grid
cards:
- type: tile
entity: input_text.l10s_vacuum_room_catalog
vertical: false
features_position: bottom
grid_options:
columns: full
- type: tile
entity: input_text.l10s_vacuum_room_queue
vertical: false
features_position: bottom
grid_options:
columns: full
- type: tile
entity: input_text.l10s_vacuum_rooms_cleaned_today
vertical: false
features_position: bottom
grid_options:
columns: full
- type: tile
grid_options:
columns: full
entity: sensor.l10s_vacuum_current_room
state_content:
- state
- room_id
- last_changed
vertical: false
features_position: bottom
- type: tile
entity: input_select.l10s_vacuum_phase
- type: tile
entity: sensor.l10s_vacuum_status
- type: markdown
content: " 14 \u2013 Kitchen \n 12 \u2013 Dining \n 10 \u2013 Living \n 7 \u2013 Master Bedroom \n 15 \u2013\
\ Foyer \n 9 \u2013 Stacey Office \n 17 \u2013 Formal Dining \n 13 \u2013 Hallway \n 8 \u2013 Justin Bedroom\
\ \n 6 \u2013 Paige Bedroom \n 4 \u2013 Master Bathroom \n 2 \u2013 Office \n 1 \u2013 Pool Bath \n 3 \u2013\
\ Kids Bathroom\n"
title: Room Legend
- type: grid
cards:
- type: custom:xiaomi-vacuum-map-card
map_source:
camera: camera.l10s_vacuum_map
calibration_source:
camera: true
entity: vacuum.l10s_vacuum
vacuum_platform: Tasshack/dreame-vacuum
map_modes:
- template: vacuum_clean_zone
- template: vacuum_clean_point
- template: vacuum_clean_segment
predefined_selections:
- id: '1'
icon:
name: mdi:home-outline
x: -8100
y: 12400
label:
text: Pool-Bath
x: -8100
y: 12400
offset_y: 35
outline:
- - -9950
- 11350
- - -6650
- 11350
- - -6650
- 12900
- - -9950
- 12900
- id: '2'
icon:
name: mdi:monitor-shimmer
x: -4650
y: 10900
label:
text: Office
x: -4650
y: 10900
offset_y: 35
outline:
- - -6650
- 7400
- - -2800
- 7400
- - -2800
- 12850
- - -6650
- 12850
- id: '3'
icon:
name: mdi:home-outline
x: -5600
y: 5250
label:
text: Kids-Bathroom
x: -5600
y: 5250
offset_y: 35
outline:
- - -6450
- 4250
- - -4750
- 4250
- - -4750
- 6150
- - -6450
- 6150
- id: '4'
icon:
name: mdi:home-outline
x: 7300
y: 4100
label:
text: Master-Bathroom
x: 7300
y: 4100
offset_y: 35
outline:
- - 5450
- 250
- - 9400
- 250
- - 9400
- 7850
- - 5450
- 7850
- id: '6'
icon:
name: mdi:home-outline
x: -8450
y: 4200
label:
text: Paige-Bedroom
x: -8450
y: 4200
offset_y: 35
outline:
- - -9900
- 1600
- - -6600
- 1600
- - -6600
- 6100
- - -9900
- 6100
- id: '7'
icon:
name: mdi:home-outline
x: 6450
y: 10400
label:
text: Master-Bedroom
x: 6450
y: 10400
offset_y: 35
outline:
- - 3450
- 7850
- - 9550
- 7850
- - 9550
- 12850
- - 3450
- 12850
- id: '8'
icon:
name: mdi:home-outline
x: -8300
y: 9300
label:
text: Justin-Bedroom
x: -8300
y: 9300
offset_y: 35
outline:
- - -9950
- 6250
- - -6650
- 6250
- - -6650
- 11150
- - -9950
- 11150
- id: '9'
icon:
name: mdi:home-outline
x: 7250
y: -2200
label:
text: Stacey-Office
x: 7250
y: -2200
offset_y: 35
outline:
- - 5450
- -4700
- - 9450
- -4700
- - 9450
- 350
- - 5450
- 350
- id: '10'
icon:
name: mdi:sofa-outline
x: 2500
y: 4800
label:
text: Living Room
x: 2500
y: 4800
offset_y: 35
outline:
- - -650
- 750
- - 5300
- 750
- - 5300
- 8800
- - -650
- 8800
- id: '11'
icon:
name: mdi:home-outline
x: -5350
y: 2600
label:
text: Garage-Hallway
x: -5350
y: 2600
offset_y: 35
outline:
- - -6600
- 1100
- - -4050
- 1100
- - -4050
- 4200
- - -6600
- 4200
- id: '12'
icon:
name: mdi:home-outline
x: 700
y: 8900
label:
text: Dining-Room
x: 700
y: 8900
offset_y: 35
outline:
- - -4350
- 6000
- - 2650
- 6000
- - 2650
- 12650
- - -4350
- 12650
- id: '13'
icon:
name: mdi:home-outline
x: -6200
y: 6800
label:
text: Hallway
x: -6200
y: 6800
offset_y: 35
outline:
- - -7550
- 6100
- - -4350
- 6100
- - -4350
- 7700
- - -7550
- 7700
- id: '14'
icon:
name: mdi:chef-hat
x: -1700
y: 3350
label:
text: Kitchen
x: -1700
y: 3350
offset_y: 35
outline:
- - -4200
- 950
- - -300
- 950
- - -300
- 6100
- - -4200
- 6100
- id: '15'
icon:
name: mdi:home-outline
x: 4050
y: -1350
label:
text: Foyer
x: 4050
y: -1350
offset_y: 35
outline:
- - 2850
- -3500
- - 5450
- -3500
- - 5450
- 800
- - 2850
- 800
- id: '17'
icon:
name: mdi:home-outline
x: 750
y: -1250
label:
text: Formal-Dining
x: 750
y: -1250
offset_y: 35
outline:
- - -1500
- -3500
- - 2950
- -3500
- - 2950
- 950
- - -1500
- 950
map_locked: true
two_finger_pan: true

@ -0,0 +1,117 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Overview Partial - water sections
# Reusable list extracted from a view for smaller diffs and safer edits.
# -------------------------------------------------------------------
# Notes: Extracted from config/dashboards/overview/views/06_water.yaml key `sections`.
######################################################################
- cards:
- type: tile
entity: sensor.downstairs_ac_runtime_since_last_filter_change
- type: tile
entity: sensor.upstairs_ac_runtime_since_last_filter_change
- type: tile
entity: input_datetime.downstairs_last_filter_change
- type: tile
entity: input_datetime.upstairs_last_filter_change
- type: custom:power-flow-card-plus
entities:
battery:
state_of_charge: sensor.powerwall_charge
entity: sensor.powerwall_battery_power
use_metadata: false
invert_state: false
state_of_charge_unit_white_space: true
show_state_of_charge: true
grid:
secondary_info: {}
entity: sensor.powerwall_site_power
solar:
display_zero_state: true
secondary_info: {}
entity: sensor.powerwall_solar_power
icon: mdi:white-balance-sunny
color_icon: true
home:
secondary_info: {}
entity: sensor.powerwall_load_power
clickable_entities: true
display_zero_lines:
mode: grey_out
transparency: 50
grey_color:
- 189
- 189
- 189
use_new_flow_rate_model: true
w_decimals: 0
kw_decimals: 1
min_flow_rate: 0.75
max_flow_rate: 4
max_expected_power: 2000
min_expected_power: 0.01
watt_threshold: 1000
transparency_zero_lines: 0
grid_options:
columns: full
rows: auto
- type: energy-solar-graph
column_span: 1
- type: grid
cards:
- type: tile
entity: sensor.blink_blink1_temperature
- type: tile
entity: sensor.carlo_nas01_temperature
- type: tile
entity: sensor.carlo_nvr_temperature
- type: custom:mini-graph-card
entities:
- entity: sensor.upstairs_temperature
name: Upstairs
- entity: sensor.downstairs_temperature
name: Downstairs
name: House
hours_to_show: 24
points_per_hour: 1
- type: grid
cards:
- type: custom:mushroom-template-card
primary: "{{ states('sensor.rheem_wh_available_hot_water') }}% - {{ state_attr('water_heater.rheem_wh', 'temperature')\
\ }}\xB0F\n"
secondary: Hot Water Available
icon: mdi:water-alert
entity: sensor.rheem_wh_available_hot_water
icon_color: red
tap_action:
action: more-info
hold_action:
action: none
double_tap_action:
action: none
- type: tile
entity: sensor.phyn_daily_water_usage
- type: tile
entity: sensor.phyn_average_water_temperature
- type: tile
entity: sensor.rheem_wh_water_usage_today
- type: tile
entity: input_datetime.water_delivery_date
- type: custom:mushroom-template-card
primary: ReadyRefresh Login
secondary: Manage water delivery
icon: mdi:water
tap_action:
action: url
url_path: https://www.readyrefresh.com/en/login
hold_action:
action: none
double_tap_action:
action: none
layout: horizontal
fill_container: true
- type: energy-water-graph

@ -0,0 +1,29 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Overview View - home
# YAML-exported Lovelace dashboard (split into view files).
# -------------------------------------------------------------------
# Notes: Exported from config/.storage/lovelace.lovelace view index 1.
######################################################################
path: home
theme: Backend-selected
layout:
max_columns: 4
badges: !include /config/dashboards/overview/partials/home_badges.yaml
sections: !include /config/dashboards/overview/partials/home_sections.yaml
type: sections
max_columns: 4
icon: mdi:home
cards: []
header:
layout: center
badges_position: bottom
visible:
- user: be280a93c9d7416e98d25d0470f414be
- user: 46a8d15eb20e4a1daf2d1d1f63180ec5
- user: 8fc5ba22cb32430a9143beb4df70541b
- user: 19970706e7e4492c844ea2fc94a4599a

@ -0,0 +1,17 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Overview View - Family Locator
# YAML-exported Lovelace dashboard (split into view files).
# -------------------------------------------------------------------
# Notes: Exported from config/.storage/lovelace.lovelace view index 2.
######################################################################
type: panel
path: family_locator
subview: true
cards: !include /config/dashboards/overview/partials/family_locator_cards.yaml
icon: mdi:map-marker-radius
title: Family Locator

@ -0,0 +1,18 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Overview View - Camera
# YAML-exported Lovelace dashboard (split into view files).
# -------------------------------------------------------------------
# Notes: Exported from config/.storage/lovelace.lovelace view index 3.
######################################################################
title: Camera
path: camera
icon: mdi:cctv
type: sections
max_columns: 4
sections: !include /config/dashboards/overview/partials/camera_sections.yaml
badges: !include /config/dashboards/overview/partials/camera_badges.yaml

@ -0,0 +1,17 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Overview View - Camera View
# YAML-exported Lovelace dashboard (split into view files).
# -------------------------------------------------------------------
# Notes: Exported from config/.storage/lovelace.lovelace view index 4.
######################################################################
title: Camera View
path: cameras
icon: mdi:camera
theme: Backend-selected
type: panel
cards: !include /config/dashboards/overview/partials/cameras_cards.yaml

@ -0,0 +1,23 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Overview View - Vacuum
# YAML-exported Lovelace dashboard (split into view files).
# -------------------------------------------------------------------
# Notes: Exported from config/.storage/lovelace.lovelace view index 5.
######################################################################
title: Vacuum
icon: mdi:robot-vacuum
type: sections
cards: []
visible:
- user: be280a93c9d7416e98d25d0470f414be
- user: 46a8d15eb20e4a1daf2d1d1f63180ec5
- user: 8fc5ba22cb32430a9143beb4df70541b
- user: 19970706e7e4492c844ea2fc94a4599a
sections: !include /config/dashboards/overview/partials/vacuum_sections.yaml
max_columns: 2
badges: !include /config/dashboards/overview/partials/vacuum_badges.yaml

@ -0,0 +1,23 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Overview View - Utilities
# YAML-exported Lovelace dashboard (split into view files).
# -------------------------------------------------------------------
# Notes: Exported from config/.storage/lovelace.lovelace view index 6.
######################################################################
title: Utilities
path: water
icon: mdi:home-lightning-bolt
type: sections
max_columns: 3
sections: !include /config/dashboards/overview/partials/water_sections.yaml
cards: []
visible:
- user: be280a93c9d7416e98d25d0470f414be
- user: 46a8d15eb20e4a1daf2d1d1f63180ec5
- user: 8fc5ba22cb32430a9143beb4df70541b
- user: 19970706e7e4492c844ea2fc94a4599a

@ -0,0 +1,18 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Overview View - Admin
# YAML-exported Lovelace dashboard (split into view files).
# -------------------------------------------------------------------
# Notes: Exported from config/.storage/lovelace.lovelace view index 7.
######################################################################
title: Admin
icon: mdi:security
visible:
- user: be280a93c9d7416e98d25d0470f414be
cards: []
type: sections
sections: !include /config/dashboards/overview/partials/admin_sections.yaml

@ -0,0 +1,49 @@
######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Lovelace Resources - Custom card JS resources
# YAML-managed Lovelace resources (resource_mode: yaml).
# -------------------------------------------------------------------
# Notes: Generated from config/.storage/lovelace_resources. Edit here after migration; do not edit .storage.
######################################################################
- type: module
url: /hacsfiles/lovelace-card-tools/card-tools.js?hacstag=16140332811
- type: module
url: /hacsfiles/lovelace-auto-entities/auto-entities.js?hacstag=1677445841161
- type: module
url: /hacsfiles/button-card/button-card.js?hacstag=146194325701
- type: module
url: /hacsfiles/frigate-hass-card/frigate-hass-card.js?hacstag=394082552651
- type: module
url: /hacsfiles/lovelace-xiaomi-vacuum-map-card/xiaomi-vacuum-map-card.js?hacstag=193372044232
- type: module
url: /hacsfiles/lovelace-mushroom/mushroom.js?hacstag=4443503755010
- type: module
url: /hacsfiles/clock-weather-card/clock-weather-card.js?hacstag=522634019292
- type: module
url: /hacsfiles/lovelace-card-mod/card-mod.js?hacstag=190927524420
- type: module
url: /hacsfiles/Bubble-Card/bubble-card.js?hacstag=680112919311
- type: module
url: /hacsfiles/power-flow-card-plus/power-flow-card-plus.js?hacstag=618081815026
- type: module
url: /hacsfiles/mini-graph-card/mini-graph-card-bundle.js?hacstag=1512800620130
- type: module
url: /hacsfiles/advanced-camera-card/advanced-camera-card.js?hacstag=3940825527260
- type: module
url: /hacsfiles/search-card/search-card.js?hacstag=19775918002
- type: module
url: /hacsfiles/apexcharts-card/apexcharts-card.js?hacstag=331701152223
- type: module
url: /hacsfiles/pi-hole-card/pi-hole-card.js?hacstag=9776750790250
- type: module
url: /hacsfiles/flex-horseshoe-card/flex-horseshoe-card.js?hacstag=20729272512
- type: module
url: /hacsfiles/vertical-stack-in-card/vertical-stack-in-card.js?hacstag=142051833101
- type: module
url: /hacsfiles/lovelace-layout-card/layout-card.js?hacstag=156434866247
- type: module
url: /hacsfiles/frigate-events-card/frigate-events-card.js?hacstag=1111882479100

@ -10,7 +10,7 @@
# Notes:
# - `sensor.l10s_vacuum_current_room` can change during transit; require a dwell (`for:`) before dequeuing.
# - Treat 2+ minutes in a room as "being cleaned" and dequeue immediately (queue = remaining rooms).
# - Phase changes happen when the queue is reseeded after the queue hits zero and the vacuum is not actively cleaning (queue is the source of truth).
# - Phase changes happen when the queue is reseeded after the queue hits zero (queue is the source of truth).
# - Avoid reissuing `dreame_vacuum.vacuum_clean_segment` while already cleaning; only send a new segment job when starting/resuming or switching phases.
# - Jinja2 loop scoping: use a `namespace` when building lists (otherwise the queue can appear empty and get cleared).
# - Docked + task complete only logs queue state; no auto-clearing.
@ -128,7 +128,7 @@ script:
vac_state: "{{ states('vacuum.l10s_vacuum') | default('', true) | string | lower }}"
vac_is_cleaning: "{{ vac_state == 'cleaning' }}"
phase_ready: "{{ is_state('input_boolean.l10s_vacuum_phase_ready', 'on') }}"
advance_phase: "{{ queue_ints | length == 0 and phase_ready and not vac_is_cleaning }}"
advance_phase: "{{ queue_ints | length == 0 and phase_ready }}"
reset_cycle: "{{ advance_phase and not has_next_phase }}"
phase_for_seed: "{{ next_phase if advance_phase and has_next_phase else phase }}"
cleaning_mode: "{{ 'sweeping_and_mopping' if 'mop_' in phase_for_seed else 'sweeping' }}"
@ -219,7 +219,20 @@ script:
- stop: 'No rooms left to clean today.'
default: []
# 3. Start cleaning
# 3. Start cleaning (but don't clobber an active job)
- choose:
- conditions:
- condition: template
value_template: "{{ vac_is_cleaning }}"
sequence:
- service: script.send_to_logbook
data:
topic: "VACUUM"
message: "Vacuum is already cleaning; queue/phase updated but not issuing a new segment job."
- stop: "Already cleaning."
default: []
# 4. Start cleaning
- service: select.select_option
target:
entity_id: select.l10s_vacuum_cleaning_mode
@ -407,12 +420,6 @@ automation:
- condition: state
entity_id: input_boolean.guest_mode
state: 'off'
- condition: template
value_template: >
{{ is_state('input_boolean.l10s_vacuum_on_demand', 'on') or is_state('group.family', 'not_home') }}
- condition: template
value_template: >
true
- condition: template
value_template: "{{ not is_state('vacuum.l10s_vacuum', 'cleaning') }}"
action:
@ -568,7 +575,7 @@ automation:
- service: script.send_to_logbook
data:
topic: "VACUUM"
message: "Queue empty for phase {{ phase }}; waiting for task completion to advance."
message: "Queue empty for phase {{ phase }}; phase advance armed for next reseed."
default: []
default: []

Loading…
Cancel
Save

Powered by TurnKey Linux.