From 96735a026fa47e5f443c6744a551708f704cd951 Mon Sep 17 00:00:00 2001 From: Viet Ngoc Date: Tue, 14 Jan 2025 04:19:39 +0100 Subject: [PATCH] :robot: 14-01-25 | :recycle: Updated 35 files :fire: Deleted 10 files :sparkles: Added 1 file -------- - update: footer/footer_system.yaml - update: popup/calendar.yaml - update: button_card_templates/tpl_base.yaml - update: rooms/bedroom.yaml - update: popup/security_sensors.yaml - update: themes/graphite.yaml - update: rooms/apple_tv_card.yaml - update: system-grid/side-columns.yaml - update: rooms/livingroom.yaml - update: config/README.md - update: templates/decluttering-card.yaml - update: popup/airpurifier.yaml - update: views/system.yaml - update: themes/graphite-auto.yaml - update: footer/footer_network.yaml - update: snippets/popup_footer_layout.yaml - update: popup/all_lights.yaml - update: footer/footer_mbproserver.yaml - update: themes/tablet.yaml - update: browser_mod/manifest.json - update: rooms/kitchen.yaml - update: button_card_templates/tpl_climate.yaml - update: button_card_templates/tpl_sectors.yaml - update: snippets/style_popup_footer.yaml - update: system-grid/system-graph.yaml - update: docs/README.md - update: views/main.yaml - update: popup/popup_weather.yaml - update: button_card_templates/tpl_media.yaml - update: templates/streamline-card.yaml - update: popup/thermostat.yaml - update: snippets/style_popup_cardmod.yaml - update: rooms/office.yaml - update: footer/footer_vacuum.yaml - update: rooms/utility.yaml - delete: footer/footer_tablet.yaml - delete: popup/office_flakt.yaml - delete: popup/purifier_popup.yaml - delete: popup/office_monitorer.yaml - delete: footer/footer_router.yaml - delete: popup/owntone.yaml - delete: popup/livingroom_balkong.yaml - delete: popup/popup_kodi.yaml - delete: popup/test_pop.yaml - delete: popup/office_dator.yaml - add: snippets/layout_room_popup.yaml -------- Automated commit via script --- config/README.md | 6 +- .../browser_mod/manifest.json | 2 +- .../dashboards/shared/popup/airpurifier.yaml | 282 +++--- .../dashboards/shared/popup/all_lights.yaml | 1 + config/dashboards/shared/popup/calendar.yaml | 133 ++- .../popup/footer/footer_mbproserver.yaml | 176 ++-- .../shared/popup/footer/footer_network.yaml | 299 +++--- .../shared/popup/footer/footer_router.yaml | 74 -- .../shared/popup/footer/footer_system.yaml | 378 ++++---- .../shared/popup/footer/footer_tablet.yaml | 127 --- .../shared/popup/footer/footer_vacuum.yaml | 212 +++-- .../shared/popup/livingroom_balkong.yaml | 21 - .../dashboards/shared/popup/office_dator.yaml | 151 --- .../dashboards/shared/popup/office_flakt.yaml | 22 - .../shared/popup/office_monitorer.yaml | 78 -- config/dashboards/shared/popup/owntone.yaml | 423 --------- .../dashboards/shared/popup/popup_kodi.yaml | 51 - .../shared/popup/popup_weather.yaml | 118 +-- .../shared/popup/purifier_popup.yaml | 32 - .../shared/popup/rooms/apple_tv_card.yaml | 66 +- .../shared/popup/rooms/bedroom.yaml | 15 +- .../shared/popup/rooms/kitchen.yaml | 11 +- .../shared/popup/rooms/livingroom.yaml | 12 +- .../dashboards/shared/popup/rooms/office.yaml | 12 +- .../shared/popup/rooms/utility.yaml | 12 +- .../shared/popup/security_sensors.yaml | 112 +-- config/dashboards/shared/popup/test_pop.yaml | 879 ------------------ .../dashboards/shared/popup/thermostat.yaml | 119 +-- .../shared/snippets/layout_room_popup.yaml | 9 + .../shared/snippets/popup_footer_layout.yaml | 10 +- .../shared/snippets/style_popup_cardmod.yaml | 9 +- .../shared/snippets/style_popup_footer.yaml | 18 +- .../button_card_templates/tpl_base.yaml | 16 +- .../button_card_templates/tpl_climate.yaml | 26 +- .../button_card_templates/tpl_media.yaml | 328 ------- .../button_card_templates/tpl_sectors.yaml | 84 +- .../templates/decluttering-card.yaml | 2 +- .../dashboards/templates/streamline-card.yaml | 1 - config/dashboards/views/main.yaml | 5 +- .../views/system-grid/side-columns.yaml | 2 +- .../views/system-grid/system-graph.yaml | 7 +- config/dashboards/views/system.yaml | 17 +- config/themes/graphite-auto.yaml | 7 +- config/themes/graphite.yaml | 2 +- config/themes/tablet.yaml | 51 +- docs/README.md | 6 +- 46 files changed, 1104 insertions(+), 3320 deletions(-) delete mode 100644 config/dashboards/shared/popup/footer/footer_router.yaml delete mode 100644 config/dashboards/shared/popup/footer/footer_tablet.yaml delete mode 100755 config/dashboards/shared/popup/livingroom_balkong.yaml delete mode 100755 config/dashboards/shared/popup/office_dator.yaml delete mode 100755 config/dashboards/shared/popup/office_flakt.yaml delete mode 100755 config/dashboards/shared/popup/office_monitorer.yaml delete mode 100755 config/dashboards/shared/popup/owntone.yaml delete mode 100644 config/dashboards/shared/popup/popup_kodi.yaml delete mode 100755 config/dashboards/shared/popup/purifier_popup.yaml delete mode 100644 config/dashboards/shared/popup/test_pop.yaml create mode 100644 config/dashboards/shared/snippets/layout_room_popup.yaml diff --git a/config/README.md b/config/README.md index c3d9e0a..afff3e7 100644 --- a/config/README.md +++ b/config/README.md @@ -37,15 +37,15 @@ https://github.com/ngocjohn/hass-config/assets/96962827/acc1a4db-b92e-4ab1-ac9d- - 36,209 + 36,233 32 164 63 54 32 - 1070 + 1071 215 - 37 + 38 diff --git a/config/custom_components/browser_mod/manifest.json b/config/custom_components/browser_mod/manifest.json index f74e200..116a060 100644 --- a/config/custom_components/browser_mod/manifest.json +++ b/config/custom_components/browser_mod/manifest.json @@ -13,5 +13,5 @@ "documentation": "https://github.com/thomasloven/hass-browser_mod/blob/master/README.md", "iot_class": "local_push", "requirements": [], - "version": "2.3.2" + "version": "2.3.3" } \ No newline at end of file diff --git a/config/dashboards/shared/popup/airpurifier.yaml b/config/dashboards/shared/popup/airpurifier.yaml index fcceeef..a220736 100755 --- a/config/dashboards/shared/popup/airpurifier.yaml +++ b/config/dashboards/shared/popup/airpurifier.yaml @@ -3,144 +3,146 @@ browser_mod: service: browser_mod.popup data: title: Air Purifier - style: !include ../snippets/style_footer_transparent.yaml - card_mod: !include ../snippets/style_popup_footer.yaml + style: > + --max-popup-column: 3; content: - type: custom:layout-card - layout_type: custom:grid-layout - layout: !include ../snippets/popup_footer_layout.yaml - cards: - ################################################# - # # - # AIR PURIFIERS # - # # - ################################################# - - type: entities - title: Living Room - show_header_toggle: false - card_mod: - class: header - entities: - - type: custom:purifier-card - entity: fan.dyson_ph04 - show_name: false - show_state: true - show_toolbar: true - compact_view: false - aqi: - entity_id: sensor.dyson_ph04_pm_2_5 - unit: µg/m³ - stats: - - entity_id: sensor.dyson_ph04_filter_life - subtitle: Filter life - unit: '%' - - attribute: percentage - subtitle: Level - unit: '%' - - entity_id: switch.dyson_ph04_night_mode - subtitle: Night Mode - shortcuts: - - name: Auto - icon: mdi:fan-auto - preset_mode: Auto - - name: 30% - icon: mdi:fan-speed-1 - percentage: 30 - - name: 50% - icon: mdi:fan-speed-2 - percentage: 50 - - name: 70% - icon: mdi:fan-speed-3 - percentage: 70 - - name: 100% - icon: mdi:weather-tornado - percentage: 100 - - - type: entities - title: Bedroom - show_header_toggle: false - card_mod: - class: header - entities: - - type: custom:purifier-card - entity: fan.zhimi_mb3_8b86_air_purifier - stats: - - entity_id: sensor.zhimi_mb3_8b86_filter_life_level - unit: '%' - subtitle: Filter Remaining - - entity_id: sensor.zhimi_mb3_8b86_motor_speed - unit: RPM - subtitle: Motor Speed - shortcuts: - - name: Sleep - icon: mdi:weather-night - preset_mode: Sleep - - name: 33% - icon: mdi:fan-speed-1 - percentage: 33 - - name: 66% - icon: mdi:fan-speed-2 - percentage: 66 - - name: 100% - icon: mdi:fan-speed-3 - percentage: 100 - - name: Auto - icon: mdi:fan-auto - preset_mode: Auto - show_name: false - show_state: true - show_toolbar: true - compact_view: false - aqi: - entity_id: sensor.zhimi_mb3_8b86_pm25 - unit: µg/m³ - - type: entities - title: Office - show_header_toggle: false - card_mod: - class: header - entities: - - type: custom:purifier-card - entity: fan.zhimi_mb4_b008_air_purifier - stats: - - entity_id: sensor.zhimi_mb4_b008_filter_life_level - unit: '%' - subtitle: Filter Remaining - - entity_id: sensor.zhimi_mb4_b008_moto_speed_rpm - unit: RPM - subtitle: Motor Speed - shortcuts: - - name: Silent - icon: mdi:weather-night - preset_mode: Silent - - name: 50% - icon: mdi:fan-speed-1 - preset_mode: Favorite - service: number.set_value - service_data: - entity_id: number.zhimi_mb4_b008_favorite_speed - value: '1300' - - name: 75% - icon: mdi:fan-speed-2 - preset_mode: Favorite - service: number.set_value - service_data: - entity_id: number.zhimi_mb4_b008_favorite_speed - value: '1700' - - name: 100% - icon: mdi:fan-speed-3 - preset_mode: Favorite - service: number.set_value - service_data: - entity_id: number.zhimi_mb4_b008_favorite_speed - value: '2200' - - name: Auto - icon: mdi:fan-auto - preset_mode: Auto - show_name: false - show_state: true - show_toolbar: true - compact_view: false - aqi: - entity_id: sensor.zhimi_mb4_b008_pm25_density - unit: µg/m³ + type: custom:mod-card + card_mod: !include ../snippets/style_popup_footer.yaml + card: + type: custom:layout-card + layout_type: custom:grid-layout + layout: !include ../snippets/popup_footer_layout.yaml + cards: + ################################################# + # # + # AIR PURIFIERS # + # # + ################################################# + - type: entities + title: Living Room + show_header_toggle: false + card_mod: + class: header + entities: + - type: custom:purifier-card + entity: fan.dyson_ph04 + show_name: false + show_state: true + show_toolbar: true + compact_view: false + aqi: + entity_id: sensor.dyson_ph04_pm_2_5 + unit: µg/m³ + stats: + - entity_id: sensor.dyson_ph04_filter_life + subtitle: Filter life + unit: '%' + - attribute: percentage + subtitle: Level + unit: '%' + - entity_id: switch.dyson_ph04_night_mode + subtitle: Night Mode + shortcuts: + - name: Auto + icon: mdi:fan-auto + preset_mode: Auto + - name: 30% + icon: mdi:fan-speed-1 + percentage: 30 + - name: 50% + icon: mdi:fan-speed-2 + percentage: 50 + - name: 70% + icon: mdi:fan-speed-3 + percentage: 70 + - name: 100% + icon: mdi:weather-tornado + percentage: 100 + - type: entities + title: Bedroom + show_header_toggle: false + card_mod: + class: header + entities: + - type: custom:purifier-card + entity: fan.zhimi_mb3_8b86_air_purifier + stats: + - entity_id: sensor.zhimi_mb3_8b86_filter_life_level + unit: '%' + subtitle: Filter Remaining + - entity_id: sensor.zhimi_mb3_8b86_motor_speed + unit: RPM + subtitle: Motor Speed + shortcuts: + - name: Sleep + icon: mdi:weather-night + preset_mode: Sleep + - name: 33% + icon: mdi:fan-speed-1 + percentage: 33 + - name: 66% + icon: mdi:fan-speed-2 + percentage: 66 + - name: 100% + icon: mdi:fan-speed-3 + percentage: 100 + - name: Auto + icon: mdi:fan-auto + preset_mode: Auto + show_name: false + show_state: true + show_toolbar: true + compact_view: false + aqi: + entity_id: sensor.zhimi_mb3_8b86_pm25 + unit: µg/m³ + - type: entities + title: Office + show_header_toggle: false + card_mod: + class: header + entities: + - type: custom:purifier-card + entity: fan.zhimi_mb4_b008_air_purifier + stats: + - entity_id: sensor.zhimi_mb4_b008_filter_life_level + unit: '%' + subtitle: Filter Remaining + - entity_id: sensor.zhimi_mb4_b008_moto_speed_rpm + unit: RPM + subtitle: Motor Speed + shortcuts: + - name: Silent + icon: mdi:weather-night + preset_mode: Silent + - name: 50% + icon: mdi:fan-speed-1 + preset_mode: Favorite + service: number.set_value + service_data: + entity_id: number.zhimi_mb4_b008_favorite_speed + value: '1300' + - name: 75% + icon: mdi:fan-speed-2 + preset_mode: Favorite + service: number.set_value + service_data: + entity_id: number.zhimi_mb4_b008_favorite_speed + value: '1700' + - name: 100% + icon: mdi:fan-speed-3 + preset_mode: Favorite + service: number.set_value + service_data: + entity_id: number.zhimi_mb4_b008_favorite_speed + value: '2200' + - name: Auto + icon: mdi:fan-auto + preset_mode: Auto + show_name: false + show_state: true + show_toolbar: true + compact_view: false + aqi: + entity_id: sensor.zhimi_mb4_b008_pm25_density + unit: µg/m³ diff --git a/config/dashboards/shared/popup/all_lights.yaml b/config/dashboards/shared/popup/all_lights.yaml index d090324..fe07075 100755 --- a/config/dashboards/shared/popup/all_lights.yaml +++ b/config/dashboards/shared/popup/all_lights.yaml @@ -11,6 +11,7 @@ browser_mod: card_mod: style: .: | + content: type: custom:auto-entities filter: diff --git a/config/dashboards/shared/popup/calendar.yaml b/config/dashboards/shared/popup/calendar.yaml index 9ad82fa..e30d894 100644 --- a/config/dashboards/shared/popup/calendar.yaml +++ b/config/dashboards/shared/popup/calendar.yaml @@ -3,6 +3,8 @@ browser_mod: service: browser_mod.popup data: title: Calendar + style: > + --max-popup-column: 2; card_mod: !include ../snippets/style_popup_footer.yaml content: type: custom:layout-card @@ -41,24 +43,115 @@ browser_mod: .cal-card { padding: 0px !important; } - - type: custom:atomic-calendar-revive - enableModeChange: true - entities: - - entity: calendar.ceske_statni_svatky - name: České státní svátky - - entity: calendar.home_assistant_devs - name: Home assistant devs - - entity: calendar.personal - name: Personal - - entity: calendar.ram_va_mung_mot_2020_2040_hass_konnected - name: Lunar - defaultMode: Event - europeanDate: true - showFullDayProgress: true - showDatePerEvent: true - showWeekNumber: true + - type: entities + title: Lunar Phase + card_mod: + class: header nopadding + entities: + - type: custom:lunar-phase-card card_mod: - style: | - ha-card { - padding: 4px !important; - } + style: + .: | + ha-card { + background-color: transparent !important; + justify-content: flex-start !important; + box-shadow: none !important; + } + lunar-base-data $: | + .swiper-container { + backdrop-filter: none !important; + } + entity: '' + 12hr_format: false + calendar_modal: false + compact_view: false + default_card: base + hide_buttons: true + mile_unit: false + moon_position: left + number_decimals: 2 + selected_language: en + show_background: false + southern_hemisphere: false + use_custom: false + use_default: true + use_entity: false + graph_config: + graph_type: default + y_ticks: false + x_ticks: true + show_time: true + show_current: true + show_highest: true + y_ticks_position: left + y_ticks_step_size: 30 + time_step_size: 30 + show_legend: true + legend_position: top + legend_align: center + font_customize: + header_font_size: x-large + header_font_style: capitalize + header_font_color: '' + label_font_size: auto + label_font_style: none + label_font_color: '' + hide_label: false + hide_header: true + latitude: 50.060362328075634 + longitude: 14.399342536926271 + location: + city: Capital City of Prague + country: Czechia + custom_background: >- + https://cdn.jsdelivr.net/gh/ngocjohn/lunar-phase-card@1.7.3/background/moon_bg_1.png + footer: + type: custom:lunar-phase-card + entity: '' + 12hr_format: false + calendar_modal: false + compact_view: true + default_card: horizon + hide_buttons: true + mile_unit: false + moon_position: left + number_decimals: 2 + selected_language: en + show_background: false + southern_hemisphere: false + use_custom: false + use_default: true + use_entity: false + graph_config: + graph_type: dynamic + y_ticks: false + x_ticks: true + show_time: true + show_current: true + show_highest: true + y_ticks_position: left + y_ticks_step_size: 30 + time_step_size: 30 + show_legend: true + legend_position: top + legend_align: center + font_customize: + header_font_size: x-large + header_font_style: capitalize + header_font_color: '' + label_font_size: auto + label_font_style: none + label_font_color: '' + hide_label: false + hide_header: true + latitude: 50.060362328075634 + longitude: 14.399342536926271 + location: + city: Capital City of Prague + country: Czechia + card_mod: + style: | + ha-card { + background-color: transparent !important; + box-shadow: none !important; + } diff --git a/config/dashboards/shared/popup/footer/footer_mbproserver.yaml b/config/dashboards/shared/popup/footer/footer_mbproserver.yaml index 38ee5e1..c2e751c 100644 --- a/config/dashboards/shared/popup/footer/footer_mbproserver.yaml +++ b/config/dashboards/shared/popup/footer/footer_mbproserver.yaml @@ -3,96 +3,98 @@ browser_mod: service: browser_mod.popup data: title: MBPro Server - card_mod: !include ../../snippets/style_popup_footer.yaml content: - type: custom:layout-card - layout_type: custom:grid-layout - layout: !include ../../snippets/popup_footer_layout.yaml - cards: - ################################################# - # # - # HOME ASSISTANT # - # # - ################################################# - - type: entities - title: ' ' - show_header_toggle: false - entities: - - entity: binary_sensor.macbookpro - name: Active - state_color: true - - entity: sensor.mbproserver_connection_type - name: Connection - - entity: sensor.mbpro_uptime_usage - name: Uptime - - type: custom:bar-card - width: 55% - height: 2em - decimal: 0 - unit_of_measurement: '%' - positions: &bar_card_positions - icon: outside - indicator: 'off' - name: outside - severity: &bar_card_severity - - color: '#9da0a2' - from: 0 - to: 59 - - color: '#9da0a2' - from: 60 - to: 100 - entity_row: true + type: custom:mod-card + card_mod: !include ../../snippets/style_popup_footer.yaml + card: + type: custom:layout-card + layout_type: custom:grid-layout + layout: !include ../../snippets/popup_footer_layout.yaml + cards: + ################################################# + # # + # HOME ASSISTANT # + # # + ################################################# + - type: entities + title: ' ' + show_header_toggle: false + entities: + - entity: binary_sensor.macbookpro + name: Active + state_color: true + - entity: sensor.mbproserver_connection_type + name: Connection + - entity: sensor.mbpro_uptime_usage + name: Uptime + - type: custom:bar-card + width: 55% + height: 2em + decimal: 0 + unit_of_measurement: '%' + positions: &bar_card_positions + icon: outside + indicator: 'off' + name: outside + severity: &bar_card_severity + - color: '#9da0a2' + from: 0 + to: 59 + - color: '#9da0a2' + from: 60 + to: 100 + entity_row: true + entities: + - entity: sensor.mbpro_cpu_usage + name: Processor + - entity: sensor.mbpro_memory_usage + name: Memory + - type: custom:hui-horizontal-stack-card + cards: + - type: custom:button-card + name: Lock + icon: mdi:lock + tap_action: + action: call-service + service: shell_command.lock_mbpro + template: icon_name + - type: custom:button-card + name: Sleep + icon: mdi:power-sleep + tap_action: + action: call-service + service: shell_command.sleep_mbpro + template: icon_name + footer: + type: custom:mini-graph-card + # name: Speedtest + tap_action: + action: call-service + service: homeassistant.update_entity + service_data: + entity_id: sensor.mbpro_cpu_usage entities: - entity: sensor.mbpro_cpu_usage name: Processor + color: '#00bb33' - entity: sensor.mbpro_memory_usage name: Memory - - type: custom:hui-horizontal-stack-card - cards: - - type: custom:button-card - name: Lock - icon: mdi:lock - tap_action: - action: call-service - service: shell_command.lock_mbpro - template: icon_name - - type: custom:button-card - name: Sleep - icon: mdi:power-sleep - tap_action: - action: call-service - service: shell_command.sleep_mbpro - template: icon_name - footer: - type: custom:mini-graph-card - # name: Speedtest - tap_action: - action: call-service - service: homeassistant.update_entity - service_data: - entity_id: sensor.mbpro_cpu_usage - entities: - - entity: sensor.mbpro_cpu_usage - name: Processor - color: '#00bb33' - - entity: sensor.mbpro_memory_usage - name: Memory - show_state: false - color: '#2196f3' - y_axis: secondary - hours_to_show: 48 - hour24: true - line_width: 3 - animate: true - # upper_bound_secondary: 100 - show: - name: false - icon: false - state: false - legend: false - fill: fade - labels: true - labels_secondary: false - average: false - extrema: false - points: hover + show_state: false + color: '#2196f3' + y_axis: secondary + hours_to_show: 48 + hour24: true + line_width: 3 + animate: true + # upper_bound_secondary: 100 + show: + name: false + icon: false + state: false + legend: false + fill: fade + labels: true + labels_secondary: false + average: false + extrema: false + points: hover diff --git a/config/dashboards/shared/popup/footer/footer_network.yaml b/config/dashboards/shared/popup/footer/footer_network.yaml index 4471fd3..4c296b9 100755 --- a/config/dashboards/shared/popup/footer/footer_network.yaml +++ b/config/dashboards/shared/popup/footer/footer_network.yaml @@ -3,155 +3,158 @@ browser_mod: service: browser_mod.popup data: title: Network - - card_mod: !include ../../snippets/style_popup_footer.yaml + style: > + --max-popup-column: 2; content: - type: custom:layout-card - layout_type: custom:grid-layout - layout: !include ../../snippets/popup_footer_layout.yaml - cards: - ################################################# - # # - # UNIFI ACCES POINT # - # # - ################################################# - - type: entities - title: Access Points - show_header_toggle: false - card_mod: - class: header + type: custom:mod-card + card_mod: !include ../../snippets/style_popup_footer.yaml + card: + type: custom:layout-card + layout_type: custom:grid-layout + layout: !include ../../snippets/popup_footer_layout.yaml + cards: + ################################################# + # # + # UNIFI ACCES POINT # + # # + ################################################# + - type: entities + title: Access Points + show_header_toggle: false + card_mod: + class: header - entities: - - type: custom:tabbed-card - styles: # global styles applied to all tabs - --mdc-theme-primary: 'rgba(250, 250, 250, 0.75)' - --mdc-tab-text-label-color-default: '#97989c' - --mdc-typography-button-font-size: 1em - tabs: - - !include ../../hidden/ap_office.yaml - - !include ../../hidden/ap_bedroom.yaml - - !include ../../hidden/ap_wall.yaml - - type: divider - - type: custom:hui-horizontal-stack-card - cards: - - type: custom:button-card - name: Vodafone - icon: mdi:router-wireless - tap_action: - action: url - url_path: !secret router_url - template: icon_name - - type: custom:button-card - name: Unifi - icon: phu:ubiquiti-logo - template: - - icon_name - - > - [[[ - return window.navigator.userAgent.match(/iPhone/i) - ? 'unifi_ios' - : 'unifi_web'; - ]]] - - type: custom:button-card - name: ZigBee - icon: si:zigbee - tap_action: - action: fire-dom-event - browser_mod: - service: browser_mod.popup - data: - title: 'ZigBee map' - size: fullscreen - content: - type: iframe - url: /api/hassio_ingress/Ew2YSafnnerR2_NXuuOG-3KWDZvnNgFBSfdzoUmcR_Y/#/map - template: - - icon_name - ################################################# - # # - # UNIFI CONTROLLER # - # # - ################################################# - - type: entities - title: Router - show_header_toggle: false - card_mod: - class: header - entities: - - entity: binary_sensor.arris_tg3442de_wan_status - name: WAN Status - # - entity: sensor.external_ip - # - entity: binary_sensor.template_unifi_upgradable - # - entity: sensor.template_ap_adopted - - type: custom:multiple-entity-row - entity: sensor.unifi_controller_clients - icon: mdi:devices - name: 'Total Clients' - show_state: false - secondary_info: - entity: sensor.unifi_controller_clients - unit: true - entities: - - attribute: wifi0 - name: 2.4GhZ - unit: ' ' - - attribute: wifi1 - name: 5GhZ - unit: ' ' - - attribute: wired - name: Wired - unit: ' ' - - type: custom:multiple-entity-row - entity: binary_sensor.unifi_controller_alert - name: 'Alert' - state_color: true - show_state: true - secondary_info: - attribute: Message - entities: - - icon: mdi:archive-minus - tap_action: - action: call-service - confirmation: - text: Are you sure you want to archive? - service: input_button.press - service_data: - entity_id: input_button.unifi_archive_alerts - footer: - type: custom:mini-graph-card - name: Speedtest - tap_action: - action: call-service - service: homeassistant.update_entity - service_data: - entity_id: sensor.speedtest_download entities: - - entity: sensor.speedtest_download - name: Download - color: '#00bb33' - - entity: sensor.speedtest_upload - name: Upload - show_state: false - color: '#2196f3' - y_axis: secondary - hours_to_show: 48 - hour24: true - line_width: 3 - animate: true - upper_bound_secondary: 100 - show: - name: True - icon: false - state: true - legend: true - fill: fade - labels: true - labels_secondary: false - average: true - extrema: true - points: hover + - type: custom:tabbed-card + styles: # global styles applied to all tabs + --mdc-theme-primary: 'rgba(250, 250, 250, 0.75)' + --mdc-tab-text-label-color-default: '#97989c' + --mdc-typography-button-font-size: 1em + tabs: + - !include ../../hidden/ap_office.yaml + - !include ../../hidden/ap_bedroom.yaml + - !include ../../hidden/ap_wall.yaml + - type: divider + - type: custom:hui-horizontal-stack-card + cards: + - type: custom:button-card + name: Vodafone + icon: mdi:router-wireless + tap_action: + action: url + url_path: !secret router_url + template: icon_name + - type: custom:button-card + name: Unifi + icon: phu:ubiquiti-logo + template: + - icon_name + - > + [[[ + return window.navigator.userAgent.match(/iPhone/i) + ? 'unifi_ios' + : 'unifi_web'; + ]]] + - type: custom:button-card + name: ZigBee + icon: si:zigbee + tap_action: + action: fire-dom-event + browser_mod: + service: browser_mod.popup + data: + title: 'ZigBee map' + size: fullscreen + content: + type: iframe + url: /api/hassio_ingress/Ew2YSafnnerR2_NXuuOG-3KWDZvnNgFBSfdzoUmcR_Y/#/map + template: + - icon_name + ################################################# + # # + # UNIFI CONTROLLER # + # # + ################################################# + - type: entities + title: Router + show_header_toggle: false card_mod: - style: | - .info__item__time { - display: none !important; - } + class: header + entities: + - entity: binary_sensor.arris_tg3442de_wan_status + name: WAN Status + # - entity: sensor.external_ip + # - entity: binary_sensor.template_unifi_upgradable + # - entity: sensor.template_ap_adopted + - type: custom:multiple-entity-row + entity: sensor.unifi_controller_clients + icon: mdi:devices + name: 'Total Clients' + show_state: false + secondary_info: + entity: sensor.unifi_controller_clients + unit: true + entities: + - attribute: wifi0 + name: 2.4GhZ + unit: ' ' + - attribute: wifi1 + name: 5GhZ + unit: ' ' + - attribute: wired + name: Wired + unit: ' ' + - type: custom:multiple-entity-row + entity: binary_sensor.unifi_controller_alert + name: 'Alert' + state_color: true + show_state: true + secondary_info: + attribute: Message + entities: + - icon: mdi:archive-minus + tap_action: + action: call-service + confirmation: + text: Are you sure you want to archive? + service: input_button.press + service_data: + entity_id: input_button.unifi_archive_alerts + footer: + type: custom:mini-graph-card + name: Speedtest + tap_action: + action: call-service + service: homeassistant.update_entity + service_data: + entity_id: sensor.speedtest_download + entities: + - entity: sensor.speedtest_download + name: Download + color: '#00bb33' + - entity: sensor.speedtest_upload + name: Upload + show_state: false + color: '#2196f3' + y_axis: secondary + hours_to_show: 48 + hour24: true + line_width: 3 + animate: true + upper_bound_secondary: 100 + show: + name: True + icon: false + state: true + legend: true + fill: fade + labels: true + labels_secondary: false + average: true + extrema: true + points: hover + card_mod: + style: | + .info__item__time { + display: none !important; + } diff --git a/config/dashboards/shared/popup/footer/footer_router.yaml b/config/dashboards/shared/popup/footer/footer_router.yaml deleted file mode 100644 index cb4171b..0000000 --- a/config/dashboards/shared/popup/footer/footer_router.yaml +++ /dev/null @@ -1,74 +0,0 @@ -update_entities: - action: > - [[[ - hass.callService('homeassistant', 'update_entity', { - entity_id: [ - 'binary_sensor.template_internet' - ] - }); - ]]] -action: fire-dom-event -browser_mod: - service: browser_mod.popup - data: - title: Unifi Network - card_mod: - style: - #popup header - .: - content: - type: vertical-stack - cards: - - type: entities - state_color: true - card_mod: - class: content - entities: - - entity: binary_sensor.template_internet - secondary_info: last-changed - - entity: sensor.template_udm_cpu_temp - name: CPU Temperatur - # - type: custom:bar-card - # width: 55% - # height: 2em - # decimal: 0 - # unit_of_measurement: '%' - # positions: - # icon: outside - # indicator: 'off' - # name: outside - # severity: - # - color: '#6d2525' - # from: 90 - # to: 999 - # entity_row: true - # entities: - # - entity: sensor.template_udm_cpu - # - entity: sensor.template_udm_mem - # - entity: sensor.template_udm_disk - - entity: sensor.template_udm_uptime - - type: custom:mod-card - card_mod: - style: - hui-horizontal-stack-card$: | - #root { - justify-content: space-evenly !important; - padding: var(--tablet-popup-button-padding); - } - card: - type: horizontal-stack - cards: - - type: custom:button-card - name: Nätverksenheter - icon: mdi:devices - tap_action: - action: url - url_path: https://192.168.1.1/network/default/clients - template: icon_name - - type: custom:button-card - name: System - icon: mdi:cog - tap_action: - action: url - url_path: https://192.168.1.1/settings/system - template: icon_name diff --git a/config/dashboards/shared/popup/footer/footer_system.yaml b/config/dashboards/shared/popup/footer/footer_system.yaml index d881e11..6c14c31 100644 --- a/config/dashboards/shared/popup/footer/footer_system.yaml +++ b/config/dashboards/shared/popup/footer/footer_system.yaml @@ -3,195 +3,199 @@ browser_mod: service: browser_mod.popup data: title: System Information - card_mod: !include ../../snippets/style_popup_footer.yaml + style: > + --max-popup-column: 3; content: - type: custom:layout-card - layout_type: custom:grid-layout - layout: !include ../../snippets/popup_footer_layout.yaml - cards: - ################################################# - # # - # HOME ASSISTANT # - # # - ################################################# - - type: entities - title: Home Assistant - show_header_toggle: false - card_mod: - class: header - entities: - - entity: sensor.current_version - name: Installed - icon: mdi:home-assistant - # - entity: sensor.home_assistant_versions - # name: Latest - - entity: sensor.template_hass_next_release - - entity: sensor.ha_db - name: Database - icon: mdi:database - # - entity: sensor.home_assistant_log_size - # name: Logfile - # icon: mdi:file-document - # - type: attribute - # entity: sensor.backup_state - # attribute: last_backup - # name: Last backup - # icon: mdi:cloud-upload - # format: relative - - type: custom:bar-card - width: 55% - height: 2em - decimal: 0 - # unit_of_measurement: '%' - positions: &bar_card_positions - icon: outside - indicator: 'off' - name: outside - severity: &bar_card_severity - - color: '#9da0a2' - from: 0 - to: 59 - - color: '#6d2525' - from: 60 - to: 100 - entity_row: true - entities: - - entity: sensor.ha_system_cpu_usage - name: Processor - - entity: sensor.ha_system_cpu_thermal_0_temperature - name: Temperature - icon: mdi:thermostat - - entity: sensor.ha_system_memory_usage - name: Memory - icon: mdi:memory - - entity: sensor.ha_system_data_disk_usage - name: Disk used - icon: mdi:harddisk - - - type: custom:hui-horizontal-stack-card - cards: - - type: custom:button-card - name: Restart - icon: mdi:reload - tap_action: - action: call-service - confirmation: - text: Are you sure you want to restart? - service: homeassistant.restart - template: icon_name - - type: custom:button-card - name: Reload YAML - icon: mdi:reload - tap_action: - action: call-service - service: browser_mod.sequence - service_data: - sequence: - - service: browser_mod.notification - data: - message: Reload all YAML configuration... - - service: homeassistant.reload_all - template: icon_name - ################################################# - # # - # Raspberry Docker # - # # - ################################################# - - type: entities - title: Raspberry Docker - show_header_toggle: false - card_mod: - class: header - entities: - - entity: binary_sensor.192_168_0_146 - icon: si:docker - state_color: true - name: Raspberry Docker - - entity: switch.watchtower - - type: attribute - entity: sensor.rpi_monitor_docker - attribute: up_time - name: Uptime - icon: mdi:update - - type: custom:bar-card - width: 55% - height: 2em - decimal: 0 - positions: *bar_card_positions - severity: *bar_card_severity - entity_row: true - entities: - - entity: sensor.rpi_monitor_docker_rpi_cpu_use_pidocker - name: Processor - icon: mdi:chip - tap_action: - action: call-service - service: homeassistant.update_entity - service_data: - entity_id: sensor.rpi_monitor_docker_rpi_cpu_use_pidocker - - entity: sensor.rpi_monitor_docker_rpi_temp_pidocker - name: Temperature - icon: mdi:thermostat - - entity: sensor.rpi_monitor_docker_rpi_used_pidocker - name: Memory 4GB - icon: mdi:memory - tap_action: - action: call-service - service: homeassistant.update_entity - service_data: - entity_id: sensor.sensor.rpi_monitor_docker_rpi_used_pidocker - - entity: sensor.rpi_monitor_docker - type: attribute - attribute: fs_free_prcnt - name: SD used 32GB - icon: mdi:content-save - unit_of_measurement: '%' - tap_action: - action: call-service - service: homeassistant.update_entity - service_data: - entity_id: sensor.rpi_monitor_docker - - type: custom:hui-horizontal-stack-card - cards: - - type: custom:button-card - name: Reboot RPI - icon: mdi:reload - tap_action: - action: call-service - confirmation: - text: Are you sure you want to restart? - service: script.restart_pi_docker - template: icon_name - - type: custom:button-card - name: Purge logs - icon: mdi:archive-remove - tap_action: - action: call-service - service: script.purge_dockerlog - template: icon_name - ################################################# - # # - # CONTAINERS # - # # - ################################################# + type: custom:mod-card + card_mod: !include ../../snippets/style_popup_footer.yaml + card: + type: custom:layout-card + layout_type: custom:grid-layout + layout: !include ../../snippets/popup_footer_layout.yaml + cards: + ################################################# + # # + # HOME ASSISTANT # + # # + ################################################# + - type: entities + title: Home Assistant + show_header_toggle: false + card_mod: + class: header + entities: + - entity: sensor.current_version + name: Installed + icon: mdi:home-assistant + # - entity: sensor.home_assistant_versions + # name: Latest + - entity: sensor.template_hass_next_release + - entity: sensor.ha_db + name: Database + icon: mdi:database + # - entity: sensor.home_assistant_log_size + # name: Logfile + # icon: mdi:file-document + # - type: attribute + # entity: sensor.backup_state + # attribute: last_backup + # name: Last backup + # icon: mdi:cloud-upload + # format: relative + - type: custom:bar-card + width: 55% + height: 2em + decimal: 0 + # unit_of_measurement: '%' + positions: &bar_card_positions + icon: outside + indicator: 'off' + name: outside + severity: &bar_card_severity + - color: '#9da0a2' + from: 0 + to: 59 + - color: '#6d2525' + from: 60 + to: 100 + entity_row: true + entities: + - entity: sensor.ha_system_cpu_usage + name: Processor + - entity: sensor.ha_system_cpu_thermal_0_temperature + name: Temperature + icon: mdi:thermostat + - entity: sensor.ha_system_memory_usage + name: Memory + icon: mdi:memory + - entity: sensor.ha_system_data_disk_usage + name: Disk used + icon: mdi:harddisk - - type: custom:auto-entities - card: - type: entities - title: Containers + - type: custom:hui-horizontal-stack-card + cards: + - type: custom:button-card + name: Restart + icon: mdi:reload + tap_action: + action: call-service + confirmation: + text: Are you sure you want to restart? + service: homeassistant.restart + template: icon_name + - type: custom:button-card + name: Reload YAML + icon: mdi:reload + tap_action: + action: call-service + service: browser_mod.sequence + service_data: + sequence: + - service: browser_mod.notification + data: + message: Reload all YAML configuration... + - service: homeassistant.reload_all + template: icon_name + ################################################# + # # + # Raspberry Docker # + # # + ################################################# + - type: entities + title: Raspberry Docker show_header_toggle: false card_mod: class: header - # no border on last card - filter: - template: | - {% for sensor in states.sensor -%} - {%- if sensor.entity_id | regex_match('sensor.docker_',ignorecase=False) -%} - {%- set name = state_attr(sensor.entity_id, "friendly_name") | regex_replace(find='Docker ', replace='') | capitalize -%} - {{ - { 'entity': sensor.entity_id, - 'name': name, - 'state_color': true, - } }}, - {%- endif -%} - {%- endfor %} + entities: + - entity: binary_sensor.192_168_0_146 + icon: si:docker + state_color: true + name: Raspberry Docker + - entity: switch.watchtower + - type: attribute + entity: sensor.rpi_monitor_docker + attribute: up_time + name: Uptime + icon: mdi:update + - type: custom:bar-card + width: 55% + height: 2em + decimal: 0 + positions: *bar_card_positions + severity: *bar_card_severity + entity_row: true + entities: + - entity: sensor.rpi_monitor_docker_rpi_cpu_use_pidocker + name: Processor + icon: mdi:chip + tap_action: + action: call-service + service: homeassistant.update_entity + service_data: + entity_id: sensor.rpi_monitor_docker_rpi_cpu_use_pidocker + - entity: sensor.rpi_monitor_docker_rpi_temp_pidocker + name: Temperature + icon: mdi:thermostat + - entity: sensor.rpi_monitor_docker_rpi_used_pidocker + name: Memory 4GB + icon: mdi:memory + tap_action: + action: call-service + service: homeassistant.update_entity + service_data: + entity_id: sensor.sensor.rpi_monitor_docker_rpi_used_pidocker + - entity: sensor.rpi_monitor_docker + type: attribute + attribute: fs_free_prcnt + name: SD used 32GB + icon: mdi:content-save + unit_of_measurement: '%' + tap_action: + action: call-service + service: homeassistant.update_entity + service_data: + entity_id: sensor.rpi_monitor_docker + - type: custom:hui-horizontal-stack-card + cards: + - type: custom:button-card + name: Reboot RPI + icon: mdi:reload + tap_action: + action: call-service + confirmation: + text: Are you sure you want to restart? + service: script.restart_pi_docker + template: icon_name + - type: custom:button-card + name: Purge logs + icon: mdi:archive-remove + tap_action: + action: call-service + service: script.purge_dockerlog + template: icon_name + ################################################# + # # + # CONTAINERS # + # # + ################################################# + + - type: custom:auto-entities + card: + type: entities + title: Containers + show_header_toggle: false + card_mod: + class: header + # no border on last card + filter: + template: | + {% for sensor in states.sensor -%} + {%- if sensor.entity_id | regex_match('sensor.docker_',ignorecase=False) -%} + {%- set name = state_attr(sensor.entity_id, "friendly_name") | regex_replace(find='Docker ', replace='') | capitalize -%} + {{ + { 'entity': sensor.entity_id, + 'name': name, + 'state_color': true, + } }}, + {%- endif -%} + {%- endfor %} diff --git a/config/dashboards/shared/popup/footer/footer_tablet.yaml b/config/dashboards/shared/popup/footer/footer_tablet.yaml deleted file mode 100644 index a463a64..0000000 --- a/config/dashboards/shared/popup/footer/footer_tablet.yaml +++ /dev/null @@ -1,127 +0,0 @@ -action: fire-dom-event -browser_mod: - service: browser_mod.popup - data: - title: Platta - card_mod: - style: - #popup header - .: - content: - type: vertical-stack - cards: - - type: entities - state_color: true - card_mod: - class: content - entities: - - entity: switch.galaxy_tab_a_screen - secondary_info: last-changed - - type: custom:slider-entity-row - entity: number.galaxy_tab_a_screen_brightness - name: Ljusstyrka - icon: mdi:brightness-6 - hide_state: false - card_mod: - style: - # full width slider - hui-generic-entity-row$: | - div { - flex: auto !important; - } - - entity: switch.galaxy_tab_a_screensaver - - entity: binary_sensor.galaxy_tab_a_plugged_in - - type: custom:bar-card - width: 55% - height: 2em - decimal: 0 - unit_of_measurement: '%' - positions: &bar_card_positions - icon: outside - indicator: 'off' - name: outside - severity: - - color: '#6d2525' - from: 0 - to: 89 - - color: '#303435' - from: 90 - to: 999 - entity_row: true - entities: - - entity: sensor.galaxy_tab_a_battery - icon: mdi:battery - tap_action: - action: call-service - service: homeassistant.update_entity - service_data: - entity_id: sensor.galaxy_tab_a_battery_level - - type: custom:bar-card - width: 55% - height: 2em - decimal: 0 - unit_of_measurement: '%' - positions: *bar_card_positions - severity: - - color: '#6d2525' - from: 90 - to: 999 - entity_row: true - entities: - - entity: sensor.template_fullykiosk_memory - name: Minne - 2GB - icon: mdi:memory - tap_action: - action: call-service - service: homeassistant.update_entity - service_data: - entity_id: sensor.template_fullykiosk_memory - - entity: sensor.template_fullykiosk_storage - name: Lagring - 32GB - icon: mdi:sd - tap_action: - action: call-service - service: homeassistant.update_entity - service_data: - entity_id: sensor.template_fullykiosk_storage - - type: custom:mod-card - card_mod: - style: - hui-horizontal-stack-card$: | - #root { - justify-content: space-evenly !important; - padding: var(--tablet-popup-button-padding); - } - card: - type: horizontal-stack - cards: - - type: custom:button-card - name: Startsidan - icon: mdi:reload - tap_action: - action: call-service - service: browser_mod.sequence - service_data: - sequence: - - service: browser_mod.notification - data: - message: Laddar om startsidan... - - service: button.press - data: - entity_id: button.galaxy_tab_a_load_start_url - template: icon_name - - type: custom:button-card - name: Hela appen - icon: mdi:reload - tap_action: - action: call-service - service: browser_mod.sequence - service_data: - sequence: - - service: browser_mod.notification - data: - message: Startar om Fully Kiosk Browser... - - service: button.press - data: - entity_id: button.galaxy_tab_a_restart_browser - template: icon_name diff --git a/config/dashboards/shared/popup/footer/footer_vacuum.yaml b/config/dashboards/shared/popup/footer/footer_vacuum.yaml index 931fc70..f289da1 100644 --- a/config/dashboards/shared/popup/footer/footer_vacuum.yaml +++ b/config/dashboards/shared/popup/footer/footer_vacuum.yaml @@ -3,108 +3,114 @@ browser_mod: service: browser_mod.popup data: title: Roidmi EVE Plus - card_mod: !include ../../snippets/style_popup_footer.yaml + style: > + --max-popup-column: 3; content: - type: custom:layout-card - layout_type: custom:grid-layout - layout: !include ../../snippets/popup_footer_layout.yaml - cards: - ### SUMMARY - - type: entities - title: Summary - show_header_toggle: false - card_mod: - class: header - entities: - - entity: vacuum.roidmi_eve - name: Roidmi EVE plus - icon: phu:roborock - secondary_info: - entity: sensor.roidmi_v60_029d_battery_level - postfix: ' %' - prefix: 'Battery: ' - - entity: sensor.vacuum_fault - secondary_info: - entity: sensor.vacuum_position - prefix: 'Position: ' - # - sensor.vacuum_fan_speed - # - sensor.vacuum_sweep_mode - - binary_sensor.vacuum_mop - - type: divider - - input_boolean.vacuum_double_clean - - input_boolean.vacuum_edge_sweep - - input_select.vacuum_mode - - input_select.vacuum_sweep_type - - input_select.vacuum_water_level - - type: custom:mod-card - card_mod: - style: - # horizontal bottom buttons - hui-horizontal-stack-card$: | - #root { - justify-content: space-between!important; - padding: 1em; - } - card: - type: horizontal-stack - cards: - - type: custom:button-card - entity: vacuum.roidmi_eve - icon: mdi:play-pause - tap_action: - action: call-service - service: > - [[[ - return `[[[ - return entity.state === 'docked' || entity.state === 'paused' - ? 'vacuum.start' - : 'vacuum.pause'; - ]]]` - ]]] - service_data: - entity_id: vacuum.roidmi_eve - template: icon_only - - type: custom:button-card - entity: vacuum.roidmi_eve - icon: mdi:battery-charging - tap_action: - action: call-service - service: vacuum.return_to_base - service_data: - entity_id: vacuum.roidmi_eve - template: icon_only - - type: custom:button-card - icon: mdi:bell - tap_action: - action: call-service - service: script.vacuum_find_robot - template: icon_only - - type: custom:button-card - icon: mdi:delete-empty - tap_action: - action: call-service - service: script.vacuum_empty_bin - template: icon_only - ### MAP - - type: entities - title: Map - show_header_toggle: false - entities: - - !include vacuum_roidmi.yaml + type: custom:mod-card + card_mod: !include ../../snippets/style_popup_footer.yaml + card: + type: custom:layout-card + layout_type: custom:grid-layout + layout: !include ../../snippets/popup_footer_layout.yaml + cards: + ### SUMMARY + - type: entities + title: Summary + show_header_toggle: false + card_mod: + class: header + entities: + - entity: vacuum.roidmi_eve + name: Roidmi EVE plus + icon: phu:roborock + secondary_info: + entity: sensor.roidmi_v60_029d_battery_level + postfix: ' %' + prefix: 'Battery: ' + - entity: sensor.vacuum_fault + secondary_info: + entity: sensor.vacuum_position + prefix: 'Position: ' + # - sensor.vacuum_fan_speed + # - sensor.vacuum_sweep_mode + - binary_sensor.vacuum_mop + - type: divider + - input_boolean.vacuum_double_clean + - input_boolean.vacuum_edge_sweep + - input_select.vacuum_mode + - input_select.vacuum_sweep_type + - input_select.vacuum_water_level + - type: custom:mod-card + card_mod: + style: + # horizontal bottom buttons + hui-horizontal-stack-card$: | + #root { + justify-content: space-between!important; + padding: 1em; + } + card: + type: horizontal-stack + cards: + - type: custom:button-card + entity: vacuum.roidmi_eve + icon: mdi:play-pause + tap_action: + action: call-service + service: > + [[[ + return `[[[ + return entity.state === 'docked' || entity.state === 'paused' + ? 'vacuum.start' + : 'vacuum.pause'; + ]]]` + ]]] + service_data: + entity_id: vacuum.roidmi_eve + template: icon_only + - type: custom:button-card + entity: vacuum.roidmi_eve + icon: mdi:battery-charging + tap_action: + action: call-service + service: vacuum.return_to_base + service_data: + entity_id: vacuum.roidmi_eve + template: icon_only + - type: custom:button-card + icon: mdi:bell + tap_action: + action: call-service + service: script.vacuum_find_robot + template: icon_only + - type: custom:button-card + icon: mdi:delete-empty + tap_action: + action: call-service + service: script.vacuum_empty_bin + template: icon_only + ### MAP + - type: entities + title: Map + show_header_toggle: false + card_mod: + class: header nopadding + entities: + - !include vacuum_roidmi.yaml - ## SETTINGS - - type: entities - title: Settings - show_header_toggle: false - entities: - - input_number.vacuum_volume - - input_boolean.vacuum_mute - - input_boolean.vacuum_lidar_collision - - input_boolean.vacuum_led_switch - - input_boolean.vacuum_auto_boost - - sensor.vacuum_on - - sensor.vacuum_cleaned_area - - sensor.vacuum_cleaning_time - - sensor.vacuum_total_cleaned_area - - sensor.vacuum_total_cleaning_time - - sensor.vacuum_cleaning_count + ## SETTINGS + - type: entities + title: Settings + show_header_toggle: false + entities: + - input_number.vacuum_volume + - input_boolean.vacuum_mute + - input_boolean.vacuum_lidar_collision + - input_boolean.vacuum_led_switch + - input_boolean.vacuum_auto_boost + - sensor.vacuum_on + - sensor.vacuum_cleaned_area + - sensor.vacuum_cleaning_time + - sensor.vacuum_total_cleaned_area + - sensor.vacuum_total_cleaning_time + - sensor.vacuum_cleaning_count diff --git a/config/dashboards/shared/popup/livingroom_balkong.yaml b/config/dashboards/shared/popup/livingroom_balkong.yaml deleted file mode 100755 index 5fe5ba3..0000000 --- a/config/dashboards/shared/popup/livingroom_balkong.yaml +++ /dev/null @@ -1,21 +0,0 @@ -action: fire-dom-event -browser_mod: - service: browser_mod.popup - data: - title: Balkong - card_mod: - style: - #popup header - .: - content: - type: vertical-stack - cards: - - type: entities - state_color: true - show_header_toggle: false - card_mod: - class: content - entities: - - entity: switch.deltaco_sh_p01_socket - secondary_info: last-changed - - entity: automation.balcony_lights diff --git a/config/dashboards/shared/popup/office_dator.yaml b/config/dashboards/shared/popup/office_dator.yaml deleted file mode 100755 index 23ab173..0000000 --- a/config/dashboards/shared/popup/office_dator.yaml +++ /dev/null @@ -1,151 +0,0 @@ -update_entities: - action: > - [[[ - hass.callService('homeassistant', 'update_entity', { - entity_id: [ - 'sensor.imac_cpu', - 'sensor.imac_mem', - 'binary_sensor.template_imac_vpn' - ] - }); - ]]] -action: fire-dom-event -browser_mod: - service: browser_mod.popup - data: - title: Dator - card_mod: - style: - #popup header - .: - content: - type: vertical-stack - cards: - ### ON ### - - type: conditional - conditions: - - entity: switch.imac - state: 'on' - card: - type: vertical-stack - cards: - - type: entities - state_color: true - card_mod: - class: content - entities: - - entity: switch.imac - name: iMac - secondary_info: last-changed - - type: custom:bar-card - width: 55% - height: 2em - decimal: 0 - unit_of_measurement: '%' - positions: - icon: outside - indicator: 'off' - name: outside - severity: - - color: '#6d2525' - from: 90 - to: 999 - entity_row: true - entities: - - entity: sensor.imac_cpu - tap_action: - action: call-service - service: homeassistant.update_entity - service_data: - entity_id: sensor.imac_cpu - - entity: sensor.imac_mem - tap_action: - action: call-service - service: homeassistant.update_entity - service_data: - entity_id: sensor.imac_mem - - entity: sensor.template_imac_macintosh_hd - tap_action: - action: call-service - service: homeassistant.update_entity - service_data: - entity_id: sensor.template_imac_macintosh_hd - - entity: automation.imac_notification_motion_hall - - entity: sensor.imac_uptime - - entity: binary_sensor.template_imac_vpn - tap_action: - action: call-service - service: homeassistant.update_entity - service_data: - entity_id: sensor.imac_ip - card_mod: - style: | - :host { - --paper-item-icon-color: - {{ 'red' if not is_state(config.entity, 'Ansluten') }}; - } - - entity: input_boolean.imac_lock - - type: custom:mod-card - card_mod: - style: - hui-horizontal-stack-card$: | - #root { - justify-content: space-evenly !important; - padding: var(--tablet-popup-button-padding); - } - card: - type: horizontal-stack - cards: - - type: custom:button-card - name: Försätt i vila - icon: mdi:power-sleep - tap_action: - action: call-service - service: shell_command.imac_sleep - template: icon_name - - type: custom:button-card - name: Starta om - icon: mdi:restart - tap_action: - action: call-service - service: shell_command.imac_restart - template: icon_name - ### OFF ### - - type: conditional - conditions: - - entity: switch.imac - state: 'off' - card: - type: vertical-stack - cards: - - type: entities - state_color: true - show_header_toggle: false - card_mod: - class: content - entities: - - entity: switch.imac - name: iMac - secondary_info: last-changed - - entity: automation.imac_notification_motion_hall - - entity: input_boolean.imac_lock - - type: custom:mod-card - card_mod: - style: - hui-horizontal-stack-card$: | - #root { - justify-content: space-evenly !important; - padding: var(--tablet-popup-button-padding); - } - card: - type: horizontal-stack - cards: - - type: custom:button-card - name: Starta iMac - icon: mdi:power - tap_action: - action: call-service - service: switch.turn_on - service_data: - entity_id: switch.imac - template: icon_name diff --git a/config/dashboards/shared/popup/office_flakt.yaml b/config/dashboards/shared/popup/office_flakt.yaml deleted file mode 100755 index d394e25..0000000 --- a/config/dashboards/shared/popup/office_flakt.yaml +++ /dev/null @@ -1,22 +0,0 @@ -action: fire-dom-event -browser_mod: - service: browser_mod.popup - data: - title: "Fläkt\u00B2" - card_mod: - style: - #popup header - .: - content: - type: vertical-stack - cards: - - type: entities - state_color: true - card_mod: - class: content - entities: - - entity: switch.gosund_fan_switch - secondary_info: last-changed - - type: custom:slider-entity-row - entity: input_number.fan_timer - hide_state: false diff --git a/config/dashboards/shared/popup/office_monitorer.yaml b/config/dashboards/shared/popup/office_monitorer.yaml deleted file mode 100755 index 6400831..0000000 --- a/config/dashboards/shared/popup/office_monitorer.yaml +++ /dev/null @@ -1,78 +0,0 @@ -action: fire-dom-event -browser_mod: - service: browser_mod.popup - data: - title: Monitorer - card_mod: - style: - #popup header - .: - content: - type: vertical-stack - cards: - - type: entities - state_color: true - card_mod: - class: content - entities: - - entity: switch.gosund_monitors_switch - secondary_info: last-changed - - type: custom:slider-entity-row - card_mod: - style: - # icon color mute and max - .: | - :host { - --paper-item-icon-color: - {% if is_state('binary_sensor.monitors_mute_state', 'on') %} - #FFFFFF20 - {% elif states(config.entity) | int == 0 %} - #9da0a2 - {% elif states(config.entity) | int < 60 %} - initial - {% else %} - red - {% endif %}; - } - # full width slider - hui-generic-entity-row$: | - div { - flex: auto !important; - } - entity: input_number.monitors_volume - hide_state: false - - entity: automation.monitors_turn_off - - entity: automation.monitors_calibration - - type: custom:mod-card - card_mod: - style: - hui-horizontal-stack-card$: | - #root { - justify-content: space-evenly !important; - padding: var(--tablet-popup-button-padding); - } - card: - type: horizontal-stack - cards: - - type: custom:button-card - entity: switch.monitors_mute - icon: mdi:volume-mute - tap_action: - action: toggle - template: icon_only - - type: custom:button-card - icon: mdi:volume-minus - tap_action: - action: call-service - service: input_number.decrement - service_data: - entity_id: input_number.monitors_volume - template: icon_only - - type: custom:button-card - icon: mdi:volume-plus - tap_action: - action: call-service - service: input_number.increment - service_data: - entity_id: input_number.monitors_volume - template: icon_only diff --git a/config/dashboards/shared/popup/owntone.yaml b/config/dashboards/shared/popup/owntone.yaml deleted file mode 100755 index f69fa2f..0000000 --- a/config/dashboards/shared/popup/owntone.yaml +++ /dev/null @@ -1,423 +0,0 @@ -action: fire-dom-event -browser_mod: - service: browser_mod.popup - data: - title: Homepod Speakers - style: | - --popup-max-width: calc(420px + 440px + 420px); - card_mod: - style: - .: | - :host { - --ha-card-border-radius: 12px !important; - --mush-rgb-state-media-player: 3, 169, 244; - --mush-rgb-blue-grey: 96, 125, 139; - --ha-card-background: #ffffff0d !important; - } - @media (max-width: 450px), (max-height: 500px) { - ha-dialog { - --mdc-dialog-min-width: 100vw !important; - --mdc-dialog-min-height: 100vh !important; - --popup-border-radius: 0 !important; - } - } - content: - type: custom:layout-card - layout_type: custom:grid-layout - layout: - margin: 0 - grid-gap: 10px - grid-template-columns: 0 400px 420px 400px 0 - grid-template-rows: fit-content(100%) - grid-template-areas: | - ". speakers playlist spotify ." - mediaquery: - #phone - '(max-width: 800px)': - grid-template-columns: 1fr - grid-template-rows: fit-content(100%) fit-content(100%) fit-content(100%) - grid-template-areas: | - "speakers" - "playlist" - "spotify" - cards: - # Homepods - - type: custom:stack-in-card - view_layout: - grid-area: speakers - cards: - - type: grid - square: false - columns: 2 - cards: - - type: custom:mushroom-template-card - primary: Homepods - secondary: >- - {{ states.media_player.owntone_server.state | capitalize }} - {{ expand(states.group.homepod_speakers) | selectattr( 'state', 'eq', 'on') | - list | count }} / 4 - icon: phu:homepod - layout: horizontal - fill_container: false - multiline_secondary: false - icon_color: "{% if is_state('group.homepod_speakers', 'on') %}blue{% endif %}" - tap_action: - action: call-service - service: homeassistant.toggle - target: - entity_id: group.homepod_speakers - - type: custom:mushroom-chips-card - chips: - - type: template - card_mod: - style: | - ha-card:hover { - rotate: 90deg; - } - icon: mdi:dots-horizontal - icon_color: white - tap_action: - action: fire-dom-event - local_conditional_card: - action: toggle - ids: - - homepod - alignment: end - card_mod: - style: | - ha-card { - --chip-box-shadow: none; - --chip-background: #ffffff0d; - padding: 15px 10px; - } - # Homepods - - type: custom:local-conditional-card - default: hide - id: homepod - card: - type: custom:stack-in-card - style: | - ha-card { - background: none !important; - animation: slide-opacity 700ms ease-in forwards; - opacity: 0; - } - @keyframes slide-opacity { - 0% { - transform: translateY(-30%); - opacity: 0; - } - 100% { - transform: translateY(0%); - opacity: 1; - } - } - cards: - - type: custom:mushroom-media-player-card - entity: media_player.owntone_output_office - name: Office - show_volume_level: true - use_media_info: false - volume_controls: - - volume_set - fill_container: false - layout: horizontal - collapsible_controls: true - tap_action: - action: toggle - card_mod: - style: &style - mushroom-media-player-volume-control$: - mushroom-slider$: | - .slider { - height: 50% !important; - align-self: center !important; - } - .: | - ha-card { - background: none - border-radius: 12px !important; - } - ha-card:hover { - background: #3182b78a !important; - border-radius: 12px !important; - } - - type: custom:mushroom-media-player-card - entity: media_player.owntone_output_bathroom - name: Bathroom - show_volume_level: true - use_media_info: false - volume_controls: - - volume_set - fill_container: false - layout: horizontal - collapsible_controls: true - tap_action: - action: toggle - card_mod: - style: *style - - type: custom:mushroom-media-player-card - entity: media_player.owntone_output_bedroom - show_volume_level: true - name: Bedroom - use_media_info: false - volume_controls: - - volume_set - fill_container: false - layout: horizontal - collapsible_controls: true - tap_action: - action: toggle - card_mod: - style: *style - - type: custom:mushroom-media-player-card - entity: media_player.owntone_output_living_room - name: Living Room - show_volume_level: true - use_media_info: false - volume_controls: - - volume_set - fill_container: false - layout: horizontal - collapsible_controls: true - tap_action: - action: toggle - card_mod: - style: *style - # Playlist - - type: custom:stack-in-card - view_layout: - grid-area: playlist - cards: - - type: custom:mushroom-media-player-card - entity: media_player.currently_playing - icon: mdi:play - use_media_info: true - use_media_artwork: false - show_volume_level: false - media_controls: - - play_pause_stop - - previous - - next - volume_controls: - - volume_buttons - - volume_set - fill_container: false - card_mod: - style: | - mushroom-shape-icon { - display: flex; - {% set media_type = state_attr(config.entity, 'media_content_type') %} - {% if media_type == 'tvshow' %} - --card-mod-icon: mdi:television-classic; - animation: flicker 1s linear infinite alternate; - {% elif media_type == 'movie' %} - --card-mod-icon: mdi:movie-roll; - animation: spin 2s linear infinite reverse; - {% elif media_type == 'music' %} - --card-mod-icon: mdi:music; - animation: beat 1.3s ease-out infinite both; - {% elif media_type == 'playlist' %} - --card-mod-icon: mdi:music; - animation: beat 1.3s ease-out infinite both; - {% else %} - --card-mod-icon: mdi:play; - {% endif %} - {{ 'animation: none;' if not is_state(config.entity, 'playing') }} - } - @keyframes flicker { - 0%, 31.98%, 32.98%, 34.98%, 36.98%, 39.98%, 67.98%, 68.98%, 95.98%, 96.98%, 97.98%, 98.98%, 100% { --icon-color: rgba(var(--album-art-color), 1); } - 32%, 33%, 35%, 36%, 37%, 40%, 68%, 69%, 96%, 97%, 98%, 99% { --icon-color: rgba(var(--album-art-color), 0.6); } - } - @keyframes beat { - 0%, 60% { --icon-symbol-size: 21px; } - 5%, 17%, 57% { --icon-symbol-size: 22px; } - 10%, 20%, 51% { --icon-symbol-size: 23px; } - 25%, 45% { --icon-symbol-size: 24px; } - 30%, 39% { --icon-symbol-size: 25px; } - 33% { --icon-symbol-size: 26px; } - } - ha-card { - --ha-card-border-width: 0; - --rgb-state-media-player: var(--album-art-color); - } - .actions { - --rgb-primary-text-color: var(--album-art-color); - --primary-text-color: rgb(var(--album-art-color)); - } - ha-card:before { - transform: translate3d(0,0,0); - -webkit-transform: translate3d(0,0,0); - content: ""; - background: url('/local/img/idle_art.png') center no-repeat; - {% if is_state('media_player.spotify', 'playing') %} - background: url( '{{ state_attr('media_player.spotify', "entity_picture") }}' ) center no-repeat; - {% elif is_state('media_player.owntone_server', 'playing') and not is_state('media_player.spotify', 'playing') %} - {% set radio = state_attr('media_player.owntone_server', 'media_album_name') %} - background: url( '/local/img/radio/{{radio}}.png' ) center no-repeat; - {% endif %} - background-size: contain; - margin: 4px 4px 16px 4px !important; - filter: drop-shadow(4px 4px 6px rgba(0, 0, 0, 0.5)); - border-radius: var(--control-border-radius); - aspect-ratio: 1 / 1; - } - - type: conditional - conditions: - - entity: media_player.spotify - state: 'playing' - card: - entity: media_player.spotify - hide: - icon: true - name: true - runtime: true - source: true - power: true - state_label: true - volume: true - info: true - progress: false - controls: true - more_info: false - type: custom:mini-media-player - toggle_power: false - group: true - card_mod: - style: - mmp-progress$: | - paper-progress { - {% if is_state('media_player.spotify', 'playing') %} - --paper-progress-container-color: rgba(var(--album-art-color), 0.2) !important; - {% endif %} - } - .: | - ha-card { - margin: 0px 12px 12px; - --mmp-progress-height: 12px !important; - height: var(--mmp-progress-height); - --mmp-accent-color: rgb(var(--album-art-color)); - --mmp-border-radius: 12px !important; - --ha-card-border-width: 0; - } - card_mod: - style: | - ha-card:before { - transform: translate3d(0,0,0); - -webkit-transform: translate3d(0,0,0); - content: ""; - position: absolute; - height: 100%; - width: 100%; - background: url('/local/img/idle_art.png') center no-repeat; - {% if is_state('media_player.spotify', 'playing') %} - background: url( '{{ state_attr('media_player.spotify', "entity_picture") }}' ) center no-repeat; - {% elif is_state('media_player.owntone_server', 'playing') and not is_state('media_player.spotify', 'playing') %} - {% set radio = state_attr('media_player.owntone_server', 'media_album_name') %} - background: url( '/local/img/radio/{{radio}}.png' ) center no-repeat; - {% endif %} - filter: blur(150px) saturate(200%); - background-size: 100% 100%; - } - ha-card { - transform: translate3d(0,0,0); - -webkit-transform: translate3d(0,0,0); - } - :host { - --album-art-color: - {% if is_state('media_player.spotify', 'playing') %} - {{ states('sensor.vibrant_color') }} - {% else %} - var(--mush-rgb-blue-grey) - {% endif %}; - } - # Spotify - - type: vertical-stack - view_layout: - grid-area: spotify - cards: - - type: horizontal-stack - cards: - - type: custom:mushroom-template-card - card_mod: - style: | - ha-card:hover { - scale: 1.04; - filter: opacity(0.5); - } - ha-card:active { - background-color: rgba(255,255,255,.8); - } - primary: Featured - tap_action: - action: fire-dom-event - local_conditional_card: - action: set - ids: - - featured: show - - discover-weekly: hide - layout: vertical - - type: custom:mushroom-template-card - card_mod: - style: | - ha-card:hover { - scale: 1.04; - filter: opacity(0.5); - } - ha-card:active { - background-color: rgba(255,255,255,.8); - } - primary: Discover weekly - tap_action: - action: fire-dom-event - local_conditional_card: - action: set - ids: - - featured: hide - - discover-weekly: show - layout: vertical - - type: custom:local-conditional-card - default: show - id: featured - persist_state: true - card: - type: custom:spotify-card - limit: 9 - spotify_entity: media_player.spotify - default_device: Home Assistant - default: Home Assistant - playlist_type: featured - country_code: VN - hide_warning: true - display_style: grid - always_play_random_song: true - grid_covers_per_row: 3 - grid_show_title: true - filter_devices: - - SHIELD - hide_chromecast_devices: true - hide_top_header: true - hide_currently_playing: true - hide_playback_controls: true - - type: custom:local-conditional-card - default: hide - id: discover-weekly - persist_state: true - card: - type: custom:spotify-card - limit: 9 - spotify_entity: media_player.spotify - default_device: Home Assistant - default: Home Assistant - playlist_type: discover-weekly - hide_warning: true - display_style: grid - always_play_random_song: true - grid_covers_per_row: 3 - grid_show_title: true - filter_devices: - - SHIELD - - Air - hide_chromecast_devices: true - hide_top_header: true - hide_currently_playing: true - hide_playback_controls: true diff --git a/config/dashboards/shared/popup/popup_kodi.yaml b/config/dashboards/shared/popup/popup_kodi.yaml deleted file mode 100644 index 026b785..0000000 --- a/config/dashboards/shared/popup/popup_kodi.yaml +++ /dev/null @@ -1,51 +0,0 @@ -action: fire-dom-event -browser_mod: - service: browser_mod.popup - data: - style: | - --popup-max-width: calc(100vw); - --popup-background-color: rgba(0, 0, 0, 0); - title: 'Kodi' - card_mod: - style: - #popup header - .: | - ha-dialog>ha-dialog-header { - display: none; - } - @media (max-width: 450px), (max-height: 500px) { - ha-dialog>ha-dialog-header { - display: block; - } - } - content: - type: custom:layout-card - layout_type: custom:grid-layout - layout: - margin: 0 - grid-template-columns: 80vw - grid-template-rows: fit-content(100%) - mediaquery: - '(max-width: 800px)': - grid-template-columns: 100% - cards: - # - type: custom:analog-clock - # hide_SecondHand: true - # locale: en-US - # diameter: 200 - # color_HourHand: '#326ba8' - # color_MinuteHand: '#3273a8' - # color_DigitalTime: '#CCCCCC' - # color_FaceDigits: '#a83832' - # color_Ticks: Silver - # themes: - # - time: 23:00-08:00 - # color_background: maroon - - type: iframe - aspect_ratio: > - [[[ - if (window.matchMedia('(max-width: 800px)').matches) - return '190%'; - else return '16:9'; - ]]] - url: !secret kodi_movies diff --git a/config/dashboards/shared/popup/popup_weather.yaml b/config/dashboards/shared/popup/popup_weather.yaml index e899233..c7d1e96 100644 --- a/config/dashboards/shared/popup/popup_weather.yaml +++ b/config/dashboards/shared/popup/popup_weather.yaml @@ -3,6 +3,8 @@ browser_mod: service: browser_mod.popup data: title: Weather + style: > + --max-popup-column: 2; card_mod: !include ../snippets/style_popup_footer.yaml content: type: custom:layout-card @@ -17,7 +19,7 @@ browser_mod: - type: entities title: Prague card_mod: - class: header + class: header nopadding entities: - type: custom:layout-card layout_type: custom:vertical-layout @@ -39,7 +41,7 @@ browser_mod: - type: entities title: Radar card_mod: - class: header + class: header nopadding entities: - type: custom:weather-radar-card static_map: false @@ -58,115 +60,3 @@ browser_mod: square_map: false show_recenter: true show_playback: false - - type: entities - title: Lunar Phase - card_mod: - class: header - entities: - - type: custom:lunar-phase-card - card_mod: - style: - .: | - ha-card { - background-color: transparent !important; - justify-content: flex-start !important; - box-shadow: none !important; - } - lunar-base-data $: | - .swiper-container { - backdrop-filter: none !important; - } - entity: '' - 12hr_format: false - calendar_modal: false - compact_view: false - default_card: base - hide_buttons: true - mile_unit: false - moon_position: left - number_decimals: 2 - selected_language: en - show_background: false - southern_hemisphere: false - use_custom: false - use_default: true - use_entity: false - graph_config: - graph_type: default - y_ticks: false - x_ticks: true - show_time: true - show_current: true - show_highest: true - y_ticks_position: left - y_ticks_step_size: 30 - time_step_size: 30 - show_legend: true - legend_position: top - legend_align: center - font_customize: - header_font_size: x-large - header_font_style: capitalize - header_font_color: '' - label_font_size: auto - label_font_style: none - label_font_color: '' - hide_label: false - hide_header: true - latitude: 50.060362328075634 - longitude: 14.399342536926271 - location: - city: Capital City of Prague - country: Czechia - custom_background: >- - https://cdn.jsdelivr.net/gh/ngocjohn/lunar-phase-card@1.7.3/background/moon_bg_1.png - footer: - type: custom:lunar-phase-card - entity: '' - 12hr_format: false - calendar_modal: false - compact_view: true - default_card: horizon - hide_buttons: true - mile_unit: false - moon_position: left - number_decimals: 2 - selected_language: en - show_background: false - southern_hemisphere: false - use_custom: false - use_default: true - use_entity: false - graph_config: - graph_type: dynamic - y_ticks: false - x_ticks: true - show_time: true - show_current: true - show_highest: true - y_ticks_position: left - y_ticks_step_size: 30 - time_step_size: 30 - show_legend: true - legend_position: top - legend_align: center - font_customize: - header_font_size: x-large - header_font_style: capitalize - header_font_color: '' - label_font_size: auto - label_font_style: none - label_font_color: '' - hide_label: false - hide_header: true - latitude: 50.060362328075634 - longitude: 14.399342536926271 - location: - city: Capital City of Prague - country: Czechia - card_mod: - style: | - ha-card { - background-color: transparent !important; - box-shadow: none !important; - } diff --git a/config/dashboards/shared/popup/purifier_popup.yaml b/config/dashboards/shared/popup/purifier_popup.yaml deleted file mode 100755 index 05e3f60..0000000 --- a/config/dashboards/shared/popup/purifier_popup.yaml +++ /dev/null @@ -1,32 +0,0 @@ -action: fire-dom-event -browser_mod: - service: browser_mod.popup - data: - title: Air Purifiers - style: | - --tablet-popup-button-padding: 0.1em 2em 1.8em 2em; - --swiper-pagination-color: rgb(255, 165, 0); - --swiper-navigation-size: 2em; - --popup-max-width: calc(100vw); - card_mod: !include ../snippets/style_popup_footer.yaml - content: - type: custom:layout-card - layout_type: custom:grid-layout - layout: !include ../snippets/popup_footer_layout.yaml - cards: - ### SUMMARY - - type: entities - title: Office Air Purfier - show_header_toggle: false - card_mod: - class: header - entities: - - type: custom:button-card - entity: fan.zhimi_mb4_b008_air_purifier - template: - - purifier_widget - variables: - aqi: sensor.zhimi_mb4_b008_pm25_density - motor: sensor.zhimi_mb4_b008_moto_speed_rpm - filter: sensor.zhimi_mb4_b008_filter_life_level - used_time: sensor.zhimi_mb4_b008_filter_used_time diff --git a/config/dashboards/shared/popup/rooms/apple_tv_card.yaml b/config/dashboards/shared/popup/rooms/apple_tv_card.yaml index 6d2d44b..5f696b0 100644 --- a/config/dashboards/shared/popup/rooms/apple_tv_card.yaml +++ b/config/dashboards/shared/popup/rooms/apple_tv_card.yaml @@ -5,37 +5,39 @@ browser_mod: title: 'ATV Remote' style: > --popup-background-color: rgba(21,25,35,1); - card_mod: - style: - .: | - ha-dialog>ha-dialog-header { - display: none; - } - @media (max-width: 450px), (max-height: 500px) { - .content .container { - margin: 0 6.8% !important; - } - ha-dialog { - --mdc-dialog-min-width: 100vw !important; - --mdc-dialog-min-height: 100vh !important; - --popup-border-radius: 0 !important; - } + content: + type: custom:mod-card + card_mod: + style: + .: | ha-dialog>ha-dialog-header { - display: block !important; + display: none; } - } - content: - type: custom:apple-tv-card - background: 'linear-gradient(155deg, rgba(60,66,80,1) 0%, rgba(23,26,37,1) 42%, rgba(21,25,35,1) 100%)' - entity: media_player.atv - full_screen: true - remote: remote.atv - sources: - - source_name: Infuse - - source_name: Disney+ - - source_name: Netflix - - source_name: Prime Video - - image: /local/community/Apple-Tv-Card/logo/Prime Video.png - source_name: YouTube - - image: /local/community/Apple-Tv-Card/logo/DAZN.png - source_name: DAZN + @media (max-width: 450px), (max-height: 500px) { + .content .container { + margin: 0 6.8% !important; + } + ha-dialog { + --mdc-dialog-min-width: 100vw !important; + --mdc-dialog-min-height: 100vh !important; + --popup-border-radius: 0 !important; + } + ha-dialog>ha-dialog-header { + display: block !important; + } + } + card: + type: custom:apple-tv-card + background: 'linear-gradient(155deg, rgba(60,66,80,1) 0%, rgba(23,26,37,1) 42%, rgba(21,25,35,1) 100%)' + entity: media_player.atv + full_screen: true + remote: remote.atv + sources: + - source_name: Infuse + - source_name: Disney+ + - source_name: Netflix + - source_name: Prime Video + - image: /local/community/Apple-Tv-Card/logo/Prime Video.png + source_name: YouTube + - image: /local/community/Apple-Tv-Card/logo/DAZN.png + source_name: DAZN diff --git a/config/dashboards/shared/popup/rooms/bedroom.yaml b/config/dashboards/shared/popup/rooms/bedroom.yaml index 4f64f9f..aa1a7a4 100755 --- a/config/dashboards/shared/popup/rooms/bedroom.yaml +++ b/config/dashboards/shared/popup/rooms/bedroom.yaml @@ -3,20 +3,10 @@ browser_mod: service: browser_mod.popup data: title: Bedroom - - card_mod: !include ../../snippets/style_popup_cardmod.yaml - content: type: custom:layout-card layout_type: custom:grid-layout - layout: - margin: 1.5% 0 - gap: 5% - grid-template-columns: 20vw - grid-template-rows: fit-content(100%) - mediaquery: - '(max-width: 800px)': - grid-template-columns: 100% + layout: !include ../../snippets/layout_room_popup.yaml cards: - type: custom:auto-entities filter: @@ -42,6 +32,9 @@ browser_mod: template: - mediaplayer - icon_tv + styles: + card: + - border-radius: 10% card: type: grid columns: 3 diff --git a/config/dashboards/shared/popup/rooms/kitchen.yaml b/config/dashboards/shared/popup/rooms/kitchen.yaml index ccd2cbe..a30ee79 100755 --- a/config/dashboards/shared/popup/rooms/kitchen.yaml +++ b/config/dashboards/shared/popup/rooms/kitchen.yaml @@ -3,19 +3,10 @@ browser_mod: service: browser_mod.popup data: title: Kitchen - - card_mod: !include ../../snippets/style_popup_cardmod.yaml content: type: custom:layout-card layout_type: custom:grid-layout - layout: - margin: 1.5% 0 - gap: 5% - grid-template-columns: 20vw - grid-template-rows: fit-content(100%) - mediaquery: - '(max-width: 800px)': - grid-template-columns: 100% + layout: !include ../../snippets/layout_room_popup.yaml cards: - type: custom:auto-entities filter: diff --git a/config/dashboards/shared/popup/rooms/livingroom.yaml b/config/dashboards/shared/popup/rooms/livingroom.yaml index 70ad845..f92e835 100755 --- a/config/dashboards/shared/popup/rooms/livingroom.yaml +++ b/config/dashboards/shared/popup/rooms/livingroom.yaml @@ -3,20 +3,10 @@ browser_mod: service: browser_mod.popup data: title: Living Room - - card_mod: !include ../../snippets/style_popup_cardmod.yaml - content: type: custom:layout-card layout_type: custom:grid-layout - layout: - margin: 1.5% 0 - gap: 5% - grid-template-columns: 20vw - grid-template-rows: fit-content(100%) - mediaquery: - '(max-width: 800px)': - grid-template-columns: 100% + layout: !include ../../snippets/layout_room_popup.yaml cards: - type: custom:auto-entities filter: diff --git a/config/dashboards/shared/popup/rooms/office.yaml b/config/dashboards/shared/popup/rooms/office.yaml index 9ac2e76..04f0838 100755 --- a/config/dashboards/shared/popup/rooms/office.yaml +++ b/config/dashboards/shared/popup/rooms/office.yaml @@ -3,20 +3,10 @@ browser_mod: service: browser_mod.popup data: title: Office - - card_mod: !include ../../snippets/style_popup_cardmod.yaml - content: type: custom:layout-card layout_type: custom:grid-layout - layout: - margin: 1.5% 0 - gap: 5% - grid-template-columns: 20vw - grid-template-rows: fit-content(100%) - mediaquery: - '(max-width: 800px)': - grid-template-columns: 100% + layout: !include ../../snippets/layout_room_popup.yaml cards: - type: custom:auto-entities filter: diff --git a/config/dashboards/shared/popup/rooms/utility.yaml b/config/dashboards/shared/popup/rooms/utility.yaml index 90c05bf..b529d27 100755 --- a/config/dashboards/shared/popup/rooms/utility.yaml +++ b/config/dashboards/shared/popup/rooms/utility.yaml @@ -3,20 +3,10 @@ browser_mod: service: browser_mod.popup data: title: Utility Room - - card_mod: !include ../../snippets/style_popup_cardmod.yaml - content: type: custom:layout-card layout_type: custom:grid-layout - layout: - margin: 1.5% 0 - gap: 5% - grid-template-columns: 20vw - grid-template-rows: fit-content(100%) - mediaquery: - '(max-width: 800px)': - grid-template-columns: 100% + layout: !include ../../snippets/layout_room_popup.yaml cards: - type: custom:auto-entities filter: diff --git a/config/dashboards/shared/popup/security_sensors.yaml b/config/dashboards/shared/popup/security_sensors.yaml index f32814b..defcf2a 100755 --- a/config/dashboards/shared/popup/security_sensors.yaml +++ b/config/dashboards/shared/popup/security_sensors.yaml @@ -3,61 +3,63 @@ browser_mod: service: browser_mod.popup data: title: Sensors - style: !include ../snippets/style_footer_transparent.yaml - card_mod: !include ../snippets/style_popup_footer.yaml + style: > + --max-popup-column: 2; content: - type: custom:layout-card - layout_type: custom:grid-layout - layout: !include ../snippets/popup_footer_layout.yaml - cards: - ################################################# - # # - # SECURITY SENSORS # - # # - ################################################# - - type: custom:auto-entities - - card: - type: entities - title: Motion Sensors - show_header_toggle: false - card_mod: - class: header - filter: - template: | - {% for sensor in expand('group.motion_sensors') -%} - {%- set name = state_attr(sensor.entity_id, "friendly_name") | regex_replace(find='Motion Sensor ', replace='') -%} - {{ - { 'entity': sensor.entity_id, - 'name': name, - 'state_color': true, - 'secondary_info': 'last-changed' - } - }}, - {%- endfor %} - sort: - method: last_changed - reverse: true - - - type: custom:auto-entities - card: - type: entities - title: Contact Sensors - show_header_toggle: false + type: custom:mod-card + card_mod: !include ../snippets/style_popup_footer.yaml + card: + type: custom:layout-card + layout_type: custom:grid-layout + layout: !include ../snippets/popup_footer_layout.yaml + cards: + ################################################# + # # + # SECURITY SENSORS # + # # + ################################################# + - type: custom:auto-entities + card: + type: entities + title: Motion Sensors + show_header_toggle: false card_mod: class: header - filter: - template: | - {% for sensor in expand('group.contact_sensors') -%} - {%- set name = state_attr(sensor.entity_id, "friendly_name") | regex_replace(find='Contact Sensor ', replace='') -%} - {{ - { 'entity': sensor.entity_id, - 'name': name, - 'state_color': true, - 'secondary_info': 'last-changed' - } - }}, - {%- endfor %} - sort: - method: last_changed - reverse: true + filter: + template: | + {% for sensor in expand('group.motion_sensors') -%} + {%- set name = state_attr(sensor.entity_id, "friendly_name") | regex_replace(find='Motion Sensor ', replace='') -%} + {{ + { 'entity': sensor.entity_id, + 'name': name, + 'state_color': true, + 'secondary_info': 'last-changed' + } + }}, + {%- endfor %} + sort: + method: last_changed + reverse: true + + - type: custom:auto-entities + card: + type: entities + title: Contact Sensors + show_header_toggle: false + card_mod: + class: header + filter: + template: | + {% for sensor in expand('group.contact_sensors') -%} + {%- set name = state_attr(sensor.entity_id, "friendly_name") | regex_replace(find='Contact Sensor ', replace='') -%} + {{ + { 'entity': sensor.entity_id, + 'name': name, + 'state_color': true, + 'secondary_info': 'last-changed' + } + }}, + {%- endfor %} + sort: + method: last_changed + reverse: true diff --git a/config/dashboards/shared/popup/test_pop.yaml b/config/dashboards/shared/popup/test_pop.yaml deleted file mode 100644 index 9123e0a..0000000 --- a/config/dashboards/shared/popup/test_pop.yaml +++ /dev/null @@ -1,879 +0,0 @@ -action: fire-dom-event -browser_mod: - service: browser_mod.popup - data: - title: ' ' - content: - type: picture-elements - card_mod: - style: | - ha-card { - background: rgba(44, 45, 68, 0.4); - height: 346px !important; - width: 535px !important; - } - elements: - - type: custom:state-switch - entity: media_player.spotify - transition: flip - transition_time: 200 - default: idle - style: - top: 10px - left: 0px - height: 346px - width: 500px - transform: translate(0%, 0%) - states: - idle: - type: picture-elements - card_mod: - style: | - ha-card { - background: transparent; - height: 346px !important; - width: 535px !important; - } - elements: - - type: custom:button-card - show_state: false - show_name: true - show_label: true - tap_action: - action: none - name: Streaming - label: Playlists - styles: - card: - - background-color: transparent - - height: 50px - grid: - - grid-template-areas: '"n l"' - - grid-template-columns: auto auto - - grid-template-rows: auto - name: - - font-size: 30px - - color: '#74e5f2' - - font-weight: lighter - label: - - font-size: 24px - - align-self: start - - color: transparent - - justify-self: start - - padding: 2px 0px 0px 9px - - font-weight: lighter - style: - top: 0px - left: 32px - transform: translate(0%, 0%) - - type: custom:swipe-card - start_card: 1 - card_mod: - style: | - ha-card { - width: 500px; - height: 346px; - top: 0px; - transform: translate(0%, 0%); - } - .swiper-wrapper { - height: 300px !important; - } - .swiper-container .swiper-button-next { - display: none; - } - .swiper-container .swiper-button-next::after { - display: none; - } - .swiper-container .swiper-button-prev { - display: none; - } - .swiper-container .swiper-button-prev::after { - display: none; - } - .swiper-pagination { - top: 262px !important; - height: 30px; - width: 42% !important; - left: 290px !important; - } - .swiper-pagination-bullet { - margin: 0px 18px 0px !important; - height: 30px !important; - width: 30px !important; - background: transparent !important; - } - parameters: - navigation: null - allowTouchMove: false - speed: 300 - effect: fade - fadeEffect: - crossFade: true - pagination: - type: bullets - clickable: true - style: - width: 500px - height: 346px - top: 0px - transform: translate(0%, 0%) - cards: - - type: picture-elements - image: /local/img/box.png - card_mod: - style: | - ha-card { - background: transparent; - height: 300px; - width: 500px; - left: 6px; - } - elements: - - type: custom:button-card - show_state: false - show_name: false - show_label: false - tap_action: - action: none - styles: - card: - - background-color: transparent - - width: 160px - - height: 48px - grid: - - grid-template-areas: '"play albm featr"' - - grid-template-columns: auto - - grid-template-rows: auto - custom_fields: - play: - - height: 37px - - width: 37px - - position: absolute - - left: '-5px' - - top: 4px - - opacity: 50% - albm: - - height: 28px - - width: 28px - - position: absolute - - left: 66px - - top: 9px - - opacity: 50% - featr: - - height: 28px - - width: 28px - - position: absolute - - right: 0px - - top: 9px - - color: '#afbfdf' - custom_fields: - play: > - [[[ return ``]]] - albm: > - [[[ return ``]]] - featr: | - [[[ return ``]]] - style: - top: 254px - left: 309px - transform: translate(0%, 0%) - - type: custom:button-card - show_state: false - show_name: true - show_label: true - tap_action: - action: none - name: Streaming - label: Featured - styles: - card: - - background-color: transparent - - height: 50px - grid: - - grid-template-areas: '"n l"' - - grid-template-columns: auto auto - - grid-template-rows: auto - name: - - font-size: 30px - - color: transparent - - font-weight: lighter - label: - - font-size: 24px - - align-self: start - - justify-self: start - - padding: 2.5px 0px 0px 9px - - font-weight: lighter - style: - top: 0px - left: 26px - transform: translate(0%, 0%) - - type: custom:spotify-card - spotify_entity: media_player.spotify - playlist_type: featured - always_play_random_song: true - shuffle: true - hide_top_header: true - hide_currently_playing: true - hide_connect_devices: true - hide_warning: true - display_style: grid - limit: 10 - grid_covers_per_row: '5' - style: - transform: translate(0%, 0%) scale(90%) - top: 52px - card_mod: - style: | - ha-card { - background: transparent; - padding: 2px 0px 0px !important; - overflow: visible !important; - } - #header-track { - margin-top: -26px !important; - height: 25px !important; - margin-left: 161px !important; - width: 332px !important; - white-space: nowrap !important; - overflow: hidden !important; - text-overflow: ellipsis !important; - } - #content { - border: 0px !important; - background-color: transparent !important; - padding: 0px !important; - overflow: visible !important; - } - div#footer { - display: none !important; - } - .grid-item { - border-radius: 10px; - box-shadow: 2px 3px 15px -3px rgba(0, 0, 0, 0.3) !important; - transition-duration: 0.25s; - } - .grid-item-album-image.playing { - border-radius: 10px !important; - box-shadow: 0px 0px 20px rgba(175, 191, 223, 1) !important; - } - .grid-item:hover { - box-shadow: 0px 0px 17px #afbfdf !important; - transition-duration: 0.5s; - } - .grid-item-album-image > img { - border-radius: 10px; - } - .dropdown { - border-radius: 10px !important; - max-height: none !important; - box-shadow: none !important; - } - .dropdown-content.dropdown > p { - font-weight: 300; - color: #afbfdf; - } - .dropdown-content.dropdown > a { - font-weight: 300; - border-radius: 10px; - } - .dropdown-content.dropdown > a:hover { - background: #41445f; - } - - type: custom:button-card - tap_action: - action: none - styles: - card: - - height: 45px - - width: 94px - - padding: 0px - - overflow: visible - - background-color: transparent - custom_fields: - icon1: - - height: 28px - - width: 28px - - position: absolute - - top: 8px - - left: 0px - icon2: - - height: 28px - - width: 28px - - position: absolute - - top: 8px - - right: 0px - custom_fields: - icon1: | - [[[ return `` ]]] - icon2: | - [[[ return `` ]]] - style: - top: 255px - left: 36px - overflow: visible - transform: translate(0%, 0%) - border-radius: 10px - - type: custom:hui-element - card_type: media-control - entity: media_player.homepod_mass - style: - top: 257px - right: 390px - overflow: visible - transform: translate(0%, 0%) - card_mod: - style: - .: | - ha-card { - background-color: transparent; - width: 300px; - height: 40px !important; - } - ha-icon-button { - display: none; - } - paper-progress { - display: none; - } - div.top-info { - display: none; - } - div.media-info { - display: none; - } - div.background { - display: none; - } - mwc-icon-button.browse-media { - height: 75px; - bottom: 6px; - left: 0px; - } - ha-svg-icon { - display: none; - } - mwc-icon-button.browse-media$: | - button.mdc-icon-button { - height: 28px; - width: 28px; - bottom: -47px; - left: 257px; - border-radius: 100%; - xopacity: 60%; - } - mwc-ripple { - display: none; - } - .mdc-icon-button > i { - display: none; - } - - type: custom:hui-element - card_type: media-control - entity: media_player.spotify - style: - top: 257px - right: 460px - overflow: visible - transform: translate(0%, 0%) - card_mod: - style: - .: | - ha-card { - background-color: transparent; - width: 300px; - height: 40px !important; - } - ha-icon-button { - display: none; - } - paper-progress { - display: none; - } - div.top-info { - display: none; - } - div.media-info { - display: none; - } - div.background { - display: none; - } - mwc-icon-button.browse-media { - height: 75px; - bottom: -3px; - left: 13px; - } - ha-svg-icon { - display: none; - } - mwc-icon-button.browse-media$: | - button.mdc-icon-button { - height: 28px; - width: 28px; - bottom: -38px; - left: 248px; - border-radius: 100%; - xopacity: 50%; - } - mwc-ripple { - display: none; - } - .mdc-icon-button > i { - display: none !important; - } - image: /local/img/box.png - playing: - type: picture-elements - card_mod: - style: | - ha-card { - top: 12px; - left: 31px; - height: 293px !important; - width: 450px; - overflow: visible !important; - background: transparent; - } - elements: - - type: custom:mini-media-player - entity: media_player.spotify - artwork: cover - hide: - name: true - info: true - source: true - sound_mode: true - controls: true - volume: true - power: true - progress: true - runtime: true - icon: true - style: - top: 0px - left: 0px - opacity: 50% - backdrop-filter: blur(8px) - border-radius: 10px - transform: translate(0%, 0%) - card_mod: - style: | - ha-card { - height: 293px !important; - width: 450px !important; - } - ha-card > div.mmp__container { - backdrop-filter: blur(12px); - } - - type: custom:hui-element - card_type: picture-elements - style: - top: 10px - right: 0px - transform: translate(0%, 0%) - card_mod: - style: | - ha-card { - height: 263px !important; - width: 172px; - background: transparent; - } - elements: - - type: custom:mini-media-player - entity: media_player.spotify - style: - top: 16px - right: 90px - transform: translate(0%, 0%) - group: true - hide: - source: true - info: true - sound_mode: true - controls: true - volume: true - power: true - progress: true - runtime: true - icon: true - - type: custom:button-card - show_state: false - show_name: false - show_label: false - tap_action: - action: none - styles: - card: - - background-color: transparent - - height: 263px - - width: 172px - style: - top: 15px - right: 0px - transform: translate(0%, 0%) - - type: custom:button-card - entity: media_player.spotify - show_name: false - tap_action: - action: call-service - service: media_player.media_play_pause - service_data: - entity_id: media_player.spotify - styles: - card: - - height: 60px - - width: 60px - - border-radius: 100% - - background: transparent - custom_fields: - icn: - - height: 60px - - width: 60px - custom_fields: - icn: | - [[[ - if (entity.state === 'playing') - return `` - else return `` - ]]] - style: - top: 50px - right: 56px - border-radius: 100% - transform: translate(0%, 0%) - - type: custom:button-card - icon: fas:step-forward - tap_action: - action: call-service - service: media_player.media_next_track - service_data: - entity_id: | - [[[ - if (states['media_player.spotify'].state === 'playing') - return 'media_player.spotify' - else if (states['media_player.homepod_mass'].state === 'playing') - return 'media_player.homepod_mass' - else return 'media_player.spotify' - ]]] - styles: - card: - - height: 30px - - width: 30px - - border-radius: 100% - - background: transparent - icon: - - height: 30px - - width: 30px - style: - top: 65px - right: 10px - transform: translate(0%, 0%) - - type: custom:button-card - icon: fas:step-backward - tap_action: - action: call-service - service: media_player.media_previous_track - service_data: - entity_id: | - [[[ - if (states['media_player.spotify'].state === 'playing') - return 'media_player.spotify' - else if (states['media_player.homepod_mass'].state === 'playing') - return 'media_player.homepod_mass' - else return 'media_player.spotify' - ]]] - styles: - card: - - height: 30px - - width: 30px - - border-radius: 100% - - background: transparent - icon: - - height: 30px - - width: 30px - style: - top: 65px - right: 132px - transform: translate(0%, 0%) - - type: custom:button-card - icon: fas:random - tap_action: - action: toggle - styles: - card: - - height: 30px - - width: 30px - - background: transparent - icon: - - height: 20px - - width: 20px - - opacity: 45% - style: - top: 110px - right: 104px - transform: translate(0%, 0%) - - type: custom:state-switch - style: - top: 110px - right: 104px - transform: translate(0%, 0%) - entity: media_player.homepod_mass - states: - playing: - type: custom:button-card - icon: fas:random - tap_action: - action: call-service - service: script.toggle_shuffle - service_data: - entity_id: media_player.homepod_mass - styles: - card: - - height: 30px - - width: 30px - - background: transparent - icon: - - height: 20px - - width: 20px - - color: var(--text-color-sensor) - - '--text-color-sensor': |- - [[[ - if (states['media_player.homepod_mass'].attributes.shuffle === 'true') return '#74e5f2'; - else return '#A0A2A8'; - ]]] - - type: custom:state-switch - style: - top: 110px - right: 104px - transform: translate(0%, 0%) - entity: media_player.spotify - states: - playing: - type: custom:button-card - icon: fas:random - tap_action: - action: call-service - service: script.toggle_shuffle - service_data: - entity_id: media_player.spotify - styles: - card: - - height: 30px - - width: 30px - - background: transparent - icon: - - height: 20px - - width: 20px - - color: var(--text-color-sensor) - - '--text-color-sensor': |- - [[[ - if (states['media_player.spotify'].attributes.shuffle == true) return '#74e5f2'; - else return '#A0A2A8'; - ]]] - - type: custom:button-card - icon: fas:sync-alt - tap_action: - action: toggle - styles: - card: - - height: 30px - - width: 30px - - background: transparent - icon: - - height: 20px - - width: 20px - - opacity: 45% - style: - top: 110px - right: 39px - transform: translate(0%, 0%) - - type: custom:state-switch - style: - top: 110px - right: 39px - transform: translate(0%, 0%) - entity: media_player.homepod_mass - states: - playing: - type: custom:button-card - icon: fas:sync-alt - tap_action: - action: call-service - service: script.toggle_repeat - service_data: - entity_id: media_player.homepod_mass - styles: - card: - - height: 30px - - width: 30px - - background: transparent - icon: - - height: 20px - - width: 20px - - color: var(--text-color-sensor) - - '--text-color-sensor': |- - [[[ - if (states['media_player.homepod_mass'].attributes.repeat === 'all') return '#74e5f2'; - else return '#A0A2A8'; - ]]] - - type: custom:state-switch - style: - top: 110px - right: 39px - transform: translate(0%, 0%) - entity: media_player.spotify - states: - playing: - type: custom:button-card - icon: fas:sync-alt - tap_action: - action: call-service - service: script.toggle_repeat - service_data: - entity_id: media_player.spotify - styles: - card: - - height: 30px - - width: 30px - - background: transparent - icon: - - height: 20px - - width: 20px - - color: var(--text-color-sensor) - - '--text-color-sensor': |- - [[[ - if (states['media_player.spotify'].attributes.repeat === 'all') return '#74e5f2'; - else return '#A0A2A8'; - ]]] - - type: custom:mini-media-player - entity: media_player.spotify - style: - top: 145px - right: 5px - transform: translate(0%, 0%) - group: true - toggle_power: true - hide: - name: true - power: true - source: true - sound_mode: true - controls: true - info: true - progress: true - runtime: true - icon: true - artwork: true - card_mod: - style: - mmp-powerstrip$mmp-media-controls$: | - div > ha-slider { - display: none !important; - } - - type: custom:mini-media-player - entity: media_player.spotify - style: - top: 149px - right: 30px - width: 141px - transform: translate(0%, 0%) - group: true - volume_step: 5 - hide: - name: true - source: true - volume_level: true - power: true - mute: true - sound_mode: true - controls: true - info: true - progress: true - runtime: true - icon: true - artwork: true - - type: custom:mini-media-player - entity: media_player.spotify - style: - top: 6px - right: 4px - width: 44px - transform: translate(0%, 0%) scale(0.8) - group: true - toggle_power: true - hide: - name: true - mute: true - source: true - sound_mode: true - controls: true - info: true - progress: true - runtime: true - icon: true - artwork: true - card_mod: - style: - mmp-powerstrip$mmp-media-controls$: | - div > ha-slider { - display: none !important; - } - image: /local/img/box.png - - type: custom:mini-media-player - entity: media_player.spotify - style: - top: 261px - left: 0px - width: 450px - border-radius: 10px - background: transparent - background-color: transparent - transform: translate(0%, 0%) - card_mod: - style: | - ha-card { - --ha-card-background: transparent; - } - hide: - name: true - source: true - power: true - mute: true - volume: true - sound_mode: true - controls: true - info: true - runtime: true - icon: true - artwork: true - - type: custom:mini-media-player - entity: media_player.spotify - artwork: cover - info: scroll - hide: - name: true - source: true - sound_mode: true - controls: true - volume: true - power: true - progress: true - runtime: true - icon: true - style: - top: 15px - left: 15px - transform: translate(0%, 0%) - card_mod: - style: | - ha-card { - height: 263px !important; - width: 263px !important; - overflow: visible !important; - box-shadow: 5px 5px 20px rgba(0, 0, 0, 0.3); - } - image: /local/img/box.png - image: /local/img/box.png diff --git a/config/dashboards/shared/popup/thermostat.yaml b/config/dashboards/shared/popup/thermostat.yaml index 26369a7..360a2e4 100755 --- a/config/dashboards/shared/popup/thermostat.yaml +++ b/config/dashboards/shared/popup/thermostat.yaml @@ -4,75 +4,52 @@ browser_mod: data: title: Thermostat style: > - --popup-min-width: calc(450px + 450px); - card_mod: - style: - layout-card: - $grid-layout$: - # card divider border - .: | - #root > * { - margin: 0px !important; - } - hui-entities-card: - $: | - ha-card { - border-right: 0.1vw solid rgba(58, 69, 73, 0.2); - border-radius: 0; - transition: none; - } - /* portrait */ - @media screen and (max-width: 1400px) { - ha-card { - border-right: none; - border-bottom: 0.1vw solid rgba(58, 69, 73, 0.2); - } - } - $better-thermostat-ui-card$: - .: | - .name { - overflow: visible !important; - } + --max-popup-column: 2; content: - type: custom:layout-card - layout_type: custom:grid-layout - layout: - margin: 0 - grid-template-columns: 1fr 1fr - grid-template-rows: fit-content(100%) - grid-template-areas: auto - mediaquery: - #portrait - '(max-width: 800px)': - grid-template-columns: 1fr - grid-template-rows: fit-content(100%) - grid-template-areas: auto - cards: - - type: entities - entities: - - type: custom:better-thermostat-ui-card - entity: climate.living_room_thermostat - eco_temperature: 20 - name: Living room - - type: custom:better-thermostat-ui-card - entity: climate.kids_room_thermostat - eco_temperature: 20 - name: Kids Room - - type: entities - card_mod: - style: | - ha-card { - border: none !important; - } - entities: - - type: custom:better-thermostat-ui-card - entity: climate.bedroom_thermostat - disable_summer: true - eco_temperature: 20 - name: Bedroom - - type: custom:better-thermostat-ui-card - entity: climate.office_thermostat - disable_window: false - disable_summer: true - eco_temperature: 20 - name: Office + type: custom:mod-card + card_mod: !include ../snippets/style_popup_footer.yaml + card: + type: custom:layout-card + layout_type: custom:grid-layout + layout: !include ../snippets/popup_footer_layout.yaml + cards: + ################################################# + # # + # THERMOSTATS # + # # + ################################################# + - type: entities + entities: + - type: custom:better-thermostat-ui-card + entity: climate.living_room_thermostat + eco_temperature: 20 + name: Living room + card_mod: &style + style: | + .name { + line-height: normal; + } + - type: entities + entities: + - type: custom:better-thermostat-ui-card + entity: climate.kids_room_thermostat + eco_temperature: 20 + name: Kids Room + card_mod: *style + - type: entities + entities: + - type: custom:better-thermostat-ui-card + entity: climate.bedroom_thermostat + disable_summer: true + eco_temperature: 20 + name: Bedroom + card_mod: *style + - type: entities + entities: + - type: custom:better-thermostat-ui-card + entity: climate.office_thermostat + disable_window: false + disable_summer: true + eco_temperature: 20 + name: Office + card_mod: *style diff --git a/config/dashboards/shared/snippets/layout_room_popup.yaml b/config/dashboards/shared/snippets/layout_room_popup.yaml new file mode 100644 index 0000000..01ba080 --- /dev/null +++ b/config/dashboards/shared/snippets/layout_room_popup.yaml @@ -0,0 +1,9 @@ +margin: 0 +gap: 1rem +grid-template-columns: 560px +grid-template-rows: fit-content(100%) +padding: 1rem +mediaquery: + '(max-width: 800px)': + grid-template-columns: 100% + padding: 0 diff --git a/config/dashboards/shared/snippets/popup_footer_layout.yaml b/config/dashboards/shared/snippets/popup_footer_layout.yaml index 4beabe6..4a97c0d 100755 --- a/config/dashboards/shared/snippets/popup_footer_layout.yaml +++ b/config/dashboards/shared/snippets/popup_footer_layout.yaml @@ -1,8 +1,4 @@ -margin: 0 -grid-template-columns: repeat(auto-fit, minmax(400px, 20vw) minmax(400px, 20vw) minmax(400px, 20vw)) +margin: -1 +grid-template-columns: repeat(var(--max-popup-column, auto-fit), minmax(560px, 1fr)) grid-template-rows: auto -mediaquery: - #portrait - '(max-width: 1200px)': - grid-template-columns: 1fr - grid-template-rows: fit-content(100%) +grid-gap: 2px 1px diff --git a/config/dashboards/shared/snippets/style_popup_cardmod.yaml b/config/dashboards/shared/snippets/style_popup_cardmod.yaml index 2000797..60fb6bf 100755 --- a/config/dashboards/shared/snippets/style_popup_cardmod.yaml +++ b/config/dashboards/shared/snippets/style_popup_cardmod.yaml @@ -1,15 +1,8 @@ style: - ha-dialog$: | - :host { - --button-card-border-radius: 10%; - } - .mdc-dialog__surface { - background-color: var(--popup-background-color) !important; - } layout-card$grid-layout$: .: | @media screen and (min-width: 800px) { #root { - padding: 14px !important; + padding: 1rem !important; } } diff --git a/config/dashboards/shared/snippets/style_popup_footer.yaml b/config/dashboards/shared/snippets/style_popup_footer.yaml index b85aaf6..9692001 100755 --- a/config/dashboards/shared/snippets/style_popup_footer.yaml +++ b/config/dashboards/shared/snippets/style_popup_footer.yaml @@ -1,8 +1,7 @@ style: - layout-card: - $grid-layout$: - # card divider border - .: | + layout-card$: + grid-layout: + $: | #root > * { margin: 0px !important; } @@ -11,7 +10,7 @@ style: display: block !important; } } - hui-entities-card: + $hui-entities-card: $: | ha-card { border-right: 0.1vw solid rgba(58, 69, 73, 0.2); @@ -19,6 +18,10 @@ style: transition: none; margin-bottom: 0 !important; } + ha-card.header.nopadding > .card-content { + padding: 0 !important; + } + /* portrait */ @media screen and (max-width: 800px) { ha-card { @@ -26,13 +29,14 @@ style: border-bottom: 0.1vw solid rgba(58, 69, 73, 0.2); } } + $hui-horizontal-stack-card: $: | #root { justify-content: space-evenly; - margin-top: 1.7em; + margin-block: 1.5rem; } - hui-entities-card:last-child: + $hui-entities-card:last-child: $: | ha-card { border: none; diff --git a/config/dashboards/templates/button_card_templates/tpl_base.yaml b/config/dashboards/templates/button_card_templates/tpl_base.yaml index 10125cf..3a84c04 100755 --- a/config/dashboards/templates/button_card_templates/tpl_base.yaml +++ b/config/dashboards/templates/button_card_templates/tpl_base.yaml @@ -1003,7 +1003,7 @@ extra_styles: display: flex; place-self: end; } - @media screen and (min-width: 801px) and (max-width: 1710px) { + @media screen and (min-width: 801px) and (max-width: 1700px) { #container { grid-template-columns: 1fr fit-content(100%) !important; grid-auto-rows: fit-content(100%) fit-content(100%) !important; @@ -1047,12 +1047,18 @@ extra_styles: margin-block: 0; display: inline-block; } + li { - font-size: 14px; + font-size: 1rem; padding-left: 2rem; text-align: left; } - + @media screen and (max-width: 1710px) { + li { + font-size: 0.65rem; + padding-left: 1rem; + } + } li.precipitation { background: url('https://api.iconify.design/meteocons/umbrella-fill.svg') no-repeat left center / contain; } @@ -1108,7 +1114,7 @@ extra_styles: letter-spacing: 0.5px; color: #97989c; } - @media screen and (max-width: 1710px) { + @media screen and (max-width: 1700px) { #name { font-size: 6em; } @@ -1161,7 +1167,7 @@ extra_styles: clip-path: circle(50%); } `: ''} - ${this._config.template.includes('addons_base') ? ` + ${/(tpl_popup_base|addons_base)/.test(this._config.template) ? ` :host { --cpu-mem-font-size: 12px; --cpu-mem-icon-size: 24px; diff --git a/config/dashboards/templates/button_card_templates/tpl_climate.yaml b/config/dashboards/templates/button_card_templates/tpl_climate.yaml index b526bf4..3f11add 100755 --- a/config/dashboards/templates/button_card_templates/tpl_climate.yaml +++ b/config/dashboards/templates/button_card_templates/tpl_climate.yaml @@ -516,23 +516,13 @@ cover: --popup-background-color: rgba(0, 0, 0, 0.4); --popup-border-width: 0; --popup-max-width: calc(405px + 515px); - card_mod: - style: - .: | - @media (max-width: 450px), (max-height: 500px) { - ha-dialog { - --mdc-dialog-min-width: 100vw !important; - --mdc-dialog-min-height: 100vh !important; - --popup-border-radius: 0 !important; - } - } - # card divider border + content: type: custom:layout-card layout_type: custom:grid-layout layout: margin: 0 - grid-template-columns: 0 385px 495px 0 + grid-template-columns: 0 400px 400px 0 grid-template-rows: fit-content(100%) grid-template-areas: | ". main entity ." @@ -563,9 +553,6 @@ cover: div.action { display: none !important; } - ha-card { - margin: 1vw !important; - } ha-card>div>more-info-content>more-info-cover$ha-more-info-state-header$: | p.name { display: none !important; @@ -585,15 +572,6 @@ cover: grid-area: entity state_color: true show_header_toggle: false - card_mod: - style: | - #states { - padding: 0; - } - .: | - mushroom-cover-card { - padding: 1vw !imporant; - } entities: > [[[ if (entity) { diff --git a/config/dashboards/templates/button_card_templates/tpl_media.yaml b/config/dashboards/templates/button_card_templates/tpl_media.yaml index 22a434d..91f421b 100755 --- a/config/dashboards/templates/button_card_templates/tpl_media.yaml +++ b/config/dashboards/templates/button_card_templates/tpl_media.yaml @@ -530,334 +530,6 @@ conditional_media_shows: # ADDED MOVIES # # # ################################################# -kodi_lib_base: - template: - - base - aspect_ratio: 2/1 - show_name: true - show_state: false - show_entity_picture: false - show_icon: false - show_label: true - variables: - tilt_enable: > - [[[ return false; ]]] - tap_action: block - label: > - [[[ - if (entity) { - if (entity && entity.attributes) { - let info = entity.attributes.plot; - var plot = ` - ${info} - `; - return plot; - } - } - ]]] - custom_fields: - poster: > - [[[ - if (entity){ - if (entity && entity.attributes) { - let poster = entity.attributes.poster_url; - return` -
- -
- `; - } - } - ]]] - styles: - grid: - - grid-template-areas: | - ". n" - "poster l" - - grid-template-columns: 1fr 2fr - - grid-template-rows: min-content 1fr - - grid-gap: 1% - - align-items: flex-start - #ADDED MOVIES -added_movies: - template: - - base - - movie_tap_info - aspect_ratio: 1/1 - show_state: true - show_label: true - show_name: false - double_tap_action: !include ../../shared/popup/popup_kodi.yaml - - label: > - [[[ - if (entity) { - if (entity && entity.attributes) { - let cztitle = entity.attributes.title, - originaltitle = entity.attributes.original_title, - rating = entity.attributes.rating, - country = entity.attributes.country, - director = entity.attributes.director, - writers = entity.attributes.writers, - plot = entity.attributes.plot, - year = entity.attributes.year, - genre = entity.attributes.genre; - var info = ` -
- ${country} · ${year} - ${genre} -
`; - return info; - } - } - ]]] - state_display: > - [[[ - if (entity) { - let elt = this.shadowRoot, - await = setTimeout(marquee, 100); - if (entity && entity.attributes) { - let cztitle = entity.attributes.title, - originaltitle = entity.attributes.original_title, - rating = entity.attributes.rating, - country = entity.attributes.country, - year = entity.attributes.year, - genre = entity.attributes.genre; - - var title = cztitle == originaltitle - ? `${cztitle}` - : `${cztitle} · ${originaltitle}`; - var output = ` -
${title}
- `; - } - function marquee() { - let state = elt.getElementById("title"), - container = elt.getElementById("container"); - if (state && container) { - state.innerHTML = title; - let ro = new ResizeObserver(entries => { - let spacer = " ".repeat(3), - s = entries[0], - c = entries[1], - r = s && s.contentRect && - c && c.contentRect && - s.contentRect.width !== 0 && - c.contentRect.width !== 0; - if (r && s.contentRect.width < c.contentRect.width) { - state.classList.remove("marquee"); - } - else if (r && s.contentRect.width >= c.contentRect.width) { - state.innerHTML = `${title} ${spacer} ${title}`; - state.classList.add("marquee"); - } - }); - ro.observe(state); - ro.observe(container); - } - } - return output; - } - ]]] - custom_fields: - rating: > - [[[ - if (entity) { - if (entity && entity.attributes ) { - let rating = Math.round(( entity.attributes.rating * 10)); - var stroke = '#20d07b'; - if (rating <= 40) { stroke = '#ff0000' }; - if (rating <= 60) { stroke = '#ffcc00' }; - let path = ` - - - - - - - ${rating}% - - - - `; - return `${path}`; - } - } - ]]] - detail: > - [[[ - if (entity) { - if (entity && entity.attributes) { - let cztitle = entity.attributes.title, - originaltitle = entity.attributes.original_title, - rating = entity.attributes.rating, - country = entity.attributes.country, - director = entity.attributes.director, - writers = entity.attributes.writers, - plot = entity.attributes.plot, - year = entity.attributes.year, - genre = entity.attributes.genre; - var moreinfo = director === "" && plot !== undefined - ? `
${plot}` - : director !== undefined && plot !== undefined - ? `Directors: ${director}
${plot}` - : ''; - var output = ` -
- -
-
- ${originaltitle} - ${moreinfo} -
- `; - } - return output; - } - ]]] - - poster: > - [[[ - if (entity && entity.attributes.entity_picture) - return ` - - ` - ]]] - fanart: '' - styles: - grid: - - grid-template-areas: | - "poster poster" - "s s" - "l l" - - grid-template-columns: 1fr 1fr - - grid-template-rows: auto min-content min-content - - gap: 0 - - align-items: flex-start - - label: - - color: '#C7C7C7' - - padding-bottom: 4% - - state: - - color: '#C4C4C4' - - line-height: normal - - text-shadow: black 3px 2px 4px - - width: 100% - - card: - - padding: 0% - - border-radius: calc(var(--button-card-border-radius) / 2) - - background-color: '#00000' - - overflow: hidden - - --speed: > - [[[ - let cztitle = entity.attributes.title, - originaltitle = entity.attributes.original_title; - const containerWidth = 24; - var title = cztitle == originaltitle - ? cztitle - : cztitle + " " + originaltitle; - var speed = Math.round((title.length / containerWidth) * 6); - - return `${speed}s`; - ]]] - - custom_fields: - # tailwind: - # - display: block - # - position: absolute - # - width: 100% - # - height: 100% - - # info-icon: - # - position: absolute - # - height: auto - # - right: 2% - # - top: 2% - # - width: 7% - fanart: - - display: block - - position: absolute - - width: 100% - - height: 100% - - background: &bgmovie > - [[[ - if (entity && entity.attributes) - return `center center/cover no-repeat`; - ]]] - - background-image: &bgimgmovie > - [[[ - if (entity && entity.attributes) - return `linear-gradient(to top, rgba(0, 0, 0, 1) 10%, rgba(0, 0, 0, 0) 100%), url("${entity.attributes.fanart_url}")` - ]]] - rating: - - display: block - - position: absolute - - top: 5% - - left: 5% - - width: 15% - - ################################################# - # # - # PROGRESS BAR # - # # - ################################################# progress_bar: styles: custom_fields: diff --git a/config/dashboards/templates/button_card_templates/tpl_sectors.yaml b/config/dashboards/templates/button_card_templates/tpl_sectors.yaml index 515240a..81b9390 100755 --- a/config/dashboards/templates/button_card_templates/tpl_sectors.yaml +++ b/config/dashboards/templates/button_card_templates/tpl_sectors.yaml @@ -701,6 +701,8 @@ light_slider: tpl_popup_base: template: - base + variables: + tilt_enable: false name: > [[[ if (entity) @@ -712,9 +714,9 @@ tpl_popup_base: return ``; ]]] styles: - custom_fields: - icon: - - width: 85% + card: + - border-radius: 10% + tpl_popup_device: template: - tpl_popup_base @@ -735,11 +737,6 @@ tpl_popup_device: return entity.attributes.friendly_name.split(' ')[0]; ]]] style: !include ../../shared/snippets/style_popup_transparent.yaml - card_mod: - style: - #popup header - .: | - content: type: custom:auto-entities card: @@ -762,39 +759,46 @@ tpl_popup_device: tpl_popup_light: template: - tpl_popup_base + tap_action: + action: toggle + haptic: success double_tap_action: - action: fire-dom-event - browser_mod: - service: browser_mod.popup - data: - title: > - [[[ - return !entity || entity.attributes.friendly_name; - ]]] - style: !include ../../shared/snippets/style_popup_transparent.yaml - card_mod: - style: - #popup header - .: | - @media (max-width: 450px), (max-height: 500px) { - ha-dialog>ha-dialog-header { - display: block; - background-color: var(--tablet-popup-header-color) !important; - } - } - content: - type: custom:more-info-card - entity: > - [[[ return entity.entity_id; ]]] - title: ' ' - card_mod: - style: | - state-card-content { - display: none !important; - } - ha-card { - border: none !important; - } + action: more-info + haptic: medium + + # double_tap_action: + # action: fire-dom-event + # browser_mod: + # service: browser_mod.popup + # data: + # title: > + # [[[ + # return !entity || entity.attributes.friendly_name; + # ]]] + # style: !include ../../shared/snippets/style_popup_transparent.yaml + # card_mod: + # style: + # #popup header + # .: | + # @media (max-width: 450px), (max-height: 500px) { + # ha-dialog>ha-dialog-header { + # display: block; + # background-color: var(--tablet-popup-header-color) !important; + # } + # } + # content: + # type: custom:more-info-card + # entity: > + # [[[ return entity.entity_id; ]]] + # title: ' ' + # card_mod: + # style: | + # state-card-content { + # display: none !important; + # } + # ha-card { + # border: none !important; + # } ################################################# # # diff --git a/config/dashboards/templates/decluttering-card.yaml b/config/dashboards/templates/decluttering-card.yaml index 630c6f4..851cca9 100644 --- a/config/dashboards/templates/decluttering-card.yaml +++ b/config/dashboards/templates/decluttering-card.yaml @@ -401,7 +401,7 @@ grid_bathroom: card: type: custom:button-card entity: sensor.bathroom_active - double_tap_action: !include /config/dashboards/shared/popup/test_pop.yaml + # double_tap_action: !include /config/dashboards/shared/popup/test_pop.yaml name: Bathroom template: - rooms_base diff --git a/config/dashboards/templates/streamline-card.yaml b/config/dashboards/templates/streamline-card.yaml index 2f51dca..0a3ed17 100644 --- a/config/dashboards/templates/streamline-card.yaml +++ b/config/dashboards/templates/streamline-card.yaml @@ -402,7 +402,6 @@ grid_bathroom: card: type: custom:button-card entity: sensor.bathroom_active - double_tap_action: !include /config/dashboards/shared/popup/test_pop.yaml name: Bathroom template: - rooms_base diff --git a/config/dashboards/views/main.yaml b/config/dashboards/views/main.yaml index f03b4ad..584585a 100755 --- a/config/dashboards/views/main.yaml +++ b/config/dashboards/views/main.yaml @@ -7,10 +7,11 @@ type: custom:grid-layout layout: # default: margin: 0 - grid-gap: 1.8vw 1vw + grid-gap: 1.5vw 1vw grid-template-columns: 0 1fr 1fr 1fr 1fr 1fr 1fr 0 - grid-template-rows: min-content 1fr 1fr fit-content(100%) 0 + grid-template-rows: 0 min-content 1fr 1fr fit-content(100%) 0 grid-template-areas: | + ". . . . . . . ." ". chips chips chips chips header header ." ". security mainrooms devices other floorplan floorplan ." ". cameras climate media movies floorplan floorplan ." diff --git a/config/dashboards/views/system-grid/side-columns.yaml b/config/dashboards/views/system-grid/side-columns.yaml index ab57876..5dc6ac8 100644 --- a/config/dashboards/views/system-grid/side-columns.yaml +++ b/config/dashboards/views/system-grid/side-columns.yaml @@ -40,7 +40,7 @@ type: custom:layout-card layout_type: custom:grid-layout layout: - grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)) + grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)) grid-template-rows: auto grid-gap: 0.5rem 0.8rem margin: 0 diff --git a/config/dashboards/views/system-grid/system-graph.yaml b/config/dashboards/views/system-grid/system-graph.yaml index fab3816..2dfec81 100644 --- a/config/dashboards/views/system-grid/system-graph.yaml +++ b/config/dashboards/views/system-grid/system-graph.yaml @@ -9,7 +9,9 @@ view_layout: grid-area: cc show: - mediaquery: '(min-width: 801px)' + mediaquery: '(min-width: 1720px)' + card_mod: + class: historycard cardName: historycard-sys header: 'Monitoring' uimode: dark @@ -49,5 +51,6 @@ view_layout: grid-area: cc show: - mediaquery: '(max-width: 800px)' + mediaquery: '(max-width: 1719px)' lineGraphHeight: 250 + header: ' ' diff --git a/config/dashboards/views/system.yaml b/config/dashboards/views/system.yaml index 059034f..9b26287 100644 --- a/config/dashboards/views/system.yaml +++ b/config/dashboards/views/system.yaml @@ -17,11 +17,22 @@ layout: ". footer footer footer footer . . ." ". . . . . . . ." mediaquery: + # landscape + '(min-width: 1441px) and (max-width: 1720px)': + grid-gap: 1% 1.5% + grid-template-columns: 0 1fr 1fr 1fr 1fr 1fr 1fr 0 + grid-template-rows: 0 min-content 1fr 1fr fit-content + grid-template-areas: | + ". . . . . . ." + ". chips chips chips chips . ." + ". cc cc cc cc c2 c2" + ". footer footer footer footer . ." + #portrait '(min-width: 801px) and (max-width: 1440px)': grid-gap: 1% 1.5% grid-template-columns: 0 1fr 1fr 1fr 0 - grid-template-rows: 0 min-content 1fr 1fr fit-content 0 + grid-template-rows: 0 min-content 1fr 1fr fit-content(100%) 0 grid-template-areas: | ". . . . ." ". chips chips chips ." @@ -36,14 +47,14 @@ layout: margin: 0 # grid-template-columns: 0 repeat(2, 1fr) 0 grid-template-columns: 0 1fr 1fr 0 - grid-template-rows: 0 min-content 1fr fit-content(100%)fit-content(100%) 0 + grid-template-rows: 0 min-content fit-content(100%) fit-content(100%) min-content 1rem grid-template-areas: | ". . . ." ". chips chips ." ". cc cc ." ". c2 c2 ." ". footer footer ." - ". . . ." + ". . . ." ################################################# # # # DASHBOARD # diff --git a/config/themes/graphite-auto.yaml b/config/themes/graphite-auto.yaml index 8d7046d..1758db4 100644 --- a/config/themes/graphite-auto.yaml +++ b/config/themes/graphite-auto.yaml @@ -8,8 +8,8 @@ Graphite Auto: popup-border-radius: 1em popup-padding-x: 0px popup-padding-y: 0px - popup-min-width: 20vw - popup-max-width: 100vw + popup-min-width: 560px + popup-max-width: 1800px tablet-popup-header-color: rgba(200, 218, 222, 0.05) tablet-popup-content-padding: 1.4em 2.2em 1.6em 1.5em tablet-popup-button-padding: 0.1em 2em 1.8em 2em @@ -679,9 +679,10 @@ Graphite Auto: --bar-card-border-radius: 12px !important; --ha-card-border-radius: 0px !important; --ha-card-background: none !important; + --button-card-border-radius: 10%; } :host([card]) .content .container { - padding: 0px !important; + padding: 0px !important; } ha-dialog { --vertical-align-dialog: var(--tablet-popup-align-dialog) !important; diff --git a/config/themes/graphite.yaml b/config/themes/graphite.yaml index 795c03d..6777e8d 100644 --- a/config/themes/graphite.yaml +++ b/config/themes/graphite.yaml @@ -8,7 +8,7 @@ graphite: popup-border-radius: 1em popup-padding-x: 0px popup-padding-y: 0px - popup-min-width: 20vw + popup-min-width: 50vw popup-max-width: 100vw tablet-popup-header-color: rgba(200, 218, 222, 0.05) tablet-popup-content-padding: 1.4em 2.2em 1.6em 1.5em diff --git a/config/themes/tablet.yaml b/config/themes/tablet.yaml index 11230e5..8fcb881 100644 --- a/config/themes/tablet.yaml +++ b/config/themes/tablet.yaml @@ -251,6 +251,17 @@ tablet: gap: 1.5rem !important } } + ################################################# + # # + # HISTORY GRAPH # + # # + ################################################# + grid-layout$history-explorer-card>ha-card: + $: | + h1 { + + line-height: unset !important; + } card-mod-card: | .header .card-header { @@ -259,22 +270,34 @@ tablet: font-weight: 500; line-height: initial; cursor: default; + padding: 0 !important; } .content .card-content { padding: var(--tablet-popup-content-padding) !important; } + ha-card.addon.type-entities { + justify-content: flex-start !important; + } + .addon .card-content { padding: 0 !important; align-content: flex-start; } @media screen and (max-width: 1710px) { + .addon .card-header { + padding: 0 !important; + line-height: unset !important; + } + .addon .card-content { - max-height: calc(100vh - 230px); + max-height: calc(100vh - 250px); overflow-y: auto; overflow-x: hidden; + margin-top: 1rem !important; } + } @@ -307,14 +330,20 @@ tablet: border-radius: 0.3em; overflow: hidden; } - .type-custom-history-explorer-card div#graphlist { - padding: 0 !important; - display: flex; - flex-direction: column; - justify-content: space-between; - height: 100%; - gap: 2rem !important; - } - .type-custom-history-explorer-card div#graphlist > br { - display: none !important; + @media screen and (min-width: 1700px) { + .type-custom-history-explorer-card > ha-card > h1.card-header { + padding: 0 !important; + line-height: unset !important; + } + .type-custom-history-explorer-card div#graphlist { + padding: 0 !important; + display: flex; + flex-direction: column; + justify-content: space-between; + height: 100%; + gap: 2rem !important; + } + .type-custom-history-explorer-card div#graphlist > br { + display: none !important; + } } diff --git a/docs/README.md b/docs/README.md index c3d9e0a..afff3e7 100644 --- a/docs/README.md +++ b/docs/README.md @@ -37,15 +37,15 @@ https://github.com/ngocjohn/hass-config/assets/96962827/acc1a4db-b92e-4ab1-ac9d- - 36,209 + 36,233 32 164 63 54 32 - 1070 + 1071 215 - 37 + 38