Sanitized mirror from private repository - 2026-04-19 08:46:29 UTC
Some checks failed
Documentation / Build Docusaurus (push) Failing after 17m32s
Documentation / Deploy to GitHub Pages (push) Has been skipped

This commit is contained in:
Gitea Mirror Bot
2026-04-19 08:46:29 +00:00
commit 11d496f233
1439 changed files with 363180 additions and 0 deletions

View File

@@ -0,0 +1,165 @@
title: Bathroom
views:
- type: sections
title: Bathroom
path: bathroom
icon: mdi:shower
max_columns: 2
sections:
- type: grid
column_span: 1
cards:
- type: heading
icon: mdi:shower
heading: Bathroom
heading_style: title
- type: grid
columns: 3
square: false
cards:
- type: tile
entity: light.bathroom_light_1
name: Light 1
icon: mdi:lightbulb
vertical: true
features:
- type: light-brightness
- type: tile
entity: light.bathroom_light_2
name: Light 2
icon: mdi:lightbulb
vertical: true
features:
- type: light-brightness
- type: tile
entity: light.bathroom_light_3
name: Light 3
icon: mdi:lightbulb
vertical: true
features:
- type: light-brightness
- type: tile
entity: light.bathroom_light_4
name: Light 4
icon: mdi:lightbulb
vertical: true
features:
- type: light-brightness
- type: tile
entity: light.bathroom_light_5
name: Light 5
icon: mdi:lightbulb
vertical: true
features:
- type: light-brightness
- type: tile
entity: light.bathroom_light_6
name: Light 6
icon: mdi:lightbulb
vertical: true
features:
- type: light-brightness
- type: horizontal-stack
cards:
- type: button
name: All On
icon: mdi:lightbulb-group
tap_action:
action: call-service
service: light.turn_on
target:
entity_id:
- light.bathroom_light_1
- light.bathroom_light_2
- light.bathroom_light_3
- light.bathroom_light_4
- light.bathroom_light_5
- light.bathroom_light_6
- type: button
name: All Off
icon: mdi:lightbulb-group-off
tap_action:
action: call-service
service: light.turn_off
target:
entity_id:
- light.bathroom_light_1
- light.bathroom_light_2
- light.bathroom_light_3
- light.bathroom_light_4
- light.bathroom_light_5
- light.bathroom_light_6
- type: button
name: Relax
icon: mdi:bathtub
tap_action:
action: call-service
service: light.turn_on
data:
brightness_pct: 35
color_temp_kelvin: 2400
target:
entity_id:
- light.bathroom_light_1
- light.bathroom_light_2
- light.bathroom_light_3
- light.bathroom_light_4
- light.bathroom_light_5
- light.bathroom_light_6
- type: grid
column_span: 1
cards:
- type: heading
icon: mdi:chart-line
heading: Health
heading_style: title
- type: entities
title: Bulb Status
show_header_toggle: false
entities:
- entity: binary_sensor.bathroom_light_1_cloud_connection
name: Light 1 - Cloud
- entity: binary_sensor.bathroom_light_1_overheated
name: Light 1 - Overheat
- entity: binary_sensor.bathroom_light_2_cloud_connection
name: Light 2 - Cloud
- entity: binary_sensor.bathroom_light_2_overheated
name: Light 2 - Overheat
- entity: binary_sensor.bathroom_light_3_cloud_connection
name: Light 3 - Cloud
- entity: binary_sensor.bathroom_light_3_overheated
name: Light 3 - Overheat
- entity: binary_sensor.bathroom_light_4_cloud_connection
name: Light 4 - Cloud
- entity: binary_sensor.bathroom_light_4_overheated
name: Light 4 - Overheat
- entity: binary_sensor.bathroom_light_5_cloud_connection
name: Light 5 - Cloud
- entity: binary_sensor.bathroom_light_5_overheated
name: Light 5 - Overheat
- entity: binary_sensor.bathroom_light_6_cloud_connection
name: Light 6 - Cloud
- entity: binary_sensor.bathroom_light_6_overheated
name: Light 6 - Overheat
- type: entities
title: Signal Strength
show_header_toggle: false
entities:
- entity: sensor.bathroom_light_1_signal_level
- entity: sensor.bathroom_light_2_signal_level
- entity: sensor.bathroom_light_3_signal_level
- entity: sensor.bathroom_light_4_signal_level
- entity: sensor.bathroom_light_5_signal_level
- entity: sensor.bathroom_light_6_signal_level
- type: markdown
content: |
_Room has no dedicated motion/humidity sensors.
Consider adding a [Tapo T110](https://www.tapo.com) motion sensor
or an Aqara Zigbee multi-sensor once the GL-S200 Thread BR arrives._

View File

@@ -0,0 +1,386 @@
title: Bedroom
views:
- type: sections
title: Bedroom
path: bedroom
icon: mdi:bed
max_columns: 3
sections:
# ---- Lights ----
- type: grid
column_span: 1
cards:
- type: heading
icon: mdi:lightbulb-multiple
heading: Lights
heading_style: title
- type: tile
entity: light.vish_bedroom_light_1
name: Light 1
vertical: true
features:
- type: light-brightness
- type: light-color-temp
- type: tile
entity: light.vish_bedroom_light_2
name: Light 2
vertical: true
features:
- type: light-brightness
- type: light-color-temp
- type: tile
entity: light.vish_bedroom_light_3
name: Light 3
vertical: true
features:
- type: light-brightness
- type: light-color-temp
- type: horizontal-stack
cards:
- type: button
name: All On
icon: mdi:lightbulb-group
tap_action:
action: call-service
service: light.turn_on
target:
entity_id:
- light.vish_bedroom_light_1
- light.vish_bedroom_light_2
- light.vish_bedroom_light_3
- type: button
name: All Off
icon: mdi:lightbulb-group-off
tap_action:
action: call-service
service: light.turn_off
target:
entity_id:
- light.vish_bedroom_light_1
- light.vish_bedroom_light_2
- light.vish_bedroom_light_3
- type: horizontal-stack
cards:
- type: button
name: Read
icon: mdi:book-open-page-variant
tap_action:
action: call-service
service: light.turn_on
data:
brightness_pct: 80
color_temp_kelvin: 3500
target:
entity_id:
- light.vish_bedroom_light_1
- light.vish_bedroom_light_2
- light.vish_bedroom_light_3
- type: button
name: Sleep
icon: mdi:weather-night
tap_action:
action: call-service
service: light.turn_on
data:
brightness_pct: 8
color_temp_kelvin: 2200
target:
entity_id:
- light.vish_bedroom_light_1
- light.vish_bedroom_light_2
- light.vish_bedroom_light_3
# ---- Camera ----
- type: grid
column_span: 2
cards:
- type: heading
icon: mdi:cctv
heading: Bedroom Camera
heading_style: title
- type: picture-glance
title: Bedroom 4K
camera_view: live
camera_image: camera.vish_bedroom_camera_4k_hd_stream
entities:
- binary_sensor.vish_bedroom_camera_4k_motion_alarm
- binary_sensor.vish_bedroom_camera_4k_person_detection
- switch.vish_bedroom_camera_4k_privacy
- light.vish_bedroom_camera_4k_floodlight_timed
- siren.vish_bedroom_camera_4k_siren
- type: horizontal-stack
cards:
- type: button
name: Up
icon: mdi:arrow-up-bold
tap_action:
action: call-service
service: button.press
target:
entity_id: button.vish_bedroom_camera_4k_tilt_up
- type: button
name: Down
icon: mdi:arrow-down-bold
tap_action:
action: call-service
service: button.press
target:
entity_id: button.vish_bedroom_camera_4k_tilt_down
- type: button
name: Left
icon: mdi:arrow-left-bold
tap_action:
action: call-service
service: button.press
target:
entity_id: button.vish_bedroom_camera_4k_pan_left
- type: button
name: Right
icon: mdi:arrow-right-bold
tap_action:
action: call-service
service: button.press
target:
entity_id: button.vish_bedroom_camera_4k_pan_right
- type: heading
icon: mdi:cctv-off
heading: Detection
heading_style: subtitle
- type: grid
columns: 2
square: false
cards:
- type: tile
entity: switch.vish_bedroom_camera_4k_motion_detection
name: Motion
icon: mdi:motion-sensor
vertical: false
tap_action:
action: toggle
- type: tile
entity: switch.vish_bedroom_camera_4k_person_detection
name: Person
icon: mdi:account-search
vertical: false
tap_action:
action: toggle
- type: tile
entity: switch.vish_bedroom_camera_4k_privacy
name: Privacy
icon: mdi:eye-off
vertical: false
tap_action:
action: toggle
- type: tile
entity: select.vish_bedroom_camera_4k_night_vision
name: Night Vision
icon: mdi:weather-night
vertical: false
tap_action:
action: more-info
# ---- Media ----
- type: grid
column_span: 2
cards:
- type: heading
icon: mdi:cast
heading: Media
heading_style: title
- type: media-control
entity: media_player.tv_bedroom
- type: media-control
entity: media_player.bedroom_display
- type: media-control
entity: media_player.spotify_vish_khemraj
# ---- Sleep / Oura ----
- type: grid
column_span: 2
cards:
- type: heading
icon: mdi:ring
heading: Oura Ring
heading_style: title
# Hero scores
- type: horizontal-stack
cards:
- type: gauge
entity: sensor.oura_ring_sleep_score
name: Sleep
min: 0
max: 100
severity:
green: 85
yellow: 70
red: 0
needle: true
- type: gauge
entity: sensor.oura_ring_readiness_score
name: Readiness
min: 0
max: 100
severity:
green: 85
yellow: 70
red: 0
needle: true
- type: gauge
entity: sensor.oura_ring_activity_score
name: Activity
min: 0
max: 100
severity:
green: 85
yellow: 70
red: 0
needle: true
- type: gauge
entity: sensor.oura_ring_stress_resilience_score
name: Resilience
min: 0
max: 100
severity:
green: 70
yellow: 50
red: 0
needle: true
# Sleep breakdown
- type: entities
title: Last Night
show_header_toggle: false
state_color: true
entities:
- entity: sensor.oura_ring_total_sleep_duration
name: Total Sleep
icon: mdi:bed-clock
- entity: sensor.oura_ring_deep_sleep_duration
name: Deep
icon: mdi:water
- entity: sensor.oura_ring_rem_sleep_duration
name: REM
icon: mdi:eye
- entity: sensor.oura_ring_light_sleep_duration
name: Light
icon: mdi:weather-sunset
- entity: sensor.oura_ring_awake_time
name: Awake
icon: mdi:eye-outline
- entity: sensor.oura_ring_sleep_efficiency
name: Efficiency
icon: mdi:percent
- entity: sensor.oura_ring_bedtime_start
name: Bedtime
icon: mdi:clock-start
- entity: sensor.oura_ring_bedtime_end
name: Wake
icon: mdi:clock-end
# Trends
- type: history-graph
title: Sleep & Readiness (14d)
hours_to_show: 336
entities:
- entity: sensor.oura_ring_sleep_score
- entity: sensor.oura_ring_readiness_score
- type: history-graph
title: HRV & Resting HR (14d)
hours_to_show: 336
entities:
- entity: sensor.oura_ring_average_sleep_hrv
- entity: sensor.oura_ring_lowest_sleep_heart_rate
# Vitals + activity
- type: horizontal-stack
cards:
- type: tile
entity: sensor.oura_ring_average_sleep_hrv
name: Avg HRV
icon: mdi:heart-pulse
- type: tile
entity: sensor.oura_ring_lowest_sleep_heart_rate
name: Low HR
icon: mdi:heart
- type: tile
entity: sensor.oura_ring_temperature_deviation
name: Temp Δ
icon: mdi:thermometer
- type: tile
entity: sensor.oura_ring_vo2_max
name: VO₂ Max
icon: mdi:lungs
- type: horizontal-stack
cards:
- type: tile
entity: sensor.oura_ring_steps
name: Steps
icon: mdi:shoe-print
- type: tile
entity: sensor.oura_ring_active_calories
name: Active Cal
icon: mdi:fire
- type: tile
entity: sensor.oura_ring_cardiovascular_age
name: CV Age
icon: mdi:heart-cog
- type: tile
entity: binary_sensor.oura_ring_rest_mode
name: Rest Mode
icon: mdi:sleep
- type: conditional
conditions:
- condition: state
entity: sensor.oura_ring_low_battery_alert
state: "on"
card:
type: tile
entity: sensor.oura_ring_low_battery_alert
name: Ring Battery Low
icon: mdi:battery-alert
# ---- Power / Environment ----
- type: grid
column_span: 1
cards:
- type: heading
icon: mdi:flash
heading: Guava Power
heading_style: title
- type: tile
entity: switch.guava_energy
name: Guava (TrueNAS) Plug
icon: mdi:server-network
vertical: true
tap_action:
action: toggle
- type: entities
show_header_toggle: false
entities:
- entity: sensor.guava_energy_current_consumption
name: Power Now
- entity: sensor.guava_energy_today_s_consumption
name: Today
- entity: sensor.guava_energy_this_month_s_consumption
name: This Month
- entity: sensor.guava_energy_voltage
name: Voltage
- entity: sensor.guava_energy_current
name: Current

View File

@@ -0,0 +1,153 @@
title: Cameras
views:
- type: sections
title: Live
path: live
icon: mdi:cctv
max_columns: 2
sections:
- type: grid
column_span: 1
cards:
- type: heading
icon: mdi:bed
heading: Bedroom 4K
heading_style: title
- type: picture-glance
title: Bedroom - HD
camera_view: live
camera_image: camera.vish_bedroom_camera_4k_hd_stream
entities:
- binary_sensor.vish_bedroom_camera_4k_motion_alarm
- binary_sensor.vish_bedroom_camera_4k_person_detection
- switch.vish_bedroom_camera_4k_privacy
- light.vish_bedroom_camera_4k_floodlight_timed
- type: horizontal-stack
cards:
- type: button
icon: mdi:arrow-up-bold
tap_action:
action: call-service
service: button.press
target:
entity_id: button.vish_bedroom_camera_4k_tilt_up
- type: button
icon: mdi:arrow-down-bold
tap_action:
action: call-service
service: button.press
target:
entity_id: button.vish_bedroom_camera_4k_tilt_down
- type: button
icon: mdi:arrow-left-bold
tap_action:
action: call-service
service: button.press
target:
entity_id: button.vish_bedroom_camera_4k_pan_left
- type: button
icon: mdi:arrow-right-bold
tap_action:
action: call-service
service: button.press
target:
entity_id: button.vish_bedroom_camera_4k_pan_right
- type: heading
icon: mdi:cctv-off
heading: Detection Settings
heading_style: subtitle
- type: grid
columns: 2
square: false
cards:
- type: tile
entity: switch.vish_bedroom_camera_4k_motion_detection
name: Motion
icon: mdi:motion-sensor
tap_action:
action: toggle
- type: tile
entity: switch.vish_bedroom_camera_4k_person_detection
name: Person
icon: mdi:account-search
tap_action:
action: toggle
- type: tile
entity: switch.vish_bedroom_camera_4k_privacy
name: Privacy
icon: mdi:eye-off
tap_action:
action: toggle
- type: tile
entity: select.vish_bedroom_camera_4k_night_vision
name: Night Vision
icon: mdi:weather-night
tap_action:
action: more-info
- type: tile
entity: select.vish_bedroom_camera_4k_patrol_mode
name: Patrol
icon: mdi:shield-search
tap_action:
action: more-info
- type: grid
column_span: 1
cards:
- type: heading
icon: mdi:sofa
heading: Living Room
heading_style: title
- type: picture-glance
title: Living Room
camera_view: live
camera_image: camera.192_168_69_116
entities: []
- type: heading
icon: mdi:home-outline
heading: Other Cameras
heading_style: subtitle
- type: picture-glance
title: Camera (192.168.68.67)
camera_view: live
camera_image: camera.192_168_68_67
entities: []
- type: conditional
conditions:
- condition: state
entity: camera.192_168_12_155
state_not: unavailable
card:
type: picture-glance
title: Hawaii Camera
camera_view: live
camera_image: camera.192_168_12_155
entities: []
- type: sections
title: Events
path: events
icon: mdi:motion-sensor
sections:
- type: grid
cards:
- type: heading
icon: mdi:motion-sensor
heading: Recent Motion
heading_style: title
- type: logbook
hours_to_show: 24
entities:
- binary_sensor.vish_bedroom_camera_4k_motion_alarm
- binary_sensor.vish_bedroom_camera_4k_person_detection
- binary_sensor.vish_bedroom_camera_4k_cell_motion_detection

View File

@@ -0,0 +1,10 @@
title: Crista
views:
- title: crista.love
path: crista
type: panel
icon: mdi:heart
cards:
- type: iframe
url: https://crista.love
aspect_ratio: "100%"

View File

@@ -0,0 +1,349 @@
title: Home
views:
- type: sections
title: Home
path: home
icon: mdi:home
max_columns: 3
sections:
# ---- Greeting + presence ----
- type: grid
column_span: 3
cards:
- type: custom:mushroom-template-card
primary: >-
{% set t = now().hour %}
{% if t < 5 %}Good night, Vish
{% elif t < 12 %}Good morning, Vish
{% elif t < 17 %}Good afternoon, Vish
{% elif t < 21 %}Good evening, Vish
{% else %}Good night, Vish{% endif %}
secondary: >-
{{ as_timestamp(now()) | timestamp_custom('%A, %B %-d • %-I:%M %p') }}
icon: mdi:home-heart
icon_color: >-
{% set t = now().hour %}
{% if t < 6 or t > 20 %}indigo
{% elif t < 10 %}amber
{% elif t < 17 %}blue
{% else %}deep-orange{% endif %}
tap_action:
action: none
- type: custom:mushroom-chips-card
alignment: center
chips:
- type: entity
entity: weather.forecast_home
icon_color: blue
tap_action:
action: more-info
- type: entity
entity: sensor.oura_ring_readiness_score
name: Readiness
icon: mdi:ring
icon_color: green
content_info: state
tap_action:
action: more-info
- type: entity
entity: sensor.oura_ring_sleep_score
name: Sleep
icon: mdi:sleep
icon_color: indigo
content_info: state
- type: entity
entity: sensor.atlantis
name: Plex
icon: mdi:plex
icon_color: orange
content_info: state
- type: entity
entity: sensor.adguard_home_dns_queries_blocked_ratio
name: AdGuard
icon: mdi:shield-check
icon_color: teal
content_info: state
- type: entity
entity: sensor.speedtest_download
icon: mdi:download-network
icon_color: cyan
content_info: state
# ---- Persons ----
- type: grid
column_span: 1
cards:
- type: heading
icon: mdi:account-multiple
heading: People
heading_style: title
- type: custom:mushroom-person-card
entity: person.vish
layout: horizontal
primary_info: name
secondary_info: state
icon_type: entity-picture
- type: custom:mushroom-person-card
entity: person.crista
layout: horizontal
primary_info: name
secondary_info: state
icon_type: entity-picture
# ---- Weather hero ----
- type: grid
column_span: 1
cards:
- type: heading
icon: mdi:weather-partly-cloudy
heading: Weather
heading_style: title
- type: weather-forecast
entity: weather.forecast_home
forecast_type: daily
# ---- Oura hero ----
- type: grid
column_span: 1
cards:
- type: heading
icon: mdi:ring
heading: Oura Today
heading_style: title
- type: horizontal-stack
cards:
- type: gauge
entity: sensor.oura_ring_readiness_score
name: Ready
min: 0
max: 100
needle: true
severity:
green: 85
yellow: 70
red: 0
- type: gauge
entity: sensor.oura_ring_sleep_score
name: Sleep
min: 0
max: 100
needle: true
severity:
green: 85
yellow: 70
red: 0
- type: custom:mushroom-template-card
primary: "Slept {{ states('sensor.oura_ring_total_sleep_duration') }} hrs"
secondary: >-
HRV {{ states('sensor.oura_ring_average_sleep_hrv') }} •
HR {{ states('sensor.oura_ring_lowest_sleep_heart_rate') }}
icon: mdi:bed-clock
icon_color: indigo
# ---- Rooms nav ----
- type: grid
column_span: 3
cards:
- type: heading
icon: mdi:floor-plan
heading: Rooms
heading_style: title
- type: grid
columns: 5
square: false
cards:
- type: custom:mushroom-template-card
primary: Living Room
secondary: >-
{% set lights = [] %}
{% if states('media_player.tv_living_room') != 'off' %}TV on{% else %}{{ states('sensor.speedtest_download') }} Mbps ↓{% endif %}
icon: mdi:sofa
icon_color: >-
{% if states('media_player.tv_living_room') not in ['off','standby','unavailable'] %}deep-orange{% else %}grey{% endif %}
tap_action:
action: navigate
navigation_path: /living-room/living-room
- type: custom:mushroom-template-card
primary: Kitchen
secondary: >-
{% set lights = ['light.kitchen_above_sink','light.kitchen_light_1','light.kitchen_light_2','light.kitchen_light_3','light.kitchen_light_4'] %}
{% set on = lights | select('is_state','on') | list | count %}
{{ on }}/{{ lights|count }} lights on
icon: mdi:stove
icon_color: >-
{% set lights = ['light.kitchen_above_sink','light.kitchen_light_1','light.kitchen_light_2','light.kitchen_light_3','light.kitchen_light_4'] %}
{% set on = lights | select('is_state','on') | list | count %}
{% if on > 0 %}amber{% else %}grey{% endif %}
tap_action:
action: navigate
navigation_path: /kitchen-view/kitchen
- type: custom:mushroom-template-card
primary: Bathroom
secondary: >-
{% set lights = ['light.bathroom_light_1','light.bathroom_light_2','light.bathroom_light_3','light.bathroom_light_4','light.bathroom_light_5','light.bathroom_light_6'] %}
{% set on = lights | select('is_state','on') | list | count %}
{{ on }}/{{ lights|count }} lights on
icon: mdi:shower
icon_color: >-
{% set lights = ['light.bathroom_light_1','light.bathroom_light_2','light.bathroom_light_3','light.bathroom_light_4','light.bathroom_light_5','light.bathroom_light_6'] %}
{% set on = lights | select('is_state','on') | list | count %}
{% if on > 0 %}amber{% else %}grey{% endif %}
tap_action:
action: navigate
navigation_path: /bathroom-view/bathroom
- type: custom:mushroom-template-card
primary: Bedroom
secondary: >-
{% set lights = ['light.vish_bedroom_light_1','light.vish_bedroom_light_2','light.vish_bedroom_light_3'] %}
{% set on = lights | select('is_state','on') | list | count %}
{{ on }}/{{ lights|count }} • {{ states('switch.guava_energy') }} plug
icon: mdi:bed
icon_color: >-
{% set lights = ['light.vish_bedroom_light_1','light.vish_bedroom_light_2','light.vish_bedroom_light_3'] %}
{% set on = lights | select('is_state','on') | list | count %}
{% if on > 0 %}amber{% else %}purple{% endif %}
tap_action:
action: navigate
navigation_path: /bedroom-view/bedroom
- type: custom:mushroom-template-card
primary: Cameras
secondary: >-
{% if is_state('binary_sensor.vish_bedroom_camera_4k_motion_alarm','on') %}⚠ Motion
{% elif is_state('switch.vish_bedroom_camera_4k_privacy','on') %}Privacy on
{% else %}Armed{% endif %}
icon: mdi:cctv
icon_color: >-
{% if is_state('binary_sensor.vish_bedroom_camera_4k_motion_alarm','on') %}red
{% elif is_state('switch.vish_bedroom_camera_4k_privacy','on') %}grey
{% else %}teal{% endif %}
tap_action:
action: navigate
navigation_path: /cameras-view/live
# ---- Quick actions / scenes ----
- type: grid
column_span: 2
cards:
- type: heading
icon: mdi:flash
heading: Quick Actions
heading_style: title
- type: grid
columns: 4
square: true
cards:
- type: custom:mushroom-template-card
primary: Goodnight
icon: mdi:moon-waxing-crescent
icon_color: indigo
tap_action:
action: call-service
service: light.turn_off
data: {}
target:
entity_id:
- light.kitchen_above_sink
- light.kitchen_light_1
- light.kitchen_light_2
- light.kitchen_light_3
- light.kitchen_light_4
- light.bathroom_light_1
- light.bathroom_light_2
- light.bathroom_light_3
- light.bathroom_light_4
- light.bathroom_light_5
- light.bathroom_light_6
- type: custom:mushroom-template-card
primary: All Lights Off
icon: mdi:lightbulb-off
icon_color: grey
tap_action:
action: call-service
service: light.turn_off
data:
entity_id: all
- type: custom:mushroom-template-card
primary: Bedtime Dim
icon: mdi:bed
icon_color: purple
tap_action:
action: call-service
service: light.turn_on
data:
brightness_pct: 10
color_temp_kelvin: 2200
target:
entity_id:
- light.vish_bedroom_light_1
- light.vish_bedroom_light_2
- light.vish_bedroom_light_3
- type: custom:mushroom-template-card
primary: Movie Mode
icon: mdi:movie-open
icon_color: deep-orange
tap_action:
action: call-service
service: light.turn_on
data:
brightness_pct: 15
color_temp_kelvin: 2500
target:
entity_id:
- light.kitchen_above_sink
- light.kitchen_light_1
- light.kitchen_light_2
- light.kitchen_light_3
- light.kitchen_light_4
# ---- Homelab strip ----
- type: grid
column_span: 1
cards:
- type: heading
icon: mdi:server
heading: Homelab
heading_style: title
- type: custom:mushroom-chips-card
alignment: start
chips:
- type: entity
entity: sensor.sonarr_wanted
icon: mdi:television-classic
icon_color: blue
content_info: state
- type: entity
entity: sensor.radarr_missing
icon: mdi:filmstrip
icon_color: orange
content_info: state
- type: entity
entity: sensor.sabnzbd_speed
icon: mdi:download
icon_color: cyan
content_info: state
- type: entity
entity: sensor.bazarr_badges
icon: mdi:subtitles
icon_color: purple
content_info: state
- type: custom:mushroom-template-card
primary: Library Totals
secondary: >-
{{ states('sensor.sonarr_shows') }} series •
{{ states('sensor.radarr_movies_2') }} movies •
{{ states('sensor.audiobookshelf_ebooks') }} ebooks
icon: mdi:library-shelves
icon_color: green
tap_action:
action: navigate
navigation_path: /homelab-view/homelab

View File

@@ -0,0 +1,310 @@
title: Homelab
views:
- type: sections
title: Homelab
path: homelab
icon: mdi:server
max_columns: 3
sections:
# ---- Calendar (Baikal via CalDAV) ----
- type: grid
column_span: 2
cards:
- type: heading
icon: mdi:calendar-month
heading: Calendar
heading_style: title
- type: custom:calendar-card-pro
entities:
- entity: calendar.vish
color: "#a78bfa"
- entity: calendar.radarr
color: "#f59e0b"
days_to_show: 14
max_events_to_show: 20
show_past_events: false
compact_mode: false
# ---- Media / arr suite ----
- type: grid
column_span: 1
cards:
- type: heading
icon: mdi:play-circle
heading: Media Stack
heading_style: title
- type: tile
entity: sensor.atlantis
name: Plex - Now Playing
icon: mdi:plex
tap_action:
action: more-info
- type: horizontal-stack
cards:
- type: tile
entity: sensor.atlantis_library_movies
name: Movies
icon: mdi:movie-open
- type: tile
entity: sensor.atlantis_library_tv_shows
name: TV Shows
icon: mdi:television-classic
- type: horizontal-stack
cards:
- type: tile
entity: sensor.atlantis_library_anime
name: Anime
icon: mdi:sword-cross
- type: tile
entity: sensor.atlantis_library_music
name: Music
icon: mdi:music
- type: tile
entity: sensor.atlantis_library_other_videos
name: Other
icon: mdi:video-vintage
- type: horizontal-stack
cards:
- type: tile
entity: sensor.sonarr_queue_2
name: Sonarr Queue
icon: mdi:television-classic
tap_action:
action: url
url_path: http://100.83.230.112:8989
- type: tile
entity: sensor.radarr_queue_2
name: Radarr Queue
icon: mdi:filmstrip
tap_action:
action: url
url_path: http://100.83.230.112:7878
- type: horizontal-stack
cards:
- type: tile
entity: sensor.sonarr_shows
name: Series
icon: mdi:television-box
- type: tile
entity: sensor.radarr_movies_2
name: Movies
icon: mdi:movie-open
- type: horizontal-stack
cards:
- type: tile
entity: sensor.sonarr_upcoming
name: Upcoming
icon: mdi:calendar-clock
- type: tile
entity: sensor.sonarr_wanted
name: Sonarr Wanted
icon: mdi:television-off
- type: horizontal-stack
cards:
- type: tile
entity: sensor.bazarr_badges
name: Bazarr Missing
icon: mdi:subtitles
tap_action:
action: url
url_path: http://100.83.230.112:6767
- type: tile
entity: sensor.prowlarr_indexers
name: Prowlarr
icon: mdi:magnify
tap_action:
action: url
url_path: http://100.83.230.112:9696
# ---- Downloads ----
- type: grid
column_span: 1
cards:
- type: heading
icon: mdi:download
heading: Downloads
heading_style: title
- type: tile
entity: sensor.sabnzbd_speed
name: SABnzbd Speed
icon: mdi:download-network
tap_action:
action: url
url_path: http://100.83.230.112:8080
- type: tile
entity: sensor.sabnzbd_queue
name: SAB Queue
icon: mdi:tray-full
- type: entities
title: SAB Details
show_header_toggle: false
entities:
- entity: sensor.sabnzbd_status
name: Status
icon: mdi:information-outline
- entity: sensor.sabnzbd_left_to_download
name: Left to Download
icon: mdi:download
- entity: sensor.sabnzbd_queue_count
name: Queue Size
icon: mdi:tray-full
- entity: sensor.sabnzbd_free_disk_space
name: Disk Free
icon: mdi:harddisk-plus
- entity: sensor.sabnzbd_daily_total
name: Today
icon: mdi:calendar-today
- type: horizontal-stack
cards:
- type: button
entity: button.sabnzbd_pause
name: Pause
icon: mdi:pause
tap_action:
action: call-service
service: button.press
target:
entity_id: button.sabnzbd_pause
- type: button
entity: button.sabnzbd_resume
name: Resume
icon: mdi:play
tap_action:
action: call-service
service: button.press
target:
entity_id: button.sabnzbd_resume
# ---- Books ----
- type: grid
column_span: 1
cards:
- type: heading
icon: mdi:book-open-page-variant
heading: Books & Audiobooks
heading_style: title
- type: tile
entity: sensor.audiobookshelf_ebooks
name: Ebooks
icon: mdi:book-open-variant
tap_action:
action: url
url_path: http://100.83.230.112:13378
- type: tile
entity: sensor.audiobookshelf_audiobooks
name: Audiobooks
icon: mdi:headphones
- type: tile
entity: sensor.lazylibrarian_wanted_books
name: LazyLib Wanted
icon: mdi:book-clock
tap_action:
action: url
url_path: http://100.83.230.112:5299
- type: tile
entity: sensor.lazylibrarian_version
name: LazyLib Version
icon: mdi:tag
# ---- Quick launch (one-tap links) ----
- type: grid
column_span: 2
cards:
- type: heading
icon: mdi:rocket-launch
heading: Quick Launch
heading_style: title
- type: grid
columns: 4
square: true
cards:
- type: button
name: Plex
icon: mdi:plex
tap_action:
action: url
url_path: https://app.plex.tv
- type: button
name: Sonarr
icon: mdi:television-classic
tap_action:
action: url
url_path: http://100.83.230.112:8989
- type: button
name: Radarr
icon: mdi:filmstrip
tap_action:
action: url
url_path: http://100.83.230.112:7878
- type: button
name: Bazarr
icon: mdi:subtitles
tap_action:
action: url
url_path: http://100.83.230.112:6767
- type: button
name: Prowlarr
icon: mdi:magnify
tap_action:
action: url
url_path: http://100.83.230.112:9696
- type: button
name: SABnzbd
icon: mdi:download
tap_action:
action: url
url_path: http://100.83.230.112:8080
- type: button
name: LazyLib
icon: mdi:book-clock
tap_action:
action: url
url_path: http://100.83.230.112:5299
- type: button
name: ABS
icon: mdi:headphones
tap_action:
action: url
url_path: http://100.83.230.112:13378
- type: button
name: Portainer
icon: mdi:docker
tap_action:
action: url
url_path: https://pt.vish.gg
- type: button
name: Gitea
icon: mdi:git
tap_action:
action: url
url_path: https://git.vish.gg
- type: button
name: Homarr
icon: mdi:view-dashboard
tap_action:
action: url
url_path: https://homarr.vish.gg
- type: button
name: Homelab UI
icon: mdi:home-analytics
tap_action:
action: url
url_path: http://homelab.tail.vish.gg:3100

View File

@@ -0,0 +1,10 @@
title: Homelab Web
views:
- title: Dashboard
path: web
type: panel
icon: mdi:home-analytics
cards:
- type: iframe
url: http://homelab.tail.vish.gg:3100
aspect_ratio: "100%"

View File

@@ -0,0 +1,161 @@
title: Kitchen
views:
- type: sections
title: Kitchen
path: kitchen
icon: mdi:stove
max_columns: 3
sections:
- type: grid
column_span: 2
cards:
- type: heading
icon: mdi:stove
heading: Kitchen
heading_style: title
- type: tile
entity: light.kitchen_above_sink
name: Above Sink
icon: mdi:ceiling-light
vertical: true
features_position: bottom
features:
- type: light-brightness
tap_action:
action: toggle
- type: grid
columns: 2
square: false
cards:
- type: tile
entity: light.kitchen_light_1
name: Light 1
icon: mdi:ceiling-light
vertical: true
features:
- type: light-brightness
- type: tile
entity: light.kitchen_light_2
name: Light 2
icon: mdi:ceiling-light
vertical: true
features:
- type: light-brightness
- type: tile
entity: light.kitchen_light_3
name: Light 3
icon: mdi:ceiling-light
vertical: true
features:
- type: light-brightness
- type: tile
entity: light.kitchen_light_4
name: Light 4
icon: mdi:ceiling-light
vertical: true
features:
- type: light-brightness
- type: horizontal-stack
cards:
- type: button
name: All On
icon: mdi:lightbulb-group
tap_action:
action: call-service
service: light.turn_on
target:
entity_id:
- light.kitchen_above_sink
- light.kitchen_light_1
- light.kitchen_light_2
- light.kitchen_light_3
- light.kitchen_light_4
- type: button
name: All Off
icon: mdi:lightbulb-group-off
tap_action:
action: call-service
service: light.turn_off
target:
entity_id:
- light.kitchen_above_sink
- light.kitchen_light_1
- light.kitchen_light_2
- light.kitchen_light_3
- light.kitchen_light_4
- type: button
name: Cooking
icon: mdi:chef-hat
tap_action:
action: call-service
service: light.turn_on
data:
brightness_pct: 100
color_temp_kelvin: 4000
target:
entity_id:
- light.kitchen_above_sink
- light.kitchen_light_1
- light.kitchen_light_2
- light.kitchen_light_3
- light.kitchen_light_4
- type: button
name: Dim
icon: mdi:weather-night
tap_action:
action: call-service
service: light.turn_on
data:
brightness_pct: 20
color_temp_kelvin: 2700
target:
entity_id:
- light.kitchen_above_sink
- light.kitchen_light_1
- light.kitchen_light_2
- light.kitchen_light_3
- light.kitchen_light_4
- type: grid
column_span: 1
cards:
- type: heading
icon: mdi:chart-line
heading: Health
heading_style: title
- type: entities
title: Bulb Status
show_header_toggle: false
entities:
- entity: binary_sensor.kitchen_above_sink_cloud_connection
name: Above Sink - Cloud
- entity: binary_sensor.kitchen_above_sink_overheated
name: Above Sink - Overheat
- entity: binary_sensor.kitchen_light_1_cloud_connection
name: Light 1 - Cloud
- entity: binary_sensor.kitchen_light_2_cloud_connection
name: Light 2 - Cloud
- entity: binary_sensor.kitchen_light_3_cloud_connection
name: Light 3 - Cloud
- entity: binary_sensor.kitchen_light_4_cloud_connection
name: Light 4 - Cloud
- type: entities
title: Signal Strength
show_header_toggle: false
entities:
- entity: sensor.kitchen_above_sink_signal_level
name: Above Sink
- entity: sensor.kitchen_light_1_signal_level
name: Light 1
- entity: sensor.kitchen_light_2_signal_level
name: Light 2
- entity: sensor.kitchen_light_3_signal_level
name: Light 3
- entity: sensor.kitchen_light_4_signal_level
name: Light 4

View File

@@ -0,0 +1,227 @@
title: Living Room
views:
- type: sections
title: Living Room
path: living-room
icon: mdi:sofa
max_columns: 3
sections:
# ---- Weather ----
- type: grid
column_span: 1
cards:
- type: heading
icon: mdi:weather-partly-cloudy
heading: Weather
heading_style: title
- type: weather-forecast
entity: weather.forecast_home
forecast_type: daily
show_current: true
show_forecast: true
- type: weather-forecast
entity: weather.forecast_home
forecast_type: hourly
show_current: false
show_forecast: true
# ---- Media ----
- type: grid
column_span: 2
cards:
- type: heading
icon: mdi:television
heading: Media
heading_style: title
- type: media-control
entity: media_player.tv_living_room
- type: horizontal-stack
cards:
- type: button
icon: mdi:spotify
name: Spotify
tap_action:
action: navigate
navigation_path: /bedroom-yaml/bedroom
- type: button
icon: mdi:cast
name: Cast Hub
tap_action:
action: more-info
entity: media_player.tv_living_room
- type: button
icon: mdi:remote-tv
name: TV Power
tap_action:
action: call-service
service: media_player.toggle
target:
entity_id: media_player.tv_living_room
- type: picture-glance
title: Living Room Camera
camera_view: live
camera_image: camera.192_168_69_116
entities: []
# ---- Security / Hub ----
- type: grid
column_span: 1
cards:
- type: heading
icon: mdi:security
heading: Hub & Alarm
heading_style: title
- type: tile
entity: siren.hub_wired
name: Hub Siren
icon: mdi:alarm-light
vertical: true
tap_action:
action: toggle
- type: entities
title: Hub
show_header_toggle: false
entities:
- entity: switch.hub_wired_led
name: Hub LED
- entity: select.hub_wired_alarm_sound
name: Alarm Sound
# ---- Network health ----
- type: grid
column_span: 2
cards:
- type: heading
icon: mdi:wifi
heading: Network
heading_style: title
- type: horizontal-stack
cards:
- type: gauge
entity: sensor.speedtest_download
name: Download
unit: Mbps
min: 0
max: 1000
severity:
green: 300
yellow: 100
red: 0
- type: gauge
entity: sensor.speedtest_upload
name: Upload
unit: Mbps
min: 0
max: 500
severity:
green: 100
yellow: 30
red: 0
- type: gauge
entity: sensor.speedtest_ping
name: Ping
unit: ms
min: 0
max: 100
severity:
green: 0
yellow: 30
red: 60
needle: true
- type: history-graph
title: Download / Upload (24h)
hours_to_show: 24
entities:
- entity: sensor.speedtest_download
- entity: sensor.speedtest_upload
- type: entities
title: Deco Mesh
show_header_toggle: false
entities:
- entity: binary_sensor.living_room_deco_internet_online
name: Living Room Deco - Internet
- entity: binary_sensor.living_room_deco_deco_online
name: Living Room Deco - Online
- entity: binary_sensor.main_bedroom_deco_deco_online
name: Main Bedroom Deco
- entity: binary_sensor.kevins_room_deco_deco_online
name: Kevin's Room Deco
# ---- Electricity (PG&E) ----
- type: grid
column_span: 2
cards:
- type: heading
icon: mdi:flash
heading: Electricity (PG&E)
heading_style: title
- type: horizontal-stack
cards:
- type: tile
entity: sensor.current_bill_electric_usage_to_date
name: Usage So Far
icon: mdi:meter-electric
- type: tile
entity: sensor.current_bill_electric_forecasted_usage
name: Forecasted Usage
icon: mdi:chart-line-variant
- type: tile
entity: sensor.typical_monthly_electric_usage
name: Typical
icon: mdi:calendar-month
- type: horizontal-stack
cards:
- type: tile
entity: sensor.current_bill_electric_cost_to_date
name: Cost So Far
icon: mdi:currency-usd
- type: tile
entity: sensor.current_bill_electric_forecasted_cost
name: Forecast
icon: mdi:cash-multiple
- type: tile
entity: sensor.typical_monthly_electric_cost
name: Typical Cost
icon: mdi:cash-clock
# ---- AdGuard ----
- type: grid
column_span: 1
cards:
- type: heading
icon: mdi:shield-check
heading: AdGuard
heading_style: title
- type: tile
entity: switch.adguard_home_protection
name: Protection
icon: mdi:shield
- type: entities
title: Today
show_header_toggle: false
entities:
- entity: sensor.adguard_home_dns_queries
name: DNS Queries
- entity: sensor.adguard_home_dns_queries_blocked
name: Blocked
- entity: sensor.adguard_home_dns_queries_blocked_ratio
name: Block Ratio
- entity: sensor.adguard_home_safe_browsing_blocked
name: Safe Browsing
- entity: sensor.adguard_home_rules_count
name: Rules