From bbe1dbe218832171c879a0bb7f4f5f78537543b0 Mon Sep 17 00:00:00 2001 From: Carlo Costanzo Date: Sat, 7 Feb 2026 17:20:22 -0500 Subject: [PATCH] Add YAML dashboards and enable Lovelace YAML mode --- config/README.md | 3 +- config/configuration.yaml | 30 ++ config/dashboards/README.md | 50 ++ config/dashboards/SCRATCHPAD.md | 9 + .../infrastructure/card_mod/.gitkeep | 0 .../infrastructure/card_mod/infra_card.yaml | 17 + .../infrastructure/card_mod/infra_panel.yaml | 18 + .../dashboards/infrastructure/cards/.gitkeep | 0 .../dashboards/infrastructure/dashboard.yaml | 13 + .../infrastructure/partials/.gitkeep | 0 .../docker_container_restart_include.yaml | 451 ++++++++++++++++++ .../docker_container_rows_include.yaml | 407 ++++++++++++++++ .../partials/docker_containers_sections.yaml | 82 ++++ .../partials/home_sections.yaml | 339 +++++++++++++ .../partials/mariadb_sections.yaml | 146 ++++++ .../partials/pi_hole_cards.yaml | 15 + .../partials/proxmox_badges.yaml | 37 ++ .../partials/proxmox_sections.yaml | 187 ++++++++ .../partials/vacuum_badges.yaml | 16 + .../partials/vacuum_sections.yaml | 344 +++++++++++++ .../infrastructure/partials/view_cards.yaml | 15 + .../dashboards/infrastructure/popups/.gitkeep | 0 .../templates/button_card_templates.yaml | 304 ++++++++++++ .../infrastructure/views/01_home.yaml | 19 + .../infrastructure/views/02_proxmox.yaml | 19 + .../infrastructure/views/03_pi_hole.yaml | 18 + .../infrastructure/views/04_vacuum.yaml | 23 + .../views/05_activity_feed.yaml | 16 + .../infrastructure/views/06_mariadb.yaml | 18 + .../views/07_docker_containers.yaml | 18 + config/dashboards/kiosk/card_mod/.gitkeep | 0 config/dashboards/kiosk/cards/.gitkeep | 0 config/dashboards/kiosk/dashboard.yaml | 12 + config/dashboards/kiosk/partials/.gitkeep | 0 .../kiosk/partials/kiosk_oveview_badges.yaml | 20 + .../partials/kiosk_oveview_sections.yaml | 73 +++ .../kiosk/partials/locator_sections.yaml | 134 ++++++ config/dashboards/kiosk/popups/.gitkeep | 0 .../kiosk/views/01_kiosk_oveview.yaml | 33 ++ config/dashboards/kiosk/views/02_locator.yaml | 29 ++ config/dashboards/overview/card_mod/.gitkeep | 0 config/dashboards/overview/cards/.gitkeep | 0 config/dashboards/overview/dashboard.yaml | 13 + config/dashboards/overview/partials/.gitkeep | 0 .../overview/partials/admin_sections.yaml | 61 +++ .../overview/partials/camera_badges.yaml | 29 ++ .../overview/partials/camera_sections.yaml | 54 +++ .../overview/partials/cameras_cards.yaml | 51 ++ .../partials/family_locator_cards.yaml | 36 ++ .../overview/partials/home_badges.yaml | 21 + .../overview/partials/home_sections.yaml | 412 ++++++++++++++++ .../overview/partials/vacuum_badges.yaml | 16 + .../overview/partials/vacuum_sections.yaml | 352 ++++++++++++++ .../overview/partials/water_sections.yaml | 117 +++++ config/dashboards/overview/popups/.gitkeep | 0 config/dashboards/overview/views/01_home.yaml | 29 ++ .../overview/views/02_family_locator.yaml | 17 + .../dashboards/overview/views/03_camera.yaml | 18 + .../dashboards/overview/views/04_cameras.yaml | 17 + .../dashboards/overview/views/05_vacuum.yaml | 23 + .../dashboards/overview/views/06_water.yaml | 23 + .../dashboards/overview/views/07_admin.yaml | 18 + config/dashboards/resources.yaml | 49 ++ config/dashboards/shared/card_mod/.gitkeep | 0 config/dashboards/shared/partials/.gitkeep | 0 config/dashboards/shared/popups/.gitkeep | 0 config/dashboards/shared/views/.gitkeep | 0 config/packages/vacuum.yaml | 27 +- 68 files changed, 4287 insertions(+), 11 deletions(-) create mode 100644 config/dashboards/README.md create mode 100644 config/dashboards/SCRATCHPAD.md create mode 100644 config/dashboards/infrastructure/card_mod/.gitkeep create mode 100644 config/dashboards/infrastructure/card_mod/infra_card.yaml create mode 100644 config/dashboards/infrastructure/card_mod/infra_panel.yaml create mode 100644 config/dashboards/infrastructure/cards/.gitkeep create mode 100644 config/dashboards/infrastructure/dashboard.yaml create mode 100644 config/dashboards/infrastructure/partials/.gitkeep create mode 100644 config/dashboards/infrastructure/partials/docker_container_restart_include.yaml create mode 100644 config/dashboards/infrastructure/partials/docker_container_rows_include.yaml create mode 100644 config/dashboards/infrastructure/partials/docker_containers_sections.yaml create mode 100644 config/dashboards/infrastructure/partials/home_sections.yaml create mode 100644 config/dashboards/infrastructure/partials/mariadb_sections.yaml create mode 100644 config/dashboards/infrastructure/partials/pi_hole_cards.yaml create mode 100644 config/dashboards/infrastructure/partials/proxmox_badges.yaml create mode 100644 config/dashboards/infrastructure/partials/proxmox_sections.yaml create mode 100644 config/dashboards/infrastructure/partials/vacuum_badges.yaml create mode 100644 config/dashboards/infrastructure/partials/vacuum_sections.yaml create mode 100644 config/dashboards/infrastructure/partials/view_cards.yaml create mode 100644 config/dashboards/infrastructure/popups/.gitkeep create mode 100644 config/dashboards/infrastructure/templates/button_card_templates.yaml create mode 100644 config/dashboards/infrastructure/views/01_home.yaml create mode 100644 config/dashboards/infrastructure/views/02_proxmox.yaml create mode 100644 config/dashboards/infrastructure/views/03_pi_hole.yaml create mode 100644 config/dashboards/infrastructure/views/04_vacuum.yaml create mode 100644 config/dashboards/infrastructure/views/05_activity_feed.yaml create mode 100644 config/dashboards/infrastructure/views/06_mariadb.yaml create mode 100644 config/dashboards/infrastructure/views/07_docker_containers.yaml create mode 100644 config/dashboards/kiosk/card_mod/.gitkeep create mode 100644 config/dashboards/kiosk/cards/.gitkeep create mode 100644 config/dashboards/kiosk/dashboard.yaml create mode 100644 config/dashboards/kiosk/partials/.gitkeep create mode 100644 config/dashboards/kiosk/partials/kiosk_oveview_badges.yaml create mode 100644 config/dashboards/kiosk/partials/kiosk_oveview_sections.yaml create mode 100644 config/dashboards/kiosk/partials/locator_sections.yaml create mode 100644 config/dashboards/kiosk/popups/.gitkeep create mode 100644 config/dashboards/kiosk/views/01_kiosk_oveview.yaml create mode 100644 config/dashboards/kiosk/views/02_locator.yaml create mode 100644 config/dashboards/overview/card_mod/.gitkeep create mode 100644 config/dashboards/overview/cards/.gitkeep create mode 100644 config/dashboards/overview/dashboard.yaml create mode 100644 config/dashboards/overview/partials/.gitkeep create mode 100644 config/dashboards/overview/partials/admin_sections.yaml create mode 100644 config/dashboards/overview/partials/camera_badges.yaml create mode 100644 config/dashboards/overview/partials/camera_sections.yaml create mode 100644 config/dashboards/overview/partials/cameras_cards.yaml create mode 100644 config/dashboards/overview/partials/family_locator_cards.yaml create mode 100644 config/dashboards/overview/partials/home_badges.yaml create mode 100644 config/dashboards/overview/partials/home_sections.yaml create mode 100644 config/dashboards/overview/partials/vacuum_badges.yaml create mode 100644 config/dashboards/overview/partials/vacuum_sections.yaml create mode 100644 config/dashboards/overview/partials/water_sections.yaml create mode 100644 config/dashboards/overview/popups/.gitkeep create mode 100644 config/dashboards/overview/views/01_home.yaml create mode 100644 config/dashboards/overview/views/02_family_locator.yaml create mode 100644 config/dashboards/overview/views/03_camera.yaml create mode 100644 config/dashboards/overview/views/04_cameras.yaml create mode 100644 config/dashboards/overview/views/05_vacuum.yaml create mode 100644 config/dashboards/overview/views/06_water.yaml create mode 100644 config/dashboards/overview/views/07_admin.yaml create mode 100644 config/dashboards/resources.yaml create mode 100644 config/dashboards/shared/card_mod/.gitkeep create mode 100644 config/dashboards/shared/partials/.gitkeep create mode 100644 config/dashboards/shared/popups/.gitkeep create mode 100644 config/dashboards/shared/views/.gitkeep diff --git a/config/README.md b/config/README.md index ec5a1656..f303f98a 100755 --- a/config/README.md +++ b/config/README.md @@ -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 diff --git a/config/configuration.yaml b/config/configuration.yaml index 8845aca4..23203d8c 100755 --- a/config/configuration.yaml +++ b/config/configuration.yaml @@ -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: diff --git a/config/dashboards/README.md b/config/dashboards/README.md new file mode 100644 index 00000000..b67264a3 --- /dev/null +++ b/config/dashboards/README.md @@ -0,0 +1,50 @@ +

+ Dashboards (Lovelace YAML) +

+ +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. +- `/` + - 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.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. diff --git a/config/dashboards/SCRATCHPAD.md b/config/dashboards/SCRATCHPAD.md new file mode 100644 index 00000000..d4696573 --- /dev/null +++ b/config/dashboards/SCRATCHPAD.md @@ -0,0 +1,9 @@ +# Dashboards Scratchpad + +## Current Working Items + +- (empty) + +## Patterns / Notes + +- (empty) diff --git a/config/dashboards/infrastructure/card_mod/.gitkeep b/config/dashboards/infrastructure/card_mod/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/config/dashboards/infrastructure/card_mod/infra_card.yaml b/config/dashboards/infrastructure/card_mod/infra_card.yaml new file mode 100644 index 00000000..66beb975 --- /dev/null +++ b/config/dashboards/infrastructure/card_mod/infra_card.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 +# ------------------------------------------------------------------- +# 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; + } diff --git a/config/dashboards/infrastructure/card_mod/infra_panel.yaml b/config/dashboards/infrastructure/card_mod/infra_panel.yaml new file mode 100644 index 00000000..f779b063 --- /dev/null +++ b/config/dashboards/infrastructure/card_mod/infra_panel.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 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; + } diff --git a/config/dashboards/infrastructure/cards/.gitkeep b/config/dashboards/infrastructure/cards/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/config/dashboards/infrastructure/dashboard.yaml b/config/dashboards/infrastructure/dashboard.yaml new file mode 100644 index 00000000..159b6606 --- /dev/null +++ b/config/dashboards/infrastructure/dashboard.yaml @@ -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 diff --git a/config/dashboards/infrastructure/partials/.gitkeep b/config/dashboards/infrastructure/partials/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/config/dashboards/infrastructure/partials/docker_container_restart_include.yaml b/config/dashboards/infrastructure/partials/docker_container_restart_include.yaml new file mode 100644 index 00000000..38a38afe --- /dev/null +++ b/config/dashboards/infrastructure/partials/docker_container_restart_include.yaml @@ -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 diff --git a/config/dashboards/infrastructure/partials/docker_container_rows_include.yaml b/config/dashboards/infrastructure/partials/docker_container_rows_include.yaml new file mode 100644 index 00000000..df118656 --- /dev/null +++ b/config/dashboards/infrastructure/partials/docker_container_rows_include.yaml @@ -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 diff --git a/config/dashboards/infrastructure/partials/docker_containers_sections.yaml b/config/dashboards/infrastructure/partials/docker_containers_sections.yaml new file mode 100644 index 00000000..7d4b4b8c --- /dev/null +++ b/config/dashboards/infrastructure/partials/docker_containers_sections.yaml @@ -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); + } diff --git a/config/dashboards/infrastructure/partials/home_sections.yaml b/config/dashboards/infrastructure/partials/home_sections.yaml new file mode 100644 index 00000000..09b7402f --- /dev/null +++ b/config/dashboards/infrastructure/partials/home_sections.yaml @@ -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 ?? ''); ]]] diff --git a/config/dashboards/infrastructure/partials/mariadb_sections.yaml b/config/dashboards/infrastructure/partials/mariadb_sections.yaml new file mode 100644 index 00000000..d749f138 --- /dev/null +++ b/config/dashboards/infrastructure/partials/mariadb_sections.yaml @@ -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 + + diff --git a/config/dashboards/infrastructure/partials/pi_hole_cards.yaml b/config/dashboards/infrastructure/partials/pi_hole_cards.yaml new file mode 100644 index 00000000..b74a17eb --- /dev/null +++ b/config/dashboards/infrastructure/partials/pi_hole_cards.yaml @@ -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 diff --git a/config/dashboards/infrastructure/partials/proxmox_badges.yaml b/config/dashboards/infrastructure/partials/proxmox_badges.yaml new file mode 100644 index 00000000..d34fdbec --- /dev/null +++ b/config/dashboards/infrastructure/partials/proxmox_badges.yaml @@ -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 diff --git a/config/dashboards/infrastructure/partials/proxmox_sections.yaml b/config/dashboards/infrastructure/partials/proxmox_sections.yaml new file mode 100644 index 00000000..ae4a2fc5 --- /dev/null +++ b/config/dashboards/infrastructure/partials/proxmox_sections.yaml @@ -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 diff --git a/config/dashboards/infrastructure/partials/vacuum_badges.yaml b/config/dashboards/infrastructure/partials/vacuum_badges.yaml new file mode 100644 index 00000000..755ff304 --- /dev/null +++ b/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 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 diff --git a/config/dashboards/infrastructure/partials/vacuum_sections.yaml b/config/dashboards/infrastructure/partials/vacuum_sections.yaml new file mode 100644 index 00000000..eda04a2d --- /dev/null +++ b/config/dashboards/infrastructure/partials/vacuum_sections.yaml @@ -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 diff --git a/config/dashboards/infrastructure/partials/view_cards.yaml b/config/dashboards/infrastructure/partials/view_cards.yaml new file mode 100644 index 00000000..8c3a4abc --- /dev/null +++ b/config/dashboards/infrastructure/partials/view_cards.yaml @@ -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 diff --git a/config/dashboards/infrastructure/popups/.gitkeep b/config/dashboards/infrastructure/popups/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/config/dashboards/infrastructure/templates/button_card_templates.yaml b/config/dashboards/infrastructure/templates/button_card_templates.yaml new file mode 100644 index 00000000..3a2dc973 --- /dev/null +++ b/config/dashboards/infrastructure/templates/button_card_templates.yaml @@ -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 diff --git a/config/dashboards/infrastructure/views/01_home.yaml b/config/dashboards/infrastructure/views/01_home.yaml new file mode 100644 index 00000000..d5ea1d7d --- /dev/null +++ b/config/dashboards/infrastructure/views/01_home.yaml @@ -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: [] diff --git a/config/dashboards/infrastructure/views/02_proxmox.yaml b/config/dashboards/infrastructure/views/02_proxmox.yaml new file mode 100644 index 00000000..90ff8120 --- /dev/null +++ b/config/dashboards/infrastructure/views/02_proxmox.yaml @@ -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 diff --git a/config/dashboards/infrastructure/views/03_pi_hole.yaml b/config/dashboards/infrastructure/views/03_pi_hole.yaml new file mode 100644 index 00000000..14cf420c --- /dev/null +++ b/config/dashboards/infrastructure/views/03_pi_hole.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 - 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 diff --git a/config/dashboards/infrastructure/views/04_vacuum.yaml b/config/dashboards/infrastructure/views/04_vacuum.yaml new file mode 100644 index 00000000..bae82707 --- /dev/null +++ b/config/dashboards/infrastructure/views/04_vacuum.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 diff --git a/config/dashboards/infrastructure/views/05_activity_feed.yaml b/config/dashboards/infrastructure/views/05_activity_feed.yaml new file mode 100644 index 00000000..ec4b5286 --- /dev/null +++ b/config/dashboards/infrastructure/views/05_activity_feed.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 diff --git a/config/dashboards/infrastructure/views/06_mariadb.yaml b/config/dashboards/infrastructure/views/06_mariadb.yaml new file mode 100644 index 00000000..84e79f06 --- /dev/null +++ b/config/dashboards/infrastructure/views/06_mariadb.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: [] diff --git a/config/dashboards/infrastructure/views/07_docker_containers.yaml b/config/dashboards/infrastructure/views/07_docker_containers.yaml new file mode 100644 index 00000000..4e0cac14 --- /dev/null +++ b/config/dashboards/infrastructure/views/07_docker_containers.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 - 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 diff --git a/config/dashboards/kiosk/card_mod/.gitkeep b/config/dashboards/kiosk/card_mod/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/config/dashboards/kiosk/cards/.gitkeep b/config/dashboards/kiosk/cards/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/config/dashboards/kiosk/dashboard.yaml b/config/dashboards/kiosk/dashboard.yaml new file mode 100644 index 00000000..99e6dddc --- /dev/null +++ b/config/dashboards/kiosk/dashboard.yaml @@ -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 diff --git a/config/dashboards/kiosk/partials/.gitkeep b/config/dashboards/kiosk/partials/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/config/dashboards/kiosk/partials/kiosk_oveview_badges.yaml b/config/dashboards/kiosk/partials/kiosk_oveview_badges.yaml new file mode 100644 index 00000000..1bbea1c9 --- /dev/null +++ b/config/dashboards/kiosk/partials/kiosk_oveview_badges.yaml @@ -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 diff --git a/config/dashboards/kiosk/partials/kiosk_oveview_sections.yaml b/config/dashboards/kiosk/partials/kiosk_oveview_sections.yaml new file mode 100644 index 00000000..57af6b63 --- /dev/null +++ b/config/dashboards/kiosk/partials/kiosk_oveview_sections.yaml @@ -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 diff --git a/config/dashboards/kiosk/partials/locator_sections.yaml b/config/dashboards/kiosk/partials/locator_sections.yaml new file mode 100644 index 00000000..f82a6db9 --- /dev/null +++ b/config/dashboards/kiosk/partials/locator_sections.yaml @@ -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 diff --git a/config/dashboards/kiosk/popups/.gitkeep b/config/dashboards/kiosk/popups/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/config/dashboards/kiosk/views/01_kiosk_oveview.yaml b/config/dashboards/kiosk/views/01_kiosk_oveview.yaml new file mode 100644 index 00000000..23f30fd9 --- /dev/null +++ b/config/dashboards/kiosk/views/01_kiosk_oveview.yaml @@ -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 diff --git a/config/dashboards/kiosk/views/02_locator.yaml b/config/dashboards/kiosk/views/02_locator.yaml new file mode 100644 index 00000000..7f6d3009 --- /dev/null +++ b/config/dashboards/kiosk/views/02_locator.yaml @@ -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: [] diff --git a/config/dashboards/overview/card_mod/.gitkeep b/config/dashboards/overview/card_mod/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/config/dashboards/overview/cards/.gitkeep b/config/dashboards/overview/cards/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/config/dashboards/overview/dashboard.yaml b/config/dashboards/overview/dashboard.yaml new file mode 100644 index 00000000..fb5ca1b2 --- /dev/null +++ b/config/dashboards/overview/dashboard.yaml @@ -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 diff --git a/config/dashboards/overview/partials/.gitkeep b/config/dashboards/overview/partials/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/config/dashboards/overview/partials/admin_sections.yaml b/config/dashboards/overview/partials/admin_sections.yaml new file mode 100644 index 00000000..16be50ea --- /dev/null +++ b/config/dashboards/overview/partials/admin_sections.yaml @@ -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 diff --git a/config/dashboards/overview/partials/camera_badges.yaml b/config/dashboards/overview/partials/camera_badges.yaml new file mode 100644 index 00000000..0e852ed7 --- /dev/null +++ b/config/dashboards/overview/partials/camera_badges.yaml @@ -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: '' diff --git a/config/dashboards/overview/partials/camera_sections.yaml b/config/dashboards/overview/partials/camera_sections.yaml new file mode 100644 index 00000000..8947677f --- /dev/null +++ b/config/dashboards/overview/partials/camera_sections.yaml @@ -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 diff --git a/config/dashboards/overview/partials/cameras_cards.yaml b/config/dashboards/overview/partials/cameras_cards.yaml new file mode 100644 index 00000000..f44d075b --- /dev/null +++ b/config/dashboards/overview/partials/cameras_cards.yaml @@ -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 diff --git a/config/dashboards/overview/partials/family_locator_cards.yaml b/config/dashboards/overview/partials/family_locator_cards.yaml new file mode 100644 index 00000000..331d3197 --- /dev/null +++ b/config/dashboards/overview/partials/family_locator_cards.yaml @@ -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" diff --git a/config/dashboards/overview/partials/home_badges.yaml b/config/dashboards/overview/partials/home_badges.yaml new file mode 100644 index 00000000..09f08854 --- /dev/null +++ b/config/dashboards/overview/partials/home_badges.yaml @@ -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 diff --git a/config/dashboards/overview/partials/home_sections.yaml b/config/dashboards/overview/partials/home_sections.yaml new file mode 100644 index 00000000..b4673fcb --- /dev/null +++ b/config/dashboards/overview/partials/home_sections.yaml @@ -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 diff --git a/config/dashboards/overview/partials/vacuum_badges.yaml b/config/dashboards/overview/partials/vacuum_badges.yaml new file mode 100644 index 00000000..8f3d031c --- /dev/null +++ b/config/dashboards/overview/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 +# ------------------------------------------------------------------- +# 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 diff --git a/config/dashboards/overview/partials/vacuum_sections.yaml b/config/dashboards/overview/partials/vacuum_sections.yaml new file mode 100644 index 00000000..3bf97663 --- /dev/null +++ b/config/dashboards/overview/partials/vacuum_sections.yaml @@ -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 diff --git a/config/dashboards/overview/partials/water_sections.yaml b/config/dashboards/overview/partials/water_sections.yaml new file mode 100644 index 00000000..9ef79e94 --- /dev/null +++ b/config/dashboards/overview/partials/water_sections.yaml @@ -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 diff --git a/config/dashboards/overview/popups/.gitkeep b/config/dashboards/overview/popups/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/config/dashboards/overview/views/01_home.yaml b/config/dashboards/overview/views/01_home.yaml new file mode 100644 index 00000000..2ef555c9 --- /dev/null +++ b/config/dashboards/overview/views/01_home.yaml @@ -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 diff --git a/config/dashboards/overview/views/02_family_locator.yaml b/config/dashboards/overview/views/02_family_locator.yaml new file mode 100644 index 00000000..95a082ad --- /dev/null +++ b/config/dashboards/overview/views/02_family_locator.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 - 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 diff --git a/config/dashboards/overview/views/03_camera.yaml b/config/dashboards/overview/views/03_camera.yaml new file mode 100644 index 00000000..535a9d1f --- /dev/null +++ b/config/dashboards/overview/views/03_camera.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 +# ------------------------------------------------------------------- +# 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 diff --git a/config/dashboards/overview/views/04_cameras.yaml b/config/dashboards/overview/views/04_cameras.yaml new file mode 100644 index 00000000..234a26a1 --- /dev/null +++ b/config/dashboards/overview/views/04_cameras.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 diff --git a/config/dashboards/overview/views/05_vacuum.yaml b/config/dashboards/overview/views/05_vacuum.yaml new file mode 100644 index 00000000..e0ad116c --- /dev/null +++ b/config/dashboards/overview/views/05_vacuum.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 diff --git a/config/dashboards/overview/views/06_water.yaml b/config/dashboards/overview/views/06_water.yaml new file mode 100644 index 00000000..463f7cef --- /dev/null +++ b/config/dashboards/overview/views/06_water.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 diff --git a/config/dashboards/overview/views/07_admin.yaml b/config/dashboards/overview/views/07_admin.yaml new file mode 100644 index 00000000..0ddf6be3 --- /dev/null +++ b/config/dashboards/overview/views/07_admin.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 +# ------------------------------------------------------------------- +# 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 diff --git a/config/dashboards/resources.yaml b/config/dashboards/resources.yaml new file mode 100644 index 00000000..c9fed94a --- /dev/null +++ b/config/dashboards/resources.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 diff --git a/config/dashboards/shared/card_mod/.gitkeep b/config/dashboards/shared/card_mod/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/config/dashboards/shared/partials/.gitkeep b/config/dashboards/shared/partials/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/config/dashboards/shared/popups/.gitkeep b/config/dashboards/shared/popups/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/config/dashboards/shared/views/.gitkeep b/config/dashboards/shared/views/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/config/packages/vacuum.yaml b/config/packages/vacuum.yaml index 3d4c7090..7afcf2b0 100755 --- a/config/packages/vacuum.yaml +++ b/config/packages/vacuum.yaml @@ -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' }}" @@ -206,7 +206,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 @@ -394,12 +407,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: @@ -555,7 +562,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: []