You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

426 lines
13 KiB

######################################################################
# @CCOSTAN - Follow Me on X
# For more info visit https://www.vcloudinfo.com/click-here
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
# -------------------------------------------------------------------
# Systems Partial - operations summary
# House-system health strip, active issues, datacenter, and network trends.
# -------------------------------------------------------------------
# Notes: The health ribbon mirrors the visible dashboard navigation order and labels.
# Notes: DNS and external-monitoring faults roll up under Network instead of duplicating it.
# Notes: All overview trends use a 24-hour window with visible series labels.
######################################################################
# -------------------------------------------------------------------
# Category health strip (mandatory first full-width wrapper)
# -------------------------------------------------------------------
- type: grid
column_span: 4
columns: 1
square: false
cards:
- type: custom:layout-card
grid_options:
columns: full
layout_type: custom:grid-layout
layout:
grid-template-columns: repeat(8, 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(2, minmax(0, 1fr))
cards:
- type: custom:button-card
template: bearstone_infra_status_kpi
entity: sensor.infra_dashboard_active_issue_count
name: Systems
icon: mdi:shield-check-outline
variables:
ok_state: '0'
healthy_text: ALL CLEAR
raw_suffix: ACTIVE
- type: custom:button-card
template: bearstone_infra_status_kpi
entity: binary_sensor.garage_phyn_leak_alert
name: Home Water
icon: mdi:shield-water-outline
variables:
ok_state: 'off'
healthy_text: CLEAR
alert_text: LEAK
tap_action:
action: navigate
navigation_path: /dashboard-infrastructure/home-water
- type: custom:button-card
template: bearstone_infra_status_kpi
entity: sensor.l10s_vacuum_error
name: Vacuum
icon: mdi:robot-vacuum
variables:
ok_state: no_error
healthy_text: READY
tap_action:
action: navigate
navigation_path: /dashboard-infrastructure/vacuum
- type: custom:button-card
template: bearstone_infra_status_kpi
entity: binary_sensor.infra_compute_degraded
name: ProxMox
icon: mdi:server-network
variables:
ok_state: 'off'
tap_action:
action: navigate
navigation_path: /dashboard-infrastructure/proxmox
- type: custom:button-card
template: bearstone_infra_status_kpi
entity: binary_sensor.docker_container_telemetry_degraded
name: Docker
icon: mdi:docker
variables:
ok_state: 'off'
tap_action:
action: navigate
navigation_path: /dashboard-infrastructure/docker
- type: custom:button-card
template: bearstone_infra_status_kpi
entity: binary_sensor.infra_wan_quality_degraded
name: Network
icon: mdi:wan
variables:
ok_state: 'off'
tap_action:
action: navigate
navigation_path: /dashboard-infrastructure/network
- type: custom:button-card
template: bearstone_infra_status_kpi
entity: sensor.mariadb_status
name: MariaDB
icon: mdi:database
variables:
ok_state: running
healthy_text: RUNNING
tap_action:
action: navigate
navigation_path: /dashboard-infrastructure/mariadb
- type: custom:button-card
template: bearstone_infra_status_kpi
entity: sensor.bearclaw_status_telemetry
name: Joanna
icon: mdi:robot-outline
variables:
ok_state: ok
healthy_text: HEALTHY
tap_action:
action: navigate
navigation_path: /dashboard-infrastructure/joanna
# -------------------------------------------------------------------
# Active exceptions and datacenter
# -------------------------------------------------------------------
- type: grid
column_span: 4
columns: 1
square: false
cards:
- type: custom:layout-card
grid_options:
columns: full
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))
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: Active Exceptions
- type: custom:button-card
template: bearstone_infra_alert_row
entity: binary_sensor.infra_wan_quality_degraded
name: WAN quality degraded
icon: mdi:wan
variables:
alert_kind: binary_on
tap_action:
action: navigate
navigation_path: /dashboard-infrastructure/network
- type: custom:button-card
template: bearstone_infra_alert_row
entity: binary_sensor.infra_dns_pihole_degraded
name: Pi-hole DNS degraded
icon: mdi:dns-outline
variables:
alert_kind: binary_on
tap_action:
action: navigate
navigation_path: /dashboard-infrastructure/network
- type: custom:button-card
template: bearstone_infra_alert_row
entity: binary_sensor.garage_phyn_leak_alert
name: Active water leak
icon: mdi:pipe-leak
variables:
alert_kind: binary_on
tap_action:
action: navigate
navigation_path: /dashboard-infrastructure/home-water
- type: custom:button-card
template: bearstone_infra_alert_row
entity: sensor.l10s_vacuum_error
name: Vacuum needs attention
icon: mdi:robot-vacuum-alert
variables:
alert_kind: state_not
ok_state: no_error
tap_action:
action: navigate
navigation_path: /dashboard-infrastructure/vacuum
- type: custom:button-card
template: bearstone_infra_alert_row
entity: binary_sensor.proxmox1_runtime_healthy
name: Proxmox01 runtime unavailable
icon: mdi:server-off
variables:
alert_kind: binary_off
tap_action:
action: navigate
navigation_path: /dashboard-infrastructure/proxmox
- type: custom:button-card
template: bearstone_infra_alert_row
entity: binary_sensor.proxmox02_runtime_healthy
name: Proxmox02 runtime unavailable
icon: mdi:server-off
variables:
alert_kind: binary_off
tap_action:
action: navigate
navigation_path: /dashboard-infrastructure/proxmox
- type: custom:button-card
template: bearstone_infra_alert_row
entity: binary_sensor.node_proxmox1_updates_packages
name: Proxmox01 updates pending
icon: mdi:package-up
variables:
alert_kind: binary_on
tap_action:
action: navigate
navigation_path: /dashboard-infrastructure/proxmox
- type: custom:button-card
template: bearstone_infra_alert_row
entity: binary_sensor.node_proxmox02_updates_packages
name: Proxmox02 updates pending
icon: mdi:package-up
variables:
alert_kind: binary_on
tap_action:
action: navigate
navigation_path: /dashboard-infrastructure/proxmox
- type: custom:button-card
template: bearstone_infra_alert_row
entity: binary_sensor.docker_container_telemetry_degraded
name: Docker telemetry degraded
icon: mdi:docker
variables:
alert_kind: binary_on
state_display: >
[[[
const unavailable = states['sensor.docker_monitored_unavailable_count']?.state ?? '0';
const total = states['sensor.docker_monitored_container_count']?.state ?? '0';
return `${unavailable}/${total} unavailable`;
]]]
tap_action:
action: navigate
navigation_path: /dashboard-infrastructure/docker
- type: custom:button-card
template: bearstone_infra_alert_row
entity: binary_sensor.infra_storage_degraded
name: Storage threshold or telemetry problem
icon: mdi:database-alert-outline
variables:
alert_kind: binary_on
- type: custom:button-card
template: bearstone_infra_alert_row
entity: binary_sensor.infra_website_degraded
name: Website availability degraded
icon: mdi:web-off
variables:
alert_kind: binary_on
tap_action:
action: navigate
navigation_path: /dashboard-infrastructure/network
- type: custom:button-card
template: bearstone_infra_alert_row
entity: sensor.proxmox_garage_average_temperature
name: Garage compute temperature high
icon: mdi:thermometer-alert
variables:
alert_kind: numeric_high
threshold: 145
state_display: >
[[[ return `${entity.state} °F`; ]]]
tap_action:
action: navigate
navigation_path: /dashboard-infrastructure/proxmox
- type: custom:button-card
template: bearstone_infra_panel_header
name: Network Trends
- type: custom:mini-graph-card
name: Internet Throughput
icon: mdi:speedometer
hours_to_show: 24
points_per_hour: 1
line_width: 2
smoothing: true
show:
fill: false
legend: true
labels: false
name: true
icon: true
state: false
entities:
- entity: sensor.speedtest_download
name: Download
show_legend_state: true
- entity: sensor.speedtest_upload
name: Upload
show_legend_state: true
card_mod:
style: !include /config/dashboards/infrastructure/card_mod/infra_card.yaml
- type: custom:mini-graph-card
name: Wi-Fi Clients
icon: mdi:wifi
hours_to_show: 24
points_per_hour: 1
line_width: 2
smoothing: true
show:
legend: true
labels: false
name: true
icon: true
state: true
entities:
- entity: sensor.total_wifi_clients
name: Total
show_graph: false
- entity: sensor.unifi_ap_office_clients
name: Office
- entity: sensor.unifi_ap_study_clients
name: Study
- entity: sensor.unifi_ap_garage_clients
name: Garage
card_mod:
style: !include /config/dashboards/infrastructure/card_mod/infra_card.yaml
- 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: Datacenter
- type: custom:mini-graph-card
name: Garage Compute Temperature
icon: mdi:thermometer
hours_to_show: 24
points_per_hour: 2
line_width: 2
smoothing: true
show:
legend: false
labels: false
name: true
icon: true
state: true
color_thresholds:
- value: 80
color: '#43a047'
- value: 135
color: '#f39c12'
- value: 145
color: '#c0392b'
entities:
- entity: sensor.proxmox_garage_average_temperature
name: Garage
card_mod:
style: !include /config/dashboards/infrastructure/card_mod/infra_card.yaml
- type: custom:button-card
template: bearstone_infra_list_row_running
entity: sensor.garage_ups_status
name: UPS Status
icon: mdi:battery-heart-variant
- type: custom:button-card
template: bearstone_infra_list_row
entity: sensor.garage_ups_battery_charge
name: UPS Battery
icon: mdi:battery-70
state_display: >
[[[
const value = Number(entity?.state);
return Number.isFinite(value) ? `${value.toFixed(0)}%` : 'NO DATA';
]]]
- type: custom:button-card
template: bearstone_infra_list_row
entity: sensor.garage_ups_battery_runtime
name: Runtime Remaining
icon: mdi:timer-outline
state_display: >
[[[
const seconds = Number(entity?.state);
if (!Number.isFinite(seconds)) return 'NO DATA';
const hours = Math.floor(seconds / 3600);
const minutes = Math.floor((seconds % 3600) / 60);
return hours > 0 ? `${hours}h ${minutes}m` : `${minutes}m`;
]]]
- type: custom:button-card
template: bearstone_infra_list_row
entity: sensor.garage_ups_status
name: On Battery
icon: mdi:battery-alert-variant-outline
state_display: >
[[[
const status = String(entity?.state ?? '').toUpperCase();
return status ? (status.includes('OB') ? 'YES' : 'NO') : 'NO DATA';
]]]

Powered by TurnKey Linux.