mirror of
https://github.com/CCOSTAN/Home-AssistantConfig.git
synced 2026-04-28 19:13:32 +00:00
Update HA version to 2026.3.0 and enhance dashboard configurations
- Updated the Home Assistant version in the configuration file. - Added new bubble cards for Docker container status monitoring in the infrastructure dashboard. - Included popups for maintenance actions related to specific Docker containers in the infrastructure dashboard. - Refined navigation paths in the overview dashboard for better user experience.
This commit is contained in:
@@ -1 +1 @@
|
||||
2026.2.3
|
||||
2026.3.0
|
||||
@@ -4,11 +4,12 @@
|
||||
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
|
||||
# -------------------------------------------------------------------
|
||||
# Infrastructure Partial - Docker containers sections
|
||||
# Related Issue: 1560
|
||||
# Related Issue: 1560, 1584
|
||||
# Sections layout for the Docker containers view.
|
||||
# -------------------------------------------------------------------
|
||||
# Notes: Auto-discovers Portainer container entities from `switch.*_container`.
|
||||
# Notes: Keeps cards visible when Portainer telemetry is unavailable (degraded mode).
|
||||
# Notes: Includes stack-level status tiles from Portainer `*_stack_status` entities.
|
||||
######################################################################
|
||||
|
||||
- type: grid
|
||||
@@ -32,6 +33,76 @@
|
||||
name: NAS Used
|
||||
icon: mdi:nas
|
||||
|
||||
- type: grid
|
||||
column_span: 4
|
||||
columns: 4
|
||||
square: false
|
||||
cards:
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
button_type: state
|
||||
entity: sensor.docker_10_apt_status
|
||||
name: docker_10
|
||||
icon: mdi:server
|
||||
show_state: true
|
||||
show_last_changed: true
|
||||
card_layout: large
|
||||
tap_action:
|
||||
action: navigate
|
||||
navigation_path: '#infra-docker-10'
|
||||
button_action:
|
||||
tap_action:
|
||||
action: navigate
|
||||
navigation_path: '#infra-docker-10'
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
button_type: state
|
||||
entity: sensor.docker_17_apt_status
|
||||
name: docker_17
|
||||
icon: mdi:server
|
||||
show_state: true
|
||||
show_last_changed: true
|
||||
card_layout: large
|
||||
tap_action:
|
||||
action: navigate
|
||||
navigation_path: '#infra-docker-17'
|
||||
button_action:
|
||||
tap_action:
|
||||
action: navigate
|
||||
navigation_path: '#infra-docker-17'
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
button_type: state
|
||||
entity: sensor.docker_69_apt_status
|
||||
name: docker_69
|
||||
icon: mdi:server
|
||||
show_state: true
|
||||
show_last_changed: true
|
||||
card_layout: large
|
||||
tap_action:
|
||||
action: navigate
|
||||
navigation_path: '#infra-docker-69'
|
||||
button_action:
|
||||
tap_action:
|
||||
action: navigate
|
||||
navigation_path: '#infra-docker-69'
|
||||
- type: custom:bubble-card
|
||||
card_type: button
|
||||
button_type: state
|
||||
entity: sensor.docker_14_apt_status
|
||||
name: docker_14
|
||||
icon: mdi:server
|
||||
show_state: true
|
||||
show_last_changed: true
|
||||
card_layout: large
|
||||
tap_action:
|
||||
action: navigate
|
||||
navigation_path: '#infra-docker-14'
|
||||
button_action:
|
||||
tap_action:
|
||||
action: navigate
|
||||
navigation_path: '#infra-docker-14'
|
||||
|
||||
- type: grid
|
||||
column_span: 4
|
||||
columns: 4
|
||||
@@ -70,6 +141,53 @@
|
||||
prune_button: button.docker2_prune_unused_images
|
||||
name: docker_14
|
||||
|
||||
- type: grid
|
||||
column_span: 4
|
||||
columns: 1
|
||||
square: false
|
||||
cards:
|
||||
- type: custom:vertical-stack-in-card
|
||||
grid_options:
|
||||
columns: full
|
||||
card_mod:
|
||||
style: !include /config/dashboards/infrastructure/card_mod/infra_panel.yaml
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_panel_header
|
||||
name: Docker Stacks
|
||||
- type: custom:auto-entities
|
||||
show_empty: true
|
||||
card:
|
||||
type: custom:layout-card
|
||||
layout_type: custom:grid-layout
|
||||
layout:
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr))
|
||||
grid-auto-flow: row
|
||||
grid-auto-rows: min-content
|
||||
grid-gap: 12px
|
||||
margin: 0
|
||||
mediaquery:
|
||||
"(max-width: 900px)":
|
||||
grid-template-columns: repeat(1, minmax(0, 1fr))
|
||||
card_param: cards
|
||||
filter:
|
||||
include:
|
||||
- entity_id: binary_sensor.*_stack_status
|
||||
options:
|
||||
type: custom:button-card
|
||||
template: bearstone_infra_list_row_running
|
||||
icon: mdi:package-variant
|
||||
state_display: >
|
||||
[[[
|
||||
const base = entity.entity_id.replace('binary_sensor.', '').replace('_stack_status', '');
|
||||
const count = states[`sensor.${base}_stack_containers_count`]?.state ?? 'n/a';
|
||||
const type = String(states[`sensor.${base}_stack_type`]?.state ?? 'n/a').toUpperCase();
|
||||
const status = entity.state === 'on' ? 'RUNNING' : 'DOWN';
|
||||
return `${status} | ${count} ctrs | ${type}`;
|
||||
]]]
|
||||
sort:
|
||||
method: name
|
||||
|
||||
- type: grid
|
||||
column_span: 4
|
||||
columns: 1
|
||||
@@ -121,3 +239,8 @@
|
||||
icon: mdi:docker
|
||||
sort:
|
||||
method: name
|
||||
|
||||
- !include /config/dashboards/infrastructure/popups/docker_10_maintenance.yaml
|
||||
- !include /config/dashboards/infrastructure/popups/docker_17_maintenance.yaml
|
||||
- !include /config/dashboards/infrastructure/popups/docker_69_maintenance.yaml
|
||||
- !include /config/dashboards/infrastructure/popups/docker_14_maintenance.yaml
|
||||
|
||||
@@ -6,12 +6,13 @@
|
||||
# Infrastructure Partial - proxmox sections
|
||||
# Reusable list extracted from a view for smaller diffs and safer edits.
|
||||
# -------------------------------------------------------------------
|
||||
# Related Issue: 1584
|
||||
# Notes: Standardized on `custom:button-card` + `custom:mini-graph-card` with `card_mod` polish.
|
||||
######################################################################
|
||||
|
||||
- type: grid
|
||||
column_span: 4
|
||||
columns: 4
|
||||
columns: 6
|
||||
square: false
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
@@ -24,6 +25,11 @@
|
||||
entity: sensor.node_proxmox1_memory_used_percentage
|
||||
name: P1 MEM
|
||||
icon: mdi:memory
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_kpi
|
||||
entity: sensor.proxmox1_disk_used_percentage
|
||||
name: P1 DISK
|
||||
icon: mdi:harddisk
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_kpi
|
||||
entity: sensor.node_proxmox02_cpu_used
|
||||
@@ -34,6 +40,31 @@
|
||||
entity: sensor.node_proxmox02_memory_used_percentage
|
||||
name: P2 MEM
|
||||
icon: mdi:memory
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_kpi
|
||||
entity: sensor.proxmox02_disk_used_percentage
|
||||
name: P2 DISK
|
||||
icon: mdi:harddisk
|
||||
|
||||
- type: grid
|
||||
column_span: 4
|
||||
columns: 2
|
||||
square: false
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_list_row_running
|
||||
entity: binary_sensor.proxmox1_runtime_healthy
|
||||
name: Proxmox01 Runtime
|
||||
icon: mdi:server
|
||||
state_display: >
|
||||
[[[ return entity.state === 'on' ? 'ONLINE' : 'OFFLINE'; ]]]
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_list_row_running
|
||||
entity: binary_sensor.proxmox02_runtime_healthy
|
||||
name: Proxmox02 Runtime
|
||||
icon: mdi:server
|
||||
state_display: >
|
||||
[[[ return entity.state === 'on' ? 'ONLINE' : 'OFFLINE'; ]]]
|
||||
|
||||
- type: grid
|
||||
column_span: 4
|
||||
@@ -48,7 +79,7 @@
|
||||
template: bearstone_infra_panel_header
|
||||
name: Proxmox01
|
||||
- type: custom:mini-graph-card
|
||||
name: Host CPU / Memory
|
||||
name: Host CPU / Memory / Disk
|
||||
icon: mdi:server
|
||||
hours_to_show: 24
|
||||
points_per_hour: 2
|
||||
@@ -65,6 +96,8 @@
|
||||
name: CPU
|
||||
- entity: sensor.node_proxmox1_memory_used_percentage
|
||||
name: Memory
|
||||
- entity: sensor.proxmox1_disk_used_percentage
|
||||
name: Disk
|
||||
- type: custom:mini-graph-card
|
||||
name: VMs CPU / Memory
|
||||
icon: mdi:chart-line
|
||||
@@ -100,7 +133,7 @@
|
||||
template: bearstone_infra_panel_header
|
||||
name: Proxmox02
|
||||
- type: custom:mini-graph-card
|
||||
name: Host CPU / Memory
|
||||
name: Host CPU / Memory / Disk
|
||||
icon: mdi:server
|
||||
hours_to_show: 24
|
||||
points_per_hour: 2
|
||||
@@ -117,6 +150,8 @@
|
||||
name: CPU
|
||||
- entity: sensor.node_proxmox02_memory_used_percentage
|
||||
name: Memory
|
||||
- entity: sensor.proxmox02_disk_used_percentage
|
||||
name: Disk
|
||||
- type: custom:mini-graph-card
|
||||
name: Frigate VM CPU / Memory
|
||||
icon: mdi:video
|
||||
|
||||
@@ -4,9 +4,10 @@
|
||||
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
|
||||
# -------------------------------------------------------------------
|
||||
# Infrastructure Partial - Website health sections
|
||||
# Website uptime + domain expiry + certificate telemetry detail view.
|
||||
# Website uptime + response windows + domain expiry telemetry view.
|
||||
# -------------------------------------------------------------------
|
||||
# Notes: Keep the first section full-width to avoid whitespace.
|
||||
# Related Issue: 1584
|
||||
# Notes: Uses direct Uptime Kuma entities (no aggregate uptime min sensors).
|
||||
######################################################################
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
@@ -73,6 +74,94 @@
|
||||
icon: mdi:web-check
|
||||
state_display: >
|
||||
[[[ return entity.state === 'on' ? 'UP' : (entity.state || 'unknown').toUpperCase(); ]]]
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_list_row
|
||||
entity: binary_sensor.vcloudinfo_com
|
||||
name: vcloudinfo.com uptime
|
||||
icon: mdi:chart-line
|
||||
state_display: >
|
||||
[[[
|
||||
const pick = (metric, window) => {
|
||||
const suffix = `${metric}_${window}`;
|
||||
const candidates = Object.keys(states).filter((k) =>
|
||||
k.startsWith('sensor.') &&
|
||||
k.includes('vcloudinfo_com') &&
|
||||
k.endsWith(suffix)
|
||||
);
|
||||
const eid = candidates[0];
|
||||
return eid ? (states[eid]?.state ?? 'n/a') : 'n/a';
|
||||
};
|
||||
const uptime1d = pick('uptime', '1d');
|
||||
const uptime30d = pick('uptime', '30d');
|
||||
const uptime365d = pick('uptime', '365d');
|
||||
return `1d ${uptime1d}% | 30d ${uptime30d}% | 365d ${uptime365d}%`;
|
||||
]]]
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_list_row
|
||||
entity: binary_sensor.vcloudinfo_com
|
||||
name: vcloudinfo.com response
|
||||
icon: mdi:timer-outline
|
||||
state_display: >
|
||||
[[[
|
||||
const pick = (metric, window) => {
|
||||
const suffix = `${metric}_${window}`;
|
||||
const candidates = Object.keys(states).filter((k) =>
|
||||
k.startsWith('sensor.') &&
|
||||
k.includes('vcloudinfo_com') &&
|
||||
k.endsWith(suffix)
|
||||
);
|
||||
const eid = candidates[0];
|
||||
return eid ? (states[eid]?.state ?? 'n/a') : 'n/a';
|
||||
};
|
||||
const r1d = pick('avg_response_time', '1d');
|
||||
const r30d = pick('avg_response_time', '30d');
|
||||
const r365d = pick('avg_response_time', '365d');
|
||||
return `1d ${r1d}s | 30d ${r30d}s | 365d ${r365d}s`;
|
||||
]]]
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_list_row
|
||||
entity: binary_sensor.www_kingcrafthomes_com
|
||||
name: kingcrafthomes.com uptime
|
||||
icon: mdi:chart-line
|
||||
state_display: >
|
||||
[[[
|
||||
const pick = (metric, window) => {
|
||||
const suffix = `${metric}_${window}`;
|
||||
const candidates = Object.keys(states).filter((k) =>
|
||||
k.startsWith('sensor.') &&
|
||||
(k.includes('kingcrafthomes_com') || k.includes('www_kingcrafthomes_com')) &&
|
||||
k.endsWith(suffix)
|
||||
);
|
||||
const eid = candidates[0];
|
||||
return eid ? (states[eid]?.state ?? 'n/a') : 'n/a';
|
||||
};
|
||||
const uptime1d = pick('uptime', '1d');
|
||||
const uptime30d = pick('uptime', '30d');
|
||||
const uptime365d = pick('uptime', '365d');
|
||||
return `1d ${uptime1d}% | 30d ${uptime30d}% | 365d ${uptime365d}%`;
|
||||
]]]
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_list_row
|
||||
entity: binary_sensor.www_kingcrafthomes_com
|
||||
name: kingcrafthomes.com response
|
||||
icon: mdi:timer-outline
|
||||
state_display: >
|
||||
[[[
|
||||
const pick = (metric, window) => {
|
||||
const suffix = `${metric}_${window}`;
|
||||
const candidates = Object.keys(states).filter((k) =>
|
||||
k.startsWith('sensor.') &&
|
||||
(k.includes('kingcrafthomes_com') || k.includes('www_kingcrafthomes_com')) &&
|
||||
k.endsWith(suffix)
|
||||
);
|
||||
const eid = candidates[0];
|
||||
return eid ? (states[eid]?.state ?? 'n/a') : 'n/a';
|
||||
};
|
||||
const r1d = pick('avg_response_time', '1d');
|
||||
const r30d = pick('avg_response_time', '30d');
|
||||
const r365d = pick('avg_response_time', '365d');
|
||||
return `1d ${r1d}s | 30d ${r30d}s | 365d ${r365d}s`;
|
||||
]]]
|
||||
|
||||
- type: custom:vertical-stack-in-card
|
||||
grid_options:
|
||||
@@ -101,7 +190,7 @@
|
||||
name: vcloudinfo.com
|
||||
icon: mdi:calendar-clock
|
||||
state_display: >
|
||||
[[[
|
||||
[[[
|
||||
const days = states['sensor.vcloudinfo_com_days_until_expiration']?.state ?? 'n/a';
|
||||
const expRaw = states['sensor.vcloudinfo_com_expires']?.state;
|
||||
let exp = 'n/a';
|
||||
@@ -127,7 +216,7 @@
|
||||
name: kingcrafthomes.com
|
||||
icon: mdi:calendar-clock
|
||||
state_display: >
|
||||
[[[
|
||||
[[[
|
||||
const days = states['sensor.kingcrafthomes_com_days_until_expiration']?.state ?? 'n/a';
|
||||
const expRaw = states['sensor.kingcrafthomes_com_expires']?.state;
|
||||
let exp = 'n/a';
|
||||
@@ -148,3 +237,29 @@
|
||||
return `${days}d | ${exp}`;
|
||||
]]]
|
||||
|
||||
- type: grid
|
||||
column_span: 4
|
||||
columns: 3
|
||||
square: false
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_alert_row
|
||||
entity: binary_sensor.infra_website_degraded
|
||||
name: Website status degraded
|
||||
icon: mdi:web-off
|
||||
variables:
|
||||
alert_kind: binary_on
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_alert_row
|
||||
entity: binary_sensor.infra_website_uptime_slo_breach
|
||||
name: Uptime SLO breach
|
||||
icon: mdi:alert-decagram
|
||||
variables:
|
||||
alert_kind: binary_on
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_alert_row
|
||||
entity: binary_sensor.infra_website_latency_degraded
|
||||
name: Website latency degraded
|
||||
icon: mdi:timer-alert
|
||||
variables:
|
||||
alert_kind: binary_on
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
######################################################################
|
||||
# @CCOSTAN - Follow Me on X
|
||||
# For more info visit https://www.vcloudinfo.com/click-here
|
||||
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
|
||||
# -------------------------------------------------------------------
|
||||
# Infrastructure Popup - docker_10 maintenance
|
||||
# Bubble Card popup for host maintenance details and safe cleanup actions.
|
||||
# -------------------------------------------------------------------
|
||||
# Related Issue: 1560
|
||||
# Notes: Reuses existing Infrastructure button-card templates inside the popup.
|
||||
######################################################################
|
||||
|
||||
type: vertical-stack
|
||||
cards:
|
||||
- type: custom:bubble-card
|
||||
card_type: pop-up
|
||||
hash: '#infra-docker-10'
|
||||
entity: sensor.docker_10_apt_status
|
||||
button_type: state
|
||||
name: docker_10 maintenance
|
||||
icon: mdi:server
|
||||
show_header: true
|
||||
show_state: true
|
||||
width_desktop: 520px
|
||||
bg_opacity: '35'
|
||||
- type: grid
|
||||
columns: 2
|
||||
square: false
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_apt_prune_tile
|
||||
name: docker_10
|
||||
entity: sensor.docker_10_apt_status
|
||||
variables:
|
||||
last_update_sensor: sensor.docker_10_apt_last_update
|
||||
prune_button: button.carlo_hass_prune_unused_images
|
||||
name: docker_10
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_tile
|
||||
entity: sensor.docker_10_apt_last_update
|
||||
name: Last Update
|
||||
icon: mdi:update
|
||||
variables:
|
||||
label: Most recent package update
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_tile
|
||||
entity: sensor.docker_10_apt_last_check
|
||||
name: Last Check
|
||||
icon: mdi:calendar-check
|
||||
variables:
|
||||
label: Most recent apt check
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_tile
|
||||
entity: sensor.docker_10_apt_status
|
||||
name: Apt Status
|
||||
icon: mdi:package-up
|
||||
variables:
|
||||
label: Pending package summary
|
||||
@@ -1,23 +0,0 @@
|
||||
######################################################################
|
||||
# @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
|
||||
@@ -1,18 +0,0 @@
|
||||
######################################################################
|
||||
# @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
|
||||
Reference in New Issue
Block a user