###################################################################### # @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'; ]]]