Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- button_card_templates:
- navbar:
- show_icon: true
- show_name: true
- show_state: true
- layout: vertical
- styles:
- card:
- - background: var(--card-background-color)
- - border-radius: 16px
- - box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.2)
- - padding: 16px
- - margin: 8px
- - color: var(--primary-text-color)
- - text-align: center
- name:
- - font-weight: bold
- - font-size: 16px
- - margin-bottom: 4px
- state:
- - font-size: 14px
- - color: var(--secondary-text-color)
- icon:
- - width: 28px
- - height: 28px
- views:
- - title: Home
- icon: mdi:home
- type: sections
- cards: []
- sections:
- - type: grid
- cards:
- - type: custom:mod-card
- card:
- type: vertical-stack
- cards:
- - type: custom:clock-weather-card
- entity: weather.forecast_home
- card_mod:
- style: |
- ha-card {
- background: none;
- box-shadow: none;
- }
- - type: custom:mini-graph-card
- name: Last Week's Temperature Summary
- entities:
- - entity: sensor.kckv_temperature
- aggregate_func: max
- name: Max
- color: '#20fa5a'
- fill: false
- - entity: sensor.kckv_temperature
- aggregate_func: min
- name: Min
- color: '#ffd991'
- fill: false
- - entity: sensor.kckv_temperature
- aggregate_func: avg
- name: Avg
- color: '#11c4fa'
- fill: false
- name_adaptive_color: true
- state_adaptive_color: true
- icon_adaptive_color: true
- hours_to_show: 168
- group_by: date
- align_state: center
- line_width: 3
- align_icon: left
- font_size_header: 16
- animate: true
- show:
- name_adaptive_color: true
- icon_adaptive_color: true
- state_adaptive_color: true
- icon: false
- legend: true
- fill: false
- card_mod:
- style: |
- ha-card {
- background: none;
- box-shadow: none;
- }
- .header {
- justify-content: center !important;
- text-align: center !important;
- }
- style: |
- ha-card {
- background: rgba(30, 30, 30, 0.2);
- border-radius: 16px;
- box-shadow: none;
- padding: 16px;
- }
- - type: custom:mini-graph-card
- entities:
- - entity: sensor.total_sleep_0d_ago
- show_state: true
- name: Total Sleep
- color: '#885ce7'
- fill: false
- - entity: sensor.deep_sleep_0d_ago
- name: Deep Sleep
- color: '#00b894'
- fill: false
- - entity: sensor.light_sleep_0d_ago
- name: Light Sleep
- color: '#e17055'
- fill: false
- - entity: sensor.rem_sleep_0d_ago
- name: REM Sleep
- color: '#0984e3'
- fill: false
- - entity: sensor.time_in_bed_0d_ago
- name: Time In Bed
- color: '#d92877'
- fill: false
- name: Weekly Sleep Summary
- hours_to_show: 168
- points_per_hour: 6
- group_by: date
- align_icon: left
- height: 150
- align_state: center
- font_size_header: 20
- line_width: 4
- animate: true
- show:
- fill: false
- state: last
- name_adaptive_color: true
- state_adaptive_color: true
- icon_adaptive_color: true
- legend: true
- extrema: true
- labels_secondary: true
- labels: false
- - type: horizontal-stack
- cards:
- - type: custom:button-card
- entity: sensor.iphone_battery_level
- unit_of_measurement: '%'
- device_class: battery
- icon: mdi:cellphone
- name: iPhone
- styles:
- card:
- - height: 90px
- icon:
- - color: |
- [[[
- if (entity.state < 30) return '#d94348';
- if ((entity.state >= 30) && (entity.state < 80)) return '#e0b558'
- if (entity.state >= 80) return '#58e081';
- ]]]
- name:
- - color: |
- [[[
- if (entity.state < 30) return '#d94348';
- if ((entity.state >= 30) && (entity.state < 80)) return '#e0b558'
- if (entity.state >= 80) return '#58e081';
- ]]]
- state:
- - color: |
- [[[
- if (entity.state < 30) return '#858179';
- if ((entity.state >= 30) && (entity.state < 80)) return '#858179'
- if (entity.state >= 80) return '#58e081';
- ]]]
- show_state: true
- - type: custom:button-card
- entity: sensor.ipad_battery_level
- unit_of_measurement: '%'
- device_class: battery
- icon: mdi:tablet
- name: iPad
- styles:
- card:
- - height: 90px
- name:
- - color: |
- [[[
- if (entity.state < 30) return '#d94348';
- if ((entity.state >=50) && (entity.state < 80)) return '#e0b558'
- if (entity.state >= 75) return '#58e081';
- ]]]
- icon:
- - color: |
- [[[
- if (entity.state < 30) return '#d94348';
- if ((entity.state >= 30) && (entity.state < 80)) return '#e0b558'
- if (entity.state >= 80) return 'lime';
- ]]]
- state:
- - color: |
- [[[
- if (entity.state < 30) return '#858179';
- if ((entity.state >= 30) && (entity.state < 80)) return '#858179'
- if (entity.state >= 80) return '#858179';
- ]]]
- show_state: true
- - type: custom:button-card
- entity: sensor.iphone_watch_battery_level
- unit_of_measurement: '%'
- device_class: battery
- icon: mdi:watch
- name: Watch
- styles:
- card:
- - height: 90px
- name:
- - color: |
- [[[
- if (entity.state < 30) return '#d94348';
- if ((entity.state >= 30) && (entity.state < 80)) return '#e0b558'
- if (entity.state >= 80) return '#58e081';
- ]]]
- icon:
- - color: |
- [[[
- if (entity.state < 30) return '#d94348';
- if ((entity.state >= 30) && (entity.state < 80)) return '#e0b558'
- if (entity.state >= 80) return '#58e081';
- ]]]
- state:
- - color: |
- [[[
- if (entity.state < 30) return '#858179';
- if ((entity.state >= 30) && (entity.state < 80)) return '#858179'
- if (entity.state >= 80) return '#858179';
- ]]]
- show_state: true
- - type: custom:button-card
- entity: sensor.10_0_0_27_battery_charge
- unit_of_measurement: '%'
- device_class: battery
- icon: mdi:laptop
- name: Winux
- styles:
- card:
- - height: 90px
- name:
- - color: |
- [[[
- if (entity.state < 30) return '#d94348';
- if ((entity.state >= 30) && (entity.state < 80)) return '#e0b558'
- if (entity.state >= 80) return '#58e081';
- ]]]
- icon:
- - color: |
- [[[
- if (entity.state < 30) return '#d94348';
- if ((entity.state >= 30) && (entity.state < 80)) return '#e0b558'
- if (entity.state >= 80) return '#58e081';
- ]]]
- state:
- - color: |
- [[[
- if (entity.state < 30) return '#858179';
- if ((entity.state >= 30) && (entity.state < 80)) return '#858179'
- if (entity.state >= 80) return '#858179';
- ]]]
- show_state: true
- - type: custom:button-card
- entity: sensor.freedomphone_battery_level
- unit_of_measurement: '%'
- device_class: battery
- icon: mdi:cellphone
- name:
- styles:
- card:
- - height: 90px
- name:
- - color: |
- [[[
- if (entity.state < 30) return '#d94348';
- if ((entity.state >= 30) && (entity.state < 80)) return '#e0b558'
- if (entity.state >= 80) return '#58e081';
- ]]]
- icon:
- - color: |
- [[[
- if (entity.state < 30) return '#d94348';
- if ((entity.state >= 30) && (entity.state < 80)) return '#e0b558'
- if (entity.state >= 80) return '#58e081';
- ]]]
- state:
- - color: |
- [[[
- if (entity.state < 30) return '#858179';
- if ((entity.state >= 30) && (entity.state < 80)) return '#858179'
- if (entity.state >= 80) return '#858179';
- ]]]
- show_state: true
- - type: custom:button-card
- entity: sensor._iphone_battery_level
- unit_of_measurement: '%'
- device_class: battery
- icon: mdi:cellphone
- name: REDACTED
- styles:
- card:
- - height: 90px
- - width: 62px
- name:
- - color: |
- [[[
- if (entity.state < 30) return '#d94348';
- if ((entity.state >= 30) && (entity.state < 80)) return '#e0b558'
- if (entity.state >= 80) return '#58e081';
- ]]]
- icon:
- - color: |
- [[[
- if (entity.state < 30) return '#d94348';
- if ((entity.state >= 30) && (entity.state < 80)) return '#e0b558'
- if (entity.state >= 80) return '#58e081';
- ]]]
- state:
- - color: |
- [[[
- if (entity.state < 30) return '#858179';
- if ((entity.state >= 30) && (entity.state < 80)) return '#858179'
- if (entity.state >= 80) return '#858179';
- ]]]
- show_state: true
- - type: custom:button-card
- entity: sensor.front_door_battery
- unit_of_measurement: '%'
- device_class: battery
- icon: mdi:cctv
- name: Ring
- styles:
- card:
- - height: 90px
- name:
- - color: |
- [[[
- if (entity.state < 30) return '#d94348';
- if ((entity.state >= 30) && (entity.state < 80)) return '#e0b558'
- if (entity.state >= 80) return '#58e081';
- ]]]
- icon:
- - color: |
- [[[
- if (entity.state < 30) return '#d94348';
- if ((entity.state >= 30) && (entity.state < 80)) return '#e0b558'
- if (entity.state >= 80) return '#58e081';
- ]]]
- state:
- - color: |
- [[[
- if (entity.state < 30) return '#858179';
- if ((entity.state >= 30) && (entity.state < 80)) return '#858179'
- if (entity.state >= 80) return '#858179';
- ]]]
- show_state: true
- - type: custom:mod-card
- style: |
- ha-card {
- position: fixed;
- top: 20%;
- right: 1%;
- width: 5%;
- z-index: 1000;
- background: transparent;
- box-shadow: none;
- border: none;
- }
- card:
- type: vertical-stack
- cards:
- - type: custom:button-card
- template: navbar
- entity: sensor.speedtest_ping
- name: Ping
- icon: mdi:speedometer
- show_state: true
- state_display: |
- [[[ return (entity.state * 1).toFixed(0) + ' ms'; ]]]
- styles:
- icon:
- - width: 40px
- - height: 40px
- - background-image: >-
- url("https://images.vexels.com/media/users/3/199980/isolated/preview/4c910ee68a0f4fe8029f72e40bc10fe6-internet-browsing-icon-stroke-pink.png")
- - background-size: contain
- - background-repeat: no-repeat
- - background-position: center
- - color: transparent
- card:
- - border-radius: 15px
- - padding: 10px
- - margin-bottom: 10px
- - background: rgba(0, 0, 0, 0.4)
- - type: custom:button-card
- template: navbar
- entity: sensor.firewall_gateway_proton_status
- name: Proton VPN
- icon: mdi:shield-home
- styles:
- icon:
- - width: 40px
- - height: 40px
- - background-image: url("/local/community/proton-vpn-seeklogo.png")
- - background-size: contain
- - background-repeat: no-repeat
- - background-position: center
- - color: transparent
- card:
- - border-radius: 15px
- - padding: 10px
- - margin-bottom: 10px
- - background: rgba(0, 0, 0, 0.4)
- - type: custom:button-card
- template: navbar
- entity: sensor.speedtest_download
- name: Download
- icon: mdi:download
- styles:
- icon:
- - width: 40px
- - height: 40px
- - background-image: >-
- url("https://cdn-icons-png.flaticon.com/512/4225/4225688.png")
- - background-size: contain
- - background-repeat: no-repeat
- - background-position: center
- - color: transparent
- card:
- - border-radius: 15px
- - padding: 10px
- - margin-bottom: 10px
- - background: rgba(0, 0, 0, 0.4)
- - type: custom:button-card
- template: navbar
- entity: sensor.speedtest_upload
- name: Upload
- icon: mdi:upload
- styles:
- icon:
- - width: 40px
- - height: 40px
- - background-image: >-
- url("https://media.lordicon.com/icons/wired/gradient/2-cloud-upload.svg")
- - background-size: contain
- - background-repeat: no-repeat
- - background-position: center
- - color: transparent
- card:
- - border-radius: 15px
- - padding: 10px
- - margin-bottom: 10px
- - background: rgba(0, 0, 0, 0.5)
- - type: custom:button-card
- template: navbar
- entity: sensor.overseerr_pending_requests_2
- name: Overseerr
- icon: mdi:movie-star
- show_state: true
- state_display: |
- [[[ return entity.state; ]]]
- styles:
- icon:
- - width: 40px
- - height: 40px
- - background-image: >-
- url("https://coolify.io/docs/images/services/overseerr.svg")
- - background-size: contain
- - background-repeat: no-repeat
- - background-position: center
- - color: transparent
- card:
- - border-radius: 15px
- - padding: 10px
- - margin-bottom: 10px
- state:
- - value: 0
- styles:
- card: null
- - operator: '!='
- value: 0
- styles:
- card: null
- - type: custom:button-card
- template: navbar
- entity: binary_sensor.firewall_pending_notices_present
- name: Firewall
- icon: mdi:shield-check
- styles:
- icon:
- - width: 40px
- - height: 40px
- - background-image: url("")
- - background-size: contain
- - background-repeat: no-repeat
- - background-position: center
- - color: green
- card:
- - border-radius: 15px
- - padding: 10px
- - margin-bottom: 10px
- - background: rgba(0, 0, 0, 0.4)
- state:
- - value: 'off'
- styles:
- icon:
- - color: green
- - operator: '!='
- value: 'off'
- styles:
- icon:
- - color: red
- - type: custom:mod-card
- style: |
- :host {
- position: fixed;
- top: 243px;
- right: 422px;
- z-index: 1000;
- }
- ha-card {
- display: flex;
- flex-direction: row-reverse;
- align-items: center;
- justify-content: space-between;
- padding: 5px;
- background-color: transparent !important;
- color: transparent !important;
- border-radius: 0 !important;
- box-shadow: none !important;
- transform: scale(0.14);
- transform-origin: top right;
- }
- card:
- type: horizontal-stack
- cards:
- - type: picture
- image: >-
- https://dashboard.snapcraft.io/site_media/appmedia/2024/05/glances-logo.png
- tap_action:
- action: url
- url_path: http://100.125.7.36:61208
- card_mod:
- style: |
- ha-card {
- background: none !important;
- box-shadow: none !important;
- }
- img {
- opacity: 0.7 !important;
- transition: opacity 0.3s ease;
- }
- img:hover {
- opacity: 1 !important;
- }
- - type: grid
- cards:
- - type: custom:mini-graph-card
- entities:
- - sensor.10_0_0_56_core_0_temperature
- show:
- name_adaptive_color: true
- icon_adaptive_color: true
- state_adaptive_color: true
- state: la
- labels: false
- name: Ubuntu Server Temp
- hours_to_show: 1
- points_per_hour: 200
- height: 80
- color_thresholds:
- - value: 55
- color: '#00FF00'
- - value: 70
- color: '#FFFF00'
- - value: 86
- color: '#FF0000'
- animate: true
- line_width: 2
- - type: custom:mini-graph-card
- entities:
- - sensor.10_0_0_56_cpu_usage
- show:
- name_adaptive_color: true
- icon_adaptive_color: true
- state_adaptive_color: true
- state: last
- labels: false
- name: Ubuntu Server Usage
- hours_to_show: 1
- points_per_hour: 200
- color_thresholds:
- - value: 20
- color: '#00FF00'
- - value: 40
- color: '#FFFF00'
- - value: 80
- color: '#FF0000'
- animate: true
- line_width: 2
- height: 80
- - type: custom:mini-graph-card
- entities:
- - sensor.10_0_0_56_memory_usage
- show:
- name_adaptive_color: true
- icon_adaptive_color: true
- state_adaptive_color: true
- state: la
- labels: false
- name: Ubuntu Server Memory Usage
- hours_to_show: 1
- points_per_hour: 160
- height: 80
- color_thresholds:
- - value: 20
- color: '#00FF00'
- - value: 50
- color: '#FFFF00'
- - value: 70
- color: '#FF0000'
- show: null
- labels: false
- animate: true
- line_width: 2
- - type: custom:mini-graph-card
- entities:
- - sensor.10_0_0_56_containers_cpu_usage
- show:
- name_adaptive_color: true
- icon_adaptive_color: true
- state_adaptive_color: true
- state: last
- labels: false
- name: Container Usage
- hours_to_show: 1
- points_per_hour: 160
- color_thresholds:
- - value: 50
- color: '#00FF00'
- - value: 70
- color: '#FFFF00'
- - value: 90
- color: '#FF0000'
- animate: true
- height: 80
- line_width: 2
- - type: custom:mini-graph-card
- entities:
- - sensor.10_0_0_56_containers_memory_used
- show:
- name_adaptive_color: true
- icon_adaptive_color: true
- state_adaptive_color: true
- state: last
- labels: false
- name: Container Memory Usage
- hours_to_show: 1
- points_per_hour: 160
- color_thresholds:
- - value: 4000
- color: '#00FF00'
- - value: 5000
- color: '#FFFF00'
- - value: 6000
- color: '#FF0000'
- animate: true
- height: 80
- line_width: 2
- - type: custom:mini-graph-card
- entities:
- - sensor.firewall_system_temperature
- show:
- name_adaptive_color: true
- icon_adaptive_color: true
- state_adaptive_color: true
- state: last
- labels: false
- name: PFSense Firewall Temperature
- hours_to_show: 1
- points_per_hour: 200
- color_thresholds:
- - value: 50
- color: '#00FF00'
- - value: 60
- color: '#FFFF00'
- - value: 70
- color: '#FF0000'
- animate: true
- line_width: 2
- height: 80
- - type: grid
- cards:
- - type: custom:mini-graph-card
- entities:
- - sensor.pandora_amd_ryzen_7_7800x3d_load_cpu_total
- show:
- name_adaptive_color: true
- icon_adaptive_color: true
- state_adaptive_color: true
- state: la
- labels: false
- name: 7800X3D Usage
- hours_to_show: 1
- points_per_hour: 200
- color_thresholds:
- - value: 20
- color: '#00FF00'
- - value: 50
- color: '#FFFF00'
- - value: 70
- color: '#FF0000'
- animate: true
- line_width: 2
- height: 80
- - type: custom:mini-graph-card
- entities:
- - sensor.pandora_amd_ryzen_7_7800x3d_temperatures_cpu_package
- show:
- name_adaptive_color: true
- icon_adaptive_color: true
- state_adaptive_color: true
- state: la
- labels: false
- name: 7800X3D Temp
- hours_to_show: 1
- height: 80
- line_width: 2
- points_per_hour: 200
- color_thresholds:
- - value: 40
- color: '#00FF00'
- - value: 60
- color: '#FFFF00'
- - value: 70
- color: '#FF0000'
- animate: true
- - type: custom:mini-graph-card
- entities:
- - >-
- sensor.pandora_nvidia_nvidia_geforce_rtx_5080_temperatures_gpu_core
- show:
- name_adaptive_color: true
- icon_adaptive_color: true
- state_adaptive_color: true
- state: la
- labels: false
- name: RTX 5080 Temp
- hours_to_show: 1
- points_per_hour: 200
- color_thresholds:
- - value: 30
- color: '#00FF00'
- - value: 50
- color: '#FFFF00'
- - value: 70
- color: '#FF0000'
- animate: true
- line_width: 2
- height: 80
- - type: custom:mini-graph-card
- entities:
- - >-
- sensor.pandora_nvidia_nvidia_geforce_rtx_5080_data_gpu_memory_used
- show:
- name_adaptive_color: true
- icon_adaptive_color: true
- state_adaptive_color: true
- state: la
- labels: false
- name: RTX 5080 Memory Usage
- hours_to_show: 1
- points_per_hour: 200
- height: 80
- color_thresholds:
- - value: 5000
- color: '#00FF00'
- - value: 10000
- color: '#FFFF00'
- - value: 15000
- color: '#FF0000'
- animate: true
- line_width: 2
- - type: custom:mini-graph-card
- entities:
- - sensor.pandora_generic_memory_load_memory
- show:
- name_adaptive_color: true
- icon_adaptive_color: true
- state_adaptive_color: true
- labels: false
- state: la
- name: Gaming PC Memory Usage
- color_thresholds:
- - value: 30
- color: '#00FF00'
- - value: 50
- color: '#FFFF00'
- - value: 70
- color: '#FF0000'
- hours_to_show: 1
- points_per_hour: 200
- animate: true
- line_width: 2
- height: 80
- - type: custom:mini-graph-card
- entities:
- - sensor.10_0_0_56_enp2s0_rx
- show:
- name_adaptive_color: true
- icon_adaptive_color: true
- state_adaptive_color: true
- state: last
- labels: false
- name: Ubuntu Server Downloading
- hours_to_show: 1
- points_per_hour: 200
- color_thresholds:
- - value: 2000
- color: '#00FF00'
- - value: 4000
- color: '#FFFF00'
- - value: 6000
- color: '#FF0000'
- animate: true
- height: 80
- line_width: 2
- - type: vertical-stack
- cards:
- - type: custom:stack-in-card
- cards:
- - type: custom:navbar-card
- routes:
- - icon: mdi:power
- label: Restart
- tap_action:
- action: call-service
- service: homeassistant.restart
- confirmation:
- text: Are you sure you want to restart Home Assistant?
- - icon: mdi:reload
- label: Reload
- tap_action:
- action: call-service
- service: homeassistant.reload_all
- confirmation:
- text: Are you sure you want to reload Home Assistant?
- card_mod:
- style: |
- :host {
- position: fixed;
- top: 68%;
- right: 45px;
- transform: translateY(-50%);
- z-index: 99;
- }
- .navbar,
- .navbar-inner,
- .navbar-row,
- .navbar-container {
- display: flex !important;
- position: relative !important;
- flex-direction: column !important;
- align-items: center !important;
- gap: 1px !important;
- margin-top: 800px;
- width: 100%;
- }
- /* Targeting the ha-icon specifically */
- .route.selected ha-icon,
- .route.active ha-icon {
- color: blue !important; /* Force white color */
- filter: drop-shadow(0 0 6px blue) !important; /* Optional: Add white shadow */
- }
- .route ha-icon {
- color: white !important; /* Ensures icons not selected are also white */
- }
- - type: custom:mod-card
- style: |
- :host {
- position: fixed;
- top: 870px;
- right: 380px;
- z-index: 1000;
- }
- ha-card {
- display: flex;
- flex-direction: row-reverse;
- align-items: center;
- justify-content: space-between;
- padding: 5px;
- background-color: transparent !important;
- color: white;
- border-radius: 10px;
- box-shadow: none;
- transform: scale(0.5);
- transform-origin: top right;
- }
- card:
- type: horizontal-stack
- cards:
- - type: picture
- image: >-
- https://static-00.iconduck.com/assets.00/sabnzbd-text-icon-256x256-k89vgimn.png
- tap_action:
- action: url
- url_path: https://REDACTED
- card_mod:
- style: |
- img {
- opacity: 0.7 !important;
- transition: opacity 0.3s ease;
- }
- img:hover {
- opacity: 1 !important;
- }
- - type: grid
- cards:
- - type: custom:apexcharts-card
- header:
- title: Drive Usage
- show: true
- show_states: true
- colorize_states: true
- chart_type: radialBar
- apex_config:
- chart:
- height: 320
- legend:
- show: false
- plotOptions:
- radialBar:
- columns: 12
- rows: 12
- show: true
- showAlways: true
- series:
- - entity: sensor.10_0_0_56_etc_hosts_disk_usage
- name: Ubuntu OS
- - entity: sensor.10_0_0_56_disks_plex2_disk_usage
- name: Plex 20tb
- - entity: sensor.10_0_0_56_disks_plex2t_disk_usage
- name: Plex 20tb
- - entity: sensor.10_0_0_56_disks_plex3_disk_usage
- name: Plex 20tb
- - entity: sensor.10_0_0_27_disk_usage
- name: Laptop
- - type: custom:uptime-card
- entity: binary_sensor.docker
- title_template: Docker Uptime
- icon: mdi:web
- ko_icon: mdi:weather-sunny-off
- ko: below_horizon
- icon_adaptive_color: true
- title_adaptive_color: true
- color:
- ok: '#0db7ed'
- ko: '#053752'
- half: '#AAAF00'
- bar:
- spacing: 6
- height: 20
- round: 3
- show:
- average: true
- status: false
- alignment:
- status: spaced
- header: center
- icon_first: true
- tap_action:
- action: more-info
- duration:
- quantity: 1
- unit: hour
- card_mod:
- style: |
- ha-card {
- padding: 4px 8px !important;
- margin: 0 !important;
- }
- .header {
- padding: 0 6px !important;
- font-size: 12px !important;
- margin-bottom: 2px !important;
- }
- .bar {
- margin-bottom: 1px !important;
- }
- .footer, .average {
- font-size: 11px !important;
- color: rgba(25, 25, 25, 0.7) !important;
- }
- - type: custom:uptime-card
- entity: binary_sensor.100_100_100_100
- title_template: Tailscale Uptime
- icon: mdi:web
- ko_icon: mdi:weather-sunny-off
- ko: below_horizon
- icon_adaptive_color: true
- title_adaptive_color: true
- color:
- ok: '#1E1E1E'
- ko: '#053752'
- half: '#AAAF00'
- bar:
- spacing: 6
- height: 20
- round: 3
- show:
- average: true
- status: false
- alignment:
- status: spaced
- header: center
- icon_first: true
- tap_action:
- action: more-info
- duration:
- quantity: 1
- unit: hour
- card_mod:
- style: |
- ha-card {
- padding: 4px 8px !important;
- margin: 0 !important;
- }
- .header {
- padding: 0 6px !important;
- font-size: 12px !important;
- margin-bottom: 2px !important;
- }
- .bar {
- margin-bottom: 1px !important;
- }
- .footer, .average {
- font-size: 11px !important;
- color: rgba(25, 25, 25, 0.7) !important;
- }
- - type: custom:uptime-card
- entity: sensor.10_0_0_56_uptime
- title_template: Ubuntu Server Uptime
- icon: mdi:web
- ko_icon: mdi:weather-sunny-off
- ko: below_horizon
- icon_adaptive_color: true
- title_adaptive_color: true
- color:
- ok: '#e95420'
- ko: '#053752'
- half: '#AAAF00'
- bar:
- spacing: 6
- height: 20
- round: 2
- show:
- average: true
- status: false
- alignment:
- status: spaced
- header: center
- icon_first: true
- tap_action:
- action: more-info
- duration:
- quantity: 1
- unit: day
- card_mod:
- style: |
- ha-card {
- padding: 4px 8px !important;
- margin: 0 !important;
- }
- .header {
- padding: 0 6px !important;
- font-size: 12px !important;
- margin-bottom: 2px !important;
- }
- .bar {
- margin-bottom: 1px !important;
- }
- .footer, .average {
- font-size: 11px !important;
- color: rgba(25, 25, 25, 0.7) !important;
- }
- - type: horizontal-stack
- cards:
- - type: custom:button-card
- entity: sensor.REDACTED
- unit_of_measurement: '%'
- device_class: battery
- icon: mdi:plex
- name: REDACTED
- styles:
- card:
- - height: 80px
- icon:
- - color: |
- [[[
- if (entity.state < 2) return '#f1941c';
- if ((entity.state >= 2) && (entity.state < 80)) return 'orange'
- if (entity.state >= 80) return 'lime';
- ]]]
- name:
- - color: |
- [[[
- if (entity.state < 30) return '#f1941c';
- if ((entity.state >= 30) && (entity.state < 80)) return 'orange'
- if (entity.state >= 80) return 'lime';
- ]]]
- state:
- - color: |
- [[[
- if (entity.state < 30) return '#858179';
- if ((entity.state >= 30) && (entity.state < 80)) return 'orange'
- if (entity.state >= 80) return 'lime';
- ]]]
- show_state: true
- - type: custom:button-card
- entity: sensor.REDACTED_library_movies
- unit_of_measurement: items
- device_class: battery
- icon: mdi:movie
- name: Movies
- styles:
- card:
- - height: 80px
- name:
- - color: |
- [[[
- if (entity.state < 30) return 'red';
- if ((entity.state >= 30) && (entity.state < 80)) return 'orange'
- if (entity.state >= 80) return 'lime';
- ]]]
- icon:
- - color: |
- [[[
- if (entity.state < 30) return 'red';
- if ((entity.state >= 30) && (entity.state < 80)) return 'orange'
- if (entity.state >= 80) return 'lime';
- ]]]
- state:
- - color: |
- [[[
- if (entity.state > 30) return '#858179';
- if ((entity.state < 30) && (entity.state < 80)) return 'orange'
- if (entity.state >= 80) return 'lime';
- ]]]
- show_state: true
- - type: custom:button-card
- entity: sensor.REDACTED_library_tv_shows
- unit_of_measurement: '%'
- device_class: battery
- icon: mdi:television
- name: TV Shows
- styles:
- card:
- - height: 80px
- name:
- - color: |
- [[[
- if (entity.state < 30) return 'red';
- if ((entity.state >= 30) && (entity.state < 80)) return 'orange'
- if (entity.state >= 80) return '#05c5ff';
- ]]]
- icon:
- - color: |
- [[[
- if (entity.state < 30) return 'red';
- if ((entity.state >= 30) && (entity.state < 80)) return 'orange'
- if (entity.state >= 80) return '#05c5ff';
- ]]]
- state:
- - color: |
- [[[
- if (entity.state > 30) return '#858179';
- if ((entity.state < 30) && (entity.state < 80)) return 'orange'
- if (entity.state >= 80) return 'lime';
- ]]]
- show_state: true
- - type: custom:stack-in-card
- cards:
- - type: entities
- show_header_toggle: false
- entities:
- ###REDACTED
- name: Download Speed
- - type: custom:mini-graph-card
- name: WAN Inbound
- entities:
- - sensor.firewall_wan_in_mbps
- hours_to_show: 1
- points_per_hour: 100
- height: 60
- line_width: 2
- animate: true
- show:
- state: last
- labels: false
- name_adaptive_color: true
- icon_adaptive_color: true
- state_adaptive_color: true
- color_thresholds:
- - value: 2000
- color: '#00FF00'
- - value: 4000
- color: '#FFFF00'
- - value: 6000
- color: '#FF0000'
- background:
- opacity: 83
- alignment: center
- size: cover
- repeat: repeat
- attachment: scroll
- badges: []
- - type: sections
- max_columns: 4
- icon: mdi:remote
- path: ''
- sections:
- - type: grid
- cards:
- - type: custom:android-tv-card
- remote_id: remote.shield
- rows:
- - - power
- - home
- - appletv
- - plex
- - - touchpad
- - - volume
- - - back
- - rewind
- - play_pause
- - fast_forward
- - volume_mute
- custom_actions:
- - type: slider
- name: volume
- entity: media_player.q_series_soundbar_2
- value_attribute: volume_level
- range:
- - 0
- - 0.3
- step: 0.01
- tap_action:
- action: call-service
- service: media_player.volume_set
- data:
- volume_level: '{{ value | round(2) }}'
- target:
- entity_id: media_player.q_series_soundbar_2
- styles: |-
- :host {
- height: 40px;
- --background-height: 5px;
- --background: rgba(0, 0, 0, 0.4);
- --color: rgba(255, 255, 255, 1);
- --thumb-size: 18px;
- --thumb-color: #ff9f09;
- --thumb-border-radius: 50%;
- --tooltip-display: block;
- --tooltip-label: "{{ [((value / 0.3) * 30), 30] | min | round(0) }}/30";
- }
- - type: touchpad
- name: touchpad
- tap_action:
- action: key
- key: DPAD_CENTER
- up:
- tap_action:
- action: key
- key: DPAD_UP
- hold_action:
- action: repeat
- down:
- tap_action:
- action: key
- key: DPAD_DOWN
- hold_action:
- action: repeat
- left:
- tap_action:
- action: key
- key: DPAD_LEFT
- hold_action:
- action: repeat
- right:
- tap_action:
- action: key
- key: DPAD_RIGHT
- hold_action:
- action: repeat
- icon: mdi:gesture-tap
- styles: ':host { background: transparent; }'
- haptics: true
- value_attribute: state
- grid_options:
- columns: full
- rows: null
- hold_time: 100
- media_player_id: media_player.q_series_soundbar_2
- - type: custom:android-tv-card
- rows:
- - - dpad
- custom_actions:
- - type: button
- name: center
- tap_action:
- action: key
- key: DPAD_CENTER
- icon: ''
- styles: |-
- :host {
- border-radius: 50%;
- z-index: 2;
- pointer-events: none;
- width: 200px;
- height: 200px;
- top: -75px;
- left: -75px;
- opacity: .15
- }
- button {
- height: 80%;
- width: 80%;
- border-radius: 50%;
- background: rgb(105, 105, 105);
- pointer-events: all;
- }
- - type: button
- name: up
- tap_action:
- action: key
- key: DPAD_UP
- hold_action:
- action: repeat
- icon: mdi:chevron-up
- styles: |-
- button {
- top: 10%;
- left: 10%;
- border-radius: 0;
- }
- .icon {
- transform: rotate(-45deg);
- color: rgb(197, 199, 197);
- }
- - type: button
- name: down
- tap_action:
- action: key
- key: DPAD_DOWN
- hold_action:
- action: repeat
- icon: mdi:chevron-down
- styles: |-
- button {
- bottom: 10%;
- right: 10%;
- border-radius: 0;
- }
- .icon {
- transform: rotate(-45deg);
- color: rgb(197, 199, 197);
- }
- - type: button
- name: left
- tap_action:
- action: key
- key: DPAD_LEFT
- hold_action:
- action: repeat
- icon: mdi:chevron-left
- styles: |-
- button {
- bottom: 10%;
- left: 10%;
- border-radius: 0;
- }
- .icon {
- transform: rotate(-45deg);
- color: rgb(197, 199, 197);
- }
- - type: button
- name: right
- tap_action:
- action: key
- key: DPAD_RIGHT
- hold_action:
- action: repeat
- icon: mdi:chevron-right
- styles: |-
- button {
- top: 10%;
- right: 10%;
- border-radius: 0;
- }
- .icon {
- transform: rotate(-45deg);
- color: rgb(197, 199, 197);
- }
- styles: |-
- .button-pad {
- gap: 98px;
- border-radius: 50%;
- overflow: hidden;
- background: rgb(, , );
- opacity:
- }
- .button-pad .empty-button {
- width: 0;
- height: 0;
- }
- .button-pad remote-button {
- top: -125%;
- left: -125%;
- width: 170px;
- height: 170px;
- transform: rotate(45deg);
- z-index: 1;
- }
- #row-1 {
- width: fit-content;
- }
- custom_icons: []
- remote_id: remote.shield
- media_player_id: media_player.q_series_soundbar
- keyboard_id: media_player.shield_2
- grid_options:
- columns: full
- - type: vertical-stack
- cards:
- - type: custom:stack-in-card
- cards:
- - type: custom:navbar-card
- routes:
- - url: /dashboard-dashboard/0
- icon: mdi:home
- label: Home
- - url: /profile/general
- icon: mdi:information-variant-circle-outline
- label: Devices
- hold_action:
- action: navigate
- navigation_path: /config/devices/dashboard
- - url: /config/integrations/dashboard
- icon: mdi:devices
- label: Automations
- - url: /config/dashboard
- icon: mdi:cog
- label: Settings
- - url: /hacs/dashboard
- icon: mdi:home-assistant
- label: Settings
- - icon: mdi:power
- label: Restart
- tap_action:
- action: call-service
- service: homeassistant.restart
- confirmation:
- text: Are you sure you want to restart Home Assistant?
- - icon: mdi:reload
- label: Reload
- tap_action:
- action: call-service
- service: homeassistant.reload_all
- confirmation:
- text: Are you sure you want to reload Home Assistant?
- card_mod:
- style: |
- :host {
- position: fixed;
- top: 50%;
- right: 40px;
- transform: translateY(-50%);
- z-index: 99;
- }
- .navbar,
- .navbar-inner,
- .navbar-row,
- .navbar-container {
- display: flex !important;
- position: relative !important;
- flex-direction: column !important;
- align-items: center !important;
- gap: 10px !important;
- margin-top: 800px;
- width: 100%;
- }
- /* Targeting the ha-icon specifically */
- .route.selected ha-icon,
- .route.active ha-icon {
- color: blue !important; /* Force white color */
- filter: drop-shadow(0 0 6px blue) !important; /* Optional: Add white shadow */
- }
- .route ha-icon {
- color: white !important; /* Ensures icons not selected are also white */
- }
- - type: grid
- cards: []
- - type: sections
- max_columns: 4
- icon: mdi:lightbulb-group
- path: ''
- sections:
- - type: grid
- cards:
- - type: vertical-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- button_type: slider
- entity: light.game_room_lamp
- - type: custom:bubble-card
- card_type: button
- button_type: slider
- entity: light.game_room_bathroom
- name: Game Room Bathroom
- - type: custom:bubble-card
- card_type: button
- button_type: slider
- entity: light.game_room_3
- - type: custom:bubble-card
- card_type: button
- button_type: slider
- entity: light.top_left
- name: Top Left
- - type: custom:bubble-card
- card_type: button
- button_type: slider
- entity: light.bottom_left
- name: Bottom Left
- - type: custom:bubble-card
- card_type: button
- button_type: slider
- entity: light.top_right
- name: Top Right
- - type: custom:bubble-card
- card_type: button
- button_type: slider
- entity: light.bottom_right
- name: Bottom Right
- card_mod:
- style:
- .: |
- ha-card {
- background: rgba(0, 0, 0, 0) !important;
- box-shadow: none !important;
- }
- - type: vertical-stack
- cards:
- - type: custom:button-card
- entity: input_boolean.game_room_3_color_picker
- name: Show Color Picker
- tap_action:
- action: toggle
- show_icon: false
- styles:
- card:
- - padding: 6px
- - height: 70px
- - font-size: 30px
- - border-radius: 112px
- - background-color: rgba(25, 25, 25, 0.3)
- - display: flex
- - align-items: center
- - justify-content: center
- name:
- - background: >-
- linear-gradient(90deg, rgba(173,216,230,0.8),
- rgba(0,191,255,0.8), rgba(173,216,230, 0.8))
- - '-webkit-background-clip': text
- - '-webkit-text-fill-color': transparent
- - font-style: italic
- - font-weight: bold
- - text-align: center
- - justify-self: center
- card_mod:
- style: |
- ha-select.mdc-select--filled .mdc-select__anchor,
- mwc-select.mdc-select--filled .mdc-select__anchor {
- background: transparent !important;
- background-image: none !important;
- box-shadow: none !important;
- outline: none !important;
- }
- ha-select .mdc-floating-label,
- mwc-select .mdc-floating-label {
- color: var(--primary-text-color) !important;
- z-index: 1;
- }
- mwc-menu.mdc-menu-surface {
- background: rgba(20,20,20,0.2) !important;
- }
- - type: conditional
- conditions:
- - condition: state
- entity: input_boolean.game_room_3_color_picker
- state: 'on'
- card:
- type: custom:light-entity-card
- entity: light.game_room_3
- color_picker: true
- persist_features: true
- brightness: true
- color_temp: true
- white_value: true
- full_width_sliders: true
- show_slider_percent: true
- - type: grid
- cards:
- - type: vertical-stack
- cards:
- - type: custom:bubble-card
- card_type: button
- button_type: slider
- entity: light.left_side_nightstand
- - type: custom:bubble-card
- card_type: button
- button_type: slider
- entity: light.right_side_nightstand
- name: Right side Nightstand
- - type: light
- entity: light.rgbic_tv_backlight
- icon: mdi:television-ambient-light
- - type: vertical-stack
- cards:
- - type: custom:stack-in-card
- cards:
- - type: custom:navbar-card
- routes:
- - url: /dashboard-dashboard/0
- icon: mdi:home
- label: Home
- - url: /profile/general
- icon: mdi:information-variant-circle-outline
- label: Devices
- hold_action:
- action: navigate
- navigation_path: /config/devices/dashboard
- - url: /config/integrations/dashboard
- icon: mdi:devices
- label: Automations
- - url: /config/dashboard
- icon: mdi:cog
- label: Settings
- - url: /hacs/dashboard
- icon: mdi:home-assistant
- label: Settings
- - icon: mdi:power
- label: Restart
- tap_action:
- action: call-service
- service: homeassistant.restart
- confirmation:
- text: Are you sure you want to restart Home Assistant?
- - icon: mdi:reload
- label: Reload
- tap_action:
- action: call-service
- service: homeassistant.reload_all
- confirmation:
- text: Are you sure you want to reload Home Assistant?
- card_mod:
- style: |
- :host {
- position: fixed;
- top: 50%;
- right: 40px;
- transform: translateY(-50%);
- z-index: 99;
- }
- .navbar,
- .navbar-inner,
- .navbar-row,
- .navbar-container {
- display: flex !important;
- position: relative !important;
- flex-direction: column !important;
- align-items: center !important;
- gap: 10px !important;
- margin-top: 800px;
- width: 100%;
- }
- /* Targeting the ha-icon specifically */
- .route.selected ha-icon,
- .route.active ha-icon {
- color: blue !important; /* Force white color */
- filter: drop-shadow(0 0 6px blue) !important; /* Optional: Add white shadow */
- }
- .route ha-icon {
- color: white !important; /* Ensures icons not selected are also white */
- }
- - type: grid
- cards: []
- - type: sections
- icon: mdi:cctv
- cards: []
- max_columns: 4
- subview: true
- top_margin: false
- dense_section_placement: false
- sections:
- - type: grid
- cards:
- - type: heading
- heading: New section
- - type: vertical-stack
- cards:
- - type: custom:advanced-camera-card
- cameras:
- - camera_entity: camera.front_door_live_view
- - camera_entity: camera.living_room_live_view
- - type: sections
- max_columns: 4
- icon: mdi:robot-vacuum
- path: ''
- sections:
- - type: grid
- cards:
- - type: custom:mushroom-vacuum-card
- entity: vacuum.roborock_q5_max
- icon: mdi:vacuum
- commands:
- - on_off
- - start_pause
- - stop
- - locate
- - clean_spot
- - return_home
- fill_container: true
- icon_animation: true
- grid_options:
- columns: 12
- rows: 2
- - type: entities
- entities:
- - fan.air_circulator
- - entity: number.air_circulator_horizontal_angle
- name: Horizontal Angle
- - entity: number.air_circulator_horizontal_oscillation_angle_left
- name: Horizontal Oscillation Angle Left
- - entity: number.air_circulator_horizontal_oscillation_angle_right
- name: Horizontal Oscillation Angle Right
- - entity: switch.air_circulator_horizontally_oscillating
- name: Horizontally Oscillating
- - entity: switch.air_circulator_panel_sound
- name: Panel Sound
- - entity: number.air_circulator_vertical_angle
- name: Vertical Angle
- - entity: number.air_circulator_vertical_oscillation_angle_bottom
- name: Vertical Oscillation Angle Bottom
- - entity: number.air_circulator_vertical_oscillation_angle_top
- name: Vertical Oscillation Angle Top
- - entity: switch.air_circulator_vertically_oscillating
- name: Vertically Oscillating
- title: Air Circulator
- - type: tile
- entity: fan.winix_living_room
- name: Winix Air Purifier
- grid_options:
- columns: 12
- rows: 1
- show_entity_picture: false
- features:
- - type: fan-speed
- style: dropdown
- - type: fan-preset-modes
- - type: vertical-stack
- cards:
- - type: custom:stack-in-card
- cards:
- - type: custom:navbar-card
- routes:
- - url: /dashboard-dashboard/0
- icon: mdi:home
- label: Home
- - url: /profile/general
- icon: mdi:information-variant-circle-outline
- label: Devices
- hold_action:
- action: navigate
- navigation_path: /config/devices/dashboard
- - url: /config/integrations/dashboard
- icon: mdi:devices
- label: Automations
- - url: /config/dashboard
- icon: mdi:cog
- label: Settings
- - url: /hacs/dashboard
- icon: mdi:home-assistant
- label: Settings
- - icon: mdi:power
- label: Restart
- tap_action:
- action: call-service
- service: homeassistant.restart
- confirmation:
- text: Are you sure you want to restart Home Assistant?
- - icon: mdi:reload
- label: Reload
- tap_action:
- action: call-service
- service: homeassistant.reload_all
- confirmation:
- text: Are you sure you want to reload Home Assistant?
- card_mod:
- style: |
- :host {
- position: fixed;
- top: 50%;
- right: 40px;
- transform: translateY(-50%);
- z-index: 99;
- }
- .navbar,
- .navbar-inner,
- .navbar-row,
- .navbar-container {
- display: flex !important;
- position: relative !important;
- flex-direction: column !important;
- align-items: center !important;
- gap: 10px !important;
- margin-top: 800px;
- width: 100%;
- }
- /* Targeting the ha-icon specifically */
- .route.selected ha-icon,
- .route.active ha-icon {
- color: blue !important; /* Force white color */
- filter: drop-shadow(0 0 6px blue) !important; /* Optional: Add white shadow */
- }
- .route ha-icon {
- color: white !important; /* Ensures icons not selected are also white */
- }
- - type: panel
- path: ''
- icon: mdi:bell-badge-outline
- cards:
- - type: custom:notify-card
- label: Message
- card_title: Send notification to all users
- notification_title:
- input: Title
- action: notify.notify
- data:
- message: $MSG
- title: $TITLE
- styles:
- card:
- - padding: 10px
- - border-radius: 12px
- - box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2)
- .card-header:
- - background: >-
- linear-gradient(135deg, rgba(0, 191, 255, 1), rgba(173, 216,
- 230, 1))
- - color: white
- - font-weight: bold
- - font-size: 20px
- - padding: 10px
- - border-radius: 8px
- - text-align: center
- - type: sections
- max_columns: 4
- icon: mdi:home-heart
- path: ''
- sections:
- - type: grid
- cards:
- - type: custom:mini-graph-card
- name: Oura Heart Rate (Today)
- icon: mdi:heart-pulse
- entities:
- - entity: sensor.oura_heart_rate_latest_0d_ago
- name: BPM
- show:
- graph: line
- points: true
- extrema: true
- average: true
- labels: false
- legend: true
- name_adaptive_color: true
- icon_adaptive_color: true
- state_adaptive_color: true
- hours_to_show: 12
- points_per_hour: 2.5
- line_width: 4
- color_thresholds:
- - value: 80
- color: '#5CADFF'
- - value: 120
- color: '#FF9F43'
- - value: 160
- color: '#FF5252'
- animate: true
- align_state: center
- align_header: center
- card_mod:
- style: |
- ha-icon {
- color: lightblue;
- }
- - type: custom:mini-graph-card
- entities:
- - entity: sensor.total_sleep_0d_ago
- show_state: true
- name: Total Sleep
- color: '#744275'
- fill: false
- - entity: sensor.deep_sleep_0d_ago
- name: Deep Sleep
- color: '#fff0a3'
- fill: false
- - entity: sensor.light_sleep_0d_ago
- name: Light Sleep
- color: '#754242'
- fill: false
- - entity: sensor.rem_sleep_0d_ago
- name: REM Sleep
- color: '#ffa3bf'
- fill: false
- - entity: sensor.time_in_bed_0d_ago
- name: Time In Bed
- color: '#6794db'
- fill: false
- name: Weekly Sleep Summary
- hours_to_show: 168
- points_per_hour: 6
- group_by: date
- height: 150
- align_state: center
- font_size_header: 20
- line_width: 3
- animate: true
- show:
- fill: false
- state: last
- name_adaptive_color: true
- state_adaptive_color: true
- icon_adaptive_color: true
- legend: true
- extrema: true
- labels_secondary: true
- labels: false
- align_header: center
- - type: custom:mini-graph-card
- name: Oura Calories Burned (Today)
- icon: mdi:fire
- entities:
- - entity: sensor.oura_activity_total_calories
- name: Calories
- color: lightblue
- show:
- graph: line
- points: true
- extrema: true
- average: true
- labels: false
- legend: true
- name: true
- icon: true
- name_adaptive_color: true
- icon_adaptive_color: true
- state_adaptive_color: true
- colorize: true
- hours_to_show: 24
- points_per_hour: 0.5
- line_width: 4
- animate: true
- align_state: center
- align_header: center
- - type: custom:mini-graph-card
- name: Daily Steps
- icon: mdi:stairs-up
- entities:
- - entity: sensor.myphone_steps
- name: Steps
- show:
- graph: bar
- points: true
- extrema: true
- average: true
- labels: false
- legend: true
- name_adaptive_color: true
- icon_adaptive_color: true
- state_adaptive_color: true
- icon: true
- hours_to_show: 12
- points_per_hour: 2
- color_thresholds:
- - value: 5000
- color: '#5CADFF'
- - value: 10000
- color: '#FF9F43'
- - value: 15000
- color: '#FF5252'
- animate: true
- align_state: center
- align_header: center
- style: |
- ha-icon {
- width: 40px;
- height: 40px;
- }
- - type: custom:mini-graph-card
- name: Total Sleep (Last Week)
- icon: mdi:sleep
- entities:
- - entity: sensor.total_sleep_0d_ago
- name: Sleep Duration
- show:
- graph: bar
- points: false
- extrema: true
- average: false
- labels: null
- legend: true
- name_adaptive_color: true
- icon_adaptive_color: true
- state_adaptive_color: true
- hours_to_show: 168
- points_per_hour: 0.04
- color_thresholds:
- - value: 4
- color: '#7d2231'
- - value: 6
- color: '#9b76c2'
- - value: 10
- color: '#FF5252'
- animate: true
- align_state: center
- align_header: center
- - type: custom:mini-graph-card
- name: Temperature Comparison
- icon: mdi:thermometer
- entities:
- - entity: sensor.air_circulator_temperature
- name: Indoor Temp
- color: '#FF9F99'
- show_state: true
- - entity: sensor.REDACTED_temperature
- name: Outdoor Temp
- color: '#5CAA42'
- show_state: true
- show:
- graph: graph
- points: false
- extrema: true
- average: true
- labels: false
- legend: true
- smoothing: true
- name_adaptive_color: true
- icon_adaptive_color: true
- state_adaptive_color: true
- icon: true
- hours_to_show: 168
- points_per_hour: 1
- animate: true
- align_state: center
- line_width: 3
- height: 150
- state_adaptive_color: true
- align_header: center
- color_thresholds:
- - value: 0
- color: '#4CAF50'
- - value: 20
- color: '#FFEB3B'
- - value: 30
- color: '#FF9800'
- - value: 40
- color: '#F44336'
- - type: vertical-stack
- cards:
- - type: custom:stack-in-card
- cards:
- - type: custom:navbar-card
- routes:
- - url: /dashboard-dashboard/0
- icon: mdi:home
- label: Home
- - url: /profile/general
- icon: mdi:information-variant-circle-outline
- label: Devices
- hold_action:
- action: navigate
- navigation_path: /config/devices/dashboard
- - url: /config/integrations/dashboard
- icon: mdi:devices
- label: Automations
- - url: /config/dashboard
- icon: mdi:cog
- label: Settings
- - url: /hacs/dashboard
- icon: mdi:home-assistant
- label: Settings
- - icon: mdi:power
- label: Restart
- tap_action:
- action: call-service
- service: homeassistant.restart
- confirmation:
- text: Are you sure you want to restart Home Assistant?
- - icon: mdi:reload
- label: Reload
- tap_action:
- action: call-service
- service: homeassistant.reload_all
- confirmation:
- text: Are you sure you want to reload Home Assistant?
- card_mod:
- style: |
- :host {
- position: fixed;
- top: 50%;
- right: 40px;
- transform: translateY(-50%);
- z-index: 99;
- }
- .navbar,
- .navbar-inner,
- .navbar-row,
- .navbar-container {
- display: flex !important;
- position: relative !important;
- flex-direction: column !important;
- align-items: center !important;
- gap: 10px !important;
- margin-top: 800px;
- width: 100%;
- }
- /* Targeting the ha-icon specifically */
- .route.selected ha-icon,
- .route.active ha-icon {
- color: blue !important; /* Force white color */
- filter: drop-shadow(0 0 6px blue) !important; /* Optional: Add white shadow */
- }
- .route ha-icon {
- color: white !important; /* Ensures icons not selected are also white */
- }
- - type: sidebar
- path: ''
- icon: mdi:download-multiple
- cards:
- - type: iframe
- url: REDACTED
- aspect_ratio: 50%
- card_mod:
- style: |
- ha-card {
- height: 2000px !important;
- max-width: 768px;
- margin: 0 auto;
- }
- - type: sections
- max_columns: 4
- icon: mdi:test-tube
- path: ''
- sections:
- - type: grid
- cards:
- - type: custom:mod-card
- style: |
- ha-card {
- position: fixed;
- top: 20%;
- right: 1%;
- width: 5%;
- z-index: 1000;
- background: transparent;
- box-shadow: none;
- border: none;
- }
- card:
- type: vertical-stack
- cards:
- - type: custom:button-card
- template: navbar
- entity: sensor.speedtest_ping
- name: Ping
- icon: mdi:speedometer
- show_state: true
- state_display: |
- [[[ return (entity.state * 1).toFixed(0) + ' ms'; ]]]
- styles:
- icon:
- - width: 40px
- - height: 40px
- - background-image: >-
- url("https://images.vexels.com/media/users/3/199980/isolated/preview/4c910ee68a0f4fe8029f72e40bc10fe6-internet-browsing-icon-stroke-pink.png")
- - background-size: contain
- - background-repeat: no-repeat
- - background-position: center
- - color: transparent
- card:
- - border-radius: 15px
- - padding: 10px
- - margin-bottom: 10px
- - background: rgba(0, 0, 0, 0.4)
- - type: custom:button-card
- template: navbar
- entity: sensor.firewall_gateway_proton_status
- name: Proton GW
- icon: mdi:shield-home
- styles:
- icon:
- - width: 40px
- - height: 40px
- - background-image: url("/local/community/proton-vpn-seeklogo.png")
- - background-size: contain
- - background-repeat: no-repeat
- - background-position: center
- - color: transparent
- card:
- - border-radius: 15px
- - padding: 10px
- - margin-bottom: 10px
- - background: rgba(0, 0, 0, 0.4)
- - type: custom:button-card
- template: navbar
- entity: sensor.speedtest_download
- name: Download
- icon: mdi:download
- styles:
- icon:
- - width: 40px
- - height: 40px
- - background-image: >-
- url("https://cdn-icons-png.flaticon.com/512/4225/4225688.png")
- - background-size: contain
- - background-repeat: no-repeat
- - background-position: center
- - color: transparent
- card:
- - border-radius: 15px
- - padding: 10px
- - margin-bottom: 10px
- - background: rgba(0, 0, 0, 0.4)
- - type: custom:button-card
- template: navbar
- entity: sensor.speedtest_upload
- name: Upload
- icon: mdi:upload
- styles:
- icon:
- - width: 40px
- - height: 40px
- - background-image: >-
- url("https://media.lordicon.com/icons/wired/gradient/2-cloud-upload.svg")
- - background-size: contain
- - background-repeat: no-repeat
- - background-position: center
- - color: transparent
- card:
- - border-radius: 15px
- - padding: 10px
- - margin-bottom: 10px
- - background: rgba(0, 0, 0, 0.5)
- - type: custom:button-card
- template: navbar
- entity: sensor.overseerr_pending_requests_2
- name: Overseerr
- icon: mdi:movie-star
- show_state: true
- state_display: |
- [[[ return entity.state; ]]]
- styles:
- icon:
- - width: 40px
- - height: 40px
- - background-image: >-
- url("https://coolify.io/docs/images/services/overseerr.svg")
- - background-size: contain
- - background-repeat: no-repeat
- - background-position: center
- - color: transparent
- card:
- - border-radius: 15px
- - padding: 10px
- - margin-bottom: 10px
- state:
- - value: 0
- styles:
- card: null
- - operator: '!='
- value: 0
- styles:
- card: null
- - type: custom:button-card
- template: navbar
- entity: binary_sensor.firewall_pending_notices_present
- name: Firewall
- icon: mdi:shield-check
- styles:
- icon:
- - width: 40px
- - height: 40px
- - background-image: url("")
- - background-size: contain
- - background-repeat: no-repeat
- - background-position: center
- - color: green
- card:
- - border-radius: 15px
- - padding: 10px
- - margin-bottom: 10px
- - background: rgba(0, 0, 0, 0.4)
- state:
- - value: 'off'
- styles:
- icon:
- - color: green
- - operator: '!='
- value: 'off'
- styles:
- icon:
- - color: red
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement