parent
b08a756c86
commit
649633c62c
@ -0,0 +1,28 @@
|
||||
######################################################################
|
||||
# @CCOSTAN - Follow Me on X
|
||||
# For more info visit https://www.vcloudinfo.com/click-here
|
||||
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
|
||||
# -------------------------------------------------------------------
|
||||
# Dashboard notices - optional appliance information
|
||||
# A quiet full-width banner, separate from actionable health warnings.
|
||||
# -------------------------------------------------------------------
|
||||
# Notes: Native Markdown supplies HA's info alert and server-side expiry
|
||||
# handling; button-card templates remain the status-card renderer.
|
||||
# Notes: Reuses live-only telemetry; no extra sensor, history, or dispatch.
|
||||
######################################################################
|
||||
|
||||
type: markdown
|
||||
grid_options:
|
||||
columns: full
|
||||
view_layout:
|
||||
grid-column: 1 / -1
|
||||
text_only: true
|
||||
show_empty: false
|
||||
entity_id: sensor.bearclaw_status_telemetry
|
||||
content: >-
|
||||
{%- set health = state_attr('sensor.bearclaw_status_telemetry', 'scheduledJobsHealth') | default({}, true) -%}
|
||||
{%- if is_state('sensor.bearclaw_status_telemetry', 'ok') -%}
|
||||
{%- for notice in health.get('notices', []) if notice.get('severity') == 'info' and as_timestamp(notice.get('expiresAt'), 0) > as_timestamp(now()) -%}
|
||||
<ha-alert alert-type="info"><b>{{ notice.get('label', '') | e }}</b><br>{{ notice.get('detail', '') | e }}</ha-alert>
|
||||
{%- endfor -%}
|
||||
{%- endif -%}
|
||||
@ -0,0 +1,44 @@
|
||||
######################################################################
|
||||
# @CCOSTAN - Follow Me on X
|
||||
# For more info visit https://www.vcloudinfo.com/click-here
|
||||
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
|
||||
# -------------------------------------------------------------------
|
||||
# Scheduled Job Issues - shared exceptions for Systems and Joanna
|
||||
# Notes: Existing alert-row styling preserves each job's own severity.
|
||||
# Notes: Auto-entities is needed to render a changing number of job rows.
|
||||
######################################################################
|
||||
|
||||
type: custom:auto-entities
|
||||
show_empty: false
|
||||
card:
|
||||
type: grid
|
||||
columns: 1
|
||||
square: false
|
||||
card_param: cards
|
||||
filter:
|
||||
template: >-
|
||||
{% from 'infrastructure_health.jinja' import scheduled_job_issues %}
|
||||
{% set issues = (scheduled_job_issues | as_function)() %}
|
||||
{% set ns = namespace(cards=[]) %}
|
||||
{% for issue in issues %}
|
||||
{% set next_run = as_datetime(issue.get('nextRunAt'), none) %}
|
||||
{% set detail = issue.get('detail') or 'Open BearClaw Admin > Activity > Scheduled Jobs to review this warning.' %}
|
||||
{% if next_run is not none %}
|
||||
{% set detail = detail ~ ' Next check: ' ~ as_local(next_run).strftime('%b %d, %I:%M %p') ~ '.' %}
|
||||
{% endif %}
|
||||
{% set warning = issue.get('severity') == 'warning' %}
|
||||
{% set ns.cards = ns.cards + [{
|
||||
'type': 'custom:button-card', 'template': 'bearstone_infra_alert_row',
|
||||
'entity': 'sensor.bearclaw_scheduled_job_health',
|
||||
'name': issue.get('label') or 'Scheduled job needs attention',
|
||||
'icon': 'mdi:calendar-alert',
|
||||
'variables': {
|
||||
'alert_kind': 'state_not', 'ok_state': 'ok',
|
||||
'alert_severity': 'warning' if warning else 'critical',
|
||||
'exception_detail': detail
|
||||
},
|
||||
'state_display': 'WARNING' if warning else 'ERROR',
|
||||
'tap_action': {'action': 'more-info'}
|
||||
}] %}
|
||||
{% endfor %}
|
||||
{{ ns.cards | to_json }}
|
||||
@ -0,0 +1,268 @@
|
||||
######################################################################
|
||||
# @CCOSTAN - Follow Me on X
|
||||
# For more info visit https://www.vcloudinfo.com/click-here
|
||||
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
|
||||
# -------------------------------------------------------------------
|
||||
# Infrastructure Subview - Living Room TV Remote
|
||||
# Related Issue: 2030
|
||||
# Large navigation, input/settings menus, and the Raven app launcher.
|
||||
# -------------------------------------------------------------------
|
||||
# Notes: Open from Living Room TV on the Kiosks page.
|
||||
# Notes: Each tap sends one key; Back and Exit control the TV menu.
|
||||
# Notes: TV Home exposes Sources; Settings opens TV sound and Anynet+ options.
|
||||
# Notes: KEY_SOURCE did not open this TV's input menu; KEY_HOME is verified.
|
||||
# Notes: Reuses the 112px mobile controls without automatic key presses.
|
||||
# Notes: Raven launches the native Roku app through the display bridge.
|
||||
######################################################################
|
||||
|
||||
path: tv-remote
|
||||
title: TV Remote
|
||||
icon: mdi:remote-tv
|
||||
subview: true
|
||||
type: sections
|
||||
max_columns: 4
|
||||
badges: []
|
||||
sections:
|
||||
- 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(6, minmax(0, 1fr))
|
||||
grid-auto-flow: row
|
||||
grid-auto-rows: min-content
|
||||
align-items: stretch
|
||||
grid-gap: 10px
|
||||
margin: 0
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_header
|
||||
name: Living Room TV
|
||||
icon: mdi:television
|
||||
view_layout:
|
||||
grid-column: 1 / -1
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_control
|
||||
entity: media_player.living_room_ultra
|
||||
name: Raven
|
||||
icon: mdi:view-dashboard-outline
|
||||
show_state: false
|
||||
variables:
|
||||
status_severity: healthy
|
||||
view_layout:
|
||||
grid-column: 1 / -1
|
||||
tap_action:
|
||||
action: perform-action
|
||||
perform_action: rest_command.samsung_living_room_launch_haven
|
||||
hold_action:
|
||||
action: none
|
||||
double_tap_action:
|
||||
action: none
|
||||
|
||||
# Samsung menus stay accessible without a physical TV remote.
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_control
|
||||
entity: remote.samsung_q70_series_65
|
||||
name: TV Home
|
||||
icon: mdi:home-outline
|
||||
show_state: false
|
||||
variables:
|
||||
status_severity: active
|
||||
view_layout:
|
||||
grid-column: span 3
|
||||
tap_action:
|
||||
action: perform-action
|
||||
perform_action: remote.send_command
|
||||
target:
|
||||
entity_id: remote.samsung_q70_series_65
|
||||
data:
|
||||
command: KEY_HOME
|
||||
hold_action:
|
||||
action: none
|
||||
double_tap_action:
|
||||
action: none
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_control
|
||||
entity: remote.samsung_q70_series_65
|
||||
name: Settings
|
||||
icon: mdi:cog
|
||||
show_state: false
|
||||
variables:
|
||||
status_severity: active
|
||||
view_layout:
|
||||
grid-column: span 3
|
||||
tap_action:
|
||||
action: perform-action
|
||||
perform_action: remote.send_command
|
||||
target:
|
||||
entity_id: remote.samsung_q70_series_65
|
||||
data:
|
||||
command: KEY_MENU
|
||||
hold_action:
|
||||
action: none
|
||||
double_tap_action:
|
||||
action: none
|
||||
|
||||
# Full-width Up and Down keep every touch target large without spacers.
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_control
|
||||
entity: remote.samsung_q70_series_65
|
||||
name: Up
|
||||
icon: mdi:arrow-up-bold
|
||||
show_state: false
|
||||
variables:
|
||||
status_severity: active
|
||||
view_layout:
|
||||
grid-column: 1 / -1
|
||||
tap_action:
|
||||
action: perform-action
|
||||
perform_action: remote.send_command
|
||||
target:
|
||||
entity_id: remote.samsung_q70_series_65
|
||||
data:
|
||||
command: KEY_UP
|
||||
hold_action:
|
||||
action: none
|
||||
double_tap_action:
|
||||
action: none
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_control
|
||||
entity: remote.samsung_q70_series_65
|
||||
name: Left
|
||||
icon: mdi:arrow-left-bold
|
||||
show_state: false
|
||||
variables:
|
||||
status_severity: active
|
||||
view_layout:
|
||||
grid-column: span 2
|
||||
tap_action:
|
||||
action: perform-action
|
||||
perform_action: remote.send_command
|
||||
target:
|
||||
entity_id: remote.samsung_q70_series_65
|
||||
data:
|
||||
command: KEY_LEFT
|
||||
hold_action:
|
||||
action: none
|
||||
double_tap_action:
|
||||
action: none
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_control
|
||||
entity: remote.samsung_q70_series_65
|
||||
name: OK
|
||||
icon: mdi:check-bold
|
||||
show_state: false
|
||||
variables:
|
||||
status_severity: healthy
|
||||
view_layout:
|
||||
grid-column: span 2
|
||||
tap_action:
|
||||
action: perform-action
|
||||
perform_action: remote.send_command
|
||||
target:
|
||||
entity_id: remote.samsung_q70_series_65
|
||||
data:
|
||||
command: KEY_ENTER
|
||||
hold_action:
|
||||
action: none
|
||||
double_tap_action:
|
||||
action: none
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_control
|
||||
entity: remote.samsung_q70_series_65
|
||||
name: Right
|
||||
icon: mdi:arrow-right-bold
|
||||
show_state: false
|
||||
variables:
|
||||
status_severity: active
|
||||
view_layout:
|
||||
grid-column: span 2
|
||||
tap_action:
|
||||
action: perform-action
|
||||
perform_action: remote.send_command
|
||||
target:
|
||||
entity_id: remote.samsung_q70_series_65
|
||||
data:
|
||||
command: KEY_RIGHT
|
||||
hold_action:
|
||||
action: none
|
||||
double_tap_action:
|
||||
action: none
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_control
|
||||
entity: remote.samsung_q70_series_65
|
||||
name: Down
|
||||
icon: mdi:arrow-down-bold
|
||||
show_state: false
|
||||
variables:
|
||||
status_severity: active
|
||||
view_layout:
|
||||
grid-column: 1 / -1
|
||||
tap_action:
|
||||
action: perform-action
|
||||
perform_action: remote.send_command
|
||||
target:
|
||||
entity_id: remote.samsung_q70_series_65
|
||||
data:
|
||||
command: KEY_DOWN
|
||||
hold_action:
|
||||
action: none
|
||||
double_tap_action:
|
||||
action: none
|
||||
|
||||
# These buttons navigate the TV, rather than the Home Assistant screen.
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_control
|
||||
entity: remote.samsung_q70_series_65
|
||||
name: Back
|
||||
icon: mdi:undo
|
||||
show_state: false
|
||||
variables:
|
||||
status_severity: active
|
||||
view_layout:
|
||||
grid-column: span 3
|
||||
tap_action:
|
||||
action: perform-action
|
||||
perform_action: remote.send_command
|
||||
target:
|
||||
entity_id: remote.samsung_q70_series_65
|
||||
data:
|
||||
command: KEY_RETURN
|
||||
hold_action:
|
||||
action: none
|
||||
double_tap_action:
|
||||
action: none
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_control
|
||||
entity: remote.samsung_q70_series_65
|
||||
name: Exit
|
||||
icon: mdi:close-circle-outline
|
||||
show_state: false
|
||||
variables:
|
||||
status_severity: active
|
||||
view_layout:
|
||||
grid-column: span 3
|
||||
tap_action:
|
||||
action: perform-action
|
||||
perform_action: remote.send_command
|
||||
target:
|
||||
entity_id: remote.samsung_q70_series_65
|
||||
data:
|
||||
command: KEY_EXIT
|
||||
hold_action:
|
||||
action: none
|
||||
double_tap_action:
|
||||
action: none
|
||||
cards: []
|
||||
@ -0,0 +1,266 @@
|
||||
######################################################################
|
||||
# @CCOSTAN - Follow Me on X
|
||||
# For more info visit https://www.vcloudinfo.com/click-here
|
||||
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
|
||||
# -------------------------------------------------------------------
|
||||
# Infrastructure Subview - Living Room Roku Remote
|
||||
# Related Issue: 2030
|
||||
# Native Roku navigation, playback, and the Raven app launcher.
|
||||
# -------------------------------------------------------------------
|
||||
# Notes: Open from the Raven card or device panel on Systems > Kiosks.
|
||||
# Notes: Each tap sends one Roku command; Back/Home exit Raven natively.
|
||||
# Notes: TV menus remain on the separate Samsung TV Remote subview.
|
||||
# Notes: Reuses the existing large mobile controls and launch action.
|
||||
######################################################################
|
||||
|
||||
path: roku-remote
|
||||
title: Roku Remote
|
||||
icon: mdi:remote-tv
|
||||
subview: true
|
||||
type: sections
|
||||
max_columns: 4
|
||||
badges: []
|
||||
sections:
|
||||
- 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(6, minmax(0, 1fr))
|
||||
grid-auto-flow: row
|
||||
grid-auto-rows: min-content
|
||||
align-items: stretch
|
||||
grid-gap: 10px
|
||||
margin: 0
|
||||
cards:
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_header
|
||||
name: Living Room Roku
|
||||
icon: mdi:television
|
||||
view_layout:
|
||||
grid-column: 1 / -1
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_control
|
||||
entity: media_player.living_room_ultra
|
||||
name: Raven
|
||||
icon: mdi:view-dashboard-outline
|
||||
show_state: false
|
||||
variables:
|
||||
status_severity: healthy
|
||||
view_layout:
|
||||
grid-column: 1 / -1
|
||||
tap_action:
|
||||
action: perform-action
|
||||
perform_action: rest_command.samsung_living_room_launch_haven
|
||||
hold_action:
|
||||
action: none
|
||||
double_tap_action:
|
||||
action: none
|
||||
|
||||
# Roku controls never send Samsung input or menu commands.
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_control
|
||||
entity: remote.living_room_ultra
|
||||
name: Roku Home
|
||||
icon: mdi:home-outline
|
||||
show_state: false
|
||||
variables:
|
||||
status_severity: active
|
||||
view_layout:
|
||||
grid-column: span 3
|
||||
tap_action:
|
||||
action: perform-action
|
||||
perform_action: remote.send_command
|
||||
target:
|
||||
entity_id: remote.living_room_ultra
|
||||
data:
|
||||
command: home
|
||||
hold_action:
|
||||
action: none
|
||||
double_tap_action:
|
||||
action: none
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_control
|
||||
entity: remote.living_room_ultra
|
||||
name: Options
|
||||
icon: mdi:dots-horizontal
|
||||
show_state: false
|
||||
variables:
|
||||
status_severity: active
|
||||
view_layout:
|
||||
grid-column: span 3
|
||||
tap_action:
|
||||
action: perform-action
|
||||
perform_action: remote.send_command
|
||||
target:
|
||||
entity_id: remote.living_room_ultra
|
||||
data:
|
||||
command: info
|
||||
hold_action:
|
||||
action: none
|
||||
double_tap_action:
|
||||
action: none
|
||||
|
||||
# Full-width Up and Down keep every touch target large without spacers.
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_control
|
||||
entity: remote.living_room_ultra
|
||||
name: Up
|
||||
icon: mdi:arrow-up-bold
|
||||
show_state: false
|
||||
variables:
|
||||
status_severity: active
|
||||
view_layout:
|
||||
grid-column: 1 / -1
|
||||
tap_action:
|
||||
action: perform-action
|
||||
perform_action: remote.send_command
|
||||
target:
|
||||
entity_id: remote.living_room_ultra
|
||||
data:
|
||||
command: up
|
||||
hold_action:
|
||||
action: none
|
||||
double_tap_action:
|
||||
action: none
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_control
|
||||
entity: remote.living_room_ultra
|
||||
name: Left
|
||||
icon: mdi:arrow-left-bold
|
||||
show_state: false
|
||||
variables:
|
||||
status_severity: active
|
||||
view_layout:
|
||||
grid-column: span 2
|
||||
tap_action:
|
||||
action: perform-action
|
||||
perform_action: remote.send_command
|
||||
target:
|
||||
entity_id: remote.living_room_ultra
|
||||
data:
|
||||
command: left
|
||||
hold_action:
|
||||
action: none
|
||||
double_tap_action:
|
||||
action: none
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_control
|
||||
entity: remote.living_room_ultra
|
||||
name: OK
|
||||
icon: mdi:check-bold
|
||||
show_state: false
|
||||
variables:
|
||||
status_severity: healthy
|
||||
view_layout:
|
||||
grid-column: span 2
|
||||
tap_action:
|
||||
action: perform-action
|
||||
perform_action: remote.send_command
|
||||
target:
|
||||
entity_id: remote.living_room_ultra
|
||||
data:
|
||||
command: select
|
||||
hold_action:
|
||||
action: none
|
||||
double_tap_action:
|
||||
action: none
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_control
|
||||
entity: remote.living_room_ultra
|
||||
name: Right
|
||||
icon: mdi:arrow-right-bold
|
||||
show_state: false
|
||||
variables:
|
||||
status_severity: active
|
||||
view_layout:
|
||||
grid-column: span 2
|
||||
tap_action:
|
||||
action: perform-action
|
||||
perform_action: remote.send_command
|
||||
target:
|
||||
entity_id: remote.living_room_ultra
|
||||
data:
|
||||
command: right
|
||||
hold_action:
|
||||
action: none
|
||||
double_tap_action:
|
||||
action: none
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_control
|
||||
entity: remote.living_room_ultra
|
||||
name: Down
|
||||
icon: mdi:arrow-down-bold
|
||||
show_state: false
|
||||
variables:
|
||||
status_severity: active
|
||||
view_layout:
|
||||
grid-column: 1 / -1
|
||||
tap_action:
|
||||
action: perform-action
|
||||
perform_action: remote.send_command
|
||||
target:
|
||||
entity_id: remote.living_room_ultra
|
||||
data:
|
||||
command: down
|
||||
hold_action:
|
||||
action: none
|
||||
double_tap_action:
|
||||
action: none
|
||||
|
||||
# Back exits Raven; playback controls act on the current Roku app.
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_control
|
||||
entity: remote.living_room_ultra
|
||||
name: Back
|
||||
icon: mdi:undo
|
||||
show_state: false
|
||||
variables:
|
||||
status_severity: active
|
||||
view_layout:
|
||||
grid-column: span 3
|
||||
tap_action:
|
||||
action: perform-action
|
||||
perform_action: remote.send_command
|
||||
target:
|
||||
entity_id: remote.living_room_ultra
|
||||
data:
|
||||
command: back
|
||||
hold_action:
|
||||
action: none
|
||||
double_tap_action:
|
||||
action: none
|
||||
|
||||
- type: custom:button-card
|
||||
template: bearstone_mobile_control
|
||||
entity: remote.living_room_ultra
|
||||
name: Play / Pause
|
||||
icon: mdi:play-pause
|
||||
show_state: false
|
||||
variables:
|
||||
status_severity: active
|
||||
view_layout:
|
||||
grid-column: span 3
|
||||
tap_action:
|
||||
action: perform-action
|
||||
perform_action: remote.send_command
|
||||
target:
|
||||
entity_id: remote.living_room_ultra
|
||||
data:
|
||||
command: play
|
||||
hold_action:
|
||||
action: none
|
||||
double_tap_action:
|
||||
action: none
|
||||
cards: []
|
||||
Loading…
Reference in new issue