parent
cabad62ca0
commit
89d12ee1e7
@ -0,0 +1,38 @@
|
||||
######################################################################
|
||||
# @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 - AI Diagnostics
|
||||
# Shows the current instruction and response pair for request tracing.
|
||||
# -------------------------------------------------------------------
|
||||
# Notes: Included by config/dashboards/infrastructure/views/06b_ai_diagnostics.yaml.
|
||||
######################################################################
|
||||
|
||||
- type: grid
|
||||
column_span: 4
|
||||
columns: 1
|
||||
square: false
|
||||
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: AI Diagnostics
|
||||
|
||||
- type: markdown
|
||||
title: Response Received from OpenAI
|
||||
content: >-
|
||||
{{ state_attr('sensor.openai_response', 'response') or 'No response available.' }}
|
||||
card_mod:
|
||||
style: !include /config/dashboards/infrastructure/card_mod/infra_card.yaml
|
||||
|
||||
# Core markdown is required because long templated diagnostic payloads cannot be rendered safely by the shared button-card templates.
|
||||
- type: markdown
|
||||
title: Instructions Sent to OpenAI
|
||||
content: >-
|
||||
{{ state_attr('sensor.openai_instructions', 'instructions') or 'No instructions available.' }}
|
||||
card_mod:
|
||||
style: !include /config/dashboards/infrastructure/card_mod/infra_card.yaml
|
||||
@ -1,354 +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
|
||||
# -------------------------------------------------------------------
|
||||
# Infrastructure Partial - Joanna Activity
|
||||
# Latest 12 dispatches from BearClaw's rolling 24-hour runtime history.
|
||||
# -------------------------------------------------------------------
|
||||
# Notes: Rows intentionally read the dispatchActivity status attribute so the count and detail share one source of truth.
|
||||
######################################################################
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# Dispatch summary
|
||||
# -------------------------------------------------------------------
|
||||
- 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(4, 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_kpi
|
||||
entity: sensor.joanna_all_dispatches_24h
|
||||
name: All Jobs · 24H
|
||||
icon: mdi:robot
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_kpi
|
||||
entity: sensor.joanna_ha_dispatches_24h
|
||||
name: HA Jobs · 24H
|
||||
icon: mdi:home-automation
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_kpi
|
||||
entity: sensor.joanna_queue_pending
|
||||
name: Queue
|
||||
icon: mdi:playlist-clock
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_status_kpi
|
||||
entity: sensor.joanna_ha_errors_24h
|
||||
name: HA Errors · 24H
|
||||
icon: mdi:alert-circle-outline
|
||||
variables:
|
||||
ok_state: '0'
|
||||
healthy_text: NONE
|
||||
raw_suffix: ERRORS
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# Recent dispatches
|
||||
# -------------------------------------------------------------------
|
||||
- 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: Most Recent Dispatches
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_list_row
|
||||
entity: sensor.bearclaw_status_telemetry
|
||||
icon: mdi:robot-outline
|
||||
variables:
|
||||
activity_index: 0
|
||||
name: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'No dispatches in 24 hours';
|
||||
return String(item.source || 'unknown')
|
||||
.replace(/^home_assistant_automation\./, 'HA · ')
|
||||
.replace(/^scheduler_/, 'Scheduled · ')
|
||||
.replace(/^manual_/, 'Manual · ')
|
||||
.replaceAll('_', ' ');
|
||||
]]]
|
||||
state_display: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'NO ACTIVITY';
|
||||
const state = String(item.state || 'queued').replaceAll('_', ' ').toUpperCase();
|
||||
const when = item.dispatchedAt ? new Date(item.dispatchedAt).toLocaleString('en-US', { month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit' }) : 'N/A';
|
||||
return `${state} · ${when}`;
|
||||
]]]
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_list_row
|
||||
entity: sensor.bearclaw_status_telemetry
|
||||
icon: mdi:robot-outline
|
||||
variables:
|
||||
activity_index: 1
|
||||
name: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'No additional dispatches';
|
||||
return String(item.source || 'unknown').replace(/^home_assistant_automation\./, 'HA · ').replace(/^scheduler_/, 'Scheduled · ').replace(/^manual_/, 'Manual · ').replaceAll('_', ' ');
|
||||
]]]
|
||||
state_display: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'NO ACTIVITY';
|
||||
const state = String(item.state || 'queued').replaceAll('_', ' ').toUpperCase();
|
||||
const when = item.dispatchedAt ? new Date(item.dispatchedAt).toLocaleString('en-US', { month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit' }) : 'N/A';
|
||||
return `${state} · ${when}`;
|
||||
]]]
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_list_row
|
||||
entity: sensor.bearclaw_status_telemetry
|
||||
icon: mdi:robot-outline
|
||||
variables:
|
||||
activity_index: 2
|
||||
name: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'No additional dispatches';
|
||||
return String(item.source || 'unknown').replace(/^home_assistant_automation\./, 'HA · ').replace(/^scheduler_/, 'Scheduled · ').replace(/^manual_/, 'Manual · ').replaceAll('_', ' ');
|
||||
]]]
|
||||
state_display: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'NO ACTIVITY';
|
||||
const state = String(item.state || 'queued').replaceAll('_', ' ').toUpperCase();
|
||||
const when = item.dispatchedAt ? new Date(item.dispatchedAt).toLocaleString('en-US', { month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit' }) : 'N/A';
|
||||
return `${state} · ${when}`;
|
||||
]]]
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_list_row
|
||||
entity: sensor.bearclaw_status_telemetry
|
||||
icon: mdi:robot-outline
|
||||
variables:
|
||||
activity_index: 3
|
||||
name: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'No additional dispatches';
|
||||
return String(item.source || 'unknown').replace(/^home_assistant_automation\./, 'HA · ').replace(/^scheduler_/, 'Scheduled · ').replace(/^manual_/, 'Manual · ').replaceAll('_', ' ');
|
||||
]]]
|
||||
state_display: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'NO ACTIVITY';
|
||||
const state = String(item.state || 'queued').replaceAll('_', ' ').toUpperCase();
|
||||
const when = item.dispatchedAt ? new Date(item.dispatchedAt).toLocaleString('en-US', { month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit' }) : 'N/A';
|
||||
return `${state} · ${when}`;
|
||||
]]]
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_list_row
|
||||
entity: sensor.bearclaw_status_telemetry
|
||||
icon: mdi:robot-outline
|
||||
variables:
|
||||
activity_index: 4
|
||||
name: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'No additional dispatches';
|
||||
return String(item.source || 'unknown').replace(/^home_assistant_automation\./, 'HA · ').replace(/^scheduler_/, 'Scheduled · ').replace(/^manual_/, 'Manual · ').replaceAll('_', ' ');
|
||||
]]]
|
||||
state_display: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'NO ACTIVITY';
|
||||
const state = String(item.state || 'queued').replaceAll('_', ' ').toUpperCase();
|
||||
const when = item.dispatchedAt ? new Date(item.dispatchedAt).toLocaleString('en-US', { month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit' }) : 'N/A';
|
||||
return `${state} · ${when}`;
|
||||
]]]
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_list_row
|
||||
entity: sensor.bearclaw_status_telemetry
|
||||
icon: mdi:robot-outline
|
||||
variables:
|
||||
activity_index: 5
|
||||
name: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'No additional dispatches';
|
||||
return String(item.source || 'unknown').replace(/^home_assistant_automation\./, 'HA · ').replace(/^scheduler_/, 'Scheduled · ').replace(/^manual_/, 'Manual · ').replaceAll('_', ' ');
|
||||
]]]
|
||||
state_display: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'NO ACTIVITY';
|
||||
const state = String(item.state || 'queued').replaceAll('_', ' ').toUpperCase();
|
||||
const when = item.dispatchedAt ? new Date(item.dispatchedAt).toLocaleString('en-US', { month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit' }) : 'N/A';
|
||||
return `${state} · ${when}`;
|
||||
]]]
|
||||
|
||||
- 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: Earlier Today
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_list_row
|
||||
entity: sensor.bearclaw_status_telemetry
|
||||
icon: mdi:robot-outline
|
||||
variables:
|
||||
activity_index: 6
|
||||
name: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'No additional dispatches';
|
||||
return String(item.source || 'unknown').replace(/^home_assistant_automation\./, 'HA · ').replace(/^scheduler_/, 'Scheduled · ').replace(/^manual_/, 'Manual · ').replaceAll('_', ' ');
|
||||
]]]
|
||||
state_display: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'NO ACTIVITY';
|
||||
const state = String(item.state || 'queued').replaceAll('_', ' ').toUpperCase();
|
||||
const when = item.dispatchedAt ? new Date(item.dispatchedAt).toLocaleString('en-US', { month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit' }) : 'N/A';
|
||||
return `${state} · ${when}`;
|
||||
]]]
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_list_row
|
||||
entity: sensor.bearclaw_status_telemetry
|
||||
icon: mdi:robot-outline
|
||||
variables:
|
||||
activity_index: 7
|
||||
name: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'No additional dispatches';
|
||||
return String(item.source || 'unknown').replace(/^home_assistant_automation\./, 'HA · ').replace(/^scheduler_/, 'Scheduled · ').replace(/^manual_/, 'Manual · ').replaceAll('_', ' ');
|
||||
]]]
|
||||
state_display: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'NO ACTIVITY';
|
||||
const state = String(item.state || 'queued').replaceAll('_', ' ').toUpperCase();
|
||||
const when = item.dispatchedAt ? new Date(item.dispatchedAt).toLocaleString('en-US', { month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit' }) : 'N/A';
|
||||
return `${state} · ${when}`;
|
||||
]]]
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_list_row
|
||||
entity: sensor.bearclaw_status_telemetry
|
||||
icon: mdi:robot-outline
|
||||
variables:
|
||||
activity_index: 8
|
||||
name: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'No additional dispatches';
|
||||
return String(item.source || 'unknown').replace(/^home_assistant_automation\./, 'HA · ').replace(/^scheduler_/, 'Scheduled · ').replace(/^manual_/, 'Manual · ').replaceAll('_', ' ');
|
||||
]]]
|
||||
state_display: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'NO ACTIVITY';
|
||||
const state = String(item.state || 'queued').replaceAll('_', ' ').toUpperCase();
|
||||
const when = item.dispatchedAt ? new Date(item.dispatchedAt).toLocaleString('en-US', { month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit' }) : 'N/A';
|
||||
return `${state} · ${when}`;
|
||||
]]]
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_list_row
|
||||
entity: sensor.bearclaw_status_telemetry
|
||||
icon: mdi:robot-outline
|
||||
variables:
|
||||
activity_index: 9
|
||||
name: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'No additional dispatches';
|
||||
return String(item.source || 'unknown').replace(/^home_assistant_automation\./, 'HA · ').replace(/^scheduler_/, 'Scheduled · ').replace(/^manual_/, 'Manual · ').replaceAll('_', ' ');
|
||||
]]]
|
||||
state_display: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'NO ACTIVITY';
|
||||
const state = String(item.state || 'queued').replaceAll('_', ' ').toUpperCase();
|
||||
const when = item.dispatchedAt ? new Date(item.dispatchedAt).toLocaleString('en-US', { month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit' }) : 'N/A';
|
||||
return `${state} · ${when}`;
|
||||
]]]
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_list_row
|
||||
entity: sensor.bearclaw_status_telemetry
|
||||
icon: mdi:robot-outline
|
||||
variables:
|
||||
activity_index: 10
|
||||
name: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'No additional dispatches';
|
||||
return String(item.source || 'unknown').replace(/^home_assistant_automation\./, 'HA · ').replace(/^scheduler_/, 'Scheduled · ').replace(/^manual_/, 'Manual · ').replaceAll('_', ' ');
|
||||
]]]
|
||||
state_display: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'NO ACTIVITY';
|
||||
const state = String(item.state || 'queued').replaceAll('_', ' ').toUpperCase();
|
||||
const when = item.dispatchedAt ? new Date(item.dispatchedAt).toLocaleString('en-US', { month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit' }) : 'N/A';
|
||||
return `${state} · ${when}`;
|
||||
]]]
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_infra_list_row
|
||||
entity: sensor.bearclaw_status_telemetry
|
||||
icon: mdi:robot-outline
|
||||
variables:
|
||||
activity_index: 11
|
||||
name: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'No additional dispatches';
|
||||
return String(item.source || 'unknown').replace(/^home_assistant_automation\./, 'HA · ').replace(/^scheduler_/, 'Scheduled · ').replace(/^manual_/, 'Manual · ').replaceAll('_', ' ');
|
||||
]]]
|
||||
state_display: >
|
||||
[[[
|
||||
const item = entity?.attributes?.dispatchActivity?.items?.[variables?.activity_index];
|
||||
if (!item) return 'NO ACTIVITY';
|
||||
const state = String(item.state || 'queued').replaceAll('_', ' ').toUpperCase();
|
||||
const when = item.dispatchedAt ? new Date(item.dispatchedAt).toLocaleString('en-US', { month: 'short', day: 'numeric', hour: 'numeric', minute: '2-digit' }) : 'N/A';
|
||||
return `${state} · ${when}`;
|
||||
]]]
|
||||
@ -1,71 +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 Partial - admin sections
|
||||
# Reusable list extracted from a view for smaller diffs and safer edits.
|
||||
# -------------------------------------------------------------------
|
||||
# Notes: Extracted from config/dashboards/overview/views/08_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: tile
|
||||
entity: binary_sensor.front_door_packages_present
|
||||
- type: tile
|
||||
entity: input_text.llmvision_front_door_last_response
|
||||
- type: tile
|
||||
entity: input_datetime.llmvision_front_door_last_run
|
||||
- type: tile
|
||||
entity: input_text.llmvision_front_door_last_keyframe
|
||||
- type: tile
|
||||
entity: input_button.llmvision_front_door_package_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
|
||||
@ -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 8.
|
||||
######################################################################
|
||||
|
||||
title: Admin
|
||||
icon: mdi:security
|
||||
visible:
|
||||
- user: be280a93c9d7416e98d25d0470f414be
|
||||
cards: []
|
||||
type: sections
|
||||
sections: !include /config/dashboards/overview/partials/admin_sections.yaml
|
||||
Loading…
Reference in new issue