From 56acc99ca522b16c5fa24f9cfc26af63df34b612 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 24 Jan 2022 20:31:20 +0000 Subject: [PATCH 001/248] docs(README): update contributors --- README.md | 283 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 283 insertions(+) diff --git a/README.md b/README.md index cf43dd181..3a6c8e768 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,289 @@ The same goes for our `custom_cards`. As the number grows, the list would be to ### Contributors + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Simon +
+ Simon Hörrle +
+
+ + Rick +
+ Rick Stokkingreef +
+
+ + schumijo/ +
+ schumijo +
+
+ + BasBruss/ +
+ BasBruss +
+
+ + Sil +
+ Sil de Hoop +
+
+ + httpedo13/ +
+ httpedo13 +
+
+ + TBens/ +
+ TBens +
+
+ + Magnus +
+ Magnus Persson +
+
+ + actions-user/ +
+ actions-user +
+
+ + Arthur/ +
+ Arthur +
+
+ + juvenalandres/ +
+ juvenalandres +
+
+ + Paddy0174/ +
+ Paddy0174 +
+
+ + tkwy-rick/ +
+ tkwy-rick +
+
+ + Vincent +
+ Vincent Pelz +
+
+ + Robin/ +
+ Robin +
+
+ + saxel/ +
+ saxel +
+
+ + revin34/ +
+ revin34 +
+
+ + Damiano +
+ Damiano Zanardo +
+
+ + denes44/ +
+ denes44 +
+
+ + telashton/ +
+ telashton +
+
+ + Wojciech +
+ Wojciech Wentland +
+
+ + Andreas/ +
+ Andreas +
+
+ + Mathieu +
+ Mathieu Desvé +
+
+ + Todd +
+ Todd Johnson +
+
+ + servis/ +
+ servis +
+
+ + bavo/ +
+ bavo +
+
+ + checkerschaf +
+ checkerschaf | Jan +
+
+ + Pierre/ +
+ Pierre +
+
+ + raphael/ +
+ raphael +
+
+ + AndyVRD/ +
+ AndyVRD +
+
+ + Bjarne +
+ Bjarne Riis +
+
+ + Eliseo +
+ Eliseo Juan Quintanilla +
+
+ + Emil +
+ Emil Zackrisson +
+
+ + JP2 +
+ JP2 Création +
+
+ + Martin +
+ Martin Nöhrer +
+
+ + Pedro +
+ Pedro Reis +
+
+ + jmoransalama/ +
+ jmoransalama +
+
+ + tombo12354/ +
+ tombo12354 +
+
+ ❤️ Thank you so much for helping out to keep this UI awesome ### Contributions From 981bc3656d4776fc38439f0f0c8586455bb00f11 Mon Sep 17 00:00:00 2001 From: schumijo Date: Wed, 26 Jan 2022 11:16:27 +0100 Subject: [PATCH 002/248] Init version --- .../card_templates/cards/card_thermostat.yaml | 411 ++++++++++++++++-- 1 file changed, 380 insertions(+), 31 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml index 8184c9ec6..b09711c9d 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml @@ -2,42 +2,391 @@ ### Card Thermostat ### card_thermostat: template: - - "icon_info_bg" - "ulm_language_variables" - hold_action: - action: "more-info" - label: >- - [[[ - if (entity.state =='off'){ - var etat = variables.ulm_off ; - }else if (entity.state == 'heat'){ - var etat = variables.ulm_heat ; - }else if (entity.state == 'cool'){ - var etat = variables.ulm_cool ; - }else{ - var etat = variables.ulm_idle; - } - if(entity.attributes.temperature){ - return (entity.attributes.temperature ) + '°' + ' • ' + etat ; - }else{ - return etat ; - } - ]]] - icon: "mdi:thermometer" + variables: + ulm_card_thermostat_name: "[[[ return entity.attributes.friendly_name ]]]" + ulm_card_thermostat_icon: "[[[ return 'mdi:thermometer' ]]]" + ulm_card_thermostat_enable_collapse: false + ulm_card_thermostat_enable_controls: false + ulm_card_thermostat_enable_hvac_modes: false + ulm_card_thermostat_enable_background_color: false + # ulm_card_thermostat_enable_popup: false + show_icon: false + show_name: false + show_label: false + # hold_action: + # action: > + # [[[ + # if (variables.ulm_card_thermostat_enable_popup){ + # return 'fire-dom-event' + # } + # else{ + # return 'more-info' + # } + # ]]] + # browser_mod: + # command: "popup" + # large: true + # hide_header: true + # card: + # type: "custom:button-card" + # template: "popup_light_brightness" + # variables: + # ulm_popup_light_entity: "[[[ return entity.entity_id ]]]" state: - operator: "template" value: > [[[ - return entity.state == 'heat' + return (entity.attributes.hvac_action == 'heating' && variables.ulm_card_thermostat_enable_background_color) ]]] styles: - icon: - - color: "rgba(var(--color-red),1)" - img_cell: - - background-color: "rgba(var(--color-red),0.2)" card: - - background-color: "rgba(var(--color-background-red),var(--opacity-bg))" - name: - - color: "rgba(var(--color-red-text),1)" - label: - - color: "rgba(var(--color-red-text),1)" + - background-color: "rgba(var(--color-yellow),1)" + - operator: "template" + value: > + [[[ + return (entity.attributes.hvac_action == 'cooling' && variables.ulm_card_thermostat_enable_background_color) + ]]] + styles: + card: + - background-color: "rgba(var(--color-blue),1)" + - operator: "template" + value: > + [[[ + return entity.state != 'off' + ]]] + styles: + card: + - background-color: "rgba(var(--color-background-yellow),var(--opacity-bg))" + styles: + grid: + - grid-template-areas: > + [[[ + var areas = []; + areas.push("item1"); + if ((variables.ulm_card_thermostat_enable_collapse && entity.state == "off") || variables.ulm_card_thermostat_enable_controls) { + areas.push("item2"); + } + if ((variables.ulm_card_thermostat_enable_collapse && entity.state == "off") || variables.ulm_card_thermostat_enable_hvac_modes) { + areas.push("item3"); + } + return "\"" + areas.join("\" \"") + "\""; + ]]] + - grid-template-columns: "1fr" + - grid-template-rows: > + [[[ + var rows = []; + rows.push("min-content"); + if ((variables.ulm_card_thermostat_enable_collapse && entity.state == "off") || variables.ulm_card_thermostat_enable_controls) { + rows.push("min-content"); + } + if ((variables.ulm_card_thermostat_enable_collapse && entity.state == "off") || variables.ulm_card_thermostat_enable_hvac_modes) { + rows.push("min-content"); + } + return rows.join(" "); + ]]] + - row-gap: "12px" + card: + - border-radius: "var(--border-radius)" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + custom_fields: + item2: + - display: > + [[[ + if ((variables.ulm_card_thermostat_enable_collapse && entity.state == "off") || !variables.ulm_card_thermostat_enable_controls) { + return "none"; + } else { + return "block"; + } + ]]] + item3: + - display: > + [[[ + if ((variables.ulm_card_thermostat_enable_collapse && entity.state == "off") || !variables.ulm_card_thermostat_enable_hvac_modes) { + return "none"; + } else { + return "block"; + } + ]]] + custom_fields: + item1: + card: + type: "custom:button-card" + # entity: "climate.netatmo_salon" ##### + template: + - "icon_more_info" + custom_fields: + item1: + card: + type: "custom:button-card" + entity: "[[[ return entity.entity_id ]]]" + icon: "[[[ return variables.ulm_card_thermostat_icon ]]]" + # hold_action: + # action: > + # [[[ + # if (variables.ulm_card_thermostat_enable_popup){ + # return 'fire-dom-event' + # } + # else{ + # return 'more-info' + # } + # ]]] + # browser_mod: + # command: "popup" + # large: true + # hide_header: true + # card: + # type: "custom:button-card" + # template: "popup_light_brightness" + # variables: + # ulm_popup_light_entity: "[[[ return entity.entity_id ]]]" + state: + - operator: "template" + value: > + [[[ + return entity.state != 'off' + ]]] + styles: + icon: + - color: "rgba(var(--color-red),1)" + img_cell: + - background-color: "rgba(var(--color-red),0.2)" + item2: + card: + type: "custom:button-card" + entity: "[[[ return entity.entity_id ]]]" + name: "[[[ return variables.ulm_card_thermostat_name ]]]" + # hold_action: + # action: > + # [[[ + # if (variables.ulm_card_thermostat_enable_popup){ + # return 'fire-dom-event' + # } + # else{ + # return 'more-info' + # } + # ]]] + # browser_mod: + # command: "popup" + # large: true + # hide_header: true + # card: + # type: "custom:button-card" + # template: "popup_light_brightness" + # variables: + # ulm_popup_light_entity: "[[[ return entity.entity_id ]]]" + label: >- ##### A REVOIR + [[[ + var label = variables.ulm_off ; + if (entity.state =='off'){ + label = variables.ulm_off ; + }else if (entity.state == 'heat'){ + label = variables.ulm_heat ; + }else if (entity.state == 'cool'){ + label = variables.ulm_cool ; + }else{ + label = variables.ulm_idle; + } + if(entity.attributes.temperature){ + return (entity.attributes.current_temperature ) + '°' + ' • ' + label + ' (' + entity.attributes.hvac_action + ')'; + } + return label; + ]]] + state: + - operator: "template" + value: > + [[[ + return (entity.attributes.hvac_action == 'cooling' || entity.attributes.hvac_action == 'heating') && variables.ulm_card_thermostat_enable_background_color + ]]] + styles: + name: + - color: "var(--card-background-color)" + label: + - color: "var(--card-background-color)" + item2: + card: + type: "custom:button-card" + template: "list_3_items" + styles: + card: + - background: "none" + custom_fields: + item1: + card: + type: "custom:button-card" + template: "widget_icon" + entity: "[[[ return entity.entity_id ]]]" + icon: "mdi:minus" + tap_action: + action: "call-service" + service: "climate.set_temperature" + service_data: + temperature: "[[[ return (parseFloat(states[entity.entity_id].attributes.temperature) - 0.5) ]]]" + entity_id: "[[[ return entity.entity_id ]]]" + state: + - operator: "template" + value: > + [[[ + return (entity.attributes.hvac_action == 'heating' && variables.ulm_card_thermostat_enable_background_color) + ]]] + styles: + card: + - background-color: "rgba(var(--color-theme),0.15)" + - operator: "template" + value: > + [[[ + return (entity.attributes.hvac_action == 'cooling' && variables.ulm_card_thermostat_enable_background_color) + ]]] + styles: + card: + - background-color: "rgba(255, 255, 255, 0.15)" ### + icon: + - color: "rgba(var(--card-background-color),0.9)" + item2: + card: + type: "custom:button-card" + show_icon: false + show_name: false + show_label: true + entity: "[[[ return entity.entity_id ]]]" + label: |- + [[[ + var temperature = entity.attributes.temperature; + if (temperature == null) { + var temperature = '-'; + } + return temperature + '°C' + ]]] + styles: + card: + - background: "none" + - box-shadow: "none" + state: + - operator: "template" + value: > + [[[ + return (entity.attributes.hvac_action == 'cooling' || entity.attributes.hvac_action == 'heating') && variables.ulm_card_thermostat_enable_background_color + ]]] + styles: + card: + - color: "var(--card-background-color)" + item3: + card: + type: "custom:button-card" + template: "widget_icon" + entity: "[[[ return entity.entity_id ]]]" + icon: "mdi:plus" + tap_action: + action: "call-service" + service: "climate.set_temperature" + service_data: + temperature: "[[[ return (parseFloat(states[entity.entity_id].attributes.temperature) + 0.5) ]]]" + entity_id: "[[[ return entity.entity_id ]]]" + state: + - operator: "template" + value: > + [[[ + return (entity.attributes.hvac_action == 'heating' && variables.ulm_card_thermostat_enable_background_color) + ]]] + styles: + card: + - background-color: "rgba(var(--color-theme),0.15)" + - operator: "template" + value: > + [[[ + return (entity.attributes.hvac_action == 'cooling' && variables.ulm_card_thermostat_enable_background_color) + ]]] + styles: + card: + - background-color: "rgba(255, 255, 255, 0.15)" ### + icon: + - color: "rgba(var(--card-background-color),0.9)" + item3: + card: + type: "custom:vertical-stack-in-card" ########## + horizontal: true ########## + cards: + - type: "custom:button-card" + template: "widget_icon" + icon: "mdi:fire" + tap_action: + action: "call-service" + service: "climate.set_hvac_mode" + service_data: + entity_id: "[[[ return entity.entity_id ]]]" + hvac_mode: "heat" + styles: + icon: + - color: | + [[[ + var color = 'rgba(var(--color-theme), 1)'; + if (entity.state == "heat"){ + var color = 'rgba(var(--color-red), 1)'; + } + return color; + ]]] + card: + - background-color: | + [[[ + var bc_color = 'rgba(var(--color-theme),0.05)'; + if (entity.state == "heat"){ + var bc_color = 'rgba(var(--color-red), 0.2)'; + } + return bc_color; + ]]] + - display: > + [[[ + if (states[entity.entity_id].attributes.hvac_modes.includes("heat")) { + return "block"; + } else { + return "none"; + } + ]]] + card_mod: ############ + style: | + ha-card { + background: none; + box-shadow: none; + } + + # template: + # - "icon_info_bg" + # - "ulm_language_variables" + # hold_action: + # action: "more-info" + # label: >- + # [[[ + # if (entity.state =='off'){ + # var etat = variables.ulm_off ; + # }else if (entity.state == 'heat'){ + # var etat = variables.ulm_heat ; + # }else if (entity.state == 'cool'){ + # var etat = variables.ulm_cool ; + # }else{ + # var etat = variables.ulm_idle; + # } + # if(entity.attributes.temperature){ + # return (entity.attributes.temperature ) + '°' + ' • ' + etat ; + # }else{ + # return etat ; + # } + # ]]] + # icon: "mdi:thermometer" + # state: + # - operator: "template" + # value: > + # [[[ + # return entity.state == 'heat' + # ]]] + # styles: + # icon: + # - color: "rgba(var(--color-red),1)" + # img_cell: + # - background-color: "rgba(var(--color-red),0.2)" + # card: + # - background-color: "rgba(var(--color-background-red),var(--opacity-bg))" + # name: + # - color: "rgba(var(--color-red-text),1)" + # label: + # - color: "rgba(var(--color-red-text),1)" From 8ced4254266e6572dfe380321d649954a365987a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 26 Jan 2022 11:18:09 +0000 Subject: [PATCH 003/248] docs(README): update contributors --- README.md | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 96a4896d3..ae61c0ed0 100644 --- a/README.md +++ b/README.md @@ -164,6 +164,8 @@ The same goes for our `custom_cards`. As the number grows, the list would be to juvenalandres + + Paddy0174/ @@ -171,15 +173,6 @@ The same goes for our `custom_cards`. As the number grows, the list would be to Paddy0174 - - - - - tkwy-rick/ -
- tkwy-rick -
- Vincent @@ -231,6 +224,13 @@ The same goes for our `custom_cards`. As the number grows, the list would be to telashton + + + willyp713/ +
+ willyp713 +
+ Wojciech @@ -252,6 +252,8 @@ The same goes for our `custom_cards`. As the number grows, the list would be to Mathieu Desvé + + Todd @@ -259,8 +261,6 @@ The same goes for our `custom_cards`. As the number grows, the list would be to Todd Johnson - - servis/ @@ -296,6 +296,8 @@ The same goes for our `custom_cards`. As the number grows, the list would be to raphael + + AndyVRD/ @@ -303,8 +305,6 @@ The same goes for our `custom_cards`. As the number grows, the list would be to AndyVRD - - Bjarne @@ -340,6 +340,8 @@ The same goes for our `custom_cards`. As the number grows, the list would be to Martin Nöhrer + + Pedro @@ -347,8 +349,6 @@ The same goes for our `custom_cards`. As the number grows, the list would be to Pedro Reis - - jmoransalama/ From a2413feff57609f87ce5b1218c577ada98f19cd7 Mon Sep 17 00:00:00 2001 From: schumijo Date: Wed, 26 Jan 2022 13:40:15 +0100 Subject: [PATCH 004/248] Add hvac modes --- .../card_templates/cards/card_thermostat.yaml | 427 ++++++++++++++---- 1 file changed, 346 insertions(+), 81 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml index b09711c9d..4d1670842 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml @@ -302,91 +302,356 @@ card_thermostat: - background-color: "rgba(255, 255, 255, 0.15)" ### icon: - color: "rgba(var(--card-background-color),0.9)" - item3: + item3: #off, auto, heat, cool, dry, fan_only, heat_cool card: - type: "custom:vertical-stack-in-card" ########## - horizontal: true ########## - cards: - - type: "custom:button-card" - template: "widget_icon" - icon: "mdi:fire" - tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: - entity_id: "[[[ return entity.entity_id ]]]" - hvac_mode: "heat" - styles: - icon: - - color: | - [[[ - var color = 'rgba(var(--color-theme), 1)'; - if (entity.state == "heat"){ - var color = 'rgba(var(--color-red), 1)'; + type: "custom:button-card" + styles: + grid: + - grid-template-areas: > + [[[ + var areas = []; + if (states[entity.entity_id].attributes.hvac_modes.includes("auto")) { + areas.push("auto"); + } + if (states[entity.entity_id].attributes.hvac_modes.includes("heat")) { + areas.push("heat"); + } + if (states[entity.entity_id].attributes.hvac_modes.includes("cool")) { + areas.push("cool"); + } + if (states[entity.entity_id].attributes.hvac_modes.includes("dry")) { + areas.push("dry"); + } + if (states[entity.entity_id].attributes.hvac_modes.includes("fan_only")) { + areas.push("fan_only"); + } + if (states[entity.entity_id].attributes.hvac_modes.includes("heat_cool")) { + areas.push("heat_cool"); + } + return "\"" + areas.join(" ") + "\""; + ]]] + - grid-template-columns: > + [[[ + var columns = []; + if (states[entity.entity_id].attributes.hvac_modes.includes("auto")) { + columns.push("1fr"); + } + if (states[entity.entity_id].attributes.hvac_modes.includes("heat")) { + columns.push("1fr"); } - return color; + if (states[entity.entity_id].attributes.hvac_modes.includes("cool")) { + columns.push("1fr"); + } + if (states[entity.entity_id].attributes.hvac_modes.includes("dry")) { + columns.push("1fr"); + } + if (states[entity.entity_id].attributes.hvac_modes.includes("fan_only")) { + columns.push("1fr"); + } + if (states[entity.entity_id].attributes.hvac_modes.includes("heat_cool")) { + columns.push("1fr"); + } + return columns.join(" "); + ]]] + - grid-template-rows: "min-content" + - column-gap: "7px" + card: + - box-shadow: "none" + - padding: "0px" + - background: "none" + custom_fields: + auto: + - display: > + [[[ + if (states[entity.entity_id].attributes.hvac_modes.includes("auto")) { + return "block"; + } else { + return "none"; + } + ]]] + heat: + - display: > + [[[ + if (states[entity.entity_id].attributes.hvac_modes.includes("heat")) { + return "block"; + } else { + return "none"; + } + ]]] + cool: + - display: > + [[[ + if (states[entity.entity_id].attributes.hvac_modes.includes("cool")) { + return "block"; + } else { + return "none"; + } + ]]] + dry: + - display: > + [[[ + if (states[entity.entity_id].attributes.hvac_modes.includes("dry")) { + return "block"; + } else { + return "none"; + } + ]]] + fan_only: + - display: > + [[[ + if (states[entity.entity_id].attributes.hvac_modes.includes("fan_only")) { + return "block"; + } else { + return "none"; + } + ]]] + heat_cool: + - display: > + [[[ + if (states[entity.entity_id].attributes.hvac_modes.includes("heat_cool")) { + return "block"; + } else { + return "none"; + } + ]]] + custom_fields: + auto: + card: + type: "custom:button-card" + template: "widget_icon" + icon: "mdi:autorenew" + tap_action: + action: "call-service" + service: "climate.set_hvac_mode" + service_data: + entity_id: "[[[ return entity.entity_id ]]]" + hvac_mode: "auto" + state: + - operator: "template" + value: > + [[[ + return entity.state == "auto" ]]] - card: - - background-color: | + styles: + card: + - background-color: "rgba(var(--color-green),0.5)" + icon: + - color: "rgba(var(--color-green),1)" + - operator: "template" + value: > [[[ - var bc_color = 'rgba(var(--color-theme),0.05)'; - if (entity.state == "heat"){ - var bc_color = 'rgba(var(--color-red), 0.2)'; - } - return bc_color; + return (entity.attributes.hvac_action == 'heating' && variables.ulm_card_thermostat_enable_background_color) ]]] - - display: > + styles: + card: + - background-color: "rgba(var(--color-theme),0.15)" + - operator: "template" + value: > [[[ - if (states[entity.entity_id].attributes.hvac_modes.includes("heat")) { - return "block"; - } else { - return "none"; - } + return (entity.attributes.hvac_action == 'cooling' && variables.ulm_card_thermostat_enable_background_color) ]]] - card_mod: ############ - style: | - ha-card { - background: none; - box-shadow: none; - } - - # template: - # - "icon_info_bg" - # - "ulm_language_variables" - # hold_action: - # action: "more-info" - # label: >- - # [[[ - # if (entity.state =='off'){ - # var etat = variables.ulm_off ; - # }else if (entity.state == 'heat'){ - # var etat = variables.ulm_heat ; - # }else if (entity.state == 'cool'){ - # var etat = variables.ulm_cool ; - # }else{ - # var etat = variables.ulm_idle; - # } - # if(entity.attributes.temperature){ - # return (entity.attributes.temperature ) + '°' + ' • ' + etat ; - # }else{ - # return etat ; - # } - # ]]] - # icon: "mdi:thermometer" - # state: - # - operator: "template" - # value: > - # [[[ - # return entity.state == 'heat' - # ]]] - # styles: - # icon: - # - color: "rgba(var(--color-red),1)" - # img_cell: - # - background-color: "rgba(var(--color-red),0.2)" - # card: - # - background-color: "rgba(var(--color-background-red),var(--opacity-bg))" - # name: - # - color: "rgba(var(--color-red-text),1)" - # label: - # - color: "rgba(var(--color-red-text),1)" + styles: + card: + - background-color: "rgba(255, 255, 255, 0.15)" ### + icon: + - color: "rgba(var(--card-background-color),0.9)" + heat: + card: + type: "custom:button-card" + template: "widget_icon" + icon: "mdi:fire" + tap_action: + action: "call-service" + service: "climate.set_hvac_mode" + service_data: + entity_id: "[[[ return entity.entity_id ]]]" + hvac_mode: "heat" + state: + - operator: "template" + value: > + [[[ + return entity.state == "heat" + ]]] + styles: + card: + - background-color: "rgba(var(--color-red),0.5)" + icon: + - color: "rgba(var(--color-red),1)" + - operator: "template" + value: > + [[[ + return (entity.attributes.hvac_action == 'heating' && variables.ulm_card_thermostat_enable_background_color) + ]]] + styles: + card: + - background-color: "rgba(var(--color-theme),0.15)" + - operator: "template" + value: > + [[[ + return (entity.attributes.hvac_action == 'cooling' && variables.ulm_card_thermostat_enable_background_color) + ]]] + styles: + card: + - background-color: "rgba(255, 255, 255, 0.15)" ### + icon: + - color: "rgba(var(--card-background-color),0.9)" + cool: + card: + type: "custom:button-card" + template: "widget_icon" + icon: "mdi:snowflake" + tap_action: + action: "call-service" + service: "climate.set_hvac_mode" + service_data: + entity_id: "[[[ return entity.entity_id ]]]" + hvac_mode: "cool" + state: + - operator: "template" + value: > + [[[ + return entity.state == "cool" + ]]] + styles: + card: + - background-color: "rgba(var(--color-blue),0.5)" + icon: + - color: "rgba(var(--color-blue),1)" + - operator: "template" + value: > + [[[ + return (entity.attributes.hvac_action == 'heating' && variables.ulm_card_thermostat_enable_background_color) + ]]] + styles: + card: + - background-color: "rgba(var(--color-theme),0.15)" + - operator: "template" + value: > + [[[ + return (entity.attributes.hvac_action == 'cooling' && variables.ulm_card_thermostat_enable_background_color) + ]]] + styles: + card: + - background-color: "rgba(255, 255, 255, 0.15)" ### + icon: + - color: "rgba(var(--card-background-color),0.9)" + dry: + card: + type: "custom:button-card" + template: "widget_icon" + icon: "mdi:water" + tap_action: + action: "call-service" + service: "climate.set_hvac_mode" + service_data: + entity_id: "[[[ return entity.entity_id ]]]" + hvac_mode: "dry" + state: + - operator: "template" + value: > + [[[ + return entity.state == "dry" + ]]] + styles: + card: + - background-color: "rgba(var(--color-yellow),0.5)" + icon: + - color: "rgba(var(--color-yellow),1)" + - operator: "template" + value: > + [[[ + return (entity.attributes.hvac_action == 'heating' && variables.ulm_card_thermostat_enable_background_color) + ]]] + styles: + card: + - background-color: "rgba(var(--color-theme),0.15)" + - operator: "template" + value: > + [[[ + return (entity.attributes.hvac_action == 'cooling' && variables.ulm_card_thermostat_enable_background_color) + ]]] + styles: + card: + - background-color: "rgba(255, 255, 255, 0.15)" ### + icon: + - color: "rgba(var(--card-background-color),0.9)" + fan_only: + card: + type: "custom:button-card" + template: "widget_icon" + icon: "mdi:fan" + tap_action: + action: "call-service" + service: "climate.set_hvac_mode" + service_data: + entity_id: "[[[ return entity.entity_id ]]]" + hvac_mode: "fan_only" + state: + - operator: "template" + value: > + [[[ + return entity.state == "fan_only" + ]]] + styles: + card: + - background-color: "rgba(var(--color-theme),0.5)" + icon: + - color: "rgba(var(--color-theme),1)" + - operator: "template" + value: > + [[[ + return (entity.attributes.hvac_action == 'heating' && variables.ulm_card_thermostat_enable_background_color) + ]]] + styles: + card: + - background-color: "rgba(var(--color-theme),0.15)" + - operator: "template" + value: > + [[[ + return (entity.attributes.hvac_action == 'cooling' && variables.ulm_card_thermostat_enable_background_color) + ]]] + styles: + card: + - background-color: "rgba(255, 255, 255, 0.15)" ### + icon: + - color: "rgba(var(--card-background-color),0.9)" + heat_cool: + card: + type: "custom:button-card" + template: "widget_icon" + icon: "mdi:sun-snowflake" + tap_action: + action: "call-service" + service: "climate.set_hvac_mode" + service_data: + entity_id: "[[[ return entity.entity_id ]]]" + hvac_mode: "heat_cool" + state: + - operator: "template" + value: > + [[[ + return entity.state == "heat_cool" + ]]] + styles: + card: + - background-color: "rgba(var(--color-purple),0.5)" + icon: + - color: "rgba(var(--color-purple),1)" + - operator: "template" + value: > + [[[ + return (entity.attributes.hvac_action == 'heating' && variables.ulm_card_thermostat_enable_background_color) + ]]] + styles: + card: + - background-color: "rgba(var(--color-theme),0.15)" + - operator: "template" + value: > + [[[ + return (entity.attributes.hvac_action == 'cooling' && variables.ulm_card_thermostat_enable_background_color) + ]]] + styles: + card: + - background-color: "rgba(255, 255, 255, 0.15)" ### + icon: + - color: "rgba(var(--card-background-color),0.9)" From c780231e8df693ca55980cfa671ce68aafd292cf Mon Sep 17 00:00:00 2001 From: schumijo Date: Wed, 26 Jan 2022 14:10:21 +0100 Subject: [PATCH 005/248] Update language --- .../lovelace/translations/FR.yaml | 10 +++- .../card_templates/cards/card_thermostat.yaml | 58 ++++++++++++++----- 2 files changed, 52 insertions(+), 16 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml index b20cda7a6..094a9eeaa 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml @@ -9,8 +9,14 @@ ulm_language_variables: ulm_standby: "Veille" ulm_idle: "Inactif" ulm_currency: "€" - ulm_heat: "Chauffe" - ulm_cool: "Frais" + ulm_auto: "Auto" + ulm_heat: "Chauffage" + ulm_cool: "Fraicheur" + ulm_dry: "Sec" + ulm_fan_only: "Ventilation" + ulm_heat_cool: "Chauffage/Fraicheur" + ulm_heating: "Chauffe" + ulm_cooling: "Rafraichit" ulm_person_state_home: "présent" ulm_person_state_away: "absent" ulm_popups_back: "Retour" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml index 4d1670842..6f9d3f104 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml @@ -64,10 +64,10 @@ card_thermostat: [[[ var areas = []; areas.push("item1"); - if ((variables.ulm_card_thermostat_enable_collapse && entity.state == "off") || variables.ulm_card_thermostat_enable_controls) { + if ( !(variables.ulm_card_thermostat_enable_collapse && entity.state == "off") && variables.ulm_card_thermostat_enable_controls) { areas.push("item2"); } - if ((variables.ulm_card_thermostat_enable_collapse && entity.state == "off") || variables.ulm_card_thermostat_enable_hvac_modes) { + if ( !(variables.ulm_card_thermostat_enable_collapse && entity.state == "off") && variables.ulm_card_thermostat_enable_hvac_modes) { areas.push("item3"); } return "\"" + areas.join("\" \"") + "\""; @@ -77,10 +77,10 @@ card_thermostat: [[[ var rows = []; rows.push("min-content"); - if ((variables.ulm_card_thermostat_enable_collapse && entity.state == "off") || variables.ulm_card_thermostat_enable_controls) { + if ( !(variables.ulm_card_thermostat_enable_collapse && entity.state == "off") && variables.ulm_card_thermostat_enable_controls) { rows.push("min-content"); } - if ((variables.ulm_card_thermostat_enable_collapse && entity.state == "off") || variables.ulm_card_thermostat_enable_hvac_modes) { + if ( !(variables.ulm_card_thermostat_enable_collapse && entity.state == "off") && variables.ulm_card_thermostat_enable_hvac_modes) { rows.push("min-content"); } return rows.join(" "); @@ -94,26 +94,25 @@ card_thermostat: item2: - display: > [[[ - if ((variables.ulm_card_thermostat_enable_collapse && entity.state == "off") || !variables.ulm_card_thermostat_enable_controls) { - return "none"; - } else { + if ( !(variables.ulm_card_thermostat_enable_collapse && entity.state == "off") && variables.ulm_card_thermostat_enable_controls) { return "block"; + } else { + return "none"; } ]]] item3: - display: > [[[ - if ((variables.ulm_card_thermostat_enable_collapse && entity.state == "off") || !variables.ulm_card_thermostat_enable_hvac_modes) { - return "none"; - } else { + if ( !(variables.ulm_card_thermostat_enable_collapse && entity.state == "off") && variables.ulm_card_thermostat_enable_hvac_modes) { return "block"; + } else { + return "none"; } ]]] custom_fields: item1: card: type: "custom:button-card" - # entity: "climate.netatmo_salon" ##### template: - "icon_more_info" custom_fields: @@ -157,6 +156,18 @@ card_thermostat: type: "custom:button-card" entity: "[[[ return entity.entity_id ]]]" name: "[[[ return variables.ulm_card_thermostat_name ]]]" + tap_action: + action: "call-service" + service: > + [[[ + if (entity.state =='off'){ + return "climate.turn_on"; + } else { + return "climate.turn_off"; + } + ]]] + service_data: + entity_id: "[[[ return entity.entity_id ]]]" # hold_action: # action: > # [[[ @@ -176,20 +187,39 @@ card_thermostat: # template: "popup_light_brightness" # variables: # ulm_popup_light_entity: "[[[ return entity.entity_id ]]]" - label: >- ##### A REVOIR + label: >- [[[ var label = variables.ulm_off ; if (entity.state =='off'){ label = variables.ulm_off ; + }else if (entity.state == 'auto'){ + label = variables.ulm_auto ; }else if (entity.state == 'heat'){ label = variables.ulm_heat ; }else if (entity.state == 'cool'){ label = variables.ulm_cool ; + }else if (entity.state == 'dry'){ + label = variables.ulm_dry ; + }else if (entity.state == 'fan_only'){ + label = variables.ulm_fan_only ; + }else if (entity.state == 'heat_cool'){ + label = variables.ulm_heat_cool ; }else{ label = variables.ulm_idle; } + + if (entity.attributes.hvac_action == 'heating'){ + var mode = variables.ulm_heating ; + }else if (entity.attributes.hvac_action == 'cooling'){ + var mode = variables.ulm_cooling ; + }else if (entity.attributes.hvac_action == 'idle'){ + var mode = variables.ulm_idle ; + }else{ + var mode = variables.ulm_unavailable; + } + if(entity.attributes.temperature){ - return (entity.attributes.current_temperature ) + '°' + ' • ' + label + ' (' + entity.attributes.hvac_action + ')'; + return (entity.attributes.current_temperature ) + '°' + ' • ' + label + ' (' + mode + ')'; } return label; ]]] @@ -302,7 +332,7 @@ card_thermostat: - background-color: "rgba(255, 255, 255, 0.15)" ### icon: - color: "rgba(var(--card-background-color),0.9)" - item3: #off, auto, heat, cool, dry, fan_only, heat_cool + item3: card: type: "custom:button-card" styles: From 338a699ad2f6036063adfe2b514aa32410ffced8 Mon Sep 17 00:00:00 2001 From: schumijo Date: Wed, 26 Jan 2022 14:36:38 +0100 Subject: [PATCH 006/248] Updated colors --- .../card_templates/cards/card_thermostat.yaml | 131 +++--------------- 1 file changed, 21 insertions(+), 110 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml index 6f9d3f104..c954b2b01 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml @@ -41,7 +41,7 @@ card_thermostat: ]]] styles: card: - - background-color: "rgba(var(--color-yellow),1)" + - background-color: "rgba(255,165,0,0.75)" - operator: "template" value: > [[[ @@ -49,7 +49,7 @@ card_thermostat: ]]] styles: card: - - background-color: "rgba(var(--color-blue),1)" + - background-color: "rgba(0,191,255,0.75)" - operator: "template" value: > [[[ @@ -223,17 +223,17 @@ card_thermostat: } return label; ]]] - state: - - operator: "template" - value: > - [[[ - return (entity.attributes.hvac_action == 'cooling' || entity.attributes.hvac_action == 'heating') && variables.ulm_card_thermostat_enable_background_color - ]]] - styles: - name: - - color: "var(--card-background-color)" - label: - - color: "var(--card-background-color)" + # state: + # - operator: "template" + # value: > + # [[[ + # return (entity.attributes.hvac_action == 'cooling' || entity.attributes.hvac_action == 'heating') && variables.ulm_card_thermostat_enable_background_color && hass.themes.darkMode + # ]]] + # styles: + # name: + # - color: "var(--card-background-color)" + # label: + # - color: "var(--card-background-color)" item2: card: type: "custom:button-card" @@ -258,21 +258,11 @@ card_thermostat: - operator: "template" value: > [[[ - return (entity.attributes.hvac_action == 'heating' && variables.ulm_card_thermostat_enable_background_color) + return (entity.attributes.hvac_action == 'cooling' || entity.attributes.hvac_action == 'heating') && variables.ulm_card_thermostat_enable_background_color ]]] styles: card: - background-color: "rgba(var(--color-theme),0.15)" - - operator: "template" - value: > - [[[ - return (entity.attributes.hvac_action == 'cooling' && variables.ulm_card_thermostat_enable_background_color) - ]]] - styles: - card: - - background-color: "rgba(255, 255, 255, 0.15)" ### - icon: - - color: "rgba(var(--card-background-color),0.9)" item2: card: type: "custom:button-card" @@ -292,15 +282,6 @@ card_thermostat: card: - background: "none" - box-shadow: "none" - state: - - operator: "template" - value: > - [[[ - return (entity.attributes.hvac_action == 'cooling' || entity.attributes.hvac_action == 'heating') && variables.ulm_card_thermostat_enable_background_color - ]]] - styles: - card: - - color: "var(--card-background-color)" item3: card: type: "custom:button-card" @@ -317,21 +298,11 @@ card_thermostat: - operator: "template" value: > [[[ - return (entity.attributes.hvac_action == 'heating' && variables.ulm_card_thermostat_enable_background_color) + return (entity.attributes.hvac_action == 'cooling' || entity.attributes.hvac_action == 'heating') && variables.ulm_card_thermostat_enable_background_color ]]] styles: card: - background-color: "rgba(var(--color-theme),0.15)" - - operator: "template" - value: > - [[[ - return (entity.attributes.hvac_action == 'cooling' && variables.ulm_card_thermostat_enable_background_color) - ]]] - styles: - card: - - background-color: "rgba(255, 255, 255, 0.15)" ### - icon: - - color: "rgba(var(--card-background-color),0.9)" item3: card: type: "custom:button-card" @@ -470,21 +441,11 @@ card_thermostat: - operator: "template" value: > [[[ - return (entity.attributes.hvac_action == 'heating' && variables.ulm_card_thermostat_enable_background_color) + return (entity.attributes.hvac_action == 'cooling' || entity.attributes.hvac_action == 'heating') && variables.ulm_card_thermostat_enable_background_color ]]] styles: card: - background-color: "rgba(var(--color-theme),0.15)" - - operator: "template" - value: > - [[[ - return (entity.attributes.hvac_action == 'cooling' && variables.ulm_card_thermostat_enable_background_color) - ]]] - styles: - card: - - background-color: "rgba(255, 255, 255, 0.15)" ### - icon: - - color: "rgba(var(--card-background-color),0.9)" heat: card: type: "custom:button-card" @@ -510,21 +471,11 @@ card_thermostat: - operator: "template" value: > [[[ - return (entity.attributes.hvac_action == 'heating' && variables.ulm_card_thermostat_enable_background_color) + return (entity.attributes.hvac_action == 'cooling' || entity.attributes.hvac_action == 'heating') && variables.ulm_card_thermostat_enable_background_color ]]] styles: card: - background-color: "rgba(var(--color-theme),0.15)" - - operator: "template" - value: > - [[[ - return (entity.attributes.hvac_action == 'cooling' && variables.ulm_card_thermostat_enable_background_color) - ]]] - styles: - card: - - background-color: "rgba(255, 255, 255, 0.15)" ### - icon: - - color: "rgba(var(--card-background-color),0.9)" cool: card: type: "custom:button-card" @@ -550,21 +501,11 @@ card_thermostat: - operator: "template" value: > [[[ - return (entity.attributes.hvac_action == 'heating' && variables.ulm_card_thermostat_enable_background_color) + return (entity.attributes.hvac_action == 'cooling' || entity.attributes.hvac_action == 'heating') && variables.ulm_card_thermostat_enable_background_color ]]] styles: card: - background-color: "rgba(var(--color-theme),0.15)" - - operator: "template" - value: > - [[[ - return (entity.attributes.hvac_action == 'cooling' && variables.ulm_card_thermostat_enable_background_color) - ]]] - styles: - card: - - background-color: "rgba(255, 255, 255, 0.15)" ### - icon: - - color: "rgba(var(--card-background-color),0.9)" dry: card: type: "custom:button-card" @@ -590,21 +531,11 @@ card_thermostat: - operator: "template" value: > [[[ - return (entity.attributes.hvac_action == 'heating' && variables.ulm_card_thermostat_enable_background_color) + return (entity.attributes.hvac_action == 'cooling' || entity.attributes.hvac_action == 'heating') && variables.ulm_card_thermostat_enable_background_color ]]] styles: card: - background-color: "rgba(var(--color-theme),0.15)" - - operator: "template" - value: > - [[[ - return (entity.attributes.hvac_action == 'cooling' && variables.ulm_card_thermostat_enable_background_color) - ]]] - styles: - card: - - background-color: "rgba(255, 255, 255, 0.15)" ### - icon: - - color: "rgba(var(--card-background-color),0.9)" fan_only: card: type: "custom:button-card" @@ -630,21 +561,11 @@ card_thermostat: - operator: "template" value: > [[[ - return (entity.attributes.hvac_action == 'heating' && variables.ulm_card_thermostat_enable_background_color) + return (entity.attributes.hvac_action == 'cooling' || entity.attributes.hvac_action == 'heating') && variables.ulm_card_thermostat_enable_background_color ]]] styles: card: - background-color: "rgba(var(--color-theme),0.15)" - - operator: "template" - value: > - [[[ - return (entity.attributes.hvac_action == 'cooling' && variables.ulm_card_thermostat_enable_background_color) - ]]] - styles: - card: - - background-color: "rgba(255, 255, 255, 0.15)" ### - icon: - - color: "rgba(var(--card-background-color),0.9)" heat_cool: card: type: "custom:button-card" @@ -670,18 +591,8 @@ card_thermostat: - operator: "template" value: > [[[ - return (entity.attributes.hvac_action == 'heating' && variables.ulm_card_thermostat_enable_background_color) + return (entity.attributes.hvac_action == 'cooling' || entity.attributes.hvac_action == 'heating') && variables.ulm_card_thermostat_enable_background_color ]]] styles: card: - background-color: "rgba(var(--color-theme),0.15)" - - operator: "template" - value: > - [[[ - return (entity.attributes.hvac_action == 'cooling' && variables.ulm_card_thermostat_enable_background_color) - ]]] - styles: - card: - - background-color: "rgba(255, 255, 255, 0.15)" ### - icon: - - color: "rgba(var(--card-background-color),0.9)" From 03c00bf030ac3c71a958c98ed1e4dbd83cc78303 Mon Sep 17 00:00:00 2001 From: schumijo Date: Wed, 26 Jan 2022 14:47:04 +0100 Subject: [PATCH 007/248] Updated language --- .../lovelace/translations/DA.yaml | 6 ++++++ .../lovelace/translations/DE.yaml | 8 +++++++- .../lovelace/translations/EN.yaml | 10 ++++++++-- .../lovelace/translations/ES.yaml | 6 ++++++ .../lovelace/translations/IT.yaml | 10 ++++++++-- .../lovelace/translations/NL.yaml | 6 ++++++ .../lovelace/translations/PL.yaml | 6 ++++++ .../lovelace/translations/PT.yaml | 6 ++++++ .../lovelace/translations/SE.yaml | 6 ++++++ 9 files changed, 59 insertions(+), 5 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/DA.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/DA.yaml index ea08c6784..f8e4e0ca1 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/DA.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/DA.yaml @@ -9,8 +9,14 @@ ulm_language_variables: ulm_standby: "standby" ulm_idle: "idle" ulm_currency: "kr" + ulm_auto: "Auto" ulm_heat: "Varmer" ulm_cool: "Køler" + ulm_dry: "Tør" + ulm_fan_only: "Kun ventilator" + ulm_heat_cool: "Varmer/Køler" + ulm_heating: "Opvarmning" + ulm_cooling: "Køling" ulm_person_state_home: "hjemme" ulm_person_state_away: "fraværende" ulm_popups_back: "Tilbage" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/DE.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/DE.yaml index 9488b5638..bc9007aa9 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/DE.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/DE.yaml @@ -9,8 +9,14 @@ ulm_language_variables: ulm_standby: "Standby" ulm_idle: "Im Leerlauf" ulm_currency: "€" - ulm_heat: "Wärmen" + ulm_auto: "Auto" + ulm_heat: "Wärme" ulm_cool: "Kühlen" + ulm_dry: "Trocken" + ulm_fan_only: "Nur Lüfter" + ulm_heat_cool: "Wärme/Kühlen" + ulm_heating: "Wärmen" + ulm_cooling: "Kühlen" ulm_person_state_home: "Zu Hause" ulm_person_state_away: "Abwesend" ulm_popups_back: "Zurück" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/EN.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/EN.yaml index 93a85585f..9dc30d38e 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/EN.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/EN.yaml @@ -9,8 +9,14 @@ ulm_language_variables: ulm_standby: "standby" ulm_idle: "idle" ulm_currency: "$" - ulm_heat: "Heating" - ulm_cool: "Cooling" + ulm_auto: "Auto" + ulm_heat: "Heat" + ulm_cool: "Cool" + ulm_dry: "Dry" + ulm_fan_only: "Fan only" + ulm_heat_cool: "Heat/Cool" + ulm_heating: "Heating" + ulm_cooling: "Cooling" ulm_person_state_home: "home" ulm_person_state_away: "away" ulm_popups_back: "Back" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/ES.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/ES.yaml index 181acb59d..975b64379 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/ES.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/ES.yaml @@ -9,8 +9,14 @@ ulm_language_variables: ulm_standby: "En reposo" ulm_idle: "Inactivo" ulm_currency: "€" + ulm_auto: "Auto" ulm_heat: "Calor" ulm_cool: "Frío" + ulm_dry: "Seco" + ulm_fan_only: "Sólo ventilador" + ulm_heat_cool: "Calor/Frío" + ulm_heating: "Calefacción" + ulm_cooling: "Refrigeración" ulm_person_state_home: "En casa" ulm_person_state_away: "Fuera de casa" ulm_popups_back: "Volver" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/IT.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/IT.yaml index 91ee1f4ed..a34e78911 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/IT.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/IT.yaml @@ -9,8 +9,14 @@ ulm_language_variables: ulm_standby: "In pausa" ulm_idle: "Inattivo" ulm_currency: "€" - ulm_heat: "Riscaldamento" - ulm_cool: "Raffrescamento" + ulm_auto: "Auto" + ulm_heat: "Calore" + ulm_cool: "Raffreddare" + ulm_dry: "Asciugare" + ulm_fan_only: "Solo ventilatore" + ulm_heat_cool: "Calore/Raffreddare" + ulm_heating: "Riscaldamento" + ulm_cooling: "Raffrescamento" ulm_person_state_home: "home" ulm_person_state_away: "away" ulm_popups_back: "Indietro" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/NL.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/NL.yaml index 7ee531c5a..d67d00e82 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/NL.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/NL.yaml @@ -10,8 +10,14 @@ ulm_language_variables: ulm_standby: "Stand-by" ulm_idle: "Inactief" ulm_currency: "€" + ulm_auto: "Auto" ulm_heat: "Verwarmen" ulm_cool: "Koelen" + ulm_dry: "Droog" + ulm_fan_only: "Alleen ventilator" + ulm_heat_cool: "Verwarmen/Koelen" + ulm_heating: "Verwarming" + ulm_cooling: "Koeling" ulm_person_state_home: "Thuis" ulm_person_state_away: "Afwezig" ulm_popups_back: "Terug" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/PL.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/PL.yaml index d23152afc..98cf2c22b 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/PL.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/PL.yaml @@ -9,8 +9,14 @@ ulm_language_variables: ulm_standby: "czuwanie" ulm_idle: "bezczynne" ulm_currency: "PLN" + ulm_auto: "Auto" ulm_heat: "Grzanie" ulm_cool: "Chłodzenie" + ulm_dry: "Dry" + ulm_fan_only: "Tylko wentylator" + ulm_heat_cool: "Grzanie/Chłodzenie" + ulm_heating: "Grzanie" + ulm_cooling: "Chłodzenie" ulm_person_state_home: "w domu" ulm_person_state_away: "poza domem" ulm_popups_back: "Wróć" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/PT.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/PT.yaml index 5de47046b..1cb8f6fed 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/PT.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/PT.yaml @@ -9,8 +9,14 @@ ulm_language_variables: ulm_standby: "Em espera" ulm_idle: "Inativo" ulm_currency: "€" + ulm_auto: "Auto" ulm_heat: "Quente" ulm_cool: "Frio" + ulm_dry: "Seco" + ulm_fan_only: "Apenas ventilador" + ulm_heat_cool: "Quente/Frio" + ulm_heating: "Aquecimento" + ulm_cooling: "Refrigeração" ulm_person_state_home: "home" ulm_person_state_away: "away" ulm_popups_back: "Voltar" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/SE.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/SE.yaml index 7dda438f9..2f2447b7d 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/SE.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/SE.yaml @@ -9,8 +9,14 @@ ulm_language_variables: ulm_standby: "Standby" ulm_idle: "Vilar" ulm_currency: "kr" + ulm_auto: "Auto" ulm_heat: "Värmer" ulm_cool: "Kyler" + ulm_dry: "Torka" + ulm_fan_only: "Endast fläkt" + ulm_heat_cool: "Värmer/Kyler" + ulm_heating: "Uppvärmning" + ulm_cooling: "Kylning" ulm_person_state_home: "Hemma" ulm_person_state_away: "Hemifrån" ulm_popups_back: "Tillbaka" From fddf8d69464769301d17a45d84b51edb43499959 Mon Sep 17 00:00:00 2001 From: Bavo Mees Date: Wed, 26 Jan 2022 17:20:12 +0100 Subject: [PATCH 008/248] Rewrite of the room card --- .../card_templates/cards/card_room.yaml | 273 ++++++++++++++++++ docs/assets/img/room-card.png | Bin 0 -> 22704 bytes docs/usage/cards/card_room.md | 82 ++++++ 3 files changed, 355 insertions(+) create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_room.yaml create mode 100644 docs/assets/img/room-card.png create mode 100644 docs/usage/cards/card_room.md diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_room.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_room.yaml new file mode 100644 index 000000000..d328091a1 --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_room.yaml @@ -0,0 +1,273 @@ +--- +card_room: + template: + - "ulm_language_variables" + variables: + label_use_temperature: true + label_use_brightness: false + color: "var(--google-grey-500)" + show_icon: true + show_name: true + show_label: true + size: "45%" + aspect_ratio: "1/1" + label: |- + [[[ + if (variables.label_use_temperature) { + return (entity.attributes.current_temperature || entity.attributes.temperature || entity.state || '-') + '°C'; + } else if (variables.label_use_brightness) { + if (entity.state){ + if (entity.state == "off"){ + return variables.ulm_off; + } else if (entity.state == "on"){ + if (entity.attributes.brightness != null){ + var bri = Math.round(entity.attributes.brightness / 2.55); + return (bri ? bri : "0") + "%"; + } else { + return variables.ulm_on + } + } + } else { + return variables.ulm_unavailable; + } + } + ]]] + state: + - styles: + custom_fields: + notification: + - border-radius: "50%" + - border: "2px solid var(--card-background-color)" + - width: "24.5px" + - height: "24.5px" + - position: "absolute" + - left: "50%" + - top: "50%" + - transform: "translate(-50%,-50%)" + - margin-top: "35%" + - margin-left: "-35%" + - line-height: 0 + - display: "grid" + - background-color: > + [[[ + return "rgba(var(--color-red),1)"; + ]]] + value: "unavailable" + styles: + card: + - border-radius: "20px" + - box-shadow: "var(--box-shadow)" + - padding: "5px" + grid: + - grid-template-areas: "'n n n i1' 'l l l i2' 'i i . i3' 'i i . i4'" + - grid-template-columns: "1fr 1fr 1fr 1fr" + - grid-template-rows: "1fr 1fr 1fr 1fr" + - justify-items: "center" + icon: + - color: "rgba(var(--color-theme),0.2)" + img_cell: + - background-color: "rgba(var(--color-theme),0.05)" + - border-radius: "50%" + - width: "75%" + - height: "75%" + - max-width: "none" + - max-height: "none" + - position: "absolute" + - left: "50%" + - top: "50%" + - transform: "translate(-50%,-50%)" + - margin-top: "25%" + - margin-left: "-25%" + name: + - justify-self: "start" + - align-self: "end" + - font-weight: "bold" + - font-size: "14px" + - margin-left: "12px" + - margin-bottom: "10%" + label: + - justify-self: "start" + - align-self: "start" + - font-weight: "bold" + - font-size: "12px" + - filter: "opacity(40%)" + - margin-left: "12px" + - margin-top: "-10%" + state: + - justify-self: "start" + - font-weight: "bold" + - font-size: "12px" + - filter: "opacity(40%)" + - margin-left: "6px" + custom_fields: + i1: + - border-radius: "50%" + - width: "80%" + - height: "80%" + - line-height: 0 + - display: "grid" + i2: + - border-radius: "50%" + - width: "80%" + - height: "80%" + - line-height: 0 + - display: "grid" + i3: + - border-radius: "50%" + - width: "80%" + - height: "80%" + - line-height: 0 + - display: "grid" + i4: + - border-radius: "50%" + - width: "80%" + - height: "80%" + - line-height: 0 + - display: "grid" + custom_fields: + notification: > + [[[ + if (entity.state =='unavailable'){ + return `` + } + ]]] + i1: + card: + type: "custom:button-card" + template: > + [[[ + var templates = ['widget_icon_room']; + if (variables?.entity_1?.templates?.length) { + return ['widget_icon_room'].concat(variables.entity_1.templates); + } + return templates; + ]]] + variables: "[[[ return variables.entity_1; ]]]" + entity: > + [[[ + if (variables.entity_1.entity_id) { + return variables.entity_1.entity_id; + } + ]]] + state: + - operator: "template" + value: "[[[ return !variables.entity_1; ]]]" + styles: + card: + - display: "none" + + i2: + card: + type: "custom:button-card" + template: > + [[[ + var templates = ['widget_icon_room']; + if (variables?.entity_2?.templates?.length) { + return ['widget_icon_room'].concat(variables.entity_2.templates); + } + return templates; + ]]] + variables: "[[[ return variables.entity_2; ]]]" + entity: > + [[[ + if (variables?.entity_2?.entity_id) { + return variables.entity_2.entity_id; + } + ]]] + state: + - operator: "template" + value: "[[[ return !variables.entity_2; ]]]" + styles: + card: + - display: "none" + + i3: + card: + type: "custom:button-card" + template: > + [[[ + var templates = ['widget_icon_room']; + if (variables?.entity_3?.templates?.length) { + return ['widget_icon_room'].concat(variables.entity_3.templates); + } + return templates; + ]]] + variables: "[[[ return variables.entity_3; ]]]" + entity: > + [[[ + if (variables?.entity_3?.entity_id) { + return variables.entity_3.entity_id; + } + ]]] + state: + - operator: "template" + value: "[[[ return !variables.entity_3; ]]]" + styles: + card: + - display: "none" + i4: + card: + type: "custom:button-card" + template: > + [[[ + var templates = ['widget_icon_room']; + if (variables?.entity_4?.templates?.length) { + return ['widget_icon_room'].concat(variables.entity_4.templates); + } + return templates; + ]]] + variables: "[[[ return variables.entity_4; ]]]" + entity: > + [[[ + if (variables?.entity_4?.entity_id) { + return variables.entity_4.entity_id; + } + ]]] + state: + - operator: "template" + value: "[[[ return !variables.entity_4; ]]]" + styles: + card: + - display: "none" + +widget_icon_room: + variables: + tap_action: + action: toggle + hold_action: + action: none + tap_action: + action: > + [[[ if (variables?.tap_action?.action) return variables.tap_action.action; else return 'none'; ]]] + entity: "[[[ return variables.tap_action.entity; ]]]" + navigation_path: "[[[ return variables.tap_action.navigation_path; ]]]" + url_path: "[[[ return variables.tap_action.url_path; ]]]" + service: "[[[ return variables.tap_action.service; ]]]" + service_data: "[[[ return variables.tap_action.service_data; ]]]" + hold_action: + action: > + [[[ if (variables?.hold_action?.action) return variables.hold_action.action; else return 'none'; ]]] + entity: "[[[ return variables.hold_action.entity; ]]]" + navigation_path: "[[[ return variables.hold_action.navigation_path; ]]]" + url_path: "[[[ return variables.hold_action.url_path; ]]]" + service: "[[[ return variables.hold_action.service; ]]]" + service_data: "[[[ return variables.hold_action.service_data; ]]]" + show_icon: true + show_name: false + styles: + grid: + - grid-template-areas: "'i'" + card: + - height: "100%" + - box-shadow: "none" + - padding: "0px" + icon: + - width: "50%" + - height: "50%" + - line-height: "0" + - color: "rgba(var(--color-theme),0.2)" + img_cell: + - border-radius: "50%" + - background-color: "rgba(var(--color-theme),0.05)" + size: "15px" + color: "var(--google-grey)" \ No newline at end of file diff --git a/docs/assets/img/room-card.png b/docs/assets/img/room-card.png new file mode 100644 index 0000000000000000000000000000000000000000..39cdcf18fe183b5b4ddbdebdde2be1e8c3453055 GIT binary patch literal 22704 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 literal 0 HcmV?d00001 diff --git a/docs/usage/cards/card_room.md b/docs/usage/cards/card_room.md new file mode 100644 index 000000000..a325c5942 --- /dev/null +++ b/docs/usage/cards/card_room.md @@ -0,0 +1,82 @@ +--- +title: card_room +hide: + - toc +--- + + +## Description + +![Image title](../../assets/img/ulm_cards/card_room.png){ width="500" } + +This is the `room-card`, used to show the state of single room in a quick glance. +The card has support for 4 subicons at the right side of the card. These can be configured using custom colors and tap actions. + +## Variables + +| Variable | Default | Required | Notes | Requirement | +|----------------------------------------|-----------------|------------------|----------------|-------------| +| label_use_temperature | `true` | :material-close: | Define whether the label should show the current room temperature | The temperature should be provide by either a `temperature` or `current_temperature` attribute or by the entity state | +| label_use_brightness | `false` | :material-close: | Define whether the label should show the current room brightness of the lights| requires `label_use_temperature` to be false | +| entity_1 | | :material-close: | a `room_entity` object (see below) | | +| entity_2 | | :material-close: | a `room_entity` object (see below) | | +| entity_3 | | :material-close: | a `room_entity` object (see below) | | +| entity_4 | | :material-close: | a `room_entity` object (see below) | | + +## Room entity + +| Variable | Default | Required | Notes | Requirement | +|----------------------------------------|-----------------|------------------|----------------|-------------| +| entity_id | | :material-check: | The entity_id of the status icon | | +| templates | | :material-close: | List of the additional button card templates to apply to this icon | | +| tap_action | | :material-close: | tap_action for the icon (see button card documentation for options) | | +| hold_action | | :material-close: | tap_action for the icon (see button card documentation for options) | | + +## Usage + +```yaml + - type: 'custom:button-card' + template: + - card_room + - red + name: Bathroom + entity: light.bathroom + icon: mdi:shower-head + tap_action: + action: navigate + navigation_path: '/ui-lovelace-minimalist/bathroom' + variables: + label_use_temperature: false + label_use_brightness: true + entity_1: + entity_id: light.bathroom + templates: + - yellow_on + tap_action: + action: toggle + entity_2: + entity_id: binary_sensor.badkamer_motion_sensor + templates: + - blue_on + tap_action: + action: none + entity_3: + entity_id: input_boolean.badkamer_motionsensor_enabled + templates: + - green_on + - red_off + tap_action: + action: toggle + entity_4: + entity_id: input_boolean.bath_mode + templates: + - pink_on + tap_action: + action: toggle +``` + +??? note "Template Code" + + ```yaml title="card_room.yaml" + --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_room.yaml" + ``` From 9f046098635cddbb66b1123e8af5c41655810505 Mon Sep 17 00:00:00 2001 From: BasBruss <68892092+basbruss@users.noreply.github.com> Date: Wed, 26 Jan 2022 17:29:56 +0100 Subject: [PATCH 009/248] Give a Glance of Minimalist-UI Add some Minimalist-cards to fresh installers UI/UX improvement --- .../lovelace/ui-lovelace.yaml | 110 +++++++++++++++++- 1 file changed, 108 insertions(+), 2 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml index ed5c13e9a..85cbf7258 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml @@ -8,6 +8,112 @@ background: "var(--background-image)" views: - title: "Example View" path: 0 + icon: "mdi:flower" cards: - - type: "custom:button-card" - entity: "sun.sun" + - type: "vertical-stack" + cards: + - type: "custom:button-card" + template: "card_title" + name: "You have succesfully installed the Minimalist-UI" + label: "Explore the wonderfull templates/cards we offer" + - type: "custom:auto-entities" + card: + type: "grid" + columns: 1 + square: false + card_param: "cards" + sort: + count: 1 + filter: + include: + - domain: "weather" + options: + type: "custom:button-card" + template: "custom_card_paddy_welcome_with_weather" + variables: + ulm_custom_card_paddy_welcome_time: "sensor.time" + ulm_custom_card_paddy_welcome_weather_provider: "this.entity_id" + - type: "custom:button-card" + template: "card_title" + name: "Lights" + label: "This is the Minimalist-lightcard" + - type: "custom:auto-entities" + card: + type: "grid" + columns: 2 + square: false + card_param: "cards" + sort: + count: 4 + filter: + include: + - domain: "light" + options: + type: "custom:button-card" + template: "card_light" + variables: + ulm_card_light_enable_slider: true + ulm_card_light_enable_color: true + ulm_card_light_enable_popup: true + - type: "custom:button-card" + template: "card_title" + name: "Binary Sensors" + label: "This is the Minimalist-binary_sensorcard" + - type: "custom:auto-entities" + card: + type: "grid" + columns: 2 + square: false + card_param: 'cards' + sort: + count: 4 + filter: + include: + - domain: "binary_sensor" + options: + type: "custom:button-card" + template: "card_binary_sensor_alert" + variables: + - ulm_card_binary_sensor_alert: true + show_last_changed: true + - type: "custom:button-card" + template: "card_title" + name: "Sensors" + label: "This is the Minimalist-sensorcard" + - type: "custom:auto-entities" + card: + type: "grid" + columns: 2 + square: false + card_param: "cards" + sort: + count: 4 + filter: + include: + - domain: "sensor" + options: + type: "custom:button-card" + template: "card_generic" + - type: "custom:button-card" + template: "card_title" + name: "Batteries" + label: "This is the Minimalist-batterycard" + - type: "custom:auto-entities" + card: + type: "grid" + columns: 2 + square: false + card_param: "cards" + sort: + count: 4 + filter: + include: + - attributes: + battery_level: "<= 100" + options: + type: "custom:button-card" + template: "card_battery" + variables: + ulm_card_battery_charger_type_entity_id: "this.entity_id" + ulm_card_battery_battery_level_danger: 30 + ulm_card_battery_battery_level_warning: 80 From d067ceed55a9257db39e63d5d83526d37ba2ad0e Mon Sep 17 00:00:00 2001 From: BasBruss <68892092+basbruss@users.noreply.github.com> Date: Wed, 26 Jan 2022 17:54:02 +0100 Subject: [PATCH 010/248] Optimize descriptions --- .../ui_lovelace_minimalist/lovelace/ui-lovelace.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml index 85cbf7258..827cbb1fb 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml @@ -15,7 +15,7 @@ views: - type: "custom:button-card" template: "card_title" name: "You have succesfully installed the Minimalist-UI" - label: "Explore the wonderfull templates/cards we offer" + label: "Explore the wonderfull 'Minimalistic' cards we offer" - type: "custom:auto-entities" card: type: "grid" @@ -36,7 +36,7 @@ views: - type: "custom:button-card" template: "card_title" name: "Lights" - label: "This is the Minimalist-lightcard" + label: "These are your 'Minimalist' light cards" - type: "custom:auto-entities" card: type: "grid" @@ -58,7 +58,7 @@ views: - type: "custom:button-card" template: "card_title" name: "Binary Sensors" - label: "This is the Minimalist-binary_sensorcard" + label: "These are your 'Minimalist' binary_sensor cards" - type: "custom:auto-entities" card: type: "grid" @@ -79,7 +79,7 @@ views: - type: "custom:button-card" template: "card_title" name: "Sensors" - label: "This is the Minimalist-sensorcard" + label: "These are your 'Minimalist' sensors card" - type: "custom:auto-entities" card: type: "grid" @@ -97,7 +97,7 @@ views: - type: "custom:button-card" template: "card_title" name: "Batteries" - label: "This is the Minimalist-batterycard" + label: "These are your 'Minimalist' battery cards" - type: "custom:auto-entities" card: type: "grid" From 9f067196db450a778a5b1671cf9465fdcab9183d Mon Sep 17 00:00:00 2001 From: BasBruss <68892092+basbruss@users.noreply.github.com> Date: Wed, 26 Jan 2022 18:26:58 +0100 Subject: [PATCH 011/248] Optimize Header --- .../ui_lovelace_minimalist/lovelace/ui-lovelace.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml index 827cbb1fb..c85c5725d 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml @@ -14,8 +14,8 @@ views: cards: - type: "custom:button-card" template: "card_title" - name: "You have succesfully installed the Minimalist-UI" - label: "Explore the wonderfull 'Minimalistic' cards we offer" + name: "Congrats with your installation 🎉" + label: "Explore here some of the wonderfull 'Minimalistic-UI' cards we offer" - type: "custom:auto-entities" card: type: "grid" From f55f9e20a760bb655123f5cd7be7a4665a37a940 Mon Sep 17 00:00:00 2001 From: BasBruss <68892092+basbruss@users.noreply.github.com> Date: Wed, 26 Jan 2022 18:42:27 +0100 Subject: [PATCH 012/248] Update battery section --- .../ui_lovelace_minimalist/lovelace/ui-lovelace.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml index c85c5725d..3f60e6b10 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml @@ -70,7 +70,7 @@ views: filter: include: - domain: "binary_sensor" - options: + options: type: "custom:button-card" template: "card_binary_sensor_alert" variables: @@ -91,7 +91,7 @@ views: filter: include: - domain: "sensor" - options: + options: type: "custom:button-card" template: "card_generic" - type: "custom:button-card" @@ -109,11 +109,12 @@ views: filter: include: - attributes: - battery_level: "<= 100" + unit_of_measurement: "%" + device_class: "battery" options: type: "custom:button-card" template: "card_battery" variables: - ulm_card_battery_charger_type_entity_id: "this.entity_id" + ulm_card_battery_battery_state_entity_id: "this.entity_id" ulm_card_battery_battery_level_danger: 30 ulm_card_battery_battery_level_warning: 80 From f8867499bd348a3ee1fcd553dcac17ceb79dace4 Mon Sep 17 00:00:00 2001 From: BasBruss <68892092+basbruss@users.noreply.github.com> Date: Wed, 26 Jan 2022 18:46:56 +0100 Subject: [PATCH 013/248] Update ui-lovelace.yaml fix yaml-lint --- .../ui_lovelace_minimalist/lovelace/ui-lovelace.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml index 3f60e6b10..24249d361 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml @@ -64,7 +64,7 @@ views: type: "grid" columns: 2 square: false - card_param: 'cards' + card_param: "cards" sort: count: 4 filter: From dae4cb92f3baaa72f84034af43c95ab25fc1ed15 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 26 Jan 2022 17:48:09 +0000 Subject: [PATCH 014/248] docs(README): update contributors --- README.md | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 21cadb524..dfb40af34 100644 --- a/README.md +++ b/README.md @@ -93,17 +93,17 @@ The same goes for our `custom_cards`. As the number grows, the list would be to - - schumijo/ + + BasBruss/
- schumijo + BasBruss
- - BasBruss/ + + schumijo/
- BasBruss + schumijo
@@ -282,6 +282,13 @@ The same goes for our `custom_cards`. As the number grows, the list would be to Pierre + + + Rick +
+ Rick van Nieuwland +
+ raphael/ @@ -289,6 +296,8 @@ The same goes for our `custom_cards`. As the number grows, the list would be to raphael + + AndyVRD/ @@ -296,8 +305,6 @@ The same goes for our `custom_cards`. As the number grows, the list would be to AndyVRD - - Bjarne @@ -319,6 +326,13 @@ The same goes for our `custom_cards`. As the number grows, the list would be to Emil Zackrisson + + + Filip/ +
+ Filip +
+ JP2 @@ -326,6 +340,8 @@ The same goes for our `custom_cards`. As the number grows, the list would be to JP2 Création + + Martin @@ -340,8 +356,6 @@ The same goes for our `custom_cards`. As the number grows, the list would be to Pedro Reis - - jmoransalama/ From 7b19a1556001361556f3869326a58ee1f1775928 Mon Sep 17 00:00:00 2001 From: Rick Stokkingreef Date: Wed, 26 Jan 2022 18:02:27 +0000 Subject: [PATCH 015/248] added auto-entities card --- .devcontainer/configuration.yaml | 87 ++++---- .../ui_lovelace_minimalist/__init__.py | 4 - .../lovelace-auto-entities/auto-entities.js | 210 ++++++++++++++++++ .../ui_lovelace_minimalist/load_plugins.py | 3 +- .../lovelace/ui-lovelace.yaml | 6 +- 5 files changed, 262 insertions(+), 48 deletions(-) create mode 100644 custom_components/ui_lovelace_minimalist/cards/lovelace-auto-entities/auto-entities.js diff --git a/.devcontainer/configuration.yaml b/.devcontainer/configuration.yaml index 6192afbbe..17889d50f 100644 --- a/.devcontainer/configuration.yaml +++ b/.devcontainer/configuration.yaml @@ -1,49 +1,56 @@ --- default_config: -frontend: - themes: !include_dir_merge_named "themes" +# frontend: +# themes: !include_dir_merge_named "themes" -# For some reason default_config is not picking it up. -automation ui: !include "automations.yaml" +# # For some reason default_config is not picking it up. +# automation ui: !include "automations.yaml" -# lovelace: -# mode: "storage" +# # lovelace: +# # mode: "storage" # sensor: # - platform: "time_date" -logger: - default: "info" - logs: - custom_components.ui_lovelace_minimalist: "debug" -# If you need to debug uncommment the line below (doc: https://www.home-assistant.io/integrations/debugpy/) -# debugpy: - -# -# Uncomment part below after installing dependencies -# -## Requirement for popups, install browser mod with hacs -browser_mod: - -## Install virtual integration with hacs -virtual: - -light: - - platform: "virtual" - name: "Livingroom" - support_color: true - support_color_temp: true - support_white_value: true - -sensor: - - platform: "virtual" - name: "Livingroom Temperature" - class: "temperature" - initial_value: 20 - initial_availability: true - - platform: "virtual" - name: "Livingroom Humidity" - class: "humidity" - initial_value: 50 - initial_availability: true +# logger: +# default: "info" +# logs: +# custom_components.ui_lovelace_minimalist: "debug" +# # If you need to debug uncommment the line below (doc: https://www.home-assistant.io/integrations/debugpy/) +# # debugpy: + +# # +# # Uncomment part below after installing dependencies +# # +# ## Requirement for popups, install browser mod with hacs +# browser_mod: + +# weather: +# - platform: "template" +# name: "DummyTown" +# condition_template: "cloudy" +# temperature_template: "20" +# humidity_template: "50" + +# ## Install virtual integration with hacs +# virtual: + +# light: +# - platform: "virtual" +# name: "Livingroom" +# support_color: true +# support_color_temp: true +# support_white_value: true + +# sensor: +# - platform: "virtual" +# name: "Livingroom Temperature" +# class: "temperature" +# initial_value: 20 +# initial_availability: true +# - platform: "virtual" +# name: "Livingroom Humidity" +# class: "humidity" +# initial_value: 50 +# initial_availability: true diff --git a/custom_components/ui_lovelace_minimalist/__init__.py b/custom_components/ui_lovelace_minimalist/__init__.py index 007f43ee7..d167c2d86 100644 --- a/custom_components/ui_lovelace_minimalist/__init__.py +++ b/custom_components/ui_lovelace_minimalist/__init__.py @@ -71,10 +71,6 @@ async def async_setup(hass: HomeAssistant, config: Config): """Set up this integration using UI.""" return await async_initialize_integration(hass=hass, config=config) - # load_plugins(hass, DOMAIN) - - # return True - async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: """Set up this integration using UI.""" diff --git a/custom_components/ui_lovelace_minimalist/cards/lovelace-auto-entities/auto-entities.js b/custom_components/ui_lovelace_minimalist/cards/lovelace-auto-entities/auto-entities.js new file mode 100644 index 000000000..e34de1c5e --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/cards/lovelace-auto-entities/auto-entities.js @@ -0,0 +1,210 @@ +function t(t,e,i,s){var n,o=arguments.length,r=o<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,i,s);else for(var a=t.length-1;a>=0;a--)(n=t[a])&&(r=(o<3?n(r):o>3?n(e,i,r):n(e,i))||r);return o>3&&r&&Object.defineProperty(e,i,r),r}const e="undefined"!=typeof window&&null!=window.customElements&&void 0!==window.customElements.polyfillWrapFlushCallback,i=(t,e,i=null)=>{for(;e!==i;){const i=e.nextSibling;t.removeChild(e),e=i}},s=`{{lit-${String(Math.random()).slice(2)}}}`,n=`\x3c!--${s}--\x3e`,o=new RegExp(`${s}|${n}`);class r{constructor(t,e){this.parts=[],this.element=e;const i=[],n=[],r=document.createTreeWalker(e.content,133,null,!1);let l=0,h=-1,u=0;const{strings:p,values:{length:f}}=t;for(;u0;){const e=p[u],i=d.exec(e)[2],s=i.toLowerCase()+"$lit$",n=t.getAttribute(s);t.removeAttribute(s);const r=n.split(o);this.parts.push({type:"attribute",index:h,name:i,strings:r}),u+=r.length-1}}"TEMPLATE"===t.tagName&&(n.push(t),r.currentNode=t.content)}else if(3===t.nodeType){const e=t.data;if(e.indexOf(s)>=0){const s=t.parentNode,n=e.split(o),r=n.length-1;for(let e=0;e{const i=t.length-e.length;return i>=0&&t.slice(i)===e},l=t=>-1!==t.index,c=()=>document.createComment(""),d=/([ \x09\x0a\x0c\x0d])([^\0-\x1F\x7F-\x9F "'>=/]+)([ \x09\x0a\x0c\x0d]*=[ \x09\x0a\x0c\x0d]*(?:[^ \x09\x0a\x0c\x0d"'`<>=]*|"[^"]*|'[^']*))$/;function h(t,e){const{element:{content:i},parts:s}=t,n=document.createTreeWalker(i,133,null,!1);let o=p(s),r=s[o],a=-1,l=0;const c=[];let d=null;for(;n.nextNode();){a++;const t=n.currentNode;for(t.previousSibling===d&&(d=null),e.has(t)&&(c.push(t),null===d&&(d=t)),null!==d&&l++;void 0!==r&&r.index===a;)r.index=null!==d?-1:r.index-l,o=p(s,o),r=s[o]}c.forEach((t=>t.parentNode.removeChild(t)))}const u=t=>{let e=11===t.nodeType?0:1;const i=document.createTreeWalker(t,133,null,!1);for(;i.nextNode();)e++;return e},p=(t,e=-1)=>{for(let i=e+1;i"function"==typeof t&&f.has(t),_={},v={};class m{constructor(t,e,i){this.__parts=[],this.template=t,this.processor=e,this.options=i}update(t){let e=0;for(const i of this.__parts)void 0!==i&&i.setValue(t[e]),e++;for(const t of this.__parts)void 0!==t&&t.commit()}_clone(){const t=e?this.template.element.content.cloneNode(!0):document.importNode(this.template.element.content,!0),i=[],s=this.template.parts,n=document.createTreeWalker(t,133,null,!1);let o,r=0,a=0,c=n.nextNode();for(;rt}),b=` ${s} `;class w{constructor(t,e,i,s){this.strings=t,this.values=e,this.type=i,this.processor=s}getHTML(){const t=this.strings.length-1;let e="",i=!1;for(let o=0;o-1||i)&&-1===t.indexOf("--\x3e",r+1);const a=d.exec(t);e+=null===a?t+(i?b:n):t.substr(0,a.index)+a[1]+a[2]+"$lit$"+a[3]+s}return e+=this.strings[t],e}getTemplateElement(){const t=document.createElement("template");let e=this.getHTML();return void 0!==y&&(e=y.createHTML(e)),t.innerHTML=e,t}}const S=t=>null===t||!("object"==typeof t||"function"==typeof t),C=t=>Array.isArray(t)||!(!t||!t[Symbol.iterator]);class O{constructor(t,e,i){this.dirty=!0,this.element=t,this.name=e,this.strings=i,this.parts=[];for(let t=0;t{try{const t={get capture(){return N=!0,!1}};window.addEventListener("test",t,t),window.removeEventListener("test",t,t)}catch(t){}})();class T{constructor(t,e,i){this.value=void 0,this.__pendingValue=void 0,this.element=t,this.eventName=e,this.eventContext=i,this.__boundHandleEvent=t=>this.handleEvent(t)}setValue(t){this.__pendingValue=t}commit(){for(;g(this.__pendingValue);){const t=this.__pendingValue;this.__pendingValue=_,t(this)}if(this.__pendingValue===_)return;const t=this.__pendingValue,e=this.value,i=null==t||null!=e&&(t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive),s=null!=t&&(null==e||i);i&&this.element.removeEventListener(this.eventName,this.__boundHandleEvent,this.__options),s&&(this.__options=k(t),this.element.addEventListener(this.eventName,this.__boundHandleEvent,this.__options)),this.value=t,this.__pendingValue=_}handleEvent(t){"function"==typeof this.value?this.value.call(this.eventContext||this.element,t):this.value.handleEvent(t)}}const k=t=>t&&(N?{capture:t.capture,passive:t.passive,once:t.once}:t.capture);function A(t){let e=M.get(t.type);void 0===e&&(e={stringsArray:new WeakMap,keyString:new Map},M.set(t.type,e));let i=e.stringsArray.get(t.strings);if(void 0!==i)return i;const n=t.strings.join(s);return i=e.keyString.get(n),void 0===i&&(i=new r(t,t.getTemplateElement()),e.keyString.set(n,i)),e.stringsArray.set(t.strings,i),i}const M=new Map,U=new WeakMap;const F=new class{handleAttributeExpressions(t,e,i,s){const n=e[0];if("."===n){return new j(t,e.slice(1),i).parts}if("@"===n)return[new T(t,e.slice(1),s.eventContext)];if("?"===n)return[new P(t,e.slice(1),i)];return new O(t,e,i).parts}handleTextExpression(t){return new x(t)}};"undefined"!=typeof window&&(window.litHtmlVersions||(window.litHtmlVersions=[])).push("1.3.0");const V=(t,...e)=>new w(t,e,"html",F),I=(t,e)=>`${t}--${e}`;let R=!0;void 0===window.ShadyCSS?R=!1:void 0===window.ShadyCSS.prepareTemplateDom&&(console.warn("Incompatible ShadyCSS version detected. Please update to at least @webcomponents/webcomponentsjs@2.0.2 and @webcomponents/shadycss@1.3.1."),R=!1);const D=t=>e=>{const i=I(e.type,t);let n=M.get(i);void 0===n&&(n={stringsArray:new WeakMap,keyString:new Map},M.set(i,n));let o=n.stringsArray.get(e.strings);if(void 0!==o)return o;const a=e.strings.join(s);if(o=n.keyString.get(a),void 0===o){const i=e.getTemplateElement();R&&window.ShadyCSS.prepareTemplateDom(i,t),o=new r(e,i),n.keyString.set(a,o)}return n.stringsArray.set(e.strings,o),o},q=["html","svg"],W=new Set,G=(t,e,i)=>{W.add(t);const s=i?i.element:document.createElement("template"),n=e.querySelectorAll("style"),{length:o}=n;if(0===o)return void window.ShadyCSS.prepareTemplateStyles(s,t);const r=document.createElement("style");for(let t=0;t{q.forEach((e=>{const i=M.get(I(e,t));void 0!==i&&i.keyString.forEach((t=>{const{element:{content:e}}=t,i=new Set;Array.from(e.querySelectorAll("style")).forEach((t=>{i.add(t)})),h(t,i)}))}))})(t);const a=s.content;i?function(t,e,i=null){const{element:{content:s},parts:n}=t;if(null==i)return void s.appendChild(e);const o=document.createTreeWalker(s,133,null,!1);let r=p(n),a=0,l=-1;for(;o.nextNode();)for(l++,o.currentNode===i&&(a=u(e),i.parentNode.insertBefore(e,i));-1!==r&&n[r].index===l;){if(a>0){for(;-1!==r;)n[r].index+=a,r=p(n,r);return}r=p(n,r)}}(i,r,a.firstChild):a.insertBefore(r,a.firstChild),window.ShadyCSS.prepareTemplateStyles(s,t);const l=a.querySelector("style");if(window.ShadyCSS.nativeShadow&&null!==l)e.insertBefore(l.cloneNode(!0),e.firstChild);else if(i){a.insertBefore(r,a.firstChild);const t=new Set;t.add(r),h(i,t)}};window.JSCompiler_renameProperty=(t,e)=>t;const z={toAttribute(t,e){switch(e){case Boolean:return t?"":null;case Object:case Array:return null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){switch(e){case Boolean:return null!==t;case Number:return null===t?null:Number(t);case Object:case Array:return JSON.parse(t)}return t}},L=(t,e)=>e!==t&&(e==e||t==t),B={attribute:!0,type:String,converter:z,reflect:!1,hasChanged:L};class H extends HTMLElement{constructor(){super(),this.initialize()}static get observedAttributes(){this.finalize();const t=[];return this._classProperties.forEach(((e,i)=>{const s=this._attributeNameForProperty(i,e);void 0!==s&&(this._attributeToPropertyMap.set(s,i),t.push(s))})),t}static _ensureClassProperties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_classProperties",this))){this._classProperties=new Map;const t=Object.getPrototypeOf(this)._classProperties;void 0!==t&&t.forEach(((t,e)=>this._classProperties.set(e,t)))}}static createProperty(t,e=B){if(this._ensureClassProperties(),this._classProperties.set(t,e),e.noAccessor||this.prototype.hasOwnProperty(t))return;const i="symbol"==typeof t?Symbol():`__${t}`,s=this.getPropertyDescriptor(t,i,e);void 0!==s&&Object.defineProperty(this.prototype,t,s)}static getPropertyDescriptor(t,e,i){return{get(){return this[e]},set(s){const n=this[t];this[e]=s,this.requestUpdateInternal(t,n,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this._classProperties&&this._classProperties.get(t)||B}static finalize(){const t=Object.getPrototypeOf(this);if(t.hasOwnProperty("finalized")||t.finalize(),this.finalized=!0,this._ensureClassProperties(),this._attributeToPropertyMap=new Map,this.hasOwnProperty(JSCompiler_renameProperty("properties",this))){const t=this.properties,e=[...Object.getOwnPropertyNames(t),..."function"==typeof Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(t):[]];for(const i of e)this.createProperty(i,t[i])}}static _attributeNameForProperty(t,e){const i=e.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}static _valueHasChanged(t,e,i=L){return i(t,e)}static _propertyValueFromAttribute(t,e){const i=e.type,s=e.converter||z,n="function"==typeof s?s:s.fromAttribute;return n?n(t,i):t}static _propertyValueToAttribute(t,e){if(void 0===e.reflect)return;const i=e.type,s=e.converter;return(s&&s.toAttribute||z.toAttribute)(t,i)}initialize(){this._updateState=0,this._updatePromise=new Promise((t=>this._enableUpdatingResolver=t)),this._changedProperties=new Map,this._saveInstanceProperties(),this.requestUpdateInternal()}_saveInstanceProperties(){this.constructor._classProperties.forEach(((t,e)=>{if(this.hasOwnProperty(e)){const t=this[e];delete this[e],this._instanceProperties||(this._instanceProperties=new Map),this._instanceProperties.set(e,t)}}))}_applyInstanceProperties(){this._instanceProperties.forEach(((t,e)=>this[e]=t)),this._instanceProperties=void 0}connectedCallback(){this.enableUpdating()}enableUpdating(){void 0!==this._enableUpdatingResolver&&(this._enableUpdatingResolver(),this._enableUpdatingResolver=void 0)}disconnectedCallback(){}attributeChangedCallback(t,e,i){e!==i&&this._attributeToProperty(t,i)}_propertyToAttribute(t,e,i=B){const s=this.constructor,n=s._attributeNameForProperty(t,i);if(void 0!==n){const t=s._propertyValueToAttribute(e,i);if(void 0===t)return;this._updateState=8|this._updateState,null==t?this.removeAttribute(n):this.setAttribute(n,t),this._updateState=-9&this._updateState}}_attributeToProperty(t,e){if(8&this._updateState)return;const i=this.constructor,s=i._attributeToPropertyMap.get(t);if(void 0!==s){const t=i.getPropertyOptions(s);this._updateState=16|this._updateState,this[s]=i._propertyValueFromAttribute(e,t),this._updateState=-17&this._updateState}}requestUpdateInternal(t,e,i){let s=!0;if(void 0!==t){const n=this.constructor;i=i||n.getPropertyOptions(t),n._valueHasChanged(this[t],e,i.hasChanged)?(this._changedProperties.has(t)||this._changedProperties.set(t,e),!0!==i.reflect||16&this._updateState||(void 0===this._reflectingProperties&&(this._reflectingProperties=new Map),this._reflectingProperties.set(t,i))):s=!1}!this._hasRequestedUpdate&&s&&(this._updatePromise=this._enqueueUpdate())}requestUpdate(t,e){return this.requestUpdateInternal(t,e),this.updateComplete}async _enqueueUpdate(){this._updateState=4|this._updateState;try{await this._updatePromise}catch(t){}const t=this.performUpdate();return null!=t&&await t,!this._hasRequestedUpdate}get _hasRequestedUpdate(){return 4&this._updateState}get hasUpdated(){return 1&this._updateState}performUpdate(){if(!this._hasRequestedUpdate)return;this._instanceProperties&&this._applyInstanceProperties();let t=!1;const e=this._changedProperties;try{t=this.shouldUpdate(e),t?this.update(e):this._markUpdated()}catch(e){throw t=!1,this._markUpdated(),e}t&&(1&this._updateState||(this._updateState=1|this._updateState,this.firstUpdated(e)),this.updated(e))}_markUpdated(){this._changedProperties=new Map,this._updateState=-5&this._updateState}get updateComplete(){return this._getUpdateComplete()}_getUpdateComplete(){return this._updatePromise}shouldUpdate(t){return!0}update(t){void 0!==this._reflectingProperties&&this._reflectingProperties.size>0&&(this._reflectingProperties.forEach(((t,e)=>this._propertyToAttribute(e,this[e],t))),this._reflectingProperties=void 0),this._markUpdated()}updated(t){}firstUpdated(t){}}H.finalized=!0;const J=(t,e)=>"method"===e.kind&&e.descriptor&&!("value"in e.descriptor)?Object.assign(Object.assign({},e),{finisher(i){i.createProperty(e.key,t)}}):{kind:"field",key:Symbol(),placement:"own",descriptor:{},initializer(){"function"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(i){i.createProperty(e.key,t)}};function K(t){return(e,i)=>void 0!==i?((t,e,i)=>{e.constructor.createProperty(i,t)})(t,e,i):J(t,e)}function Y(t){return K({attribute:!1,hasChanged:null==t?void 0:t.hasChanged})}const Q=(t,e,i)=>{Object.defineProperty(e,i,t)},X=(t,e)=>({kind:"method",placement:"prototype",key:e.key,descriptor:t}),Z=window.ShadowRoot&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,tt=Symbol();class et{constructor(t,e){if(e!==tt)throw new Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t}get styleSheet(){return void 0===this._styleSheet&&(Z?(this._styleSheet=new CSSStyleSheet,this._styleSheet.replaceSync(this.cssText)):this._styleSheet=null),this._styleSheet}toString(){return this.cssText}}const it=(t,...e)=>{const i=e.reduce(((e,i,s)=>e+(t=>{if(t instanceof et)return t.cssText;if("number"==typeof t)return t;throw new Error(`Value passed to 'css' function must be a 'css' function result: ${t}. Use 'unsafeCSS' to pass non-literal values, but\n take care to ensure page security.`)})(i)+t[s+1]),t[0]);return new et(i,tt)};(window.litElementVersions||(window.litElementVersions=[])).push("2.4.0");const st={};class nt extends H{static getStyles(){return this.styles}static _getUniqueStyles(){if(this.hasOwnProperty(JSCompiler_renameProperty("_styles",this)))return;const t=this.getStyles();if(Array.isArray(t)){const e=(t,i)=>t.reduceRight(((t,i)=>Array.isArray(i)?e(i,t):(t.add(i),t)),i),i=e(t,new Set),s=[];i.forEach((t=>s.unshift(t))),this._styles=s}else this._styles=void 0===t?[]:[t];this._styles=this._styles.map((t=>{if(t instanceof CSSStyleSheet&&!Z){const e=Array.prototype.slice.call(t.cssRules).reduce(((t,e)=>t+e.cssText),"");return new et(String(e),tt)}return t}))}initialize(){super.initialize(),this.constructor._getUniqueStyles(),this.renderRoot=this.createRenderRoot(),window.ShadowRoot&&this.renderRoot instanceof window.ShadowRoot&&this.adoptStyles()}createRenderRoot(){return this.attachShadow({mode:"open"})}adoptStyles(){const t=this.constructor._styles;0!==t.length&&(void 0===window.ShadyCSS||window.ShadyCSS.nativeShadow?Z?this.renderRoot.adoptedStyleSheets=t.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):this._needsShimAdoptedStyleSheets=!0:window.ShadyCSS.ScopingShim.prepareAdoptedCssText(t.map((t=>t.cssText)),this.localName))}connectedCallback(){super.connectedCallback(),this.hasUpdated&&void 0!==window.ShadyCSS&&window.ShadyCSS.styleElement(this)}update(t){const e=this.render();super.update(t),e!==st&&this.constructor.render(e,this.renderRoot,{scopeName:this.localName,eventContext:this}),this._needsShimAdoptedStyleSheets&&(this._needsShimAdoptedStyleSheets=!1,this.constructor._styles.forEach((t=>{const e=document.createElement("style");e.textContent=t.cssText,this.renderRoot.appendChild(e)})))}render(){return st}}function ot(){return document.querySelector("hc-main")?document.querySelector("hc-main").hass:document.querySelector("home-assistant")?document.querySelector("home-assistant").hass:void 0}nt.finalized=!0,nt.render=(t,e,s)=>{if(!s||"object"!=typeof s||!s.scopeName)throw new Error("The `scopeName` option is required.");const n=s.scopeName,o=U.has(e),r=R&&11===e.nodeType&&!!e.host,a=r&&!W.has(n),l=a?document.createDocumentFragment():e;if(((t,e,s)=>{let n=U.get(e);void 0===n&&(i(e,e.firstChild),U.set(e,n=new x(Object.assign({templateFactory:A},s))),n.appendInto(e)),n.setValue(t),n.commit()})(t,l,Object.assign({templateFactory:D(n)},s)),a){const t=U.get(l);U.delete(l);const s=t.value instanceof m?t.value.template:void 0;G(n,l,s),i(e,e.firstChild),e.appendChild(l),U.set(e,t)}!o&&r&&window.ShadyCSS.styleElement(e.host)};const rt="lovelace-player-device-id";function at(){if(!localStorage[rt]){const t=()=>Math.floor(1e5*(1+Math.random())).toString(16).substring(1);window.fully&&"function"==typeof fully.getDeviceId?localStorage[rt]=fully.getDeviceId():localStorage[rt]=`${t()}${t()}-${t()}${t()}`}return localStorage[rt]}let lt=at();const ct=new URLSearchParams(window.location.search);var dt;function ht(t){return!!String(t).includes("{%")||(!!String(t).includes("{{")||void 0)}ct.get("deviceID")&&null!==(dt=ct.get("deviceID"))&&("clear"===dt?localStorage.removeItem(rt):localStorage[rt]=dt,lt=at()),window.cardMod_template_cache=window.cardMod_template_cache||{};const ut=window.cardMod_template_cache;async function pt(t,e,i){const s=ot().connection,n=JSON.stringify([e,i]);let o=ut[n];o?(o.callbacks.has(t)||ft(t),t(o.value),o.callbacks.add(t)):(ft(t),t(""),i=Object.assign({user:ot().user.name,browser:lt,hash:location.hash.substr(1)||""},i),ut[n]=o={template:e,variables:i,value:"",callbacks:new Set([t]),unsubscribe:s.subscribeMessage((t=>function(t,e){const i=ut[t];i&&(i.value=e.result,i.callbacks.forEach((t=>t(e.result))))}(n,t)),{type:"render_template",template:e,variables:i})})}async function ft(t){let e;for(const[i,s]of Object.entries(ut))if(s.callbacks.has(t)){s.callbacks.delete(t),0==s.callbacks.size&&(e=s.unsubscribe,delete ut[i]);break}e&&await(await e)()}var gt;function _t(t,e){if("string"==typeof e&&"string"==typeof t&&(t.startsWith("/")&&t.endsWith("/")||-1!==t.indexOf("*"))){return t.startsWith("/")||(t=`/^${t=t.replace(/\./g,".").replace(/\*/g,".*")}$/`),new RegExp(t.slice(1,-1)).test(e)}if("string"==typeof t){if(t.startsWith("<="))return parseFloat(e)<=parseFloat(t.substr(2));if(t.startsWith(">="))return parseFloat(e)>=parseFloat(t.substr(2));if(t.startsWith("<"))return parseFloat(e)"))return parseFloat(e)>parseFloat(t.substr(1));if(t.startsWith("!"))return parseFloat(e)!=parseFloat(t.substr(1));if(t.startsWith("="))return parseFloat(e)==parseFloat(t.substr(1))}return t===e}window.autoEntities_cache=null!==(gt=window.autoEntities_cache)&&void 0!==gt?gt:{};const vt=window.autoEntities_cache;async function mt(t){var e;return vt.areas=null!==(e=vt.areas)&&void 0!==e?e:await t.callWS({type:"config/area_registry/list"}),vt.areas}async function yt(t){var e;return vt.devices=null!==(e=vt.devices)&&void 0!==e?e:await t.callWS({type:"config/device_registry/list"}),vt.devices}async function bt(t){var e;return vt.entities=null!==(e=vt.entities)&&void 0!==e?e:await t.callWS({type:"config/entity_registry/list"}),vt.entities}const wt={options:async()=>!0,sort:async()=>!0,domain:async(t,e,i)=>_t(e,i.entity_id.split(".")[0]),entity_id:async(t,e,i)=>_t(e,i.entity_id),state:async(t,e,i)=>_t(e,i.state),name:async(t,e,i)=>{var s;return _t(e,null===(s=i.attributes)||void 0===s?void 0:s.friendly_name)},group:async(t,e,i)=>{var s,n,o;return null===(o=null===(n=null===(s=t.states[e])||void 0===s?void 0:s.attributes)||void 0===n?void 0:n.entity_id)||void 0===o?void 0:o.includes(i.entity_id)},attributes:async(t,e,i)=>{for(const[t,s]of Object.entries(e)){let e=t.split(" ")[0],n=i.attributes;for(const t of e.split(":"))n=n?n[t]:void 0;if(void 0===n||!_t(s,n))return!1}return!0},not:async(t,e,i)=>!await St(t,e,i.entity_id),or:async(t,e,i)=>{for(const s of e)if(await St(t,s,i.entity_id))return!0;return!1},device:async(t,e,i)=>{const s=(await bt(t)).find((t=>t.entity_id===i.entity_id));if(!s)return!1;const n=(await yt(t)).find((t=>t.id===s.device_id));return!!n&&(_t(e,n.name_by_user)||_t(e,n.name))},area:async(t,e,i)=>{const s=(await bt(t)).find((t=>t.entity_id===i.entity_id));if(!s)return!1;let n=(await mt(t)).find((t=>t.area_id===s.area_id));if(n)return _t(e,n.name);const o=(await yt(t)).find((t=>t.id===s.device_id));return!!o&&(n=(await mt(t)).find((t=>t.area_id===o.area_id)),!!n&&_t(e,n.name))},last_changed:async(t,e,i)=>_t(e,((new Date).getTime()-new Date(i.last_changed).getTime())/6e4),last_updated:async(t,e,i)=>_t(e,((new Date).getTime()-new Date(i.last_updated).getTime())/6e4),last_triggered:async(t,e,i)=>{if(null==i.attributes.last_triggered)return!1;return _t(e,((new Date).getTime()-new Date(i.attributes.last_triggered).getTime())/6e4)}};async function St(t,e,i){var s;if(!t.states[i])return!1;for(let[n,o]of Object.entries(e))if(n=n.trim().split(" ")[0].trim(),!await(null===(s=wt[n])||void 0===s?void 0:s.call(wt,t,o,t.states[i])))return!1;return!0}function Ct(t,e,i){var s,n,o,r;const[a,l]=i.reverse?[-1,1]:[1,-1];return i.ignore_case&&(t=null!==(n=null===(s=null==t?void 0:t.toLowerCase)||void 0===s?void 0:s.call(t))&&void 0!==n?n:t,e=null!==(r=null===(o=null==e?void 0:e.toLowerCase)||void 0===o?void 0:o.call(e))&&void 0!==r?r:e),i.numeric&&(isNaN(parseFloat(t))&&isNaN(parseFloat(e))||(t=isNaN(parseFloat(t))?void 0:parseFloat(t),e=isNaN(parseFloat(e))?void 0:parseFloat(e))),void 0===t&&void 0===e?0:void 0===t?a:void 0===e?l:(i.reverse?-1:1)*String(t).localeCompare(String(e),void 0,i)}const Ot={none:()=>0,domain:(t,e,i)=>{var s,n;return Ct(null===(s=null==t?void 0:t.entity_id)||void 0===s?void 0:s.split(".")[0],null===(n=null==e?void 0:e.entity_id)||void 0===n?void 0:n.split(".")[0],i)},entity_id:(t,e,i)=>Ct(null==t?void 0:t.entity_id,null==e?void 0:e.entity_id,i),friendly_name:(t,e,i)=>{var s,n,o,r;return Ct((null===(s=null==t?void 0:t.attributes)||void 0===s?void 0:s.friendly_name)||(null===(n=null==t?void 0:t.entity_id)||void 0===n?void 0:n.split(".")[1]),(null===(o=null==e?void 0:e.attributes)||void 0===o?void 0:o.friendly_name)||(null===(r=null==e?void 0:e.entity_id)||void 0===r?void 0:r.split(".")[1]),i)},name:(t,e,i)=>{var s,n,o,r;return Ct((null===(s=null==t?void 0:t.attributes)||void 0===s?void 0:s.friendly_name)||(null===(n=null==t?void 0:t.entity_id)||void 0===n?void 0:n.split(".")[1]),(null===(o=null==e?void 0:e.attributes)||void 0===o?void 0:o.friendly_name)||(null===(r=null==e?void 0:e.entity_id)||void 0===r?void 0:r.split(".")[1]),i)},state:(t,e,i)=>Ct(null==t?void 0:t.state,null==e?void 0:e.state,i),attribute:(t,e,i)=>{var s;const[n,o]=(null==i?void 0:i.reverse)?[-1,1]:[1,-1];let r=null==t?void 0:t.attributes,a=null==e?void 0:e.attributes;for(const t of null===(s=null==i?void 0:i.attribute)||void 0===s?void 0:s.split(":")){if(void 0===r&&void 0===a)return 0;if(void 0===r)return n;if(void 0===a)return o;[r,a]=[r[t],a[t]]}return Ct(r,a,i)},last_changed:(t,e,i)=>{const[s,n]=(null==i?void 0:i.reverse)?[-1,1]:[1,-1];return null==(null==t?void 0:t.last_changed)&&null==(null==e?void 0:e.last_changed)?0:null==(null==t?void 0:t.last_changed)?s:null==(null==e?void 0:e.last_changed)?n:(i.numeric=!0,Ct(new Date(null==t?void 0:t.last_changed).getTime(),new Date(null==e?void 0:e.last_changed).getTime(),i))},last_updated:(t,e,i)=>{const[s,n]=(null==i?void 0:i.reverse)?[-1,1]:[1,-1];return null==(null==t?void 0:t.last_updated)&&null==(null==e?void 0:e.last_updated)?0:null==(null==t?void 0:t.last_updated)?s:null==(null==e?void 0:e.last_updated)?n:(i.numeric=!0,Ct(new Date(null==t?void 0:t.last_updated).getTime(),new Date(null==e?void 0:e.last_updated).getTime(),i))},last_triggered:(t,e,i)=>{var s,n,o,r,a,l;const[c,d]=(null==i?void 0:i.reverse)?[-1,1]:[1,-1];return null==(null===(s=null==t?void 0:t.attributes)||void 0===s?void 0:s.last_triggered)&&null==(null===(n=null==e?void 0:e.attributes)||void 0===n?void 0:n.last_triggered)?0:null==(null===(o=null==t?void 0:t.attributes)||void 0===o?void 0:o.last_triggered)?c:null==(null===(r=null==e?void 0:e.attributes)||void 0===r?void 0:r.last_triggered)?d:(i.numeric=!0,Ct(new Date(null===(a=null==t?void 0:t.attributes)||void 0===a?void 0:a.last_triggered).getTime(),new Date(null===(l=null==e?void 0:e.attributes)||void 0===l?void 0:l.last_triggered).getTime(),i))}};function Et(t,e){return function(i,s){var n,o;return null!==(o=null===(n=Ot[e.method])||void 0===n?void 0:n.call(Ot,t.states[i.entity],t.states[s.entity],e))&&void 0!==o?o:0}}var xt="1.9.1";const Pt=["domain","entity_id","state","name","group","device","area","last_changed","last_updated","last_triggered"],jt=["none","domain","entity_id","friendly_name","state","last_changed","last_updated","last_triggered"];class $t extends nt{constructor(){super(...arguments),this._selectedTab=0,this._cardGUIMode=!0,this._cardGUIModeAvailable=!0}setConfig(t){this._config=t}_handleSwitchTab(t){this._selectedTab=parseInt(t.detail.index,10)}_addFilterGroup(){var t;if(!this._config)return;const e=[...null===(t=this._config.filter)||void 0===t?void 0:t.include];e.push({domain:""});const i=Object.assign(Object.assign({},this._config.filter),{include:e});this._config=Object.assign(Object.assign({},this._config),{filter:i}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_deleteFilterGroup(t){var e;if(!this._config)return;const i=[...null===(e=this._config.filter)||void 0===e?void 0:e.include];i.splice(t,1);const s=Object.assign(Object.assign({},this._config.filter),{include:i});this._config=Object.assign(Object.assign({},this._config),{filter:s}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_moveFilterGroup(t,e){var i;if(!this._config)return;const s=[...null===(i=this._config.filter)||void 0===i?void 0:i.include];[s[t],s[t+e]]=[s[t+e],s[t]];const n=Object.assign(Object.assign({},this._config.filter),{include:s});this._config=Object.assign(Object.assign({},this._config),{filter:n}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_addSpecialEntry(){var t;if(!this._config)return;const e=[...null===(t=this._config.filter)||void 0===t?void 0:t.include];e.push({type:""});const i=Object.assign(Object.assign({},this._config.filter),{include:e});this._config=Object.assign(Object.assign({},this._config),{filter:i}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}async _changeSpecialEntry(t,e){var i;if(!this._config)return;const s=[...null===(i=this._config.filter)||void 0===i?void 0:i.include];s[t]=e.detail.value;const n=Object.assign(Object.assign({},this._config.filter),{include:s});this._config=Object.assign(Object.assign({},this._config),{filter:n}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}async _changeGroupOptions(t,e){var i;if(!this._config)return;const s=e.detail.value,n=[...null===(i=this._config.filter)||void 0===i?void 0:i.include];n[t]=Object.assign(Object.assign({},n[t]),{options:s});const o=Object.assign(Object.assign({},this._config.filter),{include:n});this._config=Object.assign(Object.assign({},this._config),{filter:o}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_addFilter(t){var e;if(!this._config)return;const i=Pt.find((e=>void 0===this._config.filter.include[t][e]));if(void 0===i)return;const s=[...null===(e=this._config.filter)||void 0===e?void 0:e.include];s[t]=Object.assign(Object.assign({},s[t]),{[i]:""});const n=Object.assign(Object.assign({},this._config.filter),{include:s});this._config=Object.assign(Object.assign({},this._config),{filter:n}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_removeFilter(t,e){var i;if(!this._config)return;const s=[...null===(i=this._config.filter)||void 0===i?void 0:i.include],n=Object.assign({},s[t]);if(delete n[e],0===Object.keys(n).length)return this._deleteFilterGroup(t);s[t]=n;const o=Object.assign(Object.assign({},this._config.filter),{include:s});this._config=Object.assign(Object.assign({},this._config),{filter:o}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_changeFilterKey(t,e,i){var s;if(!this._config)return;const n=Pt[i.target.selected];if(void 0===n||n===e)return;const o=[...null===(s=this._config.filter)||void 0===s?void 0:s.include],r=Object.assign({},o[t]);if(void 0===r[e])return;r[n]=r[e],delete r[e],o[t]=r;const a=Object.assign(Object.assign({},this._config.filter),{include:o});this._config=Object.assign(Object.assign({},this._config),{filter:a}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_changeFilterValue(t,e,i){var s;if(!this._config)return;const n=[...null===(s=this._config.filter)||void 0===s?void 0:s.include],o=Object.assign({},n[t]);o[e]=i.target.value,n[t]=o;const r=Object.assign(Object.assign({},this._config.filter),{include:n});this._config=Object.assign(Object.assign({},this._config),{filter:r}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_changeSortMethod(t){if(!this._config)return;const e=jt[t.target.selected],i=Object.assign(Object.assign({},this._config.sort),{method:e});this._config=Object.assign(Object.assign({},this._config),{sort:i}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_sortOptionToggle(t,e){if(!this._config)return;const i=Object.assign({},this._config.sort);i[t]=e.target.checked,this._config=Object.assign(Object.assign({},this._config),{sort:i}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_showEmptyToggle(){if(!this._config)return;const t=!1===this._config.show_empty;this._config=Object.assign(Object.assign({},this._config),{show_empty:t}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_changeCardParam(t){if(!this._config)return;const e=""===t.target.value||"entities"===t.target.value?void 0:t.target.value;this._config=Object.assign(Object.assign({},this._config),{card_param:e}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_getCardConfig(){const t=Object.assign({},this._config.card);return t[this._config.card_param||"entities"]=[],t}_handleCardPicked(t){if(t.stopPropagation(),!this._config)return;const e=Object.assign({},t.detail.config);delete e.entities,this._config=Object.assign(Object.assign({},this._config),{card:e}),this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_handleCardConfigChanged(t){if(t.stopPropagation(),!this._config)return;const e=Object.assign({},t.detail.config);delete e[this._config.card_param||"entities"],this._config=Object.assign(Object.assign({},this._config),{card:e}),this._cardGUIModeAvailable=t.detail.guiModeAvailable,this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}}))}_deleteCard(t){this._config&&(this._config=Object.assign({},this._config),delete this._config.card,this.dispatchEvent(new CustomEvent("config-changed",{detail:{config:this._config}})))}_toggleCardMode(t){var e;null===(e=this._cardEditorEl)||void 0===e||e.toggleMode()}_cardGUIModeChanged(t){t.stopPropagation(),this._cardGUIMode=t.detail.guiMode,this._cardGUIModeAvailable=t.detail.guiModeAvailable}render(){return this.hass&&this._config?V` +
+
+ + + + + +
+
+ ${[this._renderFilterEditor,this._renderSortEditor,this._renderCardEditor][this._selectedTab].bind(this)()} +
+
+ `:V``}_renderFilterEditor(){var t;return(null===(t=this._config.filter)||void 0===t?void 0:t.template)||this._config.entities?V` +
+

+ Your filter method is not handled by the GUI editor. +

+

Please switch to the CODE EDITOR to access all options.

+
+ `:V` + ${this._config.filter.include.map(((t,e)=>V` +
+
+ this._moveFilterGroup(e,-1)} + > + + + this._moveFilterGroup(e,1)} + > + + + this._deleteFilterGroup(e)} + > + + +
+ ${void 0===t.type?V` + ${Object.entries(t).map((([t,i],s)=>V` + ${Pt.includes(t)?V` +
+ + this._changeFilterKey(e,t,i)} + > + ${Pt.map((t=>V` ${t} `))} + + + this._changeFilterValue(e,t,i)} + > + this._removeFilter(e,t)} + > + + + +
+ `:"options"===t?V``:V`

Some filters are not shown

+

+ Please switch to the CODE EDITOR to access all + options. +

`} + `))} + this._addFilter(e)}> + Add filter + + this._changeGroupOptions(e,t)} + > + `:V`this._changeSpecialEntry(e,t)} + >`} +
+ `))} + + Add filter group + + + Add non-filter entry + + `}_renderSortEditor(){var t,e,i,s,n;return V` +
+ ${(null===(t=this._config.sort)||void 0===t?void 0:t.method)&&!jt.includes(this._config.sort.method)?V`

+ Your sort method is not handled by the GUI editor. +

+

Please switch to the CODE EDITOR to access all options.

`:V` + Method: + + + ${jt.map((t=>V` ${t} `))} + + +

+ + this._sortOptionToggle("reverse",t)} + > + +

+

+ + this._sortOptionToggle("numeric",t)} + > + +

+ `} +
+ `}_renderCardEditor(){var t;return V` +
+ + + + + + ${this._config.card?V` +
+ + ${!this._cardEditorEl||this._cardGUIMode?"Show code editor":"Show Visual Editor"} + + + + +
+ + `:V` + + `} +
+ `}static get styles(){return[it` + mwc-tab-bar { + border-bottom: 1px solid var(--divider-color); + } + + .filter, + .card { + margin-top: 8px; + border: 1px solid var(--divider-color); + padding: 12px; + } + .filter .option { + display: flex; + align-items: flex-end; + } + .filter .option paper-dropdown-menu { + margin-right: 16px; + width: 150px; + } + .filter .option paper-input { + flex-grow: 2; + } + + .filter .toolbar, + .card .card-options { + display: flex; + justify-content: flex-end; + width: 100%; + } + .gui-mode-button { + margin-right: auto; + } + `]}}function Nt(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(!(t instanceof Object&&e instanceof Object))return!1;for(const i in t)if(t.hasOwnProperty(i)){if(!e.hasOwnProperty(i))return!1;if(t[i]!==e[i]){if("object"!=typeof t[i])return!1;if(!Nt(t[i],e[i]))return!1}}for(const i in e)if(e.hasOwnProperty(i)&&!t.hasOwnProperty(i))return!1;return!0}t([Y()],$t.prototype,"_config",void 0),t([K()],$t.prototype,"lovelace",void 0),t([K()],$t.prototype,"hass",void 0),t([Y()],$t.prototype,"_selectedTab",void 0),t([Y()],$t.prototype,"_cardGUIMode",void 0),t([Y()],$t.prototype,"_cardGUIModeAvailable",void 0),t([function(t,e){return(i,s)=>{const n={get(){return this.renderRoot.querySelector(t)},enumerable:!0,configurable:!0};if(e){const e="symbol"==typeof s?Symbol():`__${s}`;n.get=function(){return void 0===this[e]&&(this[e]=this.renderRoot.querySelector(t)),this[e]}}return void 0!==s?Q(n,i,s):X(n,i)}}("hui-card-element-editor")],$t.prototype,"_cardEditorEl",void 0),customElements.define("auto-entities-editor",$t),window.customCards=window.customCards||[],window.customCards.push({type:"auto-entities",name:"Auto Entities",preview:!1,description:"Entity Filter on Steroids. Auto Entities allows you to fill other cards with entities automatically, based on a number of attributes."}),window.queueMicrotask=window.queueMicrotask||(t=>window.setTimeout(t,1));class Tt extends nt{constructor(){super(...arguments),this._updateCooldown={timer:void 0,rerun:!1},this._renderer=t=>{this._template="string"==typeof t?t.split(/[\s,]+/):t}}static getConfigElement(){return document.createElement("auto-entities-editor")}static getStubConfig(){return{card:{type:"entities"},filter:{include:[],exclude:[]}}}setConfig(t){var e,i;if(!t)throw new Error("No configuration.");if(!(null===(e=t.card)||void 0===e?void 0:e.type))throw new Error("No card type specified.");if(!t.filter&&!t.entities)throw new Error("No filters specified.");t=JSON.parse(JSON.stringify(t)),this._config=t,(null===(i=this._config.filter)||void 0===i?void 0:i.template)&&ht(this._config.filter.template)&&pt(this._renderer,this._config.filter.template,{config:t}),this._cardBuilt=new Promise((t=>this._cardBuiltResolve=t)),queueMicrotask((()=>this.update_all()))}connectedCallback(){var t,e;super.connectedCallback(),(null===(e=null===(t=this._config)||void 0===t?void 0:t.filter)||void 0===e?void 0:e.template)&&ht(this._config.filter.template)&&pt(this._renderer,this._config.filter.template,{config:this._config})}disconnectedCallback(){super.disconnectedCallback(),ft(this._renderer)}async update_all(){if(this.card&&(this.card.hass=this.hass),this._updateCooldown.timer)return void(this._updateCooldown.rerun=!0);this._updateCooldown.rerun=!1,this._updateCooldown.timer=window.setTimeout((()=>{this._updateCooldown.timer=void 0,this._updateCooldown.rerun&&this.update_all()}),500);const t=await this.update_entities();this.update_card(t)}async update_card(t){var e,i,s;if(this._entities&&Nt(t,this._entities)&&Nt(this._cardConfig,this._config.card))return;const n=(null===(e=this._cardConfig)||void 0===e?void 0:e.type)!==this._config.card.type;this._entities=t,this._cardConfig=JSON.parse(JSON.stringify(this._config.card));const o=Object.assign({[this._config.card_param||"entities"]:t},this._config.card);if(!this.card||n){const t=await window.loadCardHelpers(),e=console.error;let s=!1;if(console.error=(...t)=>{var i,n,o,r,a,l;3===t.length&&t[2].message&&((null===(n=(i=t[2].message).startsWith)||void 0===n?void 0:n.call(i,"Entities"))||(null===(r=(o=t[2].message).startsWith)||void 0===r?void 0:r.call(o,"Either entities"))||(null===(l=(a=t[2].message).endsWith)||void 0===l?void 0:l.call(a,"entity")))?s=!0:e(...t)},this.card=await t.createCardElement(o),console.error=e,s)return this.card=void 0,this._entities=void 0,this._cardConfig=void 0,void(null===(i=this._cardBuiltResolve)||void 0===i||i.call(this))}else this.card.setConfig(o);null===(s=this._cardBuiltResolve)||void 0===s||s.call(this),this.card.hass=this.hass;const r=0===t.length&&!1===this._config.show_empty;this.style.display=r?"none":null,this.style.margin=r?"0":null,this.card.requestUpdate&&(await this.updateComplete,this.card.requestUpdate())}async update_entities(){var t,e,i,s,n,o;const r=t=>t?"string"==typeof t?{entity:t.trim()}:t:null;let a=[...(null===(e=null===(t=this._config)||void 0===t?void 0:t.entities)||void 0===e?void 0:e.map(r))||[]];if(!this.hass)return a;if(this._template&&(a=a.concat(this._template.map(r))),a=a.filter(Boolean),null===(i=this._config.filter)||void 0===i?void 0:i.include){const t=Object.keys(this.hass.states).map(r);for(const e of this._config.filter.include){if(e.type){a.push(e);continue}let i=[];for(const s of t)await St(this.hass,e,s.entity)&&i.push(JSON.parse(JSON.stringify(Object.assign(Object.assign({},s),e.options)).replace(/this.entity_id/g,s.entity)));if(e.sort&&(i=i.sort(Et(this.hass,e.sort)),e.sort.count)){const t=null!==(s=e.sort.first)&&void 0!==s?s:0;i=i.slice(t,t+e.sort.count)}a=a.concat(i)}}if(null===(n=this._config.filter)||void 0===n?void 0:n.exclude)for(const t of this._config.filter.exclude){const e=[];for(const i of a)void 0!==i.entity&&await St(this.hass,t,i.entity)||e.push(i);a=e}if(this._config.sort&&(a=a.sort(Et(this.hass,this._config.sort)),this._config.sort.count)){const t=null!==(o=this._config.sort.first)&&void 0!==o?o:0;a=a.slice(t,t+this._config.sort.count)}if(this._config.unique){let t=[];for(const e of a)"entity"===this._config.unique&&e.entity&&t.some((t=>t.entity===e.entity))||t.some((t=>Nt(t,e)))||t.push(e);a=t}return a}async updated(t){(t.has("_template")||t.has("hass")&&this.hass)&&queueMicrotask((()=>this.update_all()))}createRenderRoot(){return this}render(){return V`${this.card}`}async getCardSize(){var t,e;let i=0;return await this._cardBuilt,this.card&&this.card.getCardSize&&(i=await this.card.getCardSize()),1===i&&(null===(t=this._entities)||void 0===t?void 0:t.length)&&(i=this._entities.length),0===i&&(null===(e=this._config.filter)||void 0===e?void 0:e.include)&&(i=Object.keys(this._config.filter.include).length),i||5}}t([K()],Tt.prototype,"_config",void 0),t([K()],Tt.prototype,"hass",void 0),t([K()],Tt.prototype,"card",void 0),t([K()],Tt.prototype,"_template",void 0),customElements.get("auto-entities")||(customElements.define("auto-entities",Tt),console.info(`%cAUTO-ENTITIES ${xt} IS INSTALLED`,"color: green; font-weight: bold","")); diff --git a/custom_components/ui_lovelace_minimalist/load_plugins.py b/custom_components/ui_lovelace_minimalist/load_plugins.py index ad2833786..49b5002a8 100644 --- a/custom_components/ui_lovelace_minimalist/load_plugins.py +++ b/custom_components/ui_lovelace_minimalist/load_plugins.py @@ -29,6 +29,7 @@ def load_plugins(hass: HomeAssistant, ulm: UlmBase): "button-card", "light-entity-card", "lovelace-card-mod", + "lovelace-auto-entities", "mini-graph-card", "mini-media-player", "my-cards", @@ -56,7 +57,7 @@ def load_plugins(hass: HomeAssistant, ulm: UlmBase): ) add_extra_js_url( hass, - "/ui_lovelace_minimalist/cards/lovelace-card-mod/rollup.config.js", + "/ui_lovelace_minimalist/cards/lovelace-auto-entities/auto-entities.js", ) add_extra_js_url( hass, diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml index 827cbb1fb..5803c546b 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml @@ -64,13 +64,13 @@ views: type: "grid" columns: 2 square: false - card_param: 'cards' + card_param: "cards" sort: count: 4 filter: include: - domain: "binary_sensor" - options: + options: type: "custom:button-card" template: "card_binary_sensor_alert" variables: @@ -91,7 +91,7 @@ views: filter: include: - domain: "sensor" - options: + options: type: "custom:button-card" template: "card_generic" - type: "custom:button-card" From d46a932a5910db6b275e4f8ff77b1b1062020b7b Mon Sep 17 00:00:00 2001 From: Bavo Mees Date: Wed, 26 Jan 2022 19:26:32 +0100 Subject: [PATCH 016/248] Improved Room card documentation --- docs/usage/cards/card_room.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/docs/usage/cards/card_room.md b/docs/usage/cards/card_room.md index a325c5942..f5b438d85 100644 --- a/docs/usage/cards/card_room.md +++ b/docs/usage/cards/card_room.md @@ -32,6 +32,19 @@ The card has support for 4 subicons at the right side of the card. These can be | tap_action | | :material-close: | tap_action for the icon (see button card documentation for options) | | | hold_action | | :material-close: | tap_action for the icon (see button card documentation for options) | | +# Default card options +All the options from the button card are still available for the large room card. +If you want to tweak this card a little bit more, below are some examples. The full list can be found here: [link](https://github.com/custom-cards/button-card#main-options) + +| Options | Default | Required | Notes | Requirement | +|----------------------------------------|-----------------|------------------|----------------|-------------| +| entity | | :material-close: | The entity_id for the large card | | +| icon | | :material-close: | Icon to display. Defaults to the entity icon | | +| tap_action | | :material-close: | Define the type of action on click, if undefined, toggle will be used.| see [Action](https://github.com/custom-cards/button-card#Action)| +| hold_action | | :material-close: | Define the type of action on hold, if undefined, nothing happens | see [Action](https://github.com/custom-cards/button-card#Action)| +| label | | :material-close: | Change the label text | | +| title | | :material-close: | Change the title text | | + ## Usage ```yaml From a0ac5b03bc9994728246c310b3d7119dc1b7c426 Mon Sep 17 00:00:00 2001 From: Rick Stokkingreef Date: Wed, 26 Jan 2022 18:56:51 +0000 Subject: [PATCH 017/248] Updated UI --- .devcontainer/configuration.yaml | 92 ++++++++----------- .../simple-weather-card-bundle.js | 2 +- .../lovelace/ui-lovelace.yaml | 9 +- requirements_dev.txt | 10 +- 4 files changed, 51 insertions(+), 62 deletions(-) diff --git a/.devcontainer/configuration.yaml b/.devcontainer/configuration.yaml index 17889d50f..26c1936b0 100644 --- a/.devcontainer/configuration.yaml +++ b/.devcontainer/configuration.yaml @@ -1,56 +1,42 @@ --- default_config: -# frontend: -# themes: !include_dir_merge_named "themes" - -# # For some reason default_config is not picking it up. -# automation ui: !include "automations.yaml" - -# # lovelace: -# # mode: "storage" - -# sensor: -# - platform: "time_date" - -# logger: -# default: "info" -# logs: -# custom_components.ui_lovelace_minimalist: "debug" -# # If you need to debug uncommment the line below (doc: https://www.home-assistant.io/integrations/debugpy/) -# # debugpy: - -# # -# # Uncomment part below after installing dependencies -# # -# ## Requirement for popups, install browser mod with hacs -# browser_mod: - -# weather: -# - platform: "template" -# name: "DummyTown" -# condition_template: "cloudy" -# temperature_template: "20" -# humidity_template: "50" - -# ## Install virtual integration with hacs -# virtual: - -# light: -# - platform: "virtual" -# name: "Livingroom" -# support_color: true -# support_color_temp: true -# support_white_value: true - -# sensor: -# - platform: "virtual" -# name: "Livingroom Temperature" -# class: "temperature" -# initial_value: 20 -# initial_availability: true -# - platform: "virtual" -# name: "Livingroom Humidity" -# class: "humidity" -# initial_value: 50 -# initial_availability: true +frontend: + themes: !include_dir_merge_named "themes" + +automation ui: !include "automations.yaml" + +logger: + default: "info" + logs: + custom_components.ui_lovelace_minimalist: "debug" + +browser_mod: +virtual: + +weather: + - platform: "template" + name: "DummyTown" + condition_template: "cloudy" + temperature_template: "{{ '20' | float }}" + humidity_template: "{{ '50' | float }}" + +light: + - platform: "virtual" + name: "Livingroom" + support_color: true + support_color_temp: true + support_white_value: true + +sensor: + - platform: "time_date" + - platform: "virtual" + name: "Livingroom Temperature" + class: "temperature" + initial_value: 20 + initial_availability: true + - platform: "virtual" + name: "Livingroom Humidity" + class: "humidity" + initial_value: 50 + initial_availability: true diff --git a/custom_components/ui_lovelace_minimalist/cards/simple-weather-card/simple-weather-card-bundle.js b/custom_components/ui_lovelace_minimalist/cards/simple-weather-card/simple-weather-card-bundle.js index 56fe00fd8..3b6f014af 100644 --- a/custom_components/ui_lovelace_minimalist/cards/simple-weather-card/simple-weather-card-bundle.js +++ b/custom_components/ui_lovelace_minimalist/cards/simple-weather-card/simple-weather-card-bundle.js @@ -1 +1 @@ -!function (A) { var e = {}; function t(n) { if (e[n]) return e[n].exports; var i = e[n] = { i: n, l: !1, exports: {} }; return A[n].call(i.exports, i, i.exports, t), i.l = !0, i.exports } t.m = A, t.c = e, t.d = function (A, e, n) { t.o(A, e) || Object.defineProperty(A, e, { enumerable: !0, get: n }) }, t.r = function (A) { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(A, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(A, "__esModule", { value: !0 }) }, t.t = function (A, e) { if (1 & e && (A = t(A)), 8 & e) return A; if (4 & e && "object" == typeof A && A && A.__esModule) return A; var n = Object.create(null); if (t.r(n), Object.defineProperty(n, "default", { enumerable: !0, value: A }), 2 & e && "string" != typeof A) for (var i in A) t.d(n, i, function (e) { return A[e] }.bind(null, i)); return n }, t.n = function (A) { var e = A && A.__esModule ? function () { return A.default } : function () { return A }; return t.d(e, "a", e), e }, t.o = function (A, e) { return Object.prototype.hasOwnProperty.call(A, e) }, t.p = "", t(t.s = 0) }([function (A, e, t) { "use strict"; var n, i, M, s, a, r, g = u(t(1)), o = u(t(18)), c = t(19); function u(A) { return A && A.__esModule ? A : { default: A } } function w(A, e) { return e || (e = A.slice(0)), Object.freeze(Object.defineProperties(A, { raw: { value: Object.freeze(e) } })) } const D = window.LitElement || Object.getPrototypeOf(customElements.get("ha-panel-lovelace") || customElements.get("hc-lovelace")), { html: f, css: E } = D.prototype, h = "°C", d = { precipitation: { icon: "rainy", unit: "length" }, precipitation_probability: { icon: "rainy", unit: "%" }, humidity: { icon: "humidity", unit: "%" }, wind_speed: { icon: "windy", unit: "speed" }, wind_bearing: { icon: "windy", unit: "" }, pressure: { icon: "pressure", unit: "hPa" } }; customElements.define("simple-weather-card", class extends D { constructor() { super(), this.custom = {} } static get properties() { return { _hass: { type: Object }, config: { type: Object }, entity: { type: Object }, weather: { type: Object }, custom: { type: Object } } } static get styles() { return (0, o.default)(E) } set hass(A) { const { custom: e, entity: t } = this.config; this._hass = A; const n = A.states[t]; n && this.entity !== n && (this.entity = n, this.weather = new g.default(A, n)); const i = {}; e.forEach(e => { const [t, n] = Object.entries(e)[0]; if (A.states[n]) { const e = A.states[n], { state: M } = this.custom[t] || {}; M !== e.state && (i[t] = { state: e.state, unit: e.attributes.unit_of_measurement }) } }), Object.entries(i).length > 0 && (this.custom = { ...this.custom, ...i }) } get hass() { return this._hass } get name() { return this.config.name || this.weather.name } setConfig(A) { if (!A.entity) throw new Error("Specify an entity."); this.config = { bg: !!A.backdrop, primary_info: ["extrema"], secondary_info: ["precipitation"], custom: [], tap_action: { action: "more-info" }, ...A, backdrop: { day: "#45aaf2", night: "#a55eea", text: "var(--text-dark-color)", fade: !1, ...A.backdrop } }, "string" == typeof A.primary_info && (this.config.primary_info = [A.primary_info]), "string" == typeof A.secondary_info && (this.config.secondary_info = [A.secondary_info]), this.config.primary_info || (this.config.primary_info = []), this.config.secondary_info || (this.config.secondary_info = []) } shouldUpdate(A) { return ["entity", "custom"].some(e => A.has(e)) } render() { return f(n || (n = w(["\n \n \n ', "\n ", '\n \n \n ', '\n \n \n
\n ', "\n ", "\n
\n \n "])), this.config.bg, this.config.backdrop.fade, this.weather.isNight, this.config.backdrop.day, this.config.backdrop.night, this.config.backdrop.text, A => this.handleTap(A), this.renderIcon(), this.renderAttr("temp"), this.name, this.renderAttr("state", !1), this.renderInfoRow(this.config.primary_info), this.renderInfoRow(this.config.secondary_info)) } renderIcon() { const A = this.custom["icon-state"] ? this.weather.getIcon(this.custom["icon-state"].state) : this.weather.icon; return this.weather.hasState && A ? f(i || (i = w(['\n
\n
\n '])), A) : "" } renderExtrema() { const A = this.custom.high || this.weather.high, e = this.custom.low || this.weather.low; return A || e ? f(M || (M = w(['\n \n ', "\n ", "\n ", "\n \n "])), this.renderAttr("low"), A && e ? " / " : "", this.renderAttr("high")) : "" } renderInfoRow(A) { return f(s || (s = w(['\n
\n ', "\n
\n "])), A.map(A => this.renderInfo(A))) } renderInfo(A) { return "extrema" === A ? this.renderExtrema() : f(a || (a = w(['\n \n
\n
\n ', "\n
\n "])), this.weather.getIcon(d[A].icon), this.renderAttr(A)) } renderAttr(A, e = !0) { const t = this.custom[A] ? this.custom[A].state : this.weather[A]; if (!t && 0 !== t) return; const { unit: n } = this.custom[A] && this.custom[A].unit ? this.custom[A] : d[A] || {}; return f(r || (r = w(["\n ", "\n ", "\n "])), t, e ? this.getUnit(n) : "") } handleTap() { (0, c.handleClick)(this, this._hass, this.config, this.config.tap_action) } getUnit(A = "temperature") { const e = "speed" === A ? "length" : A, t = this._hass.config.unit_system[e]; return "temperature" === A ? t || h : "length" === A ? "km" === t ? "mm" : "in" : "speed" === A ? t ? "".concat(t, "/h") : "km/h" : A } }) }, function (A, e, t) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }), e.default = void 0; var n = l(t(2)), i = l(t(3)), M = l(t(4)), s = l(t(5)), a = l(t(6)), r = l(t(7)), g = l(t(8)), o = l(t(9)), c = l(t(10)), u = l(t(11)), w = l(t(12)), D = l(t(13)), f = l(t(14)), E = l(t(15)), h = l(t(16)), d = l(t(17)); function l(A) { return A && A.__esModule ? A : { default: A } } const y = { "clear-day": f.default, "clear-night": n.default, cloudy: i.default, overcast: i.default, fog: M.default, hail: D.default, lightning: s.default, "lightning-rainy": a.default, "partly-cloudy-day": g.default, "partly-cloudy-night": o.default, partlycloudy: g.default, pouring: c.default, rain: u.default, rainy: u.default, sleet: D.default, snow: w.default, snowy: w.default, "snowy-rainy": D.default, sunny: f.default, wind: E.default, windy: E.default, "windy-variant": E.default, humidity: h.default, pressure: d.default }, T = { ...y, sunny: n.default, partlycloudy: o.default, "lightning-rainy": r.default }, N = ["N", "NNE", "NE", "ENE", "E", "ESE", "SE", "SSE", "S", "SSW", "SW", "WSW", "W", "WNW", "NW", "NNW"]; e.default = class { constructor(A, e) { this.hass = A, this.entity = e, this.attr = e.attributes, this.forecast = e.attributes.forecast || [[]] } get state() { return this.toLocale("component.weather.state._." + this.entity.state, this.entity.state) } get hasState() { return this.entity.state && "unknown" !== this.entity.state } get temp() { return this.attr.temperature } get name() { return this.attr.friendly_name } get high() { return this.forecast[0].temperature } get low() { return this.forecast[0].templow } get wind_speed() { return this.attr.wind_speed || 0 } get pressure() { return this.attr.pressure || 0 } get wind_bearing() { return this.attr.wind_bearing ? this.degToDirection(this.attr.wind_bearing) : this.toLocale("state.default.unknown") } get precipitation() { return Math.round(100 * (this.forecast[0].precipitation || 0)) / 100 } get precipitation_probability() { return this.forecast[0].precipitation_probability || 0 } get humidity() { return this.attr.humidity || 0 } get isNight() { return !!this.hass.states["sun.sun"] && "below_horizon" === this.hass.states["sun.sun"].state } get icon() { const A = this.entity.state.toLowerCase(); return this.isNight ? T[A] : y[A] } getIcon(A) { return y[A] } toLocale(A, e = "unknown") { const t = this.hass.selectedLanguage || this.hass.language, n = this.hass.resources[t]; return n && n[A] ? n[A] : e } degToDirection(A) { const e = Math.floor(A / 22.5 + .5); return N[e % 16] } } }, function (A, e) { A.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgBAMAAAAQtmoLAAAAHlBMVEUAAADL2/vK2/rH2fnI2vrG2PrJ2/vL3fzG2vzI3PwdWi7LAAAAB3RSTlMAFzNfjrze/OgtNAAAAdhJREFUeAHt17WC3EAMBuBZ3nIZOqcJVGGqwlSFqQpTFY6yVTiZrUJ3Z+tpj3ynBY3Hv6vDr5aGJMOYbetX49CtmsE1bxO9M7DcEVr02aDyt2nJvozxH+H1xPH01oAuUOyvwXRoxRUDKdCqAF9Qlj2XKAaX7TbF0EMqk3gNTiD+GECRBHaqR0lAnZSjMQG4ZVEDiybQFQm8ynjCrqwJzzIm5GkCvAU8oasSoL4QNXDPIgDLhjdfgSadBA9J3DcpKjTpFXiq4g3YSeIdWAbxAXx68ELcpkmDk9kSBvwnW2cw/zd+v6Ym4DkoQeIX7cOWJPGc0hx3SXBsJiWBQwmPhTXjc4kV/wv8uIoP/Wvaw0ro7Y4+a95ve5W1Od+2S6z4S1FgzdseOdYifuDJeMEOUQ0shHgLnCta7hI7RYnVy7PbbC25X12G0UwN6SYRWTsbZNmEXTS33126oXuCRb8eBUglJH5R+PiA3krZuSDBdD91TXaSmuOYP/6b/oXTGxh3MuXVYaf8SCmFnXbF2x6R9U2gd2G1hD6/qMNj341bYWjdEl/+HevkeRscs5qu2ZjcHav8qBmPvMr4Ic2NZeh4fbW0Yx7VkMvrRRl+P3w9vvn0yY0zO8y6tW0BcWLk3nu06KcAAAAASUVORK5CYII=" }, function (A, e) { A.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgBAMAAAAQtmoLAAAAHlBMVEUAAADr6+vn5+fo6Ojo6Ojm5ubq6urp6enk5OTf399QNH53AAAACXRSTlMAIneu2P///z8+tLZ6AAACF0lEQVR4Ae2Wt5bUQBBFtfhwIgjxEOJdhHcRtigU4lohtvV2MiW4D1ijr11XpR76lKp3Y45uMq7uvPbq6j9mYmJi6fTD0Ly+PNtr/Zmg3Nvb3z8KiQ9eiFMf8HF343r4B+DDbvW/Qi5guVy/P2Q0QHuiKDwyAn6U6g8EK+BOOcAKH8sBVsDF4pBmYJv2vVd/JIwKCJ0jHHIEPPda5AnfnVUUPAEzZ4w8wZmKo8GOqvLVmTVPcDoRfKEdq99nBSRqakN4fbkzfXaFFd5JulmctgaJuQjAk/IgJeqeINxNwrlCixD7FShdYWFYIUZ8c6ehyYSe9R2GTf7GDRBhRRPSOdKWBPR9zVBFl6LfIkkgkvK0FP0ASVghloSobWrdAEmoiTThx2inAdMkYklANzKsMMIKEcWdBFy0E9cYYbueWBK+2KWBHMz7mraRhGWz+GAFIomIW8jqOOzUi7CyIsZOgggHvPbLBiKB4xbfsy2KMWoawGIiUGAlCbyFCjfgEhcCLU6dYwVhpy5F6B46AJc5cYIAFZYYHjLHKUGXq9+JSMh4rsJBV9CdoKSH3hF2hCHAnDTnSwHggdeL49URpB5Cdv14jDEYecKdqhwRkSfEWVWO0B6khLfZU4W9gJQQ8/vQX6c+xiHhZZVzDQ6sZlflLD3ECHFIoLv2QnCL/YT4ZPSiu2KrmcGM+qZ3lX7aj3D/VFdNTExYNgHAL10vmVlOfQAAAABJRU5ErkJggg==" }, function (A, e) { A.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAOVBMVEUAAADHx8fKysrJycnIyMjHx8fGxsbDw8PBwcG/v7/CwsLCwsK+vr67u7u4uLi3t7e4uLi5ubm4uLhyXqCUAAAAE3RSTlMAFkaMtND6////CGT//7BAhezMkbzxVAAAAi9JREFUeAHtloeS2zAMRF0JrA60yv9/bBQagS2YpOj05PiS6zvYURk8Hv5vOp1Op9M5ns6XawjXy/l0bM80c7oGIr5D4XrKZ4ihgCzTwPARKMFsHR/DS4axxWdKHM+BFNZ/qeN83GTwFdZ/imWKDMfTJZDBilZcTsfhniFmgPEKp0yREHS6vwK7jLCivQDbv2eYqFjgxkNiFHAevQKJKyJ4RpoKcNMbMt5yHWm83MZ0Q9ZMfLNANo90EvYAiNMmE9sLeH59KWdfkMtISwFjGQ8ZxkXACqSUiVItmJfbNJYXwzjdlrmeGVLmoHS6D1gh+gU+MNn8Gh+kmelf2QdeB+0+SOPcFbD3AfCdPiAd76/A1JkiNl4voN0HOl0/Ia6g6AIGqw+i4IGI1ApsfMUHOt77oKGADZkqPgBQ9kFLQdYHcDeo5APZLZA9HwA1H1QLWnZ9uw863QfExq/wATt+gQ88OR94uN0HRskHWUT2fcBFsEKkPsgiiZoPeIOe/fFYcYaJRmJCtEBpKpDb+M0Hog5g+6fEjQ/knYLMrvdXAJ9pL0DWB+4Ykcs0FVR2PYz4q30wdB98Gh8M4w/5AErFB7aEwO/6AHf0a9YHbsk1+cCf/e0L4HxAMMRo9AFW/BWkTw8fMPx8BTs+sLO/vwLWDiKvA/GAyz6whfa07AUVzAdbagWMxObsn+9wPmgqKO96ZCj4IO4VFM/+G+S7fLC366FIOROrBaVd333Q6XQ6nc4Xua9QVFRZEEsAAAAASUVORK5CYII=" }, function (A, e) { A.exports = "data:image/png;base64,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" }, function (A, e) { A.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAyVBMVEUAAADut0371Uv92kX920b+2kL92T/CyKz92j792Tvvs0jk1s3s4+Hl4d/r6ujp6Ojr6urn5eTk29ji19Po4tjq6urk2tb81jvp6en60z3r49P32Gnr6OHz1pbo6Ojr28Dj4uLm5ubn5+d/xLn8tl7d3d3/sk/k5OTa2tr3v3jh4eH/sErW1dTh4OD/r0f/rUXiwZr9sE/+slD0o0P9qkX1pEIP3/kL4f0q6P8H5f8A5f8n6P/6p0Mc6P8P5/8E4f0F5v8C2/sn6P8h4jSJAAAAQ3RSTlMAH1+bzey9Bf//SR1mpNHj8b5fNZP/T////////////////xH////////////l////0ayG+q0o7k/4/07PPNek3pNP7VonwQAAA8hJREFUeAHs0gWiwjAMgGFWDzBfmD/uf0rcgqV9bv8B8i3NJv/92CIhldZGiugjpluh3SFwWtj3nj/V7hwA6On7fr50jgLg5CuXmM3jJM2yJI+L2XGEVY4Cu1S4YMsqw8vi0pL5BAgXFhnelBV2Iuv7AMig8WWK92rSqm3b2tV3AAi4tM3xfk2DXX8WKKCt92lTfARsGs4CBUD4Pk+Gj4Ft41a4A2jP+YgMgESAc5HX+2Qs0Lz0FwKEvZFNkQe2d6hrAnj/qTn6AM1y+7feAMbnACxwPjQQwO/KqS8wbICNABAGLNj5ZIUaNtXnDH9hDiArbAmS5C/AAmQFWl0LDqhCACQN3XLsIw7ImPlMmK0pLa+FxUEgjLp7Y++9TRjSg255/5f7vwS7IOO55xyqZtD+/Ig/qkMBQDRZfQrMvHYCG4EfTNvfHgEGRopZkyxAo9gbmHr8hyRFgUkUQKH91TPekD5maZrmrIlEARqKL5H1R1lWFEUa3CW6sfoqkJcIgEoemLTFW7QhPmY2kCpxgAbSQ8YG7RIbSNMqJ6GfxsJrilFcwm/qQFUplgaoL3to8Ee135zqgFI5SwMz0U8FNkgl0DeBqg6gIPJ7bmp74jhhYwNpE8AaZIGp4BDsEzAPARS8ayAQPuX52xMwT4G8hqWBwF8mxuijeQl4C0SCLQKrx0F4Ao4A0OHAwhNonx/GcGkeAwoBX4FemXn/9u/z15HxBVAIBPotH8PrCDyB5wAKwFkg8pyxf5NI89G8BPxrkO8Q6E+sP8qeAk0BCYst+BfQ/vj1xXUAT+CB7E6pVPVcoDdWge+7Cv6jeeVPgznd3rT2BYatAP0z7zK3/+8/bFadQIDJ7Z+2WyHaw9KlB0kBbICZyeHfhP3gl1MPotN1BVxDb34ehv3gv0sPylMTUKoJAE1P6POqJeG3yw6yUx24LsBCd/LzrC3yxw65PWEEmgYqL5yni1n/p726QK4YBmIAqgwFrvEHC/kc5vvfqejOZjregrXlvgsoYFl4o0Pud4SN7DL3OsUwEZ9yr20GG8eTyFfOUMQxgq2e/7SBX1GWBR2w3aofqKqbpm6pgO29Dn5986APDtg6kVKZunlQbxBk+0SrwNA4AxdwivUP5PRUQAa/UQJGJkCtwCQBExGgVgC1BNQIoXwg40/UQVVIQBEeEEE3N86MIFIBRewS5hhBpAKqYizLsUAg5Q/bUSpgR6mAnW2m7JeVTtkvMxGeWWS/OMR+Mdj9EsR+Mbj9EsTlTKL3SzD79fWfiNgvGrFfgtgvBrFfX+/fLZ2VqOfdJyPAAAAAAElFTkSuQmCC" }, function (A, e) { A.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAllBMVEUAAAC8y87X3OnY3+zU2OXN3/3J3Py5usLW3+7O3ffF2Pnd3eLl5efp6ern5+fl5ebq6urH2vvp6enj5ObC1Pfo6OjU3vLt0rDk5OT7uWfb29vh4eHxw4n/sk/p3c7W1tb/sEr/r0f/rET6qkfqokj3p0b0o0T9rEYR4PoL4f0i6P8H5f8A5f8K5v8J5v8A4v0C2/sC2fne7Ib2AAAAMnRSTlMAF0uOL77/B6Po/2HG6v/f////tf///////////////////9BMrIbrKu5E+f/bnqaTqTOwt04AAAN7SURBVHgB5JiHdqswDEBZwWQgUxM1zNL5/7/4HB+F+hAbqxlnvftG9721lB3918RJmj1Rn23yPI+fphdFfkY8bTrb3PA0/y5/akDQ73/3iLJ9cSgB5CHdx5FFQfq7liyytKwsoMjm7sscSG72J2S3KUm3yedCcateVi6UTMyGX6hw6xJEXblRqipElOysQnqDP5aVL6CRcXqkwo1rzqBaCyjcHu3C5s/+yo8yVK924eWPe45hLUDsTEEH/l4QsmIEcGcCdIR8E/MDdcUJKDhSgUgFewG8gHqlwoW8SGJORHIDaAUIztUu4fjtI1iNnSa0blHyA+qo2Rn0G3ovY2yAG0B9hCVpFCBl+YnlF+F1G9wye0JuqnK/nshW1eGAQiyTtcDea0eNYvg1tfjrCpTCUwMAyAug9BcOHn/Tdj2ngKGCdAYQhrHr+kYXkBXA2hcAt/9t1AHGGXDGt+nGGWhaHTAFdqAU7BEphNNIgZ4dwD1vyTQgzWQCDTL9WDIvpspseBzfKQDcAMa8KxoN6P0SaIAbcM8ou/Y3rdabQK8DVAj7sXAGROO4CrxbASowAofwEmjD77+BxgAcv2/L2dVV4N0OUIEVCN8hqPOG3x0BZwEX1J5AoixoQFaAgHAg9QSEtH4GhndHwFnAJfvIQ6YuAA3IMSIqrAXiyEdx+QmgDS8upgSs+yXZ/ENCoAHZAeeU+BMi4t74zYaXAYIKfn8ZeIKj1DwgYvxluCTA68ckWi/02n96X/JheH/rrYI7UISfBNKAln7N0M37BnT7D5yXaga3/rOdOo0JAAA6/SIKkzn1mtM0UQDO4JUfiojDl1v/OUznQE+BMwu9TFj+76WdGCfrANeFRu4jFsJhpwMQnYU+j/5f1vSKD4efpZn4115dHEYQA0EULZ0Ux7AY8g/ObLep56Aye18A/RendnyMVbl/WHwIe0zvW/Ex9llMz2xQWIthk5i1M857xwf0DyjElGLgA4t2P90JbGA2eJeJ6U40XGDe8b6cHmQiMM/zYfUP6EEYDMx3VryvSKBgxHxvgyJLIDMBC0WUQCQCKzRVAnU8sEDlJODGAwa6lh40DAd2nGnUfah/AeG6991hPLDiM8lf4NMC9pMD6+l+8Zbz/eIZZb94xH4x2P0SxH4x2P0SxH5RyP0SxH5xqP0SxH7RiP0SxH7RZL9+l4tr2oowXbK2IEgAAAAASUVORK5CYII=" }, function (A, e) { A.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAsVBMVEUAAAD0z2L93U/93lL93Ev81D/93Ef+3Uz72k75zEP93Ej93Ej920X920P920L92kH70z/92j/92kP92j381EP92Tv92D7+2Tv92Tn70jf810L44Yv15afx6c3x7uTv7+/43G371Dzu7u792Dfp49zcxLbt7Ovm29Xs6+vp4t/x8fH70jXq5OL5zzT4yjP4yzPq05fyvzP4zTP2xjPvyWD0wjHo3L/2xjD4yjLm5eTkxIAPtip5AAAAO3RSTlMAF1V5o7zT5foJl///////R/9w/yT//+L/8v/////////////bL8tJ6Ib//6P/nP///9P//1f/deP/x8TGymgAAAPmSURBVHgB7JSFduswEESfGSSHE7Nkx4///wPrVVm0ktvDuaWDczOzOv3x4MEDZ4IwipM0y1eyNImjMPjG8CIsU0JoVe12u/0LFUnLsPiW+EOckwr4KDgCVR4fvvzho4zQFdlwfKHKTsXX480CIIs2K0KIf0G7EXA+H7NwU/wlIYQ6CFb2yWXDx88JEQZko7Mg9y1RlIT4CK7H0usSQUokAUUE11saeMyfEj8BGK7pxTk/I1sE1/rinr9JAAb3/X1vIHC5Q/Ga7/eKXg0FKijJZgFQYvkhIfaFEME1RA6cY4K9XdC09kMnUj66kCJoki0D+QhsIxWZnI+fQBE0dWEURJTK8WoBVNCczAWohPdCIDBXOJmy993685qPC4wV3guQfhgZ45yN49Dn3cpegC8kqPX5B/pM3o+Mf2QUjv07R0TQHLSCmAJkYFyBDa8KfCEg1p44h/yecS2sh6GwAq+CVnfmENYZuZFxAkOHLwSEGkFJu4lxC2yaRYsjshBQagRp1d+5nX4GBbYQkKr5Ae05gBpuN3yhZgnURzrdOc40zzcwIAWaRX2oEeMOsGcDJliWkyL4yZ0Y5xkUWIFFufIv7kgPAjCcrYJEFvx2FbBcGJACi/yM/nBnBhA8A/kGQS0J/roLWPdqMBUAQYtcALsCKK4A/FUKAJ8F/7gP/wHGxmGCMk2jFAA2LyT/GxcKuYA8UcA3cx9moZAL1E/tmYVuI0EMQKfcFa5OWG4nrInHy3D//2Fn3ST1MjnivID4PXkZGtuQgI9nQ4lV1c+bKa8CAZ9UMFxwgQdV5SgK6M9nMIakzu+wjd1YgNb6A6lQD/wRb0TsJwI0tJAoQX6HLw6wn/h8QbeQVmdu5IuI/cR76ApnIlXjKPXrzzAGDrROBwehn0iosOJE2jxYS/20jGJkf/PC60bs11kcIxesarCX+vUHBbjgqwYHqV9/xlQAMHykq7GR+V0AEU6FXLVYC/y8iMAVum6hdiI9kZ0nMMYNIBlBdxBwoPBUBxst0BMJBYAwBlLVyUGi1yX5T4EH1cN2oZ6XEIIB0/8w5Ga/QM/HOgp0LyBmU87X8wCngFUDbPaz7Ez2O0DkqSFu1vPtxEfoBiD/jRrGO+rJcvYnZ38x4bHmZq0nm3n5uAU06Gd2az2DMvj1R9P8xOawn2h3evJTgJf/pMbfICuHybIgYT1aT80jDYchN4ExEgAv6ZJXLORogW0AcNYrFiYtTk73h51yokjVQry8qGoBoYWBIuelvyiBVRthKgj0jG9j/C83TeDF+uoSeKmNECnAFQCMbOqpy3Hj5/YhKl4QX4roweb+jZrKlStX/gHY0DfPBrPHXQAAAABJRU5ErkJggg==" }, function (A, e) { A.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAS1BMVEUAAADO1fHO1ejZ4fLR2ezd5vbB0vXDzufS4vzP4PzN3vvV3fDk5+/Ayerc5vfu7u7v7+/t7e7k5eavwOrT2OO4y/DAzOi2ye+/0vYf7YBFAAAAGHRSTlMAByNNhqbMO////2bRFP///+v/////9qxLSnpnAAACKklEQVR4Ae3U2YKzKgzA8QRBXECgdTnv/6RH+2V2LWLgzl/n+h8NOHDe7XZDUUlVY6G4Vk276voi9cps9U2HkJ1QW51UpfKkg8ws5Uu9QP+ZL3IC1rS/KMhJN+1vAjKS1C91xKr5O0BCNqianQE65/PvDcC8/abcEcjmpdglrf72s37Gdk1TvcxXYNoDFrLo2yOYa0FHIAvVlh0g/mS7f3INqFuyMyPnC3R7cp0A5YfB+Y1zw9C9ILAhxVuKf3JDngFV220TBr9j6CywmW43T3rgst3K+UMKgUd3XePfCQJY1PF6iNPAEe2vOBOw8XGOsSXt/AkB4SrjT1FwkfYnVSVfgLGkyvuyrxD8aQEuED6BhnTSJwtG9YK/oYjQ8zcUEap8d4jxb1x6DhOfoDyDc/EJhjfAKYgIrP6qKjfAvQQstSJH+kKH7D6EMtfUfbElPjRH4juyzH78pgZu35nsh+DIuVMWvH58ABhWP74i0Ix85JCJ4fVdDxHaMfIrATGSk/ePZy0rYRHhEJpLeTI+N9NqPpxhw6U8vcDnAAuHxCM9T+aP/KThDREu1GlBNEHCW9ak1cnjcz8LRKB0iXHqr2J9oo07Wybjn+ePj0jwmFOen2gZ0vLTpocUQo7j471xpPr6o/uZBJdnFMVXtYV0ejqtgktwmU5ZEK6yy/Tfron+1t8igGQdQabFAhfq+ihfa4QsUMvp77NTPRe0ul+Wep7rRfbaJsRvt9v/h4jJKdZPEXkAAAAASUVORK5CYII=" }, function (A, e) { A.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAATlBMVEUAAADj4+Pp6enn5+fp6enp6enp6enq6urm5ubm5ubg4ODg4ODm5ubo6Ojc3Nww6v8Y6P8T5/8m6P8H5v8A5f8L5v8N4PoF4f0C4P0D2/uDNJb/AAAAGnRSTlMAE2SS0e7//7smT/////0a6ehI///bMaX0k6g43vIAAAKLSURBVHgB7JjpmuQgCEVjiBdTgu//trMPX5uuoLSzT5/6f09xyb6984eTdjoymBm57OmHpxO4A+VHOs6DXwHOjx/17ws/A+D8Q6Ygfg4+wWU9/2BHAOTVejL7AvC5tF2+Bz/AkNgBxtsNeU7AaXG/jmBp08SzAqYfvgDLXyipjAVLJZ0cEeCMbzgmyD94A4wrtYooM+dC+8w4FBXIF4PiM6w0dOSogJsJPsOUflBDRm0iYgJV7J7gERdIq51AlX7AWdwLai/QsngZ6tH2ydALnBlyXIBPAjPoN273oMF8E0gvQLoRhPNNIJ1AKS7AQCCdQM9oRRgKxPKdEXI8X7/ni7wUSOwwxT3SqhlURx1ROB9i8b1hn79UwKW+FMhoCQnBeMDyL4YytWUM0YvADPm5gBAItxtOhy9ICFJNYLgVbQeM6ACGe7FIigBcvwf2Bu+CWhDA4lRE7SfSn2g9STCN2u1Yr+TtFtLQADcC2u45fkC+pM0hBwpSyx8NEF+Dky9pczklkv9aII9tQGqT/YQLMg55e37ZZqDq1uP0Q9MfQ8T5/zrfv6M4quKCheJpvlAKfpDK1VvGJb1ZfMTxoNJaHdEmX6He+dheXR04DAQxGO7ANFrqv9DD1eyBSWH6Hv9wDLpB/TD0m2UcWWSTfZi2CsCimuzLtF4AgEXTW9WvFXxhkQSrwp8CtIKKRRDNxZ8Fn1hALIJkLrWCbywgFkEwF1hALCAWQTaXa4GbL0f/RXDz5eiDDDdfRMW+oXhBNV9kBcbXesFmUcSUc4pqebkfXCuxCLhWWhHMrNWEL/NF1tZKKYK2VkIRRLi4vwgSXNpfBAEu7C+CDJf3lNv7i85+kH2tzrloeC3ayx7vgDWcARqOBsEAAAAASUVORK5CYII=" }, function (A, e) { A.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAARVBMVEUAAACy6fHl5eXq6uro6Ojm5ubp6enq6urm5ubi4uLj4+Pf39/o6Ojh4eES3/kP5/8k6f8M5/8G5v8A5f8G4f0C4P0E2/uRTESCAAAAF3RSTlMAEFuV5P///8EbLv//jCngQ/z//6X0kyzJZw0AAAJ0SURBVHgB7NYHlqQ6DIVhOejKLsv7X27ndj0KrELAm/zNSZPuTz5Nv7h/QkyZISLIJQa6WE2QBZR65XyWFUi+0TVCkS2A5EoXSLINAKTQaVmMAMCBTqksdgByoxNuMocLClUMGCodxfsCEs7fXzMAPv982gEkOiDs34dU8iuOAPL5J8gO4EZe2RfIl5/Ao9aYVURySX3P6SRvgD8KineiqdIT7A3ICHyQFMgSXPvjGvEIqCKSIfoD3NoioJpOvsXrQFsGtBx9y7BFVwHrHPhYYBT0S6QJde8D7R0vAwi07cA+f+wzLwKa/AHMfAV4EdDqvUSY4XYv6F068sPK/Cn6BL1j32MK7DgDZv2Pm+dFgx3gQe/i/k8FTK2tCsZNCHDOA2P+oVB2vcp4StukkGlTx2rcxo0f2IEKH2lfBeXBvERU4LKaf2d+LKrCQcfgqhDpilMYc8qs49fHH1WaCOw7AcU7fcQ01RV78TzQaa5csM+VDNlxgXS1bz5Drttg7HMg0409++sAR3oitP3XB+q5w0Ph4/uF9uhWgY197rRPKGwcv/qv/1otrJv777C5zz2QR+iNGXMP661Xcguxl9yeyqXH+tpeXWQxDMNAAG0OYBL4/jct+ikrOS+acvvXEzDO4SP95VIynvHVRtTqVoa51fj7t75Qic8o9IWl0VVbZhm+sswehYYyyfBQAhNEproZNvsnSciIm2EjgRkyZTJD8TlSMupm2Oj7TVEmk90MGzfj6zT0SYaHkYl8gfs0Y++PyKIqGc/8fV/HIay/YEB/AaD+WoH9BYD6ywNczsAM4XOE99d7ThHWXyu4vwDWX4Av7K+/E4vvci3LGOUMAAAAAElFTkSuQmCC" }, function (A, e) { A.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAPFBMVEUAAADZ2dnl5eXn5+fo6Ojm5ubp6enq6urg4ODm5ubQ0NDBwcHo6OjExMS9vb2/v7/AwMC8vLy9vb23t7ftsDFCAAAAFHRSTlMAEVuR2P////67J0z///+q+4HR+IsFiaoAAAJsSURBVHgB7ZWHYusgDEUlY4lhsv//Xx+NGtrEhliJ3vbpXvdUAwwbfzg4uJHYe88hDmie7tjfwdHSkUa/QJjABox+CWY/mlTh/DJc8BHeZvRtQYHeLAKz7wvYp7em69uwgQF9B668bqB1Ao+m850LmGz3cy5gZzyAKnhr0HFdvjDabmgVvLNJo04Q9BPQCTgEouy9D9G5NeU4ZT7T1ZBl5vm5I2sF/iYQvEODHZ31iKqgqAboMOgF0qMqKDiDU3wvCPeCHPVL2hHkmaBXA2nzRVAN+ZPhpSXiZcIHdC9gbAheyKdrPlEVdJukz5cKKIghV5K2Rcz9CgqS3y8hKPPrkK+K7wLSrSm3oWu8kIVOj5w6Xw4azQ3D+quCu9zyhWdDQFbFi4AWDXHVUeanZKlgZmg9rh3z2nCBJH5uaAiQldwalKnSbRGMrOIhXuheFolYQa6BM8MADSIrIApEWQT59iKGBA2QdAVk+ewRgiYuKwpoChy0GQ3yCaFDUDQoS76mgNVj6OQTQpdEmvy5gAZ4Aob1/VE3SBjp9fwIa3A9A/X642AdGKnz/2d9/+fgSJnnSCgv5pND0IAuEHGbh/Qg8TpwcjE8Z4xuSLCx8YewK8DPZF/YBL9DgGlJkBCsOBwP+CjA8k0wIpXU3elecDqWzxLYcN5/cJy+BFOJL5zBiJMYzkkE6Sz5J8MpH0Rx/XCQeBmLGUn6VCnVWDNdpIp94TKBPTKK2vy/TlBXs66s8LcMGQ+fmy/vZGXRsPkS/3XQRGE2Csm7fL8qLqZXRaqbI4K6UWZzOOyXruv94U984Pz5z+RNcCnAxsYv5gcBJmV5WFk6DwAAAABJRU5ErkJggg==" }, function (A, e) { A.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAYFBMVEUAAADT3t/h4eHq6urp6enn5+fp6enq6urm5ubG0NLLy8uds7bo6Ojj4+Pn5+fh4eHe3t4U5/8Y5P0B5f/ExMS+vr4K5v8D3vy+vr4A3/28vLy9vb29vb29vb3BwcG4uLjMVSTuAAAAH3RSTlMAD1uV0e7//7ohOgX///+M/+g6//3/252t9H3R8/+TcABA0AAAAzBJREFUeAHsmAe6rCAMhUWGBO8kwf1v9jbsSonM6+9fwPm/k1jpfnP+Y3r7cICI4HxvXp0+WMAd4IdXxj/wBKB7e9VsPF4BgO4lLSxeA5+gb45/PjAjAHDPxvEQ5gWATWN6wzQwGxp2bbAgiNzu8HR1AjQ3BQ+sE4Brvz7zArCtC0jnN1xKvihoG9KAGgG86TesE7gfXACAmYUQ0XkbaupYrUDGLwPFnZMtbl20AlwEEWtarlGEM+PIIouACPqcoNcLeGTeCD6xrXfxcQnjQUC++TG0hcZPw1aQ7eBuCmYDTST3QOp8gPHbsBeASQhu5Mt3PssiyA5JnR8b8GSglUF7nwFkG0QDUamCU+cDzfksW4HoLlOAXIMpn4WKM7LaeACO+ZGNoK9/VECVIDpKSzCgio8X0VyAZTslX7VlKELzBqJjNbhrQYDq8AgvG5gleYEBJXP+xpEdUfcAFbLJXzaRfVgMoi0QA2VL9oHqlQViHMnRMKQERlGBlrclHeEuSSBFAYkCOhFiWNueRZIFZMj+gCgGlChguxyG6wqk89kUfgK5LV/6roBxUIBivn7Dy4+4lOefyvddDYGz148k8yVUH4Zwej5CqXzuNcc5TJf5X8BlPgfTaTDBsUCaQ/oYhjtHasG7sYjz4aO9OtlyEASiMHwrO6xNBolYiL7/WzYcbKtP5tBmzpdxVb8zC4Ovh2HGTZnVyuB2eL2J1vinOsJBcf4cBRvhENqM6EaB7W9ge5vAejNZ3yTQaKDB9cgcChjaOULlx8jVjnYD5KzDpNVAi6tVcWot/DfAUsd/1UyHyNukqzRQdTbxM51klpDnmRwwuRiED5zlBiXI5USfv5LgCAo8FhpGGeNjQgVvsGPdtG2zRiE97no+ZsdiR8K4Be7tqL9JYFHrGagXmFvlp+mJ9QfOAhFKkcuz+xD1OeF2xxFzYYFlujRDlC7ZZOdcSxcJSuR56dLMgXTJhsRD9TZHUcCEEAZhaAAsQ/xnMJE4v7zgBkeABhJywWFCXRh1VL7gaGB3wSHWABOKaWAHQwPgGwTAGmDcIgAJI8FtApBZ5mOIoEputHKc3jfFjOf29QPQe5BuJum+4AAAAABJRU5ErkJggg==" }, function (A, e) { A.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgBAMAAAAQtmoLAAAAKlBMVEUAAAD81kP71UL71kD81kD81z/91z793Eb4yz/920L92kD92j792Tv92TcDye7yAAAACXRSTlMAH1Bzm8vn/wvXXbMnAAAC1klEQVR4Ae2XNdPbQBiEzeMujE2YmZmZmZm5CmhUhfMTojnXQbkNO12YmaP/El8u1r7S+uSvC31b76Pd907SzaWa9ccq3WPW6j3Hdq0c3rJJ9mLPNY6qyvfV0eknGvszc1z1UyXfL98+0rWR//QexwFQqZwf29gfASqXEomM9jtuDfArmkholV7jAFAa0LpoX6w+DgFa223+M0594OnchEIgADy/Xr9UO6cmFQOeL6sbsMcOPEQE1N4J5cWB59uSJkACgAf8Up11khKeryVgjgAUA/fppRB+l4Cq4i9Ih2SAxxYje64bvnwAHtgbidcbQLzTOVHIBBCwNwKMEY0sCe+kv7hHJGBmA9w1wEe5d1kR4AGoSCAYKoCCXFSvLvAi2Co/NQTUEkoEvJXvhRzBo5kN8F7MLAPQKAZ8w9SZqtHY9S7YgABbl3O1WUNhQIkWKQimhkBeua7ZYxeNGFiKV1V5nn44AtBIAG9CoJ9SntLtwwnQCCOIdR3n1aQQwADepnnVBBOBkdEoBLAR69QveRyAEYIPAjAR2o8ANCJgH54dBpRphOCjBKRK3CgGsJ8baUlA+hFgA/aRv0yNaAb2I4CA9T7WB4Wo0QcBQPCjEQHz4UUhaiRejfHsRwAAvHz9yY8ANBKvd2fuzwHyA8rf4cdzgPhEczBxAAD8BDJkRgAaid9MsWz3I+C7+H0vsBdCwPsUNCAxIFxVqMB+Coj87rPkR0BIyAOleID8FKCPLGhC3I+AGvIueuyyHwFG0WM384zXEwHYNmgD2xGArwdqD7f0I2BbDMjARksqG0EL2Q873gvobB3/dwBrCShuJL8cGbuGse0DyJGh9MGoPxDEx5bwQe2ifhmwDC6agualCaAz0i81N2VRb2M3daDt9ivNJmOP+j/QxFDmUCDaGH3smngtO0T+Rhe5Q8l+Vma29O/s2pTL66ZwXPvlla7Hhz7ietysP1A/ALZC9b117sbZAAAAAElFTkSuQmCC" }, function (A, e) { A.exports = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOSIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDE5IDIwIj4KICA8cGF0aCBmaWxsPSIjRDhEOEQ4IiBkPSJNMSw4IEMwLjQ0NzcxNTI1LDggMCw3LjU1MjI4NDcgMCw3IEMwLDYuNDQ3NzE1MyAwLjQ0NzcxNTI1LDYgMSw2IEw5LDYgQzkuOTA1MzAxNjcsNi4wMDAxOTMzIDEwLjY5Nzg0MTMsNS4zOTIyNDg2IDEwLjkzMjIzMTEsNC41MTc4MTU5IEMxMS4xNjY2MjA4LDMuNjQzMzgzMiAxMC43ODQ0MDM2LDIuNzIwNTQ3NSAxMC4wMDAzNzYsMi4yNjc5MTk4IEM5LjIxNjM0ODQsMS44MTUyOTIgOC4yMjYwNDgzMSwxLjk0NTc1ODQgNy41ODYsMi41ODYgQzcuMTkzNjIxMTEsMi45NjQ5NzIyIDYuNTY5OTE1MjIsMi45NTk1NTI0IDYuMTg0MTgxNDIsMi41NzM4MTg2IEM1Ljc5ODQ0NzYzLDIuMTg4MDg0OCA1Ljc5MzAyNzc5LDEuNTY0Mzc4OSA2LjE3MiwxLjE3MiBDNy40NTIwOTY2MywtMC4xMDg0ODMyIDkuNDMyNjk2OCwtMC4zNjk0MTU5IDExLjAwMDc1MiwwLjUzNTgzOTUgQzEyLjU2ODgwNzIsMS40NDEwOTUgMTMuMzMzMjQxNywzLjI4Njc2NjQgMTIuODY0NDYyMSw1LjAzNTYzMTggQzEyLjM5NTY4MjUsNi43ODQ0OTczIDEwLjgxMDYwMzMsOC4wMDAzODY2IDksOCBMMSw4IFogTTE2LDEwIEMxNi40NTI2NTA4LDEwLjAwMDA5NjcgMTYuODQ4OTIwNiw5LjY5NjEyNDMgMTYuOTY2MTE1NSw5LjI1ODkwOCBDMTcuMDgzMzEwNCw4LjgyMTY5MTYgMTYuODkyMjAxOCw4LjM2MDI3MzggMTYuNTAwMTg4LDguMTMzOTU5OSBDMTYuMTA4MTc0Miw3LjkwNzY0NiAxNS42MTMwMjQyLDcuOTcyODc5MiAxNS4yOTMsOC4yOTMgQzE0LjkwMDYyMTEsOC42NzE5NzIyIDE0LjI3NjkxNTIsOC42NjY1NTI0IDEzLjg5MTE4MTQsOC4yODA4MTg2IEMxMy41MDU0NDc2LDcuODk1MDg0OCAxMy41MDAwMjc4LDcuMjcxMzc4OSAxMy44NzksNi44NzkgQzE0LjgzOTA3MjUsNS45MTg2Mzc2IDE2LjMyNDUyMjYsNS43MjI5MzggMTcuNTAwNTY0LDYuNDAxODc5NyBDMTguNjc2NjA1NCw3LjA4MDgyMTMgMTkuMjQ5OTMxMyw4LjQ2NTA3NDggMTguODk4MzQ2Niw5Ljc3NjcyMzkgQzE4LjU0Njc2MTksMTEuMDg4MzcyOSAxNy4zNTc5NTI1LDEyLjAwMDI5IDE2LDEyIEwyLDEyIEMxLjQ0NzcxNTI1LDEyIDEsMTEuNTUyMjg0NyAxLDExIEMxLDEwLjQ0NzcxNTMgMS40NDc3MTUyNSwxMCAyLDEwIEwxNiwxMCBaIE0xNSwxNiBMMSwxNiBDMC40NDc3MTUyNSwxNiAwLDE1LjU1MjI4NDcgMCwxNSBDMCwxNC40NDc3MTUzIDAuNDQ3NzE1MjUsMTQgMSwxNCBMMTUsMTQgQzE2LjM1Nzk1MjUsMTMuOTk5NzEgMTcuNTQ2NzYxOSwxNC45MTE2MjcxIDE3Ljg5ODM0NjYsMTYuMjIzMjc2MSBDMTguMjQ5OTMxMywxNy41MzQ5MjUyIDE3LjY3NjYwNTQsMTguOTE5MTc4NyAxNi41MDA1NjQsMTkuNTk4MTIwMyBDMTUuMzI0NTIyNiwyMC4yNzcwNjIgMTMuODM5MDcyNSwyMC4wODEzNjI0IDEyLjg3OSwxOS4xMjEgQzEyLjYxOTA0MzQsMTguODY5OTI1NSAxMi41MTQ3ODc0LDE4LjQ5ODEyMjEgMTIuNjA2MzAyOCwxOC4xNDg0OTI3IEMxMi42OTc4MTgzLDE3Ljc5ODg2MzIgMTIuOTcwODYzMiwxNy41MjU4MTgzIDEzLjMyMDQ5MjcsMTcuNDM0MzAyOCBDMTMuNjcwMTIyMSwxNy4zNDI3ODc0IDE0LjA0MTkyNTUsMTcuNDQ3MDQzNCAxNC4yOTMsMTcuNzA3IEMxNC42MTMwMjQyLDE4LjAyNzEyMDggMTUuMTA4MTc0MiwxOC4wOTIzNTQgMTUuNTAwMTg4LDE3Ljg2NjA0MDEgQzE1Ljg5MjIwMTgsMTcuNjM5NzI2MiAxNi4wODMzMTA0LDE3LjE3ODMwODQgMTUuOTY2MTE1NSwxNi43NDEwOTIgQzE1Ljg0ODkyMDYsMTYuMzAzODc1NyAxNS40NTI2NTA4LDE1Ljk5OTkwMzMgMTUsMTYgWiIvPgo8L3N2Zz4K" }, function (A, e) { A.exports = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBmaWxsPSIjMDBFNUZGIiBkPSJNMTIsMSBDNy43Mzg3NSw3LjI5NzM3NSA1LDExLjIzNjYyNSA1LDE1LjA2NTYyNSBDNSwxOC44OTYzNzUgOC4xMzE2MjUsMjIgMTIsMjIgQzE1Ljg2ODM3NSwyMiAxOSwxOC44OTYzNzUgMTksMTUuMDY1NjI1IEMxOSwxMS4yMzY2MjUgMTYuMjYxMjUsNy4yOTczNzUgMTIsMSBaIi8+Cjwvc3ZnPgo=" }, function (A, e) { A.exports = "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBmaWxsPSIjRDhEOEQ4IiBkPSJNMTIsMkExMCwxMCAwIDAsMCAyLDEyQTEwLDEwIDAgMCwwIDEyLDIyQTEwLDEwIDAgMCwwIDIyLDEyQTEwLDEwIDAgMCwwIDEyLDJNMTIsNEE4LDggMCAwLDEgMjAsMTJDMjAsMTQuNCAxOSwxNi41IDE3LjMsMThDMTUuOSwxNi43IDE0LDE2IDEyLDE2QzEwLDE2IDguMiwxNi43IDYuNywxOEM1LDE2LjUgNCwxNC40IDQsMTJBOCw4IDAgMCwxIDEyLDRNMTQsNS44OUMxMy42Miw1LjkgMTMuMjYsNi4xNSAxMy4xLDYuNTRMMTEuODEsOS43N0wxMS43MSwxMEMxMSwxMC4xMyAxMC40MSwxMC42IDEwLjE0LDExLjI2QzkuNzMsMTIuMjkgMTAuMjMsMTMuNDUgMTEuMjYsMTMuODZDMTIuMjksMTQuMjcgMTMuNDUsMTMuNzcgMTMuODYsMTIuNzRDMTQuMTIsMTIuMDggMTQsMTEuMzIgMTMuNTcsMTAuNzZMMTMuNjcsMTAuNUwxNC45Niw3LjI5TDE0Ljk3LDcuMjZDMTUuMTcsNi43NSAxNC45Miw2LjE3IDE0LjQxLDUuOTZDMTQuMjgsNS45MSAxNC4xNSw1Ljg5IDE0LDUuODlNMTAsNkExLDEgMCAwLDAgOSw3QTEsMSAwIDAsMCAxMCw4QTEsMSAwIDAsMCAxMSw3QTEsMSAwIDAsMCAxMCw2TTcsOUExLDEgMCAwLDAgNiwxMEExLDEgMCAwLDAgNywxMUExLDEgMCAwLDAgOCwxMEExLDEgMCAwLDAgNyw5TTE3LDlBMSwxIDAgMCwwIDE2LDEwQTEsMSAwIDAsMCAxNywxMUExLDEgMCAwLDAgMTgsMTBBMSwxIDAgMCwwIDE3LDlaIj48L3BhdGg+Cjwvc3ZnPgo=" }, function (A, e, t) { "use strict"; var n; Object.defineProperty(e, "__esModule", { value: !0 }), e.default = void 0; var i = function (A) { return A(n || (e = ["\n ha-card {\n display: flex;\n flex-flow: row;\n align-items: center;\n padding: 16px;\n color: var(--primary-text-color, #000);\n font-weight: var(--swc-font-weight, 400);\n transition: background 1s;\n cursor: pointer;\n }\n ha-card[bg] {\n font-weight: var(--swc-font-weight, 500);\n background: var(--day-color);\n color: var(--text-color);\n }\n ha-card[bg][night] {\n background: var(--night-color);\n }\n ha-card[bg][fade] {\n background: linear-gradient(var(--day-color), transparent 250%);\n }\n ha-card[bg][fade][night] {\n background: linear-gradient(var(--night-color) 0%, transparent 300%);\n }\n .weather__icon {\n height: 40px;\n width: 40px;\n background-size: contain;\n background-repeat: no-repeat;\n flex: 0 0 40px;\n color: white;\n margin-right: 16px;\n }\n .weather__icon--small {\n display: inline-block;\n height: 1em;\n width: 1em;\n min-width: 1em;\n flex: initial;\n margin: 0 .2em;\n }\n .weather__info {\n display: flex;\n flex-flow: column;\n justify-content: space-between;\n min-height: 42px;\n min-width: 0;\n }\n .weather__info__row {\n display: flex;\n align-items: center;\n max-width: 100%;\n }\n .weather__info__item {\n padding-left: 8px;\n display: flex;\n align-items: center;\n }\n .weather__info--add {\n padding-left: 8px;\n margin-left: auto;\n align-items: flex-end;\n }\n .weather__info__state,\n .weather__info__title,\n .weather__info__row {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n "], t || (t = e.slice(0)), n = Object.freeze(Object.defineProperties(e, { raw: { value: Object.freeze(t) } })))); var e, t }; e.default = i }, function (A, e, t) { "use strict"; Object.defineProperty(e, "__esModule", { value: !0 }), e.handleClick = void 0; e.handleClick = (A, e, t, n) => { let i; switch (n.action) { case "more-info": i = new Event("hass-more-info", { composed: !0 }), i.detail = { entityId: n.entity || t.entity }, A.dispatchEvent(i); break; case "navigate": if (!n.navigation_path) return; history.pushState(null, "", n.navigation_path), i = new Event("location-changed", { composed: !0 }), i.detail = { replace: !1 }, window.dispatchEvent(i); break; case "call-service": if (!n.service) return; const [M, s] = n.service.split(".", 2), a = { ...n.service_data }; e.callService(M, s, a) } } }]); +!function(A){var e={};function t(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return A[n].call(i.exports,i,i.exports,t),i.l=!0,i.exports}t.m=A,t.c=e,t.d=function(A,e,n){t.o(A,e)||Object.defineProperty(A,e,{enumerable:!0,get:n})},t.r=function(A){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(A,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(A,"__esModule",{value:!0})},t.t=function(A,e){if(1&e&&(A=t(A)),8&e)return A;if(4&e&&"object"==typeof A&&A&&A.__esModule)return A;var n=Object.create(null);if(t.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:A}),2&e&&"string"!=typeof A)for(var i in A)t.d(n,i,function(e){return A[e]}.bind(null,i));return n},t.n=function(A){var e=A&&A.__esModule?function(){return A.default}:function(){return A};return t.d(e,"a",e),e},t.o=function(A,e){return Object.prototype.hasOwnProperty.call(A,e)},t.p="",t(t.s=0)}([function(A,e,t){"use strict";var n,i,M,s,a,r,g=u(t(1)),o=u(t(18)),c=t(19);function u(A){return A&&A.__esModule?A:{default:A}}function w(A,e){return e||(e=A.slice(0)),Object.freeze(Object.defineProperties(A,{raw:{value:Object.freeze(e)}}))}const D=window.LitElement||Object.getPrototypeOf(customElements.get("ha-panel-lovelace")||customElements.get("hc-lovelace")),{html:f,css:E}=D.prototype,h="°C",d={precipitation:{icon:"rainy",unit:"length"},precipitation_probability:{icon:"rainy",unit:"%"},humidity:{icon:"humidity",unit:"%"},wind_speed:{icon:"windy",unit:"speed"},wind_bearing:{icon:"windy",unit:""},pressure:{icon:"pressure",unit:"hPa"}};customElements.define("simple-weather-card",class extends D{constructor(){super(),this.custom={}}static get properties(){return{_hass:{type:Object},config:{type:Object},entity:{type:Object},weather:{type:Object},custom:{type:Object}}}static get styles(){return(0,o.default)(E)}set hass(A){const{custom:e,entity:t}=this.config;this._hass=A;const n=A.states[t];n&&this.entity!==n&&(this.entity=n,this.weather=new g.default(A,n));const i={};e.forEach(e=>{const[t,n]=Object.entries(e)[0];if(A.states[n]){const e=A.states[n],{state:M}=this.custom[t]||{};M!==e.state&&(i[t]={state:e.state,unit:e.attributes.unit_of_measurement})}}),Object.entries(i).length>0&&(this.custom={...this.custom,...i})}get hass(){return this._hass}get name(){return this.config.name||this.weather.name}setConfig(A){if(!A.entity)throw new Error("Specify an entity.");this.config={bg:!!A.backdrop,primary_info:["extrema"],secondary_info:["precipitation"],custom:[],tap_action:{action:"more-info"},...A,backdrop:{day:"#45aaf2",night:"#a55eea",text:"var(--text-dark-color)",fade:!1,...A.backdrop}},"string"==typeof A.primary_info&&(this.config.primary_info=[A.primary_info]),"string"==typeof A.secondary_info&&(this.config.secondary_info=[A.secondary_info]),this.config.primary_info||(this.config.primary_info=[]),this.config.secondary_info||(this.config.secondary_info=[])}shouldUpdate(A){return["entity","custom"].some(e=>A.has(e))}render(){return f(n||(n=w(["\n \n \n ',"\n ",'\n \n \n ','\n \n \n
\n ',"\n ","\n
\n \n "])),this.config.bg,this.config.backdrop.fade,this.weather.isNight,this.config.backdrop.day,this.config.backdrop.night,this.config.backdrop.text,A=>this.handleTap(A),this.renderIcon(),this.renderAttr("temp"),this.name,this.renderAttr("state",!1),this.renderInfoRow(this.config.primary_info),this.renderInfoRow(this.config.secondary_info))}renderIcon(){const A=this.custom["icon-state"]?this.weather.getIcon(this.custom["icon-state"].state):this.weather.icon;return this.weather.hasState&&A?f(i||(i=w(['\n
\n
\n '])),A):""}renderExtrema(){const A=this.custom.high||this.weather.high,e=this.custom.low||this.weather.low;return A||e?f(M||(M=w(['\n \n ',"\n ","\n ","\n \n "])),this.renderAttr("low"),A&&e?" / ":"",this.renderAttr("high")):""}renderInfoRow(A){return f(s||(s=w(['\n
\n ',"\n
\n "])),A.map(A=>this.renderInfo(A)))}renderInfo(A){return"extrema"===A?this.renderExtrema():f(a||(a=w(['\n \n
\n
\n ',"\n
\n "])),this.weather.getIcon(d[A].icon),this.renderAttr(A))}renderAttr(A,e=!0){const t=this.custom[A]?this.custom[A].state:this.weather[A];if(!t&&0!==t)return;const{unit:n}=this.custom[A]&&this.custom[A].unit?this.custom[A]:d[A]||{};return f(r||(r=w(["\n ","\n ","\n "])),t,e?this.getUnit(n):"")}handleTap(){(0,c.handleClick)(this,this._hass,this.config,this.config.tap_action)}getUnit(A="temperature"){const e="speed"===A?"length":A,t=this._hass.config.unit_system[e];return"temperature"===A?t||h:"length"===A?"km"===t?"mm":"in":"speed"===A?t?"".concat(t,"/h"):"km/h":A}})},function(A,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var n=l(t(2)),i=l(t(3)),M=l(t(4)),s=l(t(5)),a=l(t(6)),r=l(t(7)),g=l(t(8)),o=l(t(9)),c=l(t(10)),u=l(t(11)),w=l(t(12)),D=l(t(13)),f=l(t(14)),E=l(t(15)),h=l(t(16)),d=l(t(17));function l(A){return A&&A.__esModule?A:{default:A}}const y={"clear-day":f.default,"clear-night":n.default,cloudy:i.default,overcast:i.default,fog:M.default,hail:D.default,lightning:s.default,"lightning-rainy":a.default,"partly-cloudy-day":g.default,"partly-cloudy-night":o.default,partlycloudy:g.default,pouring:c.default,rain:u.default,rainy:u.default,sleet:D.default,snow:w.default,snowy:w.default,"snowy-rainy":D.default,sunny:f.default,wind:E.default,windy:E.default,"windy-variant":E.default,humidity:h.default,pressure:d.default},T={...y,sunny:n.default,partlycloudy:o.default,"lightning-rainy":r.default},N=["N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW"];e.default=class{constructor(A,e){this.hass=A,this.entity=e,this.attr=e.attributes,this.forecast=e.attributes.forecast||[[]]}get state(){return this.toLocale("component.weather.state._."+this.entity.state,this.entity.state)}get hasState(){return this.entity.state&&"unknown"!==this.entity.state}get temp(){return this.attr.temperature}get name(){return this.attr.friendly_name}get high(){return this.forecast[0].temperature}get low(){return this.forecast[0].templow}get wind_speed(){return this.attr.wind_speed||0}get pressure(){return this.attr.pressure||0}get wind_bearing(){return this.attr.wind_bearing?this.degToDirection(this.attr.wind_bearing):this.toLocale("state.default.unknown")}get precipitation(){return Math.round(100*(this.forecast[0].precipitation||0))/100}get precipitation_probability(){return this.forecast[0].precipitation_probability||0}get humidity(){return this.attr.humidity||0}get isNight(){return!!this.hass.states["sun.sun"]&&"below_horizon"===this.hass.states["sun.sun"].state}get icon(){const A=this.entity.state.toLowerCase();return this.isNight?T[A]:y[A]}getIcon(A){return y[A]}toLocale(A,e="unknown"){const t=this.hass.selectedLanguage||this.hass.language,n=this.hass.resources[t];return n&&n[A]?n[A]:e}degToDirection(A){const e=Math.floor(A/22.5+.5);return N[e%16]}}},function(A,e){A.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgBAMAAAAQtmoLAAAAHlBMVEUAAADL2/vK2/rH2fnI2vrG2PrJ2/vL3fzG2vzI3PwdWi7LAAAAB3RSTlMAFzNfjrze/OgtNAAAAdhJREFUeAHt17WC3EAMBuBZ3nIZOqcJVGGqwlSFqQpTFY6yVTiZrUJ3Z+tpj3ynBY3Hv6vDr5aGJMOYbetX49CtmsE1bxO9M7DcEVr02aDyt2nJvozxH+H1xPH01oAuUOyvwXRoxRUDKdCqAF9Qlj2XKAaX7TbF0EMqk3gNTiD+GECRBHaqR0lAnZSjMQG4ZVEDiybQFQm8ynjCrqwJzzIm5GkCvAU8oasSoL4QNXDPIgDLhjdfgSadBA9J3DcpKjTpFXiq4g3YSeIdWAbxAXx68ELcpkmDk9kSBvwnW2cw/zd+v6Ym4DkoQeIX7cOWJPGc0hx3SXBsJiWBQwmPhTXjc4kV/wv8uIoP/Wvaw0ro7Y4+a95ve5W1Od+2S6z4S1FgzdseOdYifuDJeMEOUQ0shHgLnCta7hI7RYnVy7PbbC25X12G0UwN6SYRWTsbZNmEXTS33126oXuCRb8eBUglJH5R+PiA3krZuSDBdD91TXaSmuOYP/6b/oXTGxh3MuXVYaf8SCmFnXbF2x6R9U2gd2G1hD6/qMNj341bYWjdEl/+HevkeRscs5qu2ZjcHav8qBmPvMr4Ic2NZeh4fbW0Yx7VkMvrRRl+P3w9vvn0yY0zO8y6tW0BcWLk3nu06KcAAAAASUVORK5CYII="},function(A,e){A.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgBAMAAAAQtmoLAAAAHlBMVEUAAADr6+vn5+fo6Ojo6Ojm5ubq6urp6enk5OTf399QNH53AAAACXRSTlMAIneu2P///z8+tLZ6AAACF0lEQVR4Ae2Wt5bUQBBFtfhwIgjxEOJdhHcRtigU4lohtvV2MiW4D1ijr11XpR76lKp3Y45uMq7uvPbq6j9mYmJi6fTD0Ly+PNtr/Zmg3Nvb3z8KiQ9eiFMf8HF343r4B+DDbvW/Qi5guVy/P2Q0QHuiKDwyAn6U6g8EK+BOOcAKH8sBVsDF4pBmYJv2vVd/JIwKCJ0jHHIEPPda5AnfnVUUPAEzZ4w8wZmKo8GOqvLVmTVPcDoRfKEdq99nBSRqakN4fbkzfXaFFd5JulmctgaJuQjAk/IgJeqeINxNwrlCixD7FShdYWFYIUZ8c6ehyYSe9R2GTf7GDRBhRRPSOdKWBPR9zVBFl6LfIkkgkvK0FP0ASVghloSobWrdAEmoiTThx2inAdMkYklANzKsMMIKEcWdBFy0E9cYYbueWBK+2KWBHMz7mraRhGWz+GAFIomIW8jqOOzUi7CyIsZOgggHvPbLBiKB4xbfsy2KMWoawGIiUGAlCbyFCjfgEhcCLU6dYwVhpy5F6B46AJc5cYIAFZYYHjLHKUGXq9+JSMh4rsJBV9CdoKSH3hF2hCHAnDTnSwHggdeL49URpB5Cdv14jDEYecKdqhwRkSfEWVWO0B6khLfZU4W9gJQQ8/vQX6c+xiHhZZVzDQ6sZlflLD3ECHFIoLv2QnCL/YT4ZPSiu2KrmcGM+qZ3lX7aj3D/VFdNTExYNgHAL10vmVlOfQAAAABJRU5ErkJggg=="},function(A,e){A.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAOVBMVEUAAADHx8fKysrJycnIyMjHx8fGxsbDw8PBwcG/v7/CwsLCwsK+vr67u7u4uLi3t7e4uLi5ubm4uLhyXqCUAAAAE3RSTlMAFkaMtND6////CGT//7BAhezMkbzxVAAAAi9JREFUeAHtloeS2zAMRF0JrA60yv9/bBQagS2YpOj05PiS6zvYURk8Hv5vOp1Op9M5ns6XawjXy/l0bM80c7oGIr5D4XrKZ4ihgCzTwPARKMFsHR/DS4axxWdKHM+BFNZ/qeN83GTwFdZ/imWKDMfTJZDBilZcTsfhniFmgPEKp0yREHS6vwK7jLCivQDbv2eYqFjgxkNiFHAevQKJKyJ4RpoKcNMbMt5yHWm83MZ0Q9ZMfLNANo90EvYAiNMmE9sLeH59KWdfkMtISwFjGQ8ZxkXACqSUiVItmJfbNJYXwzjdlrmeGVLmoHS6D1gh+gU+MNn8Gh+kmelf2QdeB+0+SOPcFbD3AfCdPiAd76/A1JkiNl4voN0HOl0/Ia6g6AIGqw+i4IGI1ApsfMUHOt77oKGADZkqPgBQ9kFLQdYHcDeo5APZLZA9HwA1H1QLWnZ9uw863QfExq/wATt+gQ88OR94uN0HRskHWUT2fcBFsEKkPsgiiZoPeIOe/fFYcYaJRmJCtEBpKpDb+M0Hog5g+6fEjQ/knYLMrvdXAJ9pL0DWB+4Ykcs0FVR2PYz4q30wdB98Gh8M4w/5AErFB7aEwO/6AHf0a9YHbsk1+cCf/e0L4HxAMMRo9AFW/BWkTw8fMPx8BTs+sLO/vwLWDiKvA/GAyz6whfa07AUVzAdbagWMxObsn+9wPmgqKO96ZCj4IO4VFM/+G+S7fLC366FIOROrBaVd333Q6XQ6nc4Xua9QVFRZEEsAAAAASUVORK5CYII="},function(A,e){A.exports="data:image/png;base64,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"},function(A,e){A.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAyVBMVEUAAADut0371Uv92kX920b+2kL92T/CyKz92j792Tvvs0jk1s3s4+Hl4d/r6ujp6Ojr6urn5eTk29ji19Po4tjq6urk2tb81jvp6en60z3r49P32Gnr6OHz1pbo6Ojr28Dj4uLm5ubn5+d/xLn8tl7d3d3/sk/k5OTa2tr3v3jh4eH/sErW1dTh4OD/r0f/rUXiwZr9sE/+slD0o0P9qkX1pEIP3/kL4f0q6P8H5f8A5f8n6P/6p0Mc6P8P5/8E4f0F5v8C2/sn6P8h4jSJAAAAQ3RSTlMAH1+bzey9Bf//SR1mpNHj8b5fNZP/T////////////////xH////////////l////0ayG+q0o7k/4/07PPNek3pNP7VonwQAAA8hJREFUeAHs0gWiwjAMgGFWDzBfmD/uf0rcgqV9bv8B8i3NJv/92CIhldZGiugjpluh3SFwWtj3nj/V7hwA6On7fr50jgLg5CuXmM3jJM2yJI+L2XGEVY4Cu1S4YMsqw8vi0pL5BAgXFhnelBV2Iuv7AMig8WWK92rSqm3b2tV3AAi4tM3xfk2DXX8WKKCt92lTfARsGs4CBUD4Pk+Gj4Ft41a4A2jP+YgMgESAc5HX+2Qs0Lz0FwKEvZFNkQe2d6hrAnj/qTn6AM1y+7feAMbnACxwPjQQwO/KqS8wbICNABAGLNj5ZIUaNtXnDH9hDiArbAmS5C/AAmQFWl0LDqhCACQN3XLsIw7ImPlMmK0pLa+FxUEgjLp7Y++9TRjSg255/5f7vwS7IOO55xyqZtD+/Ig/qkMBQDRZfQrMvHYCG4EfTNvfHgEGRopZkyxAo9gbmHr8hyRFgUkUQKH91TPekD5maZrmrIlEARqKL5H1R1lWFEUa3CW6sfoqkJcIgEoemLTFW7QhPmY2kCpxgAbSQ8YG7RIbSNMqJ6GfxsJrilFcwm/qQFUplgaoL3to8Ee135zqgFI5SwMz0U8FNkgl0DeBqg6gIPJ7bmp74jhhYwNpE8AaZIGp4BDsEzAPARS8ayAQPuX52xMwT4G8hqWBwF8mxuijeQl4C0SCLQKrx0F4Ao4A0OHAwhNonx/GcGkeAwoBX4FemXn/9u/z15HxBVAIBPotH8PrCDyB5wAKwFkg8pyxf5NI89G8BPxrkO8Q6E+sP8qeAk0BCYst+BfQ/vj1xXUAT+CB7E6pVPVcoDdWge+7Cv6jeeVPgznd3rT2BYatAP0z7zK3/+8/bFadQIDJ7Z+2WyHaw9KlB0kBbICZyeHfhP3gl1MPotN1BVxDb34ehv3gv0sPylMTUKoJAE1P6POqJeG3yw6yUx24LsBCd/LzrC3yxw65PWEEmgYqL5yni1n/p726QK4YBmIAqgwFrvEHC/kc5vvfqejOZjregrXlvgsoYFl4o0Pud4SN7DL3OsUwEZ9yr20GG8eTyFfOUMQxgq2e/7SBX1GWBR2w3aofqKqbpm6pgO29Dn5986APDtg6kVKZunlQbxBk+0SrwNA4AxdwivUP5PRUQAa/UQJGJkCtwCQBExGgVgC1BNQIoXwg40/UQVVIQBEeEEE3N86MIFIBRewS5hhBpAKqYizLsUAg5Q/bUSpgR6mAnW2m7JeVTtkvMxGeWWS/OMR+Mdj9EsR+Mbj9EsTlTKL3SzD79fWfiNgvGrFfgtgvBrFfX+/fLZ2VqOfdJyPAAAAAAElFTkSuQmCC"},function(A,e){A.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAllBMVEUAAAC8y87X3OnY3+zU2OXN3/3J3Py5usLW3+7O3ffF2Pnd3eLl5efp6ern5+fl5ebq6urH2vvp6enj5ObC1Pfo6OjU3vLt0rDk5OT7uWfb29vh4eHxw4n/sk/p3c7W1tb/sEr/r0f/rET6qkfqokj3p0b0o0T9rEYR4PoL4f0i6P8H5f8A5f8K5v8J5v8A4v0C2/sC2fne7Ib2AAAAMnRSTlMAF0uOL77/B6Po/2HG6v/f////tf///////////////////9BMrIbrKu5E+f/bnqaTqTOwt04AAAN7SURBVHgB5JiHdqswDEBZwWQgUxM1zNL5/7/4HB+F+hAbqxlnvftG9721lB3918RJmj1Rn23yPI+fphdFfkY8bTrb3PA0/y5/akDQ73/3iLJ9cSgB5CHdx5FFQfq7liyytKwsoMjm7sscSG72J2S3KUm3yedCcateVi6UTMyGX6hw6xJEXblRqipElOysQnqDP5aVL6CRcXqkwo1rzqBaCyjcHu3C5s/+yo8yVK924eWPe45hLUDsTEEH/l4QsmIEcGcCdIR8E/MDdcUJKDhSgUgFewG8gHqlwoW8SGJORHIDaAUIztUu4fjtI1iNnSa0blHyA+qo2Rn0G3ovY2yAG0B9hCVpFCBl+YnlF+F1G9wye0JuqnK/nshW1eGAQiyTtcDea0eNYvg1tfjrCpTCUwMAyAug9BcOHn/Tdj2ngKGCdAYQhrHr+kYXkBXA2hcAt/9t1AHGGXDGt+nGGWhaHTAFdqAU7BEphNNIgZ4dwD1vyTQgzWQCDTL9WDIvpspseBzfKQDcAMa8KxoN6P0SaIAbcM8ou/Y3rdabQK8DVAj7sXAGROO4CrxbASowAofwEmjD77+BxgAcv2/L2dVV4N0OUIEVCN8hqPOG3x0BZwEX1J5AoixoQFaAgHAg9QSEtH4GhndHwFnAJfvIQ6YuAA3IMSIqrAXiyEdx+QmgDS8upgSs+yXZ/ENCoAHZAeeU+BMi4t74zYaXAYIKfn8ZeIKj1DwgYvxluCTA68ckWi/02n96X/JheH/rrYI7UISfBNKAln7N0M37BnT7D5yXaga3/rOdOo0JAAA6/SIKkzn1mtM0UQDO4JUfiojDl1v/OUznQE+BMwu9TFj+76WdGCfrANeFRu4jFsJhpwMQnYU+j/5f1vSKD4efpZn4115dHEYQA0EULZ0Ux7AY8g/ObLep56Aye18A/RendnyMVbl/WHwIe0zvW/Ex9llMz2xQWIthk5i1M857xwf0DyjElGLgA4t2P90JbGA2eJeJ6U40XGDe8b6cHmQiMM/zYfUP6EEYDMx3VryvSKBgxHxvgyJLIDMBC0WUQCQCKzRVAnU8sEDlJODGAwa6lh40DAd2nGnUfah/AeG6991hPLDiM8lf4NMC9pMD6+l+8Zbz/eIZZb94xH4x2P0SxH4x2P0SxH5RyP0SxH5xqP0SxH7RiP0SxH7RZL9+l4tr2oowXbK2IEgAAAAASUVORK5CYII="},function(A,e){A.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAsVBMVEUAAAD0z2L93U/93lL93Ev81D/93Ef+3Uz72k75zEP93Ej93Ej920X920P920L92kH70z/92j/92kP92j381EP92Tv92D7+2Tv92Tn70jf810L44Yv15afx6c3x7uTv7+/43G371Dzu7u792Dfp49zcxLbt7Ovm29Xs6+vp4t/x8fH70jXq5OL5zzT4yjP4yzPq05fyvzP4zTP2xjPvyWD0wjHo3L/2xjD4yjLm5eTkxIAPtip5AAAAO3RSTlMAF1V5o7zT5foJl///////R/9w/yT//+L/8v/////////////bL8tJ6Ib//6P/nP///9P//1f/deP/x8TGymgAAAPmSURBVHgB7JSFduswEESfGSSHE7Nkx4///wPrVVm0ktvDuaWDczOzOv3x4MEDZ4IwipM0y1eyNImjMPjG8CIsU0JoVe12u/0LFUnLsPiW+EOckwr4KDgCVR4fvvzho4zQFdlwfKHKTsXX480CIIs2K0KIf0G7EXA+H7NwU/wlIYQ6CFb2yWXDx88JEQZko7Mg9y1RlIT4CK7H0usSQUokAUUE11saeMyfEj8BGK7pxTk/I1sE1/rinr9JAAb3/X1vIHC5Q/Ga7/eKXg0FKijJZgFQYvkhIfaFEME1RA6cY4K9XdC09kMnUj66kCJoki0D+QhsIxWZnI+fQBE0dWEURJTK8WoBVNCczAWohPdCIDBXOJmy993685qPC4wV3guQfhgZ45yN49Dn3cpegC8kqPX5B/pM3o+Mf2QUjv07R0TQHLSCmAJkYFyBDa8KfCEg1p44h/yecS2sh6GwAq+CVnfmENYZuZFxAkOHLwSEGkFJu4lxC2yaRYsjshBQagRp1d+5nX4GBbYQkKr5Ae05gBpuN3yhZgnURzrdOc40zzcwIAWaRX2oEeMOsGcDJliWkyL4yZ0Y5xkUWIFFufIv7kgPAjCcrYJEFvx2FbBcGJACi/yM/nBnBhA8A/kGQS0J/roLWPdqMBUAQYtcALsCKK4A/FUKAJ8F/7gP/wHGxmGCMk2jFAA2LyT/GxcKuYA8UcA3cx9moZAL1E/tmYVuI0EMQKfcFa5OWG4nrInHy3D//2Fn3ST1MjnivID4PXkZGtuQgI9nQ4lV1c+bKa8CAZ9UMFxwgQdV5SgK6M9nMIakzu+wjd1YgNb6A6lQD/wRb0TsJwI0tJAoQX6HLw6wn/h8QbeQVmdu5IuI/cR76ApnIlXjKPXrzzAGDrROBwehn0iosOJE2jxYS/20jGJkf/PC60bs11kcIxesarCX+vUHBbjgqwYHqV9/xlQAMHykq7GR+V0AEU6FXLVYC/y8iMAVum6hdiI9kZ0nMMYNIBlBdxBwoPBUBxst0BMJBYAwBlLVyUGi1yX5T4EH1cN2oZ6XEIIB0/8w5Ga/QM/HOgp0LyBmU87X8wCngFUDbPaz7Ez2O0DkqSFu1vPtxEfoBiD/jRrGO+rJcvYnZ38x4bHmZq0nm3n5uAU06Gd2az2DMvj1R9P8xOawn2h3evJTgJf/pMbfICuHybIgYT1aT80jDYchN4ExEgAv6ZJXLORogW0AcNYrFiYtTk73h51yokjVQry8qGoBoYWBIuelvyiBVRthKgj0jG9j/C83TeDF+uoSeKmNECnAFQCMbOqpy3Hj5/YhKl4QX4roweb+jZrKlStX/gHY0DfPBrPHXQAAAABJRU5ErkJggg=="},function(A,e){A.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAS1BMVEUAAADO1fHO1ejZ4fLR2ezd5vbB0vXDzufS4vzP4PzN3vvV3fDk5+/Ayerc5vfu7u7v7+/t7e7k5eavwOrT2OO4y/DAzOi2ye+/0vYf7YBFAAAAGHRSTlMAByNNhqbMO////2bRFP///+v/////9qxLSnpnAAACKklEQVR4Ae3U2YKzKgzA8QRBXECgdTnv/6RH+2V2LWLgzl/n+h8NOHDe7XZDUUlVY6G4Vk276voi9cps9U2HkJ1QW51UpfKkg8ws5Uu9QP+ZL3IC1rS/KMhJN+1vAjKS1C91xKr5O0BCNqianQE65/PvDcC8/abcEcjmpdglrf72s37Gdk1TvcxXYNoDFrLo2yOYa0FHIAvVlh0g/mS7f3INqFuyMyPnC3R7cp0A5YfB+Y1zw9C9ILAhxVuKf3JDngFV220TBr9j6CywmW43T3rgst3K+UMKgUd3XePfCQJY1PF6iNPAEe2vOBOw8XGOsSXt/AkB4SrjT1FwkfYnVSVfgLGkyvuyrxD8aQEuED6BhnTSJwtG9YK/oYjQ8zcUEap8d4jxb1x6DhOfoDyDc/EJhjfAKYgIrP6qKjfAvQQstSJH+kKH7D6EMtfUfbElPjRH4juyzH78pgZu35nsh+DIuVMWvH58ABhWP74i0Ix85JCJ4fVdDxHaMfIrATGSk/ePZy0rYRHhEJpLeTI+N9NqPpxhw6U8vcDnAAuHxCM9T+aP/KThDREu1GlBNEHCW9ak1cnjcz8LRKB0iXHqr2J9oo07Wybjn+ePj0jwmFOen2gZ0vLTpocUQo7j471xpPr6o/uZBJdnFMVXtYV0ejqtgktwmU5ZEK6yy/Tfron+1t8igGQdQabFAhfq+ihfa4QsUMvp77NTPRe0ul+Wep7rRfbaJsRvt9v/h4jJKdZPEXkAAAAASUVORK5CYII="},function(A,e){A.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAATlBMVEUAAADj4+Pp6enn5+fp6enp6enp6enq6urm5ubm5ubg4ODg4ODm5ubo6Ojc3Nww6v8Y6P8T5/8m6P8H5v8A5f8L5v8N4PoF4f0C4P0D2/uDNJb/AAAAGnRSTlMAE2SS0e7//7smT/////0a6ehI///bMaX0k6g43vIAAAKLSURBVHgB7JjpmuQgCEVjiBdTgu//trMPX5uuoLSzT5/6f09xyb6984eTdjoymBm57OmHpxO4A+VHOs6DXwHOjx/17ws/A+D8Q6Ygfg4+wWU9/2BHAOTVejL7AvC5tF2+Bz/AkNgBxtsNeU7AaXG/jmBp08SzAqYfvgDLXyipjAVLJZ0cEeCMbzgmyD94A4wrtYooM+dC+8w4FBXIF4PiM6w0dOSogJsJPsOUflBDRm0iYgJV7J7gERdIq51AlX7AWdwLai/QsngZ6tH2ydALnBlyXIBPAjPoN273oMF8E0gvQLoRhPNNIJ1AKS7AQCCdQM9oRRgKxPKdEXI8X7/ni7wUSOwwxT3SqhlURx1ROB9i8b1hn79UwKW+FMhoCQnBeMDyL4YytWUM0YvADPm5gBAItxtOhy9ICFJNYLgVbQeM6ACGe7FIigBcvwf2Bu+CWhDA4lRE7SfSn2g9STCN2u1Yr+TtFtLQADcC2u45fkC+pM0hBwpSyx8NEF+Dky9pczklkv9aII9tQGqT/YQLMg55e37ZZqDq1uP0Q9MfQ8T5/zrfv6M4quKCheJpvlAKfpDK1VvGJb1ZfMTxoNJaHdEmX6He+dheXR04DAQxGO7ANFrqv9DD1eyBSWH6Hv9wDLpB/TD0m2UcWWSTfZi2CsCimuzLtF4AgEXTW9WvFXxhkQSrwp8CtIKKRRDNxZ8Fn1hALIJkLrWCbywgFkEwF1hALCAWQTaXa4GbL0f/RXDz5eiDDDdfRMW+oXhBNV9kBcbXesFmUcSUc4pqebkfXCuxCLhWWhHMrNWEL/NF1tZKKYK2VkIRRLi4vwgSXNpfBAEu7C+CDJf3lNv7i85+kH2tzrloeC3ayx7vgDWcARqOBsEAAAAASUVORK5CYII="},function(A,e){A.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAARVBMVEUAAACy6fHl5eXq6uro6Ojm5ubp6enq6urm5ubi4uLj4+Pf39/o6Ojh4eES3/kP5/8k6f8M5/8G5v8A5f8G4f0C4P0E2/uRTESCAAAAF3RSTlMAEFuV5P///8EbLv//jCngQ/z//6X0kyzJZw0AAAJ0SURBVHgB7NYHlqQ6DIVhOejKLsv7X27ndj0KrELAm/zNSZPuTz5Nv7h/QkyZISLIJQa6WE2QBZR65XyWFUi+0TVCkS2A5EoXSLINAKTQaVmMAMCBTqksdgByoxNuMocLClUMGCodxfsCEs7fXzMAPv982gEkOiDs34dU8iuOAPL5J8gO4EZe2RfIl5/Ao9aYVURySX3P6SRvgD8KineiqdIT7A3ICHyQFMgSXPvjGvEIqCKSIfoD3NoioJpOvsXrQFsGtBx9y7BFVwHrHPhYYBT0S6QJde8D7R0vAwi07cA+f+wzLwKa/AHMfAV4EdDqvUSY4XYv6F068sPK/Cn6BL1j32MK7DgDZv2Pm+dFgx3gQe/i/k8FTK2tCsZNCHDOA2P+oVB2vcp4StukkGlTx2rcxo0f2IEKH2lfBeXBvERU4LKaf2d+LKrCQcfgqhDpilMYc8qs49fHH1WaCOw7AcU7fcQ01RV78TzQaa5csM+VDNlxgXS1bz5Drttg7HMg0409++sAR3oitP3XB+q5w0Ph4/uF9uhWgY197rRPKGwcv/qv/1otrJv777C5zz2QR+iNGXMP661Xcguxl9yeyqXH+tpeXWQxDMNAAG0OYBL4/jct+ikrOS+acvvXEzDO4SP95VIynvHVRtTqVoa51fj7t75Qic8o9IWl0VVbZhm+sswehYYyyfBQAhNEproZNvsnSciIm2EjgRkyZTJD8TlSMupm2Oj7TVEmk90MGzfj6zT0SYaHkYl8gfs0Y++PyKIqGc/8fV/HIay/YEB/AaD+WoH9BYD6ywNczsAM4XOE99d7ThHWXyu4vwDWX4Av7K+/E4vvci3LGOUMAAAAAElFTkSuQmCC"},function(A,e){A.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAPFBMVEUAAADZ2dnl5eXn5+fo6Ojm5ubp6enq6urg4ODm5ubQ0NDBwcHo6OjExMS9vb2/v7/AwMC8vLy9vb23t7ftsDFCAAAAFHRSTlMAEVuR2P////67J0z///+q+4HR+IsFiaoAAAJsSURBVHgB7ZWHYusgDEUlY4lhsv//Xx+NGtrEhliJ3vbpXvdUAwwbfzg4uJHYe88hDmie7tjfwdHSkUa/QJjABox+CWY/mlTh/DJc8BHeZvRtQYHeLAKz7wvYp7em69uwgQF9B668bqB1Ao+m850LmGz3cy5gZzyAKnhr0HFdvjDabmgVvLNJo04Q9BPQCTgEouy9D9G5NeU4ZT7T1ZBl5vm5I2sF/iYQvEODHZ31iKqgqAboMOgF0qMqKDiDU3wvCPeCHPVL2hHkmaBXA2nzRVAN+ZPhpSXiZcIHdC9gbAheyKdrPlEVdJukz5cKKIghV5K2Rcz9CgqS3y8hKPPrkK+K7wLSrSm3oWu8kIVOj5w6Xw4azQ3D+quCu9zyhWdDQFbFi4AWDXHVUeanZKlgZmg9rh3z2nCBJH5uaAiQldwalKnSbRGMrOIhXuheFolYQa6BM8MADSIrIApEWQT59iKGBA2QdAVk+ewRgiYuKwpoChy0GQ3yCaFDUDQoS76mgNVj6OQTQpdEmvy5gAZ4Aob1/VE3SBjp9fwIa3A9A/X642AdGKnz/2d9/+fgSJnnSCgv5pND0IAuEHGbh/Qg8TpwcjE8Z4xuSLCx8YewK8DPZF/YBL9DgGlJkBCsOBwP+CjA8k0wIpXU3elecDqWzxLYcN5/cJy+BFOJL5zBiJMYzkkE6Sz5J8MpH0Rx/XCQeBmLGUn6VCnVWDNdpIp94TKBPTKK2vy/TlBXs66s8LcMGQ+fmy/vZGXRsPkS/3XQRGE2Csm7fL8qLqZXRaqbI4K6UWZzOOyXruv94U984Pz5z+RNcCnAxsYv5gcBJmV5WFk6DwAAAABJRU5ErkJggg=="},function(A,e){A.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAMAAADVRocKAAAAYFBMVEUAAADT3t/h4eHq6urp6enn5+fp6enq6urm5ubG0NLLy8uds7bo6Ojj4+Pn5+fh4eHe3t4U5/8Y5P0B5f/ExMS+vr4K5v8D3vy+vr4A3/28vLy9vb29vb29vb3BwcG4uLjMVSTuAAAAH3RSTlMAD1uV0e7//7ohOgX///+M/+g6//3/252t9H3R8/+TcABA0AAAAzBJREFUeAHsmAe6rCAMhUWGBO8kwf1v9jbsSonM6+9fwPm/k1jpfnP+Y3r7cICI4HxvXp0+WMAd4IdXxj/wBKB7e9VsPF4BgO4lLSxeA5+gb45/PjAjAHDPxvEQ5gWATWN6wzQwGxp2bbAgiNzu8HR1AjQ3BQ+sE4Brvz7zArCtC0jnN1xKvihoG9KAGgG86TesE7gfXACAmYUQ0XkbaupYrUDGLwPFnZMtbl20AlwEEWtarlGEM+PIIouACPqcoNcLeGTeCD6xrXfxcQnjQUC++TG0hcZPw1aQ7eBuCmYDTST3QOp8gPHbsBeASQhu5Mt3PssiyA5JnR8b8GSglUF7nwFkG0QDUamCU+cDzfksW4HoLlOAXIMpn4WKM7LaeACO+ZGNoK9/VECVIDpKSzCgio8X0VyAZTslX7VlKELzBqJjNbhrQYDq8AgvG5gleYEBJXP+xpEdUfcAFbLJXzaRfVgMoi0QA2VL9oHqlQViHMnRMKQERlGBlrclHeEuSSBFAYkCOhFiWNueRZIFZMj+gCgGlChguxyG6wqk89kUfgK5LV/6roBxUIBivn7Dy4+4lOefyvddDYGz148k8yVUH4Zwej5CqXzuNcc5TJf5X8BlPgfTaTDBsUCaQ/oYhjtHasG7sYjz4aO9OtlyEASiMHwrO6xNBolYiL7/WzYcbKtP5tBmzpdxVb8zC4Ovh2HGTZnVyuB2eL2J1vinOsJBcf4cBRvhENqM6EaB7W9ge5vAejNZ3yTQaKDB9cgcChjaOULlx8jVjnYD5KzDpNVAi6tVcWot/DfAUsd/1UyHyNukqzRQdTbxM51klpDnmRwwuRiED5zlBiXI5USfv5LgCAo8FhpGGeNjQgVvsGPdtG2zRiE97no+ZsdiR8K4Be7tqL9JYFHrGagXmFvlp+mJ9QfOAhFKkcuz+xD1OeF2xxFzYYFlujRDlC7ZZOdcSxcJSuR56dLMgXTJhsRD9TZHUcCEEAZhaAAsQ/xnMJE4v7zgBkeABhJywWFCXRh1VL7gaGB3wSHWABOKaWAHQwPgGwTAGmDcIgAJI8FtApBZ5mOIoEputHKc3jfFjOf29QPQe5BuJum+4AAAAABJRU5ErkJggg=="},function(A,e){A.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgBAMAAAAQtmoLAAAAKlBMVEUAAAD81kP71UL71kD81kD81z/91z793Eb4yz/920L92kD92j792Tv92TcDye7yAAAACXRSTlMAH1Bzm8vn/wvXXbMnAAAC1klEQVR4Ae2XNdPbQBiEzeMujE2YmZmZmZm5CmhUhfMTojnXQbkNO12YmaP/El8u1r7S+uSvC31b76Pd907SzaWa9ccq3WPW6j3Hdq0c3rJJ9mLPNY6qyvfV0eknGvszc1z1UyXfL98+0rWR//QexwFQqZwf29gfASqXEomM9jtuDfArmkholV7jAFAa0LpoX6w+DgFa223+M0594OnchEIgADy/Xr9UO6cmFQOeL6sbsMcOPEQE1N4J5cWB59uSJkACgAf8Up11khKeryVgjgAUA/fppRB+l4Cq4i9Ih2SAxxYje64bvnwAHtgbidcbQLzTOVHIBBCwNwKMEY0sCe+kv7hHJGBmA9w1wEe5d1kR4AGoSCAYKoCCXFSvLvAi2Co/NQTUEkoEvJXvhRzBo5kN8F7MLAPQKAZ8w9SZqtHY9S7YgABbl3O1WUNhQIkWKQimhkBeua7ZYxeNGFiKV1V5nn44AtBIAG9CoJ9SntLtwwnQCCOIdR3n1aQQwADepnnVBBOBkdEoBLAR69QveRyAEYIPAjAR2o8ANCJgH54dBpRphOCjBKRK3CgGsJ8baUlA+hFgA/aRv0yNaAb2I4CA9T7WB4Wo0QcBQPCjEQHz4UUhaiRejfHsRwAAvHz9yY8ANBKvd2fuzwHyA8rf4cdzgPhEczBxAAD8BDJkRgAaid9MsWz3I+C7+H0vsBdCwPsUNCAxIFxVqMB+Coj87rPkR0BIyAOleID8FKCPLGhC3I+AGvIueuyyHwFG0WM384zXEwHYNmgD2xGArwdqD7f0I2BbDMjARksqG0EL2Q873gvobB3/dwBrCShuJL8cGbuGse0DyJGh9MGoPxDEx5bwQe2ifhmwDC6agualCaAz0i81N2VRb2M3daDt9ivNJmOP+j/QxFDmUCDaGH3smngtO0T+Rhe5Q8l+Vma29O/s2pTL66ZwXPvlla7Hhz7ietysP1A/ALZC9b117sbZAAAAAElFTkSuQmCC"},function(A,e){A.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOSIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDE5IDIwIj4KICA8cGF0aCBmaWxsPSIjRDhEOEQ4IiBkPSJNMSw4IEMwLjQ0NzcxNTI1LDggMCw3LjU1MjI4NDcgMCw3IEMwLDYuNDQ3NzE1MyAwLjQ0NzcxNTI1LDYgMSw2IEw5LDYgQzkuOTA1MzAxNjcsNi4wMDAxOTMzIDEwLjY5Nzg0MTMsNS4zOTIyNDg2IDEwLjkzMjIzMTEsNC41MTc4MTU5IEMxMS4xNjY2MjA4LDMuNjQzMzgzMiAxMC43ODQ0MDM2LDIuNzIwNTQ3NSAxMC4wMDAzNzYsMi4yNjc5MTk4IEM5LjIxNjM0ODQsMS44MTUyOTIgOC4yMjYwNDgzMSwxLjk0NTc1ODQgNy41ODYsMi41ODYgQzcuMTkzNjIxMTEsMi45NjQ5NzIyIDYuNTY5OTE1MjIsMi45NTk1NTI0IDYuMTg0MTgxNDIsMi41NzM4MTg2IEM1Ljc5ODQ0NzYzLDIuMTg4MDg0OCA1Ljc5MzAyNzc5LDEuNTY0Mzc4OSA2LjE3MiwxLjE3MiBDNy40NTIwOTY2MywtMC4xMDg0ODMyIDkuNDMyNjk2OCwtMC4zNjk0MTU5IDExLjAwMDc1MiwwLjUzNTgzOTUgQzEyLjU2ODgwNzIsMS40NDEwOTUgMTMuMzMzMjQxNywzLjI4Njc2NjQgMTIuODY0NDYyMSw1LjAzNTYzMTggQzEyLjM5NTY4MjUsNi43ODQ0OTczIDEwLjgxMDYwMzMsOC4wMDAzODY2IDksOCBMMSw4IFogTTE2LDEwIEMxNi40NTI2NTA4LDEwLjAwMDA5NjcgMTYuODQ4OTIwNiw5LjY5NjEyNDMgMTYuOTY2MTE1NSw5LjI1ODkwOCBDMTcuMDgzMzEwNCw4LjgyMTY5MTYgMTYuODkyMjAxOCw4LjM2MDI3MzggMTYuNTAwMTg4LDguMTMzOTU5OSBDMTYuMTA4MTc0Miw3LjkwNzY0NiAxNS42MTMwMjQyLDcuOTcyODc5MiAxNS4yOTMsOC4yOTMgQzE0LjkwMDYyMTEsOC42NzE5NzIyIDE0LjI3NjkxNTIsOC42NjY1NTI0IDEzLjg5MTE4MTQsOC4yODA4MTg2IEMxMy41MDU0NDc2LDcuODk1MDg0OCAxMy41MDAwMjc4LDcuMjcxMzc4OSAxMy44NzksNi44NzkgQzE0LjgzOTA3MjUsNS45MTg2Mzc2IDE2LjMyNDUyMjYsNS43MjI5MzggMTcuNTAwNTY0LDYuNDAxODc5NyBDMTguNjc2NjA1NCw3LjA4MDgyMTMgMTkuMjQ5OTMxMyw4LjQ2NTA3NDggMTguODk4MzQ2Niw5Ljc3NjcyMzkgQzE4LjU0Njc2MTksMTEuMDg4MzcyOSAxNy4zNTc5NTI1LDEyLjAwMDI5IDE2LDEyIEwyLDEyIEMxLjQ0NzcxNTI1LDEyIDEsMTEuNTUyMjg0NyAxLDExIEMxLDEwLjQ0NzcxNTMgMS40NDc3MTUyNSwxMCAyLDEwIEwxNiwxMCBaIE0xNSwxNiBMMSwxNiBDMC40NDc3MTUyNSwxNiAwLDE1LjU1MjI4NDcgMCwxNSBDMCwxNC40NDc3MTUzIDAuNDQ3NzE1MjUsMTQgMSwxNCBMMTUsMTQgQzE2LjM1Nzk1MjUsMTMuOTk5NzEgMTcuNTQ2NzYxOSwxNC45MTE2MjcxIDE3Ljg5ODM0NjYsMTYuMjIzMjc2MSBDMTguMjQ5OTMxMywxNy41MzQ5MjUyIDE3LjY3NjYwNTQsMTguOTE5MTc4NyAxNi41MDA1NjQsMTkuNTk4MTIwMyBDMTUuMzI0NTIyNiwyMC4yNzcwNjIgMTMuODM5MDcyNSwyMC4wODEzNjI0IDEyLjg3OSwxOS4xMjEgQzEyLjYxOTA0MzQsMTguODY5OTI1NSAxMi41MTQ3ODc0LDE4LjQ5ODEyMjEgMTIuNjA2MzAyOCwxOC4xNDg0OTI3IEMxMi42OTc4MTgzLDE3Ljc5ODg2MzIgMTIuOTcwODYzMiwxNy41MjU4MTgzIDEzLjMyMDQ5MjcsMTcuNDM0MzAyOCBDMTMuNjcwMTIyMSwxNy4zNDI3ODc0IDE0LjA0MTkyNTUsMTcuNDQ3MDQzNCAxNC4yOTMsMTcuNzA3IEMxNC42MTMwMjQyLDE4LjAyNzEyMDggMTUuMTA4MTc0MiwxOC4wOTIzNTQgMTUuNTAwMTg4LDE3Ljg2NjA0MDEgQzE1Ljg5MjIwMTgsMTcuNjM5NzI2MiAxNi4wODMzMTA0LDE3LjE3ODMwODQgMTUuOTY2MTE1NSwxNi43NDEwOTIgQzE1Ljg0ODkyMDYsMTYuMzAzODc1NyAxNS40NTI2NTA4LDE1Ljk5OTkwMzMgMTUsMTYgWiIvPgo8L3N2Zz4K"},function(A,e){A.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBmaWxsPSIjMDBFNUZGIiBkPSJNMTIsMSBDNy43Mzg3NSw3LjI5NzM3NSA1LDExLjIzNjYyNSA1LDE1LjA2NTYyNSBDNSwxOC44OTYzNzUgOC4xMzE2MjUsMjIgMTIsMjIgQzE1Ljg2ODM3NSwyMiAxOSwxOC44OTYzNzUgMTksMTUuMDY1NjI1IEMxOSwxMS4yMzY2MjUgMTYuMjYxMjUsNy4yOTczNzUgMTIsMSBaIi8+Cjwvc3ZnPgo="},function(A,e){A.exports="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0Ij4KICA8cGF0aCBmaWxsPSIjRDhEOEQ4IiBkPSJNMTIsMkExMCwxMCAwIDAsMCAyLDEyQTEwLDEwIDAgMCwwIDEyLDIyQTEwLDEwIDAgMCwwIDIyLDEyQTEwLDEwIDAgMCwwIDEyLDJNMTIsNEE4LDggMCAwLDEgMjAsMTJDMjAsMTQuNCAxOSwxNi41IDE3LjMsMThDMTUuOSwxNi43IDE0LDE2IDEyLDE2QzEwLDE2IDguMiwxNi43IDYuNywxOEM1LDE2LjUgNCwxNC40IDQsMTJBOCw4IDAgMCwxIDEyLDRNMTQsNS44OUMxMy42Miw1LjkgMTMuMjYsNi4xNSAxMy4xLDYuNTRMMTEuODEsOS43N0wxMS43MSwxMEMxMSwxMC4xMyAxMC40MSwxMC42IDEwLjE0LDExLjI2QzkuNzMsMTIuMjkgMTAuMjMsMTMuNDUgMTEuMjYsMTMuODZDMTIuMjksMTQuMjcgMTMuNDUsMTMuNzcgMTMuODYsMTIuNzRDMTQuMTIsMTIuMDggMTQsMTEuMzIgMTMuNTcsMTAuNzZMMTMuNjcsMTAuNUwxNC45Niw3LjI5TDE0Ljk3LDcuMjZDMTUuMTcsNi43NSAxNC45Miw2LjE3IDE0LjQxLDUuOTZDMTQuMjgsNS45MSAxNC4xNSw1Ljg5IDE0LDUuODlNMTAsNkExLDEgMCAwLDAgOSw3QTEsMSAwIDAsMCAxMCw4QTEsMSAwIDAsMCAxMSw3QTEsMSAwIDAsMCAxMCw2TTcsOUExLDEgMCAwLDAgNiwxMEExLDEgMCAwLDAgNywxMUExLDEgMCAwLDAgOCwxMEExLDEgMCAwLDAgNyw5TTE3LDlBMSwxIDAgMCwwIDE2LDEwQTEsMSAwIDAsMCAxNywxMUExLDEgMCAwLDAgMTgsMTBBMSwxIDAgMCwwIDE3LDlaIj48L3BhdGg+Cjwvc3ZnPgo="},function(A,e,t){"use strict";var n;Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0;var i=function(A){return A(n||(e=["\n ha-card {\n display: flex;\n flex-flow: row;\n align-items: center;\n padding: 16px;\n color: var(--primary-text-color, #000);\n font-weight: var(--swc-font-weight, 400);\n transition: background 1s;\n cursor: pointer;\n }\n ha-card[bg] {\n font-weight: var(--swc-font-weight, 500);\n background: var(--day-color);\n color: var(--text-color);\n }\n ha-card[bg][night] {\n background: var(--night-color);\n }\n ha-card[bg][fade] {\n background: linear-gradient(var(--day-color), transparent 250%);\n }\n ha-card[bg][fade][night] {\n background: linear-gradient(var(--night-color) 0%, transparent 300%);\n }\n .weather__icon {\n height: 40px;\n width: 40px;\n background-size: contain;\n background-repeat: no-repeat;\n flex: 0 0 40px;\n color: white;\n margin-right: 16px;\n }\n .weather__icon--small {\n display: inline-block;\n height: 1em;\n width: 1em;\n min-width: 1em;\n flex: initial;\n margin: 0 .2em;\n }\n .weather__info {\n display: flex;\n flex-flow: column;\n justify-content: space-between;\n min-height: 42px;\n min-width: 0;\n }\n .weather__info__row {\n display: flex;\n align-items: center;\n max-width: 100%;\n }\n .weather__info__item {\n padding-left: 8px;\n display: flex;\n align-items: center;\n }\n .weather__info--add {\n padding-left: 8px;\n margin-left: auto;\n align-items: flex-end;\n }\n .weather__info__state,\n .weather__info__title,\n .weather__info__row {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n "],t||(t=e.slice(0)),n=Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))));var e,t};e.default=i},function(A,e,t){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.handleClick=void 0;e.handleClick=(A,e,t,n)=>{let i;switch(n.action){case"more-info":i=new Event("hass-more-info",{composed:!0}),i.detail={entityId:n.entity||t.entity},A.dispatchEvent(i);break;case"navigate":if(!n.navigation_path)return;history.pushState(null,"",n.navigation_path),i=new Event("location-changed",{composed:!0}),i.detail={replace:!1},window.dispatchEvent(i);break;case"call-service":if(!n.service)return;const[M,s]=n.service.split(".",2),a={...n.service_data};e.callService(M,s,a)}}}]); diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml index 24249d361..b532bc0b5 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml @@ -16,6 +16,9 @@ views: template: "card_title" name: "Congrats with your installation 🎉" label: "Explore here some of the wonderfull 'Minimalistic-UI' cards we offer" + - type: "markdown" + content: > + # Welcome {{ user[0]|upper}}{{user[1:] }} - type: "custom:auto-entities" card: type: "grid" @@ -28,11 +31,7 @@ views: include: - domain: "weather" options: - type: "custom:button-card" - template: "custom_card_paddy_welcome_with_weather" - variables: - ulm_custom_card_paddy_welcome_time: "sensor.time" - ulm_custom_card_paddy_welcome_weather_provider: "this.entity_id" + type: "weather-forecast" - type: "custom:button-card" template: "card_title" name: "Lights" diff --git a/requirements_dev.txt b/requirements_dev.txt index de96e5564..0ad91112c 100644 --- a/requirements_dev.txt +++ b/requirements_dev.txt @@ -1,9 +1,13 @@ -# git+git://github.com/home-assistant/home-assistant.git@dev +# +# If the dev version of homeassistant gives you problems: +# pip install git+git://github.com/home-assistant/core.git@2021.12.10 +# jinja2 mkdocs-awesome-pages-plugin mkdocs-material pre-commit -# Causing some wierd Typguard error in devcontainer(typing-extensions-3.7.4.3) -# typing-extensions>=4.0.0 +# Optional, if container start takes really long due to PyTurboJPEG==1.6.3 +# wheel +# PyTurboJPEG==1.6.3 From bdb093705d283acd88b65a5dac2c345efb3a168c Mon Sep 17 00:00:00 2001 From: Rick Stokkingreef Date: Wed, 26 Jan 2022 19:09:14 +0000 Subject: [PATCH 018/248] Revert to welcome card --- .../ui_lovelace_minimalist/lovelace/ui-lovelace.yaml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml index b532bc0b5..b64b79901 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml @@ -16,9 +16,6 @@ views: template: "card_title" name: "Congrats with your installation 🎉" label: "Explore here some of the wonderfull 'Minimalistic-UI' cards we offer" - - type: "markdown" - content: > - # Welcome {{ user[0]|upper}}{{user[1:] }} - type: "custom:auto-entities" card: type: "grid" @@ -31,7 +28,11 @@ views: include: - domain: "weather" options: - type: "weather-forecast" + type: "custom:button-card" + template: "welcome_with_weather" + variables: + ulm_custom_card_paddy_welcome_time: "sensor.time" + ulm_custom_card_paddy_welcome_weather_provider: "this.entity_id" - type: "custom:button-card" template: "card_title" name: "Lights" From c74081449c33862e43c771dc78ca50062dfd89c3 Mon Sep 17 00:00:00 2001 From: Rick Stokkingreef Date: Wed, 26 Jan 2022 19:44:33 +0000 Subject: [PATCH 019/248] Fix warning about unknown panel when sidebar entry is unchecked --- custom_components/ui_lovelace_minimalist/load_dashboard.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/custom_components/ui_lovelace_minimalist/load_dashboard.py b/custom_components/ui_lovelace_minimalist/load_dashboard.py index 3f4f7782f..2e2a5ad43 100644 --- a/custom_components/ui_lovelace_minimalist/load_dashboard.py +++ b/custom_components/ui_lovelace_minimalist/load_dashboard.py @@ -36,4 +36,5 @@ def load_dashboard(hass: HomeAssistant, ulm: UlmBase): _register_panel(hass, dashboard_url, "yaml", dashboard_config, True) else: - async_remove_panel(hass, "ui-lovelace-minimalist") + if dashboard_url in hass.data["lovelace"]["dashboards"]: + async_remove_panel(hass, "ui-lovelace-minimalist") From 6e725dc156002828b46c3193bc4086d18e4816a6 Mon Sep 17 00:00:00 2001 From: basbruss <68892092+basbruss@users.noreply.github.com> Date: Wed, 26 Jan 2022 20:58:06 +0100 Subject: [PATCH 020/248] Add welcome_card --- .../lovelace/translations/DA.yaml | 4 + .../lovelace/translations/DE.yaml | 4 + .../lovelace/translations/EN.yaml | 4 + .../lovelace/translations/ES.yaml | 4 + .../lovelace/translations/FR.yaml | 4 + .../lovelace/translations/IT.yaml | 4 + .../lovelace/translations/NL.yaml | 4 + .../lovelace/translations/PL.yaml | 4 + .../lovelace/translations/PT.yaml | 5 + .../lovelace/translations/SE.yaml | 4 + .../cards/card_paddy_welcome.yaml | 206 +++++++++ docs/usage/cards/card_paddy_welcome.md | 430 ++++++++++++++++++ 12 files changed, 677 insertions(+) create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_paddy_welcome.yaml create mode 100644 docs/usage/cards/card_paddy_welcome.md diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/DA.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/DA.yaml index ea08c6784..4df6ca2df 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/DA.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/DA.yaml @@ -28,3 +28,7 @@ ulm_language_variables: ulm_alarm_triggered: "AKTIVERET" ulm_playing: "Spiller" ulm_paused: "Sat på pause" + ulm_morning: "Good morning" + ulm_afternoon: "Good afternoon" + ulm_evening: "Good evening" + ulm_hello: "Hello" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/DE.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/DE.yaml index 9488b5638..86867d5ce 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/DE.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/DE.yaml @@ -28,3 +28,7 @@ ulm_language_variables: ulm_alarm_triggered: "AUSGELÖST" ulm_playing: "Spielt" ulm_paused: "Pausiert" + ulm_morning: "Guten Morgen" + ulm_afternoon: "Guten Tag" + ulm_evening: "Guten Abend" + ulm_hello: "Hallo" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/EN.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/EN.yaml index 93a85585f..389bbaa3c 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/EN.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/EN.yaml @@ -28,3 +28,7 @@ ulm_language_variables: ulm_alarm_triggered: "TRIGGERED" ulm_playing: "Playing" ulm_paused: "Paused" + ulm_morning: "Good morning" + ulm_afternoon: "Good afternoon" + ulm_evening: "Good evening" + ulm_hello: "Hello" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/ES.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/ES.yaml index 181acb59d..18b063e61 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/ES.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/ES.yaml @@ -28,3 +28,7 @@ ulm_language_variables: ulm_alarm_triggered: "Alarma en curso" ulm_playing: "Reproduciendo" ulm_paused: "Pausa" + ulm_morning: "Buenos días" + ulm_afternoon: "Buenas tardes" + ulm_evening: "Buenas noches" + ulm_hello: "Hola" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml index b20cda7a6..a70d4ed8c 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml @@ -28,3 +28,7 @@ ulm_language_variables: ulm_alarm_triggered: "TRIGGERED" ulm_playing: "Playing" ulm_paused: "Paused" + ulm_morning: "Bonjour" + ulm_afternoon: "Bonne après-midi" + ulm_evening: "Bonsoir" + ulm_hello: "Bonjour" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/IT.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/IT.yaml index 91ee1f4ed..a39f54b2e 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/IT.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/IT.yaml @@ -28,3 +28,7 @@ ulm_language_variables: ulm_alarm_triggered: "TRIGGERED" ulm_playing: "Playing" ulm_paused: "Paused" + ulm_morning: "Buon giorno" + ulm_afternoon: "Buon pomeriggio" + ulm_evening: "Buona serata" + ulm_hello: "Ciao diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/NL.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/NL.yaml index 7ee531c5a..add381739 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/NL.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/NL.yaml @@ -28,3 +28,7 @@ ulm_language_variables: ulm_alarm_triggered: "Gedetecteerd" ulm_playing: "Speelt af" ulm_paused: "Gepauzeerd" + ulm_morning: "Goede morgen" + ulm_afternoon: "Goede middag" + ulm_evening: "Goede avond" + ulm_hello: "Hallo" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/PL.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/PL.yaml index d23152afc..005ccff09 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/PL.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/PL.yaml @@ -28,3 +28,7 @@ ulm_language_variables: ulm_alarm_triggered: "Naruszony" ulm_playing: "Odtwarzanie" ulm_paused: "Wstrzymano" + ulm_morning: "Dzień dobry" + ulm_afternoon: "Dzień dobry" + ulm_evening: "Dobry wieczór" + ulm_hello: "Witaj" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/PT.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/PT.yaml index 5de47046b..39324adcf 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/PT.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/PT.yaml @@ -28,3 +28,8 @@ ulm_language_variables: ulm_alarm_triggered: "TRIGGERED" ulm_playing: "Playing" ulm_paused: "Paused" + ulm_morning: "Bom dia" + ulm_afternoon: "Boa tarde" + ulm_evening: "Boa noite" + ulm_hello: "Olá" + diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/SE.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/SE.yaml index 7dda438f9..b5d6dddd3 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/SE.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/SE.yaml @@ -28,3 +28,7 @@ ulm_language_variables: ulm_alarm_triggered: "LARM UTLÖST" ulm_playing: "Spelar" ulm_paused: "Pausad" + ulm_morning: "Good morning" + ulm_afternoon: "Good afternoon" + ulm_evening: "Good evening" + ulm_hello: "Hello" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_paddy_welcome.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_paddy_welcome.yaml new file mode 100644 index 000000000..3a337a0de --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_paddy_welcome.yaml @@ -0,0 +1,206 @@ +--- +########################################## +# # +# Design by Paddy # +# # +########################################## +card_paddy_welcome: + template: + - "ulm_language_variables" + show_icon: false + show_name: false + show_label: false + styles: + grid: + - grid-template-areas: "'item1'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content" + - row-gap: "12px" + card: + - border-radius: "var(--border-radius)" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + custom_fields: + item1: + card: + type: "markdown" + content: > + [[[ + let time = states[variables.ulm_card_paddy_welcome_time].state; + let welcome = ''; + + if (time > '18:00'){ + welcome = variables.ulm_evening; + } else if (time > '12:00'){ + welcome = variables.ulm_afternoon; + } else if (time > '05:00'){ + welcome = variables.ulm_morning; + } else { + welcome = variables.ulm_hello; + } + + return welcome + ',
' + user.name + '!'; + ]]] + card_mod: + style: | + ha-card { + border-radius: 14px; + box-shadow: none; + font-size: 30px; + text-align: left; + cursor: default; + } + +card_paddy_welcome_with_weather: + template: + - "ulm_language_variables" + show_icon: false + show_name: false + show_label: false + styles: + grid: + - grid-template-areas: "'item1' 'item2'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" + - row-gap: "12px" + card: + - border-radius: "var(--border-radius)" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + custom_fields: + item1: + card: + type: "markdown" + content: > + [[[ + let time = states[variables.ulm_card_paddy_welcome_time].state; + let welcome = ''; + + if (time > '18:00'){ + welcome = variables.ulm_evening; + } else if (time > '12:00'){ + welcome = variables.ulm_afternoon; + } else if (time > '05:00'){ + welcome = variables.ulm_morning; + } else { + welcome = variables.ulm_hello; + } + + return welcome + ',
' + user.name + '!'; + ]]] + card_mod: + style: | + ha-card { + border-radius: 14px; + box-shadow: none; + font-size: 30px; + text-align: left; + cursor: default; + } + item2: + card: + type: "weather-forecast" + entity: "[[[ return variables.ulm_card_paddy_welcome_weather_provider; ]]]" + show_forecast: false + card_mod: + style: | + ha-card.type-weather-forecast { + border-radius: 14px; + box-shadow: none; + } + ha-card.type-weather-forecast .state { + text-align: left; + font-size: 14px; + font-weight: bolder; + } + ha-card.type-weather-forecast .name { + text-align: left; + font-size: 14px; + } + ha-card.type-weather-forecast .temp-attribute { + text-align: right; + } + ha-card.type-weather-forecast .temp { + text-align: right; + font-size: medium; + font-weight: bolder; + margin-right: 16px; + } + ha-card.type-weather-forecast .temp span { + text-align: right; + font-size: medium; + font-weight: bolder; + } + ha-card.type-weather-forecast .attribute { + text-align: right; + font-size: smaller; + } + +card_paddy_welcome_with_news: + template: + - "ulm_language_variables" + show_icon: false + show_name: false + show_label: false + styles: + grid: + - grid-template-areas: "'item1' 'item2'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" + - row-gap: "12px" + card: + - border-radius: "var(--border-radius)" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + custom_fields: + item1: + card: + type: "markdown" + content: > + [[[ + let time = states[variables.ulm_card_paddy_welcome_time].state; + let welcome = ''; + + if (time > '18:00'){ + welcome = variables.ulm_evening; + } else if (time > '12:00'){ + welcome = variables.ulm_afternoon; + } else if (time > '05:00'){ + welcome = variables.ulm_morning; + } else { + welcome = variables.ulm_hello; + } + + return welcome + ',
' + user.name + '!'; + ]]] + card_mod: + style: | + ha-card { + border-radius: 14px; + box-shadow: none; + font-size: 30px; + text-align: left; + cursor: default; + } + item2: + card: + type: "custom:home-feed-card" + card_id: "main_feed" + show_empty: false + more_info_on_tap: true + state_color: false + compact_mode: true + max_item_count: 3 + show_icons: true + entities: > + [[[ + return variables.ulm_card_paddy_welcome_news_entities; + ]]] + card_mod: + style: | + ha-card { + border-radius: 14px; + box-shadow: none; + font-size: 14px; + text-align: left; + } diff --git a/docs/usage/cards/card_paddy_welcome.md b/docs/usage/cards/card_paddy_welcome.md new file mode 100644 index 000000000..574ac0b5f --- /dev/null +++ b/docs/usage/cards/card_paddy_welcome.md @@ -0,0 +1,430 @@ +--- +title: card_paddy_welcome +hide: + - toc +--- + + +# "Welcome" card + +This is the `welcome-card` to show a welcome message to the user. It comes in four different versions: + +- welcome message (*card_paddy_welcome*) +- welcome message + weather-forecast (*card_paddy_welcome_with_weather*) +- welcome message + news (*card_paddy_welcome_with_news*) [based on home-feed-card] + +The card shows a time based message (good morning/afternoon/evening/hello) to the logged-in user with username. The second part of the card varies depending on what version you choose. *Note, that you have different requirements depending on the version!* + +## Credits + +Author: Paddy0174 - 2021 +Version: 1.0.0 + +## Changelog + +
+1.0.0 +Initial release +
+ +## Requirements + +This card needs the following to function correctly: + + + + + + + + + + + + + + + + + + + + + +
Component / cardrequiredNote
lovelace-card-modyes
a weather integration/provideronly for welcome-card-with-weatherSee setup instructions for a HA weather integration
home-feed-cardonly for welcome-card-with-news
+ + +## Usage + +```yaml +- type: custom:button-card + template: card_paddy_welcome + variables: + ulm_card_paddy_welcome_time: sensor.time + +- type: custom:button-card + template: card_paddy_welcome_with_weather + variables: + ulm_card_paddy_welcome_time: sensor.time + ulm_card_paddy_welcome_weather_provider: weather.accu_weather + +- type: custom:button-card + template: paddy_welcome_with_news + variables: + ulm_card_paddy_welcome_time: sensor.time + ulm_card_paddy_welcome_news_entities: + - entity: sensor.waste_collection_paper + content_template: "{{display_name}}
{{state}}" + - entity: sensor.waste_collection_waste + content_template: "{{display_name}}
{{state}}" +``` + +## Variables + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Card typeVariableExampleRequiredExplanation
allulm_card_paddy_welcome_timesensor.timeyesThis is your Home Assistant sensor.time
_welcome_with_weatherulm_card_paddy_welcome_weather_providerweather.accu_weatheryesThis is your weather provider
_welcome_with_newsulm_card_paddy_welcome_news_entitiesentity: sensor.waste_collection_paper
content_template: "<b>{{display_name}}</b><br>{{state}}"
yesA list of your entities to show in the news feed, see the note underneath.
+ +> #### Note _welcome_with_news + +> This card is based on [home-feed-card](https://github.com/gadgetchnnel/lovelace-home-feed-card) and needs a little different configuration in the variables. +> To allow almost all entites from HomeAssistant to show in the news, you're able to set all options that `home-feed-card` provides. This makes it necessary, that you set these entities in a list. Let me show you an example: +> +> ```yaml +> # normally you do this +> variables: +> ulm_variable: your_variable_entity +> +> # here you need to do a list +> variables: +> ulm_variable: +> - your_variable_entity_1 +> - your_variable_entity_2 +> +> # to use an option from home-feed-card +> variables: +> ulm_variable: +> - entity: your_variable_entity_1 +> content_template: "{{ display_name }}
{{ state }}" +> - your_variable_entity_2 +> ``` +> +> You can find all available options and their description [here](https://github.com/gadgetchnnel/lovelace-home-feed-card#entity-object). +> +> I recommend to use a `content_template` to format the output for every news item, eg. like this: +> +> ```yaml +> content_template: "{{ display_name }}
{{ state }}" +> ``` + +## Example + +```yaml +- type: custom:button-card + template: card_paddy_welcome_with_news + variables: + ulm_card_paddy_welcome_news_entities: + - entity: input_datetime.alarm_clock + content_template: "{{display_name}}
{{state}}" + - entity: sensor.waste_collection_bio + content_template: "{{display_name}}
{{state}}" + - entity: sensor.waste_collection_paper + content_template: "{{display_name}}
{{state}}" + - entity: sensor.waste_collection_plastic + content_template: "{{display_name}}
{{state}}" +``` + +## Template code + +```yaml +card_paddy_welcome: + template: + - "ulm_language_variables" + show_icon: false + show_name: false + show_label: false + styles: + grid: + - grid-template-areas: "'item1'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content" + - row-gap: "12px" + card: + - border-radius: "var(--border-radius)" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + custom_fields: + item1: + card: + type: "markdown" + content: > + [[[ + let time = states[variables.ulm_card_paddy_welcome_time].state; + let welcome = ''; + + if (time > '18:00'){ + welcome = variables.ulm_evening; + } else if (time > '12:00'){ + welcome = variables.ulm_afternoon; + } else if (time > '05:00'){ + welcome = variables.ulm_morning; + } else { + welcome = variables.ulm_hello; + } + + return welcome + ',
' + user.name + '!'; + ]]] + card_mod: + style: | + ha-card { + border-radius: 14px; + box-shadow: none; + font-size: 30px; + text-align: left; + cursor: default; + } + +card_paddy_welcome_with_weather: + template: + - "ulm_language_variables" + show_icon: false + show_name: false + show_label: false + styles: + grid: + - grid-template-areas: "'item1' 'item2'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" + - row-gap: "12px" + card: + - border-radius: "var(--border-radius)" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + custom_fields: + item1: + card: + type: "markdown" + content: > + [[[ + let time = states[variables.ulm_card_paddy_welcome_time].state; + let welcome = ''; + + if (time > '18:00'){ + welcome = variables.ulm_evening; + } else if (time > '12:00'){ + welcome = variables.ulm_afternoon; + } else if (time > '05:00'){ + welcome = variables.ulm_morning; + } else { + welcome = variables.ulm_hello; + } + + return welcome + ',
' + user.name + '!'; + ]]] + card_mod: + style: | + ha-card { + border-radius: 14px; + box-shadow: none; + font-size: 30px; + text-align: left; + cursor: default; + } + item2: + card: + type: "weather-forecast" + entity: "[[[ return variables.ulm_card_paddy_welcome_weather_provider; ]]]" + show_forecast: false + card_mod: + style: | + ha-card.type-weather-forecast { + border-radius: 14px; + box-shadow: none; + } + ha-card.type-weather-forecast .state { + text-align: left; + font-size: 14px; + font-weight: bolder; + } + ha-card.type-weather-forecast .name { + text-align: left; + font-size: 14px; + } + ha-card.type-weather-forecast .temp-attribute { + text-align: right; + } + ha-card.type-weather-forecast .temp { + text-align: right; + font-size: medium; + font-weight: bolder; + margin-right: 16px; + } + ha-card.type-weather-forecast .temp span { + text-align: right; + font-size: medium; + font-weight: bolder; + } + ha-card.type-weather-forecast .attribute { + text-align: right; + font-size: smaller; + } + +card_paddy_welcome_with_news: + template: + - "ulm_language_variables" + show_icon: false + show_name: false + show_label: false + styles: + grid: + - grid-template-areas: "'item1' 'item2'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" + - row-gap: "12px" + card: + - border-radius: "var(--border-radius)" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + custom_fields: + item1: + card: + type: "markdown" + content: > + [[[ + let time = states[variables.ulm_card_paddy_welcome_time].state; + let welcome = ''; + + if (time > '18:00'){ + welcome = variables.ulm_evening; + } else if (time > '12:00'){ + welcome = variables.ulm_afternoon; + } else if (time > '05:00'){ + welcome = variables.ulm_morning; + } else { + welcome = variables.ulm_hello; + } + + return welcome + ',
' + user.name + '!'; + ]]] + card_mod: + style: | + ha-card { + border-radius: 14px; + box-shadow: none; + font-size: 30px; + text-align: left; + cursor: default; + } + item2: + card: + type: "custom:home-feed-card" + card_id: "main_feed" + show_empty: false + more_info_on_tap: true + state_color: false + compact_mode: true + max_item_count: 3 + show_icons: true + entities: > + [[[ + return variables.ulm_card_paddy_welcome_news_entities; + ]]] + card_mod: + style: | + ha-card { + border-radius: 14px; + box-shadow: none; + font-size: 14px; + text-align: left; + } +``` + +## Custom configuration Example + +Here is one example, on how you can extend this (actually every) card. In the end we have the welcome card extended by four buttons to have something like a header with a navigation. + +```yaml +- type: horizontal-stack + cards: + - type: custom:button-card + template: edge + - type: custom:button-card + template: card_paddy_welcome + # here we override the styles to extend the welcome card with a second item + styles: + grid: + - grid-template-areas: '"item1" "item2"' + - grid-template-rows: min-content min-content + - row-gap: 12px + custom_fields: + # here we set up the second item and its contents + item2: + card: + type: horizontal-stack + cards: + - type: custom:button-card + template: edge + - type: custom:button-card + template: vertical_buttons + tap_action: + action: navigate + navigation_path: /ui-lovelace-minimalist/living + icon: "mdi:sofa" + name: Living + label: Livingroom + - type: custom:button-card + template: vertical_buttons + tap_action: + action: navigate + navigation_path: /ui-lovelace-minimalist/working + icon: "mdi:factory" + name: Working + label: Office + - type: custom:button-card + template: vertical_buttons + tap_action: + action: navigate + navigation_path: /ui-lovelace-minimalist/sleeping + icon: "mdi:bed-king-outline" + name: Sleeping + label: Bedroom + - type: custom:button-card + template: vertical_buttons + tap_action: + action: navigate + navigation_path: /ui-lovelace-minimalist/climate + icon: "mdi:air-conditioner" + name: Air Conditioning + label: Livingroom + - type: custom:button-card + template: edge + - type: custom:button-card + template: edge +``` From 1585d37af13e3ab6b6f9f8b9e7d6bcb7c61d483a Mon Sep 17 00:00:00 2001 From: basbruss <68892092+basbruss@users.noreply.github.com> Date: Wed, 26 Jan 2022 21:05:04 +0100 Subject: [PATCH 021/248] Fix code quality --- .../ui_lovelace_minimalist/lovelace/translations/PT.yaml | 1 - docs/usage/cards/card_paddy_welcome.md | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/PT.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/PT.yaml index 39324adcf..9ca9dd920 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/PT.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/PT.yaml @@ -32,4 +32,3 @@ ulm_language_variables: ulm_afternoon: "Boa tarde" ulm_evening: "Boa noite" ulm_hello: "Olá" - diff --git a/docs/usage/cards/card_paddy_welcome.md b/docs/usage/cards/card_paddy_welcome.md index 574ac0b5f..0921b3b5e 100644 --- a/docs/usage/cards/card_paddy_welcome.md +++ b/docs/usage/cards/card_paddy_welcome.md @@ -5,7 +5,7 @@ hide: --- -# "Welcome" card +# "Welcome" card This is the `welcome-card` to show a welcome message to the user. It comes in four different versions: @@ -53,7 +53,6 @@ This card needs the following to function correctly: - ## Usage ```yaml From d37e73bfebb86069f173e7d6790da96b0c3c1dd6 Mon Sep 17 00:00:00 2001 From: basbruss <68892092+basbruss@users.noreply.github.com> Date: Wed, 26 Jan 2022 21:08:23 +0100 Subject: [PATCH 022/248] Missing quote --- .../ui_lovelace_minimalist/lovelace/translations/IT.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/IT.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/IT.yaml index a39f54b2e..eb1542376 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/IT.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/IT.yaml @@ -31,4 +31,4 @@ ulm_language_variables: ulm_morning: "Buon giorno" ulm_afternoon: "Buon pomeriggio" ulm_evening: "Buona serata" - ulm_hello: "Ciao + ulm_hello: "Ciao" From 884306634ea7e65dcbcf9cbb203556f08b43d92b Mon Sep 17 00:00:00 2001 From: BasBruss <68892092+basbruss@users.noreply.github.com> Date: Thu, 27 Jan 2022 01:49:02 +0100 Subject: [PATCH 023/248] Adapt to official welcome card --- .../ui_lovelace_minimalist/lovelace/ui-lovelace.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml index b64b79901..fce9b3f68 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml @@ -29,10 +29,10 @@ views: - domain: "weather" options: type: "custom:button-card" - template: "welcome_with_weather" + template: "card_paddy_welcome_with_weather" variables: - ulm_custom_card_paddy_welcome_time: "sensor.time" - ulm_custom_card_paddy_welcome_weather_provider: "this.entity_id" + ulm_card_paddy_welcome_time: "sensor.time" + ulm_card_paddy_welcome_weather_provider: "this.entity_id" - type: "custom:button-card" template: "card_title" name: "Lights" From cb3387e8893edd2ccf13231f6ed1536fce6650b1 Mon Sep 17 00:00:00 2001 From: Stokkie90 Date: Thu, 27 Jan 2022 09:04:31 +0100 Subject: [PATCH 024/248] Use icon if it's set on the device If not specified should be using `mdi:lightbulb`. Needs testing. or we should move it to a if/else statment --- .../lovelace/ulm_templates/card_templates/cards/card_light.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_light.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_light.yaml index 917d08389..1d6840869 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_light.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_light.yaml @@ -5,7 +5,7 @@ card_light: - "ulm_language_variables" variables: ulm_card_light_name: "[[[ return entity.attributes.friendly_name ]]]" - ulm_card_light_icon: "[[[ return 'mdi:lightbulb' ]]]" + ulm_card_light_icon: "[[[ return entity.attributes.icon ]]]" ulm_card_light_enable_collapse: false ulm_card_light_enable_slider: false ulm_card_light_enable_horizontal: false From 174b4e65129d308fc9bbf8580e7c38ad973d3fd8 Mon Sep 17 00:00:00 2001 From: Sil de Hoop <34340385+sildehoop@users.noreply.github.com> Date: Thu, 27 Jan 2022 11:56:24 +0100 Subject: [PATCH 025/248] Version: 1.0.1 --- .../custom_card_input_number/README.md | 160 +++++------------- .../card_input_number.yaml | 16 +- 2 files changed, 52 insertions(+), 124 deletions(-) diff --git a/custom_cards/custom_card_input_number/README.md b/custom_cards/custom_card_input_number/README.md index 3a01de448..bfeb2b275 100644 --- a/custom_cards/custom_card_input_number/README.md +++ b/custom_cards/custom_card_input_number/README.md @@ -14,10 +14,42 @@ The `card_input_number` you can control a input_number entity ## Credits Author: sildehoop - 2021 -Version: 1.0.0 +Version: 1.0.1 + +

Braking changes

+ +
+ 1.0.1 + +```yaml +#OLD +- type: "custom:button-card" + template: + - card_input_number + variables: + ulm_card_input_number_name: "YOUR_NAME" + ulm_card_input_number_entity: "input_number.YOUR_INPUT_NUMBER" +``` + +```yaml +#NEW +- type: "custom:button-card" + template: card_input_number + entity: input_number.YOUR_INPUT_NUMBER_ENTITY + variables: + ulm_card_input_number_name: "YOUR_CARD_NAME" +``` + +
## Changelog +
+1.0.1 +Added option to leave ulm_card_input_number_name empty (takes the friendly_name of the entity) +Removed background from middle text (because it is not a button). +Removed variables ulm_card_input_number_entity. +
1.0.0 Initial release @@ -27,11 +59,10 @@ Initial release ```yaml - type: "custom:button-card" - template: - - card_input_number + template: card_input_number + entity: input_number.YOUR_INPUT_NUMBER variables: ulm_card_input_number_name: "YOUR_NAME" - ulm_card_input_number_entity: "input_number.YOUR_INPUT_NUMBER" ``` ## Requirements @@ -48,122 +79,17 @@ n/a Explanation - - - - +ulm_card_input_number_name +Bathroom Ceiling Fan Threshold +false +The name to display on your card ## Template code -```yaml ---- -card_input_number: - variables: - ulm_card_input_number_name: "n/a" - triggers_update: "all" - styles: - grid: - - grid-template-areas: "'item1' 'item2'" - - grid-template-columns: "1fr" - - grid-template-rows: "min-content min-content" - - row-gap: "12px" - card: - - border-radius: "var(--border-radius)" - - box-shadow: "var(--box-shadow)" - - padding: "12px" - custom_fields: - item1: - card: - type: "custom:button-card" - template: - - "icon_info" - - "ulm_language_variables" - - "input_number" - tap_action: - action: "more-info" - entity: "[[[ return variables.ulm_card_input_number_entity ]]]" - name: "[[[ return variables.ulm_card_input_number_name ]]]" - item2: - card: - type: "custom:button-card" - template: "list_3_items" - custom_fields: - item1: - card: - type: "custom:button-card" - template: "widget_icon" - tap_action: - action: "call-service" - service: "input_number.decrement" - service_data: - entity_id: "[[[ return variables.ulm_card_input_number_entity ]]]" - icon: "mdi:arrow-down" - item2: - card: - type: "custom:button-card" - template: "widget_text" - entity: "[[[ return variables.ulm_card_input_number_entity ]]]" - tap_action: - action: "call-service" - service: "cover.stop_cover" - service_data: - entity_id: "[[[ return variables.ulm_card_input_number_entity ]]]" - item3: - card: - type: "custom:button-card" - template: "widget_icon" - tap_action: - action: "call-service" - service: "input_number.increment" - service_data: - entity_id: "[[[ return variables.ulm_card_input_number_entity ]]]" - icon: "mdi:arrow-up" - -input_number: - tap_action: - action: "more-info" - show_last_changed: true - -widget_text: - tap_action: - action: "toggle" - show_icon: false - show_label: true - show_name: false - label: >- - [[[ - var unit = entity.attributes.unit_of_measurement != null ? ' ' + entity.attributes.unit_of_measurement : '' - if (entity.state == 'on') { - return variables.ulm_on; - } else if (entity.state == 'off') { - return variables.ulm_off; - } else if (entity.state == 'unavailable') { - return variables.ulm_unavailable; - } else if (entity.state == 'idle') { - return variables.ulm_idle; - } else if (entity.state == 'open') { - return variables.ulm_open; - } else if (entity.state == 'closed') { - return variables.ulm_closed; - } else { - return entity.state + unit; - } - ]]] - styles: - grid: - - grid-template-areas: "'l'" - card: - - box-shadow: "none" - - padding: "0px" - - background-color: "rgba(var(--color-theme),0.05)" - - border-radius: "14px" - - place-self: "center" - - height: "42px" - state: - - color: "rgba(var(--color-theme),0.9)" - size: "20px" - color: "var(--google-grey)" +??? note "Template Code" -``` + ```yaml title="custom_card_input_number.yaml" + --8<-- "custom_cards/custom_card_input_number/card_input_number.yaml" + ``` diff --git a/custom_cards/custom_card_input_number/card_input_number.yaml b/custom_cards/custom_card_input_number/card_input_number.yaml index ac5320130..916c9e293 100644 --- a/custom_cards/custom_card_input_number/card_input_number.yaml +++ b/custom_cards/custom_card_input_number/card_input_number.yaml @@ -1,8 +1,11 @@ --- card_input_number: variables: - ulm_card_input_number_name: "n/a" + ulm_card_input_number_name: "[[[ return entity.attributes.friendly_name ]]]" triggers_update: "all" + show_icon: false + show_label: false + show_name: false styles: grid: - grid-template-areas: "'item1' 'item2'" @@ -23,7 +26,7 @@ card_input_number: - "input_number" tap_action: action: "more-info" - entity: "[[[ return variables.ulm_card_input_number_entity ]]]" + entity: "[[[ return entity.entity_id ]]]" name: "[[[ return variables.ulm_card_input_number_name ]]]" item2: card: @@ -38,18 +41,18 @@ card_input_number: action: "call-service" service: "input_number.decrement" service_data: - entity_id: "[[[ return variables.ulm_card_input_number_entity ]]]" + entity_id: "[[[ return entity.entity_id ]]]" icon: "mdi:arrow-down" item2: card: type: "custom:button-card" template: "widget_text" - entity: "[[[ return variables.ulm_card_input_number_entity ]]]" + entity: "[[[ return entity.entity_id ]]]" tap_action: action: "call-service" service: "cover.stop_cover" service_data: - entity_id: "[[[ return variables.ulm_card_input_number_entity ]]]" + entity_id: "[[[ return entity.entity_id ]]]" item3: card: type: "custom:button-card" @@ -58,7 +61,7 @@ card_input_number: action: "call-service" service: "input_number.increment" service_data: - entity_id: "[[[ return variables.ulm_card_input_number_entity ]]]" + entity_id: "[[[ return entity.entity_id ]]]" icon: "mdi:arrow-up" input_number: @@ -97,7 +100,6 @@ widget_text: card: - box-shadow: "none" - padding: "0px" - - background-color: "rgba(var(--color-theme),0.05)" - border-radius: "14px" - place-self: "center" - height: "42px" From d1c7408c6ef3fdd7882fa67223f337b8e1c16f06 Mon Sep 17 00:00:00 2001 From: Sil de Hoop <34340385+sildehoop@users.noreply.github.com> Date: Thu, 27 Jan 2022 12:18:25 +0100 Subject: [PATCH 026/248] card_cover_with_buttons --> card_cover_buttons --- .../2-line_cards/card_cover_with_buttons.yaml | 14 +++++++------- .../card_templates/legacy_templates/cards.yaml | 6 +++--- docs/usage/cards/card_cover_with_buttons.md | 14 +++++++------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/2-line_cards/card_cover_with_buttons.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/2-line_cards/card_cover_with_buttons.yaml index 6b740ff0d..5e770058e 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/2-line_cards/card_cover_with_buttons.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/2-line_cards/card_cover_with_buttons.yaml @@ -1,8 +1,8 @@ --- ### Card Cover With Buttons ### -card_cover_with_buttons: +card_cover_buttons: variables: - ulm_card_cover_with_buttons_name: "n/a" + ulm_card_cover_buttons_name: "n/a" triggers_update: "all" styles: grid: @@ -24,8 +24,8 @@ card_cover_with_buttons: - "cover" tap_action: action: "more-info" - entity: "[[[ return variables.ulm_card_cover_with_buttons_entity ]]]" - name: "[[[ return variables.ulm_card_cover_with_buttons_name ]]]" + entity: "[[[ return variables.ulm_card_cover_buttons_entity ]]]" + name: "[[[ return variables.ulm_card_cover_buttons_name ]]]" item2: card: type: "custom:button-card" @@ -39,7 +39,7 @@ card_cover_with_buttons: action: "call-service" service: "cover.close_cover" service_data: - entity_id: "[[[ return variables.ulm_card_cover_with_buttons_entity ]]]" + entity_id: "[[[ return variables.ulm_card_cover_buttons_entity ]]]" icon: "mdi:arrow-down" item2: card: @@ -49,7 +49,7 @@ card_cover_with_buttons: action: "call-service" service: "cover.stop_cover" service_data: - entity_id: "[[[ return variables.ulm_card_cover_with_buttons_entity ]]]" + entity_id: "[[[ return variables.ulm_card_cover_buttons_entity ]]]" icon: "mdi:pause" item3: card: @@ -59,5 +59,5 @@ card_cover_with_buttons: action: "call-service" service: "cover.open_cover" service_data: - entity_id: "[[[ return variables.ulm_card_cover_with_buttons_entity ]]]" + entity_id: "[[[ return variables.ulm_card_cover_buttons_entity ]]]" icon: "mdi:arrow-up" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/legacy_templates/cards.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/legacy_templates/cards.yaml index 4369053b6..98e51eeef 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/legacy_templates/cards.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/legacy_templates/cards.yaml @@ -21,10 +21,10 @@ outlet: # template: card_thermostat cover_buttons: - template: "card_cover_with_buttons" + template: "card_cover_buttons" variables: - ulm_card_cover_with_buttons_name: - ulm_card_cover_with_buttons_entity: + ulm_card_cover_buttons_name: + ulm_card_cover_buttons_entity: graph: template: "card_graph" diff --git a/docs/usage/cards/card_cover_with_buttons.md b/docs/usage/cards/card_cover_with_buttons.md index 21ab16f16..a137e9a1a 100644 --- a/docs/usage/cards/card_cover_with_buttons.md +++ b/docs/usage/cards/card_cover_with_buttons.md @@ -1,5 +1,5 @@ --- -title: card_cover_with_buttons +title: card_cover_buttons hide: - toc --- @@ -15,22 +15,22 @@ With the `cover-card` you have the state of your cover and on the second line UP | Variable | Default | Required | Notes | |----------|---------|------------------|-------------------| -| ulm_card_cover_with_buttons_entity | | :material-check: | The entity_id of your cover | -| ulm_card_cover_with_buttons_name | | :material-close: | The name of your cover entity | +| ulm_card_cover_buttons_entity | | :material-check: | The entity_id of your cover | +| ulm_card_cover_buttons_name | | :material-close: | The name of your cover entity | ## Usage ```yaml - type: 'custom:button-card' template: - - card_cover_with_buttons + - card_cover_buttons variables: - ulm_card_cover_with_buttons_name: "Cover Livingroom Window" - ulm_card_cover_with_buttons_entity: "cover.livingroom_window" + ulm_card_cover_buttons_name: "Cover Livingroom Window" + ulm_card_cover_buttons_entity: "cover.livingroom_window" ``` ??? note "Template Code" ```yaml title="card_light.yaml" - --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/2-line_cards/card_cover_with_buttons.yaml" + --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/2-line_cards/card_cover_buttons.yaml" ``` From 76ea4ad5134d1e1c974057d3a15adf1224ae0aa7 Mon Sep 17 00:00:00 2001 From: Sil de Hoop <34340385+sildehoop@users.noreply.github.com> Date: Thu, 27 Jan 2022 12:18:56 +0100 Subject: [PATCH 027/248] card_media_player_with_control --> card_media_player_art --- .../cards/card_media_player_with_control.yaml | 2 +- docs/usage/cards/card_media_player_with_control.md | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_with_control.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_with_control.yaml index 379e5a0c0..fd6b9aa76 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_with_control.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_with_control.yaml @@ -1,6 +1,6 @@ --- ### Card Media Player With Control ### -card_media_player_with_control: +card_media_player_art: template: - "card_media_player" styles: diff --git a/docs/usage/cards/card_media_player_with_control.md b/docs/usage/cards/card_media_player_with_control.md index 1158ed221..c41ad9b85 100644 --- a/docs/usage/cards/card_media_player_with_control.md +++ b/docs/usage/cards/card_media_player_with_control.md @@ -1,5 +1,5 @@ --- -title: card_media_player_with_control +title: card_media_player_art hide: - toc --- @@ -22,7 +22,7 @@ This is the second `media-player-card`, in contrast to the first one above, it s ```yaml - type: 'custom:button-card' - template: card_media_player_with_control + template: card_media_player_art entity: media_player.livingroom_shield name: Livingroom Nvidia Shield ``` @@ -30,5 +30,5 @@ This is the second `media-player-card`, in contrast to the first one above, it s ??? note "Template Code" ```yaml title="card_light.yaml" - --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_with_control.yaml" + --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_art.yaml" ``` From 1fd8bff37e8bd738da3c31c2a57ccf8b8ef99c71 Mon Sep 17 00:00:00 2001 From: Sil de Hoop <34340385+sildehoop@users.noreply.github.com> Date: Thu, 27 Jan 2022 12:22:11 +0100 Subject: [PATCH 028/248] card_media_player_with_controls --> card_media_player_controls --- .../cards/card_media_player_with_controls.yaml | 18 +++++++++--------- .../card_templates/legacy_templates/cards.yaml | 6 +++--- .../cards/card_media_player_with_controls.md | 16 ++++++++-------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_with_controls.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_with_controls.yaml index 69df95646..e486cd728 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_with_controls.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_with_controls.yaml @@ -1,9 +1,9 @@ --- ### Card Media Player With Controls ### -card_media_player_with_controls: +card_media_player_controls: variables: - ulm_card_media_player_with_controls_name: "No name set" - ulm_card_media_player_with_controls_entity: + ulm_card_media_player_controls_name: "No name set" + ulm_card_media_player_controls_entity: triggers_update: "all" styles: grid: @@ -24,8 +24,8 @@ card_media_player_with_controls: - "card_media_player" tap_action: action: "more-info" - entity: "[[[ return variables.ulm_card_media_player_with_controls_entity ]]]" - name: "[[[ return variables.ulm_card_media_player_with_controls_name ]]]" + entity: "[[[ return variables.ulm_card_media_player_controls_entity ]]]" + name: "[[[ return variables.ulm_card_media_player_controls_name ]]]" styles: card: - box-shadow: "none" @@ -43,18 +43,18 @@ card_media_player_with_controls: action: "call-service" service: "media_player.media_previous_track" service_data: - entity_id: "[[[ return variables.ulm_card_media_player_with_controls_entity ]]]" + entity_id: "[[[ return variables.ulm_card_media_player_controls_entity ]]]" icon: "mdi:skip-previous" item2: card: type: "custom:button-card" template: "widget_icon" - entity: "[[[ return variables.ulm_card_media_player_with_controls_entity ]]]" + entity: "[[[ return variables.ulm_card_media_player_controls_entity ]]]" tap_action: action: "call-service" service: "media_player.media_play_pause" service_data: - entity_id: "[[[ return variables.ulm_card_media_player_with_controls_entity ]]]" + entity_id: "[[[ return variables.ulm_card_media_player_controls_entity ]]]" icon: "mdi:pause" state: - value: "paused" @@ -69,5 +69,5 @@ card_media_player_with_controls: action: "call-service" service: "media_player.media_next_track" service_data: - entity_id: "[[[ return variables.ulm_card_media_player_with_controls_entity ]]]" + entity_id: "[[[ return variables.ulm_card_media_player_controls_entity ]]]" icon: "mdi:skip-next" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/legacy_templates/cards.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/legacy_templates/cards.yaml index 98e51eeef..1b7fe62aa 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/legacy_templates/cards.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/legacy_templates/cards.yaml @@ -45,10 +45,10 @@ media_mini_album: template: "card_media_player_with_cover" media_buttons: - template: "card_media_player_with_controls" + template: "card_media_player_controls" variables: - ulm_card_media_player_with_controls_entity: "[[[ return variables.entity ]]]" - ulm_card_media_player_with_controls_name: "[[[ return variables.name ]]]" + ulm_card_media_player_controls_entity: "[[[ return variables.entity ]]]" + ulm_card_media_player_controls_name: "[[[ return variables.name ]]]" ### NEW CARD_LIGHT ALL IN ONE ### card_light_slider: diff --git a/docs/usage/cards/card_media_player_with_controls.md b/docs/usage/cards/card_media_player_with_controls.md index 10cdde36e..3668b387a 100644 --- a/docs/usage/cards/card_media_player_with_controls.md +++ b/docs/usage/cards/card_media_player_with_controls.md @@ -1,5 +1,5 @@ --- -title: card_media_player_with_controls +title: card_media_player_controls hide: - toc --- @@ -9,28 +9,28 @@ hide: ![example-image](../../assets/img/ulm_cards/card_media_player_art.png){ width="500" } -With the `card_media_player_with_controls` you have the state of your media_player and on the second line PREVIOUS / PLAY-PAUSE / NEXT to control it +With the `card_media_player_controls` you have the state of your media_player and on the second line PREVIOUS / PLAY-PAUSE / NEXT to control it ## Variables | Variable | Default | Required | Notes | |----------|---------|------------------|-------------------| -| ulm_card_media_player_with_controls_entity | | :material-check: | The media-player entity | -| ulm_card_media_player_with_controls_name | | :material-check: | Name to display for your media-player | +| ulm_card_media_player_controls_entity | | :material-check: | The media-player entity | +| ulm_card_media_player_controls_name | | :material-check: | Name to display for your media-player | ## Usage ```yaml - type: 'custom:button-card' template: - - card_media_player_with_controls + - card_media_player_controls variables: - ulm_card_media_player_with_controls_name: "Livingroom Shield" - ulm_card_media_player_with_controls_entity: media_player.livingroom_shield + ulm_card_media_player_controls_name: "Livingroom Shield" + ulm_card_media_player_controls_entity: media_player.livingroom_shield ``` ??? note "Template Code" ```yaml title="card_light.yaml" - --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_with_controls.yaml" + --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_controls.yaml" ``` From 8f941f834c828e11462431acd7358a3e67b0c5bf Mon Sep 17 00:00:00 2001 From: Sil de Hoop <34340385+sildehoop@users.noreply.github.com> Date: Thu, 27 Jan 2022 12:24:19 +0100 Subject: [PATCH 029/248] rename files --- .../{card_cover_with_buttons.yaml => card_cover_buttons.yaml} | 0 ..._media_player_with_control.yaml => card_media_player_art.yaml} | 0 ..._player_with_controls.yaml => card_media_player_controls.yaml} | 0 .../cards/{card_cover_with_buttons.md => card_cover_buttons.md} | 0 ...card_media_player_with_control.md => card_media_player_art.md} | 0 ...edia_player_with_controls.md => card_media_player_controls.md} | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/2-line_cards/{card_cover_with_buttons.yaml => card_cover_buttons.yaml} (100%) rename custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/{card_media_player_with_control.yaml => card_media_player_art.yaml} (100%) rename custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/{card_media_player_with_controls.yaml => card_media_player_controls.yaml} (100%) rename docs/usage/cards/{card_cover_with_buttons.md => card_cover_buttons.md} (100%) rename docs/usage/cards/{card_media_player_with_control.md => card_media_player_art.md} (100%) rename docs/usage/cards/{card_media_player_with_controls.md => card_media_player_controls.md} (100%) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/2-line_cards/card_cover_with_buttons.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/2-line_cards/card_cover_buttons.yaml similarity index 100% rename from custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/2-line_cards/card_cover_with_buttons.yaml rename to custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/2-line_cards/card_cover_buttons.yaml diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_with_control.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_art.yaml similarity index 100% rename from custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_with_control.yaml rename to custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_art.yaml diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_with_controls.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_controls.yaml similarity index 100% rename from custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_with_controls.yaml rename to custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_controls.yaml diff --git a/docs/usage/cards/card_cover_with_buttons.md b/docs/usage/cards/card_cover_buttons.md similarity index 100% rename from docs/usage/cards/card_cover_with_buttons.md rename to docs/usage/cards/card_cover_buttons.md diff --git a/docs/usage/cards/card_media_player_with_control.md b/docs/usage/cards/card_media_player_art.md similarity index 100% rename from docs/usage/cards/card_media_player_with_control.md rename to docs/usage/cards/card_media_player_art.md diff --git a/docs/usage/cards/card_media_player_with_controls.md b/docs/usage/cards/card_media_player_controls.md similarity index 100% rename from docs/usage/cards/card_media_player_with_controls.md rename to docs/usage/cards/card_media_player_controls.md From 30d2d76bf7efb5e42357687c2fdeecd7ed1daed7 Mon Sep 17 00:00:00 2001 From: Jon Kristian Nilsen Date: Thu, 27 Jan 2022 16:20:17 +0100 Subject: [PATCH 030/248] Adds norwegian translation. --- .../ui_lovelace_minimalist/configure.py | 1 + .../ui_lovelace_minimalist/const.py | 1 + .../lovelace/translations/NO.yaml | 30 +++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/translations/NO.yaml diff --git a/custom_components/ui_lovelace_minimalist/configure.py b/custom_components/ui_lovelace_minimalist/configure.py index 466cc3d5e..e6cd16ec8 100644 --- a/custom_components/ui_lovelace_minimalist/configure.py +++ b/custom_components/ui_lovelace_minimalist/configure.py @@ -25,6 +25,7 @@ "Portuguese": "PT", "Spanish": "ES", "Swedish": "SE", + "Norwegian": "NO", } diff --git a/custom_components/ui_lovelace_minimalist/const.py b/custom_components/ui_lovelace_minimalist/const.py index 5a96a3753..e48b6783e 100644 --- a/custom_components/ui_lovelace_minimalist/const.py +++ b/custom_components/ui_lovelace_minimalist/const.py @@ -21,6 +21,7 @@ "Portuguese", "Spanish", "Swedish", + "Norwegian", ] CONF_SIDEPANEL_ENABLED = "sidepanel_enabled" CONF_SIDEPANEL_TITLE = "sidepanel_title" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/NO.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/NO.yaml new file mode 100644 index 000000000..751f1527a --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/NO.yaml @@ -0,0 +1,30 @@ +--- +ulm_language_variables: + variables: + ulm_on: "På" + ulm_off: "Av" + ulm_open: "Åpent" + ulm_closed: "Stengt" + ulm_unavailable: "Utilgjengelig" + ulm_standby: "Klar" + ulm_idle: "Hviler" + ulm_currency: "NOK" + ulm_heat: "Varme" + ulm_cool: "Kjøling" + ulm_person_state_home: "Hjemme" + ulm_person_state_away: "Borte" + ulm_popups_back: "Tilbake" + ulm_popups_toggle: "Veksle" + ulm_popups_statistics: "Statistikk" + ulm_popups_history: "Historikk" + ulm_popups_brightness: "Lysstyrke" + ulm_popups_color_temp: "Fargetemperatur" + ulm_popups_color: "Farge" + ulm_unknown: "Ukjent" + ulm_alarm_armed_home: "Aktivert hjemme" + ulm_alarm_armed_away: "Aktivert borte" + ulm_alarm_disarmed: "Deaktivert" + ulm_alarm_arming: "Aktivert" + ulm_alarm_triggered: "UTLØST" + ulm_playing: "Spiller" + ulm_paused: "Pauset" From c1b9a9dc552bb397ab029302df8bcb2576a6cbd4 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Thu, 27 Jan 2022 20:35:34 +0000 Subject: [PATCH 031/248] Add changes for automatically custom_cards docs --- .../custom_cards/custom_card_input_number.md | 160 +++++------------- 1 file changed, 43 insertions(+), 117 deletions(-) diff --git a/docs/usage/custom_cards/custom_card_input_number.md b/docs/usage/custom_cards/custom_card_input_number.md index 3827c7212..2630065b4 100644 --- a/docs/usage/custom_cards/custom_card_input_number.md +++ b/docs/usage/custom_cards/custom_card_input_number.md @@ -14,10 +14,42 @@ The `card_input_number` you can control a input_number entity ## Credits Author: sildehoop - 2021 -Version: 1.0.0 +Version: 1.0.1 + +

Braking changes

+ +
+ 1.0.1 + +```yaml +#OLD +- type: "custom:button-card" + template: + - card_input_number + variables: + ulm_card_input_number_name: "YOUR_NAME" + ulm_card_input_number_entity: "input_number.YOUR_INPUT_NUMBER" +``` + +```yaml +#NEW +- type: "custom:button-card" + template: card_input_number + entity: input_number.YOUR_INPUT_NUMBER_ENTITY + variables: + ulm_card_input_number_name: "YOUR_CARD_NAME" +``` + +
## Changelog +
+1.0.1 +Added option to leave ulm_card_input_number_name empty (takes the friendly_name of the entity) +Removed background from middle text (because it is not a button). +Removed variables ulm_card_input_number_entity. +
1.0.0 Initial release @@ -27,11 +59,10 @@ Initial release ```yaml - type: "custom:button-card" - template: - - card_input_number + template: card_input_number + entity: input_number.YOUR_INPUT_NUMBER variables: ulm_card_input_number_name: "YOUR_NAME" - ulm_card_input_number_entity: "input_number.YOUR_INPUT_NUMBER" ``` ## Requirements @@ -48,122 +79,17 @@ n/a Explanation - - - - +ulm_card_input_number_name +Bathroom Ceiling Fan Threshold +false +The name to display on your card ## Template code -```yaml ---- -card_input_number: - variables: - ulm_card_input_number_name: "n/a" - triggers_update: "all" - styles: - grid: - - grid-template-areas: "'item1' 'item2'" - - grid-template-columns: "1fr" - - grid-template-rows: "min-content min-content" - - row-gap: "12px" - card: - - border-radius: "var(--border-radius)" - - box-shadow: "var(--box-shadow)" - - padding: "12px" - custom_fields: - item1: - card: - type: "custom:button-card" - template: - - "icon_info" - - "ulm_language_variables" - - "input_number" - tap_action: - action: "more-info" - entity: "[[[ return variables.ulm_card_input_number_entity ]]]" - name: "[[[ return variables.ulm_card_input_number_name ]]]" - item2: - card: - type: "custom:button-card" - template: "list_3_items" - custom_fields: - item1: - card: - type: "custom:button-card" - template: "widget_icon" - tap_action: - action: "call-service" - service: "input_number.decrement" - service_data: - entity_id: "[[[ return variables.ulm_card_input_number_entity ]]]" - icon: "mdi:arrow-down" - item2: - card: - type: "custom:button-card" - template: "widget_text" - entity: "[[[ return variables.ulm_card_input_number_entity ]]]" - tap_action: - action: "call-service" - service: "cover.stop_cover" - service_data: - entity_id: "[[[ return variables.ulm_card_input_number_entity ]]]" - item3: - card: - type: "custom:button-card" - template: "widget_icon" - tap_action: - action: "call-service" - service: "input_number.increment" - service_data: - entity_id: "[[[ return variables.ulm_card_input_number_entity ]]]" - icon: "mdi:arrow-up" - -input_number: - tap_action: - action: "more-info" - show_last_changed: true - -widget_text: - tap_action: - action: "toggle" - show_icon: false - show_label: true - show_name: false - label: >- - [[[ - var unit = entity.attributes.unit_of_measurement != null ? ' ' + entity.attributes.unit_of_measurement : '' - if (entity.state == 'on') { - return variables.ulm_on; - } else if (entity.state == 'off') { - return variables.ulm_off; - } else if (entity.state == 'unavailable') { - return variables.ulm_unavailable; - } else if (entity.state == 'idle') { - return variables.ulm_idle; - } else if (entity.state == 'open') { - return variables.ulm_open; - } else if (entity.state == 'closed') { - return variables.ulm_closed; - } else { - return entity.state + unit; - } - ]]] - styles: - grid: - - grid-template-areas: "'l'" - card: - - box-shadow: "none" - - padding: "0px" - - background-color: "rgba(var(--color-theme),0.05)" - - border-radius: "14px" - - place-self: "center" - - height: "42px" - state: - - color: "rgba(var(--color-theme),0.9)" - size: "20px" - color: "var(--google-grey)" +??? note "Template Code" -``` + ```yaml title="custom_card_input_number.yaml" + --8<-- "custom_cards/custom_card_input_number/card_input_number.yaml" + ``` From c4d68c504b19ca5bbff5b3a5dd589f0e43763501 Mon Sep 17 00:00:00 2001 From: Jon Kristian Nilsen Date: Fri, 28 Jan 2022 11:14:31 +0100 Subject: [PATCH 032/248] New norwegian strings from PR #338 --- .../ui_lovelace_minimalist/lovelace/translations/NO.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/NO.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/NO.yaml index 751f1527a..7e77f061e 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/NO.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/NO.yaml @@ -28,3 +28,7 @@ ulm_language_variables: ulm_alarm_triggered: "UTLØST" ulm_playing: "Spiller" ulm_paused: "Pauset" + ulm_morning: "God morgen" + ulm_afternoon: "God ettermiddag" + ulm_evening: "God kveld" + ulm_hello: "Hei" \ No newline at end of file From 1be07780b9f20532af0530be0dc8d6a122eb434a Mon Sep 17 00:00:00 2001 From: Jon Kristian Nilsen Date: Fri, 28 Jan 2022 11:16:14 +0100 Subject: [PATCH 033/248] Validation fix. --- .../ui_lovelace_minimalist/lovelace/translations/NO.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/NO.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/NO.yaml index 7e77f061e..44715838d 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/NO.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/NO.yaml @@ -31,4 +31,5 @@ ulm_language_variables: ulm_morning: "God morgen" ulm_afternoon: "God ettermiddag" ulm_evening: "God kveld" - ulm_hello: "Hei" \ No newline at end of file + ulm_hello: "Hei" + \ No newline at end of file From 0d5f37924de7ed836ec028f187296cc70f84a10d Mon Sep 17 00:00:00 2001 From: Sil de Hoop <34340385+sildehoop@users.noreply.github.com> Date: Fri, 28 Jan 2022 12:58:05 +0100 Subject: [PATCH 034/248] Revert "Version: 1.0.1" This reverts commit 174b4e65129d308fc9bbf8580e7c38ad973d3fd8. --- .../custom_card_input_number/README.md | 160 +++++++++++++----- .../card_input_number.yaml | 16 +- 2 files changed, 124 insertions(+), 52 deletions(-) diff --git a/custom_cards/custom_card_input_number/README.md b/custom_cards/custom_card_input_number/README.md index bfeb2b275..3a01de448 100644 --- a/custom_cards/custom_card_input_number/README.md +++ b/custom_cards/custom_card_input_number/README.md @@ -14,42 +14,10 @@ The `card_input_number` you can control a input_number entity ## Credits Author: sildehoop - 2021 -Version: 1.0.1 - -

Braking changes

- -
- 1.0.1 - -```yaml -#OLD -- type: "custom:button-card" - template: - - card_input_number - variables: - ulm_card_input_number_name: "YOUR_NAME" - ulm_card_input_number_entity: "input_number.YOUR_INPUT_NUMBER" -``` - -```yaml -#NEW -- type: "custom:button-card" - template: card_input_number - entity: input_number.YOUR_INPUT_NUMBER_ENTITY - variables: - ulm_card_input_number_name: "YOUR_CARD_NAME" -``` - -
+Version: 1.0.0 ## Changelog -
-1.0.1 -Added option to leave ulm_card_input_number_name empty (takes the friendly_name of the entity) -Removed background from middle text (because it is not a button). -Removed variables ulm_card_input_number_entity. -
1.0.0 Initial release @@ -59,10 +27,11 @@ Initial release ```yaml - type: "custom:button-card" - template: card_input_number - entity: input_number.YOUR_INPUT_NUMBER + template: + - card_input_number variables: ulm_card_input_number_name: "YOUR_NAME" + ulm_card_input_number_entity: "input_number.YOUR_INPUT_NUMBER" ``` ## Requirements @@ -79,17 +48,122 @@ n/a Explanation -ulm_card_input_number_name -Bathroom Ceiling Fan Threshold -false -The name to display on your card + + + + ## Template code -??? note "Template Code" +```yaml +--- +card_input_number: + variables: + ulm_card_input_number_name: "n/a" + triggers_update: "all" + styles: + grid: + - grid-template-areas: "'item1' 'item2'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" + - row-gap: "12px" + card: + - border-radius: "var(--border-radius)" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + custom_fields: + item1: + card: + type: "custom:button-card" + template: + - "icon_info" + - "ulm_language_variables" + - "input_number" + tap_action: + action: "more-info" + entity: "[[[ return variables.ulm_card_input_number_entity ]]]" + name: "[[[ return variables.ulm_card_input_number_name ]]]" + item2: + card: + type: "custom:button-card" + template: "list_3_items" + custom_fields: + item1: + card: + type: "custom:button-card" + template: "widget_icon" + tap_action: + action: "call-service" + service: "input_number.decrement" + service_data: + entity_id: "[[[ return variables.ulm_card_input_number_entity ]]]" + icon: "mdi:arrow-down" + item2: + card: + type: "custom:button-card" + template: "widget_text" + entity: "[[[ return variables.ulm_card_input_number_entity ]]]" + tap_action: + action: "call-service" + service: "cover.stop_cover" + service_data: + entity_id: "[[[ return variables.ulm_card_input_number_entity ]]]" + item3: + card: + type: "custom:button-card" + template: "widget_icon" + tap_action: + action: "call-service" + service: "input_number.increment" + service_data: + entity_id: "[[[ return variables.ulm_card_input_number_entity ]]]" + icon: "mdi:arrow-up" + +input_number: + tap_action: + action: "more-info" + show_last_changed: true + +widget_text: + tap_action: + action: "toggle" + show_icon: false + show_label: true + show_name: false + label: >- + [[[ + var unit = entity.attributes.unit_of_measurement != null ? ' ' + entity.attributes.unit_of_measurement : '' + if (entity.state == 'on') { + return variables.ulm_on; + } else if (entity.state == 'off') { + return variables.ulm_off; + } else if (entity.state == 'unavailable') { + return variables.ulm_unavailable; + } else if (entity.state == 'idle') { + return variables.ulm_idle; + } else if (entity.state == 'open') { + return variables.ulm_open; + } else if (entity.state == 'closed') { + return variables.ulm_closed; + } else { + return entity.state + unit; + } + ]]] + styles: + grid: + - grid-template-areas: "'l'" + card: + - box-shadow: "none" + - padding: "0px" + - background-color: "rgba(var(--color-theme),0.05)" + - border-radius: "14px" + - place-self: "center" + - height: "42px" + state: + - color: "rgba(var(--color-theme),0.9)" + size: "20px" + color: "var(--google-grey)" - ```yaml title="custom_card_input_number.yaml" - --8<-- "custom_cards/custom_card_input_number/card_input_number.yaml" - ``` +``` diff --git a/custom_cards/custom_card_input_number/card_input_number.yaml b/custom_cards/custom_card_input_number/card_input_number.yaml index 916c9e293..ac5320130 100644 --- a/custom_cards/custom_card_input_number/card_input_number.yaml +++ b/custom_cards/custom_card_input_number/card_input_number.yaml @@ -1,11 +1,8 @@ --- card_input_number: variables: - ulm_card_input_number_name: "[[[ return entity.attributes.friendly_name ]]]" + ulm_card_input_number_name: "n/a" triggers_update: "all" - show_icon: false - show_label: false - show_name: false styles: grid: - grid-template-areas: "'item1' 'item2'" @@ -26,7 +23,7 @@ card_input_number: - "input_number" tap_action: action: "more-info" - entity: "[[[ return entity.entity_id ]]]" + entity: "[[[ return variables.ulm_card_input_number_entity ]]]" name: "[[[ return variables.ulm_card_input_number_name ]]]" item2: card: @@ -41,18 +38,18 @@ card_input_number: action: "call-service" service: "input_number.decrement" service_data: - entity_id: "[[[ return entity.entity_id ]]]" + entity_id: "[[[ return variables.ulm_card_input_number_entity ]]]" icon: "mdi:arrow-down" item2: card: type: "custom:button-card" template: "widget_text" - entity: "[[[ return entity.entity_id ]]]" + entity: "[[[ return variables.ulm_card_input_number_entity ]]]" tap_action: action: "call-service" service: "cover.stop_cover" service_data: - entity_id: "[[[ return entity.entity_id ]]]" + entity_id: "[[[ return variables.ulm_card_input_number_entity ]]]" item3: card: type: "custom:button-card" @@ -61,7 +58,7 @@ card_input_number: action: "call-service" service: "input_number.increment" service_data: - entity_id: "[[[ return entity.entity_id ]]]" + entity_id: "[[[ return variables.ulm_card_input_number_entity ]]]" icon: "mdi:arrow-up" input_number: @@ -100,6 +97,7 @@ widget_text: card: - box-shadow: "none" - padding: "0px" + - background-color: "rgba(var(--color-theme),0.05)" - border-radius: "14px" - place-self: "center" - height: "42px" From 7d10a4f2297753a07651689f7a7f34de0d17be03 Mon Sep 17 00:00:00 2001 From: Stokkie90 Date: Fri, 28 Jan 2022 14:20:27 +0100 Subject: [PATCH 035/248] [LAYOUT-DOCS] Added some examples how to deal with certain layouts --- docs/assets/img/layout/chip_center.png | Bin 0 -> 8243 bytes docs/assets/img/layout/chip_left_right.png | Bin 0 -> 9116 bytes docs/assets/img/layout/chip_right.png | Bin 0 -> 8618 bytes docs/usage/.pages | 7 +++ docs/usage/layout/index.md | 65 +++++++++++++++++++++ 5 files changed, 72 insertions(+) create mode 100644 docs/assets/img/layout/chip_center.png create mode 100644 docs/assets/img/layout/chip_left_right.png create mode 100644 docs/assets/img/layout/chip_right.png create mode 100644 docs/usage/.pages create mode 100644 docs/usage/layout/index.md diff --git a/docs/assets/img/layout/chip_center.png b/docs/assets/img/layout/chip_center.png new file mode 100644 index 0000000000000000000000000000000000000000..3ea424dd22f16a86c502671d89d169585c44a1b2 GIT binary patch literal 8243 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 literal 0 HcmV?d00001 diff --git a/docs/assets/img/layout/chip_left_right.png b/docs/assets/img/layout/chip_left_right.png new file mode 100644 index 0000000000000000000000000000000000000000..67d99333ac1e404aaf6642a9267bbcc6a5f74953 GIT binary patch literal 9116 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 a2jmdURq)3wz&8^R2t`>nnUD8PgZ~%IKRLnx literal 0 HcmV?d00001 diff --git a/docs/assets/img/layout/chip_right.png b/docs/assets/img/layout/chip_right.png new file mode 100644 index 0000000000000000000000000000000000000000..fd74070cdfe456b4e5130dbedda91d06d92a0182 GIT binary patch literal 8618 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 Date: Fri, 28 Jan 2022 14:23:09 +0100 Subject: [PATCH 036/248] [LAYOUT-DOCS] Fixed/add markdownlint disable on some warnings can't seem to fix --- docs/usage/.pages | 2 +- docs/usage/layout/index.md | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/usage/.pages b/docs/usage/.pages index 86da97218..420c8cb22 100644 --- a/docs/usage/.pages +++ b/docs/usage/.pages @@ -4,4 +4,4 @@ arrange: - chips - popups - custom_cards - - ... \ No newline at end of file + - ... diff --git a/docs/usage/layout/index.md b/docs/usage/layout/index.md index e96e1a491..dcbabda0d 100644 --- a/docs/usage/layout/index.md +++ b/docs/usage/layout/index.md @@ -8,6 +8,7 @@ hide: If you want to alight cards to the center, right. Or only 1 card on the right it can be done using a `blank-card`. + ??? note "Center" ![chip_center](../../assets/img/layout/chip_center.png){ align=right width=40% } @@ -62,4 +63,4 @@ If you want to alight cards to the center, right. Or only 1 card on the right it template: chip_icon_label label: Your right card here ``` - + From 312181a1b59c7828ccbd00bbec245af1aebe0207 Mon Sep 17 00:00:00 2001 From: schumijo Date: Fri, 28 Jan 2022 14:38:42 +0100 Subject: [PATCH 037/248] Add horizontal + current temp --- .../card_templates/cards/card_thermostat.yaml | 82 ++++++++++++++----- 1 file changed, 62 insertions(+), 20 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml index c954b2b01..a77514ed4 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml @@ -10,6 +10,8 @@ card_thermostat: ulm_card_thermostat_enable_controls: false ulm_card_thermostat_enable_hvac_modes: false ulm_card_thermostat_enable_background_color: false + ulm_card_thermostat_enable_display_temperature: false + ulm_card_thermostat_enable_horizontal: false # ulm_card_thermostat_enable_popup: false show_icon: false show_name: false @@ -63,20 +65,37 @@ card_thermostat: - grid-template-areas: > [[[ var areas = []; - areas.push("item1"); + if (variables.ulm_card_thermostat_enable_horizontal) { + return "\"item1 item2\""; + } + if (variables.ulm_card_thermostat_enable_display_temperature) { + areas.push("item1 item4"); + } else { + areas.push("item1 item1"); + } if ( !(variables.ulm_card_thermostat_enable_collapse && entity.state == "off") && variables.ulm_card_thermostat_enable_controls) { - areas.push("item2"); + areas.push("item2 item2"); } if ( !(variables.ulm_card_thermostat_enable_collapse && entity.state == "off") && variables.ulm_card_thermostat_enable_hvac_modes) { - areas.push("item3"); + areas.push("item3 item3"); } return "\"" + areas.join("\" \"") + "\""; ]]] - - grid-template-columns: "1fr" + - grid-template-columns: > + [[[ + if (variables.ulm_card_thermostat_enable_horizontal) { + return "1fr 1fr"; + } else { + return "2fr 1fr"; + } + ]]] - grid-template-rows: > [[[ var rows = []; rows.push("min-content"); + if (variables.ulm_card_thermostat_enable_horizontal) { + return "min-content"; + } if ( !(variables.ulm_card_thermostat_enable_collapse && entity.state == "off") && variables.ulm_card_thermostat_enable_controls) { rows.push("min-content"); } @@ -103,11 +122,26 @@ card_thermostat: item3: - display: > [[[ + if (variables.ulm_card_thermostat_enable_horizontal) { + return "none"; + } if ( !(variables.ulm_card_thermostat_enable_collapse && entity.state == "off") && variables.ulm_card_thermostat_enable_hvac_modes) { - return "block"; - } else { - return "none"; - } + return "block"; + } else { + return "none"; + } + ]]] + item4: + - display: > + [[[ + if (variables.ulm_card_thermostat_enable_horizontal) { + return "none"; + } + if (variables.ulm_card_thermostat_enable_display_temperature) { + return "block"; + } else { + return "none"; + } ]]] custom_fields: item1: @@ -218,22 +252,11 @@ card_thermostat: var mode = variables.ulm_unavailable; } - if(entity.attributes.temperature){ + if(entity.attributes.temperature && !variables.ulm_card_thermostat_enable_display_temperature){ return (entity.attributes.current_temperature ) + '°' + ' • ' + label + ' (' + mode + ')'; } return label; ]]] - # state: - # - operator: "template" - # value: > - # [[[ - # return (entity.attributes.hvac_action == 'cooling' || entity.attributes.hvac_action == 'heating') && variables.ulm_card_thermostat_enable_background_color && hass.themes.darkMode - # ]]] - # styles: - # name: - # - color: "var(--card-background-color)" - # label: - # - color: "var(--card-background-color)" item2: card: type: "custom:button-card" @@ -596,3 +619,22 @@ card_thermostat: styles: card: - background-color: "rgba(var(--color-theme),0.15)" + item4: + card: + type: "custom:button-card" + show_icon: false + show_name: false + show_label: true + entity: "[[[ return entity.entity_id ]]]" + label: |- + [[[ + var temperature = entity.attributes.current_temperature; + if (temperature == null) { + var temperature = '-'; + } + return temperature + '°C' + ]]] + styles: + card: + - background: "none" + - box-shadow: "none" From 241d3ee2f373d13d1cbdca960644752d9dd274d3 Mon Sep 17 00:00:00 2001 From: Bavo Mees Date: Fri, 28 Jan 2022 16:40:32 +0100 Subject: [PATCH 038/248] Fix trailing whitespaces --- .../card_templates/cards/card_room.yaml | 10 ++--- docs/usage/cards/card_room.md | 37 +++++++++++++------ 2 files changed, 30 insertions(+), 17 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_room.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_room.yaml index d328091a1..c8592f4ce 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_room.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_room.yaml @@ -92,7 +92,7 @@ card_room: - font-size: "12px" - filter: "opacity(40%)" - margin-left: "12px" - - margin-top: "-10%" + - margin-top: "-10%" state: - justify-self: "start" - font-weight: "bold" @@ -233,9 +233,9 @@ card_room: widget_icon_room: variables: tap_action: - action: toggle + action: "toggle" hold_action: - action: none + action: "none" tap_action: action: > [[[ if (variables?.tap_action?.action) return variables.tap_action.action; else return 'none'; ]]] @@ -245,7 +245,7 @@ widget_icon_room: service: "[[[ return variables.tap_action.service; ]]]" service_data: "[[[ return variables.tap_action.service_data; ]]]" hold_action: - action: > + action: > [[[ if (variables?.hold_action?.action) return variables.hold_action.action; else return 'none'; ]]] entity: "[[[ return variables.hold_action.entity; ]]]" navigation_path: "[[[ return variables.hold_action.navigation_path; ]]]" @@ -270,4 +270,4 @@ widget_icon_room: - border-radius: "50%" - background-color: "rgba(var(--color-theme),0.05)" size: "15px" - color: "var(--google-grey)" \ No newline at end of file + color: "var(--google-grey)" diff --git a/docs/usage/cards/card_room.md b/docs/usage/cards/card_room.md index f5b438d85..272774a5b 100644 --- a/docs/usage/cards/card_room.md +++ b/docs/usage/cards/card_room.md @@ -9,15 +9,21 @@ hide: ![Image title](../../assets/img/ulm_cards/card_room.png){ width="500" } -This is the `room-card`, used to show the state of single room in a quick glance. +This is the `room-card`, used to show the state of single room in a quick glance. The card has support for 4 subicons at the right side of the card. These can be configured using custom colors and tap actions. ## Variables | Variable | Default | Required | Notes | Requirement | |----------------------------------------|-----------------|------------------|----------------|-------------| -| label_use_temperature | `true` | :material-close: | Define whether the label should show the current room temperature | The temperature should be provide by either a `temperature` or `current_temperature` attribute or by the entity state | -| label_use_brightness | `false` | :material-close: | Define whether the label should show the current room brightness of the lights| requires `label_use_temperature` to be false | +| label_use_temperature | `true` | :material-close: +| Define whether the label should show the current room temperature +| The temperature should be provide by either a `temperature` or `current_temperature` attribute or by the entity state +| +| label_use_brightness | `false` | :material-close: +| Define whether the label should show the current room brightness of the lights +| requires `label_use_temperature` to be false +| | entity_1 | | :material-close: | a `room_entity` object (see below) | | | entity_2 | | :material-close: | a `room_entity` object (see below) | | | entity_3 | | :material-close: | a `room_entity` object (see below) | | @@ -32,16 +38,23 @@ The card has support for 4 subicons at the right side of the card. These can be | tap_action | | :material-close: | tap_action for the icon (see button card documentation for options) | | | hold_action | | :material-close: | tap_action for the icon (see button card documentation for options) | | -# Default card options -All the options from the button card are still available for the large room card. +## Default card options + +All the options from the button card are still available for the large room card. If you want to tweak this card a little bit more, below are some examples. The full list can be found here: [link](https://github.com/custom-cards/button-card#main-options) | Options | Default | Required | Notes | Requirement | |----------------------------------------|-----------------|------------------|----------------|-------------| | entity | | :material-close: | The entity_id for the large card | | | icon | | :material-close: | Icon to display. Defaults to the entity icon | | -| tap_action | | :material-close: | Define the type of action on click, if undefined, toggle will be used.| see [Action](https://github.com/custom-cards/button-card#Action)| -| hold_action | | :material-close: | Define the type of action on hold, if undefined, nothing happens | see [Action](https://github.com/custom-cards/button-card#Action)| +| tap_action | | :material-close: +| Define the type of action on click, if undefined, toggle will be used. +| see [Action](https://github.com/custom-cards/button-card#Action) +| +| hold_action | | :material-close: +| Define the type of action on hold, if undefined, nothing happens +| see [Action](https://github.com/custom-cards/button-card#Action) +| | label | | :material-close: | Change the label text | | | title | | :material-close: | Change the title text | | @@ -49,7 +62,7 @@ If you want to tweak this card a little bit more, below are some examples. The f ```yaml - type: 'custom:button-card' - template: + template: - card_room - red name: Bathroom @@ -65,26 +78,26 @@ If you want to tweak this card a little bit more, below are some examples. The f entity_id: light.bathroom templates: - yellow_on - tap_action: + tap_action: action: toggle entity_2: entity_id: binary_sensor.badkamer_motion_sensor templates: - blue_on - tap_action: + tap_action: action: none entity_3: entity_id: input_boolean.badkamer_motionsensor_enabled templates: - green_on - red_off - tap_action: + tap_action: action: toggle entity_4: entity_id: input_boolean.bath_mode templates: - pink_on - tap_action: + tap_action: action: toggle ``` From 5d682d98185fa0b19b16ca96c7cccf394a5a2304 Mon Sep 17 00:00:00 2001 From: Bavo Mees Date: Fri, 28 Jan 2022 17:05:01 +0100 Subject: [PATCH 039/248] added basic support for on/off translations to the room card --- .../ulm_templates/card_templates/cards/card_room.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_room.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_room.yaml index c8592f4ce..a31c47024 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_room.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_room.yaml @@ -30,6 +30,12 @@ card_room: } else { return variables.ulm_unavailable; } + } else if (entity.state == "on") { + return variables.ulm_on + } else if (entity.state == "off") { + return variables.ulm_off + } else { + return entity.state } ]]] state: From 9b258b4097f01cd6f3a83fe2c7a77f605a771586 Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:02:58 +0100 Subject: [PATCH 040/248] Update card_battery.md Updating yaml title --- docs/usage/cards/card_battery.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_battery.md b/docs/usage/cards/card_battery.md index 12fe95841..5e906e027 100644 --- a/docs/usage/cards/card_battery.md +++ b/docs/usage/cards/card_battery.md @@ -40,6 +40,6 @@ The `battery-card` is a slightly enhanced `generic-card`, that can indicate whet ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_battery.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_battery.yaml" ``` From bd102192bc41b59536d3a3112611a7d5c308193f Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:07:17 +0100 Subject: [PATCH 041/248] Update card_binary_sensor.md --- docs/usage/cards/card_binary_sensor.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_binary_sensor.md b/docs/usage/cards/card_binary_sensor.md index 74c829925..13a48583c 100644 --- a/docs/usage/cards/card_binary_sensor.md +++ b/docs/usage/cards/card_binary_sensor.md @@ -31,6 +31,6 @@ The `binary-sensor-card` is to show the state (on/off, open/close, etc.) of a bi ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_binary_sensor.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_binary_sensor.yaml" ``` From 14ed41067b2020b7618179f9fb463e8ce3c31900 Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:07:57 +0100 Subject: [PATCH 042/248] Update card_binary_sensor_alert.md --- docs/usage/cards/card_binary_sensor_alert.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_binary_sensor_alert.md b/docs/usage/cards/card_binary_sensor_alert.md index 14b9408b4..09d0145d5 100644 --- a/docs/usage/cards/card_binary_sensor_alert.md +++ b/docs/usage/cards/card_binary_sensor_alert.md @@ -31,6 +31,6 @@ The `binary-sensor-card` is to show the state (on/off, open/close, etc.) of a bi ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_binary_sensor_alert.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_binary_sensor_alert.yaml" ``` From 63c01db329596a9d399c5326f0ff73c4112580ec Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:08:49 +0100 Subject: [PATCH 043/248] Update card_cover_with_buttons.md --- docs/usage/cards/card_cover_with_buttons.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_cover_with_buttons.md b/docs/usage/cards/card_cover_with_buttons.md index 21ab16f16..554e41429 100644 --- a/docs/usage/cards/card_cover_with_buttons.md +++ b/docs/usage/cards/card_cover_with_buttons.md @@ -31,6 +31,6 @@ With the `cover-card` you have the state of your cover and on the second line UP ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_cover_with_buttons.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/2-line_cards/card_cover_with_buttons.yaml" ``` From 2d9b95ebd15a7d16258079feb267c60f490b1cc6 Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:09:15 +0100 Subject: [PATCH 044/248] Update card_generic.md --- docs/usage/cards/card_generic.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_generic.md b/docs/usage/cards/card_generic.md index b7e3715dc..4cafd90d4 100644 --- a/docs/usage/cards/card_generic.md +++ b/docs/usage/cards/card_generic.md @@ -27,6 +27,6 @@ This is the `generic-card` to display values from a sensor, eg. to show humidity ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_generic.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_generic.yaml" ``` From 1043d2f5b59e7e53c65a55cdafea668e3c992f4d Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:09:46 +0100 Subject: [PATCH 045/248] Update card_generic_swap.md --- docs/usage/cards/card_generic_swap.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_generic_swap.md b/docs/usage/cards/card_generic_swap.md index 08a47b9ed..e2ba5f9a5 100644 --- a/docs/usage/cards/card_generic_swap.md +++ b/docs/usage/cards/card_generic_swap.md @@ -27,6 +27,6 @@ This is a `generic-card` with swapped label and name. ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_generic_swap.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_generic_swap.yaml" ``` From a0e0e96a685976ee1c0db5ac1ff620cf822ed578 Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:10:07 +0100 Subject: [PATCH 046/248] Update card_graph.md --- docs/usage/cards/card_graph.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_graph.md b/docs/usage/cards/card_graph.md index 55ca9f586..dc5971ced 100644 --- a/docs/usage/cards/card_graph.md +++ b/docs/usage/cards/card_graph.md @@ -40,6 +40,6 @@ The `card_graph` shows an entity with the actual state and a *min-graph-card* in ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_graph.md" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/2-line_cards/card_graph.yaml" ``` From 16405b4acf1a4da30bbedc1dd7abffc15cdb7265 Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:11:03 +0100 Subject: [PATCH 047/248] Update card_input_boolean.md --- docs/usage/cards/card_input_boolean.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_input_boolean.md b/docs/usage/cards/card_input_boolean.md index 2454f1a22..7ed6dd1ef 100644 --- a/docs/usage/cards/card_input_boolean.md +++ b/docs/usage/cards/card_input_boolean.md @@ -27,6 +27,6 @@ The `input-boolean-card` is to switch an `input_boolean` on or off. ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_input_boolean.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_input_boolean.yaml" ``` From 4247d225312c77ec1c3773cf6774a124f8fb2e8a Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:11:54 +0100 Subject: [PATCH 048/248] Update card_graph.md --- docs/usage/cards/card_graph.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_graph.md b/docs/usage/cards/card_graph.md index dc5971ced..68c001224 100644 --- a/docs/usage/cards/card_graph.md +++ b/docs/usage/cards/card_graph.md @@ -40,6 +40,6 @@ The `card_graph` shows an entity with the actual state and a *min-graph-card* in ??? note "Template Code" - ```yaml title="card_graph.md" + ```yaml title="card_graph.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/2-line_cards/card_graph.yaml" ``` From 57134bac69b93bc513e3f9475da5f06e98f0963a Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:12:38 +0100 Subject: [PATCH 049/248] Update card_media_player.md --- docs/usage/cards/card_media_player.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_media_player.md b/docs/usage/cards/card_media_player.md index bd8d82294..abddb9c87 100644 --- a/docs/usage/cards/card_media_player.md +++ b/docs/usage/cards/card_media_player.md @@ -29,6 +29,6 @@ The `card_media_player` shows you the *app*, the *title* and the *album name* pl ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_media_player.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player.yaml" ``` From c44e7c7ad55fb7fa71603de927508bb9f6bba71d Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:13:06 +0100 Subject: [PATCH 050/248] Update card_media_player_with_control.md --- docs/usage/cards/card_media_player_with_control.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_media_player_with_control.md b/docs/usage/cards/card_media_player_with_control.md index 1158ed221..268c0dfb4 100644 --- a/docs/usage/cards/card_media_player_with_control.md +++ b/docs/usage/cards/card_media_player_with_control.md @@ -29,6 +29,6 @@ This is the second `media-player-card`, in contrast to the first one above, it s ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_media_player_with_control.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_with_control.yaml" ``` From fd190da3adf8ab731d1ae4059ef572fd845fe4ee Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:14:11 +0100 Subject: [PATCH 051/248] Update card_media_player_with_controls.md --- docs/usage/cards/card_media_player_with_controls.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_media_player_with_controls.md b/docs/usage/cards/card_media_player_with_controls.md index 10cdde36e..4d1fae952 100644 --- a/docs/usage/cards/card_media_player_with_controls.md +++ b/docs/usage/cards/card_media_player_with_controls.md @@ -31,6 +31,6 @@ With the `card_media_player_with_controls` you have the state of your media_play ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_media_player_with_controls.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_with_controls.yaml" ``` From f1d3ece3cc9a2f1a5ce20b3d0ed776e583b94e24 Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:14:44 +0100 Subject: [PATCH 052/248] Update card_navigate.md --- docs/usage/cards/card_navigate.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_navigate.md b/docs/usage/cards/card_navigate.md index 7029424f9..e2aee9569 100644 --- a/docs/usage/cards/card_navigate.md +++ b/docs/usage/cards/card_navigate.md @@ -32,6 +32,6 @@ The `card_navigate` is for navigating inside your HA dashboard(s). ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_navigate.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_navigate.yaml" ``` From da4dcad5fbaaab8362921fa3e3935ae87e63d9ba Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:15:10 +0100 Subject: [PATCH 053/248] Update card_person.md --- docs/usage/cards/card_person.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_person.md b/docs/usage/cards/card_person.md index d63783326..998775afe 100644 --- a/docs/usage/cards/card_person.md +++ b/docs/usage/cards/card_person.md @@ -34,6 +34,6 @@ The `card_person` shows if a person is `home` or `not_home`. If you have setup o ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_person.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_person.yaml" ``` From d376d28109f41462e9ee5a59a1f75d49811ff28c Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:23:57 +0100 Subject: [PATCH 054/248] Update card_power_outlet.md --- docs/usage/cards/card_power_outlet.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_power_outlet.md b/docs/usage/cards/card_power_outlet.md index bfcfd8474..13edb08ad 100644 --- a/docs/usage/cards/card_power_outlet.md +++ b/docs/usage/cards/card_power_outlet.md @@ -32,6 +32,6 @@ This is the `power-outlet-card`. It shows you the state of a power outlet, and i ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_power_outlet.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_power_outlet.yaml" ``` From d3978ddd89abeb87a100a76984617b4bc4fff365 Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:24:33 +0100 Subject: [PATCH 055/248] Update card_weather.md --- docs/usage/cards/card_weather.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_weather.md b/docs/usage/cards/card_weather.md index 022b765b6..5bc9594a3 100644 --- a/docs/usage/cards/card_weather.md +++ b/docs/usage/cards/card_weather.md @@ -40,6 +40,6 @@ This is a card based on simple-weather-card to show your weather. ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_weather.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_weather.yaml" ``` From ef60b3506ac7657dab934aeff10e39187f16c01f Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:24:59 +0100 Subject: [PATCH 056/248] Update card_vertical_button.md --- docs/usage/cards/card_vertical_button.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_vertical_button.md b/docs/usage/cards/card_vertical_button.md index 730c819e6..8d29dc148 100644 --- a/docs/usage/cards/card_vertical_button.md +++ b/docs/usage/cards/card_vertical_button.md @@ -33,6 +33,6 @@ Card description should be here. ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_vertical_button.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_vertical_button.yaml" ``` From 8ceb94a15d601ebe4739cff622d2c74fb30b1c8b Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:25:21 +0100 Subject: [PATCH 057/248] Update card_title.md --- docs/usage/cards/card_title.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_title.md b/docs/usage/cards/card_title.md index 375a16e9c..258f016f6 100644 --- a/docs/usage/cards/card_title.md +++ b/docs/usage/cards/card_title.md @@ -29,6 +29,6 @@ Titles (and optionally subtitles) are used to seperate different areas in your d ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_title.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/title/card_title.yaml" ``` From 879d907904333abdb2ea0cb0793e7884201980c1 Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:25:56 +0100 Subject: [PATCH 058/248] Update card_thermostat.md --- docs/usage/cards/card_thermostat.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_thermostat.md b/docs/usage/cards/card_thermostat.md index 8dd494431..923bdcf85 100644 --- a/docs/usage/cards/card_thermostat.md +++ b/docs/usage/cards/card_thermostat.md @@ -31,6 +31,6 @@ The thermostat-card is used to switch a climate entity on/off and show the tempe ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_thermostat.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml" ``` From 0c8bdf81dc1592f9e72536619d2a7fb78a7e04cf Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:26:19 +0100 Subject: [PATCH 059/248] Update card_script.md --- docs/usage/cards/card_script.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_script.md b/docs/usage/cards/card_script.md index afb3cbe61..7cafca966 100644 --- a/docs/usage/cards/card_script.md +++ b/docs/usage/cards/card_script.md @@ -38,6 +38,6 @@ This card starts/runs a script. You can configure icon and text. ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_script.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_script.yaml" ``` From 855599227f1f85c9f178fa5cd4ba9212a8de8eea Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:31:53 +0100 Subject: [PATCH 060/248] Update chip_alarm.md --- docs/usage/chips/chip_alarm.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/chips/chip_alarm.md b/docs/usage/chips/chip_alarm.md index 4b86a7e09..1bf85c102 100644 --- a/docs/usage/chips/chip_alarm.md +++ b/docs/usage/chips/chip_alarm.md @@ -27,6 +27,6 @@ Alarm `chip` that displays alarm armed and disarmed state with colored icon. ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="chip_alarm.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_alarm.yaml" ``` From 78864d1dfeadf476128a017864b2738edfae6c3a Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:32:34 +0100 Subject: [PATCH 061/248] Update chip_temperature.md --- docs/usage/chips/chip_temperature.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/chips/chip_temperature.md b/docs/usage/chips/chip_temperature.md index 56bd019bc..44585c2e6 100644 --- a/docs/usage/chips/chip_temperature.md +++ b/docs/usage/chips/chip_temperature.md @@ -32,6 +32,6 @@ This `chip` is to display a weather icon together with the outside and inside te ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="chip_temperature.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_temperature.yaml" ``` From a6b88916cc87842c02caf70566d3b31d6d735d8f Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:33:31 +0100 Subject: [PATCH 062/248] Update chip_presence_detection.md --- docs/usage/chips/chip_presence_detection.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/chips/chip_presence_detection.md b/docs/usage/chips/chip_presence_detection.md index 5800242d9..61d964d30 100644 --- a/docs/usage/chips/chip_presence_detection.md +++ b/docs/usage/chips/chip_presence_detection.md @@ -30,6 +30,6 @@ This `chip` shows you the actual presence in your home. Shows residents and gues ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="chip_presence_detection.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_presence_detection.yaml" ``` From 6c60cf1df999b29f8a6cd9d42ba775b79ae0a40f Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:34:31 +0100 Subject: [PATCH 063/248] Update chip_power_consumption.md --- docs/usage/chips/chip_power_consumption.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/chips/chip_power_consumption.md b/docs/usage/chips/chip_power_consumption.md index 9e9695c10..aa18b3b93 100644 --- a/docs/usage/chips/chip_power_consumption.md +++ b/docs/usage/chips/chip_power_consumption.md @@ -30,6 +30,6 @@ This `chip` shows you the electric consumption from a sensor. Configurable to sh ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="chip_power_consumption.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_power_consumption.yaml" ``` From fe9a6486cebe08f7895dc9d06e94bcfda0327157 Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:36:35 +0100 Subject: [PATCH 064/248] Update chip_navigate.md --- docs/usage/chips/chip_navigate.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/chips/chip_navigate.md b/docs/usage/chips/chip_navigate.md index fa0e78e11..ef011846c 100644 --- a/docs/usage/chips/chip_navigate.md +++ b/docs/usage/chips/chip_navigate.md @@ -30,6 +30,6 @@ This `chip` is a menu button with an icon using [mdi](https://materialdesignicon ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="chip_navigate.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_navigate.yaml" ``` From f48d65590fc9c37e28399e59a065f18723a23179 Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:39:07 +0100 Subject: [PATCH 065/248] Update chip_mdi_icon_state.md --- docs/usage/chips/chip_mdi_icon_state.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/chips/chip_mdi_icon_state.md b/docs/usage/chips/chip_mdi_icon_state.md index 1331db779..8d230042c 100644 --- a/docs/usage/chips/chip_mdi_icon_state.md +++ b/docs/usage/chips/chip_mdi_icon_state.md @@ -30,6 +30,6 @@ This `chip` displays an icon using [mdi](https://materialdesignicons.com/) and ` ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="chip_mdi_icon_state.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_mdi_icon_state.yaml" ``` From e922d263b983c5de84b4fb7beda029c5c7ee80dd Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:39:49 +0100 Subject: [PATCH 066/248] Update chip_mdi_icon_only.md --- docs/usage/chips/chip_mdi_icon_only.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/chips/chip_mdi_icon_only.md b/docs/usage/chips/chip_mdi_icon_only.md index ee9ba25b6..cbd9d5c4c 100644 --- a/docs/usage/chips/chip_mdi_icon_only.md +++ b/docs/usage/chips/chip_mdi_icon_only.md @@ -30,6 +30,6 @@ This `chip` displays an icon using [mdi](https://materialdesignicons.com/). ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="chip_mdi_icon_only.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_mdi_icon_only.yaml" ``` From 4d2d4c3c539f711c692a2e21a3db32ebc7f6f751 Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:40:10 +0100 Subject: [PATCH 067/248] Update chip_icon_state.md --- docs/usage/chips/chip_icon_state.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/chips/chip_icon_state.md b/docs/usage/chips/chip_icon_state.md index 813b58154..d35ca813c 100644 --- a/docs/usage/chips/chip_icon_state.md +++ b/docs/usage/chips/chip_icon_state.md @@ -30,6 +30,6 @@ This `chip` displays an icon and a label, where the label can be any `state` of ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="chip_icon_state.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_icon_state.yaml" ``` From b2cb6094dc5bc86b1c421787f8badd4278442936 Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:41:13 +0100 Subject: [PATCH 068/248] Update chip_icon_only.md --- docs/usage/chips/chip_icon_only.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/chips/chip_icon_only.md b/docs/usage/chips/chip_icon_only.md index a8c08bb57..db7331528 100644 --- a/docs/usage/chips/chip_icon_only.md +++ b/docs/usage/chips/chip_icon_only.md @@ -28,6 +28,6 @@ This `chip` displays just an icon. ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="chip_icon_only.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_icon_only.yaml" ``` From d5b420ba812f08a2ab542ef381bc05a1be8fbde8 Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:41:36 +0100 Subject: [PATCH 069/248] Update chip_icon_label.md --- docs/usage/chips/chip_icon_label.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/chips/chip_icon_label.md b/docs/usage/chips/chip_icon_label.md index 692230d0c..6780679d2 100644 --- a/docs/usage/chips/chip_icon_label.md +++ b/docs/usage/chips/chip_icon_label.md @@ -29,6 +29,6 @@ This `chip` displays an icon using [mdi](https://materialdesignicons.com/) and a ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="chip_icon_label.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_icon_label.yaml" ``` From 490f98b00de6aeb4cfe1af2614fecc04bcd6be15 Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:41:59 +0100 Subject: [PATCH 070/248] Update chip_icon_double_state.md --- docs/usage/chips/chip_icon_double_state.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/chips/chip_icon_double_state.md b/docs/usage/chips/chip_icon_double_state.md index cf2366382..dd9e018f1 100644 --- a/docs/usage/chips/chip_icon_double_state.md +++ b/docs/usage/chips/chip_icon_double_state.md @@ -32,6 +32,6 @@ This `chip` displays can display an icon and value of two entities. ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="chip_icon_double_state.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_icon_double_state.yaml" ``` From e063838ceacd5dadd40825824e3818629a578fef Mon Sep 17 00:00:00 2001 From: Robin Jonsson <32449079+r0binj@users.noreply.github.com> Date: Fri, 28 Jan 2022 21:42:19 +0100 Subject: [PATCH 071/248] Update chip_back.md --- docs/usage/chips/chip_back.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/chips/chip_back.md b/docs/usage/chips/chip_back.md index 4b62dba51..14e8fd065 100644 --- a/docs/usage/chips/chip_back.md +++ b/docs/usage/chips/chip_back.md @@ -27,6 +27,6 @@ This is a `back-button`, primarly used if you switch between views and want a co ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="chip_back.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_back.yaml" ``` From cc3a685a16293da419251ea86f32c49f0b2b4101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20H=C3=B6rrle?= Date: Sat, 29 Jan 2022 13:56:53 +0100 Subject: [PATCH 072/248] Fix code quality --- .../ui_lovelace_minimalist/lovelace/translations/NO.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/NO.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/NO.yaml index 44715838d..19a4d170d 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/NO.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/NO.yaml @@ -32,4 +32,3 @@ ulm_language_variables: ulm_afternoon: "God ettermiddag" ulm_evening: "God kveld" ulm_hello: "Hei" - \ No newline at end of file From 53c90d62ae40333e49d60f9ed9f1b5f349468b4f Mon Sep 17 00:00:00 2001 From: Sil de Hoop <34340385+sildehoop@users.noreply.github.com> Date: Sat, 29 Jan 2022 15:14:32 +0100 Subject: [PATCH 073/248] fix readme and update image --- custom_cards/custom_card_scenes/README.md | 203 +--------------------- docs/assets/img/card_scenes.png | Bin 0 -> 90417 bytes docs/assets/img/ulm_cards/card_scenes.png | Bin 85205 -> 0 bytes 3 files changed, 6 insertions(+), 197 deletions(-) create mode 100644 docs/assets/img/card_scenes.png delete mode 100644 docs/assets/img/ulm_cards/card_scenes.png diff --git a/custom_cards/custom_card_scenes/README.md b/custom_cards/custom_card_scenes/README.md index c25a4c2da..b7f66722a 100644 --- a/custom_cards/custom_card_scenes/README.md +++ b/custom_cards/custom_card_scenes/README.md @@ -7,9 +7,9 @@ hide: # Custom-card "Scenes Card" -The `card_scenes` you can control a input_number entity +With the `card_scenes` you can activate scenes. -![Scenes Card](../../docs/assets/img/ulm_cards/card_scenes.png) +![Scenes Card](../../docs/assets/img/card_scenes.png) ## Credits @@ -108,199 +108,8 @@ n/a ## Template code -```yaml ---- -card_scenes: - show_icon: false - show_name: false - show_label: false - variables: - icon_1: "mdi:help-circle-outline" - icon_2: "mdi:help-circle-outline" - icon_3: "mdi:help-circle-outline" - icon_4: "mdi:help-circle-outline" - icon_5: "mdi:help-circle-outline" - name_1: "n/a" - name_2: "n/a" - name_3: "n/a" - name_4: "n/a" - name_5: "n/a" - color_icon_1: "gray" - color_icon_2: "gray" - color_icon_3: "gray" - color_icon_4: "gray" - color_icon_5: "gray" - color_bg_1: "gray" - color_bg_2: "gray" - color_bg_3: "gray" - color_bg_4: "gray" - color_bg_5: "gray" - styles: - grid: - - grid-template-areas: "'item1 item2 item3 item4 item5'" - - grid-template-columns: "1fr 1fr 1fr 1fr 1fr" - - grid-template-rows: "min-content" - - justify-items: "center" - - column-gap: "auto" - card: - - border-radius: "var(--border-radius)" - - box-shadow: "var(--box-shadow)" - - padding: "12px" - custom_fields: - item1: - card: - type: "custom:button-card" - template: "card_scenes_pill" - entity: "[[[ return variables.entity_1 ]]]" - icon: "[[[ return variables.icon_1 ]]]" - name: "[[[ return variables.name_1 ]]]" - variables: - color_icon: "[[[ return variables.color_icon_1 ]]]" - color_bg: "[[[ return variables.color_bg_1 ]]]" - tap_action: - action: "call-service" - service: "scene.turn_on" - service_data: - entity_id: "[[[ return variables.entity_1 ]]]" - item2: - card: - type: "custom:button-card" - template: "card_scenes_pill" - entity: "[[[ return variables.entity_2 ]]]" - icon: "[[[ return variables.icon_2 ]]]" - name: "[[[ return variables.name_2 ]]]" - variables: - color_icon: "[[[ return variables.color_icon_2 ]]]" - color_bg: "[[[ return variables.color_bg_2 ]]]" - tap_action: - action: "call-service" - service: "scene.turn_on" - service_data: - entity_id: "[[[ return variables.entity_2 ]]]" - item3: - card: - type: "custom:button-card" - template: "card_scenes_pill" - entity: "[[[ return variables.entity_3 ]]]" - icon: "[[[ return variables.icon_3 ]]]" - name: "[[[ return variables.name_3 ]]]" - variables: - color_icon: "[[[ return variables.color_icon_3 ]]]" - color_bg: "[[[ return variables.color_bg_3 ]]]" - tap_action: - action: "call-service" - service: "scene.turn_on" - service_data: - entity_id: "[[[ return variables.entity_3 ]]]" - item4: - card: - type: "custom:button-card" - template: "card_scenes_pill" - entity: "[[[ return variables.entity_4 ]]]" - icon: "[[[ return variables.icon_4 ]]]" - name: "[[[ return variables.name_4 ]]]" - variables: - color_icon: "[[[ return variables.color_icon_4 ]]]" - color_bg: "[[[ return variables.color_bg_4 ]]]" - tap_action: - action: "call-service" - service: "scene.turn_on" - service_data: - entity_id: "[[[ return variables.entity_4 ]]]" - item5: - card: - type: "custom:button-card" - template: "card_scenes_pill" - entity: "[[[ return variables.entity_5 ]]]" - icon: "[[[ return variables.icon_5 ]]]" - name: "[[[ return variables.name_5 ]]]" - variables: - color_icon: "[[[ return variables.color_icon_5 ]]]" - color_bg: "[[[ return variables.color_bg_5 ]]]" - tap_action: - action: "call-service" - service: "scene.turn_on" - service_data: - entity_id: "[[[ return variables.entity_5 ]]]" +??? note "Template Code" -card_scenes_pill: - show_icon: true - show_label: false - show_name: true - variables: - color_icon: "gray" - color_bg: "gray" - styles: - grid: - - grid-template-areas: "'i' 'n'" - - grid-template-columns: "min-content" - - grid-template-rows: "1fr 1fr" - - row-gap: "12px" - - justify-items: "center" - - column-gap: "auto" - card: - - box-shadow: "none" - - padding: "5px" - - box-shadow: > - [[[ - if (hass.themes.darkMode){ - return "0px 2px 4px 0px rgba(0,0,0,0.80)"; - } else { - return "var(--box-shadow)"; - } - ]]] - - border-radius: "50px" - - place-self: "center" - - width: "52px" - - height: "84px" - icon: - - color: > - [[[ - var color = [variables.color_icon]; - if (color == "gray"){ - var color = "rgba(var(--color-theme),0.20)"; - } else if(color == "yellow"){ - var color = "rgba(var(--color-yellow),1)"; - } else if(color == "blue"){ - var color = "rgba(var(--color-blue),1)"; - } else if(color == "purple"){ - var color = "rgba(var(--color-purple),1)"; - } else if(color == "green"){ - var color = "rgba(var(--color-green),1)"; - } else if(color == "red"){ - var color = "rgba(var(--color-red),1)"; - } - return color; - ]]] - img_cell: - - background-color: > - [[[ - var color = [variables.color_bg]; - if (color == "gray"){ - var color = "rgba(var(--color-theme),0.05)"; - } else if(color == "yellow"){ - var color = "rgba(var(--color-yellow),0.20)"; - } else if(color == "blue"){ - var color = "rgba(var(--color-blue),0.20)"; - } else if(color == "purple"){ - var color = "rgba(var(--color-purple),0.20)"; - } else if(color == "green"){ - var color = "rgba(var(--color-green),0.20)"; - } else if(color == "red"){ - var color = "rgba(var(--color-red),0.20)"; - } - return color; - ]]] - - border-radius: "50%" - - width: "42px" - - height: "42px" - name: - - font-weight: "bold" - - font-size: "9.5px" - - width: "33px" - - padding-bottom: "7px" - state: - - color: "rgba(var(--color-theme),0.9)" - color: "var(--google-grey)" - -``` + ```yaml title="custom_card_scenes.yaml" + --8<-- "custom_cards/custom_card_scenes/card_scenes.yaml" + ``` diff --git a/docs/assets/img/card_scenes.png b/docs/assets/img/card_scenes.png new file mode 100644 index 0000000000000000000000000000000000000000..dbfd9031a944a4b0fe95c7702a47a8f9a0062f98 GIT binary patch literal 90417 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 From b1133fb03fb3da70aeb41ab33f3445d7eaa504eb Mon Sep 17 00:00:00 2001 From: Sil de Hoop <34340385+sildehoop@users.noreply.github.com> Date: Sat, 29 Jan 2022 15:15:26 +0100 Subject: [PATCH 074/248] update readme and add image --- custom_cards/custom_card_input_number/README.md | 2 +- docs/assets/img/card_input_number.png | Bin 0 -> 44392 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/assets/img/card_input_number.png diff --git a/custom_cards/custom_card_input_number/README.md b/custom_cards/custom_card_input_number/README.md index bfeb2b275..d8ce6ff29 100644 --- a/custom_cards/custom_card_input_number/README.md +++ b/custom_cards/custom_card_input_number/README.md @@ -7,7 +7,7 @@ hide: # Custom-card "Input Number" -The `card_input_number` you can control a input_number entity +The `card_input_number` you can control a input_number entity. ![Input Number Card](../../docs/assets/img/card_input_number.png) diff --git a/docs/assets/img/card_input_number.png b/docs/assets/img/card_input_number.png new file mode 100644 index 0000000000000000000000000000000000000000..e10bafab8c6d31a00b9ecf5d59024ce77c21b967 GIT binary patch literal 44392 zcmeEu`9IWO8~2bRt%$TyvXnuzsANlgv#&E_>>`njrLr4Csccaglw~CAFm_{KDoZF+ zWSy8IiNRzngE8Yd<9pxt^A9{fK3=cF%$f5!=Q`K&zOL(iM41}j+{b^E9|D2w)6>;9 zhd}s>ArNjP-!AZqj^|th__o_y*XjWTB4@z)$Cay=TnJv|dSHH23sTa1dx+?Yr0J5PwvFqfet@4;dJB5iMUQLL?F zch(!8*y62(6o;PpfaO1%RP}u3ygF+g=DWi5V~{b%xCc2)s+1+>7+n6(_qqp|rI~>i z*0SIbhBY(Q++qt>yZx1#8L!@y9@X>w*kyK$TJY*709!-3Ozj#xsfR2G(ek}X%7zo64qXnP&4%^$> zUH4!*JG&c$hrzi1^Jdlp7y`De>2id&Y7H03tE0lk5k)+`5Pov%>AE^Sa;@Qj#^zt5YPa3YGqCRyrJh7?75o1# zxiz2{9kf32_3cfKXa`R?vd(9+1A~u%|95&(%2$(fqYZA zj&<4cUo3(>zt=8a7XI&x#jTvP3nJySQU9Bw$A2iFJ*0+XdpG`9HetfG)RG1^q4j@D zD|+a_gIFl~?>vr|?u7quQsj~U`!hn{@xK#?VFi)@6^Uam58}U{MV|ft!~Y*jhB%7b z+MFhr4E zTP%m3)dLVngO>w1v1790!%g7K@3eIK)|YNxRa0+iYHVpN4OytCHqT}@%&#z;jRP_3 zRt@9M{r3i0X!3d5+j%sWWH+8n8K0)jjtBQ|n1yEMxeO9Bli~{-niiT!OROo9nfe`| zvHpgU-v~^!h7DWQH-4s4;b9YE2xZjb-_$%$S@mMpu%;_88_HUHUd2t9t`71}K zsaqNz5D4-S@!gMlu0NYJE%LAHX@N3+8|tp>_M_5AMx`%r7+&;cp>Qt!tM@C8_l>lYX`8_ZpDT}(rGJk$lQ-EH%`TCCSq?D^gH2Gst>UTbHz@O% zOqVO9U?Pjm?hH~OW0>m||4E}GKZ&`1u2CJnbZ!^6{MYtf2U2M5BZb++s(vCN1 z-e=6cWkdV8Q-n?#kt~|?iCk>D5^Be|QEB41<=FHYiYxhkK`_Oac5aJYKaJ{Jy^Nxj zlYaOQF-f?Fg=)GBS-H-PQJ$DFm#*Te0W0?VSTI*hH_qqer!$dMswi?|TjK>SeO!UYMF5&)*>7=n7-@4KVR z?s1cIQ|QnS-!W>9k!aOEiJ_(x;yd2cMAR!Nqxtbd zT|HxL+1gIX*p70K>_56(_xqLHALb}}u)Ka+F2#&YF9|*{#Y8bTQDo~O%BKbvpu&_93yVkdRjNzkul>=vKT`gg9ifHbMW8A?O0t5?st4RwscX=zy91V zc>j?YBcTgZ=(<|9oo;N^X-T6YO}}*&6t0r$#WZ}BM5~FX7r zD4n8@zZ=mi7t}5peSA1J{t!bBb_;TtX5qPA)@Ec>Y=+lwb}f5VWsls&el9w?*5jc8Jyq!fSL5D@EC zPM|NVz3*60E%(Kw?J~SU&O)vG-x&AmXQoaE_UPdP*(E5aEYE~&s#-Fpf4cIaS{_Z( z5Em8GEOZe?Qle3?6a&icWOX6sne{aL%NSeA3KVl-osy61*S@a4-oKntgO0nOkd4wR zAqB@VgzKdTU#oj{KPFb#+6A6eNOBg2Cu}Fu`sJ^ z#7!%R&3fLg(3PgY0N1?I zSB?m*3uSG{{YeNdVK(F_L}Dr950610pKbt`9yb2EH=_7jTGeLSrWa$L><>*BJbe8S z1QO=+>&=$(*;c`!p%S|W;X8#z5*GdvT6Ry4pAvyUexCxSqDjb`JyW>(uz!-uEz4xk za8JzpE`dijKr=KCcHY&Cu$;KRGCMHh8+c!<;NDJ{*adeX9*CwmHxvT7h^JPLe`CwA z#8O0;V`XJ$K!|GHFgTUGgLnU@(D-hsfPEB|uk6>Yq`br#4tSWNozG^9v3cZ=ZY;$QE;28n4_KsfSzv3t zoAeI*(BsuJGxIR1M+$`!1_ec}z$-1k@&QklSU>3)YBRDbqtP?}_veR493-)9Zs{Yn z6FzIrGsS@-#F$sSVBu!_`3A9fdmqc1nMo;tQHrG{i0gXnN)Z4}$vWWR9pAt1weI2N zU&_)?x~(4Y_s5)5*gwzIZL=o+uam{~$1lE|C z{LFmT(?G4QdJEtHN2>|RsHJHVsl?)>)B(Jt%T5t45lEQcM&$?}BrGZ>yw%pu7klH` z{?B+kSV(I{Ta+N<`vX$(sJ?B2>Wc(kSRV-jF-+tLFCxh`BbU;{4?Wu^$UrYVz!j}7 zjM;#Pw92;a7Wyjt2g4?9Ssl|Y+=DNu;D#uw1p^5v+pE7wd4EoX# z=PP6XO~9H9lDcbqECOL%*dSk8EBHA4X58^YKR-W?$dSB0u}A0K-_GjmqCEP2bvubZ zw$xvHAYpeo9xydBZ%|`~=*D`x69^PSJ@Z~xz&gr#@L`|M7ZE;)V?75lDVvfZc4KIc z)$H56x(BF3m@iffYUY!xD)6=h?u5PcG@aAs^j)NHo$9{fz z=K2#GbNF0u=s6p%-M|J6AM*pNI+mmGB7tIWzl}+UwRsPSrJo@E?ri=lT`*rO3JLox z0nE1S)aLQ_ zy!(%HEX^@d$4x5k**V)N0TAG8$TVXkV zH8VVMwqo`I=A5ZzfiZf7JxoT9u=9&c61t^!fI&%Zi=M}s_KgAMqm|Q@4}6xQp^Fdd z&$XO@gsn(&X6>MN%dSIg$EwTt!4fP)IvWesOl_y%VPD|p1Q@%4K^0$?4+nCAT`fya zQ8(VB;`fRJ_0hO-sD)zz5%#p7ioXb2U#5R`!q)hhNU@LOi0$8 z>N?>Pse=TA{+;^OA%xxz58vxp$@j7@Bu_9jwf>5y`u$%Y=cefaS2G~y2zfBLDRm5J z(rI5cVh^r=>dTuO?>V!25Zv}0>g+gGS}ZuEXLrvI?CSB6{gALrW{1rSk0E2Ik9iOD zatylc^Tcp~tLyY2O#q<>H%M&ki~a#DXoI7HNFkI|^pg5_Gq_a7bx!h1R)~AKG&xg0 zSg!>h@}C|33Qt-N4#eCisWJXE0R@C$1Uf%*c4r+=uGoI>RZ;QY^c?MSjTih7}MOMiEP5C%qP zSslM{(_1QMa`pu;+&pYsR1D53%q8Squh?WPKiFHL13k$ZIRZ4>i>anjVhnr;*g9tc zuif^P0pIJk6Zl@piB%d!XIi=jj+HP;ZLH8&*-yFw)TKC+ z^T6n;YA#vc&suxa3rm0@Kw?H(FqmpDO7k`2<9b8BH9H_>Dx5F~734~KSa|G^fopJX z=IFBn;w4~kSo>7xU?3K2>VH1!2bgS@6T^yiEy%bEyuK~)h}Wn!ob!?^De2b#82@1j z2af#2_TpqozoIJ}=#*`R;mS z1r>tb&VRMRA%u;UmvTcKU1qgp*GWET#+bjQ2XWJ|>BUA)%Hu4f9od0LX1__}8|OwU zZ`Qek#b!>ly)Z~o_#A316C-KY0(N$MduK4qyHZb%_Mv7zom0LMf?0Qoy|A15ReW-r4Bf>B|stM zm5Q$}QYkNXIRKz?xq+w-j22ciO0#bcSts(#8e!ouD;#JDn0Dfdw<7{bO2PatuuTR>;&NtU zFg-dyG;jbbsu=U`f}aC_p|&tq6;>5RZ#9Zsk;9jA5C()S9alGbrJy(`K?wNI{~UxH zfAO!Dn;IxT%LtVc`=)v-AvF0c_m#p8eVAR80S^*J6CmtTt-_h3eq|voc8+@ww&TaVKdwT^Fl>%vckX$Po;Gj@pAynpm2KTbc)e2^`(~ zluYm?uf$8IZ(&ud0LZw%y=|)_u(LK?PekRMFPZDSRK3#XYCa(R4k(i&egY|@#q=>0 z>wG#>D{~@0zZ*KE{02ySYTN6)smDWozV3Hhce?7(9AagfEAyXEiOOiGlQ71e>SuE# zIQFK>Q4j;uT^6tLMLFzYPHaKOAv*w68QoIU*#40FglMBGu?vdN8Pp7HI0;@0TjXf2 z+;w}kTv%p%?ujq=+bW&|FEiWB`&;M@md}2kTtiaX16*h$A3@tD>yUQTWQJ;0Le5`) z2xRg>kR+s4FzK;Xpbqw-9^A5O$5Dp}sDfSn#iC*-M<3Nf>(A{mhh2L_!8R>&iJCqh z;}5^5T5cya+pA5k;fj7&64DASdF!-uGIHvO>qoohkddqj!S;&hF2_?2af&R%l0I}@ zt0R{*5WEn_b&ftGa_0OqxaCHRVo$^2Q6ief|Hv)z5s<$@xXBx7@b^OP$$C+m}Z+Fhh??i*IV*q<=?h~3@w&UQKg{K{S7J9zI5%^>p>S|_f6=>tE#;E1C? z3=tT7^tiK9x$0YdG*{c$VK^dtLO*F>yz-`k7>F-{zQf>1tQov_-aCBHP zfnHo3auABEGO4-8dl7dCArLlvyin%_Z7S}Ly9Y}yvk81HXo7(fYgVhMX|+&s@_+JvAq-7c04B}{yK(v zKj7d92vs)j^U~y+YU9L}L%hSw{iB|7*`c(A%K}z)(U>jv=eO;1vopkVc6AskjF=`_8oHWoCT9z&T zu8?fPBf595XZ&);9*%$-3Ka^>{mu2)10ay6N(P*BYIM>UgPrv<7~+QFqNaRi`lKF* z+UT0@2IgP{Jb2T}gYk*Wp`Q2`cqds%>lF^Bjm=gSf{Op?rd?LT$lSutCu>0gRxQqo z*I><<4DgDFC^j^6u$YjH@k93K3nbMG%rxn9P0Qvhtve3D>`IxdWG_-^+)(V$F2p(F z)No#!>gurbz@BrBrsbi{j3ye~t7!!>$wIHTr@7Y*k&z4Kn`!APzWAWk5m)Gs3p1jZ zxaDU=HCjyEz=p4ca}@Q`6Z39;Xvpu`fui@apFnV`yPvD#{X?@|@hr?|b#BC_MyG57 zBwdMoR*m#-=zs>RU*og7t6*XpWsA*7QSLgD7^}fvj4$fXH=+13`%N_L(38g~2LZH9 z4ZEW7d@|vDR)Y96M~blq963uGof2*;NwaJ4Lx~{64^nSbb&uANZgn?G=q~_9vsVe&B5@|?b$kGAr>&JXR zQnOUb#Icw2Yh*{{`fHk32=)VkwRI&eiyg-XJfm32^LxX_%n#dlk#}-I%C4M#2Z8LE z+JRVna5WXa-vg`RRfOF2UN*@oBl3&B?H`fr*aBs91lvsrtLHRvRY8Cq$$u(M&^C~@ zGIWd+FS4PoL=N^wAxk zs8LAe_Fy%D_Sv7Cey6acwu;(^GYKy5PdH`NhOAfkzP({sbyGOHU{lEi znS1DZ>|uwH@}S?ZTveczbHo6Q9nI$m?u|)q`~}xu7;yN_^&t9pO2=6NofHBtTeP4! zFX4bUmdDaFTJ~u24kH-l?%_AFe0c3kFO_f?tY?d}_w{6FOMUdb60+t!?Yz*k#pVau z+sAln+OGl7qClo|K%Ax>7xrPs0XNiA>tOZ0p*x4&gs2}^s6$ZCl=rede977a$u4RP zQHe78uycI1`tQX~@zRdfZx$xiPZ1Ku_vyd7z@(qCviRlQMF5G3ZL8TYuB3Y0+XH^; zf2#>Q9A#Y<YQ?$k^^!sg#+8tHbWZ(VU{V)^T?%gu|=t!i(32qdi! z)-=O|9eAuVgBR*JQ;W!>m!b>sZ@D4G9nIi{>$APBvR+W$2BPl|1L(=$FS(65v9$o7 z;t*P=g5G#IJ(zc~S1YtjB;WfsdI&gwubofh#5L3#&^6Y=sLHhxXFJi^ zk1tOPvpzMTb#n8-*<2jg@N$tLAA$5B5ZC342;asIKw7=G!|6d+*C&TyBdguAr$!sx zcD6M-Wq@!h*C@9by2>wu;Qvz-f2mHp}&3& zAn~t)0B2>Lk4V^6GK(+qc%U)oM&phtTlk*7Iq%-T^nTB|<=3WhKXg=yh1JG=@F;+k z^0KK{?5+Tly$a)Km!6eguAF!}`0!~$n5abcu2BxSe=bo#?>OdFr7kUtNx$NgJqy)> zQr3I@?_d$HwXxWM@i&Ak=6f=h>z6C>Q@@$7DD`p|C}U1exYyiaMYf*KO`dGka*VxB zLr#dD&A`26V9Q?bmG9snA96JHj|T(1oxi$DcZCB`@n0o>oe+A?fPb3dmAE!%&7}k@ zzQJ6bCwFuGEO>bT=ldre%(v#<67y!+I;K?u?m-Kwq9M%rnrZhvhcFK|mS;wSL#c!s z&oos73FL##wZ+*enalz)%;uuIm_T;aw3i@Pnu}py)7nJLb4Gj4-6|)%5Y}fl`FiBk zYm8UBRpQx;@X)wIy&fp~ zoG-<-ct`nhCv+x*dDkX?vLTZ8CghwEWeiFEc&PonaZib7Mm)Mtl^IV&Wq+4xqYk1; z8XI5ZgLdv~Xl5)QnFx+Y`DFfeN(|8uE46a{*xXoJH zTs!xVx6BaHvn@D=c5~0AKj$nqEM*jd@wQ*f)R zz|mKu?1Sg42bs?AJ->F%q`Jj+l}Ib?9=u#8_%k*YIp=P7DAC;~YUnxRL}D9SroS)e zL1I9ri{ZDLraO)H7LHQmUWOrqQBz6k3}|ViIfxD{3u;Bobd*6*la6#Gv(cE%(nd-& zSPdz!L(@E7J`r;=|{{@x&0Jg1%7iTG`I^Y=(eUNMP*tm*aNDbP2W z)~0-vGH?L1_Mu~FVbn6OtV5MK5a7XMnTcKJ<7RVQJm( z@D@8{i%D?^*rG5frAP&^^w^-U0>{-a)pr1#m<4Lo)lMMg$YIoE7D!!E4R!p-M9Q5y}iA2 zL20?N(7>n#)R%{T!RK#3QtWN^?04-uFD8^&VF&8_Ue533*?zIBH_{~4gALDgOvguc z2C^4;HP)`L%zI&i{eFjtFRCc*9#ej2&$z7Abwp&{^RgArTQ?2%a!Q>2Q+yY^L3bd2 zq9LYhxw+3zn5I$sr2^%2Rds7~scF?&4}bqqBJ;-T&GNa)>ceAx_3!ym6D*CTPZuiD z?zS7q+u|<`sJ3z~NZK<*cr^NZBeR_r%4n#hp)ygPe_9;M<6~WvAKKt78$Cxg7%!7a zEnAGOX71PR<;dgrlIV%1JRr<;)YzSF;^Zw);j=+j`6AcJ%B{k}O0{-!iJZ7Uz?pFt znCXBFF68_kr=(kXweu70F_lqi0pA;F&DYXQqguv(PXz%i=$_W*KR&qs%-&a$F)c=} zkwbR%(kJ>O{(jNCVR*k|$s=*ietKWguh7*>+)8F-{E*c{2^DD_Qux=9zk}Uu9d-slSM=It{D+-4{e?$GD`sOJT5wmdm{^F~{ zb_;rP4LYkah1o`wDG}Nwt>ZUpULM*tgMX@=9QZ+2PcCJ+hU@ce+(3`ArY|83__=>L z0RE-#K5JA@R`RT@KWLuYuKau^u3&pt=8>#V)QcW9#`g<*ggk7jUn2cLnqJDO)}kKs zL93(qAvf?4?FL-4JVyV9bOg06=awN%xq9f;>u=UhW`%aTL-gpV&pJ1h*6*Pn>&QGx z%h|mw&iZq6k5_)oQ+UE~o_)a2C+_5j^Vb^M?#B~tViv>?@58haRqhm=9Gqs-T3V`) zTBzRnR{RMX`t}cjcCXWa2yP_}M;v)T5h3JHY`MggTtI6F7b-E#S~L2hq;vBU z&0zqKi5hcu7EWgmuG7fIzF4x3sg(4W4);C6Z?GINXH%D6GjqY;NW!mr*(xtJ{TQ@3 zp-tP_@Z(n#!{{2L+Pq}pht!5*vEaFKtF(;NgYlX-aMLG_svMD!-l~!EzDRs?y;Q+v zXA#WI)dMB`c%zt6-n;c|>#sPT6Vrnh>Zb2dLn9nV+k!6t)1Iu;wmMkd8-IlOsl6qp z=ll4?diaz+A*AO^G@x6w(hE4rkf|7~3sbU3+M`Dk@CRyQ%JgkJMBY7j6Mi^1T<*Tb zW(^P{QBVc4sofnrnb*z|6;Pz$t=BCqa!ZEYP2Z^0(_PfJ{cg_gGi zS|XzkS^5@jU_;JP7Z$H?qlPY}QPP{@*D^OsPM>P-a7NKgql5y1Suug$KL~OX#nVB0YRXzeroa^_B;%{d`u05)3Z@4JVkz zkTCKr>5Bulq>Gg*7gM?TVA1|`l7LVrg*nbRDnoKISJVck`wNqU+0B#FwQ34xJM-oL zB)-3XV{~O;W^{UBo&;WQV~RCQ9WjL4-;&aT&eW=n5#`?mLc-wm7APpObwf*jJ$CRt zm0W0QH{~ZFZAAnf38L|L!><4&%QT%JRHpKIT0bVztkL7OgC{8TN2Nl}fLA{AXx{|qJ<$HU&R?Km< zx5jc?#Mv{8}!hj^)?tqsHP}p z!|3Akv0ZXN`|3rhH_02{Yn~tZYX$$tm!C8FyneL>&&kxcs~h3nVncy0Sk*?ehyVjMcU=_^H^}Vv=6>7fj_T30$uRD@^J-g-yO3Lp9oB_ zo0$V8=!eA(fvLY|@^K~hfm7H)^glfCK5A$4X{{3i52IeRNzWV9uf{AP#Ao=UV(V~a zCeH?jIi0g$iz`wG3f;JP{!@ZK{gJoCT=&$0Qjf=L>1MZ{q#?$#Wp*K#t`DMKK5`C>(nOsmqC_`im>;{lV;M`&jo1>dFkQc54nPY2!*w`0Ckg7!U}e^#{- z?vo^w)mDxT<3zJgF%PU zoyb$KTLYCl!W7o)Tv@epG{^QEK%c7iYW-ojdn~!u#J5y5!YDn>e#GQUOcqB3OL>#OX zWa4rm6@NC;iEsJd8IH(4Mu9k;34b>-&)_1T^eTTXOZe5Nbkh#rx+NCj$*!TMg zatq+FMNZdYZ_@j-fjH`Y2$W@SZ}OzIJ0p9x3smHbTw?UT1rSh|2U_)c4med*pd?fm zY%WUP|NZIJAhTz8P02}ZLsNC;T%~YBQ4!%;Yxlg8k|A{^L^JA@cn3RGY$GEEbiEbLk4woMWnr1Zb@`E3|b^P%0;l>o20(>7<@J5eMSx^@c{=5FX~7aR4iMDLyW)>`KSBe#yW?=k0^ zhc{AFPZp&W(D=VJZqj=mSkfX}0)ZQXcJyD`E!LBsRzEnTWD~4e2-Ov+Umfxd-RQ>= zcm2ajmOf|JEcE$f(noh*sspgB+PGdz61^kEE}pufKE2X@F0_1w9iV|`j}7eKKbq^U zADW;SYOWt-IKE5w8fbm~+{TQi#z`qH`QgP6nMu-vrFIPnpZpKc4p=&mj*Ps5!;dfn z^KW-kCoZ?Fe+IPz!P)g`9PQE(;Y4e+7<0Mbgyb8%zKOm86-bXXFf3^X1vKHwfQcv> zYg+sTdV>}e{m97Ti?HsDdxJ1Jp<8S3*Zd}9$_p!x8jZDg2kyK{6lec^_MEvvG}WQ3 zdIFT^)wBg5OX;BA5J*!`__MAZ>ZznQ`~mwBrohQtTN4elK_-jMlN75gtH2383sI@k ziiuzQ{XM;r+SAnA9x4yir5O#WJ$S$hY-ct($QPMVQXW^ zh8E9)g}9=aOMykWcgnKljo)-d1A9(;>Q+ao#ePVc%j^a+MJl3)oF{?R&WtXyEJXlF zb3$HJ(Dj2~2Ku|yqjLw;mS2?VA1GJoP`NtbvNBgmLSVKS7>5kCVB(^Zk{Q-AII^ow zN4kKMehxBQ7N2{4>eceP$2dqk{r-Z|;$fkHyA$WfF^09uO{E2Ve_1q4i;B;LcDth4 zD;eopa*m&2;Z9gc{vyl6qE$jVg>0SGR(~|HN$DNVI=T&|6e#c5j%;4apgr^~HCvY) zY#&BAi@(BqreA%Kr}PoHn{tQGJ0#1;JDclfC`oJnlJ@6T8RZN4`r73So%eJM-Vj;Z zJiiC!%LFHu8i5xf01zLlq>gEhbq=O2(Pk*@c?zQE;PtPT_JO%8=+00%g}Wo2&d%ae z1>CG0Ap?4%(d@zj4sUFd!z2Z8D(BY@ySiG!Twv1-fY?SNkJrV4ary$NXM>aBKJaY+ z3A{R^jsyo}7nACOfVel|SkRgA60v@RJIjl3s`y(sotb9jMl?cBiM+~*?rJR2>j*fv zwWz`F?ClzOp>$kS^?rF6L%440lgTD@HNXO0y zQg6*+m{n{&=0NjAxq$5%sH^Xj+va~2e*qMkEc{(mmW_^?Iv$>;yreLB@J&LAyIV~3 zlsFu*Q7lew)OdEPTQQmgG2E{h2?1KR&9&JI^Tn7O#=r7U{`~d-E=S(d}h^A2XDeO^jt&Y<)s%V`feJQgfhvL zk`9siqZ`e<^*Sz@C5Y4C(`y~1!-Y2@(GHe9)jGJElFv5$UCRPgZ_3J*%nNvBLJ?nR zEQ@9+*W-nz+6>F-He$CM4O0-r5q;2fAHW_Shov3euX_v2 zhhGl#h(M^X|4MYXFEsDTehTv+L0B9pjsP8kNe%X7!KnzoR_(RhmXy<;Q#%LnAGXm#dl;G<}CEGwkv{BLIL zyoPKRL94Mho4K^sh)=oRKu>L27*;R+T|fuI+%DGdm~w@K7SYUfg_>UA;Gi_Qjr8)p zEFfg0QEAzupu&uP3ey!pzM>G*r$kRh;5L8Byfq}YYul(=j*T$Ts*7zxm73Z^5$Lqk zkeF%Y>c|Y){p%Nfp2)#!Lg)FmRZzNHQpjIx;IpoVtLw{KWyK@&?Sp1=uit9ryQNcG zPHI-O_tGts&ta`e!#^I~sB=z>$J976P2>}kslQyG9&ns06Nt_GYS)*Zq}# ziqJ4$%l5KzU-aKAZBk~&jW*-f?3>p=d-ayo5YFos#{jG~S1mT(b5=X;E&(P?;n3;(-2?z2P;C@=7eSw{?Zq^QvVvCremG#6Ca3-Z zRBell5=NPO1>{42vlb*Ig;D~weX*d;TK3wq*nz`^L0|ScL9qx~u;sZmA^0ZsP{FGN zKr}O6xUjO4ufe)2V!b{_3-#}8yJKkHF7;lvDAh3rB`^K88>KK<*RoO6^4chKzC&C5 z@&H<+JhY9GVB*$sd;LJ@-^U%(QBkvJYkZ=+sP}`Tr8qg5p!qWb{G!X6d|$1$*>Vb^EA^StMw_a3xy#I;Ef&L-5Way}jO;vd_5SUJGDB5$tuq4Fz?1wz zF?7yMO~z|vj$sxj+TA19n6=u%sR4vS9?LLNPW0ZTbd)%DSN*8-C$b-)4A@P{WaJFC z1j4cORg}99Kcq~KgQ0fhUdO`*vH_Iurd%G&Lnm{>cdC-MPGaijJh?*V(a9KuU(||h zcVnk-gxb(};!Dw@pXOUi3LpT3y&-uTVDQgjoTNVp1rZ&1j)qtD@6;&QZPw zNggI>ayrah5X0;EV)O3D(CZu~<2FO*wC>O6s!8Tg5#4{g^T<`L`c>UWEO<;Ou8If! zc{7--CLkBp+HJacJVn9oHC)Te@8oHF(DOp?xJtd_J`n3zpc+62>Cz|bHBRSUsa6mR zpYXCruM7-Mqd_wPRFKZ<%7ZeezP(+pY94M>514Jkbq=!CcJX%Uo)1@^zpxjTW+B53 zr8P4>osVVkp<@Br(Md26F7ZO>db&|@mD3kdb)k2OLk<{L99be(Fgy{I=3t%i;yC!5 zX!Iwt7r4$Af@2x+IDjtRNiUX#|06v>^JC4`0^ZwqmzEaY%SQGz=(aOK?|BD zg5**cB74D1j`Rc800FS{6wiL;FW8$e=}W*Y30VTZ%lAys-u?P*pX~tL+KkI-1&~k> z1pO-hSs_G}z8nWqvp=`2UmkcHuWqfj{N=_#Gn$G$8;{U;Hu2k0Bp__cUKHOduLn@F zs9f80%7(Im*a=aT@`)WkWUW`z&I+6o=A>fV0C<->9#A}(Nql2_g>GSQiUrQN?!_c1b(Jej*Tt;DY4IJ~5q8u}i4X0W6fsS}M>* z_A~GxQ!(T1+l8E4NE=O!s+)g53`mo!@W)zM^Ik>1f&(y#EOVLUc}{>P#DD|_^?d{X zT;Ti6;{)mi_Mz)jv&%F6m8&l3ZJGxs_n+l7+rgR6X84a6g0@3&QMA5ozJYGdG~hpR zY;`FpqkcD}>>d3=S+}xgVDL%5n|l@WPJUH!<1dN;z70W@v_8(2b`DQa1<7M2juOh8 zw{nvzIsGx=J77Ily30CjP8@a>#!dJ`!ce9|-IuHRXM^NGF8D8SI-6t85OsB&&-4X# z-(Wxv+G|upONI%%jg22JtKBXT%jN@`BTTF)A1^z_ilcI+WN=Eul?-QWWT+Sizy#CnybxsDeolD1NdA8z<)V=_l)$9dst^pyB;*=v;!17z*M!*At zcvH{|x=Db0LU8hV?*u4A60c?R@{~2>E`df@H79nKiB{$^2x)eU-@jA1lyw ziKo^xmnzHCUseZ8{1Ff~nzdf^hz8XW*VU^Ng5fEAB_W_DZ$Rj-Fvi~9D0>droiQKd zDLv$VA2a(W?d80XRz(gseJ^ZiQl+JI&Q}e4onW-N*Gx+Ckyx7SF5M-DI8Mg;1bQ*X zp_n~e%Eph@cwG%#1}sXza&pAeCpYK`o`+3=S#Fbpb?ID$yyl^*va>0^=i@6IKo0T|3=C)iyw zD3_k@x^YIy8&1sdQ6AjT4ad6WR_+ymML8PUPD}@6yeSo?T^;4}ZCW_o{P)RrlMvj9 z#g`vfc~~$iNxT4-C$=6XbIOYgHeNaka902)6Wyi11MV`AR8P*kSWsOkj7T^H38XbK z@I5K#ES)1AJ71o@d1t_wJ|$F&eFSxRQAk_rwGjTz$rb^x5e9&6`Oyz~)ja3D_kznl zr%Q7Z;->mYQ;Rxd<>0o;f7ICXexvGzq8XpL61UQ&kEi2d9M#}}&e_fNr3X9po&KJG zf86&J)*NON)d{%&_V>gDRO^CP+?}swsT@#Wb6jCkwnE>887f%s{k&99b?pBDTBWV- zxsxmO+9m=%TK2yk<=EnxxuT1ymo93SDdZjE2h5wlbAl3$g2I*@X9n0-Q-cg)9EiD1 zm47>$(aby7u^cm9ifnm)QqPt|miPml+iSS-tLbV9$qQA&W~zV{+4}7g-1zJVIb(fr zs_`5w%}2jZ$kXipwqa}H>#cC0RL&s6>Gulo78G~+Z1P%QtAf~ooUyJ10g(~kp}4-?SY?W9I07Uv$Z zTveYX&t)+X3unjtDH#nFCNMX!xWRVieG;AZ%kOx_KMlsH@(7=L%LmQ92Z3bS9KWCg z|4dJn*f~KR-MJf3=J%f7Ztfk;k?r9z$z3ry7LHw)H@B18A_v}({7U>YT<$yoQj?*E zK7IarZ8w*Gj}Ku!5wP(fDq+Mo1$fJbptPz>B0~)rRBv=K*4xu{x z`}rv=7YpWn-+x9H&&e|fIAw`(%n|^Dh1+}~t`yMaHg6Y(K->;?&iSZ*g;kpwa2(Lx zh5f+ak69sHu1JZ0d))^aO8UUn^A{WdqvU?y?U#O9r?}4uXh-QE+s-JxD6S(bYhnjZ zsKC@X)wI*`suf?cSMutO|M~lCT4QV7_7;{-!vK?(+hhO|mCMxbGwZ&g3HpJXfJ>yv zAx-XuS?Wn)_bGVw@Yd#OI_9<%#3|*}>sRR7WZA-8yP#EVK`Oa4pJ?js;%lWX>5PQmwYgTG}C5cu$*tJAZ02jG289YLbSt_c^~o}ZUE#PM_cN=gK? z-*=~?Qu7Y|jr8@24#$EDZOv17wnQ%o7MF{%9snR%qc$M7DL5YvNb%P$ouDXJbMJyU zigGSY?CR#Nn#C6-F^r7t_DHG=QMIaW)rG9zzmyD|{}@8*Nm^blTE}#%riF!?WW}p* zxcLJ17nS+8>u%#g`Z*4TVAg$-WRc{tv>-C=41z45a#H8y- zhR^VpPB6|7pBHAXc4=OYT2*uHO@9T~Intl{Gv(~7iF(li_-k!su0nv|d?;X14T$PS z$wFx@TcLpF^u1(ZxVfa7_HC5K4Ve?+(A8e%h8F?a;sH0K84o$v+Kz!){(2Lrg|~%Dmt@Pg6Xa`b;3HG|Z*c)BknsAC zt=3V#1Bkraz|cpzUAA2fC(5JtTuP=6m0EsR7<`93oG+;*^>sYIcgF!$#iE?P-@rFN zXXvcp;L#`v{JwTTs%d2K4TSvMnWEF8ld^7o(k3_o57SQy$2*1dJbYj3xo{Xnb{Z3Q|GfwE@*EWO}i= zufn7!m%0>tcHAN)xi*P*HirSLN&hV{Uk22nX~frhXo-}rf$67f_{||{L@T?V4d8fj zO`c@s-H^GGE1~2{R}x`zl+%U8O{%E%Dk*|f+V<+*ym+S{vb)MAh=-6Li}1f{O!Rnm z!dSIO5bKlTTS$2u!?^nm7gJTGeBV5ilpb%W0#{A7H%$c$0{~Hv#y6frIUOMYF#FX# zj-O7y=iAyOZK(!7HxFWOHgjNy{aX`nsqqIHd}69A-z*3iCe>l9UisjmQk%nVZb5{A z(sEml{}>%K1u(gk)iA8l798nfQ&aje1+D52NL3!mQsbRo7$$kvfj#A54bnn~#abPT zg{p}hsopm`gzc6l{5l!KV^~j2Y{o$e(*nr#zLe&ROb>AVsLMq2Y^jBtR7RLN0{r0w zN2Pzuz)b5Qxb>@wvrl*a7EZ(#@fDeRxevg#@Y!bhCh*w2S-F|I6nSYn1`r9BgFJZ7 zPq5Sh<+VvngY-bgOz*TpOoX$afdvw9|IUZ5_c-(lyT?q4l?wDo0~QN@>|0bBVBR&B zFEb8t<$+wFX^7gk1d=`t9AQt4JHNAUQ|DS*LDCY(c3j>m0Z+`2%Mmi7lj)OVjdlR4 zZd0COPQ7-yb2@Vl5brqT`Q*IlyjWp7aWhniQb2fc3weOG;x z8Zg)RCja)I>1c5A>m_nf3kt3ubwl(+KV{bN>bDeu+d_)_^WSp=ujYRT9*RJaQ5FKY zduc_*K-=sMa_kOKGi5dWH^86p7#bxzKMENM$Lf#~I;lDHUeBJw=|fSn@>Gw^GJPK9 z(3K(wz)A&_uKo%GO#QEdMz^7)Kqv+c=4u^8Op^Sa0@Lttmx5ywlSc7@5dIq;^6NJvR5uv%U%U` zP%T?t5(;dx7G8c@dPW1BUZb@JVi4mXWN zOfOPHLeA_kJ#sp_=ZmQY*_TczV93WnDL%>a)yd+`RtZXixb4zspY4Dd@PS5aX z=P33Z`Tz*0+^Bo!XnPJTz=|Zx?q3^#dmc`lG>gjV!dw5;7X1l&-HoRYCXCixG@97@ zc>q(e&*0(Cle5+%RZWP9{Stfvx8i(L-d_RC+EkX<&(_UK<(+C1N)D`9OB%S~F8LZ? z*tWE9cX3+FN5fv43v%I)x zN~A|Z_H$d1oy>R(z%g^p^qj;OaX**b3)eX;{Z{XP{D22_mld`h*H}5(nPem8Yvs!~ z1MUq9U)C|zcbxK55};fx6uSj(K^=-3D%ew$!_2P#C$YX&DIgdkVw?OwzTW&?{y{-uZ+5d2ipB7jtpAiZ534O zbHB$#UJt%INHMVcC^LRD#6h6DP>9xYHV52SG6pGiilxE6nPC%7@!&WoD$ALHF8tB& zuV-5khM&MqnL4Ms{bH&}pF}^+ni%DCMz_LK)8mPjsSZt~&-0W8#a>yxTGS5w3P~LO4>WPq_L4@@NvEO}L`Bm zyFUdD7hlYr&6H91hk1|uLLGwSNglu_Vc~Q<5Zm7E+ewcayYw+9VP}Wh)V85G{5RT1;8OjInP?wosPHS||}EgOn`U*Rczs5*doOeF=pjTi!;< z{=cu$`}6&sf9KTcoOx}}=kq@A^DdA3xbzsLBrm&_57Fnj^@1}12GnzXjy)}Nf%3GB zgw^kPl=R_*1LKL`%#8JA9s2*IIbVr$U!t7!f4d54li`Y2Bd0Ik6p}c0pS5tt>fNJm zx#s=;7mgm!-cl#L5&u*8d7*o<%BM2iImmW+V$qz@S0Zx z$`eq8m0ei+ZmXs_PyA4c6R`u~p4KL)i%lCN0J09mLj_q~W&XVALrg1%v& zG`LCMbHR~nraw_K2m+a#o&>Nb*388KES$Y}Sqm7ZR3%12c>iT9YE3N*@IrmS+ z+#N!~55-gGa`sz`A;WfjxIXqAbV3pDQxc*MXqIm@i`8I->zk!b#g-!GyxSu!#TA|6 zky($M{(Z>rSK&R8;CZn?0{r$0m*-PxnVc)?XP=}Wtph&_om&(PE_^+^c1z6~!(;Vb z#2U+IcTMz-_ZDt4aTE-9rigrl#66PSc6JzkUi(nODLMLP!D;DZa;RQqFDUfS6Qq5? zwp0}9yZ9Mj%{8y}+rYcn81F8zx;;mwGU}zHd>J;^bQ=;rI z#vH_Y%dDXi3-tBahP?(S@*L(nQte)vT;zT=7;_)<1FXWhT?Qiyh(Vb^7sC*qD%q4` z#p{&a%{ELis9o)v3f#k&xlvUUNG#h>Ni4g(Fy;MDdHUMG8rvhffI*yrQd+*Q{m_w{ z+*%hQ(?To$57d1#YN9nf_b#J%rLM`MmD-?_SUu`7TfzdmTSn!{j3E`moc zg<0o`Q$c>z2ec;pFzczy=YvHe;Ir z@ndL#ULsD9?AJq?9k>pH3H5PSP*ZS|`uzdRSHB1ia;7wU59{~P&;`Z%C?kPujBdv`cN9`ivGw-SAidH zEv}5xbxHrW-EDv&*^41xsIr>RwNQh94kjxei6!=fu`B#R@|m>fS%d@FYz{>E`J{lt9{*MItLx=h}1kN>j9g%9M4CvTOE2sZc3T6`B}!vkv3IQdV|r)>G6~gc%Y8e1v#_V^k?iC zt2#q%+7AYVwz@$bMMLeA#S`66PDCm#!Ra?slWv~{GgfJ_@4q06$l_bAv~%_RMJI(3h({F(>Yt%zPp} zi)$#Up2nh52Bjlxk8E@@^17~8Z=Up<59^cn`d%0Kwa2iG!SPJ#l17&;avTmaKC8d? zWMHJ`#6pQic1PLz$P$vI>4K&8bXfVcX6SbK;?K;yDNUo3x+1BfvhA0|CK&S0I5`(y z9c3%vNSuY>R6^o3#(V|43zhqj;qwHCK9({|iw+_hi6p3LYv$x|^Z1Fmc<>Hi5VYiPCHKYo1=Nod~4C1yJxthhn?w4p!oj%y`}Fg1 zcM~qCQ=a0&TGa!I8FYyQTJHms>mS{@q+-NrV?F42{P%&FpY;>0S`)IUAa<@70rB{@jcqfE!* zX!gVU;q)b0(*pM7`!!akPq4yaJB1q#B-;H$VN1a_J*_RccWz;)LOa#L;Zi4FN!Sdd ztY!|0a%28awvTPxAtY*VHZKP{xPUPSRddV3SwYVM8H@`Zl(%ssItX*2$TlYRa-{=d1>7kfrIFN0k`?_ z?vA@x?dNX82D2}3sWKUPcWEt=;g;C(o6i9yadqU~nbM}vIbn2F{aR%6i_^CD{9I1{ z{X@3;Mxl%{PKiptBInL3FP!vWX|}(X#i*@l;8Syxy|Y_j3h{?*Hoy!qJivmIR_6&z z9bMJGCgjW|2o>Ct-;iwTovD+kI+WKR!Tac}>n@x3ynJW-OQ)dnA-}8(k@IF$y!u)u zgUoq;)`O3xxLF@vPJVRI?@?R*A-cf3Ltr*%LKtm*X0gF<(WR2R<+h%?AN z*?jBMb9(g4>m1ECd^tWRC)e!l*VqGN(n;i$;XA87VP!|aT{7TFOlOSrI*^uicH6j^ za@YZgyxm#UqgdsqMDvMdr((ixsL(ADt5C~jS5Q#sX10*H)+dNgKU2z!K3mGmc#U-z zs#k&%dVgB^5ETCMo|3Ef6{d5U5_pt1W znVirEQJZ_irx0o-+3?*vkScF03Q-?|$6y51#kw@iS_w$SXb$Oy&aw|^K-^}Wm5w;P zJ}v{{qvYr^3+!_Q;Yg1v(__p@wO&1FqCsOc3D?eZ0{ai(R_?JyQIF5(d&6YKG;@Z{ zDREF4?dY%Y7?h8669G3>`ca_q_K7Y>- zisj~n5u51{&Ai?VRqFZT2fkRTNYXPwt~WbQ*^+`E$l$9#HJ~a@Uc# z^gp*o6@cZ2u*YfEmpZz>9>gJ>`k%w1qkI{+R3X7HoZFt*Mm~cS;-aQc?7B9EPE8+O zKWLJ558R0DT!_f-tacS#M-tBKWni8k6z%`}{d}_n{fI*NoGu*fD8ePpS-&@3&IlrO zo1#FcZ$iFSX-kf!RD}1N`KvEw#l_Y-E)PC=at&LW1p+^fMZ%fVMa@brC@Hq^yBLmy zKry*Nw_S3oTkE>l1%4*AlW(v=-V`N$9xCu|HP2x%NPTqpHER$e^7(9^fSeg8Q!cCI z#7^CYq5&S!n}YB=5E@ihVogPaa9DAEBrA3?0-l^beaAG0P3v6Gpq77OF5>>o4%gON zy#rbd?K=3DUWS#X6Yj!kV~uBJZhZqXr|sml%E}9zmqOC1+^F4egK!~Xby$<2W8K<5 z!bp4r=!YO7;#WQ7M%D0sWql9m6A&9PJT*(uML8}_sO_!*Ddm16&_-B6LK}}TsaiaD zD_v=doG3-m`n2@-WwLV5O6%mZ2=C0*-1+*V@V3VR^}nu&2Q1CFK7z43zAm#~l>G{( z9Bf9(i%T#T>;ogpcU)hOJWHPB>(2Wpb{{A(dxvH!v9ep48>}jaDd<)Ax;I>T6f3_X zcn(z0U+AXp>nB}q9x9J*?lfr*!IVl#Q6y;I-H z@WMSIua$x?M&m44|c>x}Y-?7C6X;z)krE_RVgrEj8 z6>C}}pOEqAAwv0|<$q9BbcdLiOYmUq9)px%y&!|KvpNTx1ys?lQr}_hjxQ_A&T04= z^W6Y(-zHTUJ0E>2&g!VcJBsC#%rds&0cm|xjp?kibMT5T-Y$Jr`CDW)v256te=Bp> zXR?3a8QRQHTq7rS17Zz(8Q5w9Y_L`+X=U3W{oF9PF)`t0)I z=frd?ueN#$3!y2q&?|iE{Rig_t?JIwqg6q7pcbbhh!F7gsGU@9ghUd}mkCc5+xNFs`z34JfI#@HM=58Yv*S~f&2}H_yE4X zgsjHwZR%We5T!vElUW&Mjz4Ur@gw?>>=zI*)bH3tizxn%PxH9J`2=h4zq^O2^Ptw} z*3XX<7bG8?E=+$TA;>oDyyDyAyKFkGwJOJwp4xM@9QK7|1oaSxx3wq1XXN_9{|;30 z8a~$cIt2)O?$(vqeS&N>=|#KLJwH<}P$L$yiysgjvnQJxm|Oh;I|#{q6iIm%ukL;d z2VM%@#p_f+3%#N;7mo*aw}kufo)ldSMl2SJ-rcFowm_3 z@w>Cg*_h;+d(5=o6<2h~i*mu%K}}9!Z%^J2pqmqJE} z6A5FG-~}U!?R%k=^P z7Ot31%ZtKp7Sq;Z+f3e_3)!nXjV}yrWg{|`jUB{+NU5%VbdTKo)&^xUD{p^xWPU{WUs<3v={ow-#953u?Iz< zah9=CY>g@BG6M5{7Z(@86&AjorOV=H!yWE?I;_Zv6tMUl zh@l#1ZO(T626Ccp%7OEG3_`aM2gj-Wa4*bfz+x=#1XXo%moC+Mu{zJ$kGF9HokRb3){`oWbIE}@Xa4Of=aPo&NJlg|^q@*? zlAz2F+tT6?Eq_W$yN`_Xiw<8i%o7<=lQeBDrlH(Mj6J{!suE@)n!gx+eenN?Wuhr= zsZ0Xaq_GcXA4R$`rFEtWlY2&q@4u{mbfPP9xjg?~I2}zY%qM%_{Thp2mqO?LPeYXz z=eKXHl>QYP7;5?&oA8_e#3m{I09G!5NM_7|@CmXt6j_DNHFz?y{8v7f$^ALoVPEv_ zIwlYJN@OwD&jbU&XB%jtVsjuZf7pGHHc8XTxgqg;2vZSr36K7_)IhbR_(<2&17E2L zVv2~hUkjgZK-#ZAgRcKOhU|}2Gp?G$gw?G&WJmWO1hLp&glA_H?1T`eR@8JBK!~Lj z|EnI;-+u#wp4J|d-ipY~@PST$+j%7O7fAMBJVkb9lzBW~#~BpDeK-?QhQiwK?Q}x| zZ8W13Af$$N)6S;5VJyIRM?}u*mGufG-f4xH|Mb{r-J_pWIN|r)T5A3CqIm4#o2~-? z>ClT&EO;UZo{G9+jIhU{EJ`7R*Y~xYDML2@e{d(wjobk&qXIi^LtilzFU5dP{Tu0{ z*jjZln{^R6kq_)v^JBxB%3ja`@spz&#b`iloGzjU=KFlV0t7{H$rVG(G>tx0;IH~L zgNS%4Q(9_b2hhI0N+?}x_eAv5K)$bxV|J0Zo(ZDRrsX9Z_pHgJH*7ws-+Yo)=x?k| z@e}mrpPX>Jns^I?$pTeOlTg+%IIh&^ym@k1n^yt;SUe|~FMcmQ{Z^4g_oB%W$Kfi^ z0*$A83;nI9W`@gRH@Nj|x5{dCj|%bj00gAomsU%#twYQVg?1O}-V`b*v9fSD+rG0A zNOP{bs4Vu?o5wSRZs=U~OWpVK<0kVh+bwC{C1)3fwerE(`)DuY;i69k);|9kaZh)5 zFSuX_Mh_W?^~8ObY@!>a&I)Pz%>cdIiz)~5Ci7~s|A5$%b6euZz^|K(nZ34jf7PtI zjXOsS=BsQq;FBDaBhMXJ)v8 zXtX}wV{;{`i2QgI3}ef67EYul3x(Ouv~WJ}R9%YCzmg~9Emo}7PR$p3FFBKZmYl0# z^fB;^irf4|{+^8C4kyGm8J$0808opuynuLgZghD^WcxhHd!-(X(XTUNdJVQ)yK`X9 zkH90~F<}@r5!2-8Q*9tj+lSLr18rcVWXNJ-Zx-KeJlbMn;aTr-cd|Xr9>G$b_R#bR zhu3<*Y~6-W|5fa7Y+|aARM{BaxCI%Mi^vI*RN4NX(h59#tD(iWM`u);nYz^+pBM7$ z-SCrLlOdd3avm-8f3Rq^C7nnedtSN5W(kM3>mPG8M0zG$vZ>2Hq-G1e|5tMGB9YvZ z5z4Ywx&rT7E%N7X*ktaG-7xm22}<}CaTTE28hbzxP15aQ{A^)RrC-^9eNS$A??r3l zC!s8>@R~0cThiy&WO|vFoCinlD)AOioO?(W1iRp`(*<;gJB%qRv2^(!b|~CluU@9Y zJfMK=+iAlBQ)D_+Bp8-ULgMYWIHo#vCvoBg}l{v%cE-jj}mW3hV`e6!||8E%L8w+GI{|+{`mGJb$(+a+2nt(DE@lhK#ZacDUCGI0NOo z#>l(+mo!+`Wa1>&WZ++PGV$e9KZ;mF4=&oa)#kgqr2hkE-~?IgA}q zGT$ZVI(?_$m?KDOg~m$ZRFXj4Q5s)LLDx@h_5(}K?$pu6N{`xp6zozO?^#k&x%=ilku_82X+y&9bCzq4&4*WD<$Py` z1G4(NA7dx)D)V+soF^99+ovG@)^-s}+WEX{$V;wOI&zmd?J%BytLaha@z`mr;R$z_ zejmKB2zlYuTDd$#p-dy2wGo5ZmA2$(6P$wd756iuM>eoIR=g-$-l)peFl^|oZoKz;An=#*RQAJ_6#^>+fEMD!i_LF z4#c#gc5ENtW$vSY*#()RS;k{+%_-#*k%KYk^MCr*JlSXsRQOc$9f6nY_tw&ZDv^XR zNNuT|{KeLRt=*Q&e{Tf~#e(8n(_Hj^MWsiY>9*7KVK0?pU|*g4yVm1s~Dy{M+`jWo&TGJS(*P|+2Zr-6h*5i{9KG$l)?|`sA2-l;B-3%xShye){cX=*+m4m8!}#9P z%-hj2Ct&$YV@zr~k(lPNwY#JcnR(;>U8l?UZ*3c4#7Lx4#zhBcC~uEA@tY4-HmSE9qSYrRlQ0+xTiARC!Lq1_|oMD%ms-7`Mh+( zi!8!`#hT}!=Lp{*P{?xGeR`!>qYanBA1T%axRueI_E zT{yf(`9u#AQQXdqC#~n^tjqJ)VTlIRwT$bJZF}i*ioe?a0ohdpG1NQT#i;4~K!j!+ z(_D$`b^)0GyIiRyu*+~_FK7;n?TDkllKqjN_Gqc#_@d|FrY_?(V*Ze zD@pjFg-Wr=S8xyQi;OaSAH(vWpsh)Tc9XVhleXduqf&j~X+KKy*i5~?gPie?#Yc%Q zitX_jmY>x_27r9hS)wmiem*si5m!kgn55x|ccf*bkMUQN_q>hw8*=;FwyU8;i=7YV zD2}$NjTrJ3S5kk$*|F?!c;{blDXJ4^_`+zf*wmyZzQ9(T3We@D!FL{Ve~{UGCOHHOfcS=nGW z{e`ge{3+o6PTo`V;o$BHrgpmKB%9s;Zk2n=6h`S!Cj9%rc$dC)hi2&ju7Z zF7_+5-MztS79jSe%)@%`eBp~1yty-mmQDL2Wp*(%#UBnG>f5)kdx>F;cy>0BgPOv9 zbM#kwGNYtE2hQDLs_EB`iP!SN0;f)&a=tM(CoJ^h@ZrO(FJ!cJTu1m@UtnM!^2cxc zykuF_!y6sGV+kH#GeXD^r;@iLC$}=iI!tX5s69LoqAB1bT>3b?{$*HflX=g>l-&Gw z1C38lVb6CU6GzZ9ye8!C*d<@+=IDBJM7;2BDaP_HjyvW54XI`m{Yy6G!QlcbR;Qlj1QPz(6taZ zxYv$u=5cP_*f;Mio6OM=H&7#lBV_S@oKV}-mjT&DS}ao4<`VvETn|qaM2Q*T=$}bf zME>J)vt7#9%M$DLLxT@kcrDzKQ-%F!PEmX1!?*UqI9k|$Pc^4dJInU zGl<-sc=}L>iYXc?B%^tvl1W%3pGD$c{eTW_W4z<(=H}KY<>OVTF?^s7#zHeu=}RTC zegEJv;!Jl=N#{o0+=oJCIM38J1>xh0lRciY>~r(+@fo=bp!Y5$uya*RKCeCR)&4uB zjsyxI`eqP#|9(_J2glZlF#nfNj+J~c0gJ!ABo&XtrGYiOxP2E+Pc$d{XQx#@(n4YB zWgFweTYaOyjU_I_0tO*5rFe3(A9c-`2y}OMcP%9#SR6%|il4V|A-~1JXs|FsX2Aii zkZ)vdIB}jM!L%h1xd=$9T|QGs-5X~hxawL47qWp`+(#NK_{hVMgUXnNJeZQ}R+}1& z`|zIznM%=5MZ*9|_yzTYW{Q!NMkn^^$L^_%LI{}XV)w2#;fObQJz-3{QNTJ4}2kg;Ak8qC-8Z`-=V-AFbE9- zz0Xtyo1oUUUy1tp_+X{g3L=DBmy6>rJ?3yK(io$0HcjbLz5k2`+L_s28REej!fDIl--1~r)B49`+k znu>tFe41y~Q6txyxJXi%8Sa$n$cvS!2aIZO{noAm$kbie zbJA^v*$nlHt3Tgd0l0|%a<&(t;*WOcJ*uFNLQYw7iiw|%L^>6-EJK1oVh#wga zCpoW1^f+|z4(vc(rJbUxSt(d=9x8?ugzq(=y&~;7gTLePOg1Z}Yn1Dzg@cg*j?Hw6 zc-ovj9X|VHnWeA6a}Uq%WRCskoic}YUUths^9u@+YRS!FN*W{Lbu$e3%>F6-R0FZO zGNF*qp(JvgO2a{2_vkDr3u&RIL|vIZ-SG6HRLMV3?OO#HXkV#L9Z}}zX9Ve`Sd&7X z=n1i~vtrHfjtD>`ZFXC|99GfbHGw!ILk=l22nVA&aFOX*u_o)!L!(f=ViKeQ)U(b^ zU%3;lZ{AF181L+6wImX>5o}>4Fn#&0`25_UOuL57K0@jE6bvxZ(Jcs-e0Y_%Ppg5a zd|xSS!fh?I;&N_fp?U|#-FvdrDiMTzfC|$0gikJbd33xR^4)V{G5nTMch||70QBA1PLQK0%-j%?B6WJ`A| z(^ArB>qw|h)z>E^X0o@!xx|1$Y0a~)xF*avu8+P_ze z(rRZt5lWyvRbn^|&BkAsE?s)Cpil$x)=0z-VaH(d)d{-8;8MjKPJENOGfrJ2#r~?p;Mu$%Ax0ezfkc9bp{dQ!VpOhb8pn7hUi@rl z2wnac7z!29n%(*y__Und_AY`Qk7Ms1kSys>I%o4NEh%b_dBfE*b_<*;rbQEwy8dR|Y@el+|I@_Lo{khEPS?(|*9H+)VwVb* z>!g|E{?OuxL-`r4aaajf`bnshOz6zcDhV04W1c@!)U`Q2oj*mgGo|`{q z<4PWDq|)fhb7^^FO&c3x(Fj>b&a!tG^5iah&bJIk>KxBCe;PaQJa3d7)vgnles)GD zZ$ty5-eGjH=1FOCfE8~DJ$>2vo56228W$;r_xv0aBep<|(Tcm`?MDq_c@2eljb|VP z@%@atMVd{AWf-18P)zS18IFoL*>kOGCt2~L!`#Eez2BMZ zDq%}{+QlWV3mk;h<{Tm={U9Zi_PIr5Y88NI!A@+l_l6y(<5XxeQ(Wqfh!~2kqqq+32(vwlxpi?RRpAkxRS?5PO z%}CuBvvYI^J!arG6sf0ul#*g<1O8enWuae3B};W*ot>28fwg?a8wI9!N06M$5yV@_ z&FXf=aW7?f;5c7}*Z`(JKZ^HG+D!iHdltVox~k(LOLiK7L=X9;5lGA|E1Dj;b5SU| zF!AhoBnitDcyL6?Mn!nM?_uly@CAk11%<(5I(EUPk_S~>#UT287&WM(ocm)z3!1OX`gmE0`qQ4(mG_5 z%aDfvH13@~^EG%M7iakaHO@54Frxu}wWGvg>l&s2-_&--3{l?VjM0@-b-Mc?=uA>Z ziY2;{eUxCF#eT(>vr2`qtCvGGTnev$$P1{Dxw_OELUgQnDK2tr0_fCwTSwooFuU`7 zYIJmWlHhripFe-r7y4dqT%zm}4Yl@#FQoNTO7C_#NBLL9RY6(#7wY@dC(OC^|H?=m z)Y^&1N{zJw*L%;}W~M6JT;jk1IS}%k9CduMq7@#Oq85`$!l@WckUi?!7)=;W{6N9GCvpkWJBy zs-xfw9HCiJAZm`V?xCxV{y zk-DzyvvkJ4nzQwd{FQ3H^D(y#QLveVO`nEPIkcet)N7HND(Qj<2`yvB zJcOQP5CNl2DQPP$>MsL{ga_)Sw7#Jb7Y82p{`F3Ek>h5@H(peUC|@!(h3aWh5__W5 zeG%&&@`crL=dz2#nfK5QEI;61PZ}^lsJxa(!cIoS8^D{Np>uh7y9yTan74p|&KoJx ziz7^pVGV4%etsV*5jVCI(vqzY-4kGX`e22~N3pd-W}z+`Ahwgm>NZ51oTk(^EM{g0 z32n)-gphEad#&9ul5!B~)zE>&+Qyw)FN~j4>T*Ti4qyoBk(P zDqLI6rk8UE3|kGvff~J>F>n#UTEIW60N0jh>wBLCB5VLSv3wrvdiVfWG7P@k}fx+NX&~6 zdd55w8KEpe=m&&jI5=?RR<60$*gdq5HgFp9-2wSj7=J=> z9#z;gu1N^?jg1(5Q-p1oX@Qh`2dxo}-eGK(yZz)(s~%|TG0@31_6XGwo&3y5HqCj1 zb?8vlCazlvudghclTlB7?YBDl-s$qkT|}cqV~bscha|>3PtoaP9Qq4kI`)kVXviCH zdqDzTwsS$@t;9%Tj(a8yX*2+i8uwA%TnV^3s;elo|Fbe}HS>@mBS$Nk1x;kZeW zRxt6lNYcN+XYVmh@O&f?5CukaXoj9^h z<1#{p<$NnXlB}b;l?wbmh&^z|)ppL6@mtv2z zaw2E!?j6UkeM&13Xwpd<10y*LZxlM~1q>hea&qdu4M1lVU70s64Oz(2bY{kN%J{I= z5k8<>aEEn85r4^><}%clfK%w=<5OJ`8IgPUm3$R-LdJQ>L@{E(6X>#TCHjJ9=UrGv z9A|{7co`aiM8dymiPfA-48zUb*ZbIxPR&`K})Pah+cvs{b{LY zb9MSn4F8bVM8b`uA$EPWg>yl;n{u-o1C>Y-=r7><4hy>)5fM>S9b8St#^-y(G6>#E z@PZ~ITTmBeVPjoThYgGwg9=RV@>U4l4@vnWKFabQ|9|%k4sUG?dm@}f-`BVPW!WPA ztk@VF-Wc4EcLx--Cv7Z#bIX1OYtyxx)9+E(oflHkO(cFF(uCEfwctp;Uwd~&PZ+;I0I_{(CyAP2{%tFbJHq_JtIk!0XOtt^~@ zMn}6ikdRmg`=+!r4y4k*w>*5h{_81ZAEnVBxBHnas(v;Gnvs;27d0Q6H?5bxkaR*> zJCPv?Vg2~hrk#DY!&|9LMit`-@zpgfA^6yxOcFxpc!5Fam)>P)AsLM`pf&P(iJVz_ zmlJSl-6a*X_a=P}e)4e=@x3QF81`RT-;&Hut_FI&HzBK&#f}7_R8m7+vft`e4*cFp zg-}LOwG`bJ=go0viJIE@KU&5(yOA|rQ=2OA9WQ-AhZoLq;77J%y)Fwur#8+kaL_RkW>%dLY%{a=RAqjv?aV

v3z9DA^K@XrXLAt7pS@q(o=*bmmAb#TTsqbgxez^96kt`_erUCQ7 z5~;2uxXFJ6cR_k(tDRu0ZxU)O(fy*kHm9rIet>V_$UrsbN4%QNRzuAJyrtn99|57L zsA0-Y)xnDAMj4pwRYeRB+E5LK+s?7-?zM3zRv3WzK*TCtHhCW{2&F;@#2H`yrY9 zaFv(kZMdnHhiGDNMxTw z;}ZCOo-F_^n4)=TooJ3%d=tDzc76s{QkR;c`fvvXon)4VuY<}n&CYE1Y%w!?3b|Wv z+U3!n`d#v+(M;n{!!a|8Q9o$Ezy(Qe*q*9sS*^&(sGsY0o)g<{_^N%Hi z58V*oTmyM0UAzI9X@_7&eQhCx*&UT%^7!`qWA4`}yhbZ-vV!0tm-|C0fG;uk^= zvj#Ex z(r>2(4?sUzYSjCcg>IjsxW3#neCstL&ONdBa^r-=#2+Vgx!<{AC1U66J zA?8c$h-;UaQGmP(41348{r<)p0GzG-c^a`mhbsGW4ODzR_1OKWYP}ryPu(^DT-)RL zLE;q>qn1Wu)H!lNKd3)^$-Xv~K*n4U%>{=t=?L=Lx=y)m!Iw0+ z1GSS<-k6f8^iR_(E-Fh9x0~LM+vTKSomO9oh_X1|KXy9cEu=Tc?Iqqn0T5Tf-O`JkrT|TyKvdjz6#7UA=HY^qDS&9UrSpVtgl$4ju+frf zpVuBzzNuUvl1lqR`|Mzxz1qr>DFC(VR<|XYF{^X@#ei%NFi1?I(u=OFU4qay7P0~+ zUuILnO@dshb|Jgy!L^`;MX4CvLQ$QKa5qoE%>;)@+wX2O?Hc<3yF+xR!TujFUr&@j zU3!Ct%xrEeD>9Sgvg_Jm7`H&t+5g|gX5qRo`DpfX1oHTu_PqE!tz0?xTVD$8nOx*Y zt~W{~{EMWRA*s{Sl|MV2-j*E~AF^D!wG$N=vwe#i9ns)AkrF&H0w*F#B234epypa@~vH@;^V;!WzWUO+WJeEb$uoxNeX(__$xgctCr^mY*?&uBri( zv_P}qT-%Y#5&K&PR-zb|TS+&AX@dzn)55dD`R%)63bogmU~LZ5M9eGkS;$rvPM6j= zn2EN5#PsBBzS=x!eXW$UgXNIW5=UWcFBe=)KyH|Y*6D_mBhR4{11z#%ahyzhfd_qi zZ&M76DCKIi)whWfk`2ngFfbe``1>|~tww;iF_r@-@L5+&8~EBtd^BA^86_+e86|dz z0Z{(uxJZ6Q7^V$nw6r*70-yH?(LHza^P|u?^#HtO#b%v_U~QKi+b%d#59@%1)TB_l zKlwp3u2Llt%*65mgC%DbenjY&ytbqTaXNcT*Qf%-qW}k!WZu?2bi~eN+{+lghi)7_ zJcv5$wtl%ICv4-RviT=xNU$SwUplu|e$3VJwRwQ%BMFmmD7q9x;)2)&^A_xdbSQ0f5FXA2OQ57q-gG4bciKG^S-OI0PAtWNs(oz~-y}@mP zY>s10yQ0-CgvPq`7JMxXuOa(m`}D5O&X#`dK8?=n6qWXzH*8H%$gpPFuV1o(6uri* zq1I$%9k&H#3(wv-o|hcZUh>;C^~Zx5e&C^_bwN$9euI88Ys$?g!j)k5kd3hSp_@CO zi*CtAiSw)DaK8!de%~#;J@3m2u2g8eepdp?L(zn0?^pt!^1GX8^za~Iuhi1p=X@@N zlrNVC5*6T1MdVIi@}~ImCoc0>ho~7ouO51mf7}OSg%+o*CtC)R_vfFPZOhILQkz*1 zQsbE2c&c@~zxMqPWRFj^Ejb_ifG)K^Z|9nV*u(WaHt=y-StJv>C% ztL0tib73Gt+Ak9zN;NaX@NfQpudSGfCSwjgd$slS$!x@Dq%DsCfSstNCh>DRJ23Ax zSmF}Z&b@dE7_Rl++6_2vTUwLnhJmQ7tl}glV~p!fba@+13Erid4WAYA8cb}6;|MXB z=jRmb-v^qtKJv)DxEBR?KHM1404NdvlJg=XrgWbc`B)%Lv2P2L(I}x@{$2Yh{P`5u z_fSmhuIwb;ns`6y`CCtbIc?Z(;Q{!v*19>%Wl5AhaWW@EaI&{XdZqwLs%_^I0rWv; zdq24dME79-cJo$t8fJH}EL|xvH0WOjT-C<)E$Nm`=B4Kw0|u+vIVIT{{S&}Y!5i7XrkBduFzfW_KlT@`&T zuU>KHwHq#f>Fp7~#(_^U4N$p3n=QO2^ppApAgHiLC>l1})paJ<*&8CuXG~V1gdk8c zNcZ0B^t8zpoUv=Lv0Kciu3J7r`6xvQ##nt$?R>`Y>h;a%K>bk8&dW}M2Li;87oIP^ za4*-BvYbF*lfMFL%8Jysy zdYvU!(}$tK)##W%31G_5PVAnCr(Ut8JiusbD?_>IFQ^#ib^2%ih>WnZ#hq6_WqILo zunrjj^pS?Il!JhKo;Nn?p&q#r4OaEl=2{Cn)Co}XsS&w=I~$TR{~G&xUv7A8;-5#x zhd1eBGThd0!Hi8p?s7MP>RxXQ*dv@p|16Y+FtXMBr!4EKIV9>DRHevmx5^ z?D*Hna^oMwqTBYHJb$&hU}lE%sMXg2mwjvo}5U=oLfLG#?Oenzob{oV#3r zGZs~-Zg+6~6kA6gSD$#pC|$?%*V4cGqdo0P*qYHzk+H^^!q%pTyMfp8^t!`7l!X0-$70W>7%B> zIBu%&JF|U7W96Bo6fz@RpF589nFRv8#<3Mw@6VB43q8>15{ctVDk1w-Tvk~*-;9Xk z#wfVQeJVlv!a@ujMXH84*w1=bPczFjeeV2nPLTC&6PQ~!;z5EoMxhQG2D9YU&qDrw z5HiZ(<)JL9p#z07lQW-*XynHS$pO&8oR;lYvp-M#Et?qQ8PPTV1oI(9bst+cpbgmO5TOtP=V)|L1`#ycU!{z4J!1l9NM2b7pLH# z=aUO{_;pK&EIaBbOL)jB8B}Fs{GGq~|NDLqGWND5q`F@?J2M(W)X82Ts)!{sFQumNa2?jb#(T((X21LfVPI5%tStk zxn|d5Yo1?-wuZ~=46Hz|DHTw((GDB^N^1m zL26k1M45LTY@fd)aW4PsL>4o9YSI73e;zHY=$3{zG!$}Aq9iy;Z2%`rm~JE7 zS2p6ALl<^obkZo8*zcmU;s&pwor(L502nh$MHkeNF?L2K=RKhMeLvi^AL;AG)!0z_ z!=Id;mNza!IRPokj-dZVg4a;hKaoW14I_nwm)^$AD?H?4AS!F{rVtoW7rNPnM{ zc)QGCeIu@if{^1y$1*{XJ0u`e z+k0F|t97*ZZS|kyW3A0oVx?hMq4I}^wmq;0_Cy26uI&8iF8r!|AELm2Av`^ZRNdih ztcg8ou6#`?t@>zcu1@^9uaS)ojU%w`t$hF`%CmD1Nz19wZ8S7|Eeku_AOPGMf4L2y z*D-2Y%X9Y4fz=Fn8%o0RtaXQcWiFjaW-3l?^!)*9L0TK>Kq!v6vOiXBvs1o@JYUiA z`ze{HaTeJJK;PPljNz3!K`6ota+yaqh540b3UuT7ogacZew$zhn~%0u&D3mk>0}hoW)b3^t(;f+PXrvobdKL5TSarJ63*^Q%4`gZA&E$`C7 z(jh6@S1CrqhLx2V{-q42oKE>4R7^|zzbe;G9frwUy2jISk>ek?z>8)|LIq{Ie8Lk( zYCD6e0&K{aBZKF?#*G%i>4w^gK7~_ujE)E~pVx$omD+(E2%-_yE9|Ps4RqIP>zxuK zA}4=dUg!zgxCS`E@4pc(@~X(^X3{Aawja^`ilU#RSeOrvc*UR8jKpFPr_FD=+>bW> zrpthf@6kb$aK#Ct4$C96S_5tJ2B)Tv&Gs^Sx1-r30 zVVrf7!u-ezBo@CRoOf%``EPI#_(>4CoQaq1MyN`vKtH6&3EpyINV+|wgEws23yOCp zCF2oO>G9y(L{%?h3N1+g|yJ4*U{hoqE3c0*TOzmh|Hc;Fcx z=Xu^-v>|4aboXzt+pE!+qDj#lmlj5+ek;}zAUxV(eHnHr@3Y9_1eU$go}{$oK&qYH zQ0L*;$gTvlu(i9+@kqm^uBcbd(pXI7yoD-B&1w8o!*)C4CPBWmtHc}Ew{TJ)~8l64HVPMaJ zqfV^&u0RAOf#yOsQ@>*kErpcwcNy5@@MIEpdIcy+NtqP_aAu(D4yIJv>f_$}Dvzl5 z3I<n0`qW*DD`)b(!Tba~$l#TRlo* zC_qM)jSysAAP9A4r$l$*;QWSz?p?W$$;+6C=Sa%~4_Z7czqx=ROhv=YHSMgTPCR}e zDH=q7+V0OW(1$1#p7rBaHP9grf{LDFNCnPaVgWIbSo0%*ygb2mFVzb+lm_xOYe)Hy zhy-h>@=1td@_{7rLoXIXd8)>0vhrm34>Rpq-p~#eo$Uh|H{tAz=wsj(f~n)J1e78>ORzD1opeGBm`9>Y6P-;$ZK zgH8qL?#qkrAgf%-i3g}n2_J}2F|u$=nr1^4J|;u$zx$u60NlaOh%x6kvqCgFA0ee1 z1Rx;TODLDSBfayWTc;4AwECIYcBCPLXSYZ}3R|SZ!eTIvy5@7)6ef!nj#NfBj@@G3 z6J3iB(NjHqRrKLbbWU++H+vU;WC>GC#UQ(QfvZa&aSdR!xJj`GCv19C3qD{K3wD{1 zNmpvB!K4Ax!wm7Pdkspb(4`ZlWDMjk&X_A-*D*{M>I^x6wW>%$nBoREpnKsI*kg4q zz@#=X!OnS%$SreAEWPx;Xz9NiJm`Tl4vxc<_wq4#Co6_oxT3 zhw)j#ChcqXtqY3~yy~G%CT=RVc}|T_APZ;Ml#%fmO_`>YBxhsnHtf7>l%W0LERc~F zxFbzFDk~x-_rXL|fiVOMQh2Z{$AD{j@{dIHv1iq2;6<>*U75_O)7`)DywwwKm+L5hk|e6d8mcAq@U2V`i`^d+OGOh_r>YlD8E&@byhM~`vBcAI_d z0x^68&Mv(XSACsO@=F^RL4Ty~9+Nh<5S<)-Mtfzb=CK$!mE44{OR${RweW)gWNwz{GWuM$W!158gf#1O*Nge05y-k|O8{QiUA z_Z-gQFd^rD?)Uw;cWzw$bd|i41P)I~TPn*{j1|dQl8fLX9>I@`&{5f9z=-(<_v_-} zU4d_hmY70I9L>q}=85;B+=*-duu&Q#9!g3JOYOR_P9$qFdtl>-M-Lf1$oZc#WMn8F zVxXDG+NBIkv}U$ks6>Wpf-DY~qEQ=BcYa!{Z-Z3fbUvQ*fT_^b>I9-c^J9-j!B}U1 zcyG~cGE$TPqhP2NZA)-T*h*VmH(9H+r8DxNLpq9-Z&I>5bjR+BN)Md3#bv`n?XpbME@95W#DN40&B;W;D^pEI|!Dgl<-W**W4wI9GO6*l#GQ&OTE{a zlu-RzUkWm$vGUrrITqcc)D!`V;;C7}@hm76=MKwf)%IjpQHiWMZ{#gsw1eGBa5v3S zS63uuv+=x(#(RkOHL+>8sM!`HQ|~LB44<2@A^%cX8#R5I$Pl>W#+2@oKxH9}zJ zafs{fW;0Oxl(AnQ=yWqDRnz5cahFZu&R0yt3!fl%o3PqIP1-oc#+;r}0p@%so?lvv z>(-F6`|NoWH;5Ata3(H8)CUULCd+bl-aoC<(&Ydw1G{-v}+vT}W+P6dwG@nT{mpcD`r(i!4> z2fRdKzGPW@mm1D0MKd$D|KpMXzpyFcO`2hG%V@DH6H3Qu`RiZ4)%ZZXciIb{uD%LKvucJ?lL z5U)V2()zqsFQKleZnDkdL1#iKq= zr>&(Xs-(O?#KoJ`N)Hy*KOEk$HD1LK-eS^Lm!sL7M7=Savq)1TA62U&@ycbtggFHj z-nU_)UTm7BCT*CLABT=9CUdY}x0sHN+9yWURqLf&C>d&Q59JArbDg}dxz9Fdz#-7>%Qg|=7AfW1)Ca}2`IfT3 z>5?&~EY6c=QD!LGYKg110*CzZ<+!+x{e=mNHg#byuOy!IJRQBuFBIb`-og;)Qh|{r zoC~Bl_F;q4Rr9h|Z?}>Cs*d=a1*&ee{|exfn3Ls0FJJR$6qwnnwS1U|N9(v@o5yvkhwAJIZT1lsb@KT(g8jhG2y)4T3w()PYvgikWUy)(LxL3jZYzL*YJkT~pT`nm z;@6mzwxH~L>5`c2VSWq;3rx}?{VCseMmo+$Er~q5$hPO z@{#IJ-mqGLPnWlgTgN_1SCELd1cD`wQ+^xK%-OqKSluLS3e}WR?C8*|X1m&31e2C$ z1)E@tOjb`=F5-XBzt$+5b>~CWc;ll)oPCA!O08AF>mstM6I(q3vwckcqmw$Oc&M-< zMRuk_sm;l<01No0CiWPv55WfM&p@z-fN=TIaCtJ%M&kA^hjV!0H(Hk^ zdo}#@@45o-sq|J;B1+M~(-f`FFCh z7NQv%3P%?*eUrLQvt59)JSp@0NwiopeIBgksX0n-m-FD)wR}@#~OJ+A*xX2 ziCzvX3IV}tjDw{sw19Qs;ruc+S0G_O&Rq)ep$QlTe8Y-s16GJNbZm^f_u~gd3wu({ zVhX}Wvt2R?VG*eMpe87_pdGAGmp3L;%4QWAI-?l+%!Ydp0(amKpLBDzR+jIUNjdJ# zp|dcSF|Z)*a_s2upIh*a|9x?%bO@!%MVUs=Yv_%6=`WpRQ7PxA3gmY0jt*2sYHw9g&cy*hM?SITY#K zrWxjLnv!2qs_8Tb$SI&;F^H0bpNTZX2qfIEmiQ6ZkUkUnx7o4`R=W{*?lMmV$V=x7 z3cHz2@o_bF;f~|vR@)XnzoX`wsz;LBCHd?In`*YpDA_1^$!lwhQF0NFV>Wv3pcIw$=xvDg~bHU8Dhcb%^Q#Vw7!?;`Jf;3GSJo@Zj%SR&*ueyUVOhz zF=$mMcOv=d;KQ)sDKyWmq1~JluO-@MjnZsr=o%J1wegV!iS4bVSu^BeV%7uuvOVm9 zNZXM+!?H1oS;fB2>*1w!jqs{CHn>!*Jb>T(XNGqfjQtpy4mn`bCs|PRZ7$a`H4s3G zzvGU0wu|#SsLaiWjlo^PFmRd@55aZ~#aY6k4e4MTcW?8{uqlgEdERs+!J_WlD_56s z*R0R|_-G)La;w7B*1jhQ`>1CoVtG%Bs|L+v%ESbFL&NX7qni^Md3a%}Bj~Hmd9Dga z(DFc);EtC(0-JKb^6V*%Ih(|)U}l2!qk{|^SGk<`^ZoW#$vapG_lMI}{@<->Cf}fr z<$I_}b&_7~iUZVWn6R@M%1z zj*P*JbG%w^m~<&9UMr6oH(um_sVG|kllEre+$gpqTAP8}GJO-fEPkF2&uw!_{LzS- z;!i@v9xk{Cn^&EHAvV#_zF5$^RDA=^6D**LB?0gk8FsQfZ=^wTy@Ln!yDUSIM+0~6 zW?f{2T!+vT%u6+r!pFn~!Nw`-x{9he0z@mK%$YptWNPf2YwpH9~Eu?D?vmSrH zpu0a@;5k>C4^?s0MWtI^aXW#BVn}^D4RwlRQc|yq4WHmSfWiDK5JX@QFrweZ`|ImZ z>1ImcEB+RZpH7+lL$^=qaI0S;pVIv`exv)8WV?VQJf&0O|F<9i%Xc{){yvqTPML1J z1CCNXrJE6+)z7c>-TxKl&DX{|IY!|XFxugp_`iSjy*bg~=h#!i{$T_MporNowpV0# z!S;9kHRE}@Y`JC85BY3K(UjO&@0b22)I3EPiJ#+|f7rD@wZq>inWvja$2(z{$^ZG| zNgwHKpP};|)%j=N{TXziLO^Gc#I0{uwp}yd!sIVep8ey3O4^aVUU*U4s`}=n44rL) zZ~XPiVTv5QCecC)ZF}Xs8Qh%v3%+#eZ_M2WdVI?NI5kSI(tMUXHr0L7FoI7iT;STk zXOv>+4~pV^zKVd-H#YiuF*$$c*GGr*lMeiCQG>fg`z6=fV*y7+ZvA}n=B^t(r+lBdW^vGn z@(umA3|glZ#nQ(W9-G6W_kH|$DVOuX4X{{c6xh_VD_5@Y3ta}K;n(lnvQ1u;&+l-7 zx@hr&&S=}f2QQ}NfO~(P9>7REjzV$zI@3Q-{n_>#pEktFDeHV@TPZ-m=kj=N{t$qz d>{{WDYrnETZo%6ts{LQS^Y656?e85v^Irxk%)0;p literal 0 HcmV?d00001 From dbcabeb109e059133090fc64b8c595345acd9edb Mon Sep 17 00:00:00 2001 From: Sil de Hoop <34340385+sildehoop@users.noreply.github.com> Date: Sat, 29 Jan 2022 15:15:53 +0100 Subject: [PATCH 075/248] update readme and add image and rename yaml file --- .../custom_card_input_datetime/README.md | 6 +++--- ...t_datetime.yaml => card_input_datetime.yaml} | 0 docs/assets/img/card_input_datetime.png | Bin 0 -> 40818 bytes 3 files changed, 3 insertions(+), 3 deletions(-) rename custom_cards/custom_card_input_datetime/{custom_card_input_datetime.yaml => card_input_datetime.yaml} (100%) create mode 100644 docs/assets/img/card_input_datetime.png diff --git a/custom_cards/custom_card_input_datetime/README.md b/custom_cards/custom_card_input_datetime/README.md index a29b6a484..2fd993cca 100644 --- a/custom_cards/custom_card_input_datetime/README.md +++ b/custom_cards/custom_card_input_datetime/README.md @@ -5,9 +5,9 @@ title: card_input_datetime # Custom-card "Input Datetime Card" -The `card_input_datetime` you can control a input_number entity +The `card_input_datetime` you can control a input_datetime entity. -![Input Datetime Card](./assets/img/card_input_datetime.png) +![Input Datetime Card](../../docs/assets/img/card_input_datetime.png) ## Credits @@ -58,5 +58,5 @@ n/a ??? note "Template Code" ```yaml title="custom_card_input_datetime.yaml" - --8<-- "custom_cards/custom_card_input_datetime/custom_card_input_datetime.yaml" + --8<-- "custom_cards/custom_card_input_datetime/card_input_datetime.yaml" ``` diff --git a/custom_cards/custom_card_input_datetime/custom_card_input_datetime.yaml b/custom_cards/custom_card_input_datetime/card_input_datetime.yaml similarity index 100% rename from custom_cards/custom_card_input_datetime/custom_card_input_datetime.yaml rename to custom_cards/custom_card_input_datetime/card_input_datetime.yaml diff --git a/docs/assets/img/card_input_datetime.png b/docs/assets/img/card_input_datetime.png new file mode 100644 index 0000000000000000000000000000000000000000..2285e998e3e068bceaee458e9b740ad6b003ac83 GIT binary patch literal 40818 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 z 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 Date: Sat, 29 Jan 2022 15:23:34 +0100 Subject: [PATCH 076/248] fix Template Code title --- docs/usage/cards/card_media_player_controls.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage/cards/card_media_player_controls.md b/docs/usage/cards/card_media_player_controls.md index 3668b387a..30c0a6653 100644 --- a/docs/usage/cards/card_media_player_controls.md +++ b/docs/usage/cards/card_media_player_controls.md @@ -31,6 +31,6 @@ With the `card_media_player_controls` you have the state of your media_player an ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_media_player_controls.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player_controls.yaml" ``` From 18e501243621aee3dea379af9231363f1ac28bf6 Mon Sep 17 00:00:00 2001 From: Sil de Hoop <34340385+sildehoop@users.noreply.github.com> Date: Sat, 29 Jan 2022 15:25:43 +0100 Subject: [PATCH 077/248] added legacy_templates --- .../legacy_templates/cards.yaml | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/legacy_templates/cards.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/legacy_templates/cards.yaml index 1b7fe62aa..c4cf96b35 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/legacy_templates/cards.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/legacy_templates/cards.yaml @@ -50,6 +50,28 @@ media_buttons: ulm_card_media_player_controls_entity: "[[[ return variables.entity ]]]" ulm_card_media_player_controls_name: "[[[ return variables.name ]]]" +### Card renaming ### +# Template name: card_cover_with_buttons --> card_cover_buttons +# Template name: card_media_player_with_control --> card_media_player_art +# Template name: card_media_player_with_controls --> card_media_player_controls + +card_cover_with_buttons: + template: "card_cover_buttons" + variables: + ulm_card_cover_buttons_name: "[[[ return variables.ulm_card_cover_with_buttons_name ]]]" + ulm_card_cover_buttons_entity: "[[[ return variables.ulm_card_cover_with_buttons_entity ]]]" + +card_media_player_with_control: + template: "card_media_player_art" + entity: "[[[ return entity.entity_id ]]]" + name: "[[[ return entity.attributes.friendly_name ]]]" # this will pass true the friendly name because you cannot pass true the `name:` + +card_media_player_with_controls: + template: "card_media_player_controls" + variables: + ulm_card_media_player_controls_entity: "[[[ return variables.ulm_card_media_player_with_controls_name ]]]" + ulm_card_media_player_controls_name: "[[[ return variables.ulm_card_media_player_with_controls_entity ]]]" + ### NEW CARD_LIGHT ALL IN ONE ### card_light_slider: template: "card_light" From 7f7118abc15ce4ebdcb517060d1d91c2afee4d57 Mon Sep 17 00:00:00 2001 From: Magnus Persson Date: Sat, 29 Jan 2022 21:23:53 +0100 Subject: [PATCH 078/248] Updated docs for vert_butt --- docs/usage/cards/card_vertical_button.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/usage/cards/card_vertical_button.md b/docs/usage/cards/card_vertical_button.md index 8d29dc148..d8ace12e9 100644 --- a/docs/usage/cards/card_vertical_button.md +++ b/docs/usage/cards/card_vertical_button.md @@ -9,13 +9,17 @@ hide: ![example-image](../../assets/img/ulm_cards/card_example.png){ width="500" } -Card description should be here. +Card `card_vertical_button` can be used in different ways. The primary usage is to switch between scenes or toggle a scene on/off. The seconday use is to toggle a switch or light. It's intended to be used with helper entities, either [input_select](https://www.home-assistant.io/integrations/input_select/) or [input_booelan](https://www.home-assistant.io/integrations/input_boolean/). + +You connect the card to either an input_select (toggle between scenes) or input_boolean (toggle one scene) and the button will change the state of these entities. The final step is to create an automation that triggers on the state change and then runs the actions you want, apply a scene or interact with other entities. + +The variable `ulm_card_vertical_button_state` needs to be used togehter with input_select to tie a specific state to the button. ## Variables | Variable | Default | Required | Notes | |----------|---------|------------------|-------------------| -| ulm_card_vertical_button_state | on | :material-check: | Compare the entity state value with this value, ex: the button will be on if the entity.state == state | +| ulm_card_vertical_button_state | on | :material-check: | Compare the entity state value with this value, ex: the button will be on if the entity.state == state (only required with input_select) | | ulm_card_vertical_button_color | blue | :material-close: | color for the when the button is on. The color names are defined in the theme. The following colors are supported: blue, green, yellow, pink, red, purple | ## Usage From 169eecaedefcfc69df7b36567e32e8b75fa1eb60 Mon Sep 17 00:00:00 2001 From: Sil de Hoop <34340385+sildehoop@users.noreply.github.com> Date: Sun, 30 Jan 2022 13:02:36 +0100 Subject: [PATCH 079/248] Merge branch 'feat-improve-card-scenes' into custom_card_scenes --- custom_cards/custom_card_scenes/README.md | 2 +- custom_cards/custom_card_scenes/card_scenes.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/custom_cards/custom_card_scenes/README.md b/custom_cards/custom_card_scenes/README.md index b7f66722a..1fa2d3c87 100644 --- a/custom_cards/custom_card_scenes/README.md +++ b/custom_cards/custom_card_scenes/README.md @@ -7,7 +7,7 @@ hide: # Custom-card "Scenes Card" -With the `card_scenes` you can activate scenes. +The `card_scenes` you can control up to 5 `entity` such as `scene` or `script`. ![Scenes Card](../../docs/assets/img/card_scenes.png) diff --git a/custom_cards/custom_card_scenes/card_scenes.yaml b/custom_cards/custom_card_scenes/card_scenes.yaml index 8c5dbd4d9..bc576a70f 100644 --- a/custom_cards/custom_card_scenes/card_scenes.yaml +++ b/custom_cards/custom_card_scenes/card_scenes.yaml @@ -48,7 +48,7 @@ card_scenes: color_bg: "[[[ return variables.color_bg_1 ]]]" tap_action: action: "call-service" - service: "scene.turn_on" + service: "homeassistant.turn_on" service_data: entity_id: "[[[ return variables.entity_1 ]]]" item2: @@ -63,7 +63,7 @@ card_scenes: color_bg: "[[[ return variables.color_bg_2 ]]]" tap_action: action: "call-service" - service: "scene.turn_on" + service: "homeassistant.turn_on" service_data: entity_id: "[[[ return variables.entity_2 ]]]" item3: @@ -78,7 +78,7 @@ card_scenes: color_bg: "[[[ return variables.color_bg_3 ]]]" tap_action: action: "call-service" - service: "scene.turn_on" + service: "homeassistant.turn_on" service_data: entity_id: "[[[ return variables.entity_3 ]]]" item4: @@ -93,7 +93,7 @@ card_scenes: color_bg: "[[[ return variables.color_bg_4 ]]]" tap_action: action: "call-service" - service: "scene.turn_on" + service: "homeassistant.turn_on" service_data: entity_id: "[[[ return variables.entity_4 ]]]" item5: @@ -108,7 +108,7 @@ card_scenes: color_bg: "[[[ return variables.color_bg_5 ]]]" tap_action: action: "call-service" - service: "scene.turn_on" + service: "homeassistant.turn_on" service_data: entity_id: "[[[ return variables.entity_5 ]]]" From 4a9bd6655db85c729ec682012d37c2f455c64095 Mon Sep 17 00:00:00 2001 From: Arthur <17024799+aehru@users.noreply.github.com> Date: Sun, 30 Jan 2022 15:31:46 +0100 Subject: [PATCH 080/248] Fix translations FR translation + fix displayed state of card_person --- .../lovelace/translations/DE.yaml | 1 + .../lovelace/translations/FR.yaml | 19 ++++++++++--------- .../lovelace/translations/IT.yaml | 1 + .../lovelace/translations/NL.yaml | 1 + .../lovelace/translations/PL.yaml | 1 + .../lovelace/translations/PT.yaml | 1 + .../lovelace/translations/SE.yaml | 1 + 7 files changed, 16 insertions(+), 9 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/DE.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/DE.yaml index 9488b5638..c02324a6d 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/DE.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/DE.yaml @@ -13,6 +13,7 @@ ulm_language_variables: ulm_cool: "Kühlen" ulm_person_state_home: "Zu Hause" ulm_person_state_away: "Abwesend" + ulm_person_state_not_home: "Abwesend" ulm_popups_back: "Zurück" ulm_popups_toggle: "Umschalten" ulm_popups_statistics: "Statistik" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml index b20cda7a6..144eb1670 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml @@ -11,8 +11,9 @@ ulm_language_variables: ulm_currency: "€" ulm_heat: "Chauffe" ulm_cool: "Frais" - ulm_person_state_home: "présent" - ulm_person_state_away: "absent" + ulm_person_state_home: "Présent" + ulm_person_state_away: "Absent" + ulm_person_state_not_home: "Absent" ulm_popups_back: "Retour" ulm_popups_toggle: "Basculer" ulm_popups_statistics: "Statistiques" @@ -21,10 +22,10 @@ ulm_language_variables: ulm_popups_color_temp: "Température" ulm_popups_color: "Couleur" ulm_unknown: "unknown" - ulm_alarm_armed_home: "Armed home" - ulm_alarm_armed_away: "Armed away" - ulm_alarm_disarmed: "Disarmed" - ulm_alarm_arming: "Arming" - ulm_alarm_triggered: "TRIGGERED" - ulm_playing: "Playing" - ulm_paused: "Paused" + ulm_alarm_armed_home: "Activée 'maison'" + ulm_alarm_armed_away: "Activée 'absent'" + ulm_alarm_disarmed: "Désactivée" + ulm_alarm_arming: "Activation" + ulm_alarm_triggered: "DÉCLENCHÉE" + ulm_playing: "Lecture" + ulm_paused: "En Pause" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/IT.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/IT.yaml index 91ee1f4ed..7ce28233f 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/IT.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/IT.yaml @@ -13,6 +13,7 @@ ulm_language_variables: ulm_cool: "Raffrescamento" ulm_person_state_home: "home" ulm_person_state_away: "away" + ulm_person_state_not_home: "away" ulm_popups_back: "Indietro" ulm_popups_toggle: "Alzare" ulm_popups_statistics: "Statistica" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/NL.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/NL.yaml index 7ee531c5a..7c52dd4ea 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/NL.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/NL.yaml @@ -14,6 +14,7 @@ ulm_language_variables: ulm_cool: "Koelen" ulm_person_state_home: "Thuis" ulm_person_state_away: "Afwezig" + ulm_person_state_not_home: "Afwezig" ulm_popups_back: "Terug" ulm_popups_toggle: "Schakel" ulm_popups_statistics: "Statistiek" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/PL.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/PL.yaml index d23152afc..349739402 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/PL.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/PL.yaml @@ -13,6 +13,7 @@ ulm_language_variables: ulm_cool: "Chłodzenie" ulm_person_state_home: "w domu" ulm_person_state_away: "poza domem" + ulm_person_state_not_home: "poza domen" ulm_popups_back: "Wróć" ulm_popups_toggle: "Przełącz" ulm_popups_statistics: "Statystyki" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/PT.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/PT.yaml index 5de47046b..584fb5803 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/PT.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/PT.yaml @@ -13,6 +13,7 @@ ulm_language_variables: ulm_cool: "Frio" ulm_person_state_home: "home" ulm_person_state_away: "away" + ulm_person_state_not_home: "away" ulm_popups_back: "Voltar" ulm_popups_toggle: "Alternar" ulm_popups_statistics: "Estatística" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/SE.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/SE.yaml index 6269e54d8..0322f1e51 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/SE.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/SE.yaml @@ -13,6 +13,7 @@ ulm_language_variables: ulm_cool: "Cool" ulm_person_state_home: "home" ulm_person_state_away: "away" + ulm_person_state_not_home: "away" ulm_popups_back: "Tillbaka" ulm_popups_toggle: "Toogle" ulm_popups_statistics: "Statistik" From 8af0fe47e15069640d34c78e592ec1eecee24d88 Mon Sep 17 00:00:00 2001 From: schumijo Date: Mon, 31 Jan 2022 08:52:05 +0100 Subject: [PATCH 081/248] Add support for xy mode --- .../popup_templates/popups/popup_light_brightness.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_light_brightness.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_light_brightness.yaml index 6fcdc7c2b..78efe1845 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_light_brightness.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_light_brightness.yaml @@ -5,7 +5,7 @@ popup_light_brightness: - grid-template-areas: > [[[ var contents = []; - var brightness_modes = ["brightness", "hs", "color_temp", "rgb", "rgbw"]; + var brightness_modes = ["brightness", "hs", "color_temp", "rgb", "rgbw", "xy"]; var color_temp_modes = ["color_temp"]; var color_modes = ["hs", "rgb", "rgbw", "xy"]; if (states[variables.ulm_popup_light_entity].attributes.supported_color_modes.some(r => brightness_modes.includes(r))) { @@ -23,7 +23,7 @@ popup_light_brightness: - grid-template-columns: > [[[ var columns = []; - var brightness_modes = ["brightness", "hs", "color_temp", "rgb", "rgbw"]; + var brightness_modes = ["brightness", "hs", "color_temp", "rgb", "rgbw", "xy"]; var color_temp_modes = ["color_temp"]; var color_modes = ["hs", "rgb", "rgbw", "xy"]; if (states[variables.ulm_popup_light_entity].attributes.supported_color_modes.some(r => brightness_modes.includes(r))) { @@ -49,7 +49,7 @@ popup_light_brightness: - align-self: "center" - display: > [[[ - var brightness_modes = ["brightness", "hs", "color_temp", "rgb", "rgbw"]; + var brightness_modes = ["brightness", "hs", "color_temp", "rgb", "rgbw", "xy"]; if (states[variables.ulm_popup_light_entity].attributes.supported_color_modes.some(r => brightness_modes.includes(r))) { return "block"; } @@ -191,7 +191,7 @@ popup_light_brightness: - grid-template-areas: > [[[ var areas = []; - var brightness_modes = ["brightness", "hs", "color_temp", "rgb", "rgbw"]; + var brightness_modes = ["brightness", "hs", "color_temp", "rgb", "rgbw", "xy"]; var color_temp_modes = ["color_temp"]; var color_modes = ["hs", "rgb", "rgbw", "xy"]; if (states[variables.ulm_popup_light_entity].attributes.supported_color_modes.some(r => brightness_modes.includes(r))) { @@ -208,7 +208,7 @@ popup_light_brightness: - grid-template-columns: > [[[ var columns = []; - var brightness_modes = ["brightness", "hs", "color_temp", "rgb", "rgbw"]; + var brightness_modes = ["brightness", "hs", "color_temp", "rgb", "rgbw", "xy"]; var color_temp_modes = ["color_temp"]; var color_modes = ["hs", "rgb", "rgbw", "xy"]; if (states[variables.ulm_popup_light_entity].attributes.supported_color_modes.some(r => brightness_modes.includes(r))) { From 9e68e0ea4d732442e9498da3c03001a1792bb6f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20H=C3=B6rrle?= Date: Mon, 31 Jan 2022 09:14:12 +0100 Subject: [PATCH 082/248] Fix folder hirarchie on wiki --- docs/setup/configuration.md | 8 +++----- docs/setup/installation.md | 12 ++++++------ 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/docs/setup/configuration.md b/docs/setup/configuration.md index 511e9f59d..563a90006 100644 --- a/docs/setup/configuration.md +++ b/docs/setup/configuration.md @@ -26,15 +26,13 @@ This example dashbaord file already contains the necessary directory bindings wi However, if you want to use your own, possibly already existing, dashbaord file, you must make the necessary bindings of the templates in it yourself. This can be done for example by specifying the following: ```yaml -# For future use! -ui_lovelace_minimalist: !include "custom_components/ui_lovelace_minimalist/lovelace/plugins/ui_lovelace_minimalist.yaml" # Button cards location button_card_templates: !include_dir_merge_named "custom_components/ui_lovelace_minimalist/__ui_minimalist__/ulm_templates/" ``` !!! note "" - **Please note!** Depending on where you have stored your own Dashboard .yaml file, your path specification can of course differ from the example and must be adapted by you. In the example it was assumed that the .yaml file is located in the top level of the Home Assistant configuration. + **Please note!** This step is only necessary if you are not using the sample dashboard file created for you. The path specifications are relative. Depending on where you have stored your own Dashboard .yaml file, your path specification can differ from the example and must be adapted by you. In the example it was assumed that the .yaml file is located in the top level of the Home Assistant configuration. ### UI Mode @@ -45,9 +43,9 @@ button_card_templates: !include_dir_merge_named "custom_components/ui_lovelace_m ## Custom Cards -This integration also allows you to add your own Custom Button Cards. These cards will be merged into a directory together witch the cards of this integration and the selected Language. +This integration also allows you to add your own Custom Button Cards. These cards are not part of the HACS installation and must be downloaded separately from the repo as needed. You can find an overview of the cards [here](https://ui-lovelace-minimalist.github.io/UI/usage/custom_cards/custom_card_bar_card/) in our wiki. The cards themselves for the download are on our repo [here](https://github.com/UI-Lovelace-Minimalist/UI/tree/main/custom_cards). -You might have noticed, during the installation process a directory for UI Lovelace Minimalist is/should be created in the Home Assistant configuration directory. The directory is named `ui_lovelace_minimalist`, within this directory you can put custom cards in the folder `custom_cards`. Basically you just have to create an folder inside `ui_lovelace_minimalist/custom_cards` for each cusom_card you want to add and put the custom_card.yaml file and the language file you need for the respective custom_card inside. +You might have noticed, during the installation process a directory for UI Lovelace Minimalist is/should be created in the Home Assistant configuration directory. The directory is named `ui_lovelace_minimalist`, within this directory you can put custom cards in the folder `custom_cards`. Basically you just have to create an folder inside `ui_lovelace_minimalist/custom_cards` for each cusom_card you want to add and put the custom_card.yaml file and the language file you need for the respective custom_card inside. These cards will then be merged into a directory together witch the cards of this integration and the selected Language. Make sure it's in the format like the following example: diff --git a/docs/setup/installation.md b/docs/setup/installation.md index 52f2a84c6..0fbda7ac0 100644 --- a/docs/setup/installation.md +++ b/docs/setup/installation.md @@ -30,11 +30,11 @@ Now you can configure the Integration, you can do this also after it's installed Currently, it may happen that themes are not automatically selected correctly for you in all cases automatically. Please make sure that the minimalist theme is correctly selected in your Home Assistant settings (click on your profile picture in Home Assistant, bottom left). -- Theme path: Make sure this is set to the same path as is configured in your `configuration.yaml` (default: `/themes`) +- Theme path: Make sure this is set to the same path as is configured in your `configuration.yaml` (default: `themes/`) !!! note "" - Please make sure that you have included this themes folder in your `configuration.yaml` in the [frontend settings](https://www.home-assistant.io/integrations/frontend/). Unfortunately, this is something that the HACS integration cannot do for you. If you use the /themes folder, your entry in `configuration.yaml` must look like this for example: + Please make sure that you have included this themes/ folder in your `configuration.yaml` in the [frontend settings](https://www.home-assistant.io/integrations/frontend/). Unfortunately, this is something that the HACS integration cannot do for you. If you use the themes/ folder, your entry in `configuration.yaml` must look like this for example: ```yaml frontend: @@ -62,10 +62,10 @@ A new file for the dashboard configuration, with a small example, where you can ```yaml config └── ui_lovelace_minimalist -├── config -├── custom_cards -└── dashboard -└── ui-lovelace.yaml + ├── config + ├── custom_cards + └── dashboard + └── ui-lovelace.yaml ``` In case you want to use your own ui-lovelace files go to [Configuration](../configuration). From 5c0c05586706d442aa3b5c070c08cc081ed1e075 Mon Sep 17 00:00:00 2001 From: schumijo Date: Mon, 31 Jan 2022 11:03:34 +0100 Subject: [PATCH 083/248] Add popup thermostat + docs --- .../card_templates/cards/card_thermostat.yaml | 116 +++--- .../legacy_templates/cards.yaml | 29 ++ .../popups/popup_aircondition.yaml | 107 ------ .../popups/popup_thermostat.yaml | 13 + .../popups/popup_thermostat_temperature.yaml | 360 ++++++++++++++++++ docs/assets/img/popup_thermostat_phone.png | Bin 0 -> 20356 bytes docs/assets/img/ulm_cards/card_thermostat.png | Bin 44882 -> 4443 bytes .../card_thermostat_with_controls.png | Bin 0 -> 6310 bytes .../card_thermostat_with_hvac_and_color.png | Bin 0 -> 8825 bytes docs/usage/cards/card_thermostat.md | 50 ++- docs/usage/popups/popup_aircondition.md | 14 - docs/usage/popups/popup_thermostat.md | 37 ++ 12 files changed, 535 insertions(+), 191 deletions(-) delete mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_aircondition.yaml create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_thermostat.yaml create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_thermostat_temperature.yaml create mode 100644 docs/assets/img/popup_thermostat_phone.png create mode 100644 docs/assets/img/ulm_cards/card_thermostat_with_controls.png create mode 100644 docs/assets/img/ulm_cards/card_thermostat_with_hvac_and_color.png delete mode 100644 docs/usage/popups/popup_aircondition.md create mode 100644 docs/usage/popups/popup_thermostat.md diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml index a77514ed4..4cfbc79ed 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml @@ -12,29 +12,29 @@ card_thermostat: ulm_card_thermostat_enable_background_color: false ulm_card_thermostat_enable_display_temperature: false ulm_card_thermostat_enable_horizontal: false - # ulm_card_thermostat_enable_popup: false + ulm_card_thermostat_enable_popup: false show_icon: false show_name: false show_label: false - # hold_action: - # action: > - # [[[ - # if (variables.ulm_card_thermostat_enable_popup){ - # return 'fire-dom-event' - # } - # else{ - # return 'more-info' - # } - # ]]] - # browser_mod: - # command: "popup" - # large: true - # hide_header: true - # card: - # type: "custom:button-card" - # template: "popup_light_brightness" - # variables: - # ulm_popup_light_entity: "[[[ return entity.entity_id ]]]" + hold_action: + action: > + [[[ + if (variables.ulm_card_thermostat_enable_popup){ + return 'fire-dom-event' + } + else{ + return 'more-info' + } + ]]] + browser_mod: + command: "popup" + large: true + hide_header: true + card: + type: "custom:button-card" + template: "popup_thermostat_temperature" + variables: + ulm_popup_thermostat_entity: "[[[ return entity.entity_id ]]]" state: - operator: "template" value: > @@ -155,25 +155,25 @@ card_thermostat: type: "custom:button-card" entity: "[[[ return entity.entity_id ]]]" icon: "[[[ return variables.ulm_card_thermostat_icon ]]]" - # hold_action: - # action: > - # [[[ - # if (variables.ulm_card_thermostat_enable_popup){ - # return 'fire-dom-event' - # } - # else{ - # return 'more-info' - # } - # ]]] - # browser_mod: - # command: "popup" - # large: true - # hide_header: true - # card: - # type: "custom:button-card" - # template: "popup_light_brightness" - # variables: - # ulm_popup_light_entity: "[[[ return entity.entity_id ]]]" + hold_action: + action: > + [[[ + if (variables.ulm_card_thermostat_enable_popup){ + return 'fire-dom-event' + } + else{ + return 'more-info' + } + ]]] + browser_mod: + command: "popup" + large: true + hide_header: true + card: + type: "custom:button-card" + template: "popup_thermostat_temperature" + variables: + ulm_popup_thermostat_entity: "[[[ return entity.entity_id ]]]" state: - operator: "template" value: > @@ -202,25 +202,25 @@ card_thermostat: ]]] service_data: entity_id: "[[[ return entity.entity_id ]]]" - # hold_action: - # action: > - # [[[ - # if (variables.ulm_card_thermostat_enable_popup){ - # return 'fire-dom-event' - # } - # else{ - # return 'more-info' - # } - # ]]] - # browser_mod: - # command: "popup" - # large: true - # hide_header: true - # card: - # type: "custom:button-card" - # template: "popup_light_brightness" - # variables: - # ulm_popup_light_entity: "[[[ return entity.entity_id ]]]" + hold_action: + action: > + [[[ + if (variables.ulm_card_thermostat_enable_popup){ + return 'fire-dom-event' + } + else{ + return 'more-info' + } + ]]] + browser_mod: + command: "popup" + large: true + hide_header: true + card: + type: "custom:button-card" + template: "popup_thermostat_temperature" + variables: + ulm_popup_thermostat_entity: "[[[ return entity.entity_id ]]]" label: >- [[[ var label = variables.ulm_off ; diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/legacy_templates/cards.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/legacy_templates/cards.yaml index 4369053b6..2948c36cb 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/legacy_templates/cards.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/legacy_templates/cards.yaml @@ -85,3 +85,32 @@ card_light_slider_collapse_color: ulm_card_light_enable_collapse: true ulm_card_light_enable_slider: true ulm_card_light_enable_color: false + +### NEW CARD_THERMOSTAT ALL IN ONE ### +custom_card_heat_pump: + template: "card_thermostat" + variables: + ulm_card_thermostat_enable_controls: true + ulm_card_thermostat_enable_hvac_modes: true +custom_card_mpse_thermostat: + template: "card_thermostat" + variables: + ulm_card_thermostat_enable_controls: true +custom_card_httpedo13_thermostat: + template: "card_thermostat" + variables: + ulm_card_thermostat_enable_display_temperature: true + ulm_card_thermostat_enable_background_color: true +custom_card_httpedo13_thermostat_with_buttons: + template: "card_thermostat" + variables: + ulm_card_thermostat_enable_display_temperature: true + ulm_card_thermostat_enable_controls: true + ulm_card_thermostat_enable_background_color: true +custom_card_httpedo13_thermostat_with_buttons_collapse: + template: "card_thermostat" + variables: + ulm_card_thermostat_enable_display_temperature: true + ulm_card_thermostat_enable_controls: true + ulm_card_thermostat_enable_collapse: true + ulm_card_thermostat_enable_background_color: true diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_aircondition.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_aircondition.yaml deleted file mode 100644 index 32b7d9f7d..000000000 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_aircondition.yaml +++ /dev/null @@ -1,107 +0,0 @@ ---- -popup_aircondition: - hold_action: - action: "fire-dom-event" - browser_mod: - command: "popup" - hide_header: true - card: - type: "custom:button-card" - template: "popup_4_items" - extra_styles: | - @media (max-width: 800px) { - #container { - grid-template-rows: 16vh 50vh 15vh 15vh !important; - } - } - custom_fields: - item1: - card: - type: "custom:button-card" - template: - - "popup_header" - - "ulm_language_variables" - entity: "[[[ return entity.entity_id ]]]" - label: "[[[ var temp = states[entity.entity_id].attributes.current_temperature; return variables.ulm_popups_temperature + ' ' + temp + variables.ulm_popups_temperature_unit;\ - \ ]]]" - item2: - card: - type: "thermostat" - entity: "[[[ return entity.entity_id ]]]" - card_mod: - style: | - ha-card { - background: none !important; - box-shadow: none !important; - padding: 0 0 20px 0 !important; - } - .more-info { - display: none; - } - #info { - display: none; - } - .type-thermostat { - --mode-color: rgb(var(--color-blue)) !important; - } - item3: - card: - type: "custom:button-card" - styles: - card: - - box-shadow: "none" - - padding: "0px" - - border-radius: "21px" - - background-color: "rgba(var(--color-theme),0.1)" - grid: - - grid-template-areas: "'item1 item2 item3 item4'" - - grid-template-columns: "'1fr' '1fr' '1fr' '1fr'" - - grid-template-rows: "min-content" - - justify-items: "center" - custom_fields: - item1: - card: - type: "custom:button-card" - template: "popup_button_airconditionner" - variables: - ulm_popup_button_airconditionner_state: "heat" - entity: "[[[ return entity.entity_id ]]]" - icon: "mdi:weather-sunny" - item2: - card: - type: "custom:button-card" - template: "popup_button_airconditionner" - variables: - ulm_popup_button_airconditionner_state: "cool" - entity: "[[[ return entity.entity_id ]]]" - icon: "mdi:snowflake" - item3: - card: - type: "custom:button-card" - template: "popup_button_airconditionner" - variables: - ulm_popup_button_airconditionner_state: "fan_only" - entity: "[[[ return entity.entity_id ]]]" - icon: "mdi:weather-windy" - item4: - card: - type: "custom:button-card" - template: "popup_button_airconditionner" - variables: - ulm_popup_button_airconditionner_state: "dry" - entity: "[[[ return entity.entity_id ]]]" - icon: "mdi:water" - item4: - card: - type: "custom:button-card" - template: "popup_list_items" - custom_fields: - item1: - card: - type: "custom:button-card" - template: "popup_button_back" - item2: - card: - type: "custom:button-card" - template: "popup_button_power" - entity: "[[[ return entity.entity_id ]]]" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_thermostat.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_thermostat.yaml new file mode 100644 index 000000000..edf003919 --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_thermostat.yaml @@ -0,0 +1,13 @@ +--- +popup_thermostat: + hold_action: + action: "fire-dom-event" + browser_mod: + command: "popup" + large: true + hide_header: true + card: + type: "custom:button-card" + template: "popup_thermostat_temperature" + variables: + ulm_popup_thermostat_entity: "[[[ return entity.entity_id ]]]" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_thermostat_temperature.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_thermostat_temperature.yaml new file mode 100644 index 000000000..ea6a5b2a9 --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_thermostat_temperature.yaml @@ -0,0 +1,360 @@ +--- +popup_thermostat_temperature: + styles: + grid: + - grid-template-areas: "'header' 'content1' 'buttons' 'footer'" + - grid-template-rows: "16vh 42vh 14vh 14vh" + - grid-template-columns: "1fr" + - column-gap: "30px" + card: + - background: "var(--primary-background-color)" + - box-shadow: "none" + - padding: "4%" + custom_fields: + header: + - align-self: "start" + content1: + - align-self: "center" + buttons: + - align-self: "start" + - width: "50%" + - margin: "0 auto" + footer: + - align-self: "end" + - margin-top: "25px" + extra_styles: | + @media (max-width: 800px) { + #container { + grid-template-rows: 16vh 52vh 14vh 14vh !important; + } + #buttons { + width: 100% !important; + } + custom_fields: + header: + card: + type: "custom:button-card" + template: "popup_header" + entity: "[[[ return variables.ulm_popup_thermostat_entity ]]]" + content1: + card: + type: "thermostat" + entity: "[[[ return variables.ulm_popup_thermostat_entity ]]]" + card_mod: + style: | + ha-card { + background: none !important; + box-shadow: none !important; + padding: 0 0 20px 0 !important; + } + .more-info { + display: none; + } + #info { + display: none; + } + .type-thermostat { + --mode-color: rgb(var(--color-blue)) !important; + } + buttons: + card: + type: "custom:button-card" + styles: + grid: + - grid-template-areas: > + [[[ + var areas = []; + if (states[variables.ulm_popup_thermostat_entity].attributes.hvac_modes.includes("auto")) { + areas.push("auto"); + } + if (states[variables.ulm_popup_thermostat_entity].attributes.hvac_modes.includes("heat")) { + areas.push("heat"); + } + if (states[variables.ulm_popup_thermostat_entity].attributes.hvac_modes.includes("cool")) { + areas.push("cool"); + } + if (states[variables.ulm_popup_thermostat_entity].attributes.hvac_modes.includes("dry")) { + areas.push("dry"); + } + if (states[variables.ulm_popup_thermostat_entity].attributes.hvac_modes.includes("fan_only")) { + areas.push("fan_only"); + } + if (states[variables.ulm_popup_thermostat_entity].attributes.hvac_modes.includes("heat_cool")) { + areas.push("heat_cool"); + } + return "\"" + areas.join(" ") + "\""; + ]]] + - grid-template-columns: > + [[[ + var columns = []; + if (states[variables.ulm_popup_thermostat_entity].attributes.hvac_modes.includes("auto")) { + columns.push("1fr"); + } + if (states[variables.ulm_popup_thermostat_entity].attributes.hvac_modes.includes("heat")) { + columns.push("1fr"); + } + if (states[variables.ulm_popup_thermostat_entity].attributes.hvac_modes.includes("cool")) { + columns.push("1fr"); + } + if (states[variables.ulm_popup_thermostat_entity].attributes.hvac_modes.includes("dry")) { + columns.push("1fr"); + } + if (states[variables.ulm_popup_thermostat_entity].attributes.hvac_modes.includes("fan_only")) { + columns.push("1fr"); + } + if (states[variables.ulm_popup_thermostat_entity].attributes.hvac_modes.includes("heat_cool")) { + columns.push("1fr"); + } + return columns.join(" "); + ]]] + - grid-template-rows: "min-content" + - justify-items: "center" + card: + - box-shadow: "none" + - padding: "0px" + - border-radius: "21px" + - background-color: "rgba(var(--color-theme),0.1)" + custom_fields: + auto: + - display: > + [[[ + if (states[variables.ulm_popup_thermostat_entity].attributes.hvac_modes.includes("auto")) { + return "block"; + } else { + return "none"; + } + ]]] + heat: + - display: > + [[[ + if (states[variables.ulm_popup_thermostat_entity].attributes.hvac_modes.includes("heat")) { + return "block"; + } else { + return "none"; + } + ]]] + cool: + - display: > + [[[ + if (states[variables.ulm_popup_thermostat_entity].attributes.hvac_modes.includes("cool")) { + return "block"; + } else { + return "none"; + } + ]]] + dry: + - display: > + [[[ + if (states[variables.ulm_popup_thermostat_entity].attributes.hvac_modes.includes("dry")) { + return "block"; + } else { + return "none"; + } + ]]] + fan_only: + - display: > + [[[ + if (states[variables.ulm_popup_thermostat_entity].attributes.hvac_modes.includes("fan_only")) { + return "block"; + } else { + return "none"; + } + ]]] + heat_cool: + - display: > + [[[ + if (states[variables.ulm_popup_thermostat_entity].attributes.hvac_modes.includes("heat_cool")) { + return "block"; + } else { + return "none"; + } + ]]] + custom_fields: + auto: + card: + type: "custom:button-card" + template: "widget_icon" + icon: "mdi:autorenew" + tap_action: + action: "call-service" + service: "climate.set_hvac_mode" + service_data: + entity_id: "[[[ return variables.ulm_popup_thermostat_entity ]]]" + hvac_mode: "auto" + styles: + card: + - background-color: "transparent" + - height: "42px" + - width: "42px" + - border-radius: "50%" + - box-shadow: none + state: + - operator: "template" + value: > + [[[ + return states[variables.ulm_popup_thermostat_entity].state == "auto" + ]]] + styles: + card: + - background-color: "var(--card-background-color)" + - box-shadow: "var( --ha-card-box-shadow)" + - transform: "scale(0.95)" + heat: + card: + type: "custom:button-card" + template: "widget_icon" + icon: "mdi:fire" + tap_action: + action: "call-service" + service: "climate.set_hvac_mode" + service_data: + entity_id: "[[[ return variables.ulm_popup_thermostat_entity ]]]" + hvac_mode: "heat" + styles: + card: + - background-color: "transparent" + - height: "42px" + - width: "42px" + - border-radius: "50%" + - box-shadow: none + state: + - operator: "template" + value: > + [[[ + return states[variables.ulm_popup_thermostat_entity].state == "heat" + ]]] + styles: + card: + - background-color: "var(--card-background-color)" + - box-shadow: "var( --ha-card-box-shadow)" + - transform: "scale(0.95)" + cool: + card: + type: "custom:button-card" + template: "widget_icon" + icon: "mdi:snowflake" + tap_action: + action: "call-service" + service: "climate.set_hvac_mode" + service_data: + entity_id: "[[[ return variables.ulm_popup_thermostat_entity ]]]" + hvac_mode: "cool" + styles: + card: + - background-color: "transparent" + - height: "42px" + - width: "42px" + - border-radius: "50%" + - box-shadow: none + state: + - operator: "template" + value: > + [[[ + return states[variables.ulm_popup_thermostat_entity].state == "cool" + ]]] + styles: + card: + - background-color: "var(--card-background-color)" + - box-shadow: "var( --ha-card-box-shadow)" + - transform: "scale(0.95)" + dry: + card: + type: "custom:button-card" + template: "widget_icon" + icon: "mdi:water" + tap_action: + action: "call-service" + service: "climate.set_hvac_mode" + service_data: + entity_id: "[[[ return variables.ulm_popup_thermostat_entity ]]]" + hvac_mode: "dry" + styles: + card: + - background-color: "transparent" + - height: "42px" + - width: "42px" + - border-radius: "50%" + - box-shadow: none + state: + - operator: "template" + value: > + [[[ + return states[variables.ulm_popup_thermostat_entity].state == "dry" + ]]] + styles: + card: + - background-color: "var(--card-background-color)" + - box-shadow: "var( --ha-card-box-shadow)" + - transform: "scale(0.95)" + fan_only: + card: + type: "custom:button-card" + template: "widget_icon" + icon: "mdi:fan" + tap_action: + action: "call-service" + service: "climate.set_hvac_mode" + service_data: + entity_id: "[[[ return variables.ulm_popup_thermostat_entity ]]]" + hvac_mode: "fan_only" + styles: + card: + - background-color: "transparent" + - height: "42px" + - width: "42px" + - border-radius: "50%" + - box-shadow: none + state: + - operator: "template" + value: > + [[[ + return states[variables.ulm_popup_thermostat_entity].state == "fan_only" + ]]] + styles: + card: + - background-color: "var(--card-background-color)" + - box-shadow: "var( --ha-card-box-shadow)" + - transform: "scale(0.95)" + heat_cool: + card: + type: "custom:button-card" + template: "widget_icon" + icon: "mdi:sun-snowflake" + tap_action: + action: "call-service" + service: "climate.set_hvac_mode" + service_data: + entity_id: "[[[ return variables.ulm_popup_thermostat_entity ]]]" + hvac_mode: "heat_cool" + styles: + card: + - background-color: "transparent" + - height: "42px" + - width: "42px" + - border-radius: "50%" + - box-shadow: none + state: + - operator: "template" + value: > + [[[ + return states[variables.ulm_popup_thermostat_entity].state == "heat_cool" + ]]] + styles: + card: + - background-color: "var(--card-background-color)" + - box-shadow: "var( --ha-card-box-shadow)" + - transform: "scale(0.95)" + footer: + card: + type: "custom:button-card" + template: "popup_list_items" + custom_fields: + item1: + card: + type: "custom:button-card" + template: "popup_button_back" + item2: + card: + type: "custom:button-card" + template: "popup_button_power" + entity: "[[[ return variables.ulm_popup_thermostat_entity ]]]" diff --git a/docs/assets/img/popup_thermostat_phone.png b/docs/assets/img/popup_thermostat_phone.png new file mode 100644 index 0000000000000000000000000000000000000000..fd2ed6e87b827e9aaebcbee6b7936fa86f292e58 GIT binary patch literal 20356 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 F{{pCEVW0p2 literal 0 HcmV?d00001 diff --git a/docs/assets/img/ulm_cards/card_thermostat.png b/docs/assets/img/ulm_cards/card_thermostat.png index 20740ad36fdf0177b8b8fb1977444c8db0601840..49b3a7ebb7c81c79c82085d275046a85622be662 100644 GIT binary patch literal 4443 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 bJ-z8Gu0OVpmZyO~M3~I3!HlY)_h0@G%tfE} literal 44882 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

J8;)F#8Gi!wEA&1K8X zWUBSEq!?KqqLWe~$ey>Wl*7=2;Ahb!$&Df!O58f&Y_Ql)zH zN8UZ+;GQjH0N)?~?O5qlyed-5r9R5#8}z(24!v{lQ`3d2U*aTb$q6hx3}Vjrl9&l< zq>~`Jn4@7EIzrVni%htvrw>drwbIsp979k)u-$ps3KbRoBzK-;3e7qSZ?2j;OVR#j&~j=yY4N#t#apI8`jf?+V!gNX(oqmd ziX#<3$cfOM3rC#7@qJp8d?QGTPw5lXh<>i}xj)ti)FQ4b`RQRLLzzO)TP(vDq+I`) zzk-EmOBU+&!w8&-0*ahTVS`|&FckHYaUoH^ensjzLF;DFdmk}i?Kg=<%y^3#4DKCJ z_TjFG59o@n;Z_w#!@&!hN(G@VLOJu&WbIR9;$s~((pc@+^I_|=*#`5q6^K_3!kHWO zTlMTN&w_9=oUP(D$2ul%8p-j?=b?@n%v@joG<7ERr@K(QoAOF#=cK%m7&H zFHHrF&$Mh2DrI&hIsoE@@^~m)1523{c8m8N0)q1OtOQQb>(7OWm{k-@Sl<$`nrnC* zaHZ4BuG}O#0`n)TCaeF9x*QGbHuf^m6_e2=Bq;fAoWYstiAhts5u*D&bd6c5kamZ_s_FV0WZaHUj;G5)Cp9B#ix{QpsNy(%n6g?GoWuL$k8zv-d;> z09~V57|(j-#hvG*@em`;mqBjSQSUWj<9ur%&RzAkGJG=^C&wy#8+a**%nBb`Q{Lx}Qd*Wo0U+qmPb@n~hKzE*Z zOsd(77q72oSxOFMT(dtT{{tZMhe$OqSAC0)?5*tny9`z4oMEevJ0$8^`)E?>t^St^ zo6GyDK}|fa9hg$~g@_Cry6E*owl|($m+QXs!TeyU|2Y7g>TcXj*t*HW2+v)}dl&6Fde-#7?-6f(wnlNwI#@ zWS#fCxmYqaiZG*dgQNhub32(!UgJ1vkeBL}6X^mB0EHh9a!y(E=d2w-rRh8Byr-DE zhyfXI0*tEi2-Ky_pxkpAqqpTT6voU7BMsD04- zuM(BOh)&oKC9gDyuPN+XOWaG1lZhmwr-i)2d_y%G;^67`eJramTi_|iju20$v>D`) zzuQEHw)~1Nm2~%?Hbdz-94&%5Fmn5ydHhu(X#hGJ>bWccXt?QEla9;KBIT)@e6~fn zZ{JA;WQ=Kowx53K$oVV6Q}Hnl@+$);Wtprt`(r^d{sos&Q=Dk0mb$rfL}nEc=?Wn= zPT{hp8k~SGd4$}fElL-xy4sR7pqcu78=T8m8K^HSk0%zpp6%oKhrjGV9o)oWu>zEf z{PH}F3v_&y_YiDuEn{T7{vB}4xI9~!yiX4;hbrnF3>8u@WQSTz3kdk&HF;gtGX(^|lt za{~N%hdh2Ryw_vCkFn7@VUyPMFmJewxjfbod4AS@eOb29PVJhtGet4yWq5U3z1z74 z@L*a42veji>~*LwY)I4dh`%zY^%9d8b|Xmr9%Y{A8hlF^4oniKAHuqDNZ@T*dON7% zP{7M2ko_`qJ1K#jgs%B47c2~?wAB13Q%RMhfJXMBWd|oyuIkH3jlRLX0&VI@N6j)- z2Cz49Xs0#=OV6*dl*AnZ_4KP8jj##XOO@$W=%893LN# zwLIBC^8tLh(3$vRwL>3CIx8ZX@>ZEkAM;H73MD7c4ARqEL}2z(h{m&q875-+ZVP8X z@pf-|Li*F#9{nm=`mxleNAvLxt%z$(;+$~vSJiIdi}Qc+jPI=0ipsN)i*2n?rD#S7 zdy8+);sV_GLUQn__x*mkLOX)<(i1=$<)=7&yGxF?UcdPw`?H7tP3$$y)S_?ey)WyZ z_Umc$J$VVd$hv(2abE8~Qo`=+z&6`W4qhtr!Jd;8BJg3}LFt>MY3ua#b{E|i z&8cY~zP83`U@PvDL9AD+b1wD`#tA%b*K2Q01o8DHCzHvgulbFy{U-sV{Er00@_0pT zFb$r=di&|`008|5E#+Kn@6n9RM2Lo%pfXQ4TXowj*rb(^V?9x89SeBl+!M!5sCQNF zaJDjyrcs?f6_5!`C2GmEQ7wXbi|TtFyO_LX&M{J13xAhGxY^`gRg? zk209DJ)yr5E=9XETePisvkzA!@6u0G#fM&b^6%;3O|;0`TOG#t^+ZHVUb>|D^#S{H z1(?xtWW+&#B-UsaoKmmzpUUj-_j6fuvH8sylE2h6_^mM(lFVKkXTP@<inT>Kn%^q1I`{xl2i0M4&jshq^GddL!}tMBGjfSzh+UeZ%ZV?@Z2)8WEnTsz`H{#cEv9(! zEw?a$pOxZ?M6ku!HGH`-zXE7@BLKf)O8lZT7@(w;G{?r0MMsd?S;yr%@$}~;wkfcJ zd$h0EKHC@=Yv6Pd=W=-0z0qCi?zZt^i75O!#U$AV1PF48jVW~Abop1|r#kht>I>X2 z;ty>M@xFwku*E`k=2p6=N(C+A=@KWB>8(GNn>kN3kOBG;y~H0*5037Aem^~X3$|&E zf9mMe*9uS%M>d*#|9-=kr=A`1@r}AZrna*tFgH?eWLD)s$S{wiD^6S;-$jYb>f&Wz zv?mxcYZ^Ls?LQHoLLo?JL;Et=?X=yn&zxyyD{SDMBoE#?Y4X8C3xFs4!Xewc;jb2j=v&KBq ztqul}6WfXYHJiDb3V8hc&nIrpi#fNWX@9W_|4ZE;W=}qgD8S1WVI+)2lJ2EgAQcM> zU}@r2a3of)?3H48?g}C7!SrK@esSd8s)Yw-&x-^5vO8-Vz(v9dkNWL2Dv*N?)LA9# zV!JNm=+ungl|mDdnRHJuN_8EHDu{y$Ve%=x-D3t-Ain&m*m!u>al9&D>=wu9Qoz=R z=i0!hPbA$ot-w~QJ?J_ka+hWy|LNl*C;@`bTP;)6YhV3O*=Ynm^u30LJZtFW@g!!P zk#B|}GacXBn?vtOG61%9)-#AnmetskW{9QETGyk&(?jdxJ3HJ*T$G)N@^>ha<49qN z7BQKUCTrfVYK0XPA&Zubi%wQ(NdWm!E3RaVzmYnZ-(x$b$PZg+=ozY3$od9M3Z6do zd5>31BYPX~^}JSO{v|@1c#02vZ24Gm3G7mDc_yHj1|9^x^=p|}xb&#NJl+?@#gkXf zUd;`IE>ctUY!XDwTy}__Hg>wRa*VUH^_*eGKkqCDU*S+Yv%wFIuG&_;SQ#WqYFJC@ z8~tS0V=pd~e)ZNPw3Uo-fckIZegqM9|8~$)lZ8TR0;l+}nH&N9!RQDM{h`3j)RYb> ztKVs1O&%-GZ9P2=>nf`V8ka{RGeTKtIKcvvuW1w~Roi)uxB#}#;0s?3o~1T8Zg|7n z%inbk8k;}X$7V{$+($b;S+#Q5j|SBs-3}Xx>D=c7CDlsV%IU%J*hEsUdd% z-d7l@Mme^E%@~?vdul(6Bx@JFR}&L11YaxFAJDF(48+X3_Pn0&{+T>pER$ z449zIaRYvTE6l2hlv&Tx?XjDC+&}S+pi72misBWw@Lnl`B;i@5gwXL_CSuh=AJgr# zb)0V3D9%7+mq!5}2Yq2INRlkU?vOF&)bgm0t7tz4YV3(T z6N79i^wW}IY%oRszCtCPUXbHRDHBsl`<73g`u+qsUa}qpwfl=FA?=;s40u_@p*@TJ z5_mom=l!2g&h0^&VwA^PG*G$Mw`^n!q_pQRlJ9+V0k11W|NbiNf8LEpF}m~09)RC-5n1Qjo9q99>8J%Twk;n12U+s`2GOf8-|n-6Be(9FH+dahPC`xN|-EraS3azGh8$2wgk zmz0*q`1w8f58py#Oso;1v&I6eGvYFIU42-&XL)-CH z0Kb&1o*Be#?7JA5JKfsRA?~gll@9+JL>t=+Oj;i>0#z$Iq~xTnDHWb=!C9;=rI4D` z-Cf9wFq?I3uBwIMYZgRmy84J!^M^dQj7JE$CT#(FZUqSQ4o8Bbc3=Op*U7&KglrwId#mcnE>(lIdx zR4JyBlmeGt#)OSADt=si^{JF$*NapJB{~Dyivq6Lo7rRH8Xn(_PM#1Sr9vb1Y~4DC z#<7o^n`#cFuA8zrm6l&y=kfA07TMy3aX@;AyGmWaDK_iw&saX_IO%^fEcZAN;M%IBTP@oy*&8NTB`)g@ZOk-W zfJfb@{nZl?0RPaqGC|{>Hp`|4EB$E4Nn`z_M$5a*@1gT(24j6Jx*|?ceqpGar3Pk? ze`@JY1x|lmyAr}+%d(4=6p#QpgTku14~{9WP(%SHzU_IRIYACMogXMDWp2A4NE%yl zX+}K@Agx%sFKoI@28JvRbqGcz-fgbWDGgvd48 zc(*B}Hr>2cmZ4FoF(aw)hH+{DG7)Nct+U=R@HIk0NO8tohBYk2oDbeu6m4BX)(No0 zI$p}m2^BBfWSrWxE=U~a;YVYR8;u4!wDJ?Zv)5K0xBEcOyg8mUGSa|CER)oQY{Xm} z^H<+5n1IvEAr-15r4Ub=Eu^bk0r)3eM4`%M_|@iBnRMEG7>_qc;yZf=?PB9+SU~;) z$Pyb)O`P--GKKp(_jm|x9{B#Y-Q2^9j?Pnh#3f6nU)jOETQroe0YxBqt2|DFA)Np)-XE~dx zT$qowDHx3uTqYlDu$WLYoiG9Ac}%SB^z>Ilf*=-35#!CLP}ljb`s6os+h4|3g=VK* zvF`<5v%1}{Ik-IWi*@iZw9A=eL9^0UGL{x)_0#L@2AEX+PZgpza??lVw`EKC-20~`De`#C)}lEktezZdAJ zY!^)h@ux?%2Q00`GpZ2^C5JrPBbVE`?B@Njho9W=`G zRdBay`_~K^P5u3WPsM%hu7>p>Wk0h@vw+#DpcX%t$7U7`DTwawq^Q<~9htwjK_mJL z_+vzI!};O)gZ_52VGe{*4Nyjp8)M3x{FCX57>l_n8M1;07qzCb68~9Qr3Oupn`A}oQqF9h zf?#Np^9t5?LrwCS%r4dTL@JneZ+JI+eyij45>P46ecJIY_+~3o8XT#8UJNtO1SD7Z z297?Zyg^2F2Vgk-p=M({nSU9oKz*FTiYj>=m?6$RRL`gtn3wA~|8*&W(E*bPE2p2` z+h&W1r`Nr4TEdnD2WwPK6#W1}<5FzlldwEjx1d%;*0LNG*}Hi@pvQ*ushBOYArBy@ z(f|ld7>QR`fi9%w^T>~VT-M8Qk&M&AXU5V`#e>Pb&GBX}w3H=mfcj_wHRbjXZNyO# zeuoPd2$0AeJ2gTtF2_nNdbaC()KH|FSZvPZSbj*@eV?9YIJ`-H85A(m{EVi4^w|DsUm~!(>ryvZ|1bCRpbPUj&o*B zX5D9}jCYRJ=|nn?7Dq1UA++j@Kh@mXHv|v%s2MJ2AMCfN?6&7!?8gmgzUlub{)%S!+SeWGuakt zTqK99m>))Ynj+eh^LY9ysl{`{|1ht)szejsT8@Z<@gaMem`xy2`rcv(ta@Wttlfi% ztZ{breIAd^da~83B+Y!b9#oWzZ)6O~YCq9ZY+@%wBV{qjUn8B$5X;0NW(O#Lb`U+a z&Dd;?NeoK2G`x?|QmystcS-yNgy;+4PuOf?#pYc8&t)d{g^8&LKt(a722Ru5T0SKw z65-+joESoEO~yK1Faxqfr+i#6DeZia$3ucduvE6Lduh^ZzmfMHI|VK zroPg}N`Qp7xb$!@mqG*yyp#a?7gy`J@duE>+Q|J#-yQ}~VER1o;OV&W{qm=pnXz%% z-RwT?S1SU^1hB+c9R^{AGJ>R(2VaAHf5px@y}P}K9yj%mm!12?_8~MpKK}kj4w*rp zYhKA9v9EhZd1{)Qduwii;AZA11562=sSX|WN6wn>C9a}9lryr3`iJei1Y=2BptA(06L`>b0xdjet~&>Vz>otDy&da-eJm1Va7ULMJL6>*o3P)FWlLWakRK@0miCNzm6eiV@egO=Ggr&_~@hI{%S%5|Z8UEsGLM$vGxZ>v( z)6YE1#O&>q@gh>|l5>1$g55sueVbi6VcWZEzI_6W{)EVd<=`k7M+@OxN%v%Tf&Gzh zd}DL7VwKg`x;^cGO)>l93_KGI!U>V*ev{krJPC%M66efs$JZXjei56hkl8X^3oqYq z*zQhJR_PZmBT%dKeRr#MRXp*DcQ-Jv|5n)X$_udNfk{79xG=(!a*eqCJfHEJv6!4r z#!lPBw~u;ASr|f4KP94~6$OD$b2&d83zOj{V0|zqUUK&!UlUFrC|5D(ma{pbR@AE| z-`V-%Io5o~Xc+uQ9q*P?VD|H}XY%0b-wx5Xu<_B=p9OK zRa#qYsWtz5JYVteE5g205Tda;g#q2oLY?Pl{FNQXY_ENAciSTK<6zOpJJ;g3b13j_ zWTXfxSSe%lb3f4cP$BGXW%6|v*V&&xA1fG|nwBsZLT4Lik+<*i`CW5WHhlZ6sbjdn z!rL@GC!K{NV9)ybH21o76*CTec#9QSn1G)!gGoiaQcn_&e9EANz_#x%Q~9>Qkf)%x zL?IIq|I%NKotL|#-&K7>{uLkE^YN1c=v$Yp6o87Pr?`0+Ec1mH(f%*47@Wr=F02o| zeo6h?SFT_q0+jCDib1`5v}q>cFsUks35a@BIpjWozNxg+IZ(Hywljs?bwaKZQ3jI7 z+Ky1Mt+Zg+$?jJB5U6AYD=TYD*q9$|NP)hc#|LK5E_oFAHFa{`j*?s@Edms>tsB+U zVPEd#yaUx7)-8v*`T^=-Ha-rHjzD)>%zDg*m9z8Sj)D=M2FW6a#k|m&y6JfR%)r~2 zRbb%?(*@-P=Eq&<-;E{7F#UH`_)&g%Ia@8})7!8KOyU52-{w^oK!ZB_SRhOK{C^!{ zRpXTz$*r;=aZx%=XTdJC;*o}xDQ>&sLH^nY>Dq;Z%YWY+HB<9>9~VFR_>L3i8t>NM zL##eCj0R_My5jVTk>t>PktWFzg?{Mse7EvQ4s>N6BKq&(*(d|}Hlx#mQ_6^J;~fLx zs#~##`qcW5_yNr&5AYPzc;L({-@?8F1<;4CbA1aX-}~-&=CUi_e$GJ77Qkv{aL*5K zkHmjPXW2DR@asA)#8}C~J==usEF5j~l3K+5odn0Xk6~4}W9DC#;1Ydt+94i*LgQ2^ zl@lrLeFd-KdWfc!ddHy3%2Tj?w(`9DA0QL9+HnGTHzKzcT;TVwd6R1z7p$kUC*nDW zF}Us2GHwsd>SP|7Wqm8Dj0F@Ha z#w@uJI2sN}SI@5Bj*E>5Ak9MwTV9@7@c6j_wmIME~|qV&;JAc8S_B@|+K_dUJb_HTO5g27MU=sJ7XCO?oHW+if)? z;=>s10DJcWY%B$w5*{IAuy3#2NNkc(7&+NnLvJ=^L*O}^zrfZbUE z6cGRj!qeYbk@pTts%U;^U%ZjKi)tfGtPeGmtMC(->6J6%c;J?UUl5N$rVmhnVURtb z^)50SDjbtEGR}{%kfPw+W1|1-*3=9eKR`p|VMezJHdhw->lY_9GHeezIl8LyB zR)`+{^T=8)to>kp0>)tWkT)CI^6~aDC1Vi?0yr%}fIoH78g6228dv3CVfQ~XgN~r6 z_)kwLtEY%>c}f`P1AzV15XfZana6nrsN;{DltLM4mmb^Hsi;T|t#!<9GgrmD6N!bT zRUjHrr2(|doVxw+q1c}Ioa1|juCBk}Jf{uOrd z{#uV9GRhO%YM(TF^C4KV5^5r7K)d#y3)I5WAN`wPx9PQ+GGH?CPNe(CZR@4M(0}~Y zxtyY?NFcn?#`+Btp0h^cv`5LlU6(VYWNvsG8uz;k9&7-%Gi3O;U6e}>`&Ms5Q$?nL zK>KfnU(KJ)l&1Fx^1bMGk8{J(P;afRbz#0&Kttkk=x83^Vgz7Jv4}sG()Ii&jBl4e zM2haq(6e(@Ced9zo&Ib{nwm}?WPz&%C<3JthnDtZQOcxm>P~v^v!K9VQHamq2ja)9NLFe-}Vn zOtnF$Dppx2kes5D=a~%+(+Ewg9Gp%TJg^6-LqJ}${Hz!nOv&0UiMP|RbYg01DleX! zMZ9DBJAPz55O6g*o`?SmUzwjt;*MfDhk$->C4crfR(>=m@SSEeb!eePy6J+d z`#aD8Mrk_qy&q|{=fdzx@b> ztU0x>!E_!W$s&6=zxRtidu(QzyFMA^${1An_bEt;>aCN3qy$$&`0$>Lp^ikc4usAU z6~hD=@`bPdMG%1T>;j(T*@w56kmBBcRv>3X4MIOMq^@4ak+lQXWkB~llm5%zvNXYx zP?w_&X7PR1Ogy%Wk_=;+#pc}W<~&wp%uZ*w$eRN5jfb~gXJ*4`(&lNStnA1h)v20_ zL?~p^d_mWvdkikb{W(%OjRC(2%c(p>OQ_xl1(hV+@olYV3LNEgw=bSsDM)P&h^aO^ zg7`}FWy1ZUaV1flAh>%a&go>?5it7hDXq1J0$fCO3g@$|AXHojgQeDCo-~QuJs~e_ zIhxx>0R5f%sy9yYhy!@CkT}bDBY$PHQLwQU7WOP7Ad~RTZ>cuk6YQ`tJX^-h z;rzU;IIL?*hJD-H7}&nz(x{M^up9_a_6zI@Eh2~xwDBI15`cu`=PzhSbQlg$O8|ah8#1oZc1Kw_z7T}Y z>daZOT12XrE(E>6;0ua!djxEF@O8}0v1n%luIqYep9N5y-Ho_k+<+gDOJr<@Z@Z+O zRwai4T#*k8lwc6D{G0>cFE=d|aP8X!AWJa4p}_7(DpW%4!Tf6 z0lm?%XNG=>Wq;9)lQ0H=q^A0Q!$ZElB2$p;t{?i{fOGGtt|{p=q2Dg9CH3Y`IlXA9UE_CUlny<8MQp!#qpip(1w2dc6)qp{F zEpk&53+w$3qIS_BB#Akc8pkP^IPybc*Vi!ID$D`H=N;e)sV6d>r>9h%{~GKN!Qc65nb-q2~#e@}4;%sx`b z`6ixo@oZAU=|{X-x{<5^8M(|G)s?Vw>M2K9?tJ$?X)%@EXhjl3mH&#>W02;!wI~pO=#nG&(%R~?@oLjhx|sKA_f6*cB7lAHe{uKdUr*Vo z&E4)faYBI|Nvlnf%E02S41g!Rf$O-P>j64~IY31FDLm`;REmLNGpw`RwQQhCr=`5L z4uBpwmD(TP_}MWeaKUQkyM~6I-YVb#zwScEBEaXWsgfmlSgDXP`n1{!d)z=vp8$m` zdHD{Sxb>8<@tv5@@t;9$@ZANu$`K@pF?2p|;#S%-u8ED>rVY9y1CA53Y5~6KwEyh7 zb^uGpT^eytU4b}3iQfUL#NiWVeIMg8JsD!M*0}_PF_MDszADCGlCR?6mI}vr1&)c0 z?WVM}cK#b-NHq&54!ZHbAtosT%d0fBHTv_6YxXaX&pZe)tRe|6)LAjvLJMqDQR$OVwq-Y0Dk7;$CouX=v_}$8jA-VYSeOr8Ha|SDBO*MKelU!%5t2_=^%=VP% zEH2#^0e;n8YZ&_`0ar)R`{AA+V2D5BoFvqp(^l$~(g4GCS@%zuV(IpDb=Yg`p?{~t zKO%^Msq{%EeP;v>OUpYCkH(fsLAV?X`YoK3^}MCN{!U^JI6>ec1_1q{Mm~Q6Q~G?P zpka-P&opl-fHzOmx=7V}8%Ir7+t9#&Ue+uF?)vww3@6gHmsL=ON=Bq(b?QI-t3YI$ zePUe_B||3&V5fffr>3m^XRuG2&7or(vrXKVj}RbjlHk*ZijKGToX?W&01vIJ6($L? zN}bz94FkiRh_0NkJYxA>=dbTjhgOp+z_zQo5aOHd5UKU0PxXI|BKDs-{n;TYo$+#7 z1W`S);CoQ-#(q@B@u=qG(;F8!2E90!xa5T6+TrH-zn`6giuie>6L{d-N^t&4r_ml@qRLkS ziZ#HG^cA8T7O!cctErf#)reQUmMoZHPzcyg?yQiMg?DuR^BeQu@&5G}3;%I}y`NEK zVh%<^ztkxUoeXzcJkRyI(Qo-O?Q*rR8-=g};52dGU(4!%-y^%@;pYTWCW|G*9Z9%NA>*XSBmLfihx@5> z(~t|&0K>JDyM7H-=p`B4Oor%2&VR&9WP1TuyleqBRta{t+lkueCjak%4Eo|59Bnqp z=S3jVJ=LLx*buIs$_y3=2TH%z=Rx@_WQki8`M1X3p3Bh!|9&x<{ErV9%+qnCAQtME ztG9k!Y$4Bh;M<4=8Prbk|D1pcSg32-+q2lO6;_#@vxHo5b?o@VKN2JwW+k#c?A0dO zbOoI0{;p*JK;YY7=&#DgMI1od@+V-dEnm&+ic@py%Y5LCX!t;FzulN)+5=rbQw22` z^YMrNXPV4>J3lnUX>|{O2OLLoqw?cCVLb#eDN6z%Gn*5nQa@~prOQ7?B(#uFuW0Xf3pgr%_vc(InBQ==nBlv> zas4U^WmJ-(b&_wz@WRyu&knkV8nuPed$-HOFLw^z92^`b%CxaSEq^*Lc5(0CXQG?Q zlz#F_7ixvSH+4Qg+5n+gY(&_%PLuRr!Qu5y`*Fm7mW2~Nfbn-t9lTA}PU_9(wmP1b zrSdMu=e=dJ4!F*1v=Qh+A3L7`de>-aNCKC^BMsK`zjRP%Me^6dF*G$s=JK284OvQT zS+3c~PyQV!k`5@qms(&2x;igt*hyd!{!o(uLO8sqlI6^n`=?O958%rE8=EI2d8!h) z;FJ9D89@`9-%t29A%yRTiw_`jz`Um?`>#0;qUCcQ9{8!CKnMS1kxO`_W}6go@G0ev zHStAIPr#tt14V6G+oK`1fOAc&)4NgPtp>#KCN$>b-pW3nB2l9*HT=$UgOZ!gCNym5 zH%J@wz#Bu`IK}Lr?X~u`7oU!L`p!FCAisY*a>f4Le)0B|$FK#_LTv(aDUAp!3UqN` z>R=`wVb0KKwA9LtfCM6d4e3^W-W8|2^%SJpv2T@rpWB77$4Fo)w%ieAEVD)_W7VR! zNE%EAXlU=e&jH5Mui}eeLHMfFfLd!2+xz{lxVEa7!Jn!Rmio?wI;y{%oeesL+AKb^ z^zX3nGNB}v_~D7}qsSrkAR@bOV=)K7-#l&~Bf~L9eg)aCwT!>uiBP6KP^rFL0Pihz z-hg9zRt&!kO*f0aM+#35J_a4UuX-88;pC$%kg^0slW~vEi-mDOw!4zVflT8Q$5%x32By6}AlQRCd!AdM(z>{jbf_j-zNgQSG^p+QYao1N-%`^^ z0i7_6UvJ27`~l^;0Pk~vE|yA?x6&H2q6m_qh$TfW>zSf?BIK+81jpG@Jvi9P5M;3= z#YQPltDN`rpSj_6wB1}^JTwPdY0~JXk2AeQk&xURSMEN9h~)@$s-hi1lLtO3I9?E6 zW#!CEp039_`B(D^=1F<)KdUlswx4PBHZv(J!5iRsR{F%9uVTO ztjf5_xfw!fyy~V^e$*WIzBzr5Gy&Uu-&ktjY=B^o@l{mN4j|BnkweuaW#z zZo=27WzFR*Db!abH~Xo}rZmUD3|t2!lfiM#9psUvyGH3ufm$BV$d(e(w-eeCCP+0J z&A0LxboMx8CQ z@+7`h8xrNR`0}+n;A(q32phl8dhcnuBDGiG+jaK}$5C(nHYHo%!ktsmbz+Fi0uhpM zKdp-h$+31JM1`&dYIE;(b#5Q~fcLucB4g=t?Qm3{`pUuA{Q6~mIvzyq4WnuJs~eRp zBx{t^WtK>ACZ|NF$41rAr@8&tzPcVby|%~?SAd@JFoz+~jAvCh9dw^V|3I5>p}>6Y z7nq`=H;Bi@FEh@Jpg5H&Xkc3KI&NAUxXj|Y7dtfN?cJOp0maDUd3}-ZFx2{*|triNtygNqI3uJ}q+^)i`=&iDZ%ugW^ihHDMNRr6hzj2CkB>n=N0%*t7`xVDC*4Eg`^f_v{?KBr zrE$@F`w+mb8sqf<@A}m(I>6<6OSjV-^|Ng;SKNiInVPtub<}}Uguv=y1m)5YR_47hXB1?3l>!P(K_+E&6s7S zKD)W-?p5Sfbs#IzCxLmTD}yT(0LV%ISYO-5FU4qC;+Zh}Qo#p9faW0AWwBTGdFzF# z0cXO<8*UWF$JaV;lQ$21V%O{Xp39xww-UY2`0PB#4llh*?P8W4?!ED@7923Jj38Ub zTF2tCp{b@`KQ3B16@I}yuwhTsn&S~K+hy174W{o#Q+f_i(lO(e%D0!Nf~VRq<{_WH z6X$q7>pc}=qByFYv~ArL%ewc5u|Dw`JMEgg%TxHFn$0&(=f`(F+JxFYbN{}YPw@4K>- z%R9y0CTbGp#IN#YedjC81zz9Z2G$k$;-6nq?)WKU^6ynYp8hyKI`4R8cnXh4vPCF; zWb3CkrcEpseYX!V!_&6)XBt8-JdlE*DLnAYRIiwCN%K!t{WuHGk=R2=v($YX6afb$ z$g|xhr)H3ly8HgVxW9?VT6!1A&aZw;k6N?ootbqPfK2@(Vny=Qr{#)`$=tnvQe$^0 zZm)@gN%dQ%^d8M&W9}$0e zFZ4`%VVC&N3FXE#d-wU2y>rG3aS~P#~la?8rwqc3~a`E2 z0m`6$#XEs+6Rv4b?X$QiS@AKA@DBl}m*!j#%<{u`SBQkoR>kU(maOyK;kbqQY=6>J^r)X|WSm65BLJg_X0nRi!tlX_=XFMCMU;EfCxie z5ETe|dMfg=^+NdS@ZOER8?*G%g$e0`{n>6pmFz<<@|#KPMFadMdTm2@+o|n7yZKp} z8#1CU96IpkH2+Cy`aqJ1AM$OY$?soLmJJch(|S#WxBCIu*p#%NbY9=3eQ2sItgF4< z781vZPCon7`ga?b|J62G4kIo^4^Jwye(O=}2z%;wOBj%BuOB#SBIOA2#?a-Y2gozs z+gdte;o-vrXV8SkGJrA8HPccSUK;)y_|0*gXxnSYqxNou28|L8@tKq-af^a) zFEMv67<+AQzp;s{yWuU1JTqavT_3}V#KwOU`i zA&s%>nZ}ycA;K>!^L~iCCD-5y<~Rs_puRAtkQLXWsx&{VmWONl503F{-6%=XIaIu=-!CjK% z-7kC0e%*HDXVnKOT2dGJ{!ijFpJQ`N5)bgV^d64GH!XIH5~2|v9%YfS#K6)p!kBSM zgyjVkRx#2lJ;t|P^fs7~U3(-Ur^>Mwa&|fd#)0W>slyU?g{(y#>tVRZamIOIOzjug_F<<|X{%*)EIh|)q^_7_9MqKC| zk6NzSE8T~0PSHJ_?oH|XrGb~5iPCpbvk@>UY@_lqWdl*dj2q^sm8M(FvZBkJ>4Vkc z;vGU0Fp{3hyNWKHm`M||MO}~oPLXK_ZXeQ>>I9>SipQqGgMk2ikJKTE6C4@82;eJE z6c#b=q7d1wg7?8!lC}hVDa5^$b!uZ}i+Eo~7j;nk&}dtRi4MLYS^uGsQ!R)I)RLkQ zo2ITYBC|_S@-hb9hK|2ts2PMV=XAU}cB&;KY{8huQUhXjzIKWW6- zMHXjuI;4d8EL1nts8V_n5XVBjm>5KWM~bkbpd}8A=N{>an0of-DEOKx?X%roJ2u~9 zIVaklbsfo7Vrtg|_N&PI2^Xpm@%?s`j-@VIV-mimpUQyiDMY6=sy5bEnyH^GzF~Z1 z@B1j>*of(_)}!}1qMTNbIQ~WY0X5YZ+BZ_`Nc+dhdxrD7KVBg4n2Rq8V;2gOi_aYv zHoKC=6kgCaeNnGs9*bno6y3V5)=#qNdh4mX5F$>@Y;iHEC11_F3r#Ru54eN$YoU5l zwZl^C<&2af_aKGnYmK_a7H>(-5Ifc?@n^!U#maN-oiRCL?S<+sL1Xqpb!XE3ct0hU zu_u~(ur*kCbHC59PN^E$3rLkx{QotqggE`#6Vg!cxUKy+%LgfGdD|&IpQL&S$*rBI zFU5P1+`7VtoPdOHR|XFrTixO85??m#_(^+%b+zPHDT7>$sg~cT=#_jnetKEzI1IwR z?r1o(&UHPZKj9w2)MYQ*J2p}UJAfZRp#GQ|N>lhaVHU$xd3HO7XkEf~ zS=<4r<}_nN2RUsbCZO3N^-!%E;Q_Z`tVrROq?@MRhwvJ>$JJH}QK|*k8Nw!Y#{|^p zXr6%en>b^57L9IdRl>8&#(1%Gde@+gs>CGc*kfyyJ=vn5exrCcFIBc9$K%$cQedH7 zRHM!1tF;z4p&>@c0YDoKrNR=bR{$DG9G0;Vk21R}%cH(SwO@pIxoe@~v2IBG5dTn` z^fV{g%9t|^{>h^k!-(;IEDLNfK1evI0~;NjATvipCAkypS73;Lla5P0g=J6A_}3W> z*WD!@{E)JlNz3SUIia;Ubb};lt-49XcIPF*h5h(egk{Wt{tKMZhT;!W5(SFLU&LZw zHj-1^%Az}KijZ^(X<)C^zQ+PH;wZff_snsElF9sl({apHw_al0 ztw7^qP6M8y*=5-x6^sLhmzO^w9fy0AR>mKz6|Rc*Vz?f8srydq^>%pWl@(u-#vK8P za~e?#l)E!|wSs=4wrpaaJxBC(?5r=aWG~eo1_^Z} zUXj<*43$EsC7`8OP=Vw@IiB{dRY^J@D4`9->%Zi>ZXd90&E?1y#9gH8*Z}&2e?|#vWCijIT-eANHK)KN{(#R0L-aPua;xT1Ck2>>|t;Ej#1sPx>tj(oAr4-y&nRm>L-pzsx>vk;8 zi0@(xxv})6gFBHNxoFN3=;AFAbrwU@1!x$DltchkixQT2$z~WZa!+rxYLr_&ximN4 zrD*LO+deL%kVVHhO5Muf7WdVhx$9$3idm{a#DFcFqwJaU3Z{{3y-3KRU@nY_?MeK? z3Vwe*q~Re2Jj3N#s93$okU~J#28}Gk?d!JpYvPm&1>?z7QG~hn z^-7KY^Z>$Yp_cQ4Hrqd~Sa3Bk*=_j&ecUVRohJlC-AmkzYvw1zt<769Lm6`-id?ZU zq?jv83JAZjwW8v8kJ&r6l`zuN1DoK}wf0_0)2 zo@~Wyel2S5-NT>I5arCS&c9BZxpM^JZ3WnsOk=^|k9@A#UtEHVJ2H7~SAW&~^2SyBP^?&Zx~k zKQdo8-_-UFpqR`A{^8SS?(TA#Jg^woarhLwHqs(-qwG*}_On(Q5 znqiI#v-XT92ZUjLd8E{%yoK8}=E51~J+>InaX#*%TF6QG+lc{nbciIukMW8LCQDX| zWIH~))RN|!n1|(#>+9zAIz9n(&PQEh;%vsnWTB;nR=@-=uH`^wQ>`|O@(sgb&-Nij)$XGpfB|g4o z>@}H~e=F+)R3f)XMAX;3$%-+8_P zUsjp0Df|fc$^$}GZq+f$KK072oEyBmiqdwF-{1{D`RMdN(%1+KCiAb;{oMI5J@{L_8j*!$%M^96Vap=KW(^FlM zwKWDKNm~m;1d{v{S?5b-N8+WhEnO@DHl9DA2!na>01>v9H-BC~8^r5M#ohu85u}{< zYTK7;1TPm2sOK+0^0}S}5*@TG7>yNPmhQkj3V7#m$)!ghpH!R^?Yvdy`oS)nMVo#V zfhmU&gyBX;Io`=#h%8oqq@PVIrX(pFW9R|wcG9@Wf9z1}$+nxwgZ`9@L^UE8zkpeh z_oPzI)Yr`NRu|wEz5>I{kj}={ni^F6G?nQ%o-;_XV~weyW2XI0p;O5E+PbUF2D9O4 zMJrjQrzY##{~gJJx`$f#1OBL6>|u1KOi1}iy~!|M3OP%nUVN{?r{m-z6?U#E6xl-j2LhT6Vl-9xK}9ZB|(C+5Xg#*@mr1&L{9h@gv&oh0{j-{!SV*(PXR zNqj&cO{?6(urd;X*S@gdt)%EXi0TQ(0k39}=E%z~KxX^JjM^G%MRZQJTp@OdaAWq8 znY&f`-m~S^4ajL+=o7;mKFBFy zVN*6|Uc*2&v7^_X#JpLDYTIi)$Z0 z)<3G~Tzm{B4dxq1A%mmTLzSsAB@vCe2F2V=78+9nCiSx31x*Qj*IoJo3KxmDpICkvbTVR}F?4gh<0v z+t8f6c<>H{5}JzdhP(5z2p|Puq%{@8x;0SMu=Ju8<*{{tugLpBK2A?*F4Lu?+g692 z1!}Skd%kj*GOgEsfeRhI%6Nms*EVR6urHA%I2Re?KLg| z;@hN%YwB;dO*sUkqs6x*b9xdOA(jqHw^IQH$j(=oIh`*YsH_BdWKNmsqQ-?t|G5Rn zzBjc9gX8rAk&0bU?y3%iShG<2PGU8;gYF7gVjP{vKs;zIq`%ACB82U6b1J9tu8&_? z9uXVVi@FRNYPMlz__$i_?K}HucWeFn&X!jlrP)kFO-}=EvO>S%^RKqSBB!da9GKWt z(Y~Y#+TgqqLkazv`=BGIQX-}tRyJNz#=e%RU$LK`s|cpLt_qvulrJ9lvcz?(B`{-6 zHsT@X{PnTnV!X)Bk3=or#aO)z@B?&8XP6d&Iw|U0(g+Qt>!OY zQxRun95bhlhjj#eC8dXDH9 z-Z9*$tt5{{BBvGh=lo%_d(S^cE33$A`cgatv$Vx2sdc7$c)i~^1RBm^mO~Q?W<3G| zywWXoaO9CG55hbGWf$34$|=meg%BUopD3RC?PIL|$Bxc@l702S0}8sS09J3yD{g?c zjs81?#W#X^{EIWC#=cN+yVu8q`{_-7J`;(*PgVWtmGJQfSfau*&PV6Mf7E>@X z+3s%(SA*Fw%@BY;2NcgVu#i8zs zXVEU{d#FKYoE`;R_%K)1w#dYxs3a%Rqh?xR0bk+q=5Agr@#w+WTTB~g59kBaJ0JiP zu$$0)Hv=9G7fb}@fKwYZr3aRz9%;Xy5TKr0^m-S@rG6dF*#o76-qX6FIPejN;+8Gd zOlwOlMQ9Z)1u}Ag2P!@;9+>^YQWv(qq$NoKqVnz^YzZ_u`#6fS1YWV{navqTuI|%Gg z$fE_enn7d#bn2-2hNiV~OXgH5XD{WD05eI~WYiK;go1F0QnG4bmKSt}XUWeTQ^j>v zJC_nQ>2r7mdA4q2zw9{3dPY$!9>L`-JZ>|%2GVKtDI07#lc_W~nuai5lDaw<@}+* zRF{*2avf_~%-_E(IB^Nxm>i|p-()2pQK!=xt{(Hm4GFi6@Jk1fmLBor@yVD@2 zLnlRfTz&sRzxG7@8zRVI;oz?9I;T5Z{%hWApc$Psw#e}t!@DWvWhodBT$;0-XF**I z%Xnu{V0t?_=AIYtufN_q4;3w#)sWj^Lj4DM!3W^}xqnTE`RoE)F#=~Y;!f`VJRkBb z1$paT;l-IyFO6UA%Xqn)=w%x@=g{?4@-tG;lEXWsryalj3IXurQa1lNY8ijiUxM>b TEIjevy7x28r~KVteDnVR=9k7- diff --git a/docs/assets/img/ulm_cards/card_thermostat_with_controls.png b/docs/assets/img/ulm_cards/card_thermostat_with_controls.png new file mode 100644 index 0000000000000000000000000000000000000000..c35399ce9a83f33d09294cb128298d09b99ce1c0 GIT binary patch literal 6310 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∨yp0-? zdj6+6Z5Pi|Jj$;3S~^I*OvrNc@N3oRp-eI)jIlS;?AkpL4t17&jaZPQY|K6Gn(ScW ziJ(pV!Mt#(HKm#B{T=Ua-hCWh+-y2?ezc7=$Npi??@Hj z-2?)CNm{PwoVOZZTZX5}?w_Fe^9v~I)PMQh$M9~GhTxt}pWPE!Reu;9$iY$WM46=| z^4l26qq<1#p3c&2(8nq{BaVW*RUN^nl1VaUUYlJ+?uSZ@nFqJ-Ma*XVLZe5yP=Uh! z6`zNHhP_R?U+aruXpnYl??IrV%u#sY_RG{iIGMzc@Y;gT|IgP$tGH z8cqL7<>!zq&lxz3vR&zI_&WL@W+s$7>y9+lxqhx{OoYx0u8q;9uo}=!G1QW|#pBh* z>@>-SJQ6>Wr0enTuxEbY62ziIQv@lN^t^`oxlSZ~#`lkSPfFz25)nBqu;tT?0dKCf;me#Bzr z(wkKND|FuRKl4zqz_-J=>Sh&T&qTgxA?f@JR__sh8&*o1uOBPWR%2f-{@s1wB!*-* zRHG?Mtdsf<+8LuGo~5hvCl$NYPT*1>-KfnQpyJ;JK6)H25zV-Bt+i`Y5fow^M;7ZU z9u|>S*f2Xv8o)BHl>z~|h@^g#-g?*mr(c{jb5*x$;|)dNG(#qJ&Q>e!0SfmR6GBz$ zz^w#v3pBO{W|{1N0&BcBuf^Xt4>q6Nfvzmfa7t`G@=^9tvzHp(1@)){`?HCc2<|8g z)TC-= z;eVjR39;Ncu<1jTXNPXt`sHR#ut?N?%_n3W6T@B{Q^&;2C7XV|mlo$8oj+pIp*o(O#G&A15+_ECNHkb^y)IfNr^6lYYBTuA4=v@*H%;Ud}7Sx9!? z2}jRSv9-0?rH~fYe4V})*d-4Y=gnGR*&|Gn2NqzhLD7d8NI`Yi;nVw4DxS}Uvo%!8 z#)L28JtZ3oK=q3%bBa!q<%@|&@3wEYn=#08o<4*Di(p#M(mO#CJnkxiNc1#b@KN%R=*o6?%VQdgB8UI(L_ zrAemIm>bpK@VReeDS_-HxBQzg+`rGutXY=@-9q$vR4Ez(@nhVPcxoWCKxcKSM+f15 zUx~SQpWqt0gV!F}XM9CAqIcIO;C!i4b4p3&4}OQ*BiCCKISwi7Gfy_q<(WUz%KUf$ ztgA)o(YlC@Ge66UpKsIz+Z?6>X`JwW{nes5GG#H=+@fWR2|9l)zC}sZND?f!KP~#| zymBb6Y}X(ftTak3C1$hyx%tJVgkM6y-Jg@N#&%R~SO_?r(Id4m92tG&quTYQ7*@AU zpnxFxr;<4riSSOtdk;hxp=USA$2V{ASQ_EO1RPg{9}jw6T?nuUNULfejL;=!VNkC% zS^GwYDEmZ)a6t$ULG`DchKbu)14%-MiGy4*)J^#zHPL_zgaeAYpf(Kz3}7y(FqCVGXjr2*rhUL@v-d+^-)* zz%eMJCKfau<=JPX7-G)x&G)^dJ&p3SMemQ&s(l_ZVz{>u$Yu0bX(0fZ9<2!x3=xy6 zoia=Poj)Ifr{mkbw4QZ1htU(g`QxJ$`?i4!4{H6YS5k`8&oV*R$PoaLYl8^(_#Hc4m<7CYrq&S&>YwS|F6Jmm3iU9ei`SDuRv1Le7 zwO;%Ayx*07J;Szl=qyXv_y_>8j^aS`B*mEEaI%PaT(7a%(|NdN!< literal 0 HcmV?d00001 diff --git a/docs/usage/cards/card_thermostat.md b/docs/usage/cards/card_thermostat.md index 8dd494431..0cdc360fc 100644 --- a/docs/usage/cards/card_thermostat.md +++ b/docs/usage/cards/card_thermostat.md @@ -7,30 +7,56 @@ hide: ## Description -![example-image](../../assets/img/ulm_cards/card_thermostat.png){ width="500" } +![Image title](../../assets/img/ulm_cards/card_thermostat.png){ width="500" } +![Image title](../../assets/img/ulm_cards/card_thermostat_with_controls.png){ width="500" } +![Image title](../../assets/img/ulm_cards/card_thermostat_with_hvac_and_color.png){ width="500" } -The thermostat-card is used to switch a climate entity on/off and show the temperature from a (different) sensor. +This is the `thermostat-card`, used to toggle a climate entity. Shows state of the thermostat and, if available, current temperature. + +This documentation refers to the new "All in one" thermostat card. +This card merges the following one : + +- legacy `card_thermostat` (the old one) +- custom `custom_card_heat_pump` by Kam +- custom `custom_card_mpse_thermostat` by mpse +- custom `custom_card_httpedo13_thermostat` by httpedo13 +- custom `custom_card_httpedo13_thermostat_with_buttons` by httpedo13 +- custom `custom_card_httpedo13_thermostat_with_buttons_collapse` by httpedo13 + +!!! warning + This card has backward compatibilty with older template except custom names and icons. It means variables like `ulm_card_XXX_name` and `ulm_card_XXX_icon` must be replaced by `ulm_card_thermostat_name` and `ulm_card_thermostat_icon`. + To use `popup_thermostat` you need to set the variable `ulm_card_thermostat_enable_popup` to `true`. This is a different approach as the other `popup_cards` use. ## Variables -| Variable | Default | Required | Notes | -|----------|---------|------------------|-------------------| -| entity | | :material-check: | | -| ulm_card_thermostat_sensor | | :material-check: | Sensor for displaying the temperature | +| Variable/Entity | Default | Required | Notes | Requirement | +|-------------------------------------------------|-------------------|------------------|----------------|-------------| +| entity | | :material-check: | Your HA entity | | +| ulm_card_thermostat_name | `friendly_name` | :material-close: | Customize name | | +| ulm_card_thermostat_icon | `mdi:thermometer` | :material-close: | Customize icon | | +| ulm_card_thermostat_enable_collapse | `false` | :material-close: | Collapse controls when off | Need `ulm_card_thermostat_enable_controls: true` | +| ulm_card_thermostat_enable_controls | `false` | :material-close: | Enable temperature control | | +| ulm_card_thermostat_enable_hvac_modes | `false` | :material-close: | Enable HVAC modes control | | +| ulm_card_thermostat_enable_background_color | `false` | :material-close: | Enable background color when cooling or heating | | +| ulm_card_thermostat_enable_display_temperature | `false` | :material-close: | Display current temperature on top right | | +| ulm_card_thermostat_enable_horizontal | `false` | :material-close: | Enable horizontal card| Need `ulm_card_thermostat_enable_controls: true` | +| ulm_card_thermostat_enable_popup | `false` | :material-close: | Enable `popup_thermostat` | | ## Usage ```yaml -- type: 'custom:button-card' - template: - - card_thermostat +- type: "custom:button-card" + template: card_thermostat + entity: climate.hvac variables: - ulm_card_thermostat_sensor: sensor.livingroom_temperature - entity: climate.livingroom + ulm_card_thermostat_enable_collapse: true + ulm_card_thermostat_enable_controls: true + ulm_card_thermostat_enable_hvac_modes: true + ulm_card_thermostat_enable_popup: true ``` ??? note "Template Code" - ```yaml title="card_light.yaml" + ```yaml title="card_thermostat.yaml" --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml" ``` diff --git a/docs/usage/popups/popup_aircondition.md b/docs/usage/popups/popup_aircondition.md deleted file mode 100644 index d414804c0..000000000 --- a/docs/usage/popups/popup_aircondition.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: popup_aircondition -hide: - - toc ---- - - -### Aircondition popup - -TBD - -## Credits - -- Designed by schumijo and bavo (special thanks to him for his help on this development)). diff --git a/docs/usage/popups/popup_thermostat.md b/docs/usage/popups/popup_thermostat.md new file mode 100644 index 000000000..41e4e5870 --- /dev/null +++ b/docs/usage/popups/popup_thermostat.md @@ -0,0 +1,37 @@ +--- +title: popup_thermostat +hide: + - toc +--- + + +### Thermostat popup + +![Phone](../../assets/img/popup_thermostat_phone.png){ width="500" } + +##### Card compatibility + +This popup is displayed using ``hold_action`` and it is compatible with the following cards/chips : + +- card_thermostat + +##### How to use + +To enable this popup, add the variable ``ulm_card_thermostat_enable_popup`` and set to ``true``. + +!!! warning + This is a different approach as the other `popup_cards` use. + +For example : + +```yaml +- type: "custom:button-card" + template: card_thermostat + entity: climate.thermostat + variables: + ulm_card_thermostat_enable_popup: true +``` + +## Credits + +- Designed by schumijo From 862c2d38627651261f6d5b557ac63b2deb4a80e0 Mon Sep 17 00:00:00 2001 From: schumijo Date: Mon, 31 Jan 2022 11:16:12 +0100 Subject: [PATCH 084/248] Update hvac mode state --- .../popups/popup_thermostat_temperature.yaml | 42 ++++++------------- 1 file changed, 12 insertions(+), 30 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_thermostat_temperature.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_thermostat_temperature.yaml index ea6a5b2a9..e7198d740 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_thermostat_temperature.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_thermostat_temperature.yaml @@ -173,6 +173,7 @@ popup_thermostat_temperature: auto: card: type: "custom:button-card" + entity: "[[[ return variables.ulm_popup_thermostat_entity ]]]" template: "widget_icon" icon: "mdi:autorenew" tap_action: @@ -189,11 +190,7 @@ popup_thermostat_temperature: - border-radius: "50%" - box-shadow: none state: - - operator: "template" - value: > - [[[ - return states[variables.ulm_popup_thermostat_entity].state == "auto" - ]]] + - value: "auto" styles: card: - background-color: "var(--card-background-color)" @@ -202,6 +199,7 @@ popup_thermostat_temperature: heat: card: type: "custom:button-card" + entity: "[[[ return variables.ulm_popup_thermostat_entity ]]]" template: "widget_icon" icon: "mdi:fire" tap_action: @@ -218,11 +216,7 @@ popup_thermostat_temperature: - border-radius: "50%" - box-shadow: none state: - - operator: "template" - value: > - [[[ - return states[variables.ulm_popup_thermostat_entity].state == "heat" - ]]] + - value: "heat" styles: card: - background-color: "var(--card-background-color)" @@ -231,6 +225,7 @@ popup_thermostat_temperature: cool: card: type: "custom:button-card" + entity: "[[[ return variables.ulm_popup_thermostat_entity ]]]" template: "widget_icon" icon: "mdi:snowflake" tap_action: @@ -247,11 +242,7 @@ popup_thermostat_temperature: - border-radius: "50%" - box-shadow: none state: - - operator: "template" - value: > - [[[ - return states[variables.ulm_popup_thermostat_entity].state == "cool" - ]]] + - value: "cool" styles: card: - background-color: "var(--card-background-color)" @@ -260,6 +251,7 @@ popup_thermostat_temperature: dry: card: type: "custom:button-card" + entity: "[[[ return variables.ulm_popup_thermostat_entity ]]]" template: "widget_icon" icon: "mdi:water" tap_action: @@ -276,11 +268,7 @@ popup_thermostat_temperature: - border-radius: "50%" - box-shadow: none state: - - operator: "template" - value: > - [[[ - return states[variables.ulm_popup_thermostat_entity].state == "dry" - ]]] + - value: "dry" styles: card: - background-color: "var(--card-background-color)" @@ -289,6 +277,7 @@ popup_thermostat_temperature: fan_only: card: type: "custom:button-card" + entity: "[[[ return variables.ulm_popup_thermostat_entity ]]]" template: "widget_icon" icon: "mdi:fan" tap_action: @@ -305,11 +294,7 @@ popup_thermostat_temperature: - border-radius: "50%" - box-shadow: none state: - - operator: "template" - value: > - [[[ - return states[variables.ulm_popup_thermostat_entity].state == "fan_only" - ]]] + - value: "fan_only" styles: card: - background-color: "var(--card-background-color)" @@ -318,6 +303,7 @@ popup_thermostat_temperature: heat_cool: card: type: "custom:button-card" + entity: "[[[ return variables.ulm_popup_thermostat_entity ]]]" template: "widget_icon" icon: "mdi:sun-snowflake" tap_action: @@ -334,11 +320,7 @@ popup_thermostat_temperature: - border-radius: "50%" - box-shadow: none state: - - operator: "template" - value: > - [[[ - return states[variables.ulm_popup_thermostat_entity].state == "heat_cool" - ]]] + - value: "heat_cool" styles: card: - background-color: "var(--card-background-color)" From bc9aad7191e39915a7122bc102f66996ebb7e3e9 Mon Sep 17 00:00:00 2001 From: schumijo Date: Mon, 31 Jan 2022 11:25:37 +0100 Subject: [PATCH 085/248] Missing double quote --- .../popups/popup_thermostat_temperature.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_thermostat_temperature.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_thermostat_temperature.yaml index e7198d740..5e09ab6d9 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_thermostat_temperature.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_thermostat_temperature.yaml @@ -188,7 +188,7 @@ popup_thermostat_temperature: - height: "42px" - width: "42px" - border-radius: "50%" - - box-shadow: none + - box-shadow: "none" state: - value: "auto" styles: @@ -214,7 +214,7 @@ popup_thermostat_temperature: - height: "42px" - width: "42px" - border-radius: "50%" - - box-shadow: none + - box-shadow: "none" state: - value: "heat" styles: @@ -240,7 +240,7 @@ popup_thermostat_temperature: - height: "42px" - width: "42px" - border-radius: "50%" - - box-shadow: none + - box-shadow: "none" state: - value: "cool" styles: @@ -266,7 +266,7 @@ popup_thermostat_temperature: - height: "42px" - width: "42px" - border-radius: "50%" - - box-shadow: none + - box-shadow: "none" state: - value: "dry" styles: @@ -292,7 +292,7 @@ popup_thermostat_temperature: - height: "42px" - width: "42px" - border-radius: "50%" - - box-shadow: none + - box-shadow: "none" state: - value: "fan_only" styles: @@ -318,7 +318,7 @@ popup_thermostat_temperature: - height: "42px" - width: "42px" - border-radius: "50%" - - box-shadow: none + - box-shadow: "none" state: - value: "heat_cool" styles: From e215e8dd7687348e479ff886ec763aa6f5b29a8f Mon Sep 17 00:00:00 2001 From: Bavo Mees Date: Mon, 31 Jan 2022 13:30:41 +0100 Subject: [PATCH 086/248] Fix small bug in room card --- .../lovelace/ulm_templates/card_templates/cards/card_room.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_room.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_room.yaml index a31c47024..bc63458a8 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_room.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_room.yaml @@ -267,6 +267,7 @@ widget_icon_room: - height: "100%" - box-shadow: "none" - padding: "0px" + - border-radius: "50%" icon: - width: "50%" - height: "50%" From 12db64c4142ca71b2beefb3c4e12167a448d1187 Mon Sep 17 00:00:00 2001 From: Bavo Mees Date: Mon, 31 Jan 2022 13:43:03 +0100 Subject: [PATCH 087/248] Add some predefined color templates to the ui --- .../blue_no_state.yaml | 0 .../card_templates/colors/blue_off.yaml | 14 ++++++++++++++ .../blue.yaml => colors/blue_on.yaml} | 7 +++++-- .../card_templates/colors/green_no_state.yaml | 11 +++++++++++ .../card_templates/colors/green_off.yaml | 14 ++++++++++++++ .../card_templates/colors/green_on.yaml | 14 ++++++++++++++ .../card_templates/colors/grey_no_state.yaml | 11 +++++++++++ .../card_templates/colors/grey_off.yaml | 14 ++++++++++++++ .../card_templates/colors/grey_on.yaml | 14 ++++++++++++++ .../card_templates/colors/pink_no_state.yaml | 11 +++++++++++ .../card_templates/colors/pink_off.yaml | 14 ++++++++++++++ .../card_templates/colors/pink_on.yaml | 14 ++++++++++++++ .../card_templates/colors/red_no_state.yaml | 11 +++++++++++ .../card_templates/colors/red_off.yaml | 14 ++++++++++++++ .../card_templates/colors/red_on.yaml | 14 ++++++++++++++ .../colors/violet_no_state.yaml | 11 +++++++++++ .../card_templates/colors/violet_off.yaml | 14 ++++++++++++++ .../card_templates/colors/violet_on.yaml | 14 ++++++++++++++ .../colors/yellow_no_state.yaml | 11 +++++++++++ .../yellow.yaml => colors/yellow_off.yaml} | 3 ++- .../card_templates/colors/yellow_on.yaml | 19 +++++++++++++++++++ .../yellow_slider.yaml | 0 22 files changed, 246 insertions(+), 3 deletions(-) rename custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/{internal_templates => colors}/blue_no_state.yaml (100%) create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/blue_off.yaml rename custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/{internal_templates/blue.yaml => colors/blue_on.yaml} (91%) create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_no_state.yaml create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_off.yaml create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_on.yaml create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_no_state.yaml create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_off.yaml create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_on.yaml create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_no_state.yaml create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_off.yaml create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_on.yaml create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_no_state.yaml create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_off.yaml create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_on.yaml create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_no_state.yaml create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_off.yaml create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_on.yaml create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_no_state.yaml rename custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/{internal_templates/yellow.yaml => colors/yellow_off.yaml} (92%) create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_on.yaml rename custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/{internal_templates => colors}/yellow_slider.yaml (100%) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/internal_templates/blue_no_state.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/blue_no_state.yaml similarity index 100% rename from custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/internal_templates/blue_no_state.yaml rename to custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/blue_no_state.yaml diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/blue_off.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/blue_off.yaml new file mode 100644 index 000000000..22fc27f0b --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/blue_off.yaml @@ -0,0 +1,14 @@ +--- +blue_off: + state: + - styles: + icon: + - color: 'rgba(var(--color-blue),1)' + label: + - color: 'rgba(var(--color-blue-text),1)' + name: + - color: 'rgba(var(--color-blue-text),1)' + img_cell: + - background-color: 'rgba(var(--color-blue), 0.2)' + value: 'off' + id: 'off' \ No newline at end of file diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/internal_templates/blue.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/blue_on.yaml similarity index 91% rename from custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/internal_templates/blue.yaml rename to custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/blue_on.yaml index 90ed89783..5c629e455 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/internal_templates/blue.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/blue_on.yaml @@ -1,6 +1,5 @@ --- -### Blue ### -blue: +blue_on: state: - styles: icon: @@ -14,3 +13,7 @@ blue: card: - background-color: "rgba(var(--color-background-blue), var(--opacity-bg))" value: "on" + +# Legacy +blue: + template: "blue_on" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_no_state.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_no_state.yaml new file mode 100644 index 000000000..c258cc3e2 --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_no_state.yaml @@ -0,0 +1,11 @@ +--- +green_no_state: + styles: + icon: + - color: 'rgba(var(--color-green),1)' + label: + - color: 'rgba(var(--color-green-text),1)' + name: + - color: 'rgba(var(--color-green-text),1)' + img_cell: + - background-color: 'rgba(var(--color-green), 0.2)' diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_off.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_off.yaml new file mode 100644 index 000000000..52d80cb2b --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_off.yaml @@ -0,0 +1,14 @@ +--- +green_off: + state: + - styles: + icon: + - color: 'rgba(var(--color-green),1)' + label: + - color: 'rgba(var(--color-green-text),1)' + name: + - color: 'rgba(var(--color-green-text),1)' + img_cell: + - background-color: 'rgba(var(--color-green), 0.2)' + value: 'off' + id: 'off' \ No newline at end of file diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_on.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_on.yaml new file mode 100644 index 000000000..a70beac71 --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_on.yaml @@ -0,0 +1,14 @@ +--- +green_on: + state: + - styles: + icon: + - color: 'rgba(var(--color-green),1)' + label: + - color: 'rgba(var(--color-green-text),1)' + name: + - color: 'rgba(var(--color-green-text),1)' + img_cell: + - background-color: 'rgba(var(--color-green), 0.2)' + value: 'on' + id: 'on' \ No newline at end of file diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_no_state.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_no_state.yaml new file mode 100644 index 000000000..31dd3e1a4 --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_no_state.yaml @@ -0,0 +1,11 @@ +--- +grey_no_state: + styles: + icon: + - color: 'rgba(var(--color-grey),1)' + label: + - color: 'rgba(var(--color-grey-text),1)' + name: + - color: 'rgba(var(--color-grey-text),1)' + img_cell: + - background-color: 'rgba(var(--color-grey), 0.2)' \ No newline at end of file diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_off.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_off.yaml new file mode 100644 index 000000000..b1ca8bded --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_off.yaml @@ -0,0 +1,14 @@ +--- +grey_off: + state: + - styles: + icon: + - color: 'rgba(var(--color-grey),1)' + label: + - color: 'rgba(var(--color-grey-text),1)' + name: + - color: 'rgba(var(--color-grey-text),1)' + img_cell: + - background-color: 'rgba(var(--color-grey), 0.2)' + value: 'off' + id: 'off' diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_on.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_on.yaml new file mode 100644 index 000000000..7c0c145a5 --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_on.yaml @@ -0,0 +1,14 @@ +--- +grey_on: + state: + - styles: + icon: + - color: 'rgba(var(--color-grey),1)' + label: + - color: 'rgba(var(--color-grey-text),1)' + name: + - color: 'rgba(var(--color-grey-text),1)' + img_cell: + - background-color: 'rgba(var(--color-grey), 0.2)' + value: 'on' + id: 'on' \ No newline at end of file diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_no_state.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_no_state.yaml new file mode 100644 index 000000000..24a46a058 --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_no_state.yaml @@ -0,0 +1,11 @@ +--- +pink_no_state: + styles: + icon: + - color: 'rgba(var(--color-pink),1)' + label: + - color: 'rgba(var(--color-pink-text),1)' + name: + - color: 'rgba(var(--color-pink-text),1)' + img_cell: + - background-color: 'rgba(var(--color-pink), 0.2)' diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_off.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_off.yaml new file mode 100644 index 000000000..786b1bb32 --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_off.yaml @@ -0,0 +1,14 @@ +--- +pink_off: + state: + - styles: + icon: + - color: 'rgba(var(--color-pink),1)' + label: + - color: 'rgba(var(--color-pink-text),1)' + name: + - color: 'rgba(var(--color-pink-text),1)' + img_cell: + - background-color: 'rgba(var(--color-pink), 0.2)' + value: 'off' + id: 'off' diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_on.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_on.yaml new file mode 100644 index 000000000..65cd8f86a --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_on.yaml @@ -0,0 +1,14 @@ +--- +pink_on: + state: + - styles: + icon: + - color: 'rgba(var(--color-pink),1)' + label: + - color: 'rgba(var(--color-pink-text),1)' + name: + - color: 'rgba(var(--color-pink-text),1)' + img_cell: + - background-color: 'rgba(var(--color-pink), 0.2)' + value: 'on' + id: 'on' diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_no_state.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_no_state.yaml new file mode 100644 index 000000000..9e8afb4f0 --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_no_state.yaml @@ -0,0 +1,11 @@ +--- +red_no_state: + styles: + icon: + - color: 'rgba(var(--color-red),1)' + label: + - color: 'rgba(var(--color-red-text),1)' + name: + - color: 'rgba(var(--color-red-text),1)' + img_cell: + - background-color: 'rgba(var(--color-red), 0.2)' diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_off.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_off.yaml new file mode 100644 index 000000000..9c3497d8a --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_off.yaml @@ -0,0 +1,14 @@ +--- +red_off: + state: + - styles: + icon: + - color: 'rgba(var(--color-red),1)' + label: + - color: 'rgba(var(--color-red-text),1)' + name: + - color: 'rgba(var(--color-red-text),1)' + img_cell: + - background-color: 'rgba(var(--color-red), 0.2)' + value: 'off' + id: 'off' diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_on.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_on.yaml new file mode 100644 index 000000000..db76dea64 --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_on.yaml @@ -0,0 +1,14 @@ +--- +red_on: + state: + - styles: + icon: + - color: 'rgba(var(--color-red),1)' + label: + - color: 'rgba(var(--color-red-text),1)' + name: + - color: 'rgba(var(--color-red-text),1)' + img_cell: + - background-color: 'rgba(var(--color-red), 0.2)' + value: 'on' + id: 'on' diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_no_state.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_no_state.yaml new file mode 100644 index 000000000..77eab04de --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_no_state.yaml @@ -0,0 +1,11 @@ +--- +purple_no_state: + styles: + icon: + - color: 'rgba(var(--color-purple),1)' + label: + - color: 'rgba(var(--color-purple-text),1)' + name: + - color: 'rgba(var(--color-purple-text),1)' + img_cell: + - background-color: 'rgba(var(--color-purple), 0.2)' diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_off.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_off.yaml new file mode 100644 index 000000000..c65d600ec --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_off.yaml @@ -0,0 +1,14 @@ +--- +purple_off: + state: + - styles: + icon: + - color: 'rgba(var(--color-purple),1)' + label: + - color: 'rgba(var(--color-purple-text),1)' + name: + - color: 'rgba(var(--color-purple-text),1)' + img_cell: + - background-color: 'rgba(var(--color-purple), 0.2)' + value: 'off' + id: 'off' diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_on.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_on.yaml new file mode 100644 index 000000000..621e3ba5e --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_on.yaml @@ -0,0 +1,14 @@ +--- +purple_on: + state: + - styles: + icon: + - color: 'rgba(var(--color-purple),1)' + label: + - color: 'rgba(var(--color-purple-text),1)' + name: + - color: 'rgba(var(--color-purple-text),1)' + img_cell: + - background-color: 'rgba(var(--color-purple), 0.2)' + value: 'on' + id: 'on' diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_no_state.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_no_state.yaml new file mode 100644 index 000000000..d76eab8f5 --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_no_state.yaml @@ -0,0 +1,11 @@ +--- +yellow_no_state: + styles: + icon: + - color: 'rgba(var(--color-yellow),1)' + label: + - color: 'rgba(var(--color-yellow-text),1)' + name: + - color: 'rgba(var(--color-yellow-text),1)' + img_cell: + - background-color: 'rgba(var(--color-yellow), 0.2)' diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/internal_templates/yellow.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_off.yaml similarity index 92% rename from custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/internal_templates/yellow.yaml rename to custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_off.yaml index 55295e88d..eda36cb0a 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/internal_templates/yellow.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_off.yaml @@ -13,4 +13,5 @@ yellow: - background-color: "rgba(var(--color-yellow), 0.2)" card: - background-color: "rgba(var(--color-background-yellow),var(--opacity-bg))" - value: "on" + id: "off" + value: "off" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_on.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_on.yaml new file mode 100644 index 000000000..8d969e4d7 --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_on.yaml @@ -0,0 +1,19 @@ +--- +yellow_on: + state: + - styles: + icon: + - color: "rgba(var(--color-yellow),1)" + label: + - color: "rgba(var(--color-yellow-text),1)" + name: + - color: "rgba(var(--color-yellow-text),1)" + img_cell: + - background-color: "rgba(var(--color-yellow), 0.2)" + card: + - background-color: "rgba(var(--color-background-yellow),var(--opacity-bg))" + value: "on" + +# Legacy +yellow: + template: "yellow_on" \ No newline at end of file diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/internal_templates/yellow_slider.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_slider.yaml similarity index 100% rename from custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/internal_templates/yellow_slider.yaml rename to custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_slider.yaml From 6cd5ca81f100247e9a7fb46900db1f0bba896550 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20H=C3=B6rrle?= Date: Mon, 31 Jan 2022 16:11:31 +0100 Subject: [PATCH 088/248] Trim trailing whitespaces --- docs/usage/cards/card_vertical_button.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/usage/cards/card_vertical_button.md b/docs/usage/cards/card_vertical_button.md index d8ace12e9..4999e4613 100644 --- a/docs/usage/cards/card_vertical_button.md +++ b/docs/usage/cards/card_vertical_button.md @@ -9,11 +9,11 @@ hide: ![example-image](../../assets/img/ulm_cards/card_example.png){ width="500" } -Card `card_vertical_button` can be used in different ways. The primary usage is to switch between scenes or toggle a scene on/off. The seconday use is to toggle a switch or light. It's intended to be used with helper entities, either [input_select](https://www.home-assistant.io/integrations/input_select/) or [input_booelan](https://www.home-assistant.io/integrations/input_boolean/). +Card `card_vertical_button` can be used in different ways. The primary usage is to switch between scenes or toggle a scene on/off. The seconday use is to toggle a switch or light. It's intended to be used with helper entities, either [input_select](https://www.home-assistant.io/integrations/input_select/) or [input_booelan](https://www.home-assistant.io/integrations/input_boolean/). You connect the card to either an input_select (toggle between scenes) or input_boolean (toggle one scene) and the button will change the state of these entities. The final step is to create an automation that triggers on the state change and then runs the actions you want, apply a scene or interact with other entities. -The variable `ulm_card_vertical_button_state` needs to be used togehter with input_select to tie a specific state to the button. +The variable `ulm_card_vertical_button_state` needs to be used togehter with input_select to tie a specific state to the button. ## Variables From 6ebfb70e21d4dcf39f908f55a14b718035df9efa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20H=C3=B6rrle?= Date: Mon, 31 Jan 2022 16:29:42 +0100 Subject: [PATCH 089/248] Use PR for custom_cards docs updater --- .github/workflows/automatic-custom-card-docs.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/automatic-custom-card-docs.yml b/.github/workflows/automatic-custom-card-docs.yml index 0b8edda7d..31ee214a1 100644 --- a/.github/workflows/automatic-custom-card-docs.yml +++ b/.github/workflows/automatic-custom-card-docs.yml @@ -37,8 +37,9 @@ jobs: git pull -p git add --all git commit -a -m "Add changes for automatically custom_cards docs" - - name: "Push changes" - uses: "ad-m/github-push-action@master" + - name: "Create Pull Request" + uses: "peter-evans/create-pull-request@v3" with: - github_token: "${{ secrets.GITHUB_TOKEN }}" - branch: "${{ github.ref }}" + token: "${{ secrets.GITHUB_TOKEN }}" + delete-branch: true + base: "${{ github.ref }}" From b993d5751f07247b91622ebce7e5ce869e2faf61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20H=C3=B6rrle?= Date: Mon, 31 Jan 2022 16:33:01 +0100 Subject: [PATCH 090/248] test custom_cards docs updater --- custom_cards/custom_card_bar_card/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_cards/custom_card_bar_card/README.md b/custom_cards/custom_card_bar_card/README.md index 93eaa3ee6..0df9ff8f6 100644 --- a/custom_cards/custom_card_bar_card/README.md +++ b/custom_cards/custom_card_bar_card/README.md @@ -20,7 +20,7 @@ Version: 1.0.0

1.0.0 -Initial release +Initial release.
## Requirements From 4a20a445a8deb39c2e67e2d95aee23bf222208b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20H=C3=B6rrle?= Date: Mon, 31 Jan 2022 16:41:00 +0100 Subject: [PATCH 091/248] Add branch --- .github/workflows/automatic-custom-card-docs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/automatic-custom-card-docs.yml b/.github/workflows/automatic-custom-card-docs.yml index 31ee214a1..37cbfb76f 100644 --- a/.github/workflows/automatic-custom-card-docs.yml +++ b/.github/workflows/automatic-custom-card-docs.yml @@ -41,5 +41,6 @@ jobs: uses: "peter-evans/create-pull-request@v3" with: token: "${{ secrets.GITHUB_TOKEN }}" + branch: "automated_custom_card_docs" delete-branch: true base: "${{ github.ref }}" From 70ab05bee12fb4f34d7b1af45c3450cdb13de14c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20H=C3=B6rrle?= Date: Mon, 31 Jan 2022 16:47:26 +0100 Subject: [PATCH 092/248] test custom_cards docs updater --- custom_cards/custom_card_bar_card/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_cards/custom_card_bar_card/README.md b/custom_cards/custom_card_bar_card/README.md index 0df9ff8f6..93eaa3ee6 100644 --- a/custom_cards/custom_card_bar_card/README.md +++ b/custom_cards/custom_card_bar_card/README.md @@ -20,7 +20,7 @@ Version: 1.0.0
1.0.0 -Initial release. +Initial release
## Requirements From 7533f41eca09b19153c2d1eeea1be3881847c233 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20H=C3=B6rrle?= Date: Mon, 31 Jan 2022 16:55:46 +0100 Subject: [PATCH 093/248] Use aditonal updater vars --- .github/workflows/automatic-custom-card-docs.yml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/.github/workflows/automatic-custom-card-docs.yml b/.github/workflows/automatic-custom-card-docs.yml index 37cbfb76f..b5937ae8b 100644 --- a/.github/workflows/automatic-custom-card-docs.yml +++ b/.github/workflows/automatic-custom-card-docs.yml @@ -30,17 +30,13 @@ jobs: replace: "../../assets/img" include: "docs/usage/custom_cards/**" regex: true - - name: "Commit files" - run: | - git config --local user.email "action@github.com" - git config --local user.name "GitHub Action" - git pull -p - git add --all - git commit -a -m "Add changes for automatically custom_cards docs" - name: "Create Pull Request" uses: "peter-evans/create-pull-request@v3" with: token: "${{ secrets.GITHUB_TOKEN }}" branch: "automated_custom_card_docs" delete-branch: true - base: "${{ github.ref }}" + commit-message: "Update docs" + committer: "GitHub " + title: "[Action] Update custom_cards docs" + labels: ":memo: documentation" From e36c5eb6f6de8a96e077beca6af667b44cc6f47a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20H=C3=B6rrle?= Date: Mon, 31 Jan 2022 16:56:26 +0100 Subject: [PATCH 094/248] test custom_cards docs updater --- custom_cards/custom_card_bar_card/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_cards/custom_card_bar_card/README.md b/custom_cards/custom_card_bar_card/README.md index 93eaa3ee6..0df9ff8f6 100644 --- a/custom_cards/custom_card_bar_card/README.md +++ b/custom_cards/custom_card_bar_card/README.md @@ -20,7 +20,7 @@ Version: 1.0.0
1.0.0 -Initial release +Initial release.
## Requirements From ab1c87cec493ae731385053c8d974df99315a010 Mon Sep 17 00:00:00 2001 From: CM000n Date: Mon, 31 Jan 2022 15:56:52 +0000 Subject: [PATCH 095/248] Update docs --- .../custom_cards/custom_card_bar_card.md | 2 +- .../custom_card_input_datetime.md | 6 +- .../custom_cards/custom_card_input_number.md | 2 +- docs/usage/custom_cards/custom_card_scenes.md | 203 +----------------- 4 files changed, 11 insertions(+), 202 deletions(-) diff --git a/docs/usage/custom_cards/custom_card_bar_card.md b/docs/usage/custom_cards/custom_card_bar_card.md index 35de7559a..3d35c354d 100644 --- a/docs/usage/custom_cards/custom_card_bar_card.md +++ b/docs/usage/custom_cards/custom_card_bar_card.md @@ -20,7 +20,7 @@ Version: 1.0.0
1.0.0 -Initial release +Initial release.
## Requirements diff --git a/docs/usage/custom_cards/custom_card_input_datetime.md b/docs/usage/custom_cards/custom_card_input_datetime.md index a29b6a484..ceed50ade 100644 --- a/docs/usage/custom_cards/custom_card_input_datetime.md +++ b/docs/usage/custom_cards/custom_card_input_datetime.md @@ -5,9 +5,9 @@ title: card_input_datetime # Custom-card "Input Datetime Card" -The `card_input_datetime` you can control a input_number entity +The `card_input_datetime` you can control a input_datetime entity. -![Input Datetime Card](./assets/img/card_input_datetime.png) +![Input Datetime Card](../../assets/img/card_input_datetime.png) ## Credits @@ -58,5 +58,5 @@ n/a ??? note "Template Code" ```yaml title="custom_card_input_datetime.yaml" - --8<-- "custom_cards/custom_card_input_datetime/custom_card_input_datetime.yaml" + --8<-- "custom_cards/custom_card_input_datetime/card_input_datetime.yaml" ``` diff --git a/docs/usage/custom_cards/custom_card_input_number.md b/docs/usage/custom_cards/custom_card_input_number.md index 2630065b4..4702367a9 100644 --- a/docs/usage/custom_cards/custom_card_input_number.md +++ b/docs/usage/custom_cards/custom_card_input_number.md @@ -7,7 +7,7 @@ hide: # Custom-card "Input Number" -The `card_input_number` you can control a input_number entity +The `card_input_number` you can control a input_number entity. ![Input Number Card](../../assets/img/card_input_number.png) diff --git a/docs/usage/custom_cards/custom_card_scenes.md b/docs/usage/custom_cards/custom_card_scenes.md index 9c7fa2d1c..690940b7d 100644 --- a/docs/usage/custom_cards/custom_card_scenes.md +++ b/docs/usage/custom_cards/custom_card_scenes.md @@ -7,9 +7,9 @@ hide: # Custom-card "Scenes Card" -The `card_scenes` you can control a input_number entity +The `card_scenes` you can control up to 5 `entity` such as `scene` or `script`. -![Scenes Card](../../assets/img/ulm_cards/card_scenes.png) +![Scenes Card](../../assets/img/card_scenes.png) ## Credits @@ -108,199 +108,8 @@ n/a ## Template code -```yaml ---- -card_scenes: - show_icon: false - show_name: false - show_label: false - variables: - icon_1: "mdi:help-circle-outline" - icon_2: "mdi:help-circle-outline" - icon_3: "mdi:help-circle-outline" - icon_4: "mdi:help-circle-outline" - icon_5: "mdi:help-circle-outline" - name_1: "n/a" - name_2: "n/a" - name_3: "n/a" - name_4: "n/a" - name_5: "n/a" - color_icon_1: "gray" - color_icon_2: "gray" - color_icon_3: "gray" - color_icon_4: "gray" - color_icon_5: "gray" - color_bg_1: "gray" - color_bg_2: "gray" - color_bg_3: "gray" - color_bg_4: "gray" - color_bg_5: "gray" - styles: - grid: - - grid-template-areas: "'item1 item2 item3 item4 item5'" - - grid-template-columns: "1fr 1fr 1fr 1fr 1fr" - - grid-template-rows: "min-content" - - justify-items: "center" - - column-gap: "auto" - card: - - border-radius: "var(--border-radius)" - - box-shadow: "var(--box-shadow)" - - padding: "12px" - custom_fields: - item1: - card: - type: "custom:button-card" - template: "card_scenes_pill" - entity: "[[[ return variables.entity_1 ]]]" - icon: "[[[ return variables.icon_1 ]]]" - name: "[[[ return variables.name_1 ]]]" - variables: - color_icon: "[[[ return variables.color_icon_1 ]]]" - color_bg: "[[[ return variables.color_bg_1 ]]]" - tap_action: - action: "call-service" - service: "scene.turn_on" - service_data: - entity_id: "[[[ return variables.entity_1 ]]]" - item2: - card: - type: "custom:button-card" - template: "card_scenes_pill" - entity: "[[[ return variables.entity_2 ]]]" - icon: "[[[ return variables.icon_2 ]]]" - name: "[[[ return variables.name_2 ]]]" - variables: - color_icon: "[[[ return variables.color_icon_2 ]]]" - color_bg: "[[[ return variables.color_bg_2 ]]]" - tap_action: - action: "call-service" - service: "scene.turn_on" - service_data: - entity_id: "[[[ return variables.entity_2 ]]]" - item3: - card: - type: "custom:button-card" - template: "card_scenes_pill" - entity: "[[[ return variables.entity_3 ]]]" - icon: "[[[ return variables.icon_3 ]]]" - name: "[[[ return variables.name_3 ]]]" - variables: - color_icon: "[[[ return variables.color_icon_3 ]]]" - color_bg: "[[[ return variables.color_bg_3 ]]]" - tap_action: - action: "call-service" - service: "scene.turn_on" - service_data: - entity_id: "[[[ return variables.entity_3 ]]]" - item4: - card: - type: "custom:button-card" - template: "card_scenes_pill" - entity: "[[[ return variables.entity_4 ]]]" - icon: "[[[ return variables.icon_4 ]]]" - name: "[[[ return variables.name_4 ]]]" - variables: - color_icon: "[[[ return variables.color_icon_4 ]]]" - color_bg: "[[[ return variables.color_bg_4 ]]]" - tap_action: - action: "call-service" - service: "scene.turn_on" - service_data: - entity_id: "[[[ return variables.entity_4 ]]]" - item5: - card: - type: "custom:button-card" - template: "card_scenes_pill" - entity: "[[[ return variables.entity_5 ]]]" - icon: "[[[ return variables.icon_5 ]]]" - name: "[[[ return variables.name_5 ]]]" - variables: - color_icon: "[[[ return variables.color_icon_5 ]]]" - color_bg: "[[[ return variables.color_bg_5 ]]]" - tap_action: - action: "call-service" - service: "scene.turn_on" - service_data: - entity_id: "[[[ return variables.entity_5 ]]]" +??? note "Template Code" -card_scenes_pill: - show_icon: true - show_label: false - show_name: true - variables: - color_icon: "gray" - color_bg: "gray" - styles: - grid: - - grid-template-areas: "'i' 'n'" - - grid-template-columns: "min-content" - - grid-template-rows: "1fr 1fr" - - row-gap: "12px" - - justify-items: "center" - - column-gap: "auto" - card: - - box-shadow: "none" - - padding: "5px" - - box-shadow: > - [[[ - if (hass.themes.darkMode){ - return "0px 2px 4px 0px rgba(0,0,0,0.80)"; - } else { - return "var(--box-shadow)"; - } - ]]] - - border-radius: "50px" - - place-self: "center" - - width: "52px" - - height: "84px" - icon: - - color: > - [[[ - var color = [variables.color_icon]; - if (color == "gray"){ - var color = "rgba(var(--color-theme),0.20)"; - } else if(color == "yellow"){ - var color = "rgba(var(--color-yellow),1)"; - } else if(color == "blue"){ - var color = "rgba(var(--color-blue),1)"; - } else if(color == "purple"){ - var color = "rgba(var(--color-purple),1)"; - } else if(color == "green"){ - var color = "rgba(var(--color-green),1)"; - } else if(color == "red"){ - var color = "rgba(var(--color-red),1)"; - } - return color; - ]]] - img_cell: - - background-color: > - [[[ - var color = [variables.color_bg]; - if (color == "gray"){ - var color = "rgba(var(--color-theme),0.05)"; - } else if(color == "yellow"){ - var color = "rgba(var(--color-yellow),0.20)"; - } else if(color == "blue"){ - var color = "rgba(var(--color-blue),0.20)"; - } else if(color == "purple"){ - var color = "rgba(var(--color-purple),0.20)"; - } else if(color == "green"){ - var color = "rgba(var(--color-green),0.20)"; - } else if(color == "red"){ - var color = "rgba(var(--color-red),0.20)"; - } - return color; - ]]] - - border-radius: "50%" - - width: "42px" - - height: "42px" - name: - - font-weight: "bold" - - font-size: "9.5px" - - width: "33px" - - padding-bottom: "7px" - state: - - color: "rgba(var(--color-theme),0.9)" - color: "var(--google-grey)" - -``` + ```yaml title="custom_card_scenes.yaml" + --8<-- "custom_cards/custom_card_scenes/card_scenes.yaml" + ``` From 89a1b9bdb2ceb3e72feaca67b016e06d4e8d4546 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20H=C3=B6rrle?= Date: Mon, 31 Jan 2022 16:59:10 +0100 Subject: [PATCH 096/248] Add body to updater --- .github/workflows/automatic-custom-card-docs.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/automatic-custom-card-docs.yml b/.github/workflows/automatic-custom-card-docs.yml index b5937ae8b..5562e8cfb 100644 --- a/.github/workflows/automatic-custom-card-docs.yml +++ b/.github/workflows/automatic-custom-card-docs.yml @@ -40,3 +40,5 @@ jobs: committer: "GitHub " title: "[Action] Update custom_cards docs" labels: ":memo: documentation" + body: | + Update custom_cards docs due to latest changes. From 9d60087cf2314cf535b30772754504ef60768012 Mon Sep 17 00:00:00 2001 From: AndyVRD <67138158+AndyVRD@users.noreply.github.com> Date: Mon, 31 Jan 2022 20:20:27 +0100 Subject: [PATCH 097/248] Update card_battery.yaml For me the mdi:battery-charging icon was not working for iOS/iPad OS. The state of the battery_state sensor is "Charging". But a close look at the code and far as i understand it have a problem i think. If the variables.ulm_card_battery_charger_type_entity_id is not defined by the user or the state is not "null", "ac" or "wireless" the battery-charging icon will never be used. The strange thing is that the code below (far as i understand...) will pass the battery-charging icon if the state of variables.ulm_card_battery_battery_state_entity_id is not equal to "null" and the state of variables.ulm_card_battery_battery_state_entity_id is "charging" but for some reason this was not working for (also after changing "charging" to "Charging"...). infix = variables.ulm_card_battery_battery_state_entity_id !== null && states[variables.ulm_card_battery_battery_state_entity_id].state == "charging" ? "-charging" : "" --- .../ulm_templates/card_templates/cards/card_battery.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_battery.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_battery.yaml index a2c114b05..fcbcb05e8 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_battery.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_battery.yaml @@ -28,7 +28,7 @@ card_battery: if(variables.ulm_card_battery_charger_type_entity_id == null) { // is charging? infix = variables.ulm_card_battery_battery_state_entity_id !== null - && states[variables.ulm_card_battery_battery_state_entity_id].state =="charging" + && states[variables.ulm_card_battery_battery_state_entity_id].state == "charging" ? "-charging" : "" } else { // is charging/ is charging wireless? @@ -36,6 +36,9 @@ card_battery: case "wireless": infix = "-charging-wireless"; break; + case "Charging": + infix = "-charging"; + break; case "ac": infix = "-charging"; break; From b41a645a1968ce59ff286728cab81303e2c44158 Mon Sep 17 00:00:00 2001 From: Rick Stokkingreef Date: Mon, 31 Jan 2022 21:06:20 +0100 Subject: [PATCH 098/248] Remove custom repo part in hacs installation --- docs/setup/download.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/docs/setup/download.md b/docs/setup/download.md index eefad8697..acef767d3 100644 --- a/docs/setup/download.md +++ b/docs/setup/download.md @@ -29,11 +29,6 @@ To find this Integration on HACS we first need to add the UI Lovelace Minimalist 1. Go to HACS 2. Click on Integrations -3. Click on 3-dots in the Right-Top corner and select "Custom Repositories" - 1. Repository: https://github.com/UI-Lovelace-Minimalist/UI - 2. Category: Integration - 3. Add -4. New Repository Should pop-up, if this is not the case hit "Explore & Download Repositories" 5. Search for "UI Lovelace Minimalist" and click "Download this Repository with HACS" 6. Select the version (will auto select latest) 7. Now we need to restart home-assistant under [![Open your Home Assistant instance and show your server controls.](https://my.home-assistant.io/badges/server_controls.svg)](https://my.home-assistant.io/redirect/server_controls/) From b73345f4f0ed244d05834a0d75adb7721ab78282 Mon Sep 17 00:00:00 2001 From: Rick Stokkingreef Date: Mon, 31 Jan 2022 21:07:27 +0100 Subject: [PATCH 099/248] Fixed order --- docs/setup/download.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/setup/download.md b/docs/setup/download.md index acef767d3..c52f4cfa4 100644 --- a/docs/setup/download.md +++ b/docs/setup/download.md @@ -29,10 +29,10 @@ To find this Integration on HACS we first need to add the UI Lovelace Minimalist 1. Go to HACS 2. Click on Integrations -5. Search for "UI Lovelace Minimalist" and click "Download this Repository with HACS" -6. Select the version (will auto select latest) -7. Now we need to restart home-assistant under [![Open your Home Assistant instance and show your server controls.](https://my.home-assistant.io/badges/server_controls.svg)](https://my.home-assistant.io/redirect/server_controls/) -8. Wait until Home assistant is restarted and Continue to ["Install Integration"](https://ui-lovelace-minimalist.github.io/UI/setup/installation/#install-integration). +3. Search for "UI Lovelace Minimalist" and click "Download this Repository with HACS" +4. Select the version (will auto select latest) +5. Now we need to restart home-assistant under [![Open your Home Assistant instance and show your server controls.](https://my.home-assistant.io/badges/server_controls.svg)](https://my.home-assistant.io/redirect/server_controls/) +6. Wait until Home assistant is restarted and Continue to ["Install Integration"](https://ui-lovelace-minimalist.github.io/UI/setup/installation/#install-integration). --- From 4d040561a26ae34f43590b227e163abc076cf66a Mon Sep 17 00:00:00 2001 From: acesyde Date: Tue, 1 Feb 2022 10:27:41 +0100 Subject: [PATCH 100/248] feature: my enedis --- custom_cards/custom_chip_myenedis/README.md | 77 ++++++++++++++++++ .../custom_chip_myenedis.yaml | 23 ++++++ .../img/ulm_chips/chip_myenedis_all.png | Bin 0 -> 2651 bytes .../img/ulm_chips/chip_myenedis_hp_hc.png | Bin 0 -> 3770 bytes 4 files changed, 100 insertions(+) create mode 100644 custom_cards/custom_chip_myenedis/README.md create mode 100644 custom_cards/custom_chip_myenedis/custom_chip_myenedis.yaml create mode 100644 docs/assets/img/ulm_chips/chip_myenedis_all.png create mode 100644 docs/assets/img/ulm_chips/chip_myenedis_hp_hc.png diff --git a/custom_cards/custom_chip_myenedis/README.md b/custom_cards/custom_chip_myenedis/README.md new file mode 100644 index 000000000..7ff26c0e9 --- /dev/null +++ b/custom_cards/custom_chip_myenedis/README.md @@ -0,0 +1,77 @@ +--- +title: chip_myenedis +hide: + - toc +--- + + +# Custom-chip "My Enedis" + +The `myenedis` you can control a input_number entity + +![ALL](../../docs/assets/img/ulm_chips/chip_myenedis_all.png) + +![HP / HC](../../docs/assets/img/ulm_chips/chip_myenedis_hp_hc.png) + +## Credits + +Author: acesyde - 2021 +Version: 1.0.0 + +## Changelog + +
+1.0.0 +Initial release +
+ +## Usage + +```yaml +- type: 'custom:button-card' + template: custom_chip_myenedis + entity: sensor.myenedis_123456789 + variables: + ulm_chip_separate_hp_hc: true +``` + +## Requirements + +[My Enedis integration](https://github.com/saniho/apiEnedis) + +## Variables + +| Variable | Default | Required | Notes | +|----------|---------|------------------|-------------------| +|entity||:material-check:|Your MyEnedis Sensor| +|ulm_chip_separate_hp_hc|false|:material-close:|Separate HC/HC in the chip| + +## Template code + +```yaml +--- +--- +### Chip My Enedis ### +custom_chip_myenedis: + template: + - "chips" + - "ulm_language_variables" + variables: + ulm_chip_separate_hp_hc: false + ulm_chip_unit_of_measurement: "[[[ return entity.attributes.unit_of_measurement ]]]" + triggers_update: "all" + label: | + [[[ + var result = "💰 " + parseFloat(entity.attributes.daily_cost).toFixed(1) + " €"; + + if(variables.ulm_chip_separate_hp_hc) { + result += " ☀️ " + parseFloat(entity.attributes.yesterday_HC).toFixed(1) + " " + variables.ulm_chip_unit_of_measurement; + result += " 🌑 " + parseFloat(entity.attributes.yesterday_HP).toFixed(1) + " " + variables.ulm_chip_unit_of_measurement; + } else { + result += " ⚡ " + parseFloat(entity.attributes.yesterday_HCHP).toFixed(1) + " " + variables.ulm_chip_unit_of_measurement; + } + + return result; + ]]] + +``` diff --git a/custom_cards/custom_chip_myenedis/custom_chip_myenedis.yaml b/custom_cards/custom_chip_myenedis/custom_chip_myenedis.yaml new file mode 100644 index 000000000..8f3696a64 --- /dev/null +++ b/custom_cards/custom_chip_myenedis/custom_chip_myenedis.yaml @@ -0,0 +1,23 @@ +--- +### Chip Power Consumption ### +custom_chip_myenedis: + template: + - "chips" + - "ulm_language_variables" + variables: + ulm_chip_separate_hp_hc: false + ulm_chip_unit_of_measurement: "[[[ return entity.attributes.unit_of_measurement ]]]" + triggers_update: "all" + label: | + [[[ + var result = "💰 " + parseFloat(entity.attributes.daily_cost).toFixed(1) + " €"; + + if(variables.ulm_chip_separate_hp_hc) { + result += " ☀️ " + parseFloat(entity.attributes.yesterday_HP).toFixed(1) + " " + variables.ulm_chip_unit_of_measurement; + result += " 🌑 " + parseFloat(entity.attributes.yesterday_HC).toFixed(1) + " " + variables.ulm_chip_unit_of_measurement; + } else { + result += " ⚡ " + parseFloat(entity.attributes.yesterday_HCHP).toFixed(1) + " " + variables.ulm_chip_unit_of_measurement; + } + + return result; + ]]] \ No newline at end of file diff --git a/docs/assets/img/ulm_chips/chip_myenedis_all.png b/docs/assets/img/ulm_chips/chip_myenedis_all.png new file mode 100644 index 0000000000000000000000000000000000000000..88be00803c6a48929ea8a544f1c7bbfd7c14b2f7 GIT binary patch literal 2651 zcmV-h3Z(UkP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D01|XXSaefwW^{L9 za%BKVa%E+1b7*gLUR4MM000TnNkly;#bEb+)jC3dypt z7t)O>m=@X)TBR2TstyRXPz+nBHzBf>;7#;nRCvZv7F?)c*x8--}(8@`+V?a6J7mk2Eyi`0JopqO%lZ;lM*%xF9n=r&)~%EMze>o~ zA137EcM|f`wdH>kiG*>xxUzZkW?B91uPwQLH3Gcyn`M0otJ$@la)1E7y&)m;k7xPk z-h`}LwaU0%9HFnTzqUg5|K?Tc>gqDK`M>b5en}>ik~*9*uMb2<(p!_x{!)^jF|GFx zUTK!COIS80P4gs|$z+MP1&_;mvOstax!_i zPd2V?b}xMEhCWH3&KcS%LEAgbXJ!0IzieOM>TZ)vwo2bo{{vNJogG~(KWqP1h*GD4 zeXJ&|v#y!`_Kr%fuq<;pm2dx%w$IAQ4z5X?3{FHREMDOkp4BP~d~|*Ekn!O-hCrxnM!t6a29~9d3}4 zZ*<7^-T~=dL+?EmQMTlHSC=dSoO^dzF*xF(~6~pBa`E-?t4*##0g;IC4Nz zZia7_jeABVGw(U35AX`V@T^uH>s#2FnHl53{Ls?UQYI^+w*P5`eEOF!7ndRJcV1a3 z7cN{d?qgwLO!~Q4$$lBrWfOza#TA4`$90w@s~X+Wd+IsGOUTkXAYiE9}za^ zeD0v#dS~0h;2hhFbj>or9c4N#-Ol=s_1tlsjGZZM-}d`)r@abW$nJalr27rNH%s4V zHOejn_!XJ36vS7qTrnP~7G%vIw3K9pU;O#&(slS7vigIU%9j6bbHWY2X+Or`%%t-p z-fu9gw)d>xnszdXVZ8y9tkod%GJs9{YIq-2*gXT1DwGcC>C$@23wOO!v*tf{OZx9a z(&;SgJDQWJL*4FrK9_`b+7$MYJKE>2&kJ4JuOIMBAMEQAR%Zw)Pkr$2XnYR3ETh3R#tH-E2!KFz+10 zksAq*?Pj||w)K<*#cQPdH=gU_;1z!PnJEY)Y?zk@%)c^i<2 zUCv*3#-K1Wpv$zLjZj#;icDB|B)_!p^pACk7aX^2y90)3Fo(A@@ zOjzgptr6)d2wr^n`h1`;UA?$w!mWAChB47V* zLN0$$l9T%N%BNo_ekThrK0^>6v>XU0>+%Di@G7zw2kd~0&a1QO>1nxs{krkMwIGnZ z9AN57vn>Ks29Q~of~-I}z#OcV)gSnTSCPD$1vb{10_qGV_H((~w^b8t%ab+1Ru>R0e3ENNP^ zEYlC?&!2a{n@+-F@dN(gkxpmvy;eB@HH8IJmOXp+Y+XM$v@Bon27iKPSMV*YH_MXB zFJ8Rpj*zhRtYvwEFL;AL-rChqb_HL;f@WErF(8#wFrPbj&ixmQrjxT+yx^3p!t#dr;{iV41%BX( z${M6@^%7WEsLZs~B08r=%AcH^ES@OKIXOm}{b$EZ6XHsIi8Jxm#Dxd=pmXYKfrYGNPzm_+bMl&q(755$KR*X`nGBzQmb$6L;dTqE?mwVP%E7 zgjG~pMvqrqZULM$KOLh3j5g{T%hH0l5?|s>yotM4)Oxe3mq>&K9XVccxdm|2{LT^R zghHn*@x~iZjWO{i?v7`5*gbU9ZlzE_na|002ov JPDHLkV1oR0B*Fjy literal 0 HcmV?d00001 diff --git a/docs/assets/img/ulm_chips/chip_myenedis_hp_hc.png b/docs/assets/img/ulm_chips/chip_myenedis_hp_hc.png new file mode 100644 index 0000000000000000000000000000000000000000..28561f6e1ebd6c376da3fd36497eaa652c1735bb GIT binary patch literal 3770 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 Date: Tue, 1 Feb 2022 10:08:45 +0000 Subject: [PATCH 101/248] fix: eol --- custom_cards/custom_chip_myenedis/custom_chip_myenedis.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_cards/custom_chip_myenedis/custom_chip_myenedis.yaml b/custom_cards/custom_chip_myenedis/custom_chip_myenedis.yaml index 8f3696a64..d96dacd1d 100644 --- a/custom_cards/custom_chip_myenedis/custom_chip_myenedis.yaml +++ b/custom_cards/custom_chip_myenedis/custom_chip_myenedis.yaml @@ -20,4 +20,4 @@ custom_chip_myenedis: } return result; - ]]] \ No newline at end of file + ]]] From 78aaeabd0c1153065bc308f5ddd0b69264e95b18 Mon Sep 17 00:00:00 2001 From: basbruss <68892092+basbruss@users.noreply.github.com> Date: Tue, 1 Feb 2022 11:37:21 +0100 Subject: [PATCH 102/248] Use card_welcome_scenes --- .../lovelace/ui-lovelace.yaml | 112 +++- .../cards/card_welcome_scenes.yaml | 565 ++++++++++++++++++ 2 files changed, 675 insertions(+), 2 deletions(-) create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_welcome_scenes.yaml diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml index ed5c13e9a..539913df8 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml @@ -8,6 +8,114 @@ background: "var(--background-image)" views: - title: "Example View" path: 0 + icon: "mdi:flower" cards: - - type: "custom:button-card" - entity: "sun.sun" + - type: "vertical-stack" + cards: + - type: "custom:button-card" + template: "card_title" + name: "Congrats with your Minimalistic-UI installation" + label: "Explore the wonderfull templates/cards we offer" + - type: "custom:auto-entities" + card: + type: "grid" + columns: 1 + square: false + card_param: "cards" + sort: + count: 1 + filter: + include: + - domain: "weather" + options: + type: "custom:button-card" + template: "card_welcome_scene" + variables: + ulm_time: "sensor.time" + ulm_weather: "this.entity_id" + ulm_chip_date: "sensor.date" + - type: "custom:button-card" + template: "card_title" + name: "Lights" + label: "This is the Minimalist-lightcard" + - type: "custom:auto-entities" + card: + type: "grid" + columns: 2 + square: false + card_param: "cards" + sort: + count: 4 + filter: + include: + - domain: "light" + options: + type: "custom:button-card" + template: "card_light" + variables: + ulm_card_light_enable_color: true + ulm_card_light_enable_slider: true + ulm_card_light_enable_popup: true + - type: "custom:button-card" + template: "card_title" + name: "Binary Sensors" + label: "This is the Minimalist-binary_sensorcard" + - type: "custom:auto-entities" + card: + type: "grid" + columns: 2 + square: false + card_param: "cards" + sort: + count: 4 + filter: + include: + - domain: "binary_sensor" + options: + type: "custom:button-card" + template: "card_binary_sensor_alert" + variables: + - ulm_card_binary_sensor_alert: true + show_last_changed: true + - type: "custom:button-card" + template: "card_title" + name: "Sensors" + label: "This is the Minimalist-sensorcard" + - type: "custom:auto-entities" + card: + type: "grid" + columns: 2 + square: false + card_param: "cards" + sort: + count: 4 + filter: + include: + - domain: "sensor" + options: + type: "custom:button-card" + template: "card_generic" + - type: "custom:button-card" + template: "card_title" + name: "Batteries" + label: "This is the Minimalist-batterycard" + - type: "custom:auto-entities" + card: + type: "grid" + columns: 2 + square: false + card_param: "cards" + sort: + count: 4 + filter: + include: + - attributes: + unit_of_measurement: "%" + device_class: "battery" + options: + type: "custom:button-card" + template: "card_battery" + variables: + ulm_card_battery_battery_state_entity_id: "this.entity_id" + ulm_card_battery_battery_level_danger: 30 + ulm_card_battery_battery_level_warning: 80 diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_welcome_scenes.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_welcome_scenes.yaml new file mode 100644 index 000000000..8d4fd5e6e --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_welcome_scenes.yaml @@ -0,0 +1,565 @@ +--- +card_welcome_scenes: + variables: + ulm_weather: "[[[ return variables.ulm_weather]]]" + color_pill_1: > + [[[ + var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink']; + var color = colors[Math.floor(Math.random() * colors.length)]; + return color; + ]]] + color_pill_2: > + [[[ + var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink']; + var color = colors[Math.floor(Math.random() * colors.length)]; + return color; + ]]] + color_pill_3: > + [[[ + var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink']; + var color = colors[Math.floor(Math.random() * colors.length)]; + return color; + ]]] + color_pill_4: > + [[[ + var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink']; + var color = colors[Math.floor(Math.random() * colors.length)]; + return color; + ]]] + color_pill_5: > + [[[ + var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink']; + var color = colors[Math.floor(Math.random() * colors.length)]; + return color; + ]]] + template: + - "ulm_language_variables" + show_icon: false + show_name: false + show_label: true + styles: + grid: + - grid-template-areas: "'item1' 'item2' 'item3' 'item4'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" + - row-gap: "0px" + card: + - border-radius: "var(--border-radius)" + - box-shadow: "var(--box-shadow)" + - padding: "10px" + custom_fields: + item1: + card: + type: "custom:button-card" + template: "card_topbar_welcome" + variables: + ulm_weather: "[[[ return variables.ulm_weather]]]" + ulm_chip_date: "[[[ return variables.ulm_chip_date ]]]" + styles: + card: + - border-radius: "none" + - box-shadow: "none" + - padding: "4px" + - margin-left: "relative" + item2: + card: + type: "custom:button-card" + show_icon: false + show_label: false + show_name: true + show_entity_picture: false + name: | + [[[ + let time = states[variables.ulm_time].state; + let welcome = ''; + + if (time > '18:00'){ + welcome = variables.ulm_evening; + } else if (time > '12:00'){ + welcome = variables.ulm_afternoon; + } else if (time > '05:00'){ + welcome = variables.ulm_morning; + } else { + welcome = variables.ulm_hello; + } + + return welcome + ', ' + '
' + user.name + '!'; + ]]] + styles: + name: + - align-self: "start" + - justify-self: "start" + - font-weight: "bold" + - font-size: "24px" + - margin-left: "16px" + grid: + - grid-template-areas: "'i n' 'i l'" + - grid-template-columns: "min-content auto" + - grid-template-rows: "min-content min-content" + - text-align: "start" + card: + - box-shadow: "none" + - padding-bottom: "8px" + item3: + card: + type: "custom:button-card" + show_icon: true + show_label: true + show_name: true + show_entity_picture: false + name: "Scenes" + icon: "mdi:dots-vertical" + styles: + icon: + - height: "20px" + - filter: "opacity(50%)" + name: + - align-self: "start" + - justify-self: "start" + - font-weight: "bold" + - font-size: "18px" + - margin-left: "16px" + grid: + - grid-template-areas: "'n i'" + - grid-template-columns: "6fr 1fr" + - grid-template-rows: "min-content min-content" + - text-align: "start" + card: + - box-shadow: "none" + - padding-bottom: "0px" + - bottom: "10px" + item4: + card: + type: "custom:button-card" + template: > + [[[ + if(variables.entity_pill_1 && variables.entity_pill_2 && variables.entity_pill_3 && variables.entity_pill_4 && variables.entity_pill_5){ + return 'card_scenes_welcome' + } else { + return 'card_scenes_welcome_auto' + } + ]]] + styles: + card: + - border-radius: "none" + - box-shadow: "none" + - padding: "4px" + variables: + icon_pill_1: "[[[ return variables.icon_pill_1]]]" + icon_pill_2: "[[[ return variables.icon_pill_2]]]" + icon_pill_3: "[[[ return variables.icon_pill_3]]]" + icon_pill_4: "[[[ return variables.icon_pill_4]]]" + icon_pill_5: "[[[ return variables.icon_pill_5]]]" + name_pill_1: "[[[ return variables.name_pill_1]]]" + name_pill_2: "[[[ return variables.name_pill_2]]]" + name_pill_3: "[[[ return variables.name_pill_3]]]" + name_pill_4: "[[[ return variables.name_pill_4]]]" + name_pill_5: "[[[ return variables.name_pill_5]]]" + entity_pill_1: "[[[ return variables.entity_pill_1]]]" + entity_pill_2: "[[[ return variables.entity_pill_2]]]" + entity_pill_3: "[[[ return variables.entity_pill_3]]]" + entity_pill_4: "[[[ return variables.entity_pill_4]]]" + entity_pill_5: "[[[ return variables.entity_pill_5]]]" + color_pill_1: "[[[ return variables.color_pill_1]]]" + color_pill_2: "[[[ return variables.color_pill_2]]]" + color_pill_3: "[[[ return variables.color_pill_3]]]" + color_pill_4: "[[[ return variables.color_pill_4]]]" + color_pill_5: "[[[ return variables.color_pill_5]]]" +card_title_welcome: + tap_action: + action: "none" + show_icon: false + show_label: true + show_name: true + styles: + card: + - background-color: "rgba(0,0,0,0)" + - box-shadow: "none" + - height: "auto" + - width: "auto" + - margin-top: "-10px" + - margin-left: "16px" + - margin-bottom: "-15px" + grid: + - grid-template-areas: "'n' 'l'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" + name: + - justify-self: "start" + - font-weight: "bold" + - font-size: "20px" + label: + - justify-self: "start" + - font-weight: "bold" + - font-size: "1rem" + - opacity: "0.4" +card_scenes_welcome: + show_icon: false + show_name: true + show_label: false + styles: + grid: + - grid-template-areas: "'item1 item2 item3 item4 item5'" + - grid-template-columns: "1fr 1fr 1fr 1fr 1fr" + - grid-template-rows: "min-content" + - justify-items: "center" + - column-gap: "24px" + card: + - border-radius: "var(--border-radius)" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + custom_fields: + item1: + card: + type: "custom:button-card" + template: "card_scenes_pill_welcome" + entity: "[[[ return variables.entity_pill_1 ]]]" + icon: "[[[ return variables.icon_pill_1 ]]]" + name: "[[[ return variables.name_pill_1 ]]]" + styles: + icon: + - color: "[[[ return `rgba(var(--color-${variables.color_pill_1}), 1)`;]]]" + img_cell: + - background-color: "[[[ return `rgba(var(--color-${variables.color_pill_1}), 0.20)`;]]]" + tap_action: + action: "call-service" + service: "script.toggle" + service_data: + entity_id: "[[[ return variables.entity_pill_1 ]]]" + item2: + card: + type: "custom:button-card" + template: "card_scenes_pill_welcome" + entity: "[[[ return variables.entity_pill_2 ]]]" + icon: "[[[ return variables.icon_pill_2 ]]]" + name: "[[[ return variables.name_pill_2 ]]]" + styles: + icon: + - color: "[[[ return `rgba(var(--color-${variables.color_pill_2}), 1)`;]]]" + img_cell: + - background-color: "[[[ return `rgba(var(--color-${variables.color_pill_2}), 0.20)`;]]]" + tap_action: + action: "call-service" + service: "script.toggle" + service_data: + entity_id: "[[[ return variables.entity_pill_2 ]]]" + item3: + card: + type: "custom:button-card" + template: "card_scenes_pill_welcome" + entity: "[[[ return variables.entity_pill_3 ]]]" + icon: "[[[ return variables.icon_pill_3 ]]]" + name: "[[[ return variables.name_pill_3 ]]]" + styles: + icon: + - color: "[[[ return `rgba(var(--color-${variables.color_pill_3}), 1)`;]]]" + img_cell: + - background-color: "[[[ return `rgba(var(--color-${variables.color_pill_3}), 0.20)`;]]]" + tap_action: + action: "call-service" + service: "script.toggle" + service_data: + entity_id: "[[[ return variables.entity_pill_3 ]]]" + item4: + card: + type: "custom:button-card" + template: "card_scenes_pill_welcome" + entity: "[[[ return variables.entity_pill_4 ]]]" + icon: "[[[ return variables.icon_pill_4 ]]]" + name: "[[[ return variables.name_pill_4 ]]]" + styles: + icon: + - color: "[[[ return `rgba(var(--color-${variables.color_pill_4}), 1)`;]]]" + img_cell: + - background-color: "[[[ return `rgba(var(--color-${variables.color_pill_4}), 0.20)`;]]]" + tap_action: + action: "call-service" + service: "script.toggle" + service_data: + entity_id: "[[[ return variables.entity_pill_4 ]]]" + item5: + card: + type: "custom:button-card" + template: "card_scenes_pill_welcome" + entity: "[[[ return variables.entity_pill_5 ]]]" + icon: "[[[ return variables.icon_pill_5 ]]]" + name: "[[[ return variables.name_pill_5 ]]]" + styles: + icon: + - color: "[[[ return `rgba(var(--color-${variables.color_pill_5}), 1)`;]]]" + img_cell: + - background-color: "[[[ return `rgba(var(--color-${variables.color_pill_5}), 0.20)`;]]]" + tap_action: + action: "call-service" + service: "script.toggle" + service_data: + entity_id: "[[[ return variables.entity_pill_5 ]]]" +card_scenes_pill_welcome: + show_icon: true + show_label: false + show_name: true + styles: + grid: + - grid-template-areas: "'i' 'n'" + - grid-template-columns: "min-content" + - grid-template-rows: "1fr 1fr" + - row-gap: "12px" + - justify-items: "center" + - column-gap: "auto" + card: + - padding: "5px" + - border-radius: "50px" + - place-self: "center" + - width: "52px" + - height: "84px" + - box-shadow: > + [[[ + if (hass.themes.darkMode){ + return "0px 2px 4px 0px rgba(0,0,0,0.80)"; + } else { + return "var(--box-shadow)"; + } + ]]] + icon: + - color: "[[[ return `rgba(var(--color-theme), 0.20)`;]]]" + - width: "20px" + img_cell: + - background-color: "[[[ return `rgba(var(--color-theme), 0.05)`;]]] " + - border-radius: "50%" + - width: "42px" + - height: "42px" + name: + - font-weight: "bold" + - font-size: "9.5px" + - width: "33px" + - padding-bottom: "7px" + state: + - color: "rgba(var(--color-theme),0.9)" + color: "var(--google-grey)" + +card_topbar_welcome: + show_icon: false + show_name: true + show_label: false + styles: + grid: + - grid-template-areas: "'item1 item2 item3'" + - grid-template-columns: "1fr 7fr 1fr" + - grid-template-rows: "min-content" + - justify-items: "center" + card: + - border-radius: "var(--border-radius)" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + custom_fields: + item1: + card: + type: "custom:button-card" + template: "chip_mdi_icon_only" + variables: + ulm_chip_mdi_icon_only_icon: "mdi:chevron-down" + item2: + card: + type: "custom:button-card" + template: "chip_temperature_custom" + variables: + ulm_chip_date: "[[[ return variables.ulm_chip_date ]]]" + ulm_weather: "[[[ return variables.ulm_weather]]]" + item3: + card: + type: "custom:button-card" + tap_action: + action: "navigate" + navigation_path: "/config/dashboard" + template: "chip_mdi_icon_only" + variables: + ulm_chip_mdi_icon_only_icon: "mdi:cog-outline" + +chip_temperature_custom: + template: "chips" + triggers_update: "all" + label: | + [[[ + var icon = '🌡️'; + if (states[variables.ulm_weather].state == 'clear-night'){ + var icon = '🌙'; + } else if(states[variables.ulm_weather].state == 'cloudy'){ + var icon = '☁️'; + } else if(states[variables.ulm_weather].state == 'exceptional'){ + var icon = '🌞'; + } else if(states[variables.ulm_weather].state == 'fog'){ + var icon = '🌫️'; + } else if(states[variables.ulm_weather].state == 'hail'){ + var icon = '⛈️'; + } else if(states[variables.ulm_weather].state == 'lightning'){ + var icon = '⚡'; + } else if(states[variables.ulm_weather].state == 'lightning-rainy'){ + var icon = '⛈️'; + } else if(states[variables.ulm_weather].state == 'partlycloudy'){ + var icon = '⛅'; + } else if(states[variables.ulm_weather].state == 'pouring'){ + var icon = '🌧️'; + } else if(states[variables.ulm_weather].state == 'rainy'){ + var icon = '💧'; + } else if(states[variables.ulm_weather].state == 'snowy'){ + var icon = '❄️'; + } else if(states[variables.ulm_weather].state == 'snowy-rainy'){ + var icon = '🌨️'; + } else if(states[variables.ulm_weather].state == 'sunny'){ + var icon = '☀️'; + } else if(states[variables.ulm_weather].state == 'windy'){ + var icon = '🌪️'; + } + return icon + ' ' + states[variables.ulm_chip_date].state; + ]]] + +card_scenes_welcome_auto: + show_icon: false + show_name: true + show_label: false + styles: + grid: + - grid-template-areas: "'item1 item2 item3 item4 item5'" + - grid-template-columns: "1fr 1fr 1fr 1fr 1fr" + - grid-template-rows: "min-content" + - justify-items: "center" + - column-gap: "24px" + card: + - border-radius: "var(--border-radius)" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + custom_fields: + item1: + card: + type: "custom:auto-entities" + card: + type: "grid" + columns: 1 + square: false + card_param: "cards" + sort: + count: 1 + filter: + include: + - domain: "script" + options: + type: "custom:button-card" + template: "card_scenes_pill_welcome" + styles: + icon: + - color: "[[[ return `rgba(var(--color-${variables.color_pill_1}), 1)`;]]]" + img_cell: + - background-color: "[[[ return `rgba(var(--color-${variables.color_pill_1}), 0.20)`;]]]" + tap_action: + action: "call-service" + service: "script.toggle" + service_data: + entity_id: "this.entity_id" + item2: + card: + type: "custom:auto-entities" + card: + type: "grid" + columns: 1 + square: false + card_param: "cards" + sort: + count: 1 + first: 1 + filter: + include: + - domain: "script" + options: + type: "custom:button-card" + template: "card_scenes_pill_welcome" + styles: + icon: + - color: "[[[ return `rgba(var(--color-${variables.color_pill_2}), 1)`;]]]" + img_cell: + - background-color: "[[[ return `rgba(var(--color-${variables.color_pill_2}), 0.20)`;]]]" + tap_action: + action: "call-service" + service: "script.toggle" + service_data: + entity_id: "this.entity_id" + item3: + card: + type: "custom:auto-entities" + card: + type: "grid" + columns: 1 + square: false + card_param: "cards" + sort: + count: 1 + first: 2 + filter: + include: + - domain: "script" + options: + type: "custom:button-card" + template: "card_scenes_pill_welcome" + styles: + icon: + - color: "[[[ return `rgba(var(--color-${variables.color_pill_3}), 1)`;]]]" + img_cell: + - background-color: "[[[ return `rgba(var(--color-${variables.color_pill_3}), 0.20)`;]]]" + tap_action: + action: "call-service" + service: "script.toggle" + service_data: + entity_id: "this.entity_id" + item4: + card: + type: "custom:auto-entities" + card: + type: "grid" + columns: 1 + square: false + card_param: "cards" + sort: + count: 1 + first: 3 + filter: + include: + - domain: "script" + options: + type: "custom:button-card" + template: "card_scenes_pill_welcome" + styles: + icon: + - color: "[[[ return `rgba(var(--color-${variables.color_pill_4}), 1)`;]]]" + img_cell: + - background-color: "[[[ return `rgba(var(--color-${variables.color_pill_4}), 0.20)`;]]]" + tap_action: + action: "call-service" + service: "script.toggle" + service_data: + entity_id: "this.entity_id" + item5: + card: + type: "custom:auto-entities" + card: + type: "grid" + columns: 1 + square: false + card_param: "cards" + sort: + count: 1 + first: 4 + filter: + include: + - domain: "script" + options: + type: "custom:button-card" + template: "card_scenes_pill_welcome" + styles: + icon: + - color: "[[[ return `rgba(var(--color-${variables.color_pill_5}), 1)`;]]]" + img_cell: + - background-color: "[[[ return `rgba(var(--color-${variables.color_pill_5}), 0.20)`;]]]" + tap_action: + action: "call-service" + service: "script.toggle" + service_data: + entity_id: "this.entity_id" From f563ed0562219fac2a06cb9c826d2b49bf1034d0 Mon Sep 17 00:00:00 2001 From: acesyde Date: Tue, 1 Feb 2022 10:43:42 +0000 Subject: [PATCH 103/248] feat: add more documentation --- custom_cards/custom_chip_myenedis/README.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/custom_cards/custom_chip_myenedis/README.md b/custom_cards/custom_chip_myenedis/README.md index 7ff26c0e9..c222aadd4 100644 --- a/custom_cards/custom_chip_myenedis/README.md +++ b/custom_cards/custom_chip_myenedis/README.md @@ -3,6 +3,7 @@ title: chip_myenedis hide: - toc --- + # Custom-chip "My Enedis" @@ -13,6 +14,12 @@ The `myenedis` you can control a input_number entity ![HP / HC](../../docs/assets/img/ulm_chips/chip_myenedis_hp_hc.png) +# Why not the default `chip_power_consumption` + +- The my enedis integration doesn't split the cost and the consumption in a specific sensor +- All values are in the main sensor under the `attributes` item +- Split `Heures Creuses (HC)` and `Heures pleines (HP)` + ## Credits Author: acesyde - 2021 @@ -28,7 +35,7 @@ Initial release ## Usage ```yaml -- type: 'custom:button-card' +- type: "custom:button-card" template: custom_chip_myenedis entity: sensor.myenedis_123456789 variables: @@ -41,10 +48,10 @@ Initial release ## Variables -| Variable | Default | Required | Notes | -|----------|---------|------------------|-------------------| -|entity||:material-check:|Your MyEnedis Sensor| -|ulm_chip_separate_hp_hc|false|:material-close:|Separate HC/HC in the chip| +| Variable | Default | Required | Notes | +| ----------------------- | ------- | ---------------- | -------------------------- | +| entity | | :material-check: | Your MyEnedis Sensor | +| ulm_chip_separate_hp_hc | false | :material-close: | Separate HC/HC in the chip | ## Template code @@ -73,5 +80,4 @@ custom_chip_myenedis: return result; ]]] - ``` From a68e34f8dea1c1fadeaffa3e448a69ff62b9279d Mon Sep 17 00:00:00 2001 From: acesyde Date: Tue, 1 Feb 2022 10:44:07 +0000 Subject: [PATCH 104/248] feat: add more documentation --- custom_cards/custom_chip_myenedis/README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/custom_cards/custom_chip_myenedis/README.md b/custom_cards/custom_chip_myenedis/README.md index c222aadd4..1a5220beb 100644 --- a/custom_cards/custom_chip_myenedis/README.md +++ b/custom_cards/custom_chip_myenedis/README.md @@ -14,12 +14,6 @@ The `myenedis` you can control a input_number entity ![HP / HC](../../docs/assets/img/ulm_chips/chip_myenedis_hp_hc.png) -# Why not the default `chip_power_consumption` - -- The my enedis integration doesn't split the cost and the consumption in a specific sensor -- All values are in the main sensor under the `attributes` item -- Split `Heures Creuses (HC)` and `Heures pleines (HP)` - ## Credits Author: acesyde - 2021 @@ -32,6 +26,12 @@ Version: 1.0.0 Initial release
+## Why not the default `chip_power_consumption` + +- The my enedis integration doesn't split the cost and the consumption in a specific sensor +- All values are in the main sensor under the `attributes` item +- Split `Heures Creuses (HC)` and `Heures pleines (HP)` + ## Usage ```yaml From db31b92bd4b331c460a0e5940046aa1532e55fc9 Mon Sep 17 00:00:00 2001 From: BasBruss <68892092+basbruss@users.noreply.github.com> Date: Tue, 1 Feb 2022 11:46:07 +0100 Subject: [PATCH 105/248] Leave in custom_cards --- .../cards/card_paddy_welcome.yaml | 206 ------------------ 1 file changed, 206 deletions(-) delete mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_paddy_welcome.yaml diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_paddy_welcome.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_paddy_welcome.yaml deleted file mode 100644 index 3a337a0de..000000000 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_paddy_welcome.yaml +++ /dev/null @@ -1,206 +0,0 @@ ---- -########################################## -# # -# Design by Paddy # -# # -########################################## -card_paddy_welcome: - template: - - "ulm_language_variables" - show_icon: false - show_name: false - show_label: false - styles: - grid: - - grid-template-areas: "'item1'" - - grid-template-columns: "1fr" - - grid-template-rows: "min-content" - - row-gap: "12px" - card: - - border-radius: "var(--border-radius)" - - box-shadow: "var(--box-shadow)" - - padding: "12px" - custom_fields: - item1: - card: - type: "markdown" - content: > - [[[ - let time = states[variables.ulm_card_paddy_welcome_time].state; - let welcome = ''; - - if (time > '18:00'){ - welcome = variables.ulm_evening; - } else if (time > '12:00'){ - welcome = variables.ulm_afternoon; - } else if (time > '05:00'){ - welcome = variables.ulm_morning; - } else { - welcome = variables.ulm_hello; - } - - return welcome + ',
' + user.name + '!'; - ]]] - card_mod: - style: | - ha-card { - border-radius: 14px; - box-shadow: none; - font-size: 30px; - text-align: left; - cursor: default; - } - -card_paddy_welcome_with_weather: - template: - - "ulm_language_variables" - show_icon: false - show_name: false - show_label: false - styles: - grid: - - grid-template-areas: "'item1' 'item2'" - - grid-template-columns: "1fr" - - grid-template-rows: "min-content min-content" - - row-gap: "12px" - card: - - border-radius: "var(--border-radius)" - - box-shadow: "var(--box-shadow)" - - padding: "12px" - custom_fields: - item1: - card: - type: "markdown" - content: > - [[[ - let time = states[variables.ulm_card_paddy_welcome_time].state; - let welcome = ''; - - if (time > '18:00'){ - welcome = variables.ulm_evening; - } else if (time > '12:00'){ - welcome = variables.ulm_afternoon; - } else if (time > '05:00'){ - welcome = variables.ulm_morning; - } else { - welcome = variables.ulm_hello; - } - - return welcome + ',
' + user.name + '!'; - ]]] - card_mod: - style: | - ha-card { - border-radius: 14px; - box-shadow: none; - font-size: 30px; - text-align: left; - cursor: default; - } - item2: - card: - type: "weather-forecast" - entity: "[[[ return variables.ulm_card_paddy_welcome_weather_provider; ]]]" - show_forecast: false - card_mod: - style: | - ha-card.type-weather-forecast { - border-radius: 14px; - box-shadow: none; - } - ha-card.type-weather-forecast .state { - text-align: left; - font-size: 14px; - font-weight: bolder; - } - ha-card.type-weather-forecast .name { - text-align: left; - font-size: 14px; - } - ha-card.type-weather-forecast .temp-attribute { - text-align: right; - } - ha-card.type-weather-forecast .temp { - text-align: right; - font-size: medium; - font-weight: bolder; - margin-right: 16px; - } - ha-card.type-weather-forecast .temp span { - text-align: right; - font-size: medium; - font-weight: bolder; - } - ha-card.type-weather-forecast .attribute { - text-align: right; - font-size: smaller; - } - -card_paddy_welcome_with_news: - template: - - "ulm_language_variables" - show_icon: false - show_name: false - show_label: false - styles: - grid: - - grid-template-areas: "'item1' 'item2'" - - grid-template-columns: "1fr" - - grid-template-rows: "min-content min-content" - - row-gap: "12px" - card: - - border-radius: "var(--border-radius)" - - box-shadow: "var(--box-shadow)" - - padding: "12px" - custom_fields: - item1: - card: - type: "markdown" - content: > - [[[ - let time = states[variables.ulm_card_paddy_welcome_time].state; - let welcome = ''; - - if (time > '18:00'){ - welcome = variables.ulm_evening; - } else if (time > '12:00'){ - welcome = variables.ulm_afternoon; - } else if (time > '05:00'){ - welcome = variables.ulm_morning; - } else { - welcome = variables.ulm_hello; - } - - return welcome + ',
' + user.name + '!'; - ]]] - card_mod: - style: | - ha-card { - border-radius: 14px; - box-shadow: none; - font-size: 30px; - text-align: left; - cursor: default; - } - item2: - card: - type: "custom:home-feed-card" - card_id: "main_feed" - show_empty: false - more_info_on_tap: true - state_color: false - compact_mode: true - max_item_count: 3 - show_icons: true - entities: > - [[[ - return variables.ulm_card_paddy_welcome_news_entities; - ]]] - card_mod: - style: | - ha-card { - border-radius: 14px; - box-shadow: none; - font-size: 14px; - text-align: left; - } From 9a7dcadbb6e20704b3fe820665870497b89695cd Mon Sep 17 00:00:00 2001 From: BasBruss <68892092+basbruss@users.noreply.github.com> Date: Tue, 1 Feb 2022 11:46:55 +0100 Subject: [PATCH 106/248] Leave in custom_cards --- docs/usage/cards/card_paddy_welcome.md | 429 ------------------------- 1 file changed, 429 deletions(-) delete mode 100644 docs/usage/cards/card_paddy_welcome.md diff --git a/docs/usage/cards/card_paddy_welcome.md b/docs/usage/cards/card_paddy_welcome.md deleted file mode 100644 index 0921b3b5e..000000000 --- a/docs/usage/cards/card_paddy_welcome.md +++ /dev/null @@ -1,429 +0,0 @@ ---- -title: card_paddy_welcome -hide: - - toc ---- - - -# "Welcome" card - -This is the `welcome-card` to show a welcome message to the user. It comes in four different versions: - -- welcome message (*card_paddy_welcome*) -- welcome message + weather-forecast (*card_paddy_welcome_with_weather*) -- welcome message + news (*card_paddy_welcome_with_news*) [based on home-feed-card] - -The card shows a time based message (good morning/afternoon/evening/hello) to the logged-in user with username. The second part of the card varies depending on what version you choose. *Note, that you have different requirements depending on the version!* - -## Credits - -Author: Paddy0174 - 2021 -Version: 1.0.0 - -## Changelog - -
-1.0.0 -Initial release -
- -## Requirements - -This card needs the following to function correctly: - - - - - - - - - - - - - - - - - - - - - -
Component / cardrequiredNote
lovelace-card-modyes
a weather integration/provideronly for welcome-card-with-weatherSee setup instructions for a HA weather integration
home-feed-cardonly for welcome-card-with-news
- -## Usage - -```yaml -- type: custom:button-card - template: card_paddy_welcome - variables: - ulm_card_paddy_welcome_time: sensor.time - -- type: custom:button-card - template: card_paddy_welcome_with_weather - variables: - ulm_card_paddy_welcome_time: sensor.time - ulm_card_paddy_welcome_weather_provider: weather.accu_weather - -- type: custom:button-card - template: paddy_welcome_with_news - variables: - ulm_card_paddy_welcome_time: sensor.time - ulm_card_paddy_welcome_news_entities: - - entity: sensor.waste_collection_paper - content_template: "{{display_name}}
{{state}}" - - entity: sensor.waste_collection_waste - content_template: "{{display_name}}
{{state}}" -``` - -## Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Card typeVariableExampleRequiredExplanation
allulm_card_paddy_welcome_timesensor.timeyesThis is your Home Assistant sensor.time
_welcome_with_weatherulm_card_paddy_welcome_weather_providerweather.accu_weatheryesThis is your weather provider
_welcome_with_newsulm_card_paddy_welcome_news_entitiesentity: sensor.waste_collection_paper
content_template: "<b>{{display_name}}</b><br>{{state}}"
yesA list of your entities to show in the news feed, see the note underneath.
- -> #### Note _welcome_with_news - -> This card is based on [home-feed-card](https://github.com/gadgetchnnel/lovelace-home-feed-card) and needs a little different configuration in the variables. -> To allow almost all entites from HomeAssistant to show in the news, you're able to set all options that `home-feed-card` provides. This makes it necessary, that you set these entities in a list. Let me show you an example: -> -> ```yaml -> # normally you do this -> variables: -> ulm_variable: your_variable_entity -> -> # here you need to do a list -> variables: -> ulm_variable: -> - your_variable_entity_1 -> - your_variable_entity_2 -> -> # to use an option from home-feed-card -> variables: -> ulm_variable: -> - entity: your_variable_entity_1 -> content_template: "{{ display_name }}
{{ state }}" -> - your_variable_entity_2 -> ``` -> -> You can find all available options and their description [here](https://github.com/gadgetchnnel/lovelace-home-feed-card#entity-object). -> -> I recommend to use a `content_template` to format the output for every news item, eg. like this: -> -> ```yaml -> content_template: "{{ display_name }}
{{ state }}" -> ``` - -## Example - -```yaml -- type: custom:button-card - template: card_paddy_welcome_with_news - variables: - ulm_card_paddy_welcome_news_entities: - - entity: input_datetime.alarm_clock - content_template: "{{display_name}}
{{state}}" - - entity: sensor.waste_collection_bio - content_template: "{{display_name}}
{{state}}" - - entity: sensor.waste_collection_paper - content_template: "{{display_name}}
{{state}}" - - entity: sensor.waste_collection_plastic - content_template: "{{display_name}}
{{state}}" -``` - -## Template code - -```yaml -card_paddy_welcome: - template: - - "ulm_language_variables" - show_icon: false - show_name: false - show_label: false - styles: - grid: - - grid-template-areas: "'item1'" - - grid-template-columns: "1fr" - - grid-template-rows: "min-content" - - row-gap: "12px" - card: - - border-radius: "var(--border-radius)" - - box-shadow: "var(--box-shadow)" - - padding: "12px" - custom_fields: - item1: - card: - type: "markdown" - content: > - [[[ - let time = states[variables.ulm_card_paddy_welcome_time].state; - let welcome = ''; - - if (time > '18:00'){ - welcome = variables.ulm_evening; - } else if (time > '12:00'){ - welcome = variables.ulm_afternoon; - } else if (time > '05:00'){ - welcome = variables.ulm_morning; - } else { - welcome = variables.ulm_hello; - } - - return welcome + ',
' + user.name + '!'; - ]]] - card_mod: - style: | - ha-card { - border-radius: 14px; - box-shadow: none; - font-size: 30px; - text-align: left; - cursor: default; - } - -card_paddy_welcome_with_weather: - template: - - "ulm_language_variables" - show_icon: false - show_name: false - show_label: false - styles: - grid: - - grid-template-areas: "'item1' 'item2'" - - grid-template-columns: "1fr" - - grid-template-rows: "min-content min-content" - - row-gap: "12px" - card: - - border-radius: "var(--border-radius)" - - box-shadow: "var(--box-shadow)" - - padding: "12px" - custom_fields: - item1: - card: - type: "markdown" - content: > - [[[ - let time = states[variables.ulm_card_paddy_welcome_time].state; - let welcome = ''; - - if (time > '18:00'){ - welcome = variables.ulm_evening; - } else if (time > '12:00'){ - welcome = variables.ulm_afternoon; - } else if (time > '05:00'){ - welcome = variables.ulm_morning; - } else { - welcome = variables.ulm_hello; - } - - return welcome + ',
' + user.name + '!'; - ]]] - card_mod: - style: | - ha-card { - border-radius: 14px; - box-shadow: none; - font-size: 30px; - text-align: left; - cursor: default; - } - item2: - card: - type: "weather-forecast" - entity: "[[[ return variables.ulm_card_paddy_welcome_weather_provider; ]]]" - show_forecast: false - card_mod: - style: | - ha-card.type-weather-forecast { - border-radius: 14px; - box-shadow: none; - } - ha-card.type-weather-forecast .state { - text-align: left; - font-size: 14px; - font-weight: bolder; - } - ha-card.type-weather-forecast .name { - text-align: left; - font-size: 14px; - } - ha-card.type-weather-forecast .temp-attribute { - text-align: right; - } - ha-card.type-weather-forecast .temp { - text-align: right; - font-size: medium; - font-weight: bolder; - margin-right: 16px; - } - ha-card.type-weather-forecast .temp span { - text-align: right; - font-size: medium; - font-weight: bolder; - } - ha-card.type-weather-forecast .attribute { - text-align: right; - font-size: smaller; - } - -card_paddy_welcome_with_news: - template: - - "ulm_language_variables" - show_icon: false - show_name: false - show_label: false - styles: - grid: - - grid-template-areas: "'item1' 'item2'" - - grid-template-columns: "1fr" - - grid-template-rows: "min-content min-content" - - row-gap: "12px" - card: - - border-radius: "var(--border-radius)" - - box-shadow: "var(--box-shadow)" - - padding: "12px" - custom_fields: - item1: - card: - type: "markdown" - content: > - [[[ - let time = states[variables.ulm_card_paddy_welcome_time].state; - let welcome = ''; - - if (time > '18:00'){ - welcome = variables.ulm_evening; - } else if (time > '12:00'){ - welcome = variables.ulm_afternoon; - } else if (time > '05:00'){ - welcome = variables.ulm_morning; - } else { - welcome = variables.ulm_hello; - } - - return welcome + ',
' + user.name + '!'; - ]]] - card_mod: - style: | - ha-card { - border-radius: 14px; - box-shadow: none; - font-size: 30px; - text-align: left; - cursor: default; - } - item2: - card: - type: "custom:home-feed-card" - card_id: "main_feed" - show_empty: false - more_info_on_tap: true - state_color: false - compact_mode: true - max_item_count: 3 - show_icons: true - entities: > - [[[ - return variables.ulm_card_paddy_welcome_news_entities; - ]]] - card_mod: - style: | - ha-card { - border-radius: 14px; - box-shadow: none; - font-size: 14px; - text-align: left; - } -``` - -## Custom configuration Example - -Here is one example, on how you can extend this (actually every) card. In the end we have the welcome card extended by four buttons to have something like a header with a navigation. - -```yaml -- type: horizontal-stack - cards: - - type: custom:button-card - template: edge - - type: custom:button-card - template: card_paddy_welcome - # here we override the styles to extend the welcome card with a second item - styles: - grid: - - grid-template-areas: '"item1" "item2"' - - grid-template-rows: min-content min-content - - row-gap: 12px - custom_fields: - # here we set up the second item and its contents - item2: - card: - type: horizontal-stack - cards: - - type: custom:button-card - template: edge - - type: custom:button-card - template: vertical_buttons - tap_action: - action: navigate - navigation_path: /ui-lovelace-minimalist/living - icon: "mdi:sofa" - name: Living - label: Livingroom - - type: custom:button-card - template: vertical_buttons - tap_action: - action: navigate - navigation_path: /ui-lovelace-minimalist/working - icon: "mdi:factory" - name: Working - label: Office - - type: custom:button-card - template: vertical_buttons - tap_action: - action: navigate - navigation_path: /ui-lovelace-minimalist/sleeping - icon: "mdi:bed-king-outline" - name: Sleeping - label: Bedroom - - type: custom:button-card - template: vertical_buttons - tap_action: - action: navigate - navigation_path: /ui-lovelace-minimalist/climate - icon: "mdi:air-conditioner" - name: Air Conditioning - label: Livingroom - - type: custom:button-card - template: edge - - type: custom:button-card - template: edge -``` From ab70bf728b0ebfd1f26479fe717370d39117435d Mon Sep 17 00:00:00 2001 From: BasBruss <68892092+basbruss@users.noreply.github.com> Date: Tue, 1 Feb 2022 11:48:52 +0100 Subject: [PATCH 107/248] Merge other PR of translation --- .../ui_lovelace_minimalist/lovelace/translations/FR.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml index c213e59f5..584fc259a 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml @@ -29,4 +29,8 @@ ulm_language_variables: ulm_alarm_triggered: "DÉCLENCHÉE" ulm_playing: "Lecture" ulm_paused: "En Pause" + ulm_morning: "Bonjour" + ulm_afternoon: "Bonne après-midi" + ulm_evening: "Bonsoir" + ulm_hello: "Bonjour" From f68686abc99e6595617050c12d9565a3ae9fc0e3 Mon Sep 17 00:00:00 2001 From: BasBruss <68892092+basbruss@users.noreply.github.com> Date: Tue, 1 Feb 2022 11:51:41 +0100 Subject: [PATCH 108/248] Delete duplication end-line --- .../ui_lovelace_minimalist/lovelace/translations/FR.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml index 584fc259a..86a861b0e 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml @@ -33,4 +33,3 @@ ulm_language_variables: ulm_afternoon: "Bonne après-midi" ulm_evening: "Bonsoir" ulm_hello: "Bonjour" - From a58461c1c782ea8732a589bef79b495e6aadcb03 Mon Sep 17 00:00:00 2001 From: CM000n Date: Tue, 1 Feb 2022 10:54:15 +0000 Subject: [PATCH 109/248] Update docs --- .../custom_cards/custom_card_input_number.md | 160 +++++++++++++----- .../custom_cards/custom_chip_myenedis.md | 83 +++++++++ 2 files changed, 200 insertions(+), 43 deletions(-) create mode 100644 docs/usage/custom_cards/custom_chip_myenedis.md diff --git a/docs/usage/custom_cards/custom_card_input_number.md b/docs/usage/custom_cards/custom_card_input_number.md index 4702367a9..dc7ce5b50 100644 --- a/docs/usage/custom_cards/custom_card_input_number.md +++ b/docs/usage/custom_cards/custom_card_input_number.md @@ -14,42 +14,10 @@ The `card_input_number` you can control a input_number entity. ## Credits Author: sildehoop - 2021 -Version: 1.0.1 - -

Braking changes

- -
- 1.0.1 - -```yaml -#OLD -- type: "custom:button-card" - template: - - card_input_number - variables: - ulm_card_input_number_name: "YOUR_NAME" - ulm_card_input_number_entity: "input_number.YOUR_INPUT_NUMBER" -``` - -```yaml -#NEW -- type: "custom:button-card" - template: card_input_number - entity: input_number.YOUR_INPUT_NUMBER_ENTITY - variables: - ulm_card_input_number_name: "YOUR_CARD_NAME" -``` - -
+Version: 1.0.0 ## Changelog -
-1.0.1 -Added option to leave ulm_card_input_number_name empty (takes the friendly_name of the entity) -Removed background from middle text (because it is not a button). -Removed variables ulm_card_input_number_entity. -
1.0.0 Initial release @@ -59,10 +27,11 @@ Initial release ```yaml - type: "custom:button-card" - template: card_input_number - entity: input_number.YOUR_INPUT_NUMBER + template: + - card_input_number variables: ulm_card_input_number_name: "YOUR_NAME" + ulm_card_input_number_entity: "input_number.YOUR_INPUT_NUMBER" ``` ## Requirements @@ -79,17 +48,122 @@ n/a Explanation -ulm_card_input_number_name -Bathroom Ceiling Fan Threshold -false -The name to display on your card + + + + ## Template code -??? note "Template Code" +```yaml +--- +card_input_number: + variables: + ulm_card_input_number_name: "n/a" + triggers_update: "all" + styles: + grid: + - grid-template-areas: "'item1' 'item2'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" + - row-gap: "12px" + card: + - border-radius: "var(--border-radius)" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + custom_fields: + item1: + card: + type: "custom:button-card" + template: + - "icon_info" + - "ulm_language_variables" + - "input_number" + tap_action: + action: "more-info" + entity: "[[[ return variables.ulm_card_input_number_entity ]]]" + name: "[[[ return variables.ulm_card_input_number_name ]]]" + item2: + card: + type: "custom:button-card" + template: "list_3_items" + custom_fields: + item1: + card: + type: "custom:button-card" + template: "widget_icon" + tap_action: + action: "call-service" + service: "input_number.decrement" + service_data: + entity_id: "[[[ return variables.ulm_card_input_number_entity ]]]" + icon: "mdi:arrow-down" + item2: + card: + type: "custom:button-card" + template: "widget_text" + entity: "[[[ return variables.ulm_card_input_number_entity ]]]" + tap_action: + action: "call-service" + service: "cover.stop_cover" + service_data: + entity_id: "[[[ return variables.ulm_card_input_number_entity ]]]" + item3: + card: + type: "custom:button-card" + template: "widget_icon" + tap_action: + action: "call-service" + service: "input_number.increment" + service_data: + entity_id: "[[[ return variables.ulm_card_input_number_entity ]]]" + icon: "mdi:arrow-up" + +input_number: + tap_action: + action: "more-info" + show_last_changed: true + +widget_text: + tap_action: + action: "toggle" + show_icon: false + show_label: true + show_name: false + label: >- + [[[ + var unit = entity.attributes.unit_of_measurement != null ? ' ' + entity.attributes.unit_of_measurement : '' + if (entity.state == 'on') { + return variables.ulm_on; + } else if (entity.state == 'off') { + return variables.ulm_off; + } else if (entity.state == 'unavailable') { + return variables.ulm_unavailable; + } else if (entity.state == 'idle') { + return variables.ulm_idle; + } else if (entity.state == 'open') { + return variables.ulm_open; + } else if (entity.state == 'closed') { + return variables.ulm_closed; + } else { + return entity.state + unit; + } + ]]] + styles: + grid: + - grid-template-areas: "'l'" + card: + - box-shadow: "none" + - padding: "0px" + - background-color: "rgba(var(--color-theme),0.05)" + - border-radius: "14px" + - place-self: "center" + - height: "42px" + state: + - color: "rgba(var(--color-theme),0.9)" + size: "20px" + color: "var(--google-grey)" - ```yaml title="custom_card_input_number.yaml" - --8<-- "custom_cards/custom_card_input_number/card_input_number.yaml" - ``` +``` diff --git a/docs/usage/custom_cards/custom_chip_myenedis.md b/docs/usage/custom_cards/custom_chip_myenedis.md new file mode 100644 index 000000000..a11dfdde8 --- /dev/null +++ b/docs/usage/custom_cards/custom_chip_myenedis.md @@ -0,0 +1,83 @@ +--- +title: chip_myenedis +hide: + - toc +--- + + + +# Custom-chip "My Enedis" + +The `myenedis` you can control a input_number entity + +![ALL](../../assets/img/ulm_chips/chip_myenedis_all.png) + +![HP / HC](../../assets/img/ulm_chips/chip_myenedis_hp_hc.png) + +## Credits + +Author: acesyde - 2021 +Version: 1.0.0 + +## Changelog + +
+1.0.0 +Initial release +
+ +## Why not the default `chip_power_consumption` + +- The my enedis integration doesn't split the cost and the consumption in a specific sensor +- All values are in the main sensor under the `attributes` item +- Split `Heures Creuses (HC)` and `Heures pleines (HP)` + +## Usage + +```yaml +- type: "custom:button-card" + template: custom_chip_myenedis + entity: sensor.myenedis_123456789 + variables: + ulm_chip_separate_hp_hc: true +``` + +## Requirements + +[My Enedis integration](https://github.com/saniho/apiEnedis) + +## Variables + +| Variable | Default | Required | Notes | +| ----------------------- | ------- | ---------------- | -------------------------- | +| entity | | :material-check: | Your MyEnedis Sensor | +| ulm_chip_separate_hp_hc | false | :material-close: | Separate HC/HC in the chip | + +## Template code + +```yaml +--- +--- +### Chip My Enedis ### +custom_chip_myenedis: + template: + - "chips" + - "ulm_language_variables" + variables: + ulm_chip_separate_hp_hc: false + ulm_chip_unit_of_measurement: "[[[ return entity.attributes.unit_of_measurement ]]]" + triggers_update: "all" + label: | + [[[ + var result = "💰 " + parseFloat(entity.attributes.daily_cost).toFixed(1) + " €"; + + if(variables.ulm_chip_separate_hp_hc) { + result += " ☀️ " + parseFloat(entity.attributes.yesterday_HC).toFixed(1) + " " + variables.ulm_chip_unit_of_measurement; + result += " 🌑 " + parseFloat(entity.attributes.yesterday_HP).toFixed(1) + " " + variables.ulm_chip_unit_of_measurement; + } else { + result += " ⚡ " + parseFloat(entity.attributes.yesterday_HCHP).toFixed(1) + " " + variables.ulm_chip_unit_of_measurement; + } + + return result; + ]]] +``` From 423691cf4f9f916d675cc2cf89c619747fed7653 Mon Sep 17 00:00:00 2001 From: BasBruss <68892092+basbruss@users.noreply.github.com> Date: Tue, 1 Feb 2022 11:57:25 +0100 Subject: [PATCH 110/248] Update ui-lovelace.yaml --- .../ui_lovelace_minimalist/lovelace/ui-lovelace.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml index 6f9f4550b..2db595a0f 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml @@ -29,7 +29,7 @@ views: - domain: "weather" options: type: "custom:button-card" - template: "card_welcome_scene" + template: "card_welcome_scenes" variables: ulm_time: "sensor.time" ulm_weather: "this.entity_id" From cb43db6b3ae1c105c1ac43f0bdd4ac03aa031329 Mon Sep 17 00:00:00 2001 From: Bavo Mees Date: Tue, 1 Feb 2022 12:46:07 +0100 Subject: [PATCH 111/248] Fix color syntax errors --- .../card_templates/colors/blue_off.yaml | 12 ++++++------ .../ulm_templates/card_templates/colors/blue_on.yaml | 1 + .../card_templates/colors/green_no_state.yaml | 8 ++++---- .../card_templates/colors/green_off.yaml | 12 ++++++------ .../card_templates/colors/green_on.yaml | 12 ++++++------ .../card_templates/colors/grey_no_state.yaml | 8 ++++---- .../card_templates/colors/grey_off.yaml | 12 ++++++------ .../ulm_templates/card_templates/colors/grey_on.yaml | 12 ++++++------ .../card_templates/colors/pink_no_state.yaml | 8 ++++---- .../card_templates/colors/pink_off.yaml | 12 ++++++------ .../ulm_templates/card_templates/colors/pink_on.yaml | 12 ++++++------ .../card_templates/colors/red_no_state.yaml | 8 ++++---- .../ulm_templates/card_templates/colors/red_off.yaml | 12 ++++++------ .../ulm_templates/card_templates/colors/red_on.yaml | 12 ++++++------ .../card_templates/colors/violet_no_state.yaml | 8 ++++---- .../card_templates/colors/violet_off.yaml | 12 ++++++------ .../card_templates/colors/violet_on.yaml | 12 ++++++------ .../card_templates/colors/yellow_no_state.yaml | 8 ++++---- .../card_templates/colors/yellow_on.yaml | 3 ++- 19 files changed, 93 insertions(+), 91 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/blue_off.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/blue_off.yaml index 22fc27f0b..287099179 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/blue_off.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/blue_off.yaml @@ -3,12 +3,12 @@ blue_off: state: - styles: icon: - - color: 'rgba(var(--color-blue),1)' + - color: "rgba(var(--color-blue),1)" label: - - color: 'rgba(var(--color-blue-text),1)' + - color: "rgba(var(--color-blue-text),1)" name: - - color: 'rgba(var(--color-blue-text),1)' + - color: "rgba(var(--color-blue-text),1)" img_cell: - - background-color: 'rgba(var(--color-blue), 0.2)' - value: 'off' - id: 'off' \ No newline at end of file + - background-color: "rgba(var(--color-blue), 0.2)" + value: "off" + id: "off" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/blue_on.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/blue_on.yaml index 5c629e455..d9da9af62 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/blue_on.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/blue_on.yaml @@ -12,6 +12,7 @@ blue_on: - background-color: "rgba(var(--color-blue), 0.2)" card: - background-color: "rgba(var(--color-background-blue), var(--opacity-bg))" + id: "on" value: "on" # Legacy diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_no_state.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_no_state.yaml index c258cc3e2..8b088d734 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_no_state.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_no_state.yaml @@ -2,10 +2,10 @@ green_no_state: styles: icon: - - color: 'rgba(var(--color-green),1)' + - color: "rgba(var(--color-green),1)" label: - - color: 'rgba(var(--color-green-text),1)' + - color: "rgba(var(--color-green-text),1)" name: - - color: 'rgba(var(--color-green-text),1)' + - color: "rgba(var(--color-green-text),1)" img_cell: - - background-color: 'rgba(var(--color-green), 0.2)' + - background-color: "rgba(var(--color-green), 0.2)" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_off.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_off.yaml index 52d80cb2b..7544e5356 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_off.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_off.yaml @@ -3,12 +3,12 @@ green_off: state: - styles: icon: - - color: 'rgba(var(--color-green),1)' + - color: "rgba(var(--color-green),1)" label: - - color: 'rgba(var(--color-green-text),1)' + - color: "rgba(var(--color-green-text),1)" name: - - color: 'rgba(var(--color-green-text),1)' + - color: "rgba(var(--color-green-text),1)" img_cell: - - background-color: 'rgba(var(--color-green), 0.2)' - value: 'off' - id: 'off' \ No newline at end of file + - background-color: "rgba(var(--color-green), 0.2)" + value: "off" + id: "off" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_on.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_on.yaml index a70beac71..bc28d315f 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_on.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/green_on.yaml @@ -3,12 +3,12 @@ green_on: state: - styles: icon: - - color: 'rgba(var(--color-green),1)' + - color: "rgba(var(--color-green),1)" label: - - color: 'rgba(var(--color-green-text),1)' + - color: "rgba(var(--color-green-text),1)" name: - - color: 'rgba(var(--color-green-text),1)' + - color: "rgba(var(--color-green-text),1)" img_cell: - - background-color: 'rgba(var(--color-green), 0.2)' - value: 'on' - id: 'on' \ No newline at end of file + - background-color: "rgba(var(--color-green), 0.2)" + value: "on" + id: "on" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_no_state.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_no_state.yaml index 31dd3e1a4..4f9a50c25 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_no_state.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_no_state.yaml @@ -2,10 +2,10 @@ grey_no_state: styles: icon: - - color: 'rgba(var(--color-grey),1)' + - color: "rgba(var(--color-grey),1)" label: - - color: 'rgba(var(--color-grey-text),1)' + - color: "rgba(var(--color-grey-text),1)" name: - - color: 'rgba(var(--color-grey-text),1)' + - color: "rgba(var(--color-grey-text),1)" img_cell: - - background-color: 'rgba(var(--color-grey), 0.2)' \ No newline at end of file + - background-color: "rgba(var(--color-grey), 0.2)" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_off.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_off.yaml index b1ca8bded..3df09ed49 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_off.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_off.yaml @@ -3,12 +3,12 @@ grey_off: state: - styles: icon: - - color: 'rgba(var(--color-grey),1)' + - color: "rgba(var(--color-grey),1)" label: - - color: 'rgba(var(--color-grey-text),1)' + - color: "rgba(var(--color-grey-text),1)" name: - - color: 'rgba(var(--color-grey-text),1)' + - color: "rgba(var(--color-grey-text),1)" img_cell: - - background-color: 'rgba(var(--color-grey), 0.2)' - value: 'off' - id: 'off' + - background-color: "rgba(var(--color-grey), 0.2)" + value: "off" + id: "off" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_on.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_on.yaml index 7c0c145a5..9612c49ef 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_on.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/grey_on.yaml @@ -3,12 +3,12 @@ grey_on: state: - styles: icon: - - color: 'rgba(var(--color-grey),1)' + - color: "rgba(var(--color-grey),1)" label: - - color: 'rgba(var(--color-grey-text),1)' + - color: "rgba(var(--color-grey-text),1)" name: - - color: 'rgba(var(--color-grey-text),1)' + - color: "rgba(var(--color-grey-text),1)" img_cell: - - background-color: 'rgba(var(--color-grey), 0.2)' - value: 'on' - id: 'on' \ No newline at end of file + - background-color: "rgba(var(--color-grey), 0.2)" + value: "on" + id: "on" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_no_state.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_no_state.yaml index 24a46a058..5fbffddc9 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_no_state.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_no_state.yaml @@ -2,10 +2,10 @@ pink_no_state: styles: icon: - - color: 'rgba(var(--color-pink),1)' + - color: "rgba(var(--color-pink),1)" label: - - color: 'rgba(var(--color-pink-text),1)' + - color: "rgba(var(--color-pink-text),1)" name: - - color: 'rgba(var(--color-pink-text),1)' + - color: "rgba(var(--color-pink-text),1)" img_cell: - - background-color: 'rgba(var(--color-pink), 0.2)' + - background-color: "rgba(var(--color-pink), 0.2)" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_off.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_off.yaml index 786b1bb32..a76bbb976 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_off.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_off.yaml @@ -3,12 +3,12 @@ pink_off: state: - styles: icon: - - color: 'rgba(var(--color-pink),1)' + - color: "rgba(var(--color-pink),1)" label: - - color: 'rgba(var(--color-pink-text),1)' + - color: "rgba(var(--color-pink-text),1)" name: - - color: 'rgba(var(--color-pink-text),1)' + - color: "rgba(var(--color-pink-text),1)" img_cell: - - background-color: 'rgba(var(--color-pink), 0.2)' - value: 'off' - id: 'off' + - background-color: "rgba(var(--color-pink), 0.2)" + value: "off" + id: "off" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_on.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_on.yaml index 65cd8f86a..55c8fff7a 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_on.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/pink_on.yaml @@ -3,12 +3,12 @@ pink_on: state: - styles: icon: - - color: 'rgba(var(--color-pink),1)' + - color: "rgba(var(--color-pink),1)" label: - - color: 'rgba(var(--color-pink-text),1)' + - color: "rgba(var(--color-pink-text),1)" name: - - color: 'rgba(var(--color-pink-text),1)' + - color: "rgba(var(--color-pink-text),1)" img_cell: - - background-color: 'rgba(var(--color-pink), 0.2)' - value: 'on' - id: 'on' + - background-color: "rgba(var(--color-pink), 0.2)" + value: "on" + id: "on" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_no_state.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_no_state.yaml index 9e8afb4f0..00e409b50 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_no_state.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_no_state.yaml @@ -2,10 +2,10 @@ red_no_state: styles: icon: - - color: 'rgba(var(--color-red),1)' + - color: "rgba(var(--color-red),1)" label: - - color: 'rgba(var(--color-red-text),1)' + - color: "rgba(var(--color-red-text),1)" name: - - color: 'rgba(var(--color-red-text),1)' + - color: "rgba(var(--color-red-text),1)" img_cell: - - background-color: 'rgba(var(--color-red), 0.2)' + - background-color: "rgba(var(--color-red), 0.2)" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_off.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_off.yaml index 9c3497d8a..702a36c22 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_off.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_off.yaml @@ -3,12 +3,12 @@ red_off: state: - styles: icon: - - color: 'rgba(var(--color-red),1)' + - color: "rgba(var(--color-red),1)" label: - - color: 'rgba(var(--color-red-text),1)' + - color: "rgba(var(--color-red-text),1)" name: - - color: 'rgba(var(--color-red-text),1)' + - color: "rgba(var(--color-red-text),1)" img_cell: - - background-color: 'rgba(var(--color-red), 0.2)' - value: 'off' - id: 'off' + - background-color: "rgba(var(--color-red), 0.2)" + value: "off" + id: "off" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_on.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_on.yaml index db76dea64..c3749fbe5 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_on.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/red_on.yaml @@ -3,12 +3,12 @@ red_on: state: - styles: icon: - - color: 'rgba(var(--color-red),1)' + - color: "rgba(var(--color-red),1)" label: - - color: 'rgba(var(--color-red-text),1)' + - color: "rgba(var(--color-red-text),1)" name: - - color: 'rgba(var(--color-red-text),1)' + - color: "rgba(var(--color-red-text),1)" img_cell: - - background-color: 'rgba(var(--color-red), 0.2)' - value: 'on' - id: 'on' + - background-color: "rgba(var(--color-red), 0.2)" + value: "on" + id: "on" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_no_state.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_no_state.yaml index 77eab04de..70aed5151 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_no_state.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_no_state.yaml @@ -2,10 +2,10 @@ purple_no_state: styles: icon: - - color: 'rgba(var(--color-purple),1)' + - color: "rgba(var(--color-purple),1)" label: - - color: 'rgba(var(--color-purple-text),1)' + - color: "rgba(var(--color-purple-text),1)" name: - - color: 'rgba(var(--color-purple-text),1)' + - color: "rgba(var(--color-purple-text),1)" img_cell: - - background-color: 'rgba(var(--color-purple), 0.2)' + - background-color: "rgba(var(--color-purple), 0.2)" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_off.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_off.yaml index c65d600ec..f5fddc736 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_off.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_off.yaml @@ -3,12 +3,12 @@ purple_off: state: - styles: icon: - - color: 'rgba(var(--color-purple),1)' + - color: "rgba(var(--color-purple),1)" label: - - color: 'rgba(var(--color-purple-text),1)' + - color: "rgba(var(--color-purple-text),1)" name: - - color: 'rgba(var(--color-purple-text),1)' + - color: "rgba(var(--color-purple-text),1)" img_cell: - - background-color: 'rgba(var(--color-purple), 0.2)' - value: 'off' - id: 'off' + - background-color: "rgba(var(--color-purple), 0.2)" + value: "off" + id: "off" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_on.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_on.yaml index 621e3ba5e..adb56acf5 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_on.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/violet_on.yaml @@ -3,12 +3,12 @@ purple_on: state: - styles: icon: - - color: 'rgba(var(--color-purple),1)' + - color: "rgba(var(--color-purple),1)" label: - - color: 'rgba(var(--color-purple-text),1)' + - color: "rgba(var(--color-purple-text),1)" name: - - color: 'rgba(var(--color-purple-text),1)' + - color: "rgba(var(--color-purple-text),1)" img_cell: - - background-color: 'rgba(var(--color-purple), 0.2)' - value: 'on' - id: 'on' + - background-color: "rgba(var(--color-purple), 0.2)" + value: "on" + id: "on" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_no_state.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_no_state.yaml index d76eab8f5..1ab947b43 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_no_state.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_no_state.yaml @@ -2,10 +2,10 @@ yellow_no_state: styles: icon: - - color: 'rgba(var(--color-yellow),1)' + - color: "rgba(var(--color-yellow),1)" label: - - color: 'rgba(var(--color-yellow-text),1)' + - color: "rgba(var(--color-yellow-text),1)" name: - - color: 'rgba(var(--color-yellow-text),1)' + - color: "rgba(var(--color-yellow-text),1)" img_cell: - - background-color: 'rgba(var(--color-yellow), 0.2)' + - background-color: "rgba(var(--color-yellow), 0.2)" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_on.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_on.yaml index 8d969e4d7..020c45cee 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_on.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/colors/yellow_on.yaml @@ -13,7 +13,8 @@ yellow_on: card: - background-color: "rgba(var(--color-background-yellow),var(--opacity-bg))" value: "on" + id: "on" # Legacy yellow: - template: "yellow_on" \ No newline at end of file + template: "yellow_on" From 14aa1591c8cf0e42fe7d84722f30e596cada7a25 Mon Sep 17 00:00:00 2001 From: basbruss <68892092+basbruss@users.noreply.github.com> Date: Tue, 1 Feb 2022 13:21:50 +0100 Subject: [PATCH 112/248] Use Javascript to show and format date Future --> could implement translations for months to translations_variables --- .../lovelace/ui-lovelace.yaml | 1 - .../card_templates/cards/card_welcome_scenes.yaml | 15 ++++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml index 2db595a0f..23fa335bb 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml @@ -33,7 +33,6 @@ views: variables: ulm_time: "sensor.time" ulm_weather: "this.entity_id" - ulm_chip_date: "sensor.date" - type: "custom:button-card" template: "card_title" name: "Lights" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_welcome_scenes.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_welcome_scenes.yaml index 8d4fd5e6e..d6d3dba63 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_welcome_scenes.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_welcome_scenes.yaml @@ -54,7 +54,6 @@ card_welcome_scenes: template: "card_topbar_welcome" variables: ulm_weather: "[[[ return variables.ulm_weather]]]" - ulm_chip_date: "[[[ return variables.ulm_chip_date ]]]" styles: card: - border-radius: "none" @@ -363,7 +362,6 @@ card_topbar_welcome: type: "custom:button-card" template: "chip_temperature_custom" variables: - ulm_chip_date: "[[[ return variables.ulm_chip_date ]]]" ulm_weather: "[[[ return variables.ulm_weather]]]" item3: card: @@ -380,6 +378,17 @@ chip_temperature_custom: triggers_update: "all" label: | [[[ + const months = ["Jan", "Feb", "Mar","Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; + let current_datetime = new Date() + let formatted_date = months[current_datetime.getMonth()] + "." + current_datetime.getDate() + var date = "st"; + if(current_datetime.getDate()==1){ + var date = "st"; + } else if(current_datetime.getDate()==2){ + var date = "nd"; + } else { + var date = "th" + } var icon = '🌡️'; if (states[variables.ulm_weather].state == 'clear-night'){ var icon = '🌙'; @@ -410,7 +419,7 @@ chip_temperature_custom: } else if(states[variables.ulm_weather].state == 'windy'){ var icon = '🌪️'; } - return icon + ' ' + states[variables.ulm_chip_date].state; + return icon + ' ' + formatted_date + date; ]]] card_scenes_welcome_auto: From dd2b1969e1fbb0e29d4ae890ed23e06cf2a9ea48 Mon Sep 17 00:00:00 2001 From: basbruss <68892092+basbruss@users.noreply.github.com> Date: Tue, 1 Feb 2022 15:02:40 +0100 Subject: [PATCH 113/248] Add documentation to Welcome card Scenes --- .../img/ulm_cards/card_welcome_scenes.png | Bin 0 -> 66126 bytes docs/usage/cards/card_welcome_scenes.md | 55 ++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 docs/assets/img/ulm_cards/card_welcome_scenes.png create mode 100644 docs/usage/cards/card_welcome_scenes.md diff --git a/docs/assets/img/ulm_cards/card_welcome_scenes.png b/docs/assets/img/ulm_cards/card_welcome_scenes.png new file mode 100644 index 0000000000000000000000000000000000000000..04c88be20ee611039660b7ff2fd5c961dd96e1c8 GIT binary patch literal 66126 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�R!_y8Vd?#Uk4cn>BJd6MLWpXZj2MGp2yc3 zO|{!I;M2o(%_;d#QJw8DH2;0XYmW#BpVNm^wRmb50446knkk{%j?$Xb9IeB-q@y9G z`)!X-Xfh+Z6U96M*l3|vCg~QtJLF)Mz;Z5CwNwVPu=WMVoUk&=9QOtb*W;S;n6245 z1r)>&*S)Ib#*iJ6`%YsUiUX*ah@S7`pTA?12(yTRE9~F3T2?>YKrSW+=1Bgfw zDZ&wNo8sQXEvXF)^(z2i5>Uc3<*e3#y0j)6evVa{nK~_39Ir{&*O#B9;F$8n!i^^1 zIkn8niq>paW?0Lu%D2-^sIqP|rx*d~dDj(8Us99fov_yFuiSsYiGaQ^;5L~lSn5o( zJqO#by|_6o!}h|-fF@`MvSr+fnfm^DN_Mo$qZnpvwxT(kVTFfAd*3LlE?}Qh9*M9i zPQN-~knu~i{@ltO+z~pq@StX<=!0lWV~|=8+&i8h7SgSWW!GJeTiv9e@H5-{ez720 z<0w6B6H8Ug*i}vUy~ekOxxJ~kDfsL!++v8og(0uGA0w}4dE|∨v9Vb7GyfRj6|F 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 literal 0 HcmV?d00001 diff --git a/docs/usage/cards/card_welcome_scenes.md b/docs/usage/cards/card_welcome_scenes.md new file mode 100644 index 000000000..3ef09edae --- /dev/null +++ b/docs/usage/cards/card_welcome_scenes.md @@ -0,0 +1,55 @@ +--- +title: Card Welcome Scenes +hide: + - toc +--- + + +## Description + +![example-image](../../assets/img/ulm_cards/card_welcome_scenes.png){ width="500" } + +This is a card which shows the basic needs for your dashboard. This card can generate itself automatically. It is also included in the preview-dashboard which comes with a fresh installation of UI-Minimalist. + +## Variables + +| Variable | Default | Required | Notes | +|----------|---------|------------------|-------------------| +| ulm_weather | | :material-check: | This is your weather provider.
Example: `weather.your_provider`| +|ulm_time| `sensor.time` | :material-check: | Sensor to check the current time.
Example: `sensor.time` | +|entity_pill_1| `script.*` | :material-close: | Script entity to show in the first pill.
When not configured it will be auto-configured with `auto-entities` | +|entity_pill_2| `script.*` | :material-close: | Script entity to show in the first pill.
When not configured it will be auto-configured with `auto-entities` | +|entity_pill_3| `script.*` | :material-close: | Script entity to show in the first pill.
When not configured it will be auto-configured with `auto-entities` | +|entity_pill_4| `script.*` | :material-close: | Script entity to show in the first pill.
When not configured it will be auto-configured with `auto-entities` | +|entity_pill_5| `script.*` | :material-close: | Script entity to show in the first pill.
When not configured it will be auto-configured with `auto-entities` | +|color_pill_1| `random` | :material-close: | Random generated color for the icon of the 1st pill.
. Can be manual configured with: `blue`,`yellow`,`green`,`red`,`purple`,`pink` | +|color_pill_2| `random` | :material-close: | Random generated color for the icon of the 2nd pill.
. Can be manual configured with: `blue`,`yellow`,`green`,`red`,`purple`,`pink` | +|color_pill_3| `random` | :material-close: | Random generated color for the icon of the 3th pill.
. Can be manual configured with: `blue`,`yellow`,`green`,`red`,`purple`,`pink` | +|color_pill_4| `random` | :material-close: | Random generated color for the icon of the 4th pill.
Can be manual configured with: `blue`,`yellow`,`green`,`red`,`purple`,`pink` | +|color_pill_5| `random` | :material-close: | Random generated color for the icon of the 5th pill.
Can be manual configured with: `blue`,`yellow`,`green`,`red`,`purple`,`pink` | +|icon_pill_1| | :material-close: | Set a custom `MDI` icon for the 1st pill | +|icon_pill_2| | :material-close: | Set a custom `MDI` icon for the 2nd pill | +|icon_pill_3| | :material-close: | Set a custom `MDI` icon for the 3th pill | +|icon_pill_4| | :material-close: | Set a custom `MDI` icon for the 4th pill | +|icon_pill_5| | :material-close: | Set a custom `MDI` icon for the 5th pill | +|name_pill_1| | :material-close: | Set a custom `MDI` icon for the 1st pill | +|name_pill_2| | :material-close: | Set a custom `MDI` icon for the 2nd pill | +|name_pill_3| | :material-close: | Set a custom `MDI` icon for the 3th pill | +|name_pill_4| | :material-close: | Set a custom `MDI` icon for the 4th pill | +|name_pill_5| | :material-close: | Set a custom `MDI` icon for the 5th pill | for the 5th pill | + +## Usage + +```yaml +- type: "custom:button-card" + template: "card_welcome_scenes" + variables: + ulm_time: "sensor.time" + ulm_weather: "this.entity_id" +``` + +??? note "Template Code" + + ```yaml title="card_welcome_scenes.yaml" + --8<-- "custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_welcome_scenes.yaml" + ``` From c690ecfb4be38dd58f91ddc3b438cc6f9639a700 Mon Sep 17 00:00:00 2001 From: schumijo Date: Tue, 1 Feb 2022 16:42:06 +0100 Subject: [PATCH 114/248] Correct slider when unavailable --- .../ulm_templates/card_templates/cards/card_light.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_light.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_light.yaml index 1d6840869..2caa08e99 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_light.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_light.yaml @@ -57,7 +57,7 @@ card_light: grid: - grid-template-areas: > [[[ - if (variables.ulm_card_light_enable_collapse && entity.state == "off") { + if (variables.ulm_card_light_enable_collapse && entity.state != "on") { return "\"item1\""; } else if (variables.ulm_card_light_enable_horizontal) { return "\"item1 item2\""; @@ -69,7 +69,7 @@ card_light: ]]] - grid-template-columns: > [[[ - if (variables.ulm_card_light_enable_collapse && entity.state == "off") { + if (variables.ulm_card_light_enable_collapse && entity.state != "on") { return "1fr"; } else if (variables.ulm_card_light_enable_horizontal) { if(variables.ulm_card_light_enable_horizontal_wide){ @@ -83,7 +83,7 @@ card_light: ]]] - grid-template-rows: > [[[ - if (variables.ulm_card_light_enable_collapse && entity.state == "off") { + if (variables.ulm_card_light_enable_collapse && entity.state != "on") { return "1fr"; } else if (variables.ulm_card_light_enable_slider && !variables.ulm_card_light_enable_horizontal) { return "min-content min-content"; @@ -100,7 +100,7 @@ card_light: item2: - display: > [[[ - if (variables.ulm_card_light_enable_collapse && entity.state == "off") { + if (variables.ulm_card_light_enable_collapse && entity.state != "on") { return "none"; } else if (variables.ulm_card_light_enable_slider) { return "block"; From 828d1a86670b2e435e8f1f2b54fe2f9b534979ed Mon Sep 17 00:00:00 2001 From: schumijo <40740060+schumijo@users.noreply.github.com> Date: Tue, 1 Feb 2022 16:46:54 +0100 Subject: [PATCH 115/248] Remove trailing space --- .../ulm_templates/card_templates/cards/card_thermostat.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml index 4cfbc79ed..e7349df00 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml @@ -255,7 +255,7 @@ card_thermostat: if(entity.attributes.temperature && !variables.ulm_card_thermostat_enable_display_temperature){ return (entity.attributes.current_temperature ) + '°' + ' • ' + label + ' (' + mode + ')'; } - return label; + return label; ]]] item2: card: From d2c75a748b3b82869fddcff302b272c4692c6765 Mon Sep 17 00:00:00 2001 From: schumijo <40740060+schumijo@users.noreply.github.com> Date: Tue, 1 Feb 2022 16:50:42 +0100 Subject: [PATCH 116/248] Remove trailing spaces --- .../card_templates/cards/card_thermostat.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml index e7349df00..c49b93b46 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml @@ -67,7 +67,7 @@ card_thermostat: var areas = []; if (variables.ulm_card_thermostat_enable_horizontal) { return "\"item1 item2\""; - } + } if (variables.ulm_card_thermostat_enable_display_temperature) { areas.push("item1 item4"); } else { @@ -95,7 +95,7 @@ card_thermostat: rows.push("min-content"); if (variables.ulm_card_thermostat_enable_horizontal) { return "min-content"; - } + } if ( !(variables.ulm_card_thermostat_enable_collapse && entity.state == "off") && variables.ulm_card_thermostat_enable_controls) { rows.push("min-content"); } @@ -124,7 +124,7 @@ card_thermostat: [[[ if (variables.ulm_card_thermostat_enable_horizontal) { return "none"; - } + } if ( !(variables.ulm_card_thermostat_enable_collapse && entity.state == "off") && variables.ulm_card_thermostat_enable_hvac_modes) { return "block"; } else { @@ -136,7 +136,7 @@ card_thermostat: [[[ if (variables.ulm_card_thermostat_enable_horizontal) { return "none"; - } + } if (variables.ulm_card_thermostat_enable_display_temperature) { return "block"; } else { From 7ace27110255969270b02ee3cb53a12811bde553 Mon Sep 17 00:00:00 2001 From: schumijo <40740060+schumijo@users.noreply.github.com> Date: Tue, 1 Feb 2022 22:26:36 +0100 Subject: [PATCH 117/248] Fix afternoon translation --- .../ui_lovelace_minimalist/lovelace/translations/FR.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml index 86a861b0e..894a2ebf9 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml @@ -30,6 +30,6 @@ ulm_language_variables: ulm_playing: "Lecture" ulm_paused: "En Pause" ulm_morning: "Bonjour" - ulm_afternoon: "Bonne après-midi" + ulm_afternoon: "Bon après-midi" ulm_evening: "Bonsoir" ulm_hello: "Bonjour" From f02bd012b2a41d2d93ee7f72a7dd05ecb3fd67a5 Mon Sep 17 00:00:00 2001 From: BasBruss <68892092+basbruss@users.noreply.github.com> Date: Wed, 2 Feb 2022 09:03:03 +0100 Subject: [PATCH 118/248] Remove double light title --- .../ui_lovelace_minimalist/lovelace/ui-lovelace.yaml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml index 23fa335bb..94e0f375b 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml @@ -36,11 +36,7 @@ views: - type: "custom:button-card" template: "card_title" name: "Lights" - label: "This is the Minimalist-lightcard" - - type: "custom:button-card" - template: "card_title" - name: "Lights" - label: "These are your 'Minimalist' light cards" + label: "This is the Minimalist-light-card" - type: "custom:auto-entities" card: type: "grid" From a8f424b2183df644c7a0bee1e2908457c0f2455d Mon Sep 17 00:00:00 2001 From: basbruss <68892092+basbruss@users.noreply.github.com> Date: Wed, 2 Feb 2022 10:39:58 +0100 Subject: [PATCH 119/248] Add chip_weather_date to chips_folder --- .../cards/card_welcome_scenes.yaml | 51 +------------------ .../chips/chip_weather_date.yaml | 49 ++++++++++++++++++ 2 files changed, 50 insertions(+), 50 deletions(-) create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_weather_date.yaml diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_welcome_scenes.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_welcome_scenes.yaml index d6d3dba63..83758af70 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_welcome_scenes.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_welcome_scenes.yaml @@ -360,7 +360,7 @@ card_topbar_welcome: item2: card: type: "custom:button-card" - template: "chip_temperature_custom" + template: "chip_weather_date" variables: ulm_weather: "[[[ return variables.ulm_weather]]]" item3: @@ -373,55 +373,6 @@ card_topbar_welcome: variables: ulm_chip_mdi_icon_only_icon: "mdi:cog-outline" -chip_temperature_custom: - template: "chips" - triggers_update: "all" - label: | - [[[ - const months = ["Jan", "Feb", "Mar","Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; - let current_datetime = new Date() - let formatted_date = months[current_datetime.getMonth()] + "." + current_datetime.getDate() - var date = "st"; - if(current_datetime.getDate()==1){ - var date = "st"; - } else if(current_datetime.getDate()==2){ - var date = "nd"; - } else { - var date = "th" - } - var icon = '🌡️'; - if (states[variables.ulm_weather].state == 'clear-night'){ - var icon = '🌙'; - } else if(states[variables.ulm_weather].state == 'cloudy'){ - var icon = '☁️'; - } else if(states[variables.ulm_weather].state == 'exceptional'){ - var icon = '🌞'; - } else if(states[variables.ulm_weather].state == 'fog'){ - var icon = '🌫️'; - } else if(states[variables.ulm_weather].state == 'hail'){ - var icon = '⛈️'; - } else if(states[variables.ulm_weather].state == 'lightning'){ - var icon = '⚡'; - } else if(states[variables.ulm_weather].state == 'lightning-rainy'){ - var icon = '⛈️'; - } else if(states[variables.ulm_weather].state == 'partlycloudy'){ - var icon = '⛅'; - } else if(states[variables.ulm_weather].state == 'pouring'){ - var icon = '🌧️'; - } else if(states[variables.ulm_weather].state == 'rainy'){ - var icon = '💧'; - } else if(states[variables.ulm_weather].state == 'snowy'){ - var icon = '❄️'; - } else if(states[variables.ulm_weather].state == 'snowy-rainy'){ - var icon = '🌨️'; - } else if(states[variables.ulm_weather].state == 'sunny'){ - var icon = '☀️'; - } else if(states[variables.ulm_weather].state == 'windy'){ - var icon = '🌪️'; - } - return icon + ' ' + formatted_date + date; - ]]] - card_scenes_welcome_auto: show_icon: false show_name: true diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_weather_date.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_weather_date.yaml new file mode 100644 index 000000000..00d1c4f32 --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_weather_date.yaml @@ -0,0 +1,49 @@ +--- +chip_weather_date: + template: "chips" + triggers_update: "all" + label: | + [[[ + const months = ["Jan", "Feb", "Mar","Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; + let current_datetime = new Date() + let formatted_date = months[current_datetime.getMonth()] + "." + current_datetime.getDate() + var date = "st"; + if(current_datetime.getDate()==1){ + var date = "st"; + } else if(current_datetime.getDate()==2){ + var date = "nd"; + } else { + var date = "th" + } + var icon = '🌡️'; + if (states[variables.ulm_weather].state == 'clear-night'){ + var icon = '🌙'; + } else if(states[variables.ulm_weather].state == 'cloudy'){ + var icon = '☁️'; + } else if(states[variables.ulm_weather].state == 'exceptional'){ + var icon = '🌞'; + } else if(states[variables.ulm_weather].state == 'fog'){ + var icon = '🌫️'; + } else if(states[variables.ulm_weather].state == 'hail'){ + var icon = '⛈️'; + } else if(states[variables.ulm_weather].state == 'lightning'){ + var icon = '⚡'; + } else if(states[variables.ulm_weather].state == 'lightning-rainy'){ + var icon = '⛈️'; + } else if(states[variables.ulm_weather].state == 'partlycloudy'){ + var icon = '⛅'; + } else if(states[variables.ulm_weather].state == 'pouring'){ + var icon = '🌧️'; + } else if(states[variables.ulm_weather].state == 'rainy'){ + var icon = '💧'; + } else if(states[variables.ulm_weather].state == 'snowy'){ + var icon = '❄️'; + } else if(states[variables.ulm_weather].state == 'snowy-rainy'){ + var icon = '🌨️'; + } else if(states[variables.ulm_weather].state == 'sunny'){ + var icon = '☀️'; + } else if(states[variables.ulm_weather].state == 'windy'){ + var icon = '🌪️'; + } + return icon + ' ' + formatted_date + date; + ]]] From 0736692f3e6021eef452401227cb91933df7d79b Mon Sep 17 00:00:00 2001 From: basbruss <68892092+basbruss@users.noreply.github.com> Date: Wed, 2 Feb 2022 11:02:39 +0100 Subject: [PATCH 120/248] Update chip_weather_date.yaml --- .../ulm_templates/card_templates/chips/chip_weather_date.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_weather_date.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_weather_date.yaml index 00d1c4f32..469d9371d 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_weather_date.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_weather_date.yaml @@ -8,9 +8,9 @@ chip_weather_date: let current_datetime = new Date() let formatted_date = months[current_datetime.getMonth()] + "." + current_datetime.getDate() var date = "st"; - if(current_datetime.getDate()==1){ + if(current_datetime.getDate()==1 || current_datetime.getDate()==21 || current_datetime.getDate()==31){ var date = "st"; - } else if(current_datetime.getDate()==2){ + } else if(current_datetime.getDate()==2 || current_datetime.getDate()==22){ var date = "nd"; } else { var date = "th" From 0ccfc9a30e14986b7f49e436b899cb3dccda5a3a Mon Sep 17 00:00:00 2001 From: Arthur <17024799+aehru@users.noreply.github.com> Date: Wed, 2 Feb 2022 16:41:09 +0100 Subject: [PATCH 121/248] Allow use of label or icon color in some chips For #345 and #360 --- .../card_templates/chips/chip_mdi_icon_only.yaml | 2 ++ .../card_templates/chips/chip_mdi_icon_state.yaml | 4 ++++ .../ulm_templates/card_templates/chips/chip_navigate.yaml | 6 +++++- docs/usage/chips/chip_mdi_icon_only.md | 1 + docs/usage/chips/chip_mdi_icon_state.md | 2 ++ docs/usage/chips/chip_navigate.md | 3 +++ 6 files changed, 17 insertions(+), 1 deletion(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_mdi_icon_only.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_mdi_icon_only.yaml index ef05cbdb2..f117dd4f7 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_mdi_icon_only.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_mdi_icon_only.yaml @@ -10,3 +10,5 @@ chip_mdi_icon_only: styles: grid: - grid-template-areas: "'i'" + icon: + - color: "[[[ return variables.ulm_chip_mdi_icon_only_icon_color; ]]]" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_mdi_icon_state.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_mdi_icon_state.yaml index 7e7648562..ee2b38c3e 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_mdi_icon_state.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_mdi_icon_state.yaml @@ -12,3 +12,7 @@ chip_mdi_icon_state: styles: grid: - grid-template-areas: "'i l'" + icon: + - color: "[[[ return variables.ulm_chip_mdi_icon_state_icon_color; ]]]" + label: + - color: "[[[ return variables.ulm_chip_mdi_icon_state_label_color; ]]]" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_navigate.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_navigate.yaml index e9d28244b..26f6cee7a 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_navigate.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/chips/chip_navigate.yaml @@ -9,4 +9,8 @@ chip_navigate: icon: "[[[ return variables.ulm_chip_navigate_icon; ]]]" styles: grid: - - grid-template-areas: "'i'" + - grid-template-areas: "'i l'" + icon: + - color: "[[[ return variables.ulm_chip_navigate_icon_color; ]]]" + label: + - color: "[[[ return variables.ulm_chip_navigate_label_color; ]]]" diff --git a/docs/usage/chips/chip_mdi_icon_only.md b/docs/usage/chips/chip_mdi_icon_only.md index cbd9d5c4c..1621b88be 100644 --- a/docs/usage/chips/chip_mdi_icon_only.md +++ b/docs/usage/chips/chip_mdi_icon_only.md @@ -17,6 +17,7 @@ This `chip` displays an icon using [mdi](https://materialdesignicons.com/). |----------|---------|------------------|-------------------| |ulm_chip_mdi_icon_only_entity | | :material-check: | `entity` to link | |ulm_chip_mdi_icon_only_icon | | :material-check: | mdi:icon to display | +|ulm_chip_mdi_icon_only_icon_color | `primary-text-color` | :material-close: | Allow to change `icon` color | ## Usage diff --git a/docs/usage/chips/chip_mdi_icon_state.md b/docs/usage/chips/chip_mdi_icon_state.md index 8d230042c..eef0143c3 100644 --- a/docs/usage/chips/chip_mdi_icon_state.md +++ b/docs/usage/chips/chip_mdi_icon_state.md @@ -17,6 +17,8 @@ This `chip` displays an icon using [mdi](https://materialdesignicons.com/) and ` |----------|---------|------------------|-------------------| |ulm_chip_mdi_icon_state_entity | | :material-check: | `entity` to link | | |ulm_chip_mdi_icon_state_icon | | :material-close: | mdi:icon to display | +|ulm_chip_mdi_icon_state_icon_color | `primary-text-color` | :material-close: | Allow to change `icon` color | +|ulm_chip_mdi_icon_state_label_color | `primary-text-color` | :material-close: | Allow to change `label` color | ## Usage diff --git a/docs/usage/chips/chip_navigate.md b/docs/usage/chips/chip_navigate.md index ef011846c..86a6a7c33 100644 --- a/docs/usage/chips/chip_navigate.md +++ b/docs/usage/chips/chip_navigate.md @@ -17,12 +17,15 @@ This `chip` is a menu button with an icon using [mdi](https://materialdesignicon |----------|---------|------------------|-------------------| |ulm_chip_navigate_path | | :material-check: | `path` to navigate to | |ulm_chip_navigate_icon | | :material-close: | Icon to use | +|ulm_chip_navigate_icon_color| `primary-text-color` | :material-close: | Allow to change `icon` color | +|ulm_chip_navigate_label_color| `primary-text-color` | :material-close: | Allow to change `label` color | ## Usage ```yaml - type: "custom:button-card" template: chip_navigate + label: 'Living Room' variables: ulm_chip_navigate_path: /lovelace-minimalist-test/ ulm_chip_navigate_icon: mdi:sofa From 5a72ef203fdac097e0edc1f38628cc8bb66974f2 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Wed, 2 Feb 2022 14:27:01 -0400 Subject: [PATCH 122/248] Create custom_card_irmajavi_speedtest This is a card to show results from the Speedtest.net integration. --- custom_cards/custom_card_irmajavi_speedtest | 233 ++++++++++++++++++++ 1 file changed, 233 insertions(+) create mode 100644 custom_cards/custom_card_irmajavi_speedtest diff --git a/custom_cards/custom_card_irmajavi_speedtest b/custom_cards/custom_card_irmajavi_speedtest new file mode 100644 index 000000000..eb39eef8a --- /dev/null +++ b/custom_cards/custom_card_irmajavi_speedtest @@ -0,0 +1,233 @@ +custom_card_irmajavi_speedtest: + triggers_update: all + show_name: false + show_label: false + variables: + ulm_custom_card_irmajavi_speedtest_color: blue + ulm_custom_card_irmajavi_speedtest_router_name: router_name + ulm_custom_card_irmajavi_speedtest_router_model: router_model + styles: + grid: + - grid-template-areas: '"item1" "item2" "item3"' + - grid-template-columns: 1fr + - grid-template-rows: min-content min-content + - row-gap: 12px + card: + - border-radius: var(--border-radius) + - box-shadow: var(--box-shadow) + - padding: 12px + custom_fields: + item1: + card: + type: custom:button-card + tap_action: + action: none + show_last_changed: false + show_label: true + show_name: true + show_icon: true + label: >- + [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_model + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_name + ]]] + icon: mdi:wifi + styles: + icon: + - color: >- + [[[ return + `rgba(var(--color-${variables.ulm_custom_card_irmajavi_speedtest_color}), + 1)`; ]]] + - width: 32px + label: + - justify-self: center + - align-self: start + - font-weight: bolder + - font-size: 12px + - filter: opacity(40%) + name: + - margin-top: 10px + - justify-self: center + - font-weight: bold + - font-size: 14px + img_cell: + - background-color: >- + [[[ return + `rgba(var(--color-${variables.ulm_custom_card_irmajavi_speedtest_color}), + 0.2)`; ]]] + - border-radius: 50% + - place-self: center + - width: 62px + - height: 62px + grid: + - grid-template-areas: '"i" "n" "l"' + card: + - box-shadow: none + size: 20px + item2: + card: + type: custom:button-card + tap_action: + action: call-service + service: speedtestdotnet.speedtest + color: var(--google-grey) + show_icon: true + show_label: false + show_name: true + styles: + custom_fields: + item1: + - justify-self: end + icon: + - color: rgba(var(--color-theme),0.9) + - width: 20px + img_cell: + - background-color: none + - place-self: center + - justify-self: start + - width: 40px + - height: 20px + name: + - align-self: end + - justify-self: start + - font-weight: bold + - font-size: 16px + grid: + - grid-template-areas: '"i n item1"' + - grid-template-columns: min-content + - grid-template-rows: auto + card: + - box-shadow: none + - border-radius: 10px + - border: 2px solid var(--google-grey) + - padding_bottom: '-8px' + - height: 40px + - padding-top: 5px + - padding-left: 5px + name: Speed Test + icon: mdi:speedometer + custom_fields: + item1: + card: + type: custom:button-card + show_icon: true + show_name: false + show_label: false + styles: + icon: + - color: rgba(var(--color-theme),0.9) + - width: 20px + - justify-self: end + grid: + - grid-template-areas: '"i"' + - grid-template-columns: auto + - grid-template-rows: auto + card: + - box-shadow: none + icon: mdi:chevron-right + item3: + card: + type: custom:button-card + template: list_2_items + custom_fields: + item1: + card: + type: custom:button-card + tap_action: + action: more-info + color: var(--google-blue) + show_label: true + show_icon: false + name: Download Speed + entity: >- + [[[ return + variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity; + ]]] + label: | + [[[ + var state1 = ""; + if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state){ + var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state; + if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement){ + state1 += states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement; + } + } + return state1; + ]]] + styles: + icon: + - width: 30px + - height: 30px + label: + - align-self: center + - justify-self: center + - font-weight: bold + - font-size: 23px + name: + - align-self: center + - justify-self: center + - font-weight: bold + - font-size: 12px + - filter: opacity(40%) + grid: + - grid-template-areas: '"l" "n"' + - grid-template-columns: auto + - grid-template-rows: min-content + card: + - box-shadow: none + - padding-top: 15px + - padding-botton: 10px + - background-color: rgba(var(--color-theme),0.05) + - border-radius: 14px + - place-self: center + - height: 80px + item2: + card: + type: custom:button-card + color: var(--google-blue) + show_label: true + show_icon: false + name: Upload Speed + entity: >- + [[[ return + variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity; + ]]] + label: | + [[[ + var state1 = ""; + if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state){ + var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state; + if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement){ + state1 += states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement; + } + } + return state1; + ]]] + styles: + icon: + - width: 30px + - height: 30px + label: + - align-self: center + - justify-self: center + - font-weight: bold + - font-size: 23px + name: + - align-self: center + - justify-self: center + - font-weight: bold + - font-size: 12px + - filter: opacity(40%) + grid: + - grid-template-areas: '"l" "n"' + - grid-template-columns: auto + - grid-template-rows: min-content + card: + - box-shadow: none + - padding-top: 15px + - padding-botton: 10px + - background-color: rgba(var(--color-theme),0.05) + - border-radius: 14px + - place-self: center + - height: 80px From 6c56bcac384b221526cecf664ebe9557148e5733 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Wed, 2 Feb 2022 14:46:16 -0400 Subject: [PATCH 123/248] Update custom_card_irmajavi_speedtest --- custom_cards/custom_card_irmajavi_speedtest | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom_cards/custom_card_irmajavi_speedtest b/custom_cards/custom_card_irmajavi_speedtest index eb39eef8a..188699b84 100644 --- a/custom_cards/custom_card_irmajavi_speedtest +++ b/custom_cards/custom_card_irmajavi_speedtest @@ -150,7 +150,7 @@ custom_card_irmajavi_speedtest: if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state){ var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state; if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement){ - state1 += states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement; + state1 += states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement; } } return state1; @@ -199,7 +199,7 @@ custom_card_irmajavi_speedtest: if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state){ var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state; if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement){ - state1 += states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement; + state1 += states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement; } } return state1; From 2991e308a2526d392e54c024d15e7c6f3cbcb3ec Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Wed, 2 Feb 2022 15:43:39 -0400 Subject: [PATCH 124/248] Delete custom_card_irmajavi_speedtest --- custom_cards/custom_card_irmajavi_speedtest | 233 -------------------- 1 file changed, 233 deletions(-) delete mode 100644 custom_cards/custom_card_irmajavi_speedtest diff --git a/custom_cards/custom_card_irmajavi_speedtest b/custom_cards/custom_card_irmajavi_speedtest deleted file mode 100644 index 188699b84..000000000 --- a/custom_cards/custom_card_irmajavi_speedtest +++ /dev/null @@ -1,233 +0,0 @@ -custom_card_irmajavi_speedtest: - triggers_update: all - show_name: false - show_label: false - variables: - ulm_custom_card_irmajavi_speedtest_color: blue - ulm_custom_card_irmajavi_speedtest_router_name: router_name - ulm_custom_card_irmajavi_speedtest_router_model: router_model - styles: - grid: - - grid-template-areas: '"item1" "item2" "item3"' - - grid-template-columns: 1fr - - grid-template-rows: min-content min-content - - row-gap: 12px - card: - - border-radius: var(--border-radius) - - box-shadow: var(--box-shadow) - - padding: 12px - custom_fields: - item1: - card: - type: custom:button-card - tap_action: - action: none - show_last_changed: false - show_label: true - show_name: true - show_icon: true - label: >- - [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_model - ]]] - name: >- - [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_name - ]]] - icon: mdi:wifi - styles: - icon: - - color: >- - [[[ return - `rgba(var(--color-${variables.ulm_custom_card_irmajavi_speedtest_color}), - 1)`; ]]] - - width: 32px - label: - - justify-self: center - - align-self: start - - font-weight: bolder - - font-size: 12px - - filter: opacity(40%) - name: - - margin-top: 10px - - justify-self: center - - font-weight: bold - - font-size: 14px - img_cell: - - background-color: >- - [[[ return - `rgba(var(--color-${variables.ulm_custom_card_irmajavi_speedtest_color}), - 0.2)`; ]]] - - border-radius: 50% - - place-self: center - - width: 62px - - height: 62px - grid: - - grid-template-areas: '"i" "n" "l"' - card: - - box-shadow: none - size: 20px - item2: - card: - type: custom:button-card - tap_action: - action: call-service - service: speedtestdotnet.speedtest - color: var(--google-grey) - show_icon: true - show_label: false - show_name: true - styles: - custom_fields: - item1: - - justify-self: end - icon: - - color: rgba(var(--color-theme),0.9) - - width: 20px - img_cell: - - background-color: none - - place-self: center - - justify-self: start - - width: 40px - - height: 20px - name: - - align-self: end - - justify-self: start - - font-weight: bold - - font-size: 16px - grid: - - grid-template-areas: '"i n item1"' - - grid-template-columns: min-content - - grid-template-rows: auto - card: - - box-shadow: none - - border-radius: 10px - - border: 2px solid var(--google-grey) - - padding_bottom: '-8px' - - height: 40px - - padding-top: 5px - - padding-left: 5px - name: Speed Test - icon: mdi:speedometer - custom_fields: - item1: - card: - type: custom:button-card - show_icon: true - show_name: false - show_label: false - styles: - icon: - - color: rgba(var(--color-theme),0.9) - - width: 20px - - justify-self: end - grid: - - grid-template-areas: '"i"' - - grid-template-columns: auto - - grid-template-rows: auto - card: - - box-shadow: none - icon: mdi:chevron-right - item3: - card: - type: custom:button-card - template: list_2_items - custom_fields: - item1: - card: - type: custom:button-card - tap_action: - action: more-info - color: var(--google-blue) - show_label: true - show_icon: false - name: Download Speed - entity: >- - [[[ return - variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity; - ]]] - label: | - [[[ - var state1 = ""; - if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state){ - var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state; - if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement){ - state1 += states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement; - } - } - return state1; - ]]] - styles: - icon: - - width: 30px - - height: 30px - label: - - align-self: center - - justify-self: center - - font-weight: bold - - font-size: 23px - name: - - align-self: center - - justify-self: center - - font-weight: bold - - font-size: 12px - - filter: opacity(40%) - grid: - - grid-template-areas: '"l" "n"' - - grid-template-columns: auto - - grid-template-rows: min-content - card: - - box-shadow: none - - padding-top: 15px - - padding-botton: 10px - - background-color: rgba(var(--color-theme),0.05) - - border-radius: 14px - - place-self: center - - height: 80px - item2: - card: - type: custom:button-card - color: var(--google-blue) - show_label: true - show_icon: false - name: Upload Speed - entity: >- - [[[ return - variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity; - ]]] - label: | - [[[ - var state1 = ""; - if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state){ - var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state; - if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement){ - state1 += states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement; - } - } - return state1; - ]]] - styles: - icon: - - width: 30px - - height: 30px - label: - - align-self: center - - justify-self: center - - font-weight: bold - - font-size: 23px - name: - - align-self: center - - justify-self: center - - font-weight: bold - - font-size: 12px - - filter: opacity(40%) - grid: - - grid-template-areas: '"l" "n"' - - grid-template-columns: auto - - grid-template-rows: min-content - card: - - box-shadow: none - - padding-top: 15px - - padding-botton: 10px - - background-color: rgba(var(--color-theme),0.05) - - border-radius: 14px - - place-self: center - - height: 80px From 7d22056e07f56ded60c91f87b6a94aa0ca32730c Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Wed, 2 Feb 2022 15:44:22 -0400 Subject: [PATCH 125/248] Add files via upload --- .../custom_card_irmajavi_entities/README.md | 270 ++++++++++++++++++ .../custom_card_irmajavi_entities.yaml | 148 ++++++++++ .../screenshot_irmajavi_entities_card.jpg | Bin 0 -> 71161 bytes 3 files changed, 418 insertions(+) create mode 100644 custom_cards/custom_card_irmajavi_entities/README.md create mode 100644 custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml create mode 100644 custom_cards/custom_card_irmajavi_entities/screenshot_irmajavi_entities_card.jpg diff --git a/custom_cards/custom_card_irmajavi_entities/README.md b/custom_cards/custom_card_irmajavi_entities/README.md new file mode 100644 index 000000000..1660da62f --- /dev/null +++ b/custom_cards/custom_card_irmajavi_entities/README.md @@ -0,0 +1,270 @@ +--- +title: custom_card_irmajavi_entities +hide: + - toc +--- + + +# Custom-card "Entities" + +This is a `custom-card` to display states from multiple entities or from an entity with multiples attributes (To use it with attributes need to modify the code) + +![Screenshot](../../docs/assets/img/screenshot_irmajavi_entities_card.jpg) + +## Credits +Author: irmajavi - 2022 +Version: 1.0.0 + +## Changelog + +
+1.0.0 +Initial release +
+ +## Requirements + none +## Usage + +```yaml +type: custom:button-card +template: custom_card_irmajavi_entities +variables: + ulm_custom_card_irmajavi_entities_entity_1: sensor.inverter_voltage + ulm_custom_card_irmajavi_entities_entity_2: sensor.inverter_temperature + ulm_custom_card_irmajavi_entities_entity_3: sensor.active_ac_power + ulm_custom_card_irmajavi_entities_entity_4: sensor.ac_load_current + ulm_custom_card_irmajavi_entities_name_1: Voltage + ulm_custom_card_irmajavi_entities_name_2: Temperature + ulm_custom_card_irmajavi_entities_name_3: AC Power + ulm_custom_card_irmajavi_entities_name_4: Current + ulm_custom_card_irmajavi_entities_name: System Status + ulm_custom_card_irmajavi_entities: sensor.inverter_operating_mode +``` + +## Variables + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VariableExampleRequiredExplanation
ulm_custom_card_irmajavi_entitiessensor.mainYesMain entity
ulm_custom_card_irmajavi_entitites_nameStatusYesMain entity name
ulm_custom_card_irmajavi_entities_entity_1sensor.test1YesThe first entity
ulm_custom_card_irmajavi_entities_entity_2sensor.test2YesThe second entity
ulm_custom_card_irmajavi_entities_entity_3sensor.test3YesThe third entity
ulm_custom_card_irmajavi_entities_entity_4sensor.test4YesThe forth entity
ulm_custom_card_irmajavi_entities_name_1Test1YesThe name of the first entity
ulm_custom_card_irmajavi_entities_name_2Test2YesThe name of the second entity
ulm_custom_card_irmajavi_entities_name_3Test3YesThe name of the third entity
ulm_custom_card_irmajavi_entities_name_4Test4YesThe name of the forth entity
+ +##Template Code +```yaml +custom_card_irmajavi_entities: + template: + - ulm_language_variables + triggers_update: all + show_icon: false + show_name: false + show_label: false + styles: + grid: + - grid-template-areas: '''item1'' ''item2'' ''item3'' ''item4''' + - grid-template-columns: 1fr + - grid-template-rows: min-content min-content + - row-gap: 12px + card: + - border-radius: 30px + - box-shadow: var(--box-shadow) + - padding: 12px + - height: 160px + custom_fields: + item1: + card: + type: custom:button-card + color: var(--google-grey) + show_icon: false + show_label: true + show_name: true + styles: + name: + - align-self: start + - justify-self: start + - font-weight: bold + - font-size: 14px + - margin-left: 12px + grid: + - grid-template-areas: '"n" "l"' + - grid-template-columns: min-content auto min-content + - grid-template-rows: min-content min-content + card: + - box-shadow: none + - border-radius: 20px + - border: 2px solid var(--google-grey) + - height: 70px + label: + - justify-self: start + - align-self: end + - font-weight: bold + - font-size: 14px + - filter: opacity(40%) + - margin-left: 35px + name: | + [[[ + var icon = '👽'; + if (variables.ulm_custom_card_irmajavi_entities_icon){ + var icon = variables.ulm_custom_card_irmajavi_entities_icon; + } + return icon + ' ' + variables.ulm_custom_card_irmajavi_entities_name; + ]]] + label: | + [[[ + return states[variables.ulm_custom_card_irmajavi_entities].state + ]]] + item2: + card: + type: custom:button-card + template: list_4_items + custom_fields: + item1: + card: + type: custom:button-card + template: custom_widget_irmajavi + entity: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_entity_1; + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_name_1 + ]]] + item2: + card: + type: custom:button-card + template: custom_widget_irmajavi + entity: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_entity_2; + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_name_2 + ]]] + item3: + card: + type: custom:button-card + template: custom_widget_irmajavi + entity: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_entity_3; + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_name_3 + ]]] + item4: + card: + type: custom:button-card + template: custom_widget_irmajavi + entity: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_entity_4; + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_name_4 + ]]] + + +custom_widget_irmajavi: + show_label: true + show_icon: false + label: | + [[[ + var unit = entity.attributes.unit_of_measurement != null ? ' ' + entity.attributes.unit_of_measurement : '' + if (entity.state == 'on') { + return variables.ulm_on; + } else if (entity.state == 'off') { + return variables.ulm_off; + } else if (entity.state == 'unavailable') { + return variables.ulm_unavailable; + } else if (entity.state == 'idle') { + return variables.ulm_idle; + } else if (entity.state == 'open') { + return variables.ulm_open; + } else if (entity.state == 'closed') { + return variables.ulm_closed; + } else { + return entity.state + unit; + } + ]]] + styles: + name: + - justify-self: center + - align-self: start + - font-weight: bolder + - font-size: 12px + - filter: opacity(40%) + label: + - margin-top: 10px + - justify-self: center + - font-weight: bold + - font-size: 14px + grid: + - grid-template-areas: '"l" "n"' + - grid-template-columns: 1fr + - grid-template-rows: min-content min-content + card: + - box-shadow: none +``` \ No newline at end of file diff --git a/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml b/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml new file mode 100644 index 000000000..25a003b6b --- /dev/null +++ b/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml @@ -0,0 +1,148 @@ +custom_card_irmajavi_entities: + template: + - ulm_language_variables + triggers_update: all + show_icon: false + show_name: false + show_label: false + styles: + grid: + - grid-template-areas: '''item1'' ''item2'' ''item3'' ''item4''' + - grid-template-columns: 1fr + - grid-template-rows: min-content min-content + - row-gap: 12px + card: + - border-radius: 30px + - box-shadow: var(--box-shadow) + - padding: 12px + - height: 160px + custom_fields: + item1: + card: + type: custom:button-card + color: var(--google-grey) + show_icon: false + show_label: true + show_name: true + styles: + name: + - align-self: start + - justify-self: start + - font-weight: bold + - font-size: 14px + - margin-left: 12px + grid: + - grid-template-areas: '"n" "l"' + - grid-template-columns: min-content auto min-content + - grid-template-rows: min-content min-content + card: + - box-shadow: none + - border-radius: 20px + - border: 2px solid var(--google-grey) + - height: 70px + label: + - justify-self: start + - align-self: end + - font-weight: bold + - font-size: 14px + - filter: opacity(40%) + - margin-left: 35px + name: | + [[[ + var icon = '👽'; + if (variables.ulm_custom_card_irmajavi_entities_icon){ + var icon = variables.ulm_custom_card_irmajavi_entities_icon; + } + return icon + ' ' + variables.ulm_custom_card_irmajavi_entities_name; + ]]] + label: | + [[[ + return states[variables.ulm_custom_card_irmajavi_entities].state + ]]] + item2: + card: + type: custom:button-card + template: list_4_items + custom_fields: + item1: + card: + type: custom:button-card + template: custom_widget_irmajavi + entity: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_entity_1; + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_name_1 + ]]] + item2: + card: + type: custom:button-card + template: custom_widget_irmajavi + entity: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_entity_2; + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_name_2 + ]]] + item3: + card: + type: custom:button-card + template: custom_widget_irmajavi + entity: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_entity_3; + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_name_3 + ]]] + item4: + card: + type: custom:button-card + template: custom_widget_irmajavi + entity: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_entity_4; + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_name_4 + ]]] + + +custom_widget_irmajavi: + show_label: true + show_icon: false + label: | + [[[ + var unit = entity.attributes.unit_of_measurement != null ? ' ' + entity.attributes.unit_of_measurement : '' + if (entity.state == 'on') { + return variables.ulm_on; + } else if (entity.state == 'off') { + return variables.ulm_off; + } else if (entity.state == 'unavailable') { + return variables.ulm_unavailable; + } else if (entity.state == 'idle') { + return variables.ulm_idle; + } else if (entity.state == 'open') { + return variables.ulm_open; + } else if (entity.state == 'closed') { + return variables.ulm_closed; + } else { + return entity.state + unit; + } + ]]] + styles: + name: + - justify-self: center + - align-self: start + - font-weight: bolder + - font-size: 12px + - filter: opacity(40%) + label: + - margin-top: 10px + - justify-self: center + - font-weight: bold + - font-size: 14px + grid: + - grid-template-areas: '"l" "n"' + - grid-template-columns: 1fr + - grid-template-rows: min-content min-content + card: + - box-shadow: none \ No newline at end of file diff --git a/custom_cards/custom_card_irmajavi_entities/screenshot_irmajavi_entities_card.jpg b/custom_cards/custom_card_irmajavi_entities/screenshot_irmajavi_entities_card.jpg new file mode 100644 index 0000000000000000000000000000000000000000..17669712eb6deeb5cd890a2025f13d9d38599c68 GIT binary patch literal 71161 zcmeFZ1yoz#)-M{`(*BFJc=6)J-R)mI!HQdeLI@rpIK`?+akm1+-624rPzpf<6blfb z6ffH14lh0Dp6{G9-uJyX?zrE$_q{RxGuhd{ES+nvx#ymH&6V6t-z?(MsrWhC0RUQB z0B!&P@CN`N4*Y zu>U*u`;Be>j-!5K4+A|VT$ztJ{KWoWu+6_`cL2a6>_5}k zJ^}y_-U0xK5qE13>%TGcTU~G2;S_zp7yuwP1pvsu0ssW&|6uf=b^kdR|HW7zze*ISGR8cHbVcPdw1^Q;orLb2QF8L^miuS9l)L2cYm7*9Q|gD6#p(6^F4B* zr!2zO6uPhCYk&PgNyVxN&%MC{h;WwS7U^wLfCAw7_f_)$Pr7~T#Bz)dChkt%*$b)e zy?#mmQc~-XbYDb(dgkiQ8J6^CYU(jy9k286=$?aGyQS6i?GN|<2V%%&Jo68EPU24g zKakJcfYsHjmr|eI|Bhb$)x=-2z-h=|dhtJTjXW5YPP_qNt&aEc25uiDVtT~CSB&9|TsRo9JN9KqqkWwRqN2x{lt!MQkbdV~?I@p7p z1Cp|WqZBO!2<{}zhIlQ;r?z}fQFzBm_v-aJ`ctPxC2DPWv%{wGOH5!iFDbP%T=uFk z{y@`1^uof!JbNiahedbzBj#z9njXC!R)mFJYOvzsLwm_)OLN}(GFt}ntzD2o0e)Nb zQ(w^t)i2D5yz6tbXo3rc=8q{GOl=y9vVkKx{K`Bo*5PYv{HWE7ji@o&)#c*|*UWi0 z_p=Q0-FVUf8&?1;-;%+P>nk!#g`j>OR)rhDySZ>r-%6Fi8vu*$Mcak#Zpe=Wl@%5; z03Op%v&b#>U>cdjxc@-$j{&6DMSTuN6kLMH+9Dm-z_MvuJ zJbp4CH_SFG^HIj%>^djhYz)}FXZUK*ZoxwO)ZFnw)%Cu)BKppmm-(Npgj z&=Ee4in6r+a_Pe^T4Y-{zQZ%CR00|wnGC+JO&?5SXHp3WUrzKnE>~fXI)-nZ(?RG`PKisWW^VeM!MKC?x zH+M}nR5=b>Ww#Uog%5GFu!36rJ{tgn$r?)9RIMQ2F6cW(m-ZfA{U;;@cPWk$JiEGWhgo}M?OD-^;|q^2)G7f)zjjZH<||x&R&NoT!rmk z)q1TfMqAVL)n#(hy0?$Th(t>Ki2P-vu+08ui(|t-Va= z>Ut`t_gL;D16Liep}YrtH5@F=Z@C_hj$Kfw{~2H}*0rH6!`P~!b^`7ut$A1cBfrP^ zq$nGTPGy!&$=~yEE=gE%a*v_bxIHykG!2(?fQJ_hvhL+-A*$4EFN0@yX`dAwu~~@tf=%w#*9&ZB_5 z(x?;8;mBUk?X0J#>ZC!inNIa+U1rv9_aeVb?2~t;g>09eX=#}$$L>(*NMeHPj+r^E z^Ub6#efSX2rZGvNWjI+hf+Trj3QU9Pg+&slx~xVelNtH#+#XhaJ(^B>!i8CTi%zOi zb%Y}ipK7>rX6hFp0?{m{)O0j#sZ_(Pp%YW$`J19wE9pM_A6VtpO;ul)6`6XST@k7t zc9XSu>c3l(?04Pe76|bzs_5V_URJ9>u9By-=z6j$u8f&-sSI9B(!F0tU)qT?L_1%y zk~k9EoHnuxeQfawPu`|jmj$(51xU+N!!wh7CG14kI!it$(nmlTNN%1o*s(2 zYy%stiHl}yV}4weOlO4QO{-)RV`+cRcm{9brbw3$m}sHx{E~+l z{fAY9jLQpUQJv7!Fg~t*jKLAhzQ(b#CJ1`foMg((1E2DvNW<0}j5_oJ` zK(r9C<#asOzy-v)+P#vKGWx!5gsIWJNgBQkscc`%_<6R<70BN}QGmmIcbfMlTAC(Jh%eq<$?qQ5Tu-4oTtz9OP?*XrDn% z093*vRdvhp1&^`*?@Ej5j3a>Nc89m{(c zf69FRSFi2~=E2d!D*HoAg~NmO-HUfi!U~?>*0=}dfeI&k0qt(3l0j{KdL7OkdMOV3t35Rx@umFq)M$>^=0A>a z0Q+y`gBLY>$%&d6QXqBN<(i_ie4O7AWB32iIbdf~O2ToYD=ZsYOrF=!_Y=xNsU@q% zp%rKAB#MXuD#4f)l()m?^;mnX>m-=swloo{jRmnL;>RsGA0>dH4BInT-TR%-DS~F) zY;*5D#64~&D;{ARAwGVei``oXIS@a$s4AXYJ5Q4Z*RSQR*X(K1vnkl_n@k~nlts&u zJkKxOQl>=ejBFd5jh-w#6n>i#A>Z7eq(g1S%A;z#F=S<4=KjM=x4(F2m5kHYC_+)M z!u~Galcmova0G9mPANN!W->4Liv^RVjP{5!7Y|zCY9T>GbI>1#g>3}| z5jyC=$aL{!vKU$MXd#Mqfz z)j%WPrH1!KA%~DN>3peJJtpgkLJSy&8LPv%PE7jSKac_w9o){5_%u9=sjSnHuqp}~ zmv3ZP^7oZ;hc;oLsoB6!Up2CAgUd1Q0bWz6t%i50Q7=0oSgEvfq*@+e8=DtOpq&3WuaZYJs zBsm)idX^M#X57KRp=)L3g^e=RT~~>gW*zE_5DJB=#El_`6d08py~8qf{gP%YD|r+n zyB&oUsKf6`0suc|I$a0a!S|%dY-cHsUdDerXO)YzW!Ql*GJrqRcd@fV7{Q_@>b zVBZ7>?^LSs5@SRdoo;S-PMd834U>X%YIvLC4S2by;y;9IF&*rCT?X&%;{|*M0F*uF3ZpoQ`aPQZd9>IyTcR53 zS5ns!WRe5*<)M9r+8(mOILqID)WnS~$G84l7wtKMxUDR&cvo!Mop&(8dc>ccRisgG?ZV$uy!3#mBf| zD<9AH!A?nhKEk?7^3FCq5&UZCKD}}Y{>r8t#wrf)STRRFptAHVSD}`*n4Ohk__HeV zTL!(9eP=8p+U4E$gYitf;gi!DXFc@wI@PJ~+Wd}wW-C~QU`(hsv!v65wN4s&QU`eU z*X0!yxR%402ea+$!(*s<0e5B3vpKhVWrGt&V&Ui@`SIhltIJ;8TFU=ZVBz=R{x{I0 zEY!C<-_)uz2U%)Bh%YM~ikP>lUN2%gd-6@{s+2*ds)38sY!mq!M74rnW85lw1Kw85 z_{-O-ur&?M67f5gqA__Al)B9K__Lf=m)Jzd3NUrqz?C5nsf^eP`}n3K(mDd346e7y zs>rgMvN({ANo(|5W1D6>%b#r0_B-(hEGxEwp-4%ohD42e;Xor}@%O`_dY1M%H-Ji^ z3o2kkIun1;uxPpB`cC}ChbZ(L=tls6Prlc=Whg%_hqO5&o?gM>`sK9$YXRq+aV7XHJ&QsL;}1`y(9{4c`SFZPSeKMB79Ojue^P4$ilWF9{$OuYdtOx^%y z`g}OA_(E`(Yo1bhwayKI-k$mfK&qi|{k8n+r9c{PR|Uax^bv=ALzHTen$=*AZa`?s z&NA%d$aXx)N&o?oQ^niszX9Oi01jubf4m&DP+%Z!)NX>^QBJmg)cr=_bbn(B|(^YxEAZ)X&dAV=5#|Wv1{1bUZ0b)WblAa%4Id+Hs^q=-4tcE zZgK+#Xfq#ZLYft~X|9#Y;bG;?NA^K-=i_XQhUMri0}rR(Oxw~_bX&9IYOLiqA=4(Y z{eCwdzad9*#-bpsGri6z&1wCl%m}}HCN}6@DJ;7c<6PTVpOOy$o~4~!ELontm&v|2 z#jw9R63ZYklFDc)gjW6}?PM^9QTEYI$gZz51=S)3!Y)e2VX&Gd4D9ZRyO4gD6*+}H&U}R_gJzwG*oggt@HP+ z_L_W);VIyTjMks7dIqX$eZ3>gq#HTqvu6c?#w?S`LPC)n z+eYfaO)Qxl$4JVzp-bGIef8F21nAtteeWNm+A>wS{Nzr+edg`@{Hf=f!+!9>H}*oF z6*Yugm-rj}e6G#g(p)*$VG{K27kLnL+KlNOoijNCF`1= zER3dH7M>!@;Y?lGL42JkA~e#H9Jc7D_p>T?N<2WJy+NQ-tCGjt@>R;&o{Q%j{JkYC z=0kIxRZglD+^nJDz!F9eUnc#aNLY{XX&QH-013;9(xDyG(HQKAi9t z>}#z^*P|W+naA*zd|gsg8h7DTpuO|QzFmJTL;u$UmCbV2?Ixrcyx2Xj!HAALLd*Sn zLCejmnUlmwD5v+M#|@x->FAXV!zI^U4c4bC{1B(>E8=v=k&lnAJ_Q-yBWkwOfM|S_ zw8hE{WVGwonhx%759fm>EDDpk*sXz6K-!JNkp8Zj(bzaVdmh)+S;@r zdyAI#(x_4SwfZ2<$$Kg>))fbH`a#PX)K8XGN1)Rjd8y%Mnu`0-6oerqtx!1Di7|lI zkf@Zg#rLZ}8yMPXH{dtXnlcrgd@DZd6L)*j6va}P{qq2c*BlK@gnA?i=S^-)!=v*{ z(?&qMxq<#iDJqdmX?Mk}fjX}6Z+$jU*PeHJsCY3Y-h5z`@HNJB5h^CwB{KtYT9zoR%Ootq%F2|xY98w@>};M3eAai4^NSZP$Eh8MC42ieh=xaeY}swDZ=Ha^@{$*P6QW)O1EN)#3||=JooG z2j9cY;H=3Qo3!hm+D5edRc?&6<_rq;!&6p`C6ln(K)JQ054QNFv4^3j&W^>@!W0xW zxk&?V8hb1Gapv&@`VR^(K3#ykikc|CD~kdtIVN_MH><>C5q(Nx_qa zhm-J)xuLAq<{Z(_KKnjgaq$uKRA^JoMZ>&Lty zs3%O<{0N1=rr}hqYaFXT^UahiC3-#nRuTEZ8ds5?ZLy`M-!2`D?X00kjeNgc9{;l1sh@=qEKK9udv-Agvd$!GU1 z3^uo`qR|rUJ;G0p8ze*oR>8|V+Erdl^wUl@E^$NJgh+cy+T|^`!O=NssOb?V$}B@sy!U%7vHIGX6N`o1i$s8e&` z{nl7sWp%-~FUuE1i*ETp&Efeyn)YI=tC);Q8h-04haVN2`%<$x@|~M*oSQB@#Qob@ zZ4oa%B&dAydf}2V?;%t+(0cz2*6l~(D~`U~_0mrY9c08rlWwFE;+rQaHD1%`Be`79 zJA+QgwsNvmZwqo~oJ#V?+iYy3(mf>kYlt;G|2sY%`h9F6VqtRaap3WB8$Wwork+89F-3 zbQf{VsFJkW7-#8S2y*>N+Fw%v${t-|<{vDrh6viEFME(;v56`|pHH6O?!~BW*0^i% z)BmF5)9MmC*6(37cl1<>+t^4+*>60i@Fwc=;V`A+EH8BWDP1{`$Op>n-gu6gSM;d5 zih7SN4Hxy?&*b@{P}VkMOxMLQb?M^3U=iy4A(lHb5^RtBaNuIIU_`(1qnZa@|7dt0 zjIN`74YsSXE91CNxEY)}&^HBV*TJbNU0O6%Kc8lX{`m5nn2+;=Gar!=n!J9!s`m~R;fBC1 z`fIeZVqv9X+tNQhdG1e8rG=LH>*jwPXMq@wZ*#I2v^`rI4k8x50ep~ugZjlv9m}0^ zuAKJefl2oLWR*_yInwk112JSOJi1BQ92n^{6;t#|awK@Cred@nHPfH0zFO_+PYPB; zRK;6{l00laSbPn$C(h^!9a3nCHkn_`{w94u(pxJFcVC`=YKU?LLd!OQrlG9x_bvV; zNS?jQ6wRt6ozJMuvMyYxtd@8t?;yh>vcfatpte`|y#(X-J{@d|1^q^x z0+DYrJ~ycaJ>SZZ@pG@-*vSpL7T><1{PX1uDIhtU^2=1IU zJb38pnCo>-8MMHaWM8Xocki?$Z&wa+< zlbE!*0SbBq8FJ$1R&`d=>*lL$nzsc^%MuP7%|3DGg^Kpai{izdmt@N!j;;+IJ8uAZ zl0iL)ZcA{aeH}f-({=VdL%x0>43cc_bP-7KhT?^n`UuFJ%z7jYALt)i;erisaSLmC z`dZe@E5;o)IvMkwMu*%u-GV_LjYRhD8P~cfj_`Y5a6b~M8);y z1Iw+!!jxHTN`g{%Tu1fDc zI@Zd9v=p`VG8=4fR>W+P`H+|=s1?_}Fd#DK`LavREo+>#!rmCz#n%qh-v+uw=lAZu zwM@+F924uJ+Ws~N)ZLg5k}%w9)#Q8NOj}V+je;y0N?(wn?Z6A!@N9bzU2fJUA5gMX zxrx}0u_~mJm_+n4?2X?`SzEUpL&7#6jxFSb94$SQP@DDSKz;1fL_3q7p=p1kFK?c0 zW~3*MIx!dv(Dym)q0(8D@A2;6KaRnCqOw5w$O)Y|*=U?99zAQ}t=uu}x&f#+5jO_P zn#@=!qFlwP_@jC$qATkNIU$XBG6F{1VSK_)yg?RqGMK5IRg!_+&;k?n-ZkUq%jT!s zkMI48N>VOJ=i+7&Es4TWOMHB4_*rUH6mEyg#`R0w)9rsh5nFHSabNShJg+|_W`s06 z_SV4e>MpI4(rW0~ zW{nWi7~)rU{e$J&tpSg+OdeLe6EZV$J^Gk*Gp7)TZQtU4wD1qYmkt@5I*vVOlg>Cf zh02`WwOS|0oy|FHyvo0hASwEEO{0DNH1+ID3H~82knl3lBcwCrO8f?ZWL3EP?+XO; zI@g5W)pK|0t}H6a_W%<&fbUIaSD&prCb6RmxbCQO0+&P%u9%zMo$A?U>}b1WdYmVM zg?FaXP=zjv!Y9#ZeDPPc-yu=1vFPe3UJ>$nGj_vZD()wFqjpH_`Pg02H8qa(!l&y5 z!y7*gDgB{V?%e5L-HI{FN#W7?O(J}6pf`Zr(}U7p{+I2G0xt7#;&+|kA^e7Y@~m2C z8(}ByrXl`_%XHlXAw3!-zK4VgWBQSMy6c@@xnVXt%f6JgWhi}Ws* zJKQ&#D%x!#rKvHC7t7Q{+1Rj*x><$V%&{*#^g`~&OlkgP#HO|10F+U+)lKCu(93fh zv-+WDj(!!WHK7G!*l7rbnnY}YtoyIh(Su%9xo%8OW6fx*gehh*K;XfEu;w~jnFW=I zZtU{Z*X^o>*f@26WMr@1q)IvgzPIS?J^m>!QWMzp2y)3Ir!e46Fu(W$xyCeh%fSA^ z`8E=@w}}KwiWyWC)Se}y+lJm5Mq8K;WNK=w8#~z<^i?ROr5Y3!@WGHt=c4uX0UVvK zD~m0BhWL%yG7jHll7_?Q8x4uOk?Yvf)=aa~XQNPpx`5iEzL%x(AZK2Fu6}#ui9yYg zxoUO2rApf9>M%b>Gu*SZJfqwOS=j?A5;F+RtgYkHW0jr@GZvk9SWx-_tXc3_gM)FK zHBL%(EV`!ly{b|*&!x|#UA1`h?O3KhZHV~y%br>a$ct61L@Fy!MWjcli3F0cFB?H9gu87Kq(!rK~$7R z#J^@CDH_loRu|&*3@Ak(yxt+JaK~lBc+f4Kv@|^$letqJ&#rDtt3KWjnjjGhT?>Tn z{&A_`bVg!iL&-K&wKA>6JgL~T*P!mmlUwbNm>4`$Res|k`e=S4hC(s%`5D=>0mj3F zSBsL@Oy2e}N!#Cs7GMJ_hf2+`2P4UO!SUK;qt3@Gd{Rl)O&QC+DeVoN zKEz^K_{Yq(1)~fk=0N76>4xfL)4)yE85K5l`_@9fX84?kOhHlBE;r9d+5H!J+0lHN zy$i(BC*ofx?-`Jgf8 z2FAYTk+eU?d{lC)T?MW{t_3qArY_k4i521ivX!;r%EH+${^=fw)&TDj$Jms`FDsK(>a-LMt+>TAI-hN|e!d;MKcmIPMI5y!BWo;! zy(GV~^q{m8s^Tqn#?w0vRY^;m?d$U_J0g=IFY*l+J&U(5udinna$;nXtZXGlg)Tj~ zA9Krd#?V4=vAIAHy^IDSPrvR;eap^24qM_$ zTaEEO@%C^Cl8el2rltFR6(he3v)I)2PV(JZ;qjCAQJw6Va-mGe>Wti;pdY~-NHIy9 zK1qr18lf?CBKO_b?WCtH#d{o@$pXB+0(+kzn}+JJ0~_-ONt@WHF!s8#>Wn1uh`8KZ zW@6DWV8i8CX>hZ?@m)D)Fv!tqbJB2;-)`UY%4SeA@u7~HOF_OEs=PdcKJHM~qE)SC ziXNnw1BR!EZ!&AqJbZz7#3su_xrSO&iW)p$@*p8pGtc!#Hzm%~7-^+&lR#>Vde;&- zcpYky+x#sL*q!vs4+5yPxIpMhC!{q}rg>vgr=aMdATw-U->t2&d#5W5{vhhx@^r;c z+y_F59?Sfetf(Dc#(bo$u29JgK5O;UKAXBBg4&tn(agTm{YP7NoaKz6@)RR)hGY2Y z8iTSt$~^;PN!?ssdU6~Q#rZPW&<{v&i*!-tciP>X_G60#rnG1EQ8lVtMXH;ZOYq(? z!?CGR!!h-(ixaUyUp0L3RsoJdv7#qybd`Hi3eb(Vs7mdQ`xVnivi@vo_OU%yN7LWCjW33>5ab2S}1Mg2WUwRUz&L<`(7Scf#A?^d%%c( zR8il{ZVBqn8^TDT!?rhBUGqE z!3$s*{Rxq!M7*6T1Gsdm`KTh`q!r=s=9w@tU2ku8h;y+})50aYxh8*R8Q+FN|=_}DY{dAvxYzLXA3`?#r>v6EledAp88$JcG#17SogzFOs+aR%&~_oq z1Fcr@HqZOsEXi?GR|CiXBb9OUFL%Fexct~%B#$Lw5}PkO{>E9hiP%4^^jcZ*=fjlD zpT=;dtoY4Sq#ZTxLR&)du!7ZVFrqF*SNQ~3a#dg%9*Ol3vE1W zJ_;su@<+`Nq+3YP%kO3xSFvqqsyV~0UFNlGE9+mZmE(PB3QBnzGxFJHUPL9b)?P(P zBeg>pyi`(#-F~)s@De)%B!21T_M+f&_SG=s-Zx6g*Nd20w=d&S(>B-}0A~>z`}u&I zH<)PS-h*4{AFg|me&fke^4ss<&pPav*&B^_RTt%GSaXvjTzBpBAVp14t_j(qA};=c z9H^etKiwX}lUGhxW_$_@Jl;DTRFoIlne#6(;9L5`YQU+q@6hroF+~`pjOYx$oRpD) z9TipQT369p8Shv5{h2mU1Qx!ZGy_O=8A?_`d_Uchq z2UfZYo4zdG`l>>rgsw*QYB61(-gCVHWLuJkY(oBg;3g-Yvy{IaaEb1}u7!M;oj#Af z6d-Sy4)m~3kzAF%9C?5`BvFX89s5{wH7uuvW!+o)mh0N( zhUE82dzGuo72*9AU%MQ&JA>3>e>SNr?E4a0?Z_%dQ5_j~Ec1Q70j$NA-vG9FyaDHc zUsvKx6%RQ%fG8=RON-Tovnz z(4Op6GM>>H|5UJ2AF&AhU^Ce7(FT5h-F!>#F|pmt1*$P)Sn7iFt=wU;B4dB2tubof z4_hWaM}-yv9v5WBEV$56M-L@b$cI|OFrB?@!9UokDdY~$Q@^e8Yq_F{GGAJrL+!3u zOy}6lyLZ=R9^MTYW*OiO#WtQ>1I!Bg37wzCK4|uDURLcU zm}^e!wWeb2k5$agUB;;x8+5-Qo>X)p-><|9%Z5z5RK;9pG32)I%MxhSpEgmKFI5v1 zHG#{dqvKz%`uA_A5sj~~-}MBB$@89_Rz&s*?qufoIdA8yzvJ*$M*d>FeDTccyJh~{ zwqpJblHRTTVa6KgbJ>r35wR;O)^YaHVo?1E{bfTx)Ffr{v4%~n|DH4Vx9oXy<*gH{ z-OrV!i7<;b&UYl4h@(nzSeZ22IXMD$og1C1KKOHa(UfX*+Bd<2E@J>$Z6%D=q&D65 zhUl+NEFaZOzdnY0QwnX3mBeypu6TY+iXLxx;edPuXXH85PU_!t`Xqo7E4&UWU0flU zrn&X&gUtQ@S{d-Ja9Qo98n1qg4ti-I$BMRea&p;q-bz8BZfa2D#SP#`_R&-6<^04q zktB3=^3-nPcg^+F?M$;Jl9y<_83ioTH3z8~H8frB@p2W<{F(Kv89iPfU{1#ZzkI=G zz&5GsQIRYt=={=Ugro0;&mjixS+%x7R4%YQ$d2ecA`15r6KT{6h1PfkpNY8)%!07y zW+yd2Eh+>zl8?Q`JoA0-*$h{{J!g17mHX51==!##;0-{APVGD==7AJF#rAf!-&u3n75-Ddw(e5Z8&*jRZ!7nL-P;${6SD|bZwe!va%tx^E0{hil)C@JwRyQ` z-P@|8OHHm zd=5LSV5;Cxe7D65ZQmwi{iqx<`b=BYDG@whRwS6zJX4C%Q*NL+iZssR3X(Ow0RYzt z&NyNw+t}uu`HZ7xzh@Hqxe(IVS@s3Thnv!aDzs}>CKgXo{LH$LOsxJ>oBd7A{+2ta zp3*lKCQVEd#~Pb1ds(Qo!)JTT(e6hdnksz@5gX|A3IDENo5iS)(|nFvFixuAFMRXR zA+vIJvszmG@`TL_a;kQ4I$w9tn)%bv953GC_zwNz?w+pU`fSRyp_;ZF245>%e`vJ) zQ|r+45`~d$$%a;ftyCY;n&9F;Vx8ta8#A9yS+EA(mE*a% zU}#uAc@uH&86GuoSK=jRo2cC09+6Qs`7GxJql}7U##UPM{*uOi%KgAh&-eXf5 zj+n9a`M`1gX4n1Ni0lE77siV*1f8-}{cR z&cfWX)R4H(2!t>DybL!7+1#8lLFgPIGGjYq)rfqt-Z%=?Qr{5oY4YX(SB+?YMe^4`Osq1#SRE3n$9<-#^PsDSYp^&J3A< zNE1+c1L$;Zym;9aQr?&s{D0r;!+K`K6SH=@)5D%JZoKkn{_?(9Dg`DUn|kXDQBM*& zd>_)5EZ!iAok-lG7G6h3MX3Ye@;87~#;fjL`hbY*8$ehwIjPeSj8rTwEiDHwBwxfK z|3PPdbuco9$cO0<#1vbn2*x-aQxAl>%R^(Q$`{&tLHf33x*s>Cq6i4D3; zuMD$RI$B*Tx`hno*+>!irJ?A7l0fhJ^)Dc%06x@Sf8Je8v( zhZX{;sHYP5{8nisqpWBVuR)cp-xft77pWPhF@}fK_Ee&}rtS|-x8dB0!B)3_w$_5`NiHcA9II>>Pco3w^f46pOIt8Bu^eoSe zoQ0o9*PyE()E>+snnv6@B!D240U!LMF+?@! zRprsQ8C3E2S^ZmIj_oL&iYT4Kwu#JQg;5pBloK5^`g@l##L1c{wV?a{ZxTtnpc92X zLp(qluSP_{q?t3*Pn~DZd_iS!o4{2nvC0~>+uhy^P@GnoTE+Ayn1!#e9$6CIryQg= zSyDy|DJlME7PfeHHXuknf{O)5{L0EIOZ+NJECQs|=d4mOr0=#t_tUCE!fnom1t60= z^lm~Q%lb<=$$-iU={nwI-d=e?F6D$^=`*qjR_+Sp1OR>RY8#TxQ_r{dGsPAly5TR9?x8$ z=?P|2gpx5~nn9Pzj<$}Vl{Y;m6`Da8y7y(f~q zlMfpjALd~uCJeqrTNoRg-%nC|cMI80=hFR-fX!#thF5(^xZB5ENlW}KI~Vs$KyPLI z7YPEHnC&`?PhCt8%=OvWnS(pFqxmWiBJ0epK&ECZr}G8Z^&u-ft?~JniOhbrnhIo} ze>`8B=I4vCPD7aym!Ul=3MzUXoHIq%V4Wq!ktFRbM3+v=emeytJa__@ zC1&Vu+09IUVE;9g1Jk(QNM%GPAo}&Zo@<)C0)A?E)F85EXPj2C9ixc_ZDy2El4aMK zAJvreEPa8eFss5^7c##$tD;c?f^xB8Hm$es_AfHHYJ}RI9;q6?w-prfkderG$&pD+3BPXV7zr0UBo&Ms)9TitBji!eSoysV|s{29EpxYU;{fN83!O z^e(MtLe#h9A`{heUvaoh8^r&tyR=yv%?S78t$?B`UG=Pc6RpLSG;?QkD$!8@25u~N z)9D8#CBef01#3Rd!UQ7LL%cL^0U?xJShAUyC8OO~+v z5)fgRcK3dr!?zwEe#!{@>A6I9U~fIxHIpkpE{~N(|45>y__MdNs;%mZHw`YRpZ9g^ z`av^jVybjN%!)8jYD+d*fIevj7qS96YYHC;6RXw-iBGQynagI2rI*Ze-Dz(c^=?Uz ziUi;}iC2Y=wqlW#@;}FE^F0hO$fm8b<0@pgID^-{`AuK7T*blCT~-zEZ+X(Yg5%Cs zx^fWtQV-}n*CgBJKg6!!;MQPKcfU?Z4w{$d~ZHW$OcRE1`~UOp|S-9 z-}Hr^xzeg*>}(Y$R2K=~_WA#OryeNq>nFAS@mTGzSUQlik;npAul>HlF3#bd36gzG%%>H%UkZksz4AFc#1~9 zk)}_XK&K_Ls4Gq<(kk(o>j)mWif%dS(JRK~v+lekyj^wrY|;7IDw#;MR+r_g$+L># z3BCO*-(sD7h7g&j5e)$WMyAC_&MJ5!FTf1x)rd7 z1WDLe$8m|e=bCL3z;W!Jbk7>p@U6L1i_tVGsKT1jDxvxGjAc-b&U(xLSl} z;A9pmxeaa)4t-2|LU9ucg!qb=eQN4$q(XKbHBwe$^Hiz~hmwuxbTn>xmwkNt4&O&O zzm<1MDe}=baY(~k3wJ#G}_g>Uf$?uM01K_pz^-kn;`lgEk_tRicFohD7ZODWf z(pkL^aMjR+x9QFG!fS<|WzKv&MTeEy zm4$C+?nZ8M^&~lNRhL0A^1g!qaG3tv&;K5;CC-Yrakg5Hg`9*S6sA2N<9^@_z;p4b z{z+*ye+L)5eZBr~!CQ*bbF<*7V|8`q7sVTn7gjUO%>QH%Py0WK()z6bW7BtObx5dw zM;!Fpy$ml1SL-+yEA3ZU86DH-Iyq8^9@^Y0-vgZvjZrg8}Gi{BS~f<-JQC@pckx zx~Cq?P=2o&Tp5f`D2*m936EA*b>fx(o)Q|%w)B9mw6CBf^Z@Jq_{e4Z4juXp$Ui0*(U2&j6l9{=XG*TdFZ5(y)nZrcB+b|nE#UBj2$mJv zhCFTwUF_=>raMy2Pt*@$aS7Xk5B@=(J5-IRj4&2*YhQ6lNV-&eSd1AMqulXE#bjaq zqrlV;>yU|YnogYiz#>=o%W_`!j$=0DI!&}AXkuHe?C%S3dRjwU8l^f_g|$w&Y>J= zL_2{s9`^_aCbG7wGN&1}7$(X7bO}zUG7=x-d7j%6{eQ9dok49Z+q&4^&VUUzIhZ7o z!60(nWJEMM2{73L1c+p^6FFxgqD{^j0V3EY=PUsd!DJA@CYoqJ&VBdP+2_^$_imkc ztKOMX)wHI1X1b@>^sHX%Ti+7=YBUmi9C<&m-!-EY91nY_yXQ>jtvhS^&3$92qO@MZ zH`drlwZaRe#s)167G~X?Q*lckX!#U)zj#;%r(tfD_v@j^$U+wk`omfBw)Mr$K@lYu z!ON5(2ljgJ2+F&9CborpjypDbhTdw)qC#yR5o~F?0~+rkc7WPhezI1rcK1i&r`bRJD{M;vxYsHL~Q^k1=s2;lMJc2(yZhy7$)*N4|D4v z<=(jAVC5HdetIFsO2v7Q!?({}vyM%svqB92W4#{i2ywV?ZfGmY0=nVzCv@ZS7TZVy z-}v0&qs{`OIb6#>sR_$dmI7N44KVTvD66X%^&*MbDF zMpsN`I}Xq0V64&mCFc!3(!pGH<^6UbVC1=>{D^$>AWx-a9JnmbjI={4oDe*~DqxMs z?K7(x5p%x0L*e$WYh9u1Ax$}bPYZo%p8&$quG5Jw%8rz6z)48W&V@HaJqj@mq~Ekh z%qi@G<_bH(plLvbcUgpmP~EOkBilC2OCi)k)XYp36IoTpUtVsMV21LDdf&~L$$W!@lO;KbS5eRQe8G!nu7afZye_)E>;X<}UPhedmyK|PIK!<;lM+X) zT7O!6g;NFFXaWVY_G$RAwoCsih`C1(2!c=TG%eNspqzBx4N%uu@)k!~0eZf5>#}sb zqu_8KSRX$sUp6olY(RwpRDpAFb+4Y8D4L?Rey>7mI26kpr@DZtK?+*1m+jlXVnVh6 zL^%4s7b-^#2dV%~up@;bPp6WPV_g0enSh$AV!_*Q=QxN#OI6VtPX42>pP-6)6eJzF z>ud~97VrjdCq%wKpUNPdNY%j)AreO|DZf`wY)EL zU*>WmG+eOe_Hx??`%%GPxqYQ8TC>uphQpXDS(O6_7zVEJ$=DuG^yUlafI9+k^R@~h zM)Ze7o3X8OclFFz3V=R$53s*-k1IwnFuHN3s-`TpzJ`)U5SNiY%c9XVUKjqtlEO4Te*I=OR$BGFK&`U0kG5S2B5D%y;sb)4J;Ne`PphV!GfJYH z89Sgx?I@8NMw0<&?Lo;FxMX#}{R}7G+jN z!(VigqKY<{55>NLlJ9)l^ixLh8q^EUpxfiH;LtGN7mfZ3&S`ucQ4O8kv)CG*n0qp{ zWLF(SDP*h-DuCCDJCYpuYJ*%s-r=fMqj{y6VAD0@^BtP_CjQTNSoaD6`Nk7ggD`l( z^HoXeS1Gg_zQld8MP^=gf)A%|X(uzV&6atZa3hte!iW3LkBOHBif!hnFd|wh>6PoN zq@!&u34o@2j4qS>yBYKNW^(KRg>(wPV2&-)tA=lLCWfSV^*LiMTlrJk@W8Gc;9iqp`>Pi_XXS!T5 z*NKGeG`T)UNEXyzJir^#nobn400tTH7~g?Z2sX%Q$`dbYgs1vg+EnU;X#*{i9tEJbx1vRP8=HQuPx4{$t?v0rBS%3WY}5EvE~WD{=-+ z|4YHF%MbjAAuk?o{*5U7boE+8y>@xQeiL~r2NB;|N&5BhH_=w()%Xnr`ma%k%Qybn zPWg{p5=n^Uw4r1VXx{AXk^b1k1)W@*Tl=mdgLO@}hO=X)CSJRAl~0fJ&Gcs1hByg` zBr-KyPbwMRm>q!Wm?e=piAH>Yaj{RR3LnRCv8?(U)Je#IAP*n(foNOTlQ^|NCW3^X z{8HfLpf{>H4501(ur$MZC_-SletRo&!$EWc7e5*4Gd7vl-MKd#laKP!`kJD8B0ua* z7w%XVCyw4QmsH#MR?v~WYVt}>uqdLNZC0l|5y}eA5lA!B%a^x@2HT3oa#xNrAQGoW z@>6{65`g0`UYe-ri}yZgmzE-j^jb?DI)lBfb;vNxzebrRz)Y=K&-~jmv$LnQNAhxu zs=J*YG8ZG2EHG9UhV;eNyq3*Y*_yH*w6^FK?|x|`9@YV{)Bt^OQGU;Bk(s3rI=e{M zWk0y&BR8Yfy*U${Qgi*go1`{;?gg#cQ`@Mm9PjxL1o);~2_%ZvDp@yv3YBRstCv@% zwThuM;hX#0|9 zjRa0huG8V^fqUjCjo+@PZ>3ySkT`=TJ~ced*F+f0_IxED^WNFIHMvy>mYWQ{ zGn6*^L{577v$u0wO@#H3gDK;0A``jtJ}SOEw&oA<^>fnzEEsm~lei~v9=^?~iJCiZ zWcW$%Ru*3eRegnBc=O}&cC6cCEVH99AnLLvHGCAwT!)T7E08(xFB_>sbeP7?)1EA6 zM0)L$#Oh7ioC;@AvPUnd)aQ8F?hhxfO$}Udc>OTf2e!FXLi>trw|U#RG|Fy2Z=~Va z?Fi(*CbS|Vr|}O{OU0WSHZ^PMG0Lm<4Hu<|H-qJ)@Ml*-qI(55OP-y$9PzKT_?XviwVo7(czZdsr zT0DAM-U3=W7!i;qey!h&b zRx-eLr`i3yhoK6YSG*Z1B1TWPP4&K8`)bk&*!0vS;vUz4@A|}yGhB3dX%1&@!JeW z*7eEg#h=}ao3nK}&p@+NTzh@*tiu0ngcl@Ej1QJHXo%3Wl_mOJ^$^rF`lW`Y!bcOx z?(-UfqjpxDh2dpSBzf!wX@ejK%2R#Atx#Y1Gqsg=*e7y2 z-w$T$i#Mz31%w)BE~P9&OUr903sQUSD*l2#5HzG7AC;nM ztqKwFkjvw33J(PGBP z%0L;m9g!Jex*O*kJNH8eY^tqo(vH%q5$vT}nZ^g~8i9o*=KYQNtxIgF4K&MC&(bg! zyj^4?c~ZqtQd2GiHMv39KmB z8U|+n^FI#;ozieDe_V%HLVZ|j`!x=AY5Z_&=yh{1?Afv5k^OQ732pdPhg~~ZkbQd8 zx|Mg?Gp+qCmW<1)2inpqlL0`%Nm#37rU6yfxUXkXtB&!@M*KDT^TIzlYG%S?%Xma^ z@Qc`(Tdq0ZjC-`-W7}-t6~+iM9EWB`9Sz-N`LNEn)^30x2Dl36hDWWzk zKUeCtz#Db=wyeRn-)>;SH|^C)xbdjr*leAj0T%=~@AYCEwjygJ3}dk3`P9fIm|V~a zO@)NxclZ?FHk`FmpXbGd^ma}djB|O9@JkS@25Z)KIY$uuC23P>ofA{Pah64-KqKF) z(FNB=W`kL1$R;d9GravKUq1gzrXB(dGwEYlh3ZpHdZ|vtA;#$$6GV~piqI{(lAbB1rm+_;9hM57+6`{Thm&iyk9Up8CvZLTTEB z3-PIL>)euZ8E-r{xPwg*OF1B%cfmwP)Q!Y1@95R^D=WLIBLdY9RYAI`^X~fDQ2C+X zM1hP=dPrpg5-}{lsxaNu6+yP(rRIigM9Ym$)$|AS#iyrO@V?*ZPf>Jg&PSK%vbOqJ z@h!Cwa0@ID>pH6mgH@%uvs}qKS^@^IY-Cib#cL?EW7dw(a?#edTO`W}e9># zm{e`2RE=KSSqcwBkwYU9TT#ojHM{;N2B^5+8g;I>2aIBxJvu1duu@Aq>GNNQKHk$c z^KvY9m-lG`y2&L%w^nQCYpQgk@WL!911J(Tknn4AK|=mS@b+EDm-xHEBqt+XJx+#u z{M(lo&dL~Psa^VkGTVN|ORZU~LheFxb>yNViU8~ zq0o}e2^owDH)ZQIs6|lH8=ry=!qT!frYc}F^6=9trlR^;T4W%swP}~F@;fOiY0XWv zi&wuJT?p056orI=72(TTU8U(9lp+bG#=)10mnkR9MM% zS*RbhJT(XjuHf2UYx*E>Y5#|5nl8*QmWGZ;;>wp3((b!fB@iyWB$|1?08{CukZDYS4!=iwyFmV;o(%(ag$?*1c|LC85LDaY1>Y zQ|*S|MDg&r5z0J)rrrs|mNJ86XS>8C#IlI_zK*=`rv@`29g8R@4SehY?9ov4GMmCS z=Y4Na>ICezrp!tN3H--?_m%yJui6xqlXmg5!?j4LS2C-B1Y(cT3nO~FLGio9tcHNu zZQ@S5#A@F>FG0Hk6eR87c8;r6s(M!zpSdKs0) z3cF@Q8fS@SJ7jn^V@V2I0(p^nTdT}|OoH1_Id0>1A1VAmxG}1AEhDeeD7BKm<@fPcM-UUT8eP0P4{in$O5C4P(S?IhmJ&#;cNOb$56; z5)aOIY)_hR)qFF0KKaMj+IcP;q1Ad>Kyj6JW?Jyu&R-H6gKf($%h~GdcnV=L81Y>O zkjRQ+mI3)vcYchb`7o$*U7}q%QTX`m^ek--vqu#*?HCnJ6KQ&EjX5a)4P7L{9}V^HI)2hw{oZ5elBLvb zon_zde9RO*`@sRyG?o^h|C6#{nvP!z0qlT|sG2j0$7;Uso<2719;`rmy~s3)dWDM9 zjIy%gqWL0eFR;#q5mDSYA9#bE$eEpFnj#c%iPO7LPUh8J$_)P|5^bj1(C~3(dbRj} z9QeyZ?7ye@&#Te@w~m$kfCk@#{WmKm9YML79M|=;lXbL=B8L>Ro>m)nw_MwsgtrMaH;fPkB!02<8|% zr6XY+sdJ@stTgWc4T$=DS@N2q7r8&5rX(PmtXGI`T!TWcH!2pEeKInCMWsEm2X_=A zmS;Wn4Ub5>bYABZu89+_#-Zfv!Xu^Y2qEP8duboKp zZrhhWHmA+1E+#gv)<>~p$%V~7IRRQtT$P+89#_MAqw{1#=cUX#JvGGI#KFfd&!SeE z3OteO87y~%!Db31XHn2XDuK-gcy9GhK@CHw0W+)wBQ&TgOiL#RR3u{YCB5~2ZB&4j zr(<6#>ogx6{YxQMZ(f>#%{~`MUmFH+PT&~o%g|Mg9=fU{=Xh>qs2Fz>MQ?gaMyD=d zB^NuST7v{%J=9rw9y)7R?;%r4C$DR0svsaYyJ>OUtiyO zm%TD1Y?H|Ba0*wxqc(S3_*v501D*0|scC5@sm-O)i?irDMzP3j6MZ#Zf!#mcSb4H6 zPo5~Rd;L>oBUepSWmyHYCAhOC_(TAfS@zvmW&gZ+JC0Cc6)`L75#<#9khT$8Wa2pe ztaG2>1e^_&9zMy)GB>ByrS*OG=Qh+cemN+_Hh2F%pMpzt(EEe49tr?j&0q30E3++b zH5c{dP`|@m*D!TzOAuCIA3{!|n5PyV!){FPT00bK9>-jmV|9WZ+>r{F7#u<;!FsY_ zw)tZCaNTReX_DH6eF|9ul4xw?U|}|nnkMK`sI{?YWbrsqmNt&j{;T064{TRU(j8U- z5Pk5}XZ&SXtfI0r9Yy>V9LZvx?%QGGjb3~hQt8H{a;HkDnTqODWr^rSc9C-uO>puS zL7QcDEqF~e{d@RlulTxEi?LmsQy^J{G>bBK=yKZNLEnJh=`TqgjiW@}^L1VNiZB{i zvZ~GKEZyd^&A8qbabuzmm-uJP+YUdCqTV#Lf^2mJi5=($oeXqRY>tq^^7D@Jgo6jg zR0e~AAB3Nuf1K$}qS30&6Bb&kcY-O~hp-LZY4ekMReZopmw{P*dTi7X=e#xOjb3jD zK3c2@NsF+Ix9i$5la}JQ$u%2P6@_sfsl|PP8ns1<{U5VLGK3S- zpA10$))A$5ltR=3c^x4SBn6l|!w2EZT~Q46b&Nuwye#4VIq>c%k3Xz?8EZf!)U#LwkjCYr;x!eg?b_;4DDxAo5KNY znEAK*)Zknb6Mbuain@NgU7kXPDtkGOw(cjHgL48rwdED)Dx@CV@(!-FN3wdy$vIa* zqTN$v?3Eu+pL>S4Q1N%BVbbagCukQQwPPYJAazB6P2JsyS z+JaBsP8yu*cFisZ^5M!sg5vD2Cx%&xg0qqc~Xf$<84x=;G zn8@b^rjQ|NXsDxfoGu?xr5~pX2VZN6(eHI_wR3y6O6}WI5P&BWALXMj@^kk&QkTOA z@#}yuHy_1qOT!{e_*N*UXJkMw+oav@)6cp#Ih`}3&vEe6!7Q_zLIu@_F+wZlC6lmj zR7eFdKYzgOFJHI+rs6f;Rw}^880j*_^$%%^2m~>)gDyHCe?S^?+gg3^jqgAIvPp5CYkL?&Oh(TD|YYZPz$hcU~8uF zVEue6X5A!lvRnqoXm^6`92QG7a}`?F$H!DW;8T+y%ac#EwarH+oW{iy3w-;`?-Ilu zZ&lTlJsoG7k}pJapj*24La`o|a}X&V4dwPyy4o7C11e#`RYIYq%x$31z{?f)2P*!7 z1TpA9C47FNEr3&}QX{fk2wxa$>uNH^nB z6C}A?a4ls}kQ&~r0r1MyH!(3+P)7OIf8<&CZyNRg+soW8oA>qbQLY-?yZ9u^YoKjl zfRIr$C}{SZzpq(@H|cek8!}Z#>q!S)-O!Vi>?y?ci3N^DDU{gDp94#hn zv-a)u>uSV+%I$mLY)xG@V#4;MJ?Jm{bDHhBt45vd&I>9Hzy)gz-|(^yvPAQwG1F1J zcxarWkdE&f1T5$FClS$KJu}T6GrN`xT%XbRK4b# z(SHFaVz_2LR=32-ZpIUw7MGI0uhP89i6o^lcxJtwy> z*n_@SZ(W6f;p0?#w}dK?QFl92=;JbT#Rp=EKRX*RvS1&XvkZ8NjXM1tk0j-#9Yd`8cVdN;2a%hQ?ksii3C>ICYGVBQfkh74j-fY zxxij+u;?X^6aX7xtf^c|{lgw3_a?k>O~(mw?E<@z6fNzeGGEMP2o>C`foO|Vu6-Pe zskKru4k6>5B|nc-SnQ0|E-B^KSAnjN7z2toMnP(v8jel^58Mw``Z_8|YY;&8vEXp9z5ypvbthB>R* zff0+JMohSCOZAPeL7pDF;(eT>l+O-okXR5$YnN&&Co;(^Gz%c9$3xZVVE3;(Pp*57 zd53(w9vgd#!Ug8Z3R2w4Etq~-jnr3-T&0M}D;=sIh(hUhU4is!)uqY?+LNlR}R9{{< z`bXrbn(HvP^;OS9!GVdJK@r}@A7Z6ec0`XAQ;0?L6g(srubUdrP{ zcTmM*1EZW2Gaw$r%Kgp3J?)AVaL+DSY1z`zc{YnU8+>{mW2C6f|4As}ip<^;_#p@`m{vZuMMvSb<1jqgUJDOcVd`xIVz^*nUG1JERu%zgd$*wTBh_0oExErG zg7oYewUXS&5G9rOVLE!XaszqBvsg38mf&vn4L zbAsrEZ}W5fV)ATQJ`vMj>-@EO|L()T$Kl_y^zV22-}BPH=hlCJVR=7vgtn^z*DXz@tyTp0ISqbLSF+ItwpUe>lE)!r z6d@@t26rQ5m<)r}HAnqNEBMHU#t1+d^#aA~u|IS4ae*AYB@IU%+ zGwZ*=`Rs4S8nHrSz)JL|N*jQ-_ zXHrqu!a5bSe!7(H=6(H*nysZz0}9S5zepbR#jeO4z1nMGt|F1F8Dj*?Y%$f-Sw;NduX0{mJ{D`s6{M3j-Cp`qnDVkbL1!*6 zito5s>0UN>vjYb%CMDzN8%IW}V?Mjq#!6R%s)pFR5JPcNu(K;K$xjDd#7z{M*f6K2 zskNy(NZ1a*pl{-xdg7iZ_m1N15%b-Tzln6qe({)nJ{yC%5(;ackml^gxrq8H*N`$C zyAnSUK9pFw`+4{F+7bg?#s}%7>gOjwiB54D7z#db0~g_T;k}>rjIyM|+e!1&QNbetMhg|1 z1K5b}6NaghPmMt_j2U}R(CRKbUhOmwxu?vqrKOsLW4<1VB3s+!YH$P2>?Mt`RMECz zG3K6c18#aCMk%o;HbR86ccCy0IE;R++^CR4BE|i~BbX4l(TR$f#Ww=;GC*&xy-QCb zof~U;BG)0)*}WfaX@nmhNRIY8Sw?_W%x*+(-U*MLlO*0NFW*qxH|hXB)2?WH;nMP@ zNhkSo=08jBr8((PumC;^iSQ;NG-B;y-zUOQMB9lq086T*-YP&nx??tM)Mb5DbmatFF zme`S*>@y{UA ze{{NH^92+2Fxz(dD8wjYBACb*x$*`h^CPZfZ=he85s7WKq%g6kvEf2+_SNjv77=0K zu1u|~X0(pZ3+6JG(8PiAw7~=iWBp~)l`^+DYztmqy=~NSo|g{6JjOs5V6!Ww)o~p( zu3q3ytKq&(7u-cKE8jmg{Z&c0HNdB-U7V5JV0U{0z}c*0Vyas}M&26Zml8`XWc1jK zHIjF}<+$=$z2!uMUlld>2suyTZ4hf8u^YlQl@w--+)r#LY8)>fpfc=498i3*S)K8& zziyo>&iQ(F&)S`Re}wB<;jee=o2wtp=-&QjM_Ix0sS)q6Vk`_K};i8-f~`v-8=> z*NRg;V*Gwz_X%%>!I8?*j}>!HI)u#@&79Q5v)WdWIjikTTVO}l#{~zSyUgXiwXgc* z8@!v2bIs{~o*os(<57FYJz2sN_Hf!$iUSkJ`35#GX3uHV^WKf%Yp+UKyGbO7nLUGm|?t{DeqZFE1Xy=WdV%VNh{hqs33($H_zE-zG;?!*a-CC%L zVgz6ko{EQGCol9%k)e19gV$y6^9P#h!egm~5BokPUvTRwHHfT;q%}N@;Z)RFkl3N5 z?1?{kGVS+t_Gu!Rgf3db>PY;ry2p*F92pV_r=g*TwUN=Eu{+I^8~yh59B`YDb3q!- zx|Ddbm0Fzs%C!sT+U+3BtC$Glo0-0=Hu{I}8&%7@&9cPQ7XC^V&b4!R3-ggdcMikU zY9?K4UmmkT5qwFh9zRYiu(()}nqQ+bbouvRvwYk}oSJxhYwoVuYZDqS}C|Y16BqoI4oRo=1KN2+^If@X9aPtNN8LE&*OKd-+e2?iI)O6pS8dn+xZgYpAHBe&Dlknc z7sf;J(~1aX?c4Ea0WnV-$)!&1oxwfk`dIdQRH0G!H?aln6x%xQ0#HP#$kvm%RZW z8j#;esLo`k3m+c&GSfIdqZqbTeNJWf#ae#(`HD8q3~xNOGBqswbhl!uS>l#^E7_5Q zYSx$0();i7e?&>%c}@u8eBF3|az&OMEuQE!>q}}CYy;n2a6=#X$FynDrH~!U&!Gx} zmzxjt9OoA`e-kP6surpKCZeHeVK+2({4j1T($xK2)87)|4E0Rf&h~QW_b3ZlfxXa< z9opsz9iFKiR7^~AFi}#S98iC;{OMz;`teJ@VH&xv4_`*SSRd}*NnRXWNW0|uxP06f zvC>6@^&sdm;n(Y;Gr!>h38J`RpbJ&5R-9H6BlWr3aYegt=M|=ldq_s(9vz+0`q;9* zGyNT}JYD)ScU(L1g&Lk#GQTsulqWHEq$l^wl2-7_KA%$s*GJ>|-tl+iU(3X9;b?;{ z!sdlzof!OcK{Tl?5}o(E(`V`r_94IyNLCHVRuV?wGI z;Q&l{fyiLbcY4_tE-cgxvkerArv0VU&+}jl4R(#_B@YoE;q+P z^5*k%&bP!8TYoI4v)_i$z)8AR_LsG)G3Z~;JBBE~^LUuY&U;%Pbqj-0K|zmd;|;1Q zG9Jk|lY{p=DS{zQ$@!g>5(*MfAFj>i^h^+R6@h=~+4r_PI*_xJdD?Q_V9fp#>7O-2 z4kjj3HpUt>Fo~h2Aq#v%ys?o)1{Wj<_iQgLri~&?vR;~_Rdq-DeyrQ5Ycbakn5-Ad z#=gm4`aT@>Tg z9KGXFGpxMGYFaq0v?ot}B?RhUcN&K`;aXeuB^gnA_6(^9jIywX`*SCz$ZS9S*p6-~ z?)|m^M5p2zYffm!krNqXId$GCTA!9c+RLr1yRGf4X|dcUNw1{gMc+kO7!jma)?Dm}hPImZpjC9B+rf{T%J&-(L6e>^y;&l==&d4xbdQzR7-XbK(?YV@;tX_{HZI(`c zT=e(rl+AqFI)aH96eFQ|&H_R+T2LerwdW*MRayy&mMSqhIy#DUIK_6ZP=zkUayc*N zc^KG=R=YFAq^?d7PO=rEtS29LpO~AbHEX;v{Uje>#D|VwuvL#Ks$C_u=LAtX=GFxMP=8L?m4r_Vnmd zdAUb8@W`}9>>$4<#-)=aS38}yGOj(_g~2Ci_KM=1_H$@f$k))Jq#6OoSb(59I-RHG z5vIiu_P&mb({loJZx*0?K#ic%vVH!EP=S!BG+)Du73#0Z)DMKUYD|X^Tppsye-=GF zGICk1@w!U{0oxqbs@Tx;ow|$T!mL-ty|y2dY(1z9gQq|sGhZtqNcE}^pcEBA&Fn7o z*qG6;o$I`!NmbXeR-?a(Qki}e%|~1(+xEI9d$~r49CQiy6Ce$YC3ACc_J}Rru3xr> z{WN+;ho3*-^C=-KzL=-nGc9FdxXo!DF2P8=+Ud#o_OA1{8tWlX4SR;@)8W=sdsT(( z!>e}z#Md0iRvmAy*=fw>Hr+_8ZnWxOh@7fSwCeqg_%_&i`*y>IPu9`vt%dIuzUIFK zX8kw5zkYJO*mB;BZ)x<$WDPcWyDV?G?LM*_i(YEdqN}V)FXy+k78`jO_M&#jPfDBQ zQ)!Pt`m68#K~DRGVknDTS*6`pqV1qp6Wl~0(N^Ys!UesI0sd7DxGvwQ2ujFK(V|3y zp5y2$HlTs=8zyBQ^wYQxL=kr;r3Ui8z=<`R;Vs+`(9!->?*QvadSw~)t%6gV(fAE#)LWc(W737Up(t8-&J)4o6#T&d1clv$AH zc1=+LX7M~WBNV}Tlk_IcAMy@zwuMWuGi8r7k3MSkx-K~>ur4>280tQR1^9YFmZoOn^DW(IBG zxayGQ$XLO+y3GdLW5xD@my&E;olR@M_DTO*ZC-OpuWYeH+<(~6v$@#mef#1#uBdW{ z@pNe!>w;3-*=hV(00OsPBjipYnc>xe9)Xv`+KYC^e*s9katTLT(8? z^E7j>4Ui>c$FFNjQ;<^!OyLVBQzfTHf86i*CHKX)k_8o-f;F?T-7}A==0y0`R!6&v z8Qi%WI^skY7NMimU*^25|0T!C%-6$v6=;&=vlgw2jZ=%z(I5JAR#Z7m%jkX^fa<_2 zR^S$JQj!30&IoPb>kO*Ytt}lmy((SsZXF<49Dn9g0x|efdL=QfoN+%#rZ{3APW>pH zQJH5ti}y@;IrCYmS92#iEUcLK8?{Um&Qv|n$_GP^ApcBX+_xf$tifH^ZTRz36tPpzXAy`#JzYe}x*v^A#I zqhz?B=cu1IJtTNTix0R2hSWJecw&_nydM-<HYY1wx173j74w9bteG?FZZ2C2j)Z-~ zX6oH8rqF>loz^x#!=-2H;x+vTte`0s!(0`~uw5eYP%7eq7Eyl*Taq)5#iR<&6i+9y zWpXU1pGDKEhH+ao>%9Mcki8*PxVn}ny3yaSyVbjsy{X??p*uFSfw2p+fiEnmYe4W;AF4TP~qCM9uJ9>Pb)yS!k4YT|g~6cpR{p0y*Vl;4uFjmdcNR+H#m0Bs#` z_JaMvyQaZ#y}DO53~)=t!r*Ai2jRR=9|wBryDaJ)gAer^8MeyhxVNMg`~4?hobCE0 z!MMs7W2MJi3VYR$)72H#OG616!d#3Fs9HxHI^w?1u;QX;S53@23h=6ngsymjV(Prw zui%gW$1M9Fe+A5>)txak=})*Xo{u!6JOrq z6|Zei-^>ZsR(fZ7lMU}wMmzB8i9^pJg)HU`LFACM+vqE05Ay9vc2U6OPZ5w=nzzhm z;@;It?^j-^zqW^PRjrTwp1Eg1J07EhjwU}gy~tzhI~^QLXWNi5Hmn*GsO!VD&6;PK z6pjtMr(ewOsmLWhU9w3dWu}#kP0xDOVr>e<$2Uk4Kw*2~E`KoppsEss^*6aqo!v4~ zPV1Q&IU$~-V|Zgfzk$31AlbeO9|_uZuSM@vlr<+h!!PcM)Qr;G6$|T^gz4Rp0(P?d z5N{DLRpmSAN~6SH_w%p;Qz53Ahc^bSdW&Xgmrra+!BIvjlgb%3WIQv^hr&wsw#qAN zE|QhgBDYo6j7)k$G8Hx+5}dq6bUvM%WsVg&9}rMI4CrH^&W)m{^LAP7Ri(`{7|{oz zOC{`rx6=0(r2Q{rHH=?-!^gh6AvrS7rHNL2*YoOk!scP2)G$}6i$Qgm;3QNSyoIqGzbkKf|u%5c|68AQ>ftLf>1UQmkpuK!6H^ zwTac))6Camt^M0+fpyT9dh3)UtkTu2iVUu%Z*tYyp{U5yHl05=DT+RiEd9z`CE3Qf zvLs9bG!T2~H(!%&BSvXln61KY<~zjqlhrPaRtOz72kWY+1vll$$P^g8=X)l4=UEqm zyd}xViq4Fq2bAfm@3h%+m!@d29uML1e|K}hhhvO&5})xtMeM-bFs4|K&AInmU4X5-oY`8okou& zb4{2Ec6S*{Pyx9x-cPkjIWP5T%vOWz!O(l`uvD-*R2|B~B1i5^cKd)bDagfHJq*T* zYHau3uM2l1@kKamyp3NHWibe12MaFYHkDtwP20R`3a_ZJLS=a?p273#Co9pR81LTH z90Q~78iE$_4?Ze5US>39UnR59P@N&n5HViTpqSp8xJCN&iQ0)=*Jt z`*r5r)Z5oY|5?{ejfVc^eol;b(gr_I>#O;YZveM$=lF z^O11-KONy`FTJ%TIBU+3DX?^mQ*I#pNkx`AYfl!jBd)@*nU1PrC@n`M*?AquF;C&_ z*1M1H`9xi_&}n*Zur16MLJgD)8i~cXF1J2^=rq5h_f_=%nIQZAvlN3CFbc){M?1lk z>;1ZbC@Xy)l1xqZAp&zC5xnw{{ReG7XZ1Q(o2$Y=I!>=-Y{jc1TWpbzUSmaTYX5G{ zKH{Zg=FN49jD|_{cP6Wb(dItp_TJ{o)mIs=Khvb-F{gz+SNJ)Wu@UjCAgbj={mB-IH0jMH%1i0SI>z|-7rc!!TyZ;M3b@4^E~wu` zx1^|B2PRhd-Eun1D#Shjn0qp(sNKivkv=ip;KanB>wrtyY9UTS_POLq+|zVDy?uc^ zxH@D*WT~l^P<}z&Yb9-$XzrNVh%IBUec;%Xu$Tj9z1fl{u1oj^aMy|hw4l`aa1>^^1m5>xaaC4jvKF$@vaw@|5}AP3?Wa2v`5$3G)YQypgD*)w~Oc-(mt+H1jfP^mu zd~V~fmONU1Z`0 zol6yeQ}4Q*vW{yE`-86KWuygl@lVW#syC7%8BeF!Rn;eOl2!(DH{j?LLkC#PisrJ% zP+nVC;nenbudyZ0Y44haySCIXG<#wX!%iOCs9NMLVMiaVjK4Rb8(yQALZkZ5cuCp} zn&Ky>AkB#oy+;7{y$q*S2aLexlGnb378+z4k-Adb@NOU3kq_2|vZwD@d~x;mzK03X z$C?MRz2;f5F`8tW!+?W`U-NwG3}fz#=95RNyuZ%EF}y4}bpiKi6|THoI>(;haWc_~ za=!BAo4-_sl~|oL@_+LOLF^`=6^`z-LJeMtei*=W#-e^MS4%Y>$8}}(@;g&)#(LpW zId6dxU{NxKuCge(XTku|nO9w?Jbw89;_WS?+FaXp(at$5vn|l#4#hQ4g8OW7f)tk! zD3AaFf(I*7!#xDIiCYo~5`wnH-3d;MJ1vFc?cDj+*lVqC?X!QJ^XFvb$D2P%#(19h zx$pP7FA*^jLm4hhiLY>=u9()_8H>8!q^~?H1dV65p?HpcogC{+`|K9HqZX_}Ba**0 z_HxqP7z7uN%1ayY6rcLtIMlNjJKz53Rfgb$NnbF?ItThQ=g%!PmjqicTtyoaiH6HM z9xb9w^k{SgJ*BN3F$(u9=|&ZP5FUkPESJ(0+($`_NMpPpjv%2^6z^!wr{k(&WE?Xz zRmE4-#MY#&23OiFtTrm7Yn-6T=ofO+Zua@1n46ebBPRpXX7HM^H|?8r#k4s!7$Vz0 zKTmkC#4t-DzfzKa(azfb#oqWT-}&`;V`zpgh>Bl!TnheZ=7Cq0&5Kj02b|ulvLM&% zY=eWlc9W|Vr)xPovE5YbC{w26iG8%U?>?#K{UV}?f0W*e_}MBlAF6caw|$z@)SaQB zrI{~nbr|MquJ5;NL&BXUv4_xKj>e-x%$w~kNtI>J8+-2Jfq3Kni6q&fN1!1*Hgf{ee$)h^4g`mAx*&a9FV`=Xs@ThvKC!Q>9kHFpod znx&2js}d2{`_R^Ph*uDaZb+V5UULI1>Fk#qFS_&!upA3B{gU>`4M z;_SSawOw`}{m!%0@FlVM*$KD4`L_W`!Mduyf_*<<1`#3H{^^wH-8+x)Xlam|(l$wy zTSNV;la&UzS;wQ^bMd+wqoL@M_~HKOke}@a|J=IM`Z-Qa<)B4Zmhuip+4s zSF>|I^`PKw_q;-HjnXo!FvZH)tK`)nGlGuBL(6ry_>%sz@;U=~`J0vgT=o6IOC#?x zMP&xtTV2|QmJd*ei^OY4{W+56Wvyo3fFR_>QPqrtv?UPsCbK znl_ir4zhaTh99Uy*_WKx+vHu9S*z>xfT{O8PcWpfE`7txEn|+bBz@!@)9sr8-oAZ& z)zwZibUOH_qe*7=_rMb!WGPMI4#TUD>)^;aWgcbDYjMpvt?;`ID+|RO{dm)j1cfY1 zna-$vj;@cX$xZCI=|#Vw1T!VJyi7zHXr_V?JxH-~*OH~&m4KVZE_+9U5h%b*uTYveIRS$A?%0eh$xPPpNhRZ9n;0Vh`hYvnX6)*d<@? zB6jg)gT#aZF!nx88|Acla^R&%v=TV z3fV2zn1_#hx%Kl<|m3@B1`ymndPIa~Enf(j<%tK`RaPaBk zy$ON0kRD_==RF&Mr)Zj>rXe9Pd^+owf&P=^fsIQQN*%Z4Dg_!ejid0E-i#)1Dc=%h zhmN6&2Kx6|IHh5t3qqpOFYJk@2>sO6;-4hBeUuKL(3K4%3%1t{3fjvmHQwmPz%SkS zL~6MD%w3JLvX&qJ7NyJ`zIL--{>xd(Abh&aLz2mUOuOLXgWT>vx3b1)3w{XYyuN(n z=ix=!eNUV4eXt>eig~MJwz&gPB`#BnCG`(Vy6YyI3+ZHh$wXff)8+V?a~9j(fA)H6 z0HTdu9ZAhpblWR9b9gT|2?Q1Kt_y_ts)m+3JFo;#eraoFxU^B8lzHmyOaAPX>b(YZ|(aYWEN12sS~H z5U{ImF1#^2IZONhs0+6q-4CmDOd5^~J*L!}@Fiz=@Px0Jo7K>!Z8kA2^O3v}#FHIA z^FRV4w&tjah@m0y*=nfW<8Ld|A`?o;_4_{ut)nEq(Go1F8~;&YFiUqtL# zs<5JNd2o>}fJjT<^BF&SE+P7UO#;b|b_6UN-)kqT{c*Z*A zkS+9PaDj{PEH$Lz|VP)LaV86;_OX4r0rkNRU zHz%^bU$bhW%tSirzqS6tG$X@qk>_?_W@6{a9mwVr$;;B<%=F99*|;rEAc{H7$vLg3 zp)u+6ZMRq88Z*aUflA{qtls+~h_2pW(_Oe)J!gk~?cg|2_rMeFs-_YAP<&C8^suC5 zT56Vqn`Pxt*S8C~<<4XyAL&+K?t926+u=%Cw?t1<#qRKjp@Ix-oc2rdU*yFKKGnB- zzu8FfD0DJB3XR_KG>f5 zP>4yl``tjYQ0CKt1ZGY8l+6aI#K9DX-=MU6p*|TjZ6yQFeX|+?1_qrwX|rI-_t?!Y zC&OByD&NI}vcyOa^Qy4Q&6|ymecK zb86*)TOI z?cY7v@!*p0U(B-bynl85XEhIxPLaCKBPkpdHe+=WAKy2^TBH_GT+CRq7?W+Y<=tn{ zJjI6Cb2~}TUz^@veyEjXmo?_h`k;wxE=W3dC5YW5!!FIlRdI$H z3n?;AZbH3<-`)BUsJYIqS-IoCtFh_?c{6Rho%1jXKBp&;Yhql|T(C*8z8ER%=-Z5? zl8xAFaXs&k(cQC>^C)CbyS-ii$RxBdPW#jx-Wrs)ThlMwVVLhJvhhPZFM0G?z)Be> zpzl7fo8I!Ph&9Q1aTc(L6`!ictmHSX$(~}1E>G=krmKiZvj^E!hXaxn{=YwV?@Nkt zA6>8i){iCFJW&?# zJCb{+%jeZq#rw4QEEgtkFce#wF(Q$v~zA+a!I&&;a1qOe+lB zgqNy^O_Y*Nfq-ZImp@ZBwrBKCk%#P4CRK9FlNU%FQqp*p#PT7)$PxK<0g7xnjH?!{ zry6xMe-0l=r?c!C`Q`XX%wN)&*R-pxoah4-68VY|@dCZLs#4CXz7Xn@GR3j4Z`i1R z$?m<2>ka^4?n*=t>C^vVc_dp4bmu*eLhwNwlZ(~T5TJ+LPW8Oav4?L(D~iSxGT%fl z-xrm)pSr9nRpSnm3a#w<`L5>4W#QAM$;HFS&)bJAY{54ElVN-LTHITq4p+8Glq#jg z#f$C&p0Lm-*I>q$-fv8Sd`HwJe9+|0=lHoSF;9MK81oNq=LWJ%imRRvUjmIdO5?%R ztRQLzI`6FEu^_o!R#W~i8kg`(1bO~w!BKbbCY8h2W*saE93Zrb4nlJYVp`$JX2D(W zs+k6kqtV{`j_Y;IX~}c4sg;Y(y7p4X#ZyXg$wQCG6L;D0Y!aPI96i#%H^ec{kr6F=9=u3xSj#24(AXkwYw_ZWV=4 z11+)*Qn$`lci7>KOQ6Zl)UNQ#&)co3;VvFrf!>4S@cM@jY=1RI^o#}0C$eX)@p;~@ z5$`_OoQ6z7rGn^T?^5{W2FO0fxVWU1^-FGtXEHc7=}?PT*aG?xAs|Sn<@2MABjRV( zB9N#1E3{O-I43VwPYGQh&P=Fzs~mmm)}8W4an0*Y<3*X0o-ciocX_3Xx61N8bykJE z8(-x?MH58Cz13mEKk+B0OY$|e9Th_*am?h-POpuV%^{U$*2wXBs;W?Lg8{mtt*NPL z_>2RxkJR^z6JoHsYv`w$y%6Q;4mEe6^A;FRq8_jVVFaj4W-mPW-mDvq^2@(pr;|%m zrPfR}wbt{f;*-|%mEvk(uK%5ulDV{jcZ47Q{2@x4cYRA@Dye%*zPB7?Yn8a@oN^q> zS6+7jiWpp)+1j3;S_?emOI7^C-PzzTOcGEd?y+PwW^bz1^iu|KfgWK z{N%AQ?fg>n)`Odv9IWo-QOh3WwDO?4n8&rt3A*n{NBYJv#s|3g>XczxU8|;Ton7tf zSIV26xHfU}bw_ar*R5b4U~q1GJ#<#4S}pCwZ1pO6lVxR_qh|QXKk{S$vZ%xDYRv4T z(W;eqGWk);O)b`YHVwh<3O)Q_!4xhx%7)Xe|T7uEs+J5#}Um%y%}KJ7pR*ySrRnG0}$aP{gHbraOFrQcTC`8xi$1nhwEe1Hcf> ztGI!v+mC4_=ydtJ2AR{-Z)V%rRxJWCfTbwPht{)CD*UBHJIvy+DArh#y$0JNkG1(m zvu#OnaY0p)=KeZF7^qT}R(ooV(%n4eFUg?NmQLa1kwQ&6*>W2Pop89e2>6%jPXtWK z8ddr0{V+4BcHO#R^$=Kr@4P6Tg_4=4Aptx_a;r@oD6y`xPrl+dHnQvIO&p-%Hg_Gp zqDSSA|Gnw_|5pG5NS~X`b_;cs_}0E%DV@IERRr$o=U#i|_l7zt8!gwHaQ9?-E##iw*75;+J90nI1yRy?KDpKD zdBXx>3%`8rMW)itm}mswm1o|W-PuXpH|+aD`?ieJzFTQ%_#3{M6`27x0yJ5BGjW@f zZF+bc01x=M)HVNQxRCw#Er~wCFZ=IpK8q>+bBk2nKM}zeXO8k0{svVMi_W<@ya0ej|&GPvRDxm_iUT}$yx4XqA zQf7kLqrEqe3biKvX%q>(usbh^JIL`XzTtD(G!04HdQO@*y@-!m@N(((t=}f=u()PifsyC$^jLk2kQpJ(-^el#0)xm$ zagV-Hp(tBU0Mhl3wsM$SQOb2kvVq095Lg|Rom)LWy+7T%)8Z>pH5VNBUX1aFZMb^Y zPRS^;_stBGilbhf^{yF1bkzVp-T=4PE+Z|uZ8oN-gFz4Oq6)PIc(j8`H~;+>`j6{} zicJ?m<4Vu}Dy#aOEo<=gL7NXWha$Mib6-gu_OY-)8m*b7kj>$&gXF+LiHEWrdYORQ zlLJCzp0~?$W8)EDOk+o0m#Z|148v$*X6LRj^lESSa}A>Y?1D2QoMn#Y_9Wt+?!egL z^GkDc;5jxq(cDG(6X$^=RH@2->dRY9yIEeLo#s7**Ee%YVqUv>+w7kk1Gcl^0C?(V zXf?+5Q27|LE{VPVU^xO=Bm@}Xvwk#Z_SgP4g~Qd9zoEjFQ7E(wUL2~u0Ym7cUp(oy zzr9Fp-yI)W+?zP01429D$abbaG*f`B5fz#i06Y07*iL;t5mw-^?$jI_=p0(D?M^u zBBZL4Y*@aP<9yp(L8%hMv$t2*jU1T$RV8-DI{nS~b&}TT&!vqaQNns!oNuI~ELhYI zgq)^ud{&mX03OIKK)7w?aJ-$mC|Qv{?sMU3m&K)^VRNC5f`fe`h)$4z@H%kE^H_d$09kq z)kR&{nJLOUhppO}oJNfUf+#$oSBqAeH;coHEM@g+I>Mvb`Mvrk-*aEzTvg2{_L)XY z*tl{3KlbviTlWk)TRK)KT3Rii9_)+qv{H4pbc)cv9ErT5Y+4(N;iKwHW#5`ETejaK zO+_1(!j1L%9TDQUbD7q&o;h8d|GD&Zd@CkpVJc&CN7>8*O;=={E5sLmkJe$X1UX%L z?vSypuxH$|G(7x0@YbKvaVd=dicYniU`*=S`sMBB>F0qS^k+~ed`Bo(`v9;p!05TM zk@nfSypGOZM?w=DBL0CKiZWr2z=aRV{EKz9e+e#M8<|dyVc@=xgO#& zo8nG;yXPGMH$84_I`eM0BP9ikKDs9_ZT;-KV=Di9Rvq{>t?TpP_xY7R9j||vk6E2d zyrXuH{*#2e@55f7{k!I^TN0lUUJ;!h zKL@zB6c;0Yv7ejUK|rjmHG>2an$*h4`!2C7#~wx%$-d>7U^CxS8t3TgX3v6+(SF;# zsCZxhX~q^Apo_jmM`1zNQ>*9n?qR1y3xy(8kI??{0hqQ2UX4F+WBI!xcABM1_knQq z_}*^iJ{NFU;c9RPU-&$Bh-`2=rC)f*UdHo|4XX!+;1u30r@NYg*!Eq27Ga-#uuNGk zIZW_V=Up*IS^)n4zpbdVr^!y>p~23g9JNe!~4JMTy7y>{`Jn{EATTqrjTPAZpHnh(4Y}P}B`RUUYf>7|r;f0_y)`2az$^yCIy5 zTO5xMiN>pSQ>ur`O&@aD8LPLp*z0i_59~rFy`4Q;b>!ZQx1O!+&ptPs-RF(3)4S!} zFlDp=k7PllGn0R1NE?KZnu7DnEF%8?4|t!q@IJS$F-jMdLjBOOmb^(8{pEUkNmEx% zPK&E1^svYUclOYjEq}R$*z~E`f_Q`eJ<*bJeUtdQ)xj!%o-G2{s+okiYoUGXPVqvn z>Q3k`1215)EYA30Iyrm zq>r#9g~SLZLdC2cKfagMYeiGO#+xntVWC>r2Hp;U$rY_3t<)@(r8Zyf1&nzmW^BJ)sHSP{iEAZ}OT=wV&JZ7sW zzO*+<*v+tG=z$4<7&$x{@cPzWQKzMc-*oCu6cGvd3&mBtm+m5$7|WIItfoiSslvlY zw%GCVOietyR#TZ2TWPJJmT-|@y35$9C8^_`=YTbg; z^22cG`}bPp=!*X^rTe#5la7qf{%_a0eKM@k$J}=m+#~wo`gw)_f0@)3zme15G9)LX zeK3+}$moFaKWyvxk;Zv)tK-Xm{fXaK5SXxYK~gi8LEIamh8pSH7U3Wi*X0;FGaPX% zBCRCsA>2y+hXZ-c(RBkEsmp~QxT5a&=7HUaFaI#h<7}-44%8id{e8^mCPyekIGbNh zeakEW9w7V>Jw?^AMQ3qXsvDX(xr||c7#qRIx%5aun~%0P=vi<6NG-`)X2pyWGiZ|` z&{)+gh^dBscrZwd;((-~D}0KG)0v}1`Gi-0qK6Wy6eq2W%|SAg*zgT}dm=ZFj zs?~3jv-cweuB*9*ou%!p?z?Q+Y}8Y=D9lOw=z@tVl|NZ7@9KFm!(CnnX0p3~34M*yWxWRI-uFfOz=vA7G2gh4N(uc@l zyQK{^tC^v^WV_muABypp5qIGY*P#|XqmAml#%Z;hxh~_m6zkV+rXT0B%IwkRWT!!# zKi$Dho?{BPrrx{}_eitQG5=6w*sFECJJ$f(HhBX3xU z;)cK2Sfz)7$%EU{ZR^7(o0jp-d``&FsjR*?&NP&%sN(Xfg^k`gu0PdqAlWsv>N;Ea z&Duuz4CpV$#W*qXIs`1^#iXlf@txNAs)5Z^nTc8G*o>`Oy+8NTDd!z7HRaI_ojiD$0BZ}jIf1Ij+ba1~N6cIoy=29kVZ7Um z)IkEU!csK){K2N{K+Pr`i5%G+-87=(%%A?I)E+-=x}SNb9Bzld zh)D9qv-$MAKs?P51>omAX`Q@cCKHmt^f^Q6AP8!y4o)Rg2ao9W7DlyxnyAl*(v)m3 zoFU(5W&T9M!gTa$OootEF(SD{b3`X!f!y)ID|L&N#CQC(+`tX4hIW44CCY*gW+wny zKkH$J8h3oUY(IBu)g!Ny>vPVvm%;+1NWLg<- zS62{Cb}AZchwv9>>D96Nxh3YKsV}Fk2IDib(g@(*!$os*I;uPZ3>SrYBM3+CCD8>r5)TkGB?)Z1~)YjyLeT$ z`hAuP)9d5@cAtG<9b$=xgl$-qm|L0SaH8|K4?_YULxaC`XKL>k5hQo?cnSM;kM&ZY zb<9mV4kvLyPKp650=zZe-d z+R28Q^?{N#zLizZLvFbLVpB|6+nkz58?NmmLO@}k)HdZ<0bW=Yu*IR@Sxe{^sC#XS zzmRD=@Rj3fltWrhT$;=7^YIH@l=`v|C)yF2^gPP1 z)F~;<{~%u$}^zjQ0Q63(S*Zi?Ct$n zvXi}q7}hN^gATXW^VR|Al0YAsGdKQUC;u%9!8Okp$IN)(!b4^0I_RqD3-8W1@ZWO3 ziuTZo&0)6t<((gK#@@h%4?H!U8&yg^3>3L#_#*0+;fME^UbyOg{{Vrpeozd%8U&d3 zA59&y?LoYyy#YJk_vdM#ouMKiJjt_E!d&}V$z(aj2;U9`9F(ZKZblZxaJ{rEIQVGm zE*nK9E$nk+KKo?(1mhwC)Kz@g@&nNxr7XF}Wz~}kqx35MsBRS@Ol$bGqRuq)J2|X& zlh(~BA;Wef@Jxc@zz4MF9^95TEkB!H>uQf0ZvH`KdcIz(3q1Z2d~^BgEoMC$_7K@a z!-{y|?W$sfde1vu%Bkvw(sUkM;`)2#a_6FK6Ym=6=G;7m` z&?Vn4o}>ZPBwdjhoKKJ(*bF;lD%((Gv~w`07WQe|r|QKz1D7(To2d+SK=weznr7zm zwa&Uc7QILaYHDH;nNEu6n8NaDuF;_;I`kE(S981_A6m7Z{cJZRCG#t@;g<4=SOg^G)!%Ea>B-#W~%|0!91N+2d^u?wDL8F|8e&3VR;fFr1*4J9-ZLzKN>dg@c zaI9~3@cT%;+2NLwkbYCo?`>eZ$mK{Q@{!@iZednAdrm+7ZP|j`!mL>a=m>0Np-3AL zk=%fWG&4=x(I_#$aBbI8b&<}4$@AO)9;%q7HXC*4g3;L1y?Ayc<54v;LyDd0olz#G8s^RvAC%*BlGOH99>q|p_T!5k16#)9)RqO_C9Y|ZF6;Kt% zhh(!bz0u@3_E%}k3l(RG$hS`g2LBlI@Rw&4EKUi%k9^-~#SKw3$*^Ze?!tQvK@;QN z_ZxFI=DBPd)h4dJgW^0X&aJ9G4bUY`tl*%gmEGNtE%5-m-=(W50Jj<9h?Wnk2!>lnBO{y;y=Em>o7kxRFS9c}zM`&`rz|$H8#y}o zC(>N}8P+vnI#OjDLgm>MXIb^g_Rz`+!#O#1*17;9yVNi)QW~#JJ~s{8_iuv)f(Lc= zJJv~CMPfF??>}7{IrId(XNhV>u}AT#0?u=sL<2DdPes1%C1YzuDWr5#P5qs*L*d>N3>89H1AAD3#z zasQ!NO3U5>0{mctM~<`dU>CAGx9(s|Rr)?+-2_wV1Jb3NBb62I00o3jyC9f;@~j1? z*Q1Hbtjb*H<1+fppWrn0J_``0_6(sns$mgi2um8U_bFbPo$t)jBhz;XOUWZ80ZZ@K zDX~qDo5rtlo-bOPLg7XXujOE?S6`#SqQz_pndy9q#*&8K!S#_ptI9^L54nv~rG;`J z%;&`ohoAVNSqZre8!hS9uNvi0qsxa~iE4isxeedd{N7!=40~Sl`@&uF{jOQ7?Ile{KHAJ|C$lX=7(augvhNQw-bEn`B+()50nu z*8B>7@N~Of1Y?tw{VD@^u5EPotGj|U$6)wMmZ#4}4BY!&o+&5jPF@Jz;)e9;mEnDw9!SWkd-5xEg_yMciA^;SA9Z~fN6h0neBT z)o^nU(}(Ie3KN=BRr$@-Ra}a4xl&c?Y1-ayl3v4iwBDuI`{0EXA?~OmiA)<$>T)4D3A0o%2I8 ze3|eb$e_#O0KFIp(4Ry{ejLS8=|!@`&nyMoXGk`PUb4@>u<~EuD9dWwbCNgbRbDKk z4yDsZn>%{xe-G-ir(MoNSqg3g^@zsvhfF_%QZ>sipX3`#3IvsvriI7*i(htkg;)8# zl(|N2$t5yU$6O|wB|3P)`VYLFHk#7VM!Z8ZxgkY({z+4F+hq5K{q|3dl`9*IiAV)( z#ZbAd{Yz=$DI1|ru3O|7EX(ZL#Giwj?CHZmLdCI>UzSy+>Fbt)s7oqKv`}lgdI8gk z(5c8=x?LeMS5HphveWabDOmIunK93}lJv{AS5ZrOYoNtSIA3pp=+nQ3dP2NPe8zekGTrjl#1RHDqP%8>f2-PGD{j%ra}RP}iV1zab+~3`-N!SM+1VJ$mC~LdFXQ`j zund0{2@%b{aufl(gNP|IN()t`+D2UW1*ut0AS>Xc$o1ocleT7SEqp#iN>%k%W>QZ_Gm9gU9!7NAtOTjftRm|fBo-{3qbfXw!U}hn7xgno3-O8%HaRQ zkeSxU!;ZJB_qhb>=!18gIXZ{{d(u0}Dyv*9I>1{1P(@BtU zup9a?lr7)|N*WMDGO*O;&7!6~9mXVRs;e`Nb$+E`<){f*#W*kClj_HZ5KJzBq|V3CbO z<8H6d`8q1*6uhCuBMv`FPOQc@LXvB^;=2ZcQdNHBwG&K^aId#I_;C=%xkpg4&_0B{ zJQKG(r`;$6x@rSg!Cdz@blqcDD54xw%Cq{wR05cYQe6t_B^$#dKs|wTicPMSyF(Pj z+_2YDeUM=NSr;pi;^`DXOXEJiUTZql$6{*1l*&b*l`t_|WU6sx&U&_<5yjH$PkGdh zACS11a%gh#gnsu8?st|rmFi;n(M;#p&cZf8#ZRq^)ioX(lUnrU?l^!|Ur%7~id-wI z)*_0CLgq zii44(A#o-NN<-Le8yG29*Ze=8P)g9LeAG-OUxLSOlb-U=dI%?CXl z69Xe|a%u3ZzXL^fAqYNwuP4gTT6EWYqu0o)PsnOu$GO=pj56o05UE~gBA6xgmXvnvI0Kw4up5uwv@^2|l zGV^Ip`p&Fer8T(sxlZ(^eG6f{+q}ePoyO)e1OdGeom^%c>eK-(;Z4E>aKZ{1^yna+pgD%3NdihdV*Hs(A|hOSIQ>W zgg6U=^cJ8NzF_K-#U9||L$f4cQ&Ss%Jq~b7-{rf#`>8HYSV(!=y+BPn6i_He18V<& ziPYFNr*$}YX56v#2TqO7xQph$nxPu7@6OGIALQ$k44s!a5Uy(e^l2`_J}K-o=MS|; z-OZ|rg`EUz+Bdo32-i$jTB%`R?9w~&AETXl+4UG7UhRP#VP2~yJ{8`1|C+I2g##N9 z?LPhdhScOT=;y>FWqXm0hWg=d8q=4YdxB-9XNg=rysYH{4XD;6FaArSC-OS$NkXVc zO}r*qEc#|^RL_lq+#)tFoB}t_j^k0;m;Hh$k1~ZV?ke|2O|?DPMqPQ#?cIjeC&S}7 z>&7nuDucC%Pw8H}sfLgQ3GKnZpT9k+PGKn*>@L;SuQaD^cW~+;u_^Km#oJ{2=(*If zK4fisCsXfgGMj+r4)16iR3@{67aly%m`osmvP>|F#PHXxrEbBW6V>6KTz&gGq zYFMUr)HgzBfY%=X{l-?)p1R)0KydV#@sSR5L+x~_Jak$;xzUN~_X*Yo-%rU8?H|#Odobt+2QvACsQM5jFxV}$ zoJAMC?yBQbes>`qBFq-&PUHiG$n+Buua?9da{X@DQf{Df_s=8$4BtI0HO@OW zzE$Tda#KFStT70L5sB@Y%Qn{qHvjF9Vh?HA7TF{W#lmNu0HQ4(MXqe|>fbySc?OR| z6n+Qz9HhTvsP+MQ<<#{biByWrN^B_X8&LyC^(^;L`+6$t?tEQH7uZbc-E$BHa{ zuHPguk|JpVpn;$neZVgqI=mi?|-_b=jz;ADS z8;)}ydaby_%>R1h6@||YmHG-Hngx~_2~qX=^js7myIMGfk{#sd;LDQ@vtLjEsx-oG^Sn zL0BYSCwcLHW@Xi3yhUR}ZW;KSM0}#3831ViVsR+3Bs?r*eYQWSl&A0KvD|{bDm2=a zw%D4&;>8(KmBj#*pn+3<6hhuc*j3!GnlB!${RjQ^nIfn-yv9-yO zBx^nW`4V-KdUNPo)m{mt=8)9nlM2h2ny~%Fr90zW+TKrN&0LMsZG*}dv*^zq0brJi z#S^wg1(eEgU8+?aKi0VV#B{8HgWc>-qp!QXbf2hz!lItJb^um(f_w1^DO0p2{{%4hGe{$D2rfFo72XLNmO{sYWlOGz%`I=IjDQ!(P@f zP?g^};>a9w#hShNZ>$~}_{LL;1dM_|GO}~1Aeh%*0v@Ey8$z6`6*{*wHY80-Z=a>dAS2-n4Qco6}u#55LIxt+HQpKOe_7fB!He= zRIFr8;X2&KD`nbc{fC;QPN%#Mm5P>#ybnbp*mq&1uSGmn&h{F_y%n! z69a6Nr8Pt?7NK4|-bbIC4NpJ zsNbL8v=lmB7`cx46Mp^8wFztLL^)M*Ead3w*v^!QhbB9UZd1k(x{rGyD zrb?3jK~w5|V?M2;`gxO~_IsRhcH4L`_XGIejXOP`0%cm_1vS5?q&w{lBeC>|mahpuP*kR6mx;E9~U>|qm&JJif zgHzKcyMDu;-(dhjz4Z^St;`Z7VbCab<3Wk)}D< zjq>27eKO|8MM`->S|Dd$8bhIGRZBUnEtO_JRi5d%sYk8^1(>DR3YZpV?#S{gR5R7F zN2brYC-kLz(y%;ZNr&tBvV^Wiy^m!-uWsENk<4wOv%b#BRD^gx0Yc>9b$NhQ+CE>_J0cb^4I9!b{eCh`eC&9xJoJ^67vx7_Zp0u*o)f@Xkw z(2}*}rJE85iTL#WQAmM*dXr)rytXbGelWCIS0(y3O0YU9AOSKBHLa&yi}BQeQLW&N zdPC>x9w=R%m#8PZ>%ext(i&7OgqAbgne~!T{J^pmy;(4ujaB}wIA zn8N((D{uVIx-E^P*YW=udc>{#pAOEi|NFak^m(KNhnB>gH@KMkpl70MX*~sIG;Ar9 zwiDF3nMpDOKF8E2$%t3B^B2u0XQe2U5rHFLaps@6@UJ&(3lN3F5MsLM$x$s|U*MVN9F(R zueb@6q}sAa0^T3&7>yW9ED9XEm9uI|vztvCz)ZeYFM=K;xCi2Ac{Ufs`V$05Jfi-q z)_mKKZHzVNntgN~@YXw7kk)oHVTA)h;eGrttf6wW$u~%bva{6ll?g%OFtH_mgnKvLr4t!!qwyii50pvVBs520DBw!$OFZyIlb=d zP?6po^({$-Y0&T1KedUJF#@vrkIb%==skR}Xu*t7RWJRdw({x-d~@>jlZQtP&&=#Y{&1XSIzWRt`)cs`^=#9fX$!DnO#DVX23MWdkzkAh;CT@Iv9(CiGL@sGINmrFFviA}k=C)W38994| zgpc-+; z4n(9S2a~n0B6;tLiJww4tHxEJf=u zwNGo>0ac1oT#LZd$QYYumIYTovx?>uZsgrC9 zvU$hPgeitH;x@HQe)W91#{kSbK@SjRVueVzj}N{Orr3>~|8-X#^^B%`9J7T$3G zdRD-~)?Ro}bi1Xggg>V0e!6rjyn2n@$G))3^lGDCsZ?2Ts0G;M%FYs*I(JQ7%FJAI zFEP~QY#P=6HmyM1FAj%NeTA{Tn2WG`V52l;*OY3pHyqUJRKjnXb#0t=euU^yY8PiX)VJj=Do}N zAsqE8R&Y`wl=&uT*PpO?7VuF9TLXI zG z(RU6f|6-|Pf~T3jVNNFnALEa3J)ce~@(P%b* zaPrnhRVBB%;|y_ae5s%Qbi9(X8Nk(BsvdQR$R9QDgw+3IG*mv&MW<1h3`ay2 zbTU$s{GB}oOeeUlT9@^Sw4Scj2_ctR!9x}Zs)FXMYlJ`5=Gx};=Gt$+ec3pbUS@!# z?;^sHZ?KC#eKnTEhW^7uzu?UeV(Dr?EcS5!RdH>(e@u!V>1HReOc_yA2S7!~}bF26f*{dt<&~J_(6Bx!iD9T!!C9JsSUl`3* zd3>?JWQJ}tlKiL@DMd0n^A51W*MqstPD;**6PoKj z(uhh9HM*F$QGy?S@P2UZ;K2TE(Zal_h_2%T7@N3mvs5W*#92SFOw#m4XQ6D4aCPh3 z%Lk#8iV%WpDGS+#G-flBr%95oO*p>Zlj zbZevWFwQ8Va>^8VnR*=8Kx*nKF-XoaT=^zZCqYYr&B5P#lm}KrXffmLzvc+FzYALQ zhMvwm%oG9mmt|0;!=4M-@Ov&D2q44!;3_VD^!nc&PQ0ZT4zG5f)jnc5QfRE$bts%x;wlsT?1bxah)o0P-tE=*HL=)3aMgO5MPyP`8#WsCL3^DudNZBOU&eDM z2q7nXx7$_RdpBlkJdjmYhmRuzyyi{)#EmE6k}Kml69HVLLM?qQtZekzv}d1i8Qrb? z(sP>k+`NTNm2bU`-9FZf>(LTfNquiYVw3$|7}jLA9~GEs>tJ^qx{G7^p$rU3=7E!B zxyy4&J`gcWVh&pKjknNB=L<7iOD4Q`r)XnL<4+4?-buYAXsU|I?ds&v0Ec?!uJL;G z=ypsfQ?mK@PX*3(SH4*&Mx>CJzb`VhE(f#e(-vHn8)Ge8CAL{{If<_#)_3gtgnAd6wx{E7>y!z z>>`Th;hlEyTex+WnF{&of4~xiQt{-w7eKZP?%u%~nG&IVAW)iz-C#68`EuXHkJY+r z4qDG6{7s+jCs|x&ve~aa%>wuvD(zH!m!0jOGN$yrUy(0WLlK$RhkbTYxEXj9s!7yjgr$mj7#%#$LVznb){uNK1~_NB};(E{`X=` z7jJ$M**WSBvF>K1nCqBw$tE>%Qga+V?xd@HhBpb`R`k|^L(%mX#qnDkp@UZ|f`DOR zpo3ituCoc$^#$$nrsP@H%Sz`okftv%=18GS#zx7KJ-*Z+AjaW9L+I9Qo}Af8c%2_S z(blX+{XPZYrbq;@=g6P7=Xl5D%J1(zNypn)WpI6hd9?U)M&(xQcjU8fiDmE{4WWCp zDZ9_dwSN;b&89T-yNoj53Wyt9+J^=-)!y%TV_MCiP5GC+CTxY@h(R1_JY}1d%llGN!qit!VwM|)+f>(0{#}$zXh_AAe z_RbRH4FY}Rgbdf{#PsT|u?9+D?hTVh{m=~GVkt^K`kG& z4cgtM?b9g9DPK!I6tm$M%Z~Fr5F(;0{~X3uMmO%%4$xT8Ac@tI^qzbf!{ATmPxR0?aUv3bc zMWF;URibfg%O`}JW&CH0E8E+#qrQ04?2*cfO*}{?eZy05nxr}fmwbNE)Ojo-ZoBO{Mu zOm6g-#tX6M_WDXDu-i23Nu7p;W>|gVj8FUC6$t$6HVrkZ%mPTwJ zO;4y6Rf?D%)qW}6r`k)9Css71lviA>`?_lA!SP~ZdYj&xyS}wJA> zQlxZ}zo?tJjQz$oqOBpp##ZrdJM+cC8e;1Y3yHTf6%^H-#$J_K~#W ztS^B4pFH;Q;PipKr~dPCosXSh_mwID=qW^6QjtZ9NP&7%GEdz1*DF&sV-m|8LA%rQ z6j7Z2cyw&Uw5!X@hsKW85HH{e!!f!X>*bOR#<63rf`#?FXV;6)X;#(#$o{fr%X2a! zuB&D7`~m(+(S!l4N#kQI-(7srmfT!^uZyQPtWgF(=iMkn9-4r{e?> ze|#_Blbl5O=^NeeU9?Ir#laIK_cEp5-Xy|3-d5f-K1(1`f5nJiGox?+K)of2HWGSs|6XG#70t2V>`uXav0 zFC}Ci!{O~pFUFPY9tF#PernwB85dR9TZsDukmWuM1udo0=F1ztJItG^`1He&G0Mw` zy`!20%9T`$F)?2p{n+y~vnHS8jw7frLuA4r?api4ZLzh5q}8XZv(ktOmRea(CO7vv zYXY-=3o537-%d4S?Sp+4+Z9DJAL(oMDEk`RV@&Wi=k=l#J-Oi?e8IC!IXk&aHdFp_ z8=Sv5Vy;ILdCKt7csCJzV^zx~@xap2RCH|Bs2f|>Z<0D0D3lpvEc%W%=N$JS-0zfF zOP$wTFScqc65>w7AM#o%yhUS8E7IvPM|@nY*}8XcN)8?<|e?ASP9M9ERHcd@KQ z;GB{wh2&Iw@^OuLNQwT(^iBB^xikykClS+>O`sz5b&v$(o7cG&_2BL z&m!4OGwpXo_tF|gYt2+OTf~*3$3(*Mz9OmNjqZ`1n=@+zim-v1_Q&hCki z%8BJZ_ACv0PGiOPq*aN@@>!NWw-fWgS`0NpHV$SXHsa!KaskFp6cu+H;Y$ehtQAVn z5Ug=t;zTm#xZnzT>-dV_{P`1K-$8julB^o{^vGVxL3+cht2erw93;mbs6?n=am(Cl zf6C#(3!?y4%53JAXCD1K!GGHE{l}~*@2uqt2_S33CA(6H)eBI_Q6+Hq?o34)>iwYv zt%*^ob4X&lvy*1y2oLtN8pGig3qNb9@V$&%ZNDF)Sas(=cDfG4tG*E}gO4~wpFaM> zfr%CRqa=X>yG|I0K_mwKdOMqUDxSNwHW zOQ4~_*UF|lD#dL~^0(hPD2e(vNWXR#=+DmU^udqC?rimDn(KRBc-0QyYDUXkt$p>o z_(2=mdB8YwM7i7H~(8F6ymV~`q^q`zvBCe_1H+z7+M`9<4B4lfj%(`R~kzL^; zWu4F#^SEh9s6VC$S8Nw6+5$Zi*16G5`k$XL#9#kXqT3B3)IFU z;xiG_C-&5Hnpv)Mnq&4Z*MrD-CG^IFEQ{^in}iJxQKi88x$iCv$EgvrlP%6D3Pi8r z2XVu${>#cpD$&shaYpgbdOF|I*Hc{zxwwO>qekAYVQ}FQ${KzRM~t3+*ZUj(n5*>C zj;qw%9oMJhG7)x0_(;Z=581cY2G3|Vsv3_5NFP|j-fP*jcLRawI8-!E| zRXk`r*n3*A=Cc-jo)YZlx~F2HjhdZA6eS)n^XeV($~6`g^@s_XI5V41Jf})(Epi*_262T@;6*TwJ<6MRZC=^DsoqEI$3p3^_5pNWBQS#d z?AekouyQ!ktwUEmou1= zta#>PZ(A|G^xSuIp%8S4m0T*_gOxrtEPfKrx8)kNN;|N_#(Lip+!4VqD7)s1mdW@r zG<*@v+!LF2nASlK=hw1;t=8e`!)%^|LqOaG2Zk$a!4T!dZsr)@^XWwKb5yfL*nK+6 zp_A8HU?zxIg~T(LR+Bq?MD4BIX`g2?{!WQ+DL(LQbAR75UFkO2cRHBi9$%Y0iyAxa z!|kW`^T+z^7k@7&`*(LDZre)h30Eu`5cbb$9%RhTx4!6MsSKKPKuQ+2j_$?Uo2N_U zCDdC0t#uggczlXJ20cuWFWKW*(so2w35>q*>&LatA*XGGcD5nhF~cuo)RP*a8+q4v zDpu|eaa$#({kebE)=rI(x-HdKj)5mysezPrh;I}LhE4V&lP0k>)|$~$xOzbh$I9Y$ zL3Gd>g=e@R&ofl4%zv7<*x_qk21nhRt&eNt#`>{*c|+@3!^ZTeUR5pFoY2?tcr!G6 zR@#q%B#rudie2wO&MVzyYWp^o-&Ka;^`Te=nT5*`ya__OeTOxIx=3$rWEaGCnA5sK zYjL^zmF^$^Ft`8yTuGa*(eamG4l-IxiXP!Iip2`wch#oW|Y!(SOu;ksum#Yr+;zPg~WmC4sl%8Xuq2uo6-Cng%w4TltoWha@8s z0flLO0P;i*7Az06hjgE~Ebau)OWJ+qZrc9&N_XFUqEdd!QnAu^4QqA=~A|AP1_n`u6pZRNPo_E)@(nMMhwN{Gdv`LdjtUyF6JL=X^ek)njtP)(HAAEh6ogc`@ z57d%nVBnTIdDnpmF$8`kPtM(vrT=n4c6mi5RN19O`KSmlR-g&hgbbiE>4+J-0JfO# zf2rgznd@dx;g#=}JV?*}ls8i*_!b%1ncid0PefI^#2VE)NCd?F@i?>4(A6xhNLxW@ zqi9KWhGN5o5Y2q`7cu`OnfLQE(pm;Co)_>0ugjM90&KfmRSZa{kD8kH;Nx|8cpz~t z8^9Jwa$->&8D?4P5tZXkp`h%g8HX#!XsT8-R|Sr%Fu=S z#@uFcQ9Yrb(Wm2j(L06jktU%-ox_cFb8}uQwtVAbyN=?|&uKbLs}w6k`;}b}Q7ycC zl4Wodrm--SLnGEucxuLK)v^?ynJUY6)pO!EN@mvEyQzH-_}Aa39k&V#sEtXkZ4027 z3~=GsBsi^23)Nf{U@sx{7~X?yY1xLoQrYr>SxMKBsHkWW00V=d$TITTM{V^GNVA<< z_4eK}86Yg_wuy~0E`28WULcCVzz~X-=A#}4KVG7?RE7|4n7Rv~?oA%FRLRvZ0)*=p zZ%_VJNw?$}#`$*w&uJD;1&>un9ft`3US}6liq<(z{n#}G%gO=fXH;ixD2}2pZ$?uCMlLy z2cpey1+?X1_7*C?@2Yx@H+J0_dDLy)9EG z)GpwH4P{>d2X-41%nI#u)tVizk$fib=&ySEKbcbmfskVikSwU8M2O}&O)E-@T7c8) zCMD@2bOhyFHMQXveB1Ww;TJq7mzwzq7EU@*>IxR<>r3*f{)#IGVmS)VA<^PE*QXXe zx_rJG5fN;FZOnuWuYa=0Twht^qc(DOvHobHU2zSWuYM6ItMR%~0z%(!Ue8Bb-%`o*DZT_Vh3A7DdO?}z~o5xcEc{=Yl z9+l-9+RH&}Y&i}rlj$0BeV|Y_t6=d-Ky-YcuKQ zQ?~?}1KR^2|ITsl0p5iayAgPLfzOeqzHQBj*NNG6Znv#o0v6aBbs;>Phr8pV4H~Bk z+dnjifs+OO4qo{2q9nC+Py56AHt)rq7VL2E1s-B?B7kw;kVD~_9pB{v%vt}-h57+( z;v5g2*;dYB5NYiXlS84%LS9ZKt4D>K8HNrQh&xvZDV2A%J8?z_6J=EP^HmHuWzLbx z5JzB~ElX)9Tb?-AipZ|KKBtNCCJ<+h_jm_W6LG83px8O!lGf6}=>WI1+P$Vlsr#rH znF476hG4DJZT_8en$G1-?kM6$a54E8|AKAKD`fs4gZKPuyUwG%h{x1p27SOPKk%5p z*%oWd=BFGDJ-()wTN9G!rzqRov`4vBP)la4^HPH z1E-IG++RTWL(QrTU+yv9uUWPs1(qbj?R8W_&Pv9yJO7#E-nAEz`@rMjJ(})Mbkj4- z?5!@{VP=sLaQJS#J#a~_R8uh^J;b^@C)c0SUhl1Zy%j{9R?uRsd&^DeX>U=Ow>zh? zQD6&UVkwjl((8os@gH=@5;wVzREA8QF6iVnp@4e;KP)~BHoLQTplmnwYGY~(vND=7 z2eCQ2YDtRjv^EbX^GlXs0@Act3BfV?cON8njRV}@Q7QhcW(AEnk5{| zzYfCOb%(Y(L$W;4Qw$7@7q`1X)*2QcEFWW}FMLqDh1k;p?9t^26+L&prQF9<0(Vq* zORbt8M%BJ=E3oaFWgKs7mGxye^6JHs$Oy2i`gq%q+P=$d!_Fs}#}G(Bg%xy>Rm1wW zGBAlV<+b$Jm%9nU_U@+x_nN5M&5x;ChzA14_S@9h*>jq(noH3|jIVbvv6#e#gXWh9 zYR4fjclKWWtLyyVO3v6Aj-8HZyL%c0KO1%K8?uS@1I`Vfe*j@E$D9@{oRlLcMp*;2d$Q~ zD*0u7vwQsODBlBR`}HN4v+5ZdPH?a3X4pGISQVB)RtxcEU-j{ob+FP%^Q E8;B9JlK=n! literal 0 HcmV?d00001 From 388080f06fa2991c89bdd2db9248fcb8b35f4844 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Wed, 2 Feb 2022 15:45:26 -0400 Subject: [PATCH 126/248] Delete screenshot_irmajavi_entities_card.jpg --- .../screenshot_irmajavi_entities_card.jpg | Bin 71161 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 custom_cards/custom_card_irmajavi_entities/screenshot_irmajavi_entities_card.jpg diff --git a/custom_cards/custom_card_irmajavi_entities/screenshot_irmajavi_entities_card.jpg b/custom_cards/custom_card_irmajavi_entities/screenshot_irmajavi_entities_card.jpg deleted file mode 100644 index 17669712eb6deeb5cd890a2025f13d9d38599c68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71161 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 E8;B9JlK=n! From 1fd0678d608b4dca4ce5b85d807cc9237e4dbb0b Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Wed, 2 Feb 2022 15:59:01 -0400 Subject: [PATCH 127/248] Update custom_card_irmajavi_entities.yaml --- .../custom_card_irmajavi_entities.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml b/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml index 25a003b6b..5933be4d7 100644 --- a/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml +++ b/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml @@ -7,7 +7,7 @@ custom_card_irmajavi_entities: show_label: false styles: grid: - - grid-template-areas: '''item1'' ''item2'' ''item3'' ''item4''' + - grid-template-areas: '"item1" "item2" "item3" "item4"' - grid-template-columns: 1fr - grid-template-rows: min-content min-content - row-gap: 12px @@ -145,4 +145,4 @@ custom_widget_irmajavi: - grid-template-columns: 1fr - grid-template-rows: min-content min-content card: - - box-shadow: none \ No newline at end of file + - box-shadow: none From 89fd96c11d85e5bc78228fd5cfe7e1863e1c5ae7 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Wed, 2 Feb 2022 16:04:14 -0400 Subject: [PATCH 128/248] Update README.md --- custom_cards/custom_card_irmajavi_entities/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom_cards/custom_card_irmajavi_entities/README.md b/custom_cards/custom_card_irmajavi_entities/README.md index 1660da62f..aa044a6ac 100644 --- a/custom_cards/custom_card_irmajavi_entities/README.md +++ b/custom_cards/custom_card_irmajavi_entities/README.md @@ -117,7 +117,7 @@ variables: -##Template Code +## Template Code ```yaml custom_card_irmajavi_entities: template: @@ -267,4 +267,4 @@ custom_widget_irmajavi: - grid-template-rows: min-content min-content card: - box-shadow: none -``` \ No newline at end of file +``` From cc3176acdc8dd39928a8a9e1f82c8f1ba4d5fef7 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Wed, 2 Feb 2022 16:36:12 -0400 Subject: [PATCH 129/248] Update custom_card_irmajavi_entities.yaml --- .../custom_card_irmajavi_entities.yaml | 105 +++++++++--------- 1 file changed, 53 insertions(+), 52 deletions(-) diff --git a/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml b/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml index 5933be4d7..6b7a783a5 100644 --- a/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml +++ b/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml @@ -1,52 +1,53 @@ +--- custom_card_irmajavi_entities: template: - - ulm_language_variables + - "ulm_language_variables" triggers_update: all show_icon: false show_name: false show_label: false styles: grid: - - grid-template-areas: '"item1" "item2" "item3" "item4"' - - grid-template-columns: 1fr - - grid-template-rows: min-content min-content - - row-gap: 12px + - grid-template-areas: "'item1' 'item2''item3' 'item4'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" + - row-gap: "12px" card: - - border-radius: 30px - - box-shadow: var(--box-shadow) - - padding: 12px - - height: 160px + - border-radius: "30px" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + - height: "160px" custom_fields: item1: card: - type: custom:button-card - color: var(--google-grey) + type: "custom:button-card" + color: "var(--google-grey)" show_icon: false show_label: true show_name: true styles: name: - - align-self: start - - justify-self: start - - font-weight: bold - - font-size: 14px - - margin-left: 12px + - align-self: "start" + - justify-self: "start" + - font-weight: "bold" + - font-size: "14px" + - margin-left: "12px" grid: - - grid-template-areas: '"n" "l"' - - grid-template-columns: min-content auto min-content - - grid-template-rows: min-content min-content + - grid-template-areas: "'n' 'l'" + - grid-template-columns: "min-content auto min-content" + - grid-template-rows: "min-content min-content" card: - - box-shadow: none - - border-radius: 20px - - border: 2px solid var(--google-grey) - - height: 70px + - box-shadow: "none" + - border-radius: "20px" + - border: "2px solid var(--google-grey)" + - height: "70px" label: - - justify-self: start - - align-self: end - - font-weight: bold - - font-size: 14px - - filter: opacity(40%) - - margin-left: 35px + - justify-self: "start" + - align-self: "end" + - font-weight: "bold" + - font-size: "14px" + - filter: "opacity(40%)" + - margin-left: "35px" name: | [[[ var icon = '👽'; @@ -61,13 +62,13 @@ custom_card_irmajavi_entities: ]]] item2: card: - type: custom:button-card - template: list_4_items + type: "custom:button-card" + template: "list_4_items" custom_fields: item1: card: - type: custom:button-card - template: custom_widget_irmajavi + type: "custom:button-card" + template: "custom_widget_irmajavi" entity: >- [[[ return variables.ulm_custom_card_irmajavi_entities_entity_1; ]]] @@ -76,8 +77,8 @@ custom_card_irmajavi_entities: ]]] item2: card: - type: custom:button-card - template: custom_widget_irmajavi + type: "custom:button-card" + template: "custom_widget_irmajavi" entity: >- [[[ return variables.ulm_custom_card_irmajavi_entities_entity_2; ]]] @@ -86,8 +87,8 @@ custom_card_irmajavi_entities: ]]] item3: card: - type: custom:button-card - template: custom_widget_irmajavi + type: "custom:button-card" + template: "custom_widget_irmajavi" entity: >- [[[ return variables.ulm_custom_card_irmajavi_entities_entity_3; ]]] @@ -96,8 +97,8 @@ custom_card_irmajavi_entities: ]]] item4: card: - type: custom:button-card - template: custom_widget_irmajavi + type: "custom:button-card" + template: "custom_widget_irmajavi" entity: >- [[[ return variables.ulm_custom_card_irmajavi_entities_entity_4; ]]] @@ -130,19 +131,19 @@ custom_widget_irmajavi: ]]] styles: name: - - justify-self: center - - align-self: start - - font-weight: bolder - - font-size: 12px - - filter: opacity(40%) + - justify-self: "center" + - align-self: "start" + - font-weight: "bolder" + - font-size: "12px" + - filter: "opacity(40%)" label: - - margin-top: 10px - - justify-self: center - - font-weight: bold - - font-size: 14px + - margin-top: "10px" + - justify-self: "center" + - font-weight: "bold" + - font-size: "14px" grid: - - grid-template-areas: '"l" "n"' - - grid-template-columns: 1fr - - grid-template-rows: min-content min-content + - grid-template-areas: "'l' 'n'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" card: - - box-shadow: none + - box-shadow: "none" From 153d96380a7985de3e129e1a99330b75dd62be98 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Wed, 2 Feb 2022 16:39:23 -0400 Subject: [PATCH 130/248] Update custom_card_irmajavi_entities.yaml --- .../custom_card_irmajavi_entities.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml b/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml index 6b7a783a5..72ef325db 100644 --- a/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml +++ b/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml @@ -2,7 +2,7 @@ custom_card_irmajavi_entities: template: - "ulm_language_variables" - triggers_update: all + triggers_update: "all" show_icon: false show_name: false show_label: false From 2ef9ffd464423465e37d59da22a5a1563ec92de0 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Wed, 2 Feb 2022 16:45:36 -0400 Subject: [PATCH 131/248] Update README.md --- custom_cards/custom_card_irmajavi_entities/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/custom_cards/custom_card_irmajavi_entities/README.md b/custom_cards/custom_card_irmajavi_entities/README.md index aa044a6ac..f3964d00f 100644 --- a/custom_cards/custom_card_irmajavi_entities/README.md +++ b/custom_cards/custom_card_irmajavi_entities/README.md @@ -119,6 +119,7 @@ variables: ## Template Code ```yaml +--- custom_card_irmajavi_entities: template: - ulm_language_variables From 243e643ad37d6364fa080cd211085c465d1d0466 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Wed, 2 Feb 2022 18:05:44 -0400 Subject: [PATCH 132/248] Update README.md --- custom_cards/custom_card_irmajavi_entities/README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/custom_cards/custom_card_irmajavi_entities/README.md b/custom_cards/custom_card_irmajavi_entities/README.md index f3964d00f..58934248e 100644 --- a/custom_cards/custom_card_irmajavi_entities/README.md +++ b/custom_cards/custom_card_irmajavi_entities/README.md @@ -5,13 +5,14 @@ hide: --- -# Custom-card "Entities" +## Custom-card "Entities" This is a `custom-card` to display states from multiple entities or from an entity with multiples attributes (To use it with attributes need to modify the code) ![Screenshot](../../docs/assets/img/screenshot_irmajavi_entities_card.jpg) ## Credits + Author: irmajavi - 2022 Version: 1.0.0 @@ -23,7 +24,9 @@ Initial release
## Requirements + none + ## Usage ```yaml @@ -118,6 +121,7 @@ variables: ## Template Code + ```yaml --- custom_card_irmajavi_entities: From 0281b932bf9fadba1b921d9c707004117fa0346a Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Wed, 2 Feb 2022 18:08:32 -0400 Subject: [PATCH 133/248] Update README.md --- .../custom_card_irmajavi_entities/README.md | 134 +++++++++--------- 1 file changed, 67 insertions(+), 67 deletions(-) diff --git a/custom_cards/custom_card_irmajavi_entities/README.md b/custom_cards/custom_card_irmajavi_entities/README.md index 58934248e..bde952a20 100644 --- a/custom_cards/custom_card_irmajavi_entities/README.md +++ b/custom_cards/custom_card_irmajavi_entities/README.md @@ -25,7 +25,7 @@ Initial release ## Requirements - none +none ## Usage @@ -49,74 +49,74 @@ variables: - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VariableExampleRequiredExplanation
VariableExampleRequiredExplanation
ulm_custom_card_irmajavi_entitiessensor.mainYesMain entity
ulm_custom_card_irmajavi_entitites_nameStatusYesMain entity name
ulm_custom_card_irmajavi_entities_entity_1sensor.test1YesThe first entity
ulm_custom_card_irmajavi_entities_entity_2sensor.test2YesThe second entity
ulm_custom_card_irmajavi_entities_entity_3sensor.test3YesThe third entity
ulm_custom_card_irmajavi_entities_entity_4sensor.test4YesThe forth entity
ulm_custom_card_irmajavi_entities_name_1Test1YesThe name of the first entity
ulm_custom_card_irmajavi_entities_name_2Test2YesThe name of the second entity
ulm_custom_card_irmajavi_entities_name_3Test3YesThe name of the third entity
ulm_custom_card_irmajavi_entities_name_4Test4YesThe name of the forth entity
ulm_custom_card_irmajavi_entitiessensor.mainYesMain entity
ulm_custom_card_irmajavi_entitites_nameStatusYesMain entity name
ulm_custom_card_irmajavi_entities_entity_1sensor.test1YesThe first entity
ulm_custom_card_irmajavi_entities_entity_2sensor.test2YesThe second entity
ulm_custom_card_irmajavi_entities_entity_3sensor.test3YesThe third entity
ulm_custom_card_irmajavi_entities_entity_4sensor.test4YesThe forth entity
ulm_custom_card_irmajavi_entities_name_1Test1YesThe name of the first entity
ulm_custom_card_irmajavi_entities_name_2Test2YesThe name of the second entity
ulm_custom_card_irmajavi_entities_name_3Test3YesThe name of the third entity
ulm_custom_card_irmajavi_entities_name_4Test4YesThe name of the forth entity
From 6a7d962ec54b45c7d78fd0bf022b010857f41070 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Wed, 2 Feb 2022 18:16:46 -0400 Subject: [PATCH 134/248] Update README.md --- custom_cards/custom_card_irmajavi_entities/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom_cards/custom_card_irmajavi_entities/README.md b/custom_cards/custom_card_irmajavi_entities/README.md index bde952a20..ee3cb6394 100644 --- a/custom_cards/custom_card_irmajavi_entities/README.md +++ b/custom_cards/custom_card_irmajavi_entities/README.md @@ -5,7 +5,7 @@ hide: --- -## Custom-card "Entities" +## Custom-card `Entities` This is a `custom-card` to display states from multiple entities or from an entity with multiples attributes (To use it with attributes need to modify the code) @@ -26,7 +26,7 @@ Initial release ## Requirements none - + ## Usage ```yaml From c608d08ebbbafef07590b34fddeb9714a8ba3671 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Wed, 2 Feb 2022 18:30:44 -0400 Subject: [PATCH 135/248] Update custom_card_irmajavi_entities.yaml --- .../custom_card_irmajavi_entities.yaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml b/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml index 72ef325db..3d5cebac4 100644 --- a/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml +++ b/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml @@ -51,10 +51,11 @@ custom_card_irmajavi_entities: name: | [[[ var icon = '👽'; - if (variables.ulm_custom_card_irmajavi_entities_icon){ + if (variables.ulm_custom_card_irmajavi_entities_icon) + { var icon = variables.ulm_custom_card_irmajavi_entities_icon; } - return icon + ' ' + variables.ulm_custom_card_irmajavi_entities_name; + return icon + "' '" + variables.ulm_custom_card_irmajavi_entities_name; ]]] label: | [[[ @@ -105,13 +106,11 @@ custom_card_irmajavi_entities: name: >- [[[ return variables.ulm_custom_card_irmajavi_entities_name_4 ]]] - - custom_widget_irmajavi: show_label: true show_icon: false label: | - [[[ + [[[ var unit = entity.attributes.unit_of_measurement != null ? ' ' + entity.attributes.unit_of_measurement : '' if (entity.state == 'on') { return variables.ulm_on; @@ -128,7 +127,7 @@ custom_widget_irmajavi: } else { return entity.state + unit; } - ]]] + ]]] styles: name: - justify-self: "center" From f90b7af4d0d307db9cb19089920eb1d969bb952e Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Wed, 2 Feb 2022 18:33:25 -0400 Subject: [PATCH 136/248] Update custom_card_irmajavi_entities.yaml --- .../custom_card_irmajavi_entities.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml b/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml index 3d5cebac4..9fb0146c0 100644 --- a/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml +++ b/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml @@ -58,9 +58,7 @@ custom_card_irmajavi_entities: return icon + "' '" + variables.ulm_custom_card_irmajavi_entities_name; ]]] label: | - [[[ - return states[variables.ulm_custom_card_irmajavi_entities].state - ]]] + [[[ return states[variables.ulm_custom_card_irmajavi_entities].state ]]] item2: card: type: "custom:button-card" From 36fc9c83185d85e017c3b1b1240ad442e0d8b0f9 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Wed, 2 Feb 2022 21:19:32 -0400 Subject: [PATCH 137/248] Update custom_card_irmajavi_entities.yaml --- .../custom_card_irmajavi_entities.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml b/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml index 9fb0146c0..f17ff5d2b 100644 --- a/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml +++ b/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml @@ -109,7 +109,7 @@ custom_widget_irmajavi: show_icon: false label: | [[[ - var unit = entity.attributes.unit_of_measurement != null ? ' ' + entity.attributes.unit_of_measurement : '' + var unit = entity.attributes.unit_of_measurement != null ? ' ' + entity.attributes.unit_of_measurement: '' if (entity.state == 'on') { return variables.ulm_on; } else if (entity.state == 'off') { From f362801bc055986937f9f99476b19d23b5a13ec7 Mon Sep 17 00:00:00 2001 From: "rick.stokkingreef" Date: Thu, 3 Feb 2022 09:53:38 +0000 Subject: [PATCH 138/248] Fixed indent and DOS newline endings --- .../custom_card_irmajavi_entities/README.md | 2 +- .../custom_card_irmajavi_entities.yaml | 292 +++++++++--------- 2 files changed, 147 insertions(+), 147 deletions(-) diff --git a/custom_cards/custom_card_irmajavi_entities/README.md b/custom_cards/custom_card_irmajavi_entities/README.md index ee3cb6394..a9cf061f3 100644 --- a/custom_cards/custom_card_irmajavi_entities/README.md +++ b/custom_cards/custom_card_irmajavi_entities/README.md @@ -182,7 +182,7 @@ custom_card_irmajavi_entities: return icon + ' ' + variables.ulm_custom_card_irmajavi_entities_name; ]]] label: | - [[[ + [[[ return states[variables.ulm_custom_card_irmajavi_entities].state ]]] item2: diff --git a/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml b/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml index f17ff5d2b..a52cf8e31 100644 --- a/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml +++ b/custom_cards/custom_card_irmajavi_entities/custom_card_irmajavi_entities.yaml @@ -1,146 +1,146 @@ ---- -custom_card_irmajavi_entities: - template: - - "ulm_language_variables" - triggers_update: "all" - show_icon: false - show_name: false - show_label: false - styles: - grid: - - grid-template-areas: "'item1' 'item2''item3' 'item4'" - - grid-template-columns: "1fr" - - grid-template-rows: "min-content min-content" - - row-gap: "12px" - card: - - border-radius: "30px" - - box-shadow: "var(--box-shadow)" - - padding: "12px" - - height: "160px" - custom_fields: - item1: - card: - type: "custom:button-card" - color: "var(--google-grey)" - show_icon: false - show_label: true - show_name: true - styles: - name: - - align-self: "start" - - justify-self: "start" - - font-weight: "bold" - - font-size: "14px" - - margin-left: "12px" - grid: - - grid-template-areas: "'n' 'l'" - - grid-template-columns: "min-content auto min-content" - - grid-template-rows: "min-content min-content" - card: - - box-shadow: "none" - - border-radius: "20px" - - border: "2px solid var(--google-grey)" - - height: "70px" - label: - - justify-self: "start" - - align-self: "end" - - font-weight: "bold" - - font-size: "14px" - - filter: "opacity(40%)" - - margin-left: "35px" - name: | - [[[ - var icon = '👽'; - if (variables.ulm_custom_card_irmajavi_entities_icon) - { - var icon = variables.ulm_custom_card_irmajavi_entities_icon; - } - return icon + "' '" + variables.ulm_custom_card_irmajavi_entities_name; - ]]] - label: | - [[[ return states[variables.ulm_custom_card_irmajavi_entities].state ]]] - item2: - card: - type: "custom:button-card" - template: "list_4_items" - custom_fields: - item1: - card: - type: "custom:button-card" - template: "custom_widget_irmajavi" - entity: >- - [[[ return variables.ulm_custom_card_irmajavi_entities_entity_1; - ]]] - name: >- - [[[ return variables.ulm_custom_card_irmajavi_entities_name_1 - ]]] - item2: - card: - type: "custom:button-card" - template: "custom_widget_irmajavi" - entity: >- - [[[ return variables.ulm_custom_card_irmajavi_entities_entity_2; - ]]] - name: >- - [[[ return variables.ulm_custom_card_irmajavi_entities_name_2 - ]]] - item3: - card: - type: "custom:button-card" - template: "custom_widget_irmajavi" - entity: >- - [[[ return variables.ulm_custom_card_irmajavi_entities_entity_3; - ]]] - name: >- - [[[ return variables.ulm_custom_card_irmajavi_entities_name_3 - ]]] - item4: - card: - type: "custom:button-card" - template: "custom_widget_irmajavi" - entity: >- - [[[ return variables.ulm_custom_card_irmajavi_entities_entity_4; - ]]] - name: >- - [[[ return variables.ulm_custom_card_irmajavi_entities_name_4 - ]]] -custom_widget_irmajavi: - show_label: true - show_icon: false - label: | - [[[ - var unit = entity.attributes.unit_of_measurement != null ? ' ' + entity.attributes.unit_of_measurement: '' - if (entity.state == 'on') { - return variables.ulm_on; - } else if (entity.state == 'off') { - return variables.ulm_off; - } else if (entity.state == 'unavailable') { - return variables.ulm_unavailable; - } else if (entity.state == 'idle') { - return variables.ulm_idle; - } else if (entity.state == 'open') { - return variables.ulm_open; - } else if (entity.state == 'closed') { - return variables.ulm_closed; - } else { - return entity.state + unit; - } - ]]] - styles: - name: - - justify-self: "center" - - align-self: "start" - - font-weight: "bolder" - - font-size: "12px" - - filter: "opacity(40%)" - label: - - margin-top: "10px" - - justify-self: "center" - - font-weight: "bold" - - font-size: "14px" - grid: - - grid-template-areas: "'l' 'n'" - - grid-template-columns: "1fr" - - grid-template-rows: "min-content min-content" - card: - - box-shadow: "none" +--- +custom_card_irmajavi_entities: + template: + - "ulm_language_variables" + triggers_update: "all" + show_icon: false + show_name: false + show_label: false + styles: + grid: + - grid-template-areas: "'item1' 'item2''item3' 'item4'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" + - row-gap: "12px" + card: + - border-radius: "30px" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + - height: "160px" + custom_fields: + item1: + card: + type: "custom:button-card" + color: "var(--google-grey)" + show_icon: false + show_label: true + show_name: true + styles: + name: + - align-self: "start" + - justify-self: "start" + - font-weight: "bold" + - font-size: "14px" + - margin-left: "12px" + grid: + - grid-template-areas: "'n' 'l'" + - grid-template-columns: "min-content auto min-content" + - grid-template-rows: "min-content min-content" + card: + - box-shadow: "none" + - border-radius: "20px" + - border: "2px solid var(--google-grey)" + - height: "70px" + label: + - justify-self: "start" + - align-self: "end" + - font-weight: "bold" + - font-size: "14px" + - filter: "opacity(40%)" + - margin-left: "35px" + name: | + [[[ + var icon = '👽'; + if (variables.ulm_custom_card_irmajavi_entities_icon) + { + var icon = variables.ulm_custom_card_irmajavi_entities_icon; + } + return icon + "' '" + variables.ulm_custom_card_irmajavi_entities_name; + ]]] + label: | + [[[ return states[variables.ulm_custom_card_irmajavi_entities].state ]]] + item2: + card: + type: "custom:button-card" + template: "list_4_items" + custom_fields: + item1: + card: + type: "custom:button-card" + template: "custom_widget_irmajavi" + entity: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_entity_1; + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_name_1 + ]]] + item2: + card: + type: "custom:button-card" + template: "custom_widget_irmajavi" + entity: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_entity_2; + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_name_2 + ]]] + item3: + card: + type: "custom:button-card" + template: "custom_widget_irmajavi" + entity: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_entity_3; + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_name_3 + ]]] + item4: + card: + type: "custom:button-card" + template: "custom_widget_irmajavi" + entity: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_entity_4; + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_name_4 + ]]] +custom_widget_irmajavi: + show_label: true + show_icon: false + label: | + [[[ + var unit = entity.attributes.unit_of_measurement != null ? ' ' + entity.attributes.unit_of_measurement: '' + if (entity.state == 'on') { + return variables.ulm_on; + } else if (entity.state == 'off') { + return variables.ulm_off; + } else if (entity.state == 'unavailable') { + return variables.ulm_unavailable; + } else if (entity.state == 'idle') { + return variables.ulm_idle; + } else if (entity.state == 'open') { + return variables.ulm_open; + } else if (entity.state == 'closed') { + return variables.ulm_closed; + } else { + return entity.state + unit; + } + ]]] + styles: + name: + - justify-self: "center" + - align-self: "start" + - font-weight: "bolder" + - font-size: "12px" + - filter: "opacity(40%)" + label: + - margin-top: "10px" + - justify-self: "center" + - font-weight: "bold" + - font-size: "14px" + grid: + - grid-template-areas: "'l' 'n'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" + card: + - box-shadow: "none" From 716ffe993c51362213f27c7a58713ab773624658 Mon Sep 17 00:00:00 2001 From: "rick.stokkingreef" Date: Thu, 3 Feb 2022 09:57:03 +0000 Subject: [PATCH 139/248] dos2unix on readme --- .../custom_card_irmajavi_entities/README.md | 550 +++++++++--------- 1 file changed, 275 insertions(+), 275 deletions(-) diff --git a/custom_cards/custom_card_irmajavi_entities/README.md b/custom_cards/custom_card_irmajavi_entities/README.md index a9cf061f3..89a89d800 100644 --- a/custom_cards/custom_card_irmajavi_entities/README.md +++ b/custom_cards/custom_card_irmajavi_entities/README.md @@ -1,275 +1,275 @@ ---- -title: custom_card_irmajavi_entities -hide: - - toc ---- - - -## Custom-card `Entities` - -This is a `custom-card` to display states from multiple entities or from an entity with multiples attributes (To use it with attributes need to modify the code) - -![Screenshot](../../docs/assets/img/screenshot_irmajavi_entities_card.jpg) - -## Credits - -Author: irmajavi - 2022 -Version: 1.0.0 - -## Changelog - -
-1.0.0 -Initial release -
- -## Requirements - -none - -## Usage - -```yaml -type: custom:button-card -template: custom_card_irmajavi_entities -variables: - ulm_custom_card_irmajavi_entities_entity_1: sensor.inverter_voltage - ulm_custom_card_irmajavi_entities_entity_2: sensor.inverter_temperature - ulm_custom_card_irmajavi_entities_entity_3: sensor.active_ac_power - ulm_custom_card_irmajavi_entities_entity_4: sensor.ac_load_current - ulm_custom_card_irmajavi_entities_name_1: Voltage - ulm_custom_card_irmajavi_entities_name_2: Temperature - ulm_custom_card_irmajavi_entities_name_3: AC Power - ulm_custom_card_irmajavi_entities_name_4: Current - ulm_custom_card_irmajavi_entities_name: System Status - ulm_custom_card_irmajavi_entities: sensor.inverter_operating_mode -``` - -## Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
VariableExampleRequiredExplanation
ulm_custom_card_irmajavi_entitiessensor.mainYesMain entity
ulm_custom_card_irmajavi_entitites_nameStatusYesMain entity name
ulm_custom_card_irmajavi_entities_entity_1sensor.test1YesThe first entity
ulm_custom_card_irmajavi_entities_entity_2sensor.test2YesThe second entity
ulm_custom_card_irmajavi_entities_entity_3sensor.test3YesThe third entity
ulm_custom_card_irmajavi_entities_entity_4sensor.test4YesThe forth entity
ulm_custom_card_irmajavi_entities_name_1Test1YesThe name of the first entity
ulm_custom_card_irmajavi_entities_name_2Test2YesThe name of the second entity
ulm_custom_card_irmajavi_entities_name_3Test3YesThe name of the third entity
ulm_custom_card_irmajavi_entities_name_4Test4YesThe name of the forth entity
- -## Template Code - -```yaml ---- -custom_card_irmajavi_entities: - template: - - ulm_language_variables - triggers_update: all - show_icon: false - show_name: false - show_label: false - styles: - grid: - - grid-template-areas: '''item1'' ''item2'' ''item3'' ''item4''' - - grid-template-columns: 1fr - - grid-template-rows: min-content min-content - - row-gap: 12px - card: - - border-radius: 30px - - box-shadow: var(--box-shadow) - - padding: 12px - - height: 160px - custom_fields: - item1: - card: - type: custom:button-card - color: var(--google-grey) - show_icon: false - show_label: true - show_name: true - styles: - name: - - align-self: start - - justify-self: start - - font-weight: bold - - font-size: 14px - - margin-left: 12px - grid: - - grid-template-areas: '"n" "l"' - - grid-template-columns: min-content auto min-content - - grid-template-rows: min-content min-content - card: - - box-shadow: none - - border-radius: 20px - - border: 2px solid var(--google-grey) - - height: 70px - label: - - justify-self: start - - align-self: end - - font-weight: bold - - font-size: 14px - - filter: opacity(40%) - - margin-left: 35px - name: | - [[[ - var icon = '👽'; - if (variables.ulm_custom_card_irmajavi_entities_icon){ - var icon = variables.ulm_custom_card_irmajavi_entities_icon; - } - return icon + ' ' + variables.ulm_custom_card_irmajavi_entities_name; - ]]] - label: | - [[[ - return states[variables.ulm_custom_card_irmajavi_entities].state - ]]] - item2: - card: - type: custom:button-card - template: list_4_items - custom_fields: - item1: - card: - type: custom:button-card - template: custom_widget_irmajavi - entity: >- - [[[ return variables.ulm_custom_card_irmajavi_entities_entity_1; - ]]] - name: >- - [[[ return variables.ulm_custom_card_irmajavi_entities_name_1 - ]]] - item2: - card: - type: custom:button-card - template: custom_widget_irmajavi - entity: >- - [[[ return variables.ulm_custom_card_irmajavi_entities_entity_2; - ]]] - name: >- - [[[ return variables.ulm_custom_card_irmajavi_entities_name_2 - ]]] - item3: - card: - type: custom:button-card - template: custom_widget_irmajavi - entity: >- - [[[ return variables.ulm_custom_card_irmajavi_entities_entity_3; - ]]] - name: >- - [[[ return variables.ulm_custom_card_irmajavi_entities_name_3 - ]]] - item4: - card: - type: custom:button-card - template: custom_widget_irmajavi - entity: >- - [[[ return variables.ulm_custom_card_irmajavi_entities_entity_4; - ]]] - name: >- - [[[ return variables.ulm_custom_card_irmajavi_entities_name_4 - ]]] - - -custom_widget_irmajavi: - show_label: true - show_icon: false - label: | - [[[ - var unit = entity.attributes.unit_of_measurement != null ? ' ' + entity.attributes.unit_of_measurement : '' - if (entity.state == 'on') { - return variables.ulm_on; - } else if (entity.state == 'off') { - return variables.ulm_off; - } else if (entity.state == 'unavailable') { - return variables.ulm_unavailable; - } else if (entity.state == 'idle') { - return variables.ulm_idle; - } else if (entity.state == 'open') { - return variables.ulm_open; - } else if (entity.state == 'closed') { - return variables.ulm_closed; - } else { - return entity.state + unit; - } - ]]] - styles: - name: - - justify-self: center - - align-self: start - - font-weight: bolder - - font-size: 12px - - filter: opacity(40%) - label: - - margin-top: 10px - - justify-self: center - - font-weight: bold - - font-size: 14px - grid: - - grid-template-areas: '"l" "n"' - - grid-template-columns: 1fr - - grid-template-rows: min-content min-content - card: - - box-shadow: none -``` +--- +title: custom_card_irmajavi_entities +hide: + - toc +--- + + +## Custom-card `Entities` + +This is a `custom-card` to display states from multiple entities or from an entity with multiples attributes (To use it with attributes need to modify the code) + +![Screenshot](../../docs/assets/img/screenshot_irmajavi_entities_card.jpg) + +## Credits + +Author: irmajavi - 2022 +Version: 1.0.0 + +## Changelog + +
+1.0.0 +Initial release +
+ +## Requirements + +none + +## Usage + +```yaml +type: custom:button-card +template: custom_card_irmajavi_entities +variables: + ulm_custom_card_irmajavi_entities_entity_1: sensor.inverter_voltage + ulm_custom_card_irmajavi_entities_entity_2: sensor.inverter_temperature + ulm_custom_card_irmajavi_entities_entity_3: sensor.active_ac_power + ulm_custom_card_irmajavi_entities_entity_4: sensor.ac_load_current + ulm_custom_card_irmajavi_entities_name_1: Voltage + ulm_custom_card_irmajavi_entities_name_2: Temperature + ulm_custom_card_irmajavi_entities_name_3: AC Power + ulm_custom_card_irmajavi_entities_name_4: Current + ulm_custom_card_irmajavi_entities_name: System Status + ulm_custom_card_irmajavi_entities: sensor.inverter_operating_mode +``` + +## Variables + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VariableExampleRequiredExplanation
ulm_custom_card_irmajavi_entitiessensor.mainYesMain entity
ulm_custom_card_irmajavi_entitites_nameStatusYesMain entity name
ulm_custom_card_irmajavi_entities_entity_1sensor.test1YesThe first entity
ulm_custom_card_irmajavi_entities_entity_2sensor.test2YesThe second entity
ulm_custom_card_irmajavi_entities_entity_3sensor.test3YesThe third entity
ulm_custom_card_irmajavi_entities_entity_4sensor.test4YesThe forth entity
ulm_custom_card_irmajavi_entities_name_1Test1YesThe name of the first entity
ulm_custom_card_irmajavi_entities_name_2Test2YesThe name of the second entity
ulm_custom_card_irmajavi_entities_name_3Test3YesThe name of the third entity
ulm_custom_card_irmajavi_entities_name_4Test4YesThe name of the forth entity
+ +## Template Code + +```yaml +--- +custom_card_irmajavi_entities: + template: + - ulm_language_variables + triggers_update: all + show_icon: false + show_name: false + show_label: false + styles: + grid: + - grid-template-areas: '''item1'' ''item2'' ''item3'' ''item4''' + - grid-template-columns: 1fr + - grid-template-rows: min-content min-content + - row-gap: 12px + card: + - border-radius: 30px + - box-shadow: var(--box-shadow) + - padding: 12px + - height: 160px + custom_fields: + item1: + card: + type: custom:button-card + color: var(--google-grey) + show_icon: false + show_label: true + show_name: true + styles: + name: + - align-self: start + - justify-self: start + - font-weight: bold + - font-size: 14px + - margin-left: 12px + grid: + - grid-template-areas: '"n" "l"' + - grid-template-columns: min-content auto min-content + - grid-template-rows: min-content min-content + card: + - box-shadow: none + - border-radius: 20px + - border: 2px solid var(--google-grey) + - height: 70px + label: + - justify-self: start + - align-self: end + - font-weight: bold + - font-size: 14px + - filter: opacity(40%) + - margin-left: 35px + name: | + [[[ + var icon = '👽'; + if (variables.ulm_custom_card_irmajavi_entities_icon){ + var icon = variables.ulm_custom_card_irmajavi_entities_icon; + } + return icon + ' ' + variables.ulm_custom_card_irmajavi_entities_name; + ]]] + label: | + [[[ + return states[variables.ulm_custom_card_irmajavi_entities].state + ]]] + item2: + card: + type: custom:button-card + template: list_4_items + custom_fields: + item1: + card: + type: custom:button-card + template: custom_widget_irmajavi + entity: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_entity_1; + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_name_1 + ]]] + item2: + card: + type: custom:button-card + template: custom_widget_irmajavi + entity: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_entity_2; + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_name_2 + ]]] + item3: + card: + type: custom:button-card + template: custom_widget_irmajavi + entity: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_entity_3; + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_name_3 + ]]] + item4: + card: + type: custom:button-card + template: custom_widget_irmajavi + entity: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_entity_4; + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_name_4 + ]]] + + +custom_widget_irmajavi: + show_label: true + show_icon: false + label: | + [[[ + var unit = entity.attributes.unit_of_measurement != null ? ' ' + entity.attributes.unit_of_measurement : '' + if (entity.state == 'on') { + return variables.ulm_on; + } else if (entity.state == 'off') { + return variables.ulm_off; + } else if (entity.state == 'unavailable') { + return variables.ulm_unavailable; + } else if (entity.state == 'idle') { + return variables.ulm_idle; + } else if (entity.state == 'open') { + return variables.ulm_open; + } else if (entity.state == 'closed') { + return variables.ulm_closed; + } else { + return entity.state + unit; + } + ]]] + styles: + name: + - justify-self: center + - align-self: start + - font-weight: bolder + - font-size: 12px + - filter: opacity(40%) + label: + - margin-top: 10px + - justify-self: center + - font-weight: bold + - font-size: 14px + grid: + - grid-template-areas: '"l" "n"' + - grid-template-columns: 1fr + - grid-template-rows: min-content min-content + card: + - box-shadow: none +``` From 999d799acc6f57a4ce0e562902f7bb1a2d0a3641 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Thu, 3 Feb 2022 09:17:53 -0400 Subject: [PATCH 140/248] Custom Speedtest.net card --- .../custom_card_irmajavi_speedtest/README.md | 325 ++++++++++++++++++ .../custom_card_irmajavi_speedtest.yaml | 234 +++++++++++++ 2 files changed, 559 insertions(+) create mode 100644 custom_cards/custom_card_irmajavi_speedtest/README.md create mode 100644 custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml diff --git a/custom_cards/custom_card_irmajavi_speedtest/README.md b/custom_cards/custom_card_irmajavi_speedtest/README.md new file mode 100644 index 000000000..1b0b25655 --- /dev/null +++ b/custom_cards/custom_card_irmajavi_speedtest/README.md @@ -0,0 +1,325 @@ +--- +title: custom_card_irmajavi_speedtest +hide: + - toc +--- + + +# Custom-card "Speedtest" + +This is a `custom-card` to display the results from the `Speedtest.net` integration. The integration uses the Speedtest.net web service to measure network bandwidth performance. + +![Screenshot](../../docs/assets/img/screenshot_irmajavi_speedtest_card.jpg) + +## Credits + +Author: irmajavi - 2022 +Version: 1.0.0 + +## Changelog + +
+1.0.0 +Initial release +
+ +## Requirements + + Home Assistant Speedtest.net integration + +## Usage + +```yaml +type: custom:button-card +template: custom_card_irmajavi_speedtest +variables: + ulm_custom_card_irmajavi_speedtest_download_speed_entity: sensor.speedtest_download + ulm_custom_card_irmajavi_speedtest_upload_speed_entity: sensor.speedtest_upload + ulm_custom_card_irmajavi_speedtest_color: blue + ulm_custom_card_irmajavi_speedtest_router_name: router_name + ulm_custom_card_irmajavi_speedtest_router_model: router_model +``` + +## Variables + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VariableExampleRequiredExplanation
ulm_custom_card_irmajavi_speedtest_router_nameLinksysYesYour router name
ulm_custom_card_irmajavi_speedtest_router_modelEA8549YesYour router model
ulm_custom_card_irmajavi_speedtest_colorblueYesThe color of the icon
ulm_custom_card_irmajavi_speedtest_upload_speed_entitysensor.test2YesThe upload sensor created by the integration
ulm_custom_card_irmajavi_speedtest_download_speed_entitysensor.test3YesThe download sensor created by the integration
+ +## Template Code + +```yaml +--- +custom_card_irmajavi_speedtest: + triggers_update: "all" + show_name: false + show_label: false + variables: + ulm_custom_card_irmajavi_speedtest_color: "blue" + ulm_custom_card_irmajavi_speedtest_router_name: "router_name" + ulm_custom_card_irmajavi_speedtest_router_model: "router_model" + styles: + grid: + - grid-template-areas: "'item1' 'item2' 'item3'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" + - row-gap: "12px" + card: + - border-radius: "var(--border-radius)" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + custom_fields: + item1: + card: + type: "custom:button-card" + tap_action: + action: "none" + show_last_changed: false + show_label: true + show_name: true + show_icon: true + label: >- + [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_model + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_name + ]]] + icon: "mdi:wifi" + styles: + icon: + - color: >- + [[[ return + `rgba(var(--color-${variables.ulm_custom_card_irmajavi_speedtest_color}), + 1)`; ]]] + - width: "32px" + label: + - justify-self: "center" + - align-self: "start" + - font-weight: "bolder" + - font-size: "12px" + - filter: "opacity(40%)" + name: + - margin-top: "10px" + - justify-self: "center" + - font-weight: "bold" + - font-size: "14px" + img_cell: + - background-color: >- + [[[ return + `rgba(var(--color-${variables.ulm_custom_card_irmajavi_speedtest_color}), + 0.2)`; ]]] + - border-radius: "50%" + - place-self: "center" + - width: "62px" + - height: "62px" + grid: + - grid-template-areas: "'i' 'n' 'l'" + card: + - box-shadow: "none" + size: "20px" + item2: + card: + type: "custom:button-card" + tap_action: + action: "call-service" + service: "speedtestdotnet.speedtest" + color: "var(--google-grey)" + show_icon: true + show_label: false + show_name: true + styles: + custom_fields: + item1: + - justify-self: "end" + icon: + - color: "rgba(var(--color-theme),0.9)" + - width: "20px" + img_cell: + - background-color: "none" + - place-self: "center" + - justify-self: "start" + - width: "40px" + - height: "20px" + name: + - align-self: "end" + - justify-self: "start" + - font-weight: "bold" + - font-size: "16px" + grid: + - grid-template-areas: "i n item1" + - grid-template-columns: "min-content" + - grid-template-rows: "auto" + card: + - box-shadow: "none" + - border-radius: "10px" + - border: "2px solid var(--google-grey)" + - padding_bottom: "-8px" + - height: "40px" + - padding-top: "5px" + - padding-left: "5px" + name: "Speed Test" + icon: "mdi:speedometer" + custom_fields: + item1: + card: + type: "custom:button-card" + show_icon: true + show_name: false + show_label: false + styles: + icon: + - color: "rgba(var(--color-theme),0.9)" + - width: "20px" + - justify-self: "end" + grid: + - grid-template-areas: "i" + - grid-template-columns: "auto" + - grid-template-rows: "auto" + card: + - box-shadow: "none" + icon: "mdi:chevron-right" + item3: + card: + type: "custom:button-card" + template: "list_2_items" + custom_fields: + item1: + card: + type: "custom:button-card" + tap_action: + action: "more-info" + color: "var(--google-blue)" + show_label: true + show_icon: false + name: "Download Speed" + entity: >- + [[[ return + variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity; + ]]] + label: | + [[[ + var state1 = ""; + if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state){ + var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state; + if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement){ + state1 += states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement; + } + } + return state1; + ]]] + styles: + icon: + - width: "30px" + - height: "30px" + label: + - align-self: "center" + - justify-self: "center" + - font-weight: "bold" + - font-size: "23px" + name: + - align-self: "center" + - justify-self: "center" + - font-weight: "bold" + - font-size: "12px" + - filter: "opacity(40%)" + grid: + - grid-template-areas: "'l' 'n'" + - grid-template-columns: "auto" + - grid-template-rows: "min-content" + card: + - box-shadow: "none" + - padding-top: "15px" + - padding-botton: "10px" + - background-color: "rgba(var(--color-theme),0.05)" + - border-radius: "14px" + - place-self: "center" + - height: "80px" + item2: + card: + type: "custom:button-card" + color: "var(--google-blue)" + show_label: true + show_icon: false + name: "Upload Speed" + entity: >- + [[[ return + variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity; + ]]] + label: | + [[[ + var state1 = ""; + if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state){ + var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state; + if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement){ + state1 += states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement; + } + } + return state1; + ]]] + styles: + icon: + - width: "30px" + - height: "30px" + label: + - align-self: "center" + - justify-self: "center" + - font-weight: "bold" + - font-size: "23px" + name: + - align-self: "center" + - justify-self: "center" + - font-weight: "bold" + - font-size: "12px" + - filter: "opacity(40%)" + grid: + - grid-template-areas: "'l' 'n'" + - grid-template-columns: "auto" + - grid-template-rows: "min-content" + card: + - box-shadow: "none" + - padding-top: "15px" + - padding-botton: "10px" + - background-color: "rgba(var(--color-theme),0.05)" + - border-radius: "14px" + - place-self: "center" + - height: "80px" +``` diff --git a/custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml b/custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml new file mode 100644 index 000000000..ca5606bd7 --- /dev/null +++ b/custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml @@ -0,0 +1,234 @@ +--- +custom_card_irmajavi_speedtest: + triggers_update: "all" + show_name: false + show_label: false + variables: + ulm_custom_card_irmajavi_speedtest_color: "blue" + ulm_custom_card_irmajavi_speedtest_router_name: "router_name" + ulm_custom_card_irmajavi_speedtest_router_model: "router_model" + styles: + grid: + - grid-template-areas: "'item1' 'item2' 'item3'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" + - row-gap: "12px" + card: + - border-radius: "var(--border-radius)" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + custom_fields: + item1: + card: + type: "custom:button-card" + tap_action: + action: "none" + show_last_changed: false + show_label: true + show_name: true + show_icon: true + label: >- + [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_model + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_name + ]]] + icon: "mdi:wifi" + styles: + icon: + - color: >- + [[[ return + `rgba(var(--color-${variables.ulm_custom_card_irmajavi_speedtest_color}), + 1)`; ]]] + - width: "32px" + label: + - justify-self: "center" + - align-self: "start" + - font-weight: "bolder" + - font-size: "12px" + - filter: "opacity(40%)" + name: + - margin-top: "10px" + - justify-self: "center" + - font-weight: "bold" + - font-size: "14px" + img_cell: + - background-color: >- + [[[ return + `rgba(var(--color-${variables.ulm_custom_card_irmajavi_speedtest_color}), + 0.2)`; ]]] + - border-radius: "50%" + - place-self: "center" + - width: "62px" + - height: "62px" + grid: + - grid-template-areas: "'i' 'n' 'l'" + card: + - box-shadow: "none" + size: "20px" + item2: + card: + type: "custom:button-card" + tap_action: + action: "call-service" + service: "speedtestdotnet.speedtest" + color: "var(--google-grey)" + show_icon: true + show_label: false + show_name: true + styles: + custom_fields: + item1: + - justify-self: "end" + icon: + - color: "rgba(var(--color-theme),0.9)" + - width: "20px" + img_cell: + - background-color: "none" + - place-self: "center" + - justify-self: "start" + - width: "40px" + - height: "20px" + name: + - align-self: "end" + - justify-self: "start" + - font-weight: "bold" + - font-size: "16px" + grid: + - grid-template-areas: "i n item1" + - grid-template-columns: "min-content" + - grid-template-rows: "auto" + card: + - box-shadow: "none" + - border-radius: "10px" + - border: "2px solid var(--google-grey)" + - padding_bottom: "-8px" + - height: "40px" + - padding-top: "5px" + - padding-left: "5px" + name: "Speed Test" + icon: "mdi:speedometer" + custom_fields: + item1: + card: + type: "custom:button-card" + show_icon: true + show_name: false + show_label: false + styles: + icon: + - color: "rgba(var(--color-theme),0.9)" + - width: "20px" + - justify-self: "end" + grid: + - grid-template-areas: "i" + - grid-template-columns: "auto" + - grid-template-rows: "auto" + card: + - box-shadow: "none" + icon: "mdi:chevron-right" + item3: + card: + type: "custom:button-card" + template: "list_2_items" + custom_fields: + item1: + card: + type: "custom:button-card" + tap_action: + action: "more-info" + color: "var(--google-blue)" + show_label: true + show_icon: false + name: "Download Speed" + entity: >- + [[[ return + variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity; + ]]] + label: | + [[[ + var state1 = ""; + if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state){ + var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state; + if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement){ + state1 += states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement; + } + } + return state1; + ]]] + styles: + icon: + - width: "30px" + - height: "30px" + label: + - align-self: "center" + - justify-self: "center" + - font-weight: "bold" + - font-size: "23px" + name: + - align-self: "center" + - justify-self: "center" + - font-weight: "bold" + - font-size: "12px" + - filter: "opacity(40%)" + grid: + - grid-template-areas: "'l' 'n'" + - grid-template-columns: "auto" + - grid-template-rows: "min-content" + card: + - box-shadow: "none" + - padding-top: "15px" + - padding-botton: "10px" + - background-color: "rgba(var(--color-theme),0.05)" + - border-radius: "14px" + - place-self: "center" + - height: "80px" + item2: + card: + type: "custom:button-card" + color: "var(--google-blue)" + show_label: true + show_icon: false + name: "Upload Speed" + entity: >- + [[[ return + variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity; + ]]] + label: | + [[[ + var state1 = ""; + if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state){ + var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state; + if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement){ + state1 += states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement; + } + } + return state1; + ]]] + styles: + icon: + - width: "30px" + - height: "30px" + label: + - align-self: "center" + - justify-self: "center" + - font-weight: "bold" + - font-size: "23px" + name: + - align-self: "center" + - justify-self: "center" + - font-weight: "bold" + - font-size: "12px" + - filter: "opacity(40%)" + grid: + - grid-template-areas: "'l' 'n'" + - grid-template-columns: "auto" + - grid-template-rows: "min-content" + card: + - box-shadow: "none" + - padding-top: "15px" + - padding-botton: "10px" + - background-color: "rgba(var(--color-theme),0.05)" + - border-radius: "14px" + - place-self: "center" + - height: "80px" \ No newline at end of file From 05b72015a2b862cc88208c14d660b0c6d9639380 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Thu, 3 Feb 2022 13:05:47 -0400 Subject: [PATCH 141/248] Add image for irmajavi cards Add irmajavi entities card and speedtest card images. --- .../img/screenshot_irmajavi_entities_card.jpg | Bin 0 -> 71161 bytes .../img/screenshot_irmajavi_speedtest_card.jpg | Bin 0 -> 90705 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/assets/img/screenshot_irmajavi_entities_card.jpg create mode 100644 docs/assets/img/screenshot_irmajavi_speedtest_card.jpg diff --git a/docs/assets/img/screenshot_irmajavi_entities_card.jpg b/docs/assets/img/screenshot_irmajavi_entities_card.jpg new file mode 100644 index 0000000000000000000000000000000000000000..17669712eb6deeb5cd890a2025f13d9d38599c68 GIT binary patch literal 71161 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 E8;B9JlK=n! literal 0 HcmV?d00001 diff --git a/docs/assets/img/screenshot_irmajavi_speedtest_card.jpg b/docs/assets/img/screenshot_irmajavi_speedtest_card.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0a7aed9680ec2ab15b3ad5f47ba54b91f1c31f69 GIT binary patch literal 90705 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�Rs2|>@-+QYY(F4I!4>Ee6W_vSDP$n22fdhhBCU%?B>#}hNzac)*X1w|ys zQPeOV$ulK`_CVh_b=*tVAla^4lg92P=9y|*(K{5e3Ou_)2_(-vPq*nAhy#;(;e{~P zOsEh0>%{#MzHs0UFoiH`jqkFO&&^!7jm^i8seaIQZ`QwcqLvpNy7~m_^K!K|wi^(D z+grGKa;aBeR9Dbp_3UI;@R>!xe)~_3UFnTG;Liqcs?rQXHjUo>ne{(S0xpsH>+LbB zPB7?ph10Xe_(&_MYQuAki${qj!U-}o7F8yJT#7&-;OGCUbUzc^HEEt{CkvOuzdeMq z?~0ps_&UzqYVS~3Xzv<;dG@vM5SEu!Zgo%M2+Nt3fK%5Vd+3L4t>T{@`O9F);qPCi z4(goWGq7>I;>(>T;ZbzH!XaGJ zk6{ly{BN~$Sgef`b^r3ZAHxrLG+rdsW`YIQIGt*ttVQi~g)qESq!AC5$Ak~i>Fv)L zjkJDM84XCF4HmNA5}rz$ zbx;wGG5-)7N>BwB*ZcrzGSNsd&&C%uVHGf8^{DVRXx&R4RqKZYQjTpJvADZ6U^Q-o z%`8i-4>_0B(B;2QiA}ABUlEu=(WZ7JYq1~ifmp#j4(G&@Ae{&`qx}GIaH)U%G#~(6 z(9(fVL0)`Vl6sL+Rk9dYk~m|;;*eo5Ztd1y_8K+__bT7${Y(S`jW(L)a`DXBW1CW* z+mDoCjG7N#l)7wRI%le|KVC+`yzZ&KMQdCvf}E*KoYNj{xaepuBr9l^@(wmf>jVmG zmwMlPRliFeAbXAwj-6aFN5m%{Hklp3$`0O1b_zLM*f&_MnP?oM2)+RHv)>}Zp@X{z zwqNkbs_vd{a`sH`ceSmbnUS*|61FxrmZeic;|XKoe?-?3fKpHp(fwzjWJ8fhzw%?b zd(su$_hI&YJ##^J?>!Xb`&%-Y=e8_Ro#NQV7zzYdvA}c9j*VBB8suzZSuyJg5`UuX%=faA7l_?ZX70@_K63#xdwN3&ejqN5 z7LK3C22t5iv;8Ba%?OB#rF{IrDvh@N17J_Cp@%#r1f@BRuKn*U29Mt+8L?*P_~fFO zyV)3$Q;rq+qqZ3G4d<5YhZWe_+$~8jT-I zrsWghwCZ|EpV|()byxn#i7orD6dY%o|Az1gaKCl5$&C4(EVc1M_vYfYY|IuDzik27 zGtF-V2K|V7IOX$a3x7)KPhI-c9{yZ4{%37%U8sf(SYiFHkbeLk-!>fsD-z*8fc?OQ z67*GZJ3|}KgtSzjjz~7vvKO`QMj>rU{>r7VcXHf`{5Ho0A6l1E6%U-QlpXZ5A+%I>*xkbNtqH8*Xr!X}LD&^K`%%3&(dknm~jBx=vGrSDvCS}x9Oc_wxRG{`bNwyRmR_TxjjEd{tJmhV_5(I literal 0 HcmV?d00001 From 05cea2126ac8f837ed912a073cec526d6cd74f72 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Thu, 3 Feb 2022 13:58:04 -0400 Subject: [PATCH 142/248] Add custom_card_irmajavi_weather --- .../custom_card_irmajavi_weather/README.md | 289 ++++++++++++++++++ .../custom_card_irmajavi_weather.yaml | 144 +++++++++ 2 files changed, 433 insertions(+) create mode 100644 custom_cards/custom_card_irmajavi_weather/README.md create mode 100644 custom_cards/custom_card_irmajavi_weather/custom_card_irmajavi_weather.yaml diff --git a/custom_cards/custom_card_irmajavi_weather/README.md b/custom_cards/custom_card_irmajavi_weather/README.md new file mode 100644 index 000000000..81db7fc2e --- /dev/null +++ b/custom_cards/custom_card_irmajavi_weather/README.md @@ -0,0 +1,289 @@ +--- +title: custom_card_irmajavi_weather +hide: + - toc +--- + + +## Custom-card `Weather` + +This is a `custom-card` to display states from weather entities or from a weather entity with multiples attributes (To use it with attributes need to modify the code) + +![Screenshot](../../docs/assets/img/screenshot_irmajavi_weather_card.jpg) + +## Credits + +Author: irmajavi - 2022 +Version: 1.0.0 + +## Changelog + +
+1.0.0 +Initial release +
+ +## Requirements + +In your `configuration.yaml` you need to create a new sensor in order to use the custom date format the card uses. + +```yaml + - platform: template + sensors: + date_long: + friendly_name: 'Date and Day of week' + value_template: > + {% set months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Agu", "Sep", "Oct", "Nov", "Dic"] %} + {% set days = ["Monday", "Tuesday", "Wenesday", "Thrusday", "Friday", "Saturday", "Sunday"] %} + {{ months[now().month-1] }}.{{ now().day }}th. {{ days[now().weekday()] }} +``` + +## Usage + +```yaml +type: custom:button-card +template: custom_card_irmajavi_weather +variables: + ulm_custom_card_irmajavi_weather: weather.aguada_2 + ulm_custom_card_irmajavi_weather_entity_1: sensor.aguada_wind + ulm_custom_card_irmajavi_weather_entity_2: sensor.aguada_precipitation + ulm_custom_card_irmajavi_weather_entity_3: sensor.aguada_uv_index + ulm_custom_card_irmajavi_weather_entity_4: sensor.weather_humidity + ulm_custom_card_irmajavi_weather_name_1: Wind + ulm_custom_card_irmajavi_weather_name_2: Precipitation + ulm_custom_card_irmajavi_weather_name_3: UV + ulm_custom_card_irmajavi_weather_name_4: Humidity + ulm_custom_card_irmajavi_weather_temperature_outside: sensor.aguada_realfeel_temperature + ulm_custom_card_irmajavi_weather_date: sensor.date_long +``` + +## Variables + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VariableExampleRequiredExplanation
ulm_custom_card_irmajavi_weatherweather.yourplaceYesThe main entity
ulm_custom_card_irmajavi_weather_entity_1weather.humidityYesWeather entity
ulm_custom_card_irmajavi_weather_entity_2sensor.test1YesWeather entity
ulm_custom_card_irmajavi_weather_entity_3sensor.test2YesWeather entity
ulm_custom_card_irmajavi_weather_entity_4sensor.test3YesWeather entity
ulm_custom_card_irmajavi_weather_name_1WindYesEntity name
ulm_custom_card_irmajavi_weather_name_2HumidityYesEntity name
ulm_custom_card_irmajavi_weather_name_3UV IndexYesEntity name
ulm_custom_card_irmajavi_weather_name_4PrecipitationYesEntity name
ulm_custom_card_irmajavi_weather_temperature_outsidesensor.test4YesWeather entity
ulm_custom_card_irmajavi_weather_datesensor.test5YesCustom date format sensor
+ +## Template Code + +```yaml +--- +custom_card_irmajavi_weather: + show_icon: false + show_name: false + show_label: false + styles: + grid: + - grid-template-areas: "'item1' 'item2' 'item3' 'item4'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" + - row-gap: "12px" + card: + - border-radius: "30px" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + - height: "160px" + custom_fields: + item1: + card: + type: "custom:button-card" + color: "var(--google-grey)" + show_icon: false + show_label: true + show_name: true + styles: + name: + - justify-self: "end" + - align-self: "end" + - font-weight: "bold" + - font-size: "20px" + - border: "10px solid var(--google-grey)" + - background-color: "var(--google-grey)" + - color: "#000000" + - border-radius: "12px" + - margin-right: "10px" + - margin-top: "'-4px'" + label: + - align-self: "start" + - justify-self: "center" + - font-weight: "bold" + - font-size: "14px" + - margin-left: "12px" + grid: + - grid-template-areas: "'l n item1'" + - grid-template-columns: "min-content auto min-content" + - grid-template-rows: "min-content min-content" + card: + - box-shadow: "none" + - border-radius: "20px" + - border: "2px solid var(--google-grey)" + - height: "70px" + label: | + [[[ + var icon = '❔'; + if (states[variables.ulm_custom_card_irmajavi_weather].state == 'clear-night'){ + var icon = '🌙'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'cloudy'){ + var icon = '☁️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'exceptional'){ + var icon = '🌞'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'fog'){ + var icon = '🌫️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'hail'){ + var icon = '⛈️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'lightning'){ + var icon = '⚡'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'lightning-rainy'){ + var icon = '⛈️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'partlycloudy'){ + var icon = '⛅'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'pouring'){ + var icon = '🌧️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'rainy'){ + var icon = '💧'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'snowy'){ + var icon = '❄️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'snowy-rainy'){ + var icon = '🌨️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'sunny'){ + var icon = '☀️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'windy'){ + var icon = '🌪️'; + } + return icon + ' ' + states[variables.ulm_custom_card_irmajavi_weather_date].state; + ]]] + name: | + [[[ + var unit = states[variables.ulm_custom_card_irmajavi_weather_temperature_outside].attributes.unit_of_measurement != null ? ' ' + states[variables.ulm_custom_card_irmajavi_weather_temperature_outside].attributes.unit_of_measurement : '' + return states[variables.ulm_custom_card_irmajavi_weather_temperature_outside].state + unit; + ]]] + item2: + card: + type: "custom:button-card" + template: "list_4_items" + custom_fields: + item1: + card: + type: "custom:button-card" + template: "generic_text" + entity: '[[[ return variables.ulm_custom_card_irmajavi_weather_entity_1; ]]]' + name: '[[[ return variables.ulm_custom_card_irmajavi_weather_name_1; ]]]' + item2: + card: + type: "custom:button-card" + template: "generic_text" + entity: '[[[ return variables.ulm_custom_card_irmajavi_weather_entity_2; ]]]' + name: '[[[ return variables.ulm_custom_card_irmajavi_weather_name_2; ]]]' + item3: + card: + type: "custom:button-card" + template: "generic_text" + entity: '[[[ return variables.ulm_custom_card_irmajavi_weather_entity_3; ]]]' + name: '[[[ return variables.ulm_custom_card_irmajavi_weather_name_3; ]]]' + item4: + card: + type: "custom:button-card" + template: "generic_text" + entity: '[[[ return variables.ulm_custom_card_irmajavi_weather_entity_4; ]]]' + name: '[[[ return variables.ulm_custom_card_irmajavi_weather_name_4; ]]]' +generic_text: + show_label: true + show_icon: false + label: | + [[[ + var unit = entity.attributes.unit_of_measurement != null ? ' ' + entity.attributes.unit_of_measurement : '' + return entity.state + unit; + ]]] + styles: + name: + - justify-self: "center" + - align-self: "start" + - font-weight: "bolder" + - font-size: "12px" + - filter: "opacity(40%)" + label: + - margin-top: "10px" + - justify-self: "center" + - font-weight: "bold" + - font-size: "14px" + grid: + - grid-template-areas: "'l' 'n'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" + card: + - box-shadow: "none" +``` diff --git a/custom_cards/custom_card_irmajavi_weather/custom_card_irmajavi_weather.yaml b/custom_cards/custom_card_irmajavi_weather/custom_card_irmajavi_weather.yaml new file mode 100644 index 000000000..965420960 --- /dev/null +++ b/custom_cards/custom_card_irmajavi_weather/custom_card_irmajavi_weather.yaml @@ -0,0 +1,144 @@ +custom_card_irmajavi_weather: + show_icon: false + show_name: false + show_label: false + styles: + grid: + - grid-template-areas: "'item1' 'item2' 'item3' 'item4'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" + - row-gap: "12px" + card: + - border-radius: "30px" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + - height: "160px" + custom_fields: + item1: + card: + type: "custom:button-card" + color: "var(--google-grey)" + show_icon: false + show_label: true + show_name: true + styles: + name: + - justify-self: "end" + - align-self: "end" + - font-weight: "bold" + - font-size: "20px" + - border: "10px solid var(--google-grey)" + - background-color: "var(--google-grey)" + - color: "#000000" + - border-radius: "12px" + - margin-right: "10px" + - margin-top: "'-4px'" + label: + - align-self: "start" + - justify-self: "center" + - font-weight: "bold" + - font-size: "14px" + - margin-left: "12px" + grid: + - grid-template-areas: "'l n item1'" + - grid-template-columns: "min-content auto min-content" + - grid-template-rows: "min-content min-content" + card: + - box-shadow: "none" + - border-radius: "20px" + - border: "2px solid var(--google-grey)" + - height: "70px" + label: | + [[[ + var icon = '❔'; + if (states[variables.ulm_custom_card_irmajavi_weather].state == 'clear-night'){ + var icon = '🌙'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'cloudy'){ + var icon = '☁️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'exceptional'){ + var icon = '🌞'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'fog'){ + var icon = '🌫️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'hail'){ + var icon = '⛈️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'lightning'){ + var icon = '⚡'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'lightning-rainy'){ + var icon = '⛈️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'partlycloudy'){ + var icon = '⛅'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'pouring'){ + var icon = '🌧️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'rainy'){ + var icon = '💧'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'snowy'){ + var icon = '❄️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'snowy-rainy'){ + var icon = '🌨️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'sunny'){ + var icon = '☀️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'windy'){ + var icon = '🌪️'; + } + return icon + ' ' + states[variables.ulm_custom_card_irmajavi_weather_date].state; + ]]] + name: | + [[[ + var unit = states[variables.ulm_custom_card_irmajavi_weather_temperature_outside].attributes.unit_of_measurement != null ? ' ' + states[variables.ulm_custom_card_irmajavi_weather_temperature_outside].attributes.unit_of_measurement : '' + return states[variables.ulm_custom_card_irmajavi_weather_temperature_outside].state + unit; + ]]] + item2: + card: + type: "custom:button-card" + template: "list_4_items" + custom_fields: + item1: + card: + type: "custom:button-card" + template: "generic_text" + entity: '[[[ return variables.ulm_custom_card_irmajavi_weather_entity_1; ]]]' + name: '[[[ return variables.ulm_custom_card_irmajavi_weather_name_1; ]]]' + item2: + card: + type: "custom:button-card" + template: "generic_text" + entity: '[[[ return variables.ulm_custom_card_irmajavi_weather_entity_2; ]]]' + name: '[[[ return variables.ulm_custom_card_irmajavi_weather_name_2; ]]]' + item3: + card: + type: "custom:button-card" + template: "generic_text" + entity: '[[[ return variables.ulm_custom_card_irmajavi_weather_entity_3; ]]]' + name: '[[[ return variables.ulm_custom_card_irmajavi_weather_name_3; ]]]' + item4: + card: + type: "custom:button-card" + template: "generic_text" + entity: '[[[ return variables.ulm_custom_card_irmajavi_weather_entity_4; ]]]' + name: '[[[ return variables.ulm_custom_card_irmajavi_weather_name_4; ]]]' +generic_text: + show_label: true + show_icon: false + label: | + [[[ + var unit = entity.attributes.unit_of_measurement != null ? ' ' + entity.attributes.unit_of_measurement : '' + return entity.state + unit; + ]]] + styles: + name: + - justify-self: "center" + - align-self: "start" + - font-weight: "bolder" + - font-size: "12px" + - filter: "opacity(40%)" + label: + - margin-top: "10px" + - justify-self: "center" + - font-weight: "bold" + - font-size: "14px" + grid: + - grid-template-areas: "'l' 'n'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" + card: + - box-shadow: "none" \ No newline at end of file From 111728f83736c7159ef6a28c7a9bc8f46e32d461 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Thu, 3 Feb 2022 13:59:12 -0400 Subject: [PATCH 143/248] Add files via upload --- .../img/screenshot_irmajavi_weather_card.jpg | Bin 0 -> 71641 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/assets/img/screenshot_irmajavi_weather_card.jpg diff --git a/docs/assets/img/screenshot_irmajavi_weather_card.jpg b/docs/assets/img/screenshot_irmajavi_weather_card.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5e5dd66059974d0a2cf61667a2c9953587b43ca3 GIT binary patch literal 71641 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
H2r{7@Jq=kC=r3~@76D8jMx)(xFF4=;# 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 WRik#_y6pSGOnx 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 literal 0 HcmV?d00001 From 5ab282fdcd3f569b7942e0fd396d84fd7e77136b Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Thu, 3 Feb 2022 14:02:17 -0400 Subject: [PATCH 144/248] Update README.md Fix type error --- custom_cards/custom_card_irmajavi_weather/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_cards/custom_card_irmajavi_weather/README.md b/custom_cards/custom_card_irmajavi_weather/README.md index 81db7fc2e..80bb143e1 100644 --- a/custom_cards/custom_card_irmajavi_weather/README.md +++ b/custom_cards/custom_card_irmajavi_weather/README.md @@ -34,7 +34,7 @@ In your `configuration.yaml` you need to create a new sensor in order to use the friendly_name: 'Date and Day of week' value_template: > {% set months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Agu", "Sep", "Oct", "Nov", "Dic"] %} - {% set days = ["Monday", "Tuesday", "Wenesday", "Thrusday", "Friday", "Saturday", "Sunday"] %} + {% set days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] %} {{ months[now().month-1] }}.{{ now().day }}th. {{ days[now().weekday()] }} ``` From 384c33b22b0466c98a198b91e04fe7b8af3086d3 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Thu, 3 Feb 2022 14:06:12 -0400 Subject: [PATCH 145/248] Delete screenshot_irmajavi_weather_card.jpg --- .../img/screenshot_irmajavi_weather_card.jpg | Bin 71641 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/assets/img/screenshot_irmajavi_weather_card.jpg diff --git a/docs/assets/img/screenshot_irmajavi_weather_card.jpg b/docs/assets/img/screenshot_irmajavi_weather_card.jpg deleted file mode 100644 index 5e5dd66059974d0a2cf61667a2c9953587b43ca3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71641 zcmeFZ1z225w>H=b1Of?3aEAm9(n#YToJNC(Zsg$FK;sf1IY4l0+!NdycL~8Ag1cLA zcbm@n?sva?=eaZYpXZ-vX8w83>aJaH*DhJLcI{PbSFPO-QxD6J$feyZ%>V!;B>*!3 z0C);`@(2JxL!n3L{HVjDf8a+WD9j0Xj7n!j1^EC=0Q&Ddr~rS2_wN|>695pmHF2=B zGQC+#KFM_;$Y+81hL5q@NsE!YD%l~%4#Zd0s!cdXn$2mfGU%Vi24ho^Mm*R zk+^?hOjLRU;^}{`9K-U4sJmX4iwk_iSvJPyZaw|@qdBC zhb6!(c^R3Jbnw7lr(s+rXmAYl>Y0)W0K!hK7IuNz-*ly)MO=If6#%v z{+;$uGBkFy|0n)0VpP576Mu;kFbe!H&i{8wSSF^9#;8n(sNm#)Y8=I^2?`UK{{y@I z#zz0Zp}(<%hMFWQ&sP+FYyKaw(SN|MPWDcyJl((Z8{0el#&akv46||m-PUhH@eO!x zYOAS^ia($N1;7!Y29O0vpz!~#^e=hZWdH#DXQ(S3`L8siL;#@19{?bk`Bxg(H_wN z9^*bj!+rG74xmO|zQ>Orqx~M*|3(;3F|nRtqoF^0^ca=F9W|ga9zA-DfsKWO{q*V6 zXIOwokI~SdU|>GQ#ljPb+`=1GUj7(C}avH`a zxu~Woe&4TuegDZC;4#`0^hZyzFi>YfxG2saJw|_mhV}^S9~pi#hWi8q?+reuxT+xm z4IGm&ic3P>=yO@i@bclq4B$Dcy2rR^xBxN0{_ooa01(5WD|vbcpvo+ZY_^ZscZ~n^ z0H|%84Gf?-GqyUU3(0B}p;|skdjPx?@NwG&T-^#k07#ztR)(>-oHDiz59-dNn>M$d z3yYb%orQnSd;n~W9+Ns=4Gl8PX{6WPEk^PO{W?ki@KlU3@d$i!hWU>Os|#0z%5mof zjfe2&#N(Ge8z0p^-iiMsl7P3X$fjJk1*Sy^oPF{=c26fr7klsUk0=F>KfEbgy26+_ z==I0z+cfhI#-TBae?*KFQm5`iMSnN=w@CjUG=JX~e`}hLcmF@urIM#*=L!i)U|dIB zPyZvLy;i&bIBf)EL}h^P280)I)|ciRT=sn&;f|ikH8;LdR{52-*9aPR`@q241?q@a zACk?>zow|WIq4-D_FA+NGqP9G0}ZZV&ve&SQP|@Bn|(aI^he&xcICPY)a7Dd|C%@d z;{j()AAb&j)}E`D=DV>tyzhlrY}idCt`#v=0ItOxsD*Y1G12mn9?aJwbT>z9LxMne63g!K=Bs{a)f-Dk=%r0m2`QH_s;WRXUzd zUYUONKIS}NiC@6Hws?USo|evehDj+RYP?PH0HCEhuJc;*$qD!;__V~owRJ-M9zHs{ zA^L6T-wQhYUBh1j{96wH7)XE1;cq$otsnl@lm83O7gx&>o^kCye=H@s-`GC@ULUf* zDg|zg{VI0C&vQoJ3H8uj5WCLL5C5c)ITm{qbvJx1TrzARvtW)3!XG$OU6AxYcjYan z?P?6{ui_8BY?)}FGrpLo;ux1aHW{D7--18bdP4?5h9gsPIoy`FFFvpUCYHo%z-Uw$mtWS zY@@lR)n!T+=GhAj7hs!HY09VhQqa)h=5of?N}}U830+^LTo|~k>B<8Vb!^orz+@_L zH@T}YW_E0XX!@-Cd<@w^H2msgEq&@}*Wu$!Ve$(%*@TFBwz554V+8Yn+Ro+i>!_r8 zlMCc!M`Qm`a_WX!nk}DDAe%EHFsyZjwpYQwxvklilWK2XM3g$h^&+4iAlsbs>EGpy zdAM>JB$yS*Ur zgNJw@_eU;weI`waQf)W%L*PL#@`hToiyi=ja5J+Sf{z=ST=RocXuWOEJ4|bjW)u`F z|CF>4x0T0}U1E3Y@4xI-O$w7&i^=3+aXbF2125Y^Gz(@@QqcbX3tU{g#m1`|q7|;i z;X#fCXeCCpVWEpinjW^zdFV*NHeH=F6B}cyVtv7B10GBMAyXY9lazWaU5w*-@8cNA zUPT~BRZcuk_im(&Nj$5W))-#j97xf0j)~4^LdlO;1=L*trGtVob`^Tque zy^MiL2)-)rt-M(1lbc8HZmvYf?~}cIFnt(jnn&%XUlSibK|5Hx(Y}V=&{5u|TRi}j znoT|#{2+MQ9KC0-RkIuEdhAtr$9so(0Lj_k%l>K5lR z)zcow`aDbn?QtN;nYf+%k=*4uuC^#Lbv86iWzeFLA@%m=&-PDeZu>;bcffF!9}SHB*vn*E?&-}=8i|<4vL;tLi9*$&qP|D{@_37l%fhf z)<6h0vx~F~DC!s;$kr(@58}85(bCe=fPT}0jBLM&=@JOUwII8^IEePV0}+oWBO|+S zyV%gOjN;kR(KDc7ZgJ?~U~y3Y;N8)hGbWfjTNa#C4;hoA5!niRBW0!QHTyjqL&}z` zamWKK2bvouyHylarmL~t1g>AX-llCTA7C6({oaWCO}AWg(4jdB5kCYBn^vT2NzA@p zSf~#k-#5@$*TryrnJ-qZf57RPy?saG;lBsE9C}L%Rv9Yd=#)$iF5Xq!M*9-ehf1xC$YnCMHLL0ZTAQkgAMdxjgUaYlz z%@Lk7%WobYec>_CE!|@bhD{5)Op_1bm%;;IzTrxhxNM(G93s=REyfOGkbZLt+?0!f z(Evk*-z1!1qG1pHv!>Mg$Lg01Rc#3a?)dk)i}cc_ zN^(Vlz>2fMA|*#v9$w9K`yvxIYq`jiyxKl}{d?}%9@Xfd+k8=PKx8X&aWhJJn3R9o z>Y!WMs+S0Xr+Sb%Mo_n7yo1e;Vq8i?=pNSaex_KB`wgfIU zdVXBi{;H6DU5zqO`re^;L@_7CM<9vZ66a)J9#6OReJaC9dlX&e?4vpT?b2H>*$a(= z^|$w13EilTu07T4W{g_QC0n8ET9E?onx#p=El!t@Hr6HJlc$EIT}$z!OY-ph;+Ixo zz)PMVVrcNi@m6oZYpQWF=%Mu|Z;aLELf@H81#cYtmp|rQ&+OAbJ;kh&iMu6RqW)Za zu)TDiH?rufi+0FId8f;`^ml`Qi}de7^Y?A>x2E}jQI~Q`hx>0m$+WW7N?patHZjR8 zE|C`Oj_|%`sbcoqe);uhxvHbBsNok-Q&{Ekcnw8I(LNmfC6-(XxxYUim39JV;~uXu zu8nYT>#*xj<2?oHt}Fs@v}U%>8+NxiceY8()4p1ooEGYOb=ka4Go{e~_-CA?=PF&K z9L#}Hf`8!cKy4h04qiw4@LvAW?mV3Hb^sUt@!P0n;Bn75&7a!}!3-mF<_2o7O_ zL9cS^ci2iCXb0gJ&|s||usk9wF9@tkrV)$#J0K7lB5NilX1{GEGueJ7{kq*MJ-7DV z5+%bbXyohpcrjArzya70A7zJTb*2JOwQQaI+wPTj37K>Vn(x-mhxLscrl%hRmbMOW z8-KiI7)+K_3IVYtZY#z|Zc{POJZqp;cUVz?c@>9xAE{xnd0(eZ`m)Jvu6_smvX0G6 z>3W_G>Ml_E?rdDRx_J+M!u$mQoZ5Wlvc$Sn<2#}f&t{=R#P#`~DK&s?ssDlT9xA6nO$0^iDa`?*@ z5NmTmMt^hq(DsJBziwzw)bQZ9fd#l#-KV|$1dpCy`8u>qweNTtl01KS@N03XpKiwe zc>|<#SV|@zgpV67hQ&oF?3~Z|b9FFDv%&ie1ii2Y9$E*~=4lHMj~)D?1$H&G>|Y85 z)*Kur^d*Gaj&*L6&(|rpNmZrodvmWd>l`dVFFU4dNU10G=`NpslKX*j;B#gXE*iDr zU1cqwTNeK#`SZ&kh2)k(GbNvV7p&--UU#qY$0U{!;?W&xD3U2V@ibHo>Itz7eliMvWf+3v}GIKO^B9J?=s*=cyWZ ze}`RCF3H$fsk5<-dEm`-~<~(CKMSH|Yal;KKp(9q<>n|6*?T_jg10R$X3J zFYZKu#~3~*T0%STpLsm~=DM|I7m0cxODbE0{IA>Q*2+lisJRW@P-<6!MU3CU zVPZ5X*S;;A-!~b9jmVya@52!B*!nRG9UI8jU>+jSb+=ir3J49t$x%F?MLKsBZoiu4 z(uG@tz>FSIozG{`j+hmKG^TGBYGAM$K{R(hLo_WtF=yO5F=qtI>F|-v zdC4#@>uc~hg%KH~qQtJ;^oT_MebCuJE?hr5D+-?T4op|1IWYT5tTWD1moWb}qJpTn zF3$~-$F}BTQ-X(5!+MSveGpSz9s{#%(x?XdO!1a7Rd|dYjc|>It;(F1=|qxO?gy`& z1=Ed*(f)eB+EFBbv}9QQO!v=KYw;u^|EO#*mwaG%|Chpa%exfbK)cfX&ZF{DOUs4q zw^_?N&r-CZI*E2(&h*o-m}a(^rQrY~fzIy1CjNI@yYe`L@!Tc=ow_W>Di& zW(zvuKL9S7Mly)*HXAd)SC4$$Z0rk0fIw^xAgz1HMWDq+?)=6UO4A}ZsNMkp)U87f zDtGro7cY0+=C9jsnj?Qm*v-?G@2|2We~DEzx9ZMgHu(5vx|MOvFwjW<5t5kD&(pBW zJEGdq&!R8qndlVa?no^*C)!+V+T6;zzcSz8%IE7^*YFjkHGEhg)!Z?B zawhfuCp3&nYcF`4VtitWbRfhG?C^p*T1lcVB)GP6)Bt>f+B>P1J;IhOy(JK^%X2Z4 zo~D^JE>+89bCC8+wtNP>$D`FWHZ$E%BzizOc1~IRrO#e46r9H$;ZfvN7gtH?yp)Qw zXW(RA=?&cpMfq8PRt5rQ+^edqQ|OA~{Bh&!KM#wc{+p{bi#+e%)9J7v2$pAw;8y)EG%m6 zu~2t*W$ihM4yoWI+Ui1>yWe=2G1@7KP-CtL9w5U+z=Q7M3bcPW!C$drFg#SI^M<>E+J^l>pA+EmQnMj^H|YikZ>GBQrsCUgxR`RC}}cl z5~=~!mX8oEA4E@lmD?KGo>wB+mIoK_|9wHd79w8O>wR2UKCwF_0bu(21eCNixI6&( z>IPB1&6QRzGeVRWX;8+;6R@IcixJ^%0y(Y?Lr7}zHT1J-)az*uHS3(-E>KZH&T?QJ zZcO5?jOGS?9OO|s9is~^}1Lnh_wdMciGo|lkzl=TJ%ttwPCb=zi(=jS7X z(+j+v{c4YNRK^9j6;fK|&@g`8kKS(lWb|EGg$H1flc?hL!0&)AJ(WG-$~)LmDHtE`H4ck+VX5l_12Lr42-ugN6?RlgWL zdODh_IO=8CW_d;o=0U?62a0wJebpdcNLhCh_)hNT%o}a7C!fjKX+EPiooYI68YUfJ zIp|Y~e694Ev8*rTP0q&BKe_oIjrnZ?UgvgL7J;5!?M`Zpm*(TGH#H*saHHO!?3p?D zi?}Q<$~Z(#y1RvC7O(?PC6TOlCRZzKgVgv^NwJEEJs1qddq0{yUDf?zwTf50Q4-`_ zFisx(^JfM~vODQoNt&MG-AYx6<;RluS@L;Z)bXK)4P(7DGOnew(8}nQb8GidmhdlW zz|Fbt;v8nEDj$<$TugmZ=YPXLn!uLmce5ltW^S`}5%-{TjhIF=&uw*_ax(<+N^Xv))d&>?A*-=u_tEC@;0vX^Q<9}{e%sQ{Pl zggfLddL(w~iL`sg$yyNjlkTr3x0heXzUq_6w}JCGR3a3xwN59^h+ieMUj{kghy=y$ z!xptgtUw#rdmAPa6Q5A8Cp-Wgq&oH7hN%vYsu$)P`)hha+cv!S_wHhDpX@tDVWB(Y zeywplar0)sY4@bp+Fdwo8sveW_-rSghzWem9TfPL{=oqE0bu{q1^~beTPzZ5xO(pX zPkeHkt23w>8H(Bm1OQ$bu{mxnHqWt_e_Uj8dzOL$93S9z)#P;OBJD4?;Zz!s8kg^) zPjNxw1s>C;YTi8MHPKNOo9@|qPxC=bbf;fd&73!eOtYiiar^X|QrU|r*zHRN5z8V* zIM=AsnE(x6F*`Y{5@$ya?{=k%rL)D+9|Hv~A?o>I4A0iH9kxHRm>sfk;agv7+#pAr zEs74r{ISRL94i&H54ie?+9-Xfhk)`L7Ll-dmbZ1sw8dJIP#PSCJSdMz!mj?TQYsVO zs&=?q1rB?It}UF*9Y-s%eNQ^sQ(87&A!T1m{n@h)LYei|Lg!6W1(UBG-E)Qt&ejmz zxC+BME79$9y#p%hNhKz8NgGaVvvM*Pa(6xf=a7Uuy_iWx!O+$Q<*htB^B?8v(JYDS zT*}C0AW+DhjQ040B`=v*h4iM9nED-Oa_fH`jgbr@D2~n6Hodn5}AkIIRxhFd1d~%<+?# z#9e1(a~{uDLiAy|O%((4p&Ok+7AIEj^8B(flrY${Dw=;czd}LjRSa%oaT= zw`B-LnXihMCdhr1S8%2J$_SQR*?FY5NwDQ#4N29k9^Ck;GHx+kWY(8kUE58^q1eZS zmtae8(!=AD%bbCG;E^=J{q}9Da>2%$xW7Q1YUbjcg26T$+tMnjmWa9EB1BlVpx1iu z!^o68#I*)nq`{^gUN^`R`eiCr4~LySa85hj`J>d@a|PwMa5=?RU#u+dUc8y-$tWid zIs}47?6F*Q9sN*kXvhyq@}0rtcio)iOt`o+yts+#N31maR#F1b_u)Y{{GLHCJKb@< z_x6VbZoeuvdUJ{&?XKW=9P#|FL>8v}vA#)J&$a=YKM>8UC)2EH@ja963TCZNu(sIR zhClixmAk|u!DFxM$~W+6K+icTuSI^TEkwyz#g~xNs3WHhGD&H~G>VU)5xq^8S~%fL z7m1_5z#E=7Dj2izM$ds$w!zV-m&N1(kXq$)-_vDHh2iy?N66RH1gk;V zYQo^NS)E3h-T)64F~s3sl98IZC@vGfBmhU*WQ>0=>O<)ndUlVvb^!?D!CCcYJUP!= z+GpAKkM!dgeLlCX>JNbFr!y`Kx@^1bU@F)}}lUc?y*MPS8svuNK6_#YIDk`D};-2JTuhO>$0L zaX$wdcD@y0BaBjC=f7K&l;h5}P(3GQ2FZ_@_h)cjjoWJr~kDTlXLl~f+Mw>xC5t*TtN7MOGYpE#+Dxo`M!Gtqm9x z)>_|xe_^wC!=!P1`cc z1}nE%W?OncLu?X}hVbQEF;IQD!&}Vys-%TOTD_gW4HCST>*5!hes4k`pvmJR9Wp;= zl5p3kp_JeBt->F!WQjYpus*3XDZ)T7HAu=5cxyfngN6plSaSA7q-~ZZ&9ZB8W7_K6 zpl?6P9`%4BpN^4PTmt(83_@}}Hgird1cc6c!US(Z)ryZZiF!G85tJTyA$_r{FMA-V z`KAijxSu8tuU|4m$aBw=B9Oei8W5lCQ|GDq;tw4zs&PVZSbF!Fm@*Y& z1uO6}KRbR546*n+H6wv6NIOwwtY7g^*qv`NXzglyz2RI!HjBJ^!KkVdr;y3AmuKh9 zMu{v|n`54>d*yVaWcX7qLN;WqtEw0bF7XXn<)CyXOqc@?PJZY>UQ55I)8%gD6a3cV zSmdFQT}u?OB$!RCR#|WBNwdh_eN5&~$dzfTHMRY^0xvO^kNHiN?pSQT9q59xqgp}U zt>E?c*(aDmEBg=n8d@^U!s|@;w5<(#>mY?O5k@Ubue2?qZ(A}lWA2Oy%VZrvBXE03 zyz*}Bh@RGjvDVLHW+(M^!gHr1b9IG%+BVY~Th0oZmYFq(YUO#lCGP}RDU!AS)EeLT z{h`NzMNL=9S;Wh{((c1O;l`8=1y5Bz@_?ic?@l5SK|I6pHSAqvs^WOZR(6HLp_|jC zy0xQMz4ML&H>{|@4^^48~ecRTV|=yR1Jb^i`NS)Ez7; zmvrw$Fmi@v>(-tVPQ1#hR_;v1aMEld(gg#7Y@GA~x`ty+EHDLdao-!az(=#*F@|4($R&b3c6v_;+4zO{x-h6ydiTlJO?H%=QF~Ir&;x7U1T9{ zrzFnn5v!`E)y`KTQxSUtdGTB>3DaD(J*@kuH-w#Vq|vAcl*vxs7(12yO;p%sWFGi} z$ll5UOmsO=6kOXr?@9bBce=Dqy%=ebKskka&ot=L;gZ!k*PmFW67AJ+%8kOIz>Gqo zSsndas#1KMbdWJIeO7kimkt$r_{Y@sZqx0_6ofk2mucSWu9xY{i}-|actU4cTxjOg&Yj-;JQB(n?TP-)9D<%m zaBVS1{!7j?5=z~sxaMQWU%A)YTbt+Pl^;&rd9m^PYYbnk?h{i^dLqRsF573V;!$Y@kO4O(sTtvva&3*yFh zNmUDhoh}*U(!ep>44VMzVufQWC_|L zv$L`EBF-5Xd-C&qc0BVJr(FWVvJTsQ=qKh4wm0*r$J@~gFUnq47kukGzo~DiD9On! z{BcSJi$zvWjaS9~%+$5&Log_(b9Nd_1-4o8G|@=rnP%Z4t>xwVUHL|VxxBE625V*< zvYD5XXSV05FW4616|0ON55Wq4j?{)1^wtnIS0_FJ7L5cDGQ|Z|k<#mK)_$D4B);V1 zVey-#nY<$}nqe3fujC@n8`Z6WWT;Ijb{9Fn=xGqHO6AUFwIn7vllFtSGxY(9MbAg1 z1TBLV^;Wo25gXT($FCP#jVXFyK-RR>viY;hTlWb@E%}HtB=Dlu zLPLiNT`|(pi>Gy&t_{5KRd|GON9R+V>{RXWf*=u|koe;) z{2R3SglE#|dyGpu^nZOhlK5zCiLH?m%9Hz%^Xs-l!*6+=&b#yq!rCLR=a0emg(S#!{LHFrg~1i>YW}MJ6OdPcywk6U32Ql6Buurb5V%>RqpO5GyNV0-qraBzyZ+= z%gK(Wbj`VXgW8UaO0_;yIo)o~D(>_H;K^vpGcI#-!&#E4d&4+0huyU)^D8=j^s2S6 z)go!5KfeeKZ{&nsdroeX*m^Yur@h#pikrTnGM^T-Prh=yB=gH%14kYI7zP@_J(!xLOLfvdp!?_!u;%anLL%~L&FyvF6G zqQ!@HFdpYB+tN3U5{8=c{oL>-&ar~op!XRDz3q12gv4K>MXA3qzT&nJ&@x2`(BLT6 zQ}s6Fb5fGeEtMtKUwqL~kEs^yD*#swZB zftI_Z`_<4nTY|>wl?>rra@y-kj@4k9yAA1n><<{;G5cH+Fz=kHQzNY|Q_ z$K%WLCo1bO@~wD14WWE*3rB%G`Sr!QU8PE*9dnfh!KxV_Oq?z^SR$A=kY8S3KxvZh zLi4orex}&>9?F{Q5{?Oq>8MmHRafpl01Dk@v<)RCVd^Zek^`-jMU=o)3r_typ?^LA zDAVp1L_p6JO=HcWhHrugSD{+pl6v!_ed|=phVEr4Bb!ee-aPEqM(M-QEJ;}Y1<5T1*DqwyQl@ea^1o6 zA=)4vVk#p-g}44}1o;y$8ntck zxa+z2mR6WG^lJZE;LeNKj?YAT8_UDskvC1+KT92pKb zC+w@v-^HY^8Zx5l<1(dfIgc6^DdD_svyITR&nL4>>kID%$5`>kMq^4Fo4yWW5vXHJ zpVJzftgg^WQ4)+Zv1GW+p}Z)vvEF9cghEvUv^BM{HN#REaXH zq@y3h*4okNiQfxD&V7FL45m(>L6+GeKa!hb6C;DfgbB4Op|p)LT)WcI^_Qo*^MPa; zGJaiNF}ppUOS8m8VT95+vbDC0jddgMC``F;C(>8L*Njzm#%&6YFCTw{J0H`NbeGLL z+FUfZJGoQsGAdBgrACktgC)o%UpjH+C z2kEKHH(SxaaQ>5U z;hhlYNv#@6=Z<_^{?%X}pe<0w3Nn$&1C-}di!noyv7M)iV6_vMAcU}khcANLOn;lY z?`;BHc=0H*itfH8?cOjCwYTu!5_!nr5|uV_=74 zzHI|!j(8sKqm@gcQ#9r|;a;f$3z>%|X*&789bnyb8Q|5YVtx@o=GI*=id-*Db`=c0 zWo(2-KKkVH?VhG0{oMSdjhgiG56Zmez@p8&#M{HJAMbcs?^)~~0O{w=$+dYk8Q*Ml zZnYL40AhPSd~j8}cL2Z>&mNTr09A>1%Or81D%$<>o1ioQBkGH%`wF*0-!FH33Rv2M z87GL_edf?mKF5z%U3XsY-%C=7{~JL0AfuLGZ<>dR0yXE-F9N&|PNh+QcmsHa^WmPw zndRzpqPOidwtwm3?OUHRv9ns}{C}PPMrwL{FQq4(VBbwJ8*$ zU{qhsHAvTEVYyYVBN;4y6jY(LO1sHa+tMIytTinfH_ItaIqgz;&h5_n!G@S}E2wKP zLkAq(M&Dc^7lj*yBWnlGSIMss$M=iI?|=--Yk6wHJ|w0CYXT2;t}f5dN`Od+{&-+w z@ZhZ7_mfc}pW?gb9qiR>$zVPGzA?q4+ACg1C&gmZwFwgVuU$|$D`ciUA0ufy?)yHF)WZL^xM$eJ%`!7PS!U-@J~O1kj^H<&AI zM-hvIRDJ_b!w*5=k5WzfLWnFN!$%V&gG}r<&zM-;Y$77 z-c(+*jToLajyNRCv000)T_F@EjcYXl@{`48mRz1rvWu3BO~}T(e%e| zaDpQJiOP|((JET^)C|6~;YycdXrXRv%VdLEnUX9Gm>i)sqpNiyhQ_3Nq}W|Ipg@mn zM?;sGKGp@phV7bY&&{&wK1l>_2;s9v7i_F#uX89NlEDWciRjw#+A%W|Ddz#?`_L7+ zUL%343m2tM^JaJ=U1(iITVsf;?=D(>I&M~Cfz{KH>>>N^t0DKOxCcPF?mgx0t*YQJ zJDu>Pb`?93n#H~Fg}a-3*Nb`G?H$Vl(T08xA9EkEyBXsZ#>DUhV?;r!1JYJ|Fr;2e z;E+;R;4rJwWEEuCA6h9NLLaZD47znCchAL(hd{La@+x@!%y|V=gm>HMuRxI9Gv&2}iwFSt({DVN(!kj-Ipc1@#5S1*I0D3HBGs z{vGUjTnm{zwscXriD~yni;WOqEN9`ar@~w^Lek@V8+#AZVPj{ly4pVO6seEq`bt1VQ(47+jt2=}neLLaxli}RC3SD6ULpd_Ox z5!{IV^AK6Z$=i#?zI9W~KJrgPO5Cd-`1N_MMpL1qw~QK<7c>-^o4a z!qRw>&I=nzI+Y#|B8KYXonvbV?;4)mk5rZT8j_bO1W|6>=hEg}JjpHFn3Xl6dWFQF z>C>zdGQAB@c3Ln)b~j~>&W&pBRp?j@Ik~Diou~3>PBR1>IoTEPOc?7h_h+x!V|eo5QM*m2fGq#>)S9e;CYUqPQ(I zf)$ls_ro36`Z^1oQ+0|76OC{U81a&tZE!%}`a)>bf&A6M<0QqbCuMUC>3%yw&|@Gw zW2$n_o=$4`R?FI3ZKS8A1=9ij*L89ZX6~}&+ns=Nvji2 zDrIJ-Ydn{E7`~!QnUt9`K|xMVZS`DulfV6gGVWPTA5qc)vdlj{d*A_KTXE_=m`B}^=93S?rGD548Tx|LVugjj2)LMDp z&}v^ZZ;a2ub~t%Gk+T;W_GL@i>(O?muNQ8Hw`PohIk4_6KV2`G*Pe@Ye3|eJ8Ree^ z=a8AM$I1z7VHzsE97;xIV`NXp^s4ZvoykMQFxrnjQufh3c}?WLraFcjxxfp9(V03J zbhS|~brqLy<{d5As6(HraXdw&bridNp3#PSn%3@@&g;Jf`D!}IfpWk8jBPP8aL&(v z9}u~4bzZuZ7rDA7eX2W#%sO`+PD#gYb@tTfwo`DVeCLIGsH?8Z!~VSWSg~W0J_F67 z(-I_9utQ$q(9&5rD>!wG)rUFt$ycLh+H^qCUf_^niGmmo+LP?5a7${d^!}z+6*9N^ z>g`-+r+pD8S0<#lt<+83q^~M+yrYP$=ZZ+uYE4HQJ2%G&D9vr*fN!kmW^fm=QE4B% z7bRI4p0J0OJEg_${>89X)GK0Jn4(;-nid~lJcgkLM6eNLSzIdDVJFlnG` zevtE?^+WkKa*uhd$R=U!UI9-bIHwZUWvJ+lll7u+c03Mub<@jenpl?Cf7-#ehip}w zPt~b+61~elSwL%)U_$vcMGME1+dYdVZlva`nR8sM{V|Ew9{pgK?Zg!h_{(lW$?4TN zwUJ}x22RR{+1;RO-gGKHV2_QqNCER0CHo-ruMJ^eP3f?SgrA!nAU^W&7#fX<*Tx)s zl%{NyA`TP`i8zj)bn*jFfAFi?q)&f6`e?NOB7SQEW&V%KzEQ6T-vca&$M>WI<+{R! zJ#1=AFRxu)?Q2cReiUyAnF~DtzGU^gd(~W8nypWML`&K-PXQe}CIiW)Ge)^gZSv!j zdg-<&0{eTgrf#M3V=FB3J8!(gL;?cKxw8-^8jQX}Q+0pLU=_F(*TSL-$F5Hzm$iAW zLHrRif`lGxuCMF#zZap{K8LUmra>b>XyDw~rliv&;h$KxQnslMk%i-zs@lPlX? z{kaFNI7jYo=8Jp}Wz;?_wBg;>Q=76{$gP=Ch^-mh2b)QmKv%2#-!qs{4W+S@d8C!hQ; zqdrsKHiDL(xOT@~Gp=_!)AwVgpXU#(n%;I-4Vl8SoP_Wa74+h)Ukst%>n9obBF*5W z=<-53PtY;Sh+x#tbYc=ZEt4H)YDanlCOji@O#CxoK1h$}w1#lt(IK%tGfb%^swAnS zz~dy{<^d3IJma5*vvtQRLepDCbiD!WJx#%T(honCWmOXyJud$ql%`hG6t#q?{m!uayZdu1L^2xX>B;w8LRsH)Jf%@jxYC-P}8cMX1D8Sooi4^mz>-cVE?K;c7?IU1(j zw%+Q?^`ez)md|#sVz7WZg7iA@r#1#pbn!ITn}jm6CvX2x*L68DAM;^ORM^|tgv9(J zs#}{ej@{r(I!M_5r~qWF?=6AH{Q^<&DZ{7Uul4tHG~x{t?J2dh&c{;Ln}4HWIn)~W z9jtp3I4NYOhu+VdH8o@jOg+8tBg-9d4gnvB5|dQ+n?bZ!e!})w&YzasnT?E^@D3M3 zbx?}Si#{cWF}2o?n&U+lRol*G>uk+c@>j7*k77>Q@;#b^ifL%_17K@r@kYK|X6F)< zpZYv*sj=53rg3t2RT6ZW)Fqxn_yM(r5^X+t{JOif$kEcJ@Vks6?S9L*6aB&wh}?=^>S1DnKY2An_r0`4mznxDp(*46@G}=P_gpnNGZ~ z0WfjHc;CtWUKd$e%fWMDF^CCEcN66ZZIEL=OPA+9F%4Cq=_xO~9ej~6Q2z6lCZ4R1 zI=e1!^rpW+iUn)Dq#;5;2pj3GD_yxBV-+7$O`c>=W)I)-!O-vbNYA)FinY{&#%$Cd zzzYan$YkB)4N(7jYn*%S9?Xf?s%7fCqy^Mv=)x=anmQ`TZdGJl<`2Q7hF=c*DlYUh zpx3}DKO363S^&Ke$?*mpYphZ zmVKWl3yHU!nB*5#2-@;yN?X2U`1W(%&E^iw%o1uA?(Id3RzE6KMAUuUn;fsgsuw3B zF`gZkB1GY#7y@2N-~GG`JCC2H^-ESfkL_|+7vFa=AJMb<-g_kPDLkplU~Pls+I2nT zw5ZVx{Z*y)>fC1D)ZbE{51%@N#!rI5htf8 zc%8d%40do{`Dd{f}%(0VP(*;QT z*+}T2nz&a|@nS}+nxr$XuPaNRt+X8H`S`7OGHuV+kw=#$h*cX{Rn(Uy(^OxuH?_`) z>mjB2{mjdxN09~{wIO7)S5jGm&5joEbR%X5eUb-Lw{lXt%1#j;x>Y|lem)ankoK!s zhw&M**{p!;mHB!UY=_li7icIEeulK^1rsUC*Xf~_z9d|yMh0f)*vV zOj`FfpVcQ;Y9S@EL(m-UvotLAO=Sa?kLZ4cXUDufDz^wLg(g`U%jqCR@@s|ML{7DR z?aZey;bHqo!!e*V;8O2e(ZZ&IraRd;8>FV+Z%+)egm z_15c{`=H3Xz1G>8TjD^}C+Bi~!yY>M$`yTTNQJbADRt0jLohpDsXZ~Ba_90xdlIXD z4*ltN=S2Q{YsP6F8bYUh3)2SDSG#0>`Ive_RaZF8A|W`PdDdSvi)NqiFr;po%D^M# z`xv)gY=e+ zp3odACMB^K#tDr=LGfolb7i9SL}$K#e-iRi9C2ecHiS<6q@9f%tNyA|YX+*ZW4e}t z56o##4G@phoZGINuR3$QBCm0o=FQO9o!6Cn9!@GfEgQU_Zj#FH3eq z06ArhrF*vGMlxnKdH*-|-ZG%AZd)6r?OXb`6ewP_#Whge;l(vjT!IvDfCTpf?Tb4E z_u}p(xDStl$(PLDM z=B!YKvnhDnkyq22PucS(e`MRIf8W8*>HGFq+UOMCxbp%K3UiOqKj>%b@XBnf|*{SIOub3clciC=AxFXYr z-uFyvQwUjj(NeNS7Al)i_?)Flx&*gzclRr#|8h{ z_S%;tzl_NJyJ40B!}g8!x(o!bQ$@Q@j`SN`1h52!fVXjU%RskHtsc0npi$WXQ&Zf8 zN}bHn-oQ|}EBsxWHzYHEpxT^o|2T(vTH#}ds3XcxKM@Pc)2?zl|J03X%`u+8hl12{YyWO7WMEZR$zUrf= z_E7}0`x@42oi)v#o_E6AsL6#t!>VDprO7pMa%qlzz=2fg+MM#0u{Y~`8@I%mu`I-hZ z37*PxOr$4Da|0Np10jT10>w@aPoM|!0rqBb5bC^U@h=~gP$RFW8 znBpqvvY9loaMk!aF_Mg@b51!=_WS1u&$i)sBE%fFeW6ZajKxf`0S#@JL6JUOCSEOF z$B|m6`*dJpdaYZ>N&wfP*ln_?HnAZ0(C&_{BJ|WqCIUQIYSq>Y=zZ<`v=h6*Qxkn$ zFi&RH8m~dG7{IK1#*-ZQBU+S|C2r~Evb`X2d9Xdb1n)eW;JNYuC(tri!=RD zTW}pN=%mc?$VT+-A@=fk3+FmYCfn%4g}nEmZ%LwoyA((-37G(POK}&9loadoAqm3O z3|G^lvqMKE-0Dw{@|#M)koY!u*qkJQ93eRufJeVu9o|H_A!+i45OC&6vq6mYG^}7~ z5Ww?0Z+fE%sMxE8=QTL3crP?mRj)CG^k?fqU`f5;gb!`mv{+%~hGDJeWio%Nnh!+J zB^v}#FT^l&9ptfdv_+p^&LPXIsA4`ul(~J)(t2uxyE_cleLtjN!(~2m_YvZI*EJb4 zMm6xvITj0x;^i9G+RPMgc%H4HgQsQRztZ9!LuR*6CjnY(kBH<80d$Vu zauPf~pia3UKDs5lZn>>NHh7w>j0skKE9!151X)`X-%wXHM!ARVXP(9r;l~-<-v_7L z%B2d}>4-D5NCOMm774JTHqw3n^^KMzNtH#E zZCt&{P>c9};5pAydm)&UD1KA5pD)9mr^Gc5G?b^n$M_WW^HiYXwT&}{L=Q@^9(gZq z{}qoDeU$e)zj2U^@UE*)>i9f9K}-|aaBPZBvK8w7H=;b@IrL5K&*~|XV}iL zfl$>=Vus7|IlQpSR@YSK+d}ONxSpD$0jE1!$GHoMio*s4L$^v z<|#S1^Dnk|9Z7?^hT=f{nsy)1{0la!&P!nA6L2PD=OsJeG!SpPRfROVXo%OHtU;(C zUl|pWPjlXHy{@@X>brweQ$I3O(Zxp)cL81nt;r!3%zSZXa5LSrtA<=7-rKraFb?G} z*L>b28@D{}&{LP9e?34up*K2E;=HKoF3efsc(k88!%J{An($)^RAU+7wn%CO5Q_O- z+rCV_c9Fk=0mY^Mfx2Dg3tU7Nr5ZzR>q5fI^GRu#bRH2No(_JuUn}N5gFl+**H`ng z4sH#q>=`ryEZFX4eFL#|&jH?i?c`Cdl`ma?&9i^OR7T&}|Dxz^=@7GOY)VSIPKW_X z1awkPRZj=%6uSU>J|9y8tf(MyR2r*B?FTD>ec^n0PaC@U$WufjY{Zf8H@-!mFCLaQ zb3n6Ja{%+K!_Jp$NL#?DrQnX>3rlvAHhv7i0hAJ^@K_7DOfsZ|6b;gd^8pMMefcaAPM3)k z-4+^ zUpqpvA7ND6@G*a6_V~+BHfx{V|3h+Ppow)?6&(-$s0ZkJ?s9lgjm=Mx|J^Sv_}x;k zTpOl#l6}Sp>XlD!9Wx~Bazy($>yk$Vi^*3WzCUMwVQK4y5v!MTgD zzFE2p77O_I!V{{^Us$c8m;SkcS7l9-$9VTEKO$r?wZ5gOxzpX#JA1-&w^U1lW7cu? z{uh?H|Gr~G^Z(=o&K2foSWg~r-}3&L^|ij=YG=`zt4)9^H}oCYb0c}*Xh4n1Ue7q| zm({1NL6x_Wov9p?!Bfb_3IV0Qz4>G%50>=SX=}mq1o>GdlTRitHwp3QYRSY+p$&1x zO%3E{5rL0y_FN|EYLaecWo6ye^LsGfymashsI5j5BI+OtX{P`;5(=@AkUlS3J?NT=kQb@nFOUZa4MVQ~0R!7;J{Dwgz25DA#J8XrG8 z=BnnzdhTnI=exsycYAr~-$Q?%=5PeQ^ONwSHLA``bhUd{AK^t4Y%S;UXj8GOcG%ve zMF_vXz9NjkE{c0MJ(0Snz^TZCZ%5uxNma>y*t6#A<8(`e(h6gRR}5fhXLzHb7G+T= zlv2R1_zUYLWS7S8!L+Xv>vyKV^xl7YJVRc3|MBlvxt*;|tY)CJ0uMo=^nYBq0Qrs@ zlsERYskY;_xXw_9i;0malc!9DM)Hm$DxBtnHxf$ozp%m=xaRR=j-KBGG30v3J4R9Wi z5LyF8s70fvXZj0+h#SoR%Xa^#3*O;PoA&6sJd8YeT5P<}a{y`h6Bvx&@?!W_qohA$ zGR;6v3JwUgx^U_kqf`4ED|_MWI0!Z0{A=Ty)-+FY)fd;*R$7*7@-i?`pR-{JtPH~N zZX|?li^S@bc3xO*@wqVpS{JqQ(FA8SzxH-iG&x{#MOzqLB$61~=3$(;F&od;;R;5j318+K#Ib&ps4=tLEs2dL_) z9xlq0^!4}hk`d@iH3(V(E0oA_kUPKWwVkqgv9-Ch04&K3b}T)4eNa@`!oDZaVP6on z1lBdpJy*AGXe^JMdpA;JG>li~l+2URyzS-`Z=!87t?fQDqg{Gyy}w2EY_D)Ot*F1Y zVx}L<8r5|4=V3_D!9CBO{XHp4WNlG-gCv=IW_H3B=b~0Gcw5_vY6FgkvdUM~hmYG) zSsH4i_|8vL>B2K#KJyb@82V%$y}>Y0L94lOg%R>gTca7lxq8}D(>>n4nVEqNm?Sz~ z0eBcGujr-(NuqG-En!iL$?RKfQP^w1Ia;X~N{Z{u21m_r7Eg+&S6@@t5Q=f=Z&xh5 zT)&8i_>TC~vP_iRa{cR?fgg4(sWgOc28YWcEOcEN{bvQ4mCK%nzBPeah?$6T7N zyYgVA2+fq?LJ3LiyEG)Ag5B`+)1Q@ENQn(8y6}SVclSf z+!W;9p6IyQ9>L4Cu;G0>8?SaxA~ltmK}8lmx2bE_65(ai~v~f)<%Mu);!j%rX&a!-^e=|;V9Qth{hKRn`p(( z4-Fsu;2^Izf5=6^gK3#kFEb!Nj-)_UtPgC&$%Kl$8swxrt3hjQQxAAATR=QwmukGY zau(V(BLc8y33@Y?N2vaqGEwB@n+y*wo)8LHgmt=Q-p{0<`n4)2R?+SsSx-nl>Xzy5 zBf@q`5mP#9dBrn_yx%T(Dw8JWj}5fvc7$f2KslTiTc!2n5-9{Dc*-z~s+I#YW8f zr7#pA8Ji&}2rS9whiH9D)SBJFICCz2qqa9a5F4|5-V<*EIy*aRe|#GBk(a=rr$TgPe+M5dmPo+^=gyV*!-#nZX-8!pZR zczGH7oKg8bUNdP{h%Me2Ata$e9JQ&gZ_Y2QZ&CAHYYuiD-Afd|u&Un@RRno@I*vBF zCw)Uh3y{MsQ^@NAKeG?Zdf;NX@NXiU=0Z_p+WU5;5#hR$j9PJOj_<)~-*`%%(i+F6 z9jL4{PRS35J)>kg(5ceTnxHT!2FaRkH@b49wbxcj4)e{6|`r&w!d-LB5?_TdP z->_(s3rqHYj+*`pHu}FnP5&o_;-6Z?#5ewjGENah>HVKHb=$w> zVRXYqzc(aGQp&7@PU^V9nAc{eubE=D(5gHI4KWMi))`eetb0mtEX=Q)4D1Lt$r+Oh zv=eM})z!nN5_~Wz)PmGi5Cq93HwyJsK8=P7rDXiVL23>$T0;X2YX*sK-X-NTK1x_i zh?=hhtn;Pz`I^$zb*0rsVDXW3(n;C0_A~GJ!bY0v4@eBZS1_|m#s`BSiy3lGF3d`R zYSG81AemnR8|hK_hQuxwYneCppsphoGO=aBaY*0xx|`brGuH^__H>WBtnW?o2{R+G zgTN0r0paixH@5*VWxbD+n83tfrGrtmuh8Fis#eJ^V@reOa7%4*ZDFWTGvC3rFQ=2Gib`C63k}Rz{UX znBmH|jHRyAMM^YZ}JiHUbYAVo%u?QC-usQAK@X=&0zwIz7bi&v5)1 zy(_N!wdcnW8C)Iy?Ypyi-?qO!x*wtD>7LoP-xww>dq>>lc;-GyV*R^vbJdzl!Y*WT*9{ zaISa-Xq@jB7dfq}>LYTYXf6v~3>~-ck9$+g)86F6<3stvmU&*k{6WOxzya?j+ksoB$Y~i;ov7diunF#gf!4Iui)Vhu| zN1!UI(K9LcOK_rdk%l_8>REl{hHmh={9;>YEt4g%FyW_QzkAYkN_4ky+=5dCn+jbr zuDU#IIN~M`SI6;-ql|rT*AvF_VRpH`gnn+uN_+ z3MfHwj>Pq1yQ3H0n{9IMzjsU^S(mJ3S>1I}#u1K#?eTrOEB5)i9Zs6Dd2ChWso_Ic zgLbZ;D*{p}jnGHVv@`{JmVTIGolVs!WfK9~%7aQl&JfcitC_}w^a?GMf}ZtAZVwxA zNtx{wZ<~PAoyn8!DW>Kd7WHpM)~-oN6&?6sx-gIyzd5UC2+e_k6}jQ&L*he9V>8z; zr3|^9)78H9Eg?mt4Z|BVlRYHO*t@0J_k4uOW^fly{2ayX`>TmBY_vIzY-bT2&*xvv zeA?sq{rJ0FQor52Y-ddh!=WEN&0wO?;$SqebznL2JndqWtt|F{u<^#bjLLzx9?XqKm0gW(O-swe z3%$;H(N0RW!N0I<_-m=f+M-uZ6EPIoKk{__i}m09Q8Tw6(D1pe^$pn2H)q&Z9pbmS z?q$t2@Cyq}BaQB7dn<_3&?I%(lIl($&~s2g))?(R`@n3ku+%Tn`SmXi{Qs)T(A07B zDCJ6w`4?6M!f2smrHhTU+o$8c`0RFQ(PTIILD1!X45RA2{x^fwUwh)8|MHG>TC&H) z*@VX4=3B=~u!PS8@b(5L;}TaIcigUxx8X)AdyXf-ZTfqgC5jL<3)g7vouGZr>DHK6 zwVuNuU%(X}7?&DHlk&$uG*wK3#_=D%_}d3cQHyKcK!WMPhuN# z>+BPi57nael-;mVRYymautd@gfw1jTN`tto=ip-ISJrZU5Je3F4BcJb+b39ua(8kz zk_Y2E!4kYDouV300M3}=NUP8w8B#*u;;wh9qx%x;e+=|E^FM!>^T15k-bKA{*AhHD zmrwtB_DVYB^i$NDaFm5r+c1?D?dLyFQcJC58wa@_U1{$UxV#aL%}swbpHp^+E{Zfx zf{62nYjrr4khoa)Imw#-)GP~z`4Mpn`veQH9ziehyG+)iK)V*p(>_4OekOAHFHA=p z`1~wafyHE;@$(xY9pNz9kSWEZEnnqV+vlliTCD;Y&(i;GhZwYe;ZSIJv|!c*0u-4X zNC=@Y1hPXg46;CWr8I2}cOt_mle|&4GODHMw0=sgr7siG^*LllBwQxYTJy)Y(E6%K zVruash(&o#N%sL9XG!)sblffPxm|R$p6xcDM!ME3XK$F>ogcDGkAxE-x?G-7I9ZVC zx*`2sSy^{e@cUw+X06PKBCZJ5jV<*TN2DVVNODdNvH+N)ZP#!)uFp+t8WKR+G& zkNZinB+?Chgl}9y33IFCAOGuKdaMw-L7JMS0*uhAht3-Vttpv%`Dqi_ePC8?El!1E zEXD3dLC2izFB`2|hn;@%!)M8ea&>09#}WP``=;;ma(CH)S@Xqf__`duKRyD6v~?8Qt-s3h4bjBv5EAc~0!oLeRt@wFKH&P&}%vk&yo$*}Ehu~7CJ_HH2omEQgqF99{P3VOU?!v<0AewRc| z@AQm|rN%z-7D-`LR?JJc&B)SH(-GA;C?=zJY8V;7cHs5Y@jP%d6$&iWa}&?IBo0Pa zmh-NlsVWUUT&@HixE>jPiE{NIH+fTV1$;7!X4Uw(p_n!iM*x?YPy^}nRcwtxM$>LT zIXwUAakOZ`i0S?p7qDMgc*pG`D|_KT>Hha1t{znZYEG2+8xkn8HIpf1d-{tS*^QuCob<()ki4qUijY>Iw1@Cy|T|@}^z~a%Q_D+DhJVI(m2Z zP0LM#iBY4$_{W;$$>hrPN@7DwJtcLT!~{UwMlaARS370Y`299*dS_M6WILbQv)*>6O@u zw3ZgYlP(j6Z9yec4q79^0`Maa#K6WOP3>6oUOP#JY99x?Jw2S0c)pTx;M77427)4L zm*th|cUGE|c=#$t)ogz?*%nh3{C?T;4~`K7Hru_!pl= z=iH{21@q_q%bz&>@#KBme)H}z<)ppjEY`8{oVw?7yxBuFZW|V^^kwCKQLBSeHOBDs zWV@8nr+x3EDrO*=gr-=mQ>-8IONcuM&vBpsAl*S1Z<4gg@uA`&ZI9gQVUFy*DjPzQNgJ5rM&L3qy z5m0JL8!qUFl5)!<49iM=!V~$_)DPaTDXUlqxFNL)^7g`PIfCG%2D% z!D9elw7D&_41tBtA3Qc=*DlN(I+|K|s2p!rj^gNkAAyY$t9r|V zCMWtq$1l$#g-&FnTDB}KO?R7g{cfugpAU3`S0pN|2Ydfz<~%Z~HC<8Uzm@sHa zRJYSVtWgj8hj^?|J6yw7vUB%pf_W6K?B?i4WyI&cw82I{no;UA!VCwKeC8g4P-pJ?S+*Jju;F8 z@9lBf8HEYWL~aB!-Wq->ObIU3rdHF_Pi0ske_x*GM8BZZYzbPb%ATJ^TprOoixzt` z1SpGI^Y$dfJ?jXz(Xaffox4xm7zHMfMJhtzgiLy^^-j0CeH539K@1W8M-H?M>ngQ8 zMU;GvC62QKT6KuZT|nunF@J4cYY1g@p^Zg^JEt6taPhR$&Qv|TvNuopeTc@hhScO1 zpYJKsE#xjjl}PeTqRf%;pP>!W@_HZQ*|^zhn!!CsjBG}7@6Ml@(68J^XxI*Whei&E zTbk8kk(g)OQ`6T-<8_{jkO>k9rJipA>dThag*BLZ)dUn)HB%whCZwU)fjOcYKMdl? zx3}XZ&vYWU`mBEb{79S~JA&>1=(Ep{dajl6JmHYCwH3J>zXxCP5pmN;*`Ghq+yHPc z&wh-V?Ol0Hd^GLImUqF|>$F*Y{j5Dg`u^^QH^sZ1`rMH0cxNJ`d*+1v3j5JJmZlYe#Bzed-;=E?t0mKBo1emmpWfkB-7ZM|JEdCM8M zrx9vgUt#W}vwZS?YZX1Dzp$PsH(?T~|osjVssV49qDRYv^)vR=m*4cKxhjxxJnzKOm0KBY*{1K8IfC?1H& z7>F@VTYwX1#O9k(=q!}P@GtME4(dau^%sbSn3VB^$)6tr1Sx|& ze)1AAVUTC_+CR=5sA{c4YU9g+%`yp|JxtS<@qUFRg`mSr!pX+4cs!~iV?G$88vTZl zo`sUTZ#Q2B?zptDRARbpaxEn(C4FQ8*->agp!FUbN`t&WExu~piD{iGt&miefjeo; zM}+jXMqT7OFVqT(P}7=fRB|eZ6lsk!>CG_?H&g~e;KQ)w4*XNL zLw~LL5z(NdDlfM~Sb_y{vbEAW?e)darKCv@=wi<@t!m8ZXj{mF_~JrOHI}ZAG0fGr z*A7EHR;nhP7R4_Jn+{C9@(e?;ODlUE^C%I#Z8%cagsq375P-=kUcMEZflI}ByO>n6 zdB9au@xxwZZz~oFPHUaYr;hBq{pg!g>a8@;7A8(?$H-#_!?p2L`j}&Kg=^;*mdHkX zX^59~(zUxTd8(tiz_e@%;jtu+4+uBAGw_CERVW|d>TfHh>2 z7TK=DV4f3~Ok+2@^!6?zrMr9{GfsC8% za~mdS%Kw4K&e9QvuglLrZ_Mbn^RMlD+-CXThWK=e{`cl%EHviwf6o=vAN#kYK^7T* zB|3z ztpEGJ#lvSD{8`Q!-On=O%qFHzQ5ap4bWN%Pc^n>IO8;p;(F$Tm$M}h5fYYswO$Nx& z;FR=-a3@K>Op(`F+6VN;6&^A3^k$IdFWX&KGjK7BQoz9(;8` zc(9imfijY^NKM{E{ESzyXpcX+^CufzJt4rtnq_Km96kA9f1IrU!5hP|k^aYUsg1CK zlTygsc5@jWY%oMAOeYz-tHz$zTT~rf)b)4=+b-Ye2j zOh;(96$u>A-&*Lyj}HawnKHmsWgjcmi~5f%k_CAhKMze$&62zZ{ATxQ4Aqtlvlo?k zN}Likz}K(Ub2=HMxAbZ)d9@40&QjS`Uu6&E&P+5?wML}Ha7QKY%I>$YauRXdfi=or zj}fLvu*R^yl&-2UN_8TCi_RE112Q;#v>c68-m{o3)sc!%E87qK*+E|x;Xw1-!fOsg zg#gQLt@#iO33|=gQ+i;+kOr;G*S|OF?}bN!{KsJ9M@R=8-JC;$vU$=NvmuzH`Qnc7 zZ*0!+YNpYn?e|h{-L(UdsKAob(!3Be^TJmfgOLyccwyp?OI)s}V=dc`=eIy~|CE6N zBw@RZt<3r6U_)iTu{L(yAi@*~DSe$q33L#!+mm@kr#r74Cn6J7L(q`r^!t0rORN~b z4Nl(&d=LM{yO5*X&sb09Qh69ZDQWEt#$dl>IaWy(0FCyC5pq~3ou_K%i{u_5M^3rC152Ths@~Rh!wTc`g z8kaTs_Z^)9*tE}Uc06k1?$Aprfxv5eOJTJe3@ExE3>dH)jbiX zV|Jb>R3Xh(JJQ0{9AP8TLf%)pl5X(ymbr8n3dwLDnyo|t++?pci)w=vGtLD_7shRl z2&jp5n-31bu>*Z(ma{@83Noph@R+TuXgve$+L;@%KWhO&Z5}qpax-%I;Dk%k3(a+P zyJ~%5#?-itr=x#=ntv}ml0|o}an8qoD9d1`L3M+O3Is)>44j-oqyVBbk-Nj*DDwAT zQA3*N3%`vRl&gYu3CN`Zi=Q{)fLH2r{7@Jq=kC=r3~@76D8jMx)(xFF4=;# zm(cY|UB9z(V*?-JDfT2EyO41UNPsVEx+a9s6*{0g97Q8d1?H2n<0Pg2EI>J(RzZtO zHpNkaBjPG+F+m70f`q&UQHnitfHek5*rZSqtvgYA^4s_@Mv^}!+z0&0>oI+J0 zAG@d1uK%MSNyVQ6TD|q^0&`2Q{*QXyBfF-Gy?I@|RVuE-Eqk zun)SkF{fc=ah=H|8b6~LVrR?>gQAjN6!fv6-wnxG&O2{ndp?SG^U*y&mU8V7orQn~ z^}FlGRewepbqfq`O4rxP2}lCTor^|*R#cQKEeeyU=LB}F`}UA>%Zg&1?^de5NmK@xQi>ixDs~eMjvUUpr(fwBG?0cSy zW($_XiF7`Ip6Hv#yFcbTv8Kjm?}S@^JJ71{!A*phF;3G>6AMPQq#K)iS_sbTCJH8X z206)>KTHe{-6kb71&=kn^_F0d*>X0UnwN=Z4JJJ`e7pD#p9sH(G0C#utBGKfZ{a{< zXmUgS-5%kFI^R03qEo|P(@CXiCo(GW($jAJWx&&9MsAm}7a6oCllHm_Yh}x@DrahG zympoe1G5{xDk2UZiB$o8)NCM3fGy`v`h9Da5T!W@*}ns1xatAXiG93YS6M14aJy0= z_vA_Q;__a@@QVOEwVsO@fdqXO4HpCqgGuE?@Zyig=aF#OSDO83b>-HS6FL3JnUno2~>PHgI zyMMpc1dlyWlLIH0ze`c@&)l8?4%jb8mSsq)fq4#+k`bwkcbf3B;1Z4s{C8>s8+Ll! zb!5+VyFiu;WfaH;aE0J>WPPrr_-kcG!*#FCPy(DNflnM{!sUHD*WW*U4Ra}!E{LNc zB%Rz6nxqCR=mAPaRQoC+teZ<0lDng3SCMpXyO-^ z%gQu2Fc#pldEPB>z@)D*^j2*u#H3{yF%@zux1W z-;{?)X7s^AJ(Ex&2XCxk6;l1c4B$W!M+HiIxA z6ICPHnRJmkw|!v`Y$}S|Ch%%4Z%Dvyn!2%3o*(!Y{0WOE}p><9Ep$nca`L zc0RAhPwi00_d;v_DKch$13o5*#7SUqYNvp1uN%+4hQQ}B!zugdUsx(mDH+py6<(JeL!)CmdP zggJid0@xZ>)xRfiueU#0CPyvOK>pG3FS@xV{k{!F6(nN7mcZ)<}>K~r>pimWvdTUK?0erWk6JDd% za8h#ec{78d1z3F^#nB0myl|mw^&|Sp2ImE_7xlJxov+|W-bObJ97=eF3tx`J*O}>T zBwTI3TBp&u+0qO7{?*%^bHu#eWoAN4;9H8bQNZ)LDe@*4N-Mhv5+s{)JT-nhu(n~8 zDG65RBx@Pfy@*9kc!Jq_Hyq9RSg+U#K6m%gQ4iRA+Afp2XKh^Q9R*CD zpdYNi)i`Cd&vBuy>vmqO#Ws$dm&y5B6RL9;ooE{OEqO^FM%7Xj_edL)m4?Fyc9OSo zYqdp5vga$%smZwkQDRz9$Lu+yH|N!8?bCkTe2E$u6*all0F-dEgz8c(t(!vodXud% zwCR6_*oacY?=FO-&&Pw9)z6m5ha1hf@AK;b{9>VHY(&huC+XpOt7)jr1d9|ra0r)n zebLh~XvrFRTfKcMv8%%FUIoP0 z#%EQ^h=G#>o*_xbti%u3=?LR*m9_Fz)0esj$*FxH)&5OYsLGhbYrC^QcQoBqX8^(V zOqb@iMBQlr@_y64;&%q+37?XG?PD=(&8CUv^PNZ zv_zS)fB3)$F7_LsH>YM>(CjyBJtLVbcX?j|hsG#CFW9EuOr{+Y<+rpY8W5C6Zvbj$ z6}@oX$&Jc%-!wEOhVV1Jl($mUv0bq7t|9&E!(xJy@kYY`d3pUDM6n{me9JXcVd|di zGx{+q#min25aPVpPcUp>wqQt%D4aGYeK~45LHD?zdP9x9c;$EN6iqt^{NVDBeJY%N z*n(y0j^N4^({W6yK#+9)c&!l`F+5rKAc;{P+Q)~Zw;b5So&PS31*}$mW{H^TXs3$C zj>d0G@#L>tazXCM4y(YqWGl`~(ngY6c*iQYwseI3^4Gn6+>BFr6D*S*p~k+E`A2DW zLXn2DHI-&5F7&gKJnf3mB7-Z3D?vV$KkEBGre}IbB(IB%gUoCS=KHcH^*6m^5^I30 zH@CA(-EV-F2TDWiA8SiEsmG~%bEH}$FGOo^bN`Gi_pedMuX@(L*qo=A+lZ}H+-y-w z&VDS{^-~<$W9!7feWov+DY9sLOEFYuWUwEGORG|uSKnIJ1lI(HHxgOFQaJ1V`Z@xL zETa%kOL_buwyKZ35#Dz3>#u3>15n1B#PgZvmAeow&Qnn)?iSlHO!6J(`mee&)v(eu z1S*qnO|>Q&52#z;Xmb8U{YuDF>(t)H>W9lotAg4=y@es)WZZCsokw+9Ke%Rb;H%!! zqH3lG6YcF`DxslM-1PX!_Mdi((V=TnhqCO@f7hfDb-S>Zh& z>A|?zCVo-XNp2bs7uhf67G=VQycZ&9JU(6l|# zq?_T`Wm_P}{`$m$-m^YVH(G2Vl!$CPm|VgOCOBc&A?mpsnS)*p zHtI>$gum7DnrNMFe`S#uBSyzHQhTtVGkH82;pKWH;a@8ReQbg~hToRoC~^YK5eS}; zp2bz3wX4tw0o%k`3&T}a4bxvus}`y6vsM2P3YLjhC^KB&P-={K-*>Jhs?VlStx0B9<|pvH&)BM;A}mkWY0*gIvHHDLV%X=d{T%0B z{inlW9_X_JX9E)3(aqlUtIxZSv!M7rfr>pQKwVa#&i1r7QP||xgkza|eFq6thyOtV zwl%Nzt|fd1mfldD*Vt531PigNu#l;<`T;z8_7~Ra#75~8N(`l@wXu}0>M}Pci611? zL|3KnY=pu$UX!N6f~l{_!L1k(C7a@==N5z7KvYUqM;SY@=@>^4@GX38#S)`P4SA-U zG0-y6f|tDN0L|zedU2X2Ci-K(o}w8PHVAa*)Zee?Vb5)# zI3j5+DpE_HJDxAwo@+dQ4nZ?M?$UBKco_4J2l*R@7_snX^dCF6!gB2<8t;Q#*jK7z zdxWinIw-_5Bi$2%iv}4(CK~@y6T*D@H09ng0Ot+13&B0i+_4ehYxXm|NI1AG1j3@b z8r16pl$lLPA&D0CLjvZazVS0=O`QIWJPFD6oc3?E)oSE`mXE)93w;!iDIC2eIIxnm zg{1O|>$_XWFRhVKWXJ3o-;-+KF!r6PMpt2n!Da@E`?!lroLLN@GJmAj7^+OWurm!F zek5`JP~h@W?@3pN3-b3}*a|;jW`B0B%uS6TZFFNY%1?8;T~PA%;4OZN06|Soi`TNE0rr+`M+lMag z?T?k}*<}##r}lTR&M4*8M|q456SV*uOorgu>?~2dx)%u>vg({MoCBwF^G3DZk?1LX zI~^BM^U|>{s_^}9{RdzHOO)t`C7wBe|Fo}J#VqjaJ0^Z2lDIEM7VyT(^o?tF=vb$q zhT#UO!{5D?*dzSgkg}_eFn-IKqkru=D5O4V;3Ka_eJ0+hHcEZ}dGAh3 zCeNkNkTN;rmAbRW5tO>QkxRt`d$zMB!pS4U9_6>@k`=qoq z%|;pJZ;s8T2jVcxabPDLU&~G1`d*_y4R*sl$1kb6X{B@J=b>eIEu^}bq!CWTIrRgC z<3l}EBnWU$CVXsg^A0~vp2^Mz$v-4?`#o<>Ym_k0zOiV2Wp;mhkbY@RC8}c57323) zPOv>mjVWlv<#RkVI8f24E)S#hUTq%E_%U@;7bu-4{%Et*O^aaK%gsy6^T9Y;GR?Aa zR`?B^^;$(kT-U*{-y3&o!YDsuF{tSc(FucX_Ol1pZ*yfgan(mzkf-54{NnZ`O7v~b z;WHT&y7e|qV`K%5Ob)P3$*a6n(Aw!jT+sabIWa*>W>}}}P#A}(hT&vJLrpKuP{=h` z?k}wJ!gzm8Tdbmoeury3^vy3U9_GEvw!LqSuo8@LiRg}^OzfK#f1oCGr zF6~DH0(80Ks_ze>qLdWhZ22~{__>&edC7H2YcgVDI&+wlA2r2K?^#I0HZ<-9(CV#Z z-T}oY=MP;Qp!2czzR}WR!_*QHI~~&^96!~-z6d(|0~_9<({SZ}Bap54+}oZ#yE2Os zEl!3xS#y;GH)^yb<*Oew%c5=zyIGUOq+aeB;D=yq!%k0E_7*X3JRKjIv|R+X9tNR5 zsrbcbku*MY7!gOBJ6S18N#|P?Y+ouI-ID4A zd&(Sm*gv_si`Z@_ODcG1P}0Mj{BpJDo0cL)^3UQXCs2*P4v+2Z6>>x9=2UfG+l^yW4xA8o>~u5q$*zXL@5kN} zLn>7H0CF5pRDU!J_lOA zanZ9QF_3c0IQ*@3pzLkwY^6l)+RI^Q zryhvbn<(uH5oZf0BhO5?Ki7p6EvGK*=r(BPJ;gEjdi&MyMKcuQ8QXi710qc};ixSW zBsox5?aaCQM?(#pPr{Zpe>Abc?5vDr!>dz9v=tLK!XC{ZpDBtyLGz1B9VFJFzaDyp z9D;F7Pkq@d<4aJfYUn4vMP7l*hC!F=Y$G+Tee$_G_?8IIDcJ`l^D_CGu<@BcYO@Jd zX3OQv)0^-un7fq9S`2sPEA1ERNsS$fy&lFn%su8gziv($*9|)ZxreCgN}ZFL8xqbC zWV1rRC2i}x6=W0Lkee>h^s!}fvRcRr-sHxP;6bHiLO%|MHE48y`x47~W9!-cn8nGMH23?JY;l7Q^H(tP7DT(?b^%kx-BJ`Gvb! zckN$Tx`((ABiv3C&ybe>tW3$juu5jrFlh9&lP6A#T%v4Q-#=mb0BnsJorXu<^}j<> z`TuOwNS7|`2pE}ERd_YseCh<2=r<*e-llP|1Z&yyeHi&kT&MoQ=ammZX8zcY3OWbL zx$Hf|jy=r1LX&IH| zsA{9#C@kPK#WC5|@<~*~on`VR8GETKtni?wwL!WDMLEDp_G|4(Y zm2~a9%b%hQgF^hCPCxi~-`lXYg;A6gw@~cV=JPc|jOB+Rb26V%@02yu<*c@Ir*;ua zc+#T-W7A>_hfO_RCBNehFAv#(C2cwJMWP7HvQgJG(-cK9>yzdU^zbd=qGrbpim;>+ z%kQ~vvsy4c@CC!RO8C_GQ?j(!I&inu&EbKnfVLQy4a5a?^w5fGoIRKoNLh8Zq{XhC zIs`Chx7SuU#910i~)Gy_|FJx!?Kj`TNcvvv#twl1y1M@9e$b=Seo& zjOZyTeM+yxHnnI~Z!cu<=fQ-_tW{O;h9ke-3&C+^8St*m(45PY+EiM9!0leX`i`{U zh%mm->oCG!s>6ulA|jfK?y!sdOyE?>*JioHCTqKnrKVk-zrudeDY%7`?Sl8;Zq_7@ ztTZ>Kn^kr$+C0<>{L0`=(<{GeE-KUyq|->5ezvl?1f!(=l6u6+KHY7F9X?VX`D(sb zW#y`o;B5IqCC!Uk%#iud90w2ndN#4NBP4cS4`C>57NMV0l3lQs>tu~fSd#;`g)SdE zIP@FfR5raXJj{}n*S=qRc}3tFZt9F96xsrs><~sf;JaZ()t+sbA%Bipl(K+H4EQY+ zb!28~3s8MH$U}e?I{_AT+CmuiuR$ShphWX6V)SLfi)7<-gL~+BSxxlrqaEte{RCRW zl1l#vMP;O#l)--gR@jC;SSo)cz`|xNxJUaYO)SxS{NAoURK8qHte#T*tD0v7fIC!+_HKJoi*SRl4*@_hNd~_f>nROYAxI3DdH9>FQHYG>5f%7ky)(tnpl$9A_OwznkKlQ!uhxsu*wR z8Wvmh6lFKiN>BRO3q}}|R&ikTfu|ax9v0bvD+uFzOB3Ng0%;mv@V@OKdhFP1794A-5)7WdHJr} z=`U5@bjtXAYU99{_1gK~Rs+dofrf_JndumJSNU^#i7_X42skotgparu;2YLctHY@d zUG7Lo(lJmFeI1xS??hrMkIbN~9i{)@@4T4En`iv$P^|lwXPZ&lFAnyY`M$4f@F6qe*h}OyxJO7hqV$Id8E!1qog5}Kach*) zevg0zrSu6A_{4ulWO@SClGK4!U`=mPQJ%tetB)GM{^eXAI-`f4f2o*OGtyGfwhEnU zW2B%414`FqO`X4 z(GfvkS>^F4qg^%Hqi$k;>O4tlX&^NE4W+Si!WasS@!W~7OK}HyZp>?q9(1b@)=c!i z=Nf|?02PuWbyF)3oT}g8^jGg5TCTS8IU65KGqjfv(tT$>)!iI9hIEih^%!9-TnLNJ z#kz`T&BcWuMkN40IZ%<@xPWjrzMdz^c(Ox@q8yq(#&yv(p|*Ia43w}VRBzrPtK1d{ z7hk?Vt5A4jYJ}5!=3EWk_jQ91NSaCfa&N&FTld!GUh5;6m8BbM>za=pzF8?>JJ7@$ z9Wes`YWdL=Cjv;}&*_dsO}0l&NMlk)e`5V0z7$c73%m2n%euQ=1)=uV$4`>MS7qZv z1{t}qgp(xY@w_`}{cb>o*5@s9qARMgwf4;C`O?>37ez}N!dr+~2Js!4PyU{42PNpH zKD2YoZyKu|nOda4^SEuuD0^6E6A!1YaomU$`I(4^V^n}Vd)G>zw@ z+hBs8w^;gx)Q5{dCt9|&FN`}C3yaG~++??P`cV~^J5E!`e&X#Ds(auhmq;VA^ z1}shPud;A=+N)9bS=Fv=?DefS9QP{TXG<@YztU6-RLiXX*|r{2venf!s%&n>a(|$< zyioL#D%};+AJ%Rwe_UVa!W5Un*Hvp@KV5|_B!|YD5Lc;YpzdE{zg*9CDE;MamA>OB zNfn(ng2FWte|u}HqEDZ?m`cML^9E~{t>9#mm}&$QrUm&su$gOSZK%ObmC+Tr)E3T> z=VsHV)E5-el2U~q&aMca4OH;7-KvI(>fN*zFcg?I^?+x0{M=0|mqP6M0>CcUIJi45 zR6gxx@thZCCFNJY*M3O-U>jYg8j|j_0sU5b=NlfxHvI5${UD{(W?4SA`uDB@ej!p| zq{%i_Wf0))Vr&6A6X4aYPw7-le9)S$%rQn%SaIpDTea-W7_5c*zTb?V=$zYFwc#14a_1IY3)=V zzne-_;Fu=uf`aM;;8=dGGh2DC!*%6o1&J*v3IqAveB8M7MBi?y)*~kyY&YP<4oY`$ zFMQr&r4)6yB`mpYAlGC2Y9#R6g^J7fr(8ARq;GxBeUInrHPh(Lu&bn38spx9%()~ zXVTwa<-ghXxySJ zUP#i`wpU0K7s4H6JEy<*4p_4(r3wY2#p!M)BQoPCn;#uM&K{xaq4kxrNBP0KSA&Ab zVl$Dgu)KLa-;D)xtrstfOdVX9o4vofo0DE6toTo;S#Ek=B$uw}Ta!D%UAOE&Q>6Fu z4T)v>s$jq=H1Cj2T}l4I<}st0JVdA!Z;@g;Fv5~xKzSq{?$i^o*53kf+m^GHc{^H4 z)cJgSnm^rl*H;!35qpuzB5OIf*#T+55lSB>ULe3PZj}cT4q=G0((=fhwR?8v(y3EV zVrk=ifnt34XIXA}AW9ZF2|d1mUG)LQTEpn1wr;O_V@qJI>{bkEt6oo#=Fw%t+QxEIv)|uDEh&J$c8YEtZTP1=XNwoOogD;29S7X~ zon-N->(l)S@Qj6Hrn6kM$n|t+%Ewg2^3|E-t)H%voJPEDc-$5A`$n3-RQ%m_f2n3t zSbj$-+=YH^G==gnOCn#gWj z6YKywv#;|_fodi|R!h=p%IA+4YRvlkTb4Td7pkU`8B0^G0#Lh)q6kY;0Umy2PI14kW za-6kywC*%aQE#p)85iE#MQ`0t(u_#5MW2Kx^mar@=iBNsm!WL#D0Z6s@PW)>K_hMU zL!snbVl6Y{@`+J7w3*YNpH|@YoW5Sdz3ms02;D9-(JHf>`E@udzpa5Vq&_7v7{s~jf0(GXuicv=ap>@oV+FrU$m_&Zto=-#$LKRRrAyLrs^!n^y3V#Q zd^2B+!jiw(&0p~eM`{#%X=F_d9@%@*XfzNC1$)A-jMpKP`h(N6Gcv_%Vc{JvmN4!Q zv0mA$GVsZoRdENpu-iyIzp4`^id&m#i-~aksJA$+`CPl1BzuvAQC<5{#0Fp?$J{`| z{2uN`g6BF&mG&mL0N5`sDB!?GbinbljgIl%+lEer(vH{VU2Hj4qCS^8w6q7SdS*SUx;m`LZLb=yFAZ^%?;b}oVM|q`=_K_B6PXqC8#!YpXMn{me0;mFe!qoY zICV!1E&fu47H<5hl(~unjO0Pmny7V zhvdfJ@V0dsc{&(ci*HvcR7TA961$aWq-B>0RZRli1C17-hGzx>h3G{ZW~tgs6Ds zo!XoBO0tV+xQ+M(pn?^_AwPS1yJ$a%On)x*TqW;-Iz=fnXuk;@djgnJ8M9RF7Q1%; zpFgjC9UYOGkse$QHNOK5D%Xx!-JS?o)c+Vgy_X|}F)$f$Lr}yFe_WqhmSZKzJ#23T z+_zcN@z&MY8EiizI}w=f{0l1ws?hTX0?PZ5(eY-|hPH>6 za^^`JxwIoMM6_)Q-QlOATC2bqXOPPjbyGyH=5Gmz&mV+8J>@(d=X=L@=*J7l=Z}kT zCPV3MDyZZmM|OW^vcl}YtMnaZREJb*UR;dd)m_L>$Z^~hWX6u%+!!TnK~!q4huDMC1V z7>DEbwQFn+4x>#ZSF;x9Mi)|2b2eh+FmFI+RggSs@%q z)XaZV-7(iS$nhLr)OmG~=$eSoH-?ix$<9nHI{aJxudj{kqwQTAR$o|Sn4~*|ju0|y za*0Wfzh;Z+vq&HpDZQ1Lh2-DKyjfS0kUk76)kT;kOc|-RAQ))!-74NY*tgB=Mj5`Q zcNJw+vg?i2ViPPzn{pX?X#MBtEk1f~X7HHyMXeF! zx25;yrEnUhaGEa+^QV!04l6sHB^~K4Zw>SN`}b|-I?zUAQa#&u&D>1mp!3RW07FgR zeE+w@Pd%19^6`TZ{8zWc2U!`9z5fHD`R_~km}Ho)==GHQi4g__J-CSb|nLj~kWHLXUU$mgVPix+H`j~Pl z6EfGdTPIoDj_a}WoZdA^y*K9h;7gkZCvp<3*iNJwYkKplbkU0J6nIyB4|V&zSzo^) z*KHs?cntpC`5YT83wpAA4F?v4=TEmG%-%j)$Z0q`PU-aqR_49o2NdM8WdbT;h{T$V zE#t$2&}HWN1%#G2Bq4~usXqpjTBeL+dGlT8KsF?K9E9CAF`K!#Qp9;tm*OY-*k4>= z4ix;s4IE;I<%>_Cv(w(Q4n!OCPabp3(|~Vv^1Xd`!u;A5XTi zwaKx*Ro0bBduPqu9~z-rZT&(ep3E?$^FN9eldG*p`|a({5nVejzvj=&cUg5!f<%Ry z*}ytbi5(d+LqnrfQ^MpkvpJ(FV~f73^74vEwkA|bb%%oQ_O|f0qg1~v(+_S5yrpl6 z1m2^O1dU-+)zZ;@MtbtWrhz|pCszb|#?JDIjK{CD(p?O|;UW1Z0Yx{*_TMxq*ygg} z?r3xEFl2Nl3RKs4@8{QsM*pVi*3`FMhiZSIeH11NEs&rjULv}KA)(cFDPpK&1TJ$+ zZD{Iq8j|{;6*k&+dDai{lpJZoJ)6p3mgxx8!|4xTWvpZA%*x;epB7j+l)CPBz&=iu zZQvLb;i)g}nd{o>=l2EJ3E zg`jIXA9{*9)XLEzw+)_D%JG{7Rkl;JKnvz3@X3lesfoSnTL3S^J+|wO+*3}0(_2Q) zNu-W}&KZYX?f{v4^+}wdi1^g~bnxesye-4yPtEf^FUA!9Qt|x=yU;*TJjbEv^K0)7i0 z;F!Fa^E9Nc0DRN6EH(Ey=N7)ui zb)iI+vOClJV!C2@b0ld5YaL>GpSv*eA6z6~kuNm;mQCQD^Zu^rjt0S#z?MImMqqU% zn`zfo^NDu(O!2;2zK3O6MX?*E#$HYG*ZAPqyQkuBev}RpOk`79xFuMNlA}%t)(sAq zRcL-o&-w1rIrVG?f!2aVui?+hJl#0Ibo8J@bR95NCQq?3Ix-gxuCOpzb#Yyd;GJ$5154!mvtLnmU$Tla+n zW8+xzzzVKEFZ&@s>eQKAb{ue_@xfxvl24g-Z*2i;n?&TobT-WX5yR479hL^CfCN$T z8g)~qU8;tAwx2OFY(_Z1uq3Szk5KpviBAn&nVbBGZw7CjNcyGo8cG$RKGEhS6)b&w z!L)NT_+H%<#bv3{u!R?xKTz9atQ#AKIIc*!KIGv`>1^c8{#ou+z6lxE@b7{KhTi~c4 zAdl>cgkND871>Z7b|MU7b`=M`cDE}=b8XG09sAuzEX__I!O)|{M z#+!d8tRLEdFhdufAmsMgo2d|v5q}wu!7r9;#ET5k&EeUFn*L=q>`=PF3FO`E@f@Ds zY5Zdda?Qtnvc_Xv_!T94Xf3A*+^sei*knE1oG^;ad;=EMiW?Z@efUp0T;( zvJKmO<{M{6Z~Dy)3Enqyc(Ezkoxc znIqOiEu+!N!5Naq;-G%G*Ud9E&OaUFQsQjwhzjOoe|18 zw$7$<*@0c5y45$Nzcr5R(JYk*nEw!6RIvUj#Jm>&OxRVLUtyA6k}ipZRu<&i>(ggx zqYdt-1~{*@V|}n1WexbCx8?Qim0hl(?#Z+54`ySEjkcKnFeGR(iKNh&Oc%Jvet^4J>B*Rx=-hKpedftah~o9T@U8B z98(loP30ye{|4}bj4NFD7h0y}*`))CW8L>7t2Gy_)l*fKX6s9b<7^V-)cHRU=tb9? z75|L&U{#pDv(@ee#M{`?bTh}bJZnBu+;>YWfGI`wb=J2DcfW<$m8YJ=TQB~o8Vs8x zrr_POa&EKr{#&uIaj)gVx{NqW3FCdasqpyaw3pRCdCOd1+AolqQGclzX8fK6R1x@Uh&bCtt$VdCH_-JV{4qiviVf}U?%|kb&R5q^jeajESh|{)YuJLnE3HZ z9gjxY&T7J=+et>jV@ZR$EGXNK?lA$k8R1NWr6f$&zILbAwNl)h5MnGMR_KpJM})*KV_C^Hm-P zN;-F~X`6_YACJ3iPL{=F?uog){5bC17-3N2E??t*%T`x=^}|TZ&G*;GUETJj)w>+U zfv_zF>1R3j`EzhbVxkp5M5cPFzRBJqCfC7jp}Otd^*nKKzsmUnod1KR_5v^amr5i5 z#ldft&v|g%lfIubR<7-g0*-d^oD!ESk-vtRFb=uInrwL z>?URNc&W+hA9IMF6avvP@fuLC13@B~nc)fKvayKb8r z^7`FRP7k5w&yM8#t|z8UgjQ8$w)D&il0A0}YOprIss+yx`GWmkY`}3@ZE+#S48Nd1 zkUngnzHrzn)I(G-rGz!ZNhHWd=8j}}@SjS@;j9`q6lDS$xGV05;z-CJ(-lNz+od}* zZ>DU``?*RNsE;OLdJ7QG>_R0w)KV#C!Q%HuGSfN(F;_?4r1^;alUe<%1ZLLa%{Iba z-am7%z11s255dPHu2u?(*U72~YIDqJyUFKk4Ax+&W!w9>`mQx!*|iaUOCOWTG}fG~ zF(M&*?@U)$VeBRjw*LDMG^y1l(@fQFRig1XC$i&XV#19Xmuy4G=oYb8yFN6rFSU0d zlCsmho=)=gR>{?x?7p6pqPP%}1iwp|2XFKkxW+OPt0Bbl#!bhgMX~k8B_C5+)O2SSbRE&$xPzSg2wL3o=t2_vzG@ZRc z(3@Dfu}UdM^2i$BU9-7|z2jB!r1FgO>^eKAujkeao7zyJpjzU_J6Frthw~k?1*unt z2=UK`nvy;JW_f2>Q5`Sh7$vT~BQ*NRzYKIKVB09RXm{XpZ33uPzPw636B_+tyEndw zlH8KjjBEM&%s(c8#fqG9igw1cMv1T(m06Eo@+ofFhpXlSV08|%4RaN&Yh4-EcJdvE z(uctt3l8p-zf|qt7x%(d^*A0BTs>v+P4NPncX`q7Vm<$qJn0u{sPW=t8veoI&F^5N zFKly|+0+*D7UBLCw2J}|@M|lN~6Pr zJEeUk8>DpQw`8T^2dk5;wUMs5HqVTlrOoGd`;&ShP@bs|eglWXF1SVHSv)=Uzju&P zQE{3_WbH0!mMQ=oJGmT#uCXYR-hAq0B{>cm^AkLBXr0+?E5GN9%5V$&j}fXvvMIrK{6O#1J(F6IxE_`wuKl4%g|X;HNs<8;wv)E7xpgvE;t~AC#{;;70%-)`5ro zQhNTJb=WC|vlLp}%?Z+HtE?oH%Ur$Rt*SSeN+yWKNluF1~+34q?*bGyn<0YVo6w70tn^nPNP-q4}_o0i%{pX=#Y;{nfg zgW@Kr5l32-6nPYS9QpN1tIzcm&pvUi0aGeixyG3cpdd6eb!%saNUtTle!b0gTqiOG zRw240F1rqm9$9eLCijD}jdbE%CP!^hv+@WDU{grMd$Vy?*OJY6RR3oD$b#{~DM03Y-mYZ=2cvh)#C`j=+}{E2RXq0uP08jvx}7MCr_XyG@m zPDoL4SyTIzOlQTqbgy`1A)Q==daHT=uNtibMxPI6v{d-m(33O~L4c4*}I& zs<$}X@a${~w!L0f{0?bunc4o1$*XOJyxADf48v5KFV089>S0D~Arib;N)@vubz!hK zXc?cJ2vW$gW=Yrxp_^2A;sTSB)P#ydyjNC~nKIn23(~v#)jsG=zs#@Aih#~;jw>QK zr`}K0Ru#Oq^0F}rU+{jf_@L{4$bIVi#y^R#`ULp5K^W+bQr5R5E2w`B5}xuYGMhwj z%-G4O;K+^L{Nu`Uy##HOQoycPJZf8*w^z0<*6?=E=TUzYqaUm1@$@!*IXx)$nW08V zyZBq)+N=z?Vhl1O_Ilfn;*2-e)0&}VFto3fc&Z!;Z7h6`o z*jOlHmo#_N7oBWbCtaJlMo_aIYPvdMT4_7r4Yh_?Hr*#vKfP&bzjT)!E9WbMbJA8% zmHJ4=-mK031Y(ak&s`rIzitQY+Ck{gR5#}A?|wb!q%4)nltpKYnry>F?aKItU)ek6 zgp4rj9~#yhGPbM=bi}Wz^SVQ8l+6m4D)X9<;r-2fRca6e)7Ua0pCP$>`BJIU4+%nk zRyICWU>REXx-o_Mt{-+zq1o)u_{_I^-1Tpc*T|k2=50kox}}%;qlVmQvP>LXLUyvj zrdchA3VO$2{y{!**>#E4VgH6jJ69;5YoN4rxG*vy?)KJJ^|rI*%?>Q~DtzV1>&qMg z(pLW(gPXCbKE|~^ zP=e1qaUQ%X3rX8RgYZA+_ACpGCw_G2Sp z8mMYC@Z_s>@p$!~eCJK!j+#(Y=R3f6S$W<%nKu_rOrRkF-t6?9&-8@lOZhk(HsuYF zBucpGG`q!?a-J7Rp`0yHJBn1jRL?F%?=mSSpr`&v-3N5nBU!kH8|B$HKvToTD?9p0 zXjoKmaRn~L3!=N6u)|)dV7hWr6J_#kmyiD|Z9aATaB4q}(cjL?cP9x|TeB|`-7GZb zbTv3GYSj>BW>lVArmJv6$P+ry{rEq2lXQG-nCdp25N21d9546M<9YKwS`?kDIecbs z;ToOZsg{@%RsqV;?~70D_Wywj}Zf5uaAPySkOSkxx&TKz@U)JdAn zA=`Q#&k*qD!tVI43E}EvY&vb#7AE;Y@>kP?5@Br|TQptIQqYO`d=%qm93DH3GZGZjm4U0(if2S$QYDL4LE0`bu#A!w-KGk*vx9w7s$Q5zGG|g2N zwYNtU9pn$a=jh@irIC$bAHS1dRTIYRcB-~vBMa6&o)cH!5|OA_AgU<&ika> z@T4wPk=j-3NCYG+yDfZ+W~b}qv6DU{p<~?pL-AJv zljP=uvBu_lwOaztN0|Jt`GNSrl3_a0Q|fH= zQl;KP$>0@p?F8fT6>nH2G%t^BM)r#DV!hIK6xIe`uTW< zvAFKy>*jY-h?K$<6(hT%eg^InZaWlk~!>JwI z{2&!>`Qj->9oMWk=NII~k?+9Zi1HdR&#Tvs1h!}-X=uBEbT0ilZH-V7^4?-2_G9}A zw2w*J^4f8$zeL)MHfAxJKHT*W(&4p+oS`N;$K}#V#YkMa-fKG{(%?eP4!kJ)pNf@X z3)YHAm(Sn-{G}3l^{*ZHZ&6v8(~eL9<+xkXfYl`4n%O$3meOuWz2eyrpo5#CZ%L^> zNy`_wxneX-Id2}6(xhm7y3-ph`sF$(&t>MoPUeFoyGHR~^GHLNGf$&acPsME*mkw0 zxdbu_k6lMT|dpEItwT6#!O|ZfrX2d);|{ zcF#wp+7s=(DqfTV6!NLL?`{RG9_L5_C9f|Nt)`3P;_I>~g8=7;S-nxYCF+TQ(sV5W z+gmhL(#g;k(FP5&RUxnQBhcZIRXI?n@sHuk)@KJXuGjKvFSbRqEnEk)4(g7Ln<$&B zd$(6?bZj0Fhi;11bwpx7Ds}hlsB@kCD2KaV0kNWL;f^2z+()ZmHAsKW>Sn28t>^7L z-b@WdwnmH=iajH~586d+VSaB6IZriOlL-K|PJQ>b&>0J@SZ+9==e`@ih?vQ1c|bDe zsbWv7lLM-S#Vd?ODpN&!;=CA*AK5x6yuPU)pjc9s=rQRAtl-6Y9vJae%ns-4z!dGa zC~lr#HzXIk^dJBCGvc4n|3OZV3i==F=u11VsHpZjk79qme3<&+{{*iFLxg->C!l}s ze@j%1&Ww9H`k|%V#r2DX5kq3o{6g5DhgK3&dwD_dozwPD6#wr(!YbMlDZvpR9bv!K zK`}_H`|McZFY@m1L-q))r7(f_K?J^Vm$&B&YhfS!|NDQuhy?|%ql6X<8ES`FpX#5< zJVIw3blGhnN89$RTppyJ_1a}6xUzm|nHStjR ze5!4JU_EJu=i&pNBeq~h@9*5AgK{)QlF_*Nm`O{-#)&}HuW44jct+n-&qr($O9mwT zqabM^?gcl^MfqPb+1`>*TLt6BTDc;9PessA+cVfJ4I-3&jYQN8S{=;a~+a4_Fd$gC182uo6*9K1J=4BW%+jJ zylMjRV-;(e`F|>BCCryFIv*sHug=#MicfqyP&+K z3t3X03uRR{r5s#L#(v#KgdO8Xs7_YGTE9t*j)}W7a!ISR0F~w1?%jfv)WNIcRE-l; zv<0-16!U$+1|=(DkC(IBuo1{r)BOgDv1xU|OQCL5Z6?2lMFuYY;V-6{RrQdcs||hh zimN)XSu4--DlO;@q15X!FAJAJ^3RearAJ|REqli-o+ml;w!hOm8hFVjIFg5~YP@M& zn)yBRW_S)Hb0X6%0~QXEZ2kUQ=lT1waD{_GVaB(NFVCt}t5 zAU)qT)*#SxAi}%#LXd|MEK^GrEOG_qM;ZzjJH0pFW0mCY?@3qAIOYvn@vkUeC9SxM5%=fh<-ZzqhUuk--yiobA@Uojk z|4?^fwothegN_-O&TS041bbktY`xS91N((V{@)f3{l8Ryo_74DB7js5WMTob`G2X- zq67a@RYP8G_)tyPUz>G~TSjIgC&nad{TU-guF0mmt+i%niMx#M9;q&(xzuYbYv1!U zU{|}NG3W^#IdNt0b}8U@YfqiWu>(pfcu6LEl@(<+(gqKlaAwB*tU|r!y1M~c(``hD zntFW8$t~>{1c$%PT0w>*tRGb2HhYGxX%n}P-7{80%+N=A@{s4dtKF%cwqv<2+30Y( z{*&68S|mu}E~efeg8k~EqY|*fkb%x}QoJ8Zn?w}%bgAu>l%2pH1QMlN=+>%mguy58 z=`u zENVnL*|MzaIsr>8_^lP#=c5W2rq3W%gt69M(?Ode@r z5#4-NM%%`S_I4%0p-4@|L(QCiW+#ojj&FA?9m|_$My(g#=fgFf_{WHMEo&v&q`V;V ziXMApRe+{r{t&RKj|Q8CodJR_R?u=m=nb7`8QOPP>Km^8mN$JVFH!V+pUSBl4a&vq z?5NgE>NAE6h1kx4A1>PTf+c51u|qdvg<&VTuH~?r_XB*Y`HpU$0{KEv5I#;T5jfZo z1Lc8o=GYW}Y8uz_7b|XTb)#uB-nX&E6-#nD5(dfd_xNA zCU5^9ek~9Lr_WK*lw(rrm@*z);#( zR|!X9>D@=o@~xOCfT6psgN1moorDmtt2l`;HpS< z*qCjdKz_t1;>L;-_pf>#ld()K2Z%I|hVxyg*4oKH^F~wsgDe>4nt|`=xefr(ZfT5wJ)>B590o~Y7x$#B9%DALnvzT!Ib4_b2 z4RzQHv#;V-xzGXz3_=V;X933TWI8ttFxJj)W}d}}I4Jd< z$9r16oQDa}v4av%7ZwpOaMF8|v8wgzG=m}BBqcV_xc#kmq1~5(^Pe^<2cd!IfVF>K zPTBqhqqQd_!s!i;6u5I;-EEu>$uxt2)~49x={XxU-C3sX7QcmU-gbU9;R#X=I^9KI zj{=L2V$WbJ6tKW%5mn4RVdoB`lxB$Ez@u6q&qPOIwuRMdGhZizU5tvmcOQHb;$`b( zoFC^IrEvx)<`0cF{G2X4DWUPtGoVSgGNI z3s8EtFmMuG3_et_*q`$!dF6Kqv+x@r&qt>SStwzTdSUOcP2-=OgcwUOt~bXPJ+YbM zv`w-3ZaR%zi*3vy@n3)V_>FCNo2eshH?VoG9Qh)M+U0D>cqNR~)>!-2kAr#%9L_wB z%#!9*zjVV|A1K}-kn`L!1p)PsTn;vW;+|nLvqhIzOlHp)-uAj{^*&JVJc?CP_{(fR zC9No6-sB%9QJk@9f22%WlZZgCpN2`m^PgP1gik|BUDPhSoH%ZkYrp&5KkerHasEov zjrwJ9fvOw}ZBJk8C=be%3o7F%`N+I@tU(!LjSE)q$MFzU9D$n8wmDm^^@I_Shq)q1 zYg(lkxr(SSr+7fCAnph}sx@~h9ep$5(SscOXO-HzlOq&OW(Mzcjbi|bp=8*#_pl7Iwc%D; ziLgTh)Rer)O)^huO4D*EC|+H~Hz!Si{8lJ12RpmyLO0UyB#rGi6W5iRQvgA>uZi6qkS@q|lF2f1VdQD_I|$sj%0OU_<3-07cGEgmVVvcYN!-jqbPV`(ga?FOjXKMSV_jh_Bei3VP5?1V%s@Oo1! zj$7vXD?{1GM*`0p3ZHy%b`05YOz6vvQ<5;%^Wkqt#Y#LCUB|{tIGax-bD5M)-~Q|p zLMNnGmcPm-!>fLj^4?n*V6M^TLW=9S>6UHhC~&9GFXX5O_mHfc%1jfI^=L)XL|M^d zV<7RtLUVVHTFNMe5b75^ zyQ(=U_Gi{%t+BFbyesVFC+S;x(4_|3#!+`f!i9VQ#JAV%_BFc*~ zY2;a-m^K<4O?KtPuGTsGaX99%SzCHfCWrihzGNWAo;+(g!}oQ>LH>_X(&N2AiDip^wpzANVd&-X{(K)l0)QAIwspz+t>GSICM zjwJ3Q{JWos`;djzI>59|t3cp^2(0&W*Gh}7N|m-_Ozju&i_e6gmH|<=W^z?6nX8}T zTn;^-`I3gNc{*~g`KUISBZX22Ga^AnDUgoooLn1esD;O(BJkN%_$h;H$|tvTp4kBH z3loPzw?-Km-$F`!d3!@ACXTL3;pbq^zFwANioAmN|JE$M8N+i;3!N2&0W%5>ZW zPuZT-odaYhv8lgY`$>dV(~4=Pgq5J_E^V@c%-63SXt_*dCn+4G+Wya)aD-jGf4Xdj z#DYOH=Uu&GJTeD5p7j}@k)>Ovzs>gs6q;UQ8*()^khP$`nQPU(E!woK{h5QQTh7RN zgu`U?CqYWwFR<3(@cme^s#a|WeH zPW8M@c&%3Q?8Q?o-(SvWhTod0@^myGfipHq$~JK%tnMw?y5CRcTyOC( zsg-C3&1i#KX2&e-1G!5d^^5G^B#oSjHgkk3YcqFntQ*7zrV-`0_07n(nx?8wBnfty zpH1+h>ZZx{r#7&~=5MH|Z{4`$P4x>i&gM~eIjX=B#0+9=6xNn>pFkwf4&_SN#ufvK z47@|I!J-g?kaq{B%B`F&>8Pf)hdutw$?y}Sm{rqYjLiv5|M^kGKM?s!LxV8h(b7)o zp&umIY;9OvW1h{3p$jO_^``m8v>J13l&<2$qnLnKKgK?Z^c#$aEL(Ajr`t?&zE;&> zCq>I{q11Mo63ND4HqFNdAIbE`qGE3T$!-)e@2RG{1qc>U<0b013#@!==5r6z>cn&sFeG56IVJ5OR(M~Fn(Q#v_ErmH WRik#_y6pSGOnx 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 From fd2acead12cbd9e0a5540feadc5414aaa924eae6 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Thu, 3 Feb 2022 14:06:43 -0400 Subject: [PATCH 146/248] Add files via upload Fix type error --- .../img/screenshot_irmajavi_weather_card.jpg | Bin 0 -> 67248 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/assets/img/screenshot_irmajavi_weather_card.jpg diff --git a/docs/assets/img/screenshot_irmajavi_weather_card.jpg b/docs/assets/img/screenshot_irmajavi_weather_card.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ff6dc9389eb22719a4c972f5dfff8d67b2526965 GIT binary patch literal 67248 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

==a!rA6EBK>-^8huV)bfE-#2t&5`m!CFh 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 z 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 HzD)leTqcb6 literal 0 HcmV?d00001 From 72d3e3c839484121f2667236e640987808c57762 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Thu, 3 Feb 2022 14:55:10 -0400 Subject: [PATCH 147/248] Update custom_card_irmajavi_speedtest.yaml Fix typo error --- .../custom_card_irmajavi_speedtest.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml b/custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml index ca5606bd7..4dc01fb4c 100644 --- a/custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml +++ b/custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml @@ -106,7 +106,7 @@ custom_card_irmajavi_speedtest: - height: "40px" - padding-top: "5px" - padding-left: "5px" - name: "Speed Test" + name: "Speedtest" icon: "mdi:speedometer" custom_fields: item1: @@ -231,4 +231,4 @@ custom_card_irmajavi_speedtest: - background-color: "rgba(var(--color-theme),0.05)" - border-radius: "14px" - place-self: "center" - - height: "80px" \ No newline at end of file + - height: "80px" From 52e458afab3921169395e1f68c121c2f277ef87e Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Thu, 3 Feb 2022 15:11:09 -0400 Subject: [PATCH 148/248] Update custom_card_irmajavi_weather.yaml --- .../custom_card_irmajavi_weather.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/custom_cards/custom_card_irmajavi_weather/custom_card_irmajavi_weather.yaml b/custom_cards/custom_card_irmajavi_weather/custom_card_irmajavi_weather.yaml index 965420960..62dbc5088 100644 --- a/custom_cards/custom_card_irmajavi_weather/custom_card_irmajavi_weather.yaml +++ b/custom_cards/custom_card_irmajavi_weather/custom_card_irmajavi_weather.yaml @@ -1,3 +1,4 @@ +--- custom_card_irmajavi_weather: show_icon: false show_name: false @@ -141,4 +142,4 @@ generic_text: - grid-template-columns: "1fr" - grid-template-rows: "min-content min-content" card: - - box-shadow: "none" \ No newline at end of file + - box-shadow: "none" From 9fa7284ac34a7a6be92356b3f4dc0fe4e74d6bbc Mon Sep 17 00:00:00 2001 From: CM000n Date: Thu, 3 Feb 2022 19:30:49 +0000 Subject: [PATCH 149/248] Update docs --- .../custom_card_irmajavi_entities.md | 275 ++++++++++++++++++ 1 file changed, 275 insertions(+) create mode 100644 docs/usage/custom_cards/custom_card_irmajavi_entities.md diff --git a/docs/usage/custom_cards/custom_card_irmajavi_entities.md b/docs/usage/custom_cards/custom_card_irmajavi_entities.md new file mode 100644 index 000000000..c1dd3b575 --- /dev/null +++ b/docs/usage/custom_cards/custom_card_irmajavi_entities.md @@ -0,0 +1,275 @@ +--- +title: custom_card_irmajavi_entities +hide: + - toc +--- + + +## Custom-card `Entities` + +This is a `custom-card` to display states from multiple entities or from an entity with multiples attributes (To use it with attributes need to modify the code) + +![Screenshot](../../assets/img/screenshot_irmajavi_entities_card.jpg) + +## Credits + +Author: irmajavi - 2022 +Version: 1.0.0 + +## Changelog + +

+1.0.0 +Initial release +
+ +## Requirements + +none + +## Usage + +```yaml +type: custom:button-card +template: custom_card_irmajavi_entities +variables: + ulm_custom_card_irmajavi_entities_entity_1: sensor.inverter_voltage + ulm_custom_card_irmajavi_entities_entity_2: sensor.inverter_temperature + ulm_custom_card_irmajavi_entities_entity_3: sensor.active_ac_power + ulm_custom_card_irmajavi_entities_entity_4: sensor.ac_load_current + ulm_custom_card_irmajavi_entities_name_1: Voltage + ulm_custom_card_irmajavi_entities_name_2: Temperature + ulm_custom_card_irmajavi_entities_name_3: AC Power + ulm_custom_card_irmajavi_entities_name_4: Current + ulm_custom_card_irmajavi_entities_name: System Status + ulm_custom_card_irmajavi_entities: sensor.inverter_operating_mode +``` + +## Variables + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VariableExampleRequiredExplanation
ulm_custom_card_irmajavi_entitiessensor.mainYesMain entity
ulm_custom_card_irmajavi_entitites_nameStatusYesMain entity name
ulm_custom_card_irmajavi_entities_entity_1sensor.test1YesThe first entity
ulm_custom_card_irmajavi_entities_entity_2sensor.test2YesThe second entity
ulm_custom_card_irmajavi_entities_entity_3sensor.test3YesThe third entity
ulm_custom_card_irmajavi_entities_entity_4sensor.test4YesThe forth entity
ulm_custom_card_irmajavi_entities_name_1Test1YesThe name of the first entity
ulm_custom_card_irmajavi_entities_name_2Test2YesThe name of the second entity
ulm_custom_card_irmajavi_entities_name_3Test3YesThe name of the third entity
ulm_custom_card_irmajavi_entities_name_4Test4YesThe name of the forth entity
+ +## Template Code + +```yaml +--- +custom_card_irmajavi_entities: + template: + - ulm_language_variables + triggers_update: all + show_icon: false + show_name: false + show_label: false + styles: + grid: + - grid-template-areas: '''item1'' ''item2'' ''item3'' ''item4''' + - grid-template-columns: 1fr + - grid-template-rows: min-content min-content + - row-gap: 12px + card: + - border-radius: 30px + - box-shadow: var(--box-shadow) + - padding: 12px + - height: 160px + custom_fields: + item1: + card: + type: custom:button-card + color: var(--google-grey) + show_icon: false + show_label: true + show_name: true + styles: + name: + - align-self: start + - justify-self: start + - font-weight: bold + - font-size: 14px + - margin-left: 12px + grid: + - grid-template-areas: '"n" "l"' + - grid-template-columns: min-content auto min-content + - grid-template-rows: min-content min-content + card: + - box-shadow: none + - border-radius: 20px + - border: 2px solid var(--google-grey) + - height: 70px + label: + - justify-self: start + - align-self: end + - font-weight: bold + - font-size: 14px + - filter: opacity(40%) + - margin-left: 35px + name: | + [[[ + var icon = '👽'; + if (variables.ulm_custom_card_irmajavi_entities_icon){ + var icon = variables.ulm_custom_card_irmajavi_entities_icon; + } + return icon + ' ' + variables.ulm_custom_card_irmajavi_entities_name; + ]]] + label: | + [[[ + return states[variables.ulm_custom_card_irmajavi_entities].state + ]]] + item2: + card: + type: custom:button-card + template: list_4_items + custom_fields: + item1: + card: + type: custom:button-card + template: custom_widget_irmajavi + entity: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_entity_1; + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_name_1 + ]]] + item2: + card: + type: custom:button-card + template: custom_widget_irmajavi + entity: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_entity_2; + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_name_2 + ]]] + item3: + card: + type: custom:button-card + template: custom_widget_irmajavi + entity: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_entity_3; + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_name_3 + ]]] + item4: + card: + type: custom:button-card + template: custom_widget_irmajavi + entity: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_entity_4; + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_entities_name_4 + ]]] + + +custom_widget_irmajavi: + show_label: true + show_icon: false + label: | + [[[ + var unit = entity.attributes.unit_of_measurement != null ? ' ' + entity.attributes.unit_of_measurement : '' + if (entity.state == 'on') { + return variables.ulm_on; + } else if (entity.state == 'off') { + return variables.ulm_off; + } else if (entity.state == 'unavailable') { + return variables.ulm_unavailable; + } else if (entity.state == 'idle') { + return variables.ulm_idle; + } else if (entity.state == 'open') { + return variables.ulm_open; + } else if (entity.state == 'closed') { + return variables.ulm_closed; + } else { + return entity.state + unit; + } + ]]] + styles: + name: + - justify-self: center + - align-self: start + - font-weight: bolder + - font-size: 12px + - filter: opacity(40%) + label: + - margin-top: 10px + - justify-self: center + - font-weight: bold + - font-size: 14px + grid: + - grid-template-areas: '"l" "n"' + - grid-template-columns: 1fr + - grid-template-rows: min-content min-content + card: + - box-shadow: none +``` From 94e81c8686c6cca061bad57608158bb77bf1908b Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Thu, 3 Feb 2022 19:08:06 -0400 Subject: [PATCH 150/248] Update custom_card_irmajavi_speedtest.yaml --- .../custom_card_irmajavi_speedtest.yaml | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml b/custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml index 4dc01fb4c..ac8b5f71c 100644 --- a/custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml +++ b/custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml @@ -147,14 +147,14 @@ custom_card_irmajavi_speedtest: ]]] label: | [[[ - var state1 = ""; - if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state){ - var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state; - if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement){ - state1 += states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement; + var state1 = ""; + if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state){ + var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state; + if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement){ + state1 += states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement; + } } - } - return state1; + return state1; ]]] styles: icon: @@ -196,14 +196,14 @@ custom_card_irmajavi_speedtest: ]]] label: | [[[ - var state1 = ""; - if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state){ - var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state; - if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement){ - state1 += states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement; + var state1 = ""; + if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state){ + var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state; + if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement){ + state1 += states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement; + } } - } - return state1; + return state1; ]]] styles: icon: From bb1bbaa5ac125bb598207e4932d4b7b4df1680be Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Thu, 3 Feb 2022 19:08:59 -0400 Subject: [PATCH 151/248] Update README.md --- .../custom_card_irmajavi_speedtest/README.md | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/custom_cards/custom_card_irmajavi_speedtest/README.md b/custom_cards/custom_card_irmajavi_speedtest/README.md index 1b0b25655..a0f868c23 100644 --- a/custom_cards/custom_card_irmajavi_speedtest/README.md +++ b/custom_cards/custom_card_irmajavi_speedtest/README.md @@ -237,14 +237,14 @@ custom_card_irmajavi_speedtest: ]]] label: | [[[ - var state1 = ""; - if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state){ - var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state; - if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement){ - state1 += states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement; + var state1 = ""; + if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state){ + var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state; + if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement){ + state1 += states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement; + } } - } - return state1; + return state1; ]]] styles: icon: @@ -286,14 +286,14 @@ custom_card_irmajavi_speedtest: ]]] label: | [[[ - var state1 = ""; - if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state){ - var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state; - if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement){ - state1 += states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement; + var state1 = ""; + if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state){ + var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state; + if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement){ + state1 += states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement; + } } - } - return state1; + return state1; ]]] styles: icon: From 6e072f6b8b1c7aedaec981b9c714d46b7a1af977 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Thu, 3 Feb 2022 19:25:58 -0400 Subject: [PATCH 152/248] Update custom_card_irmajavi_weather.yaml --- .../custom_card_irmajavi_weather.yaml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/custom_cards/custom_card_irmajavi_weather/custom_card_irmajavi_weather.yaml b/custom_cards/custom_card_irmajavi_weather/custom_card_irmajavi_weather.yaml index 62dbc5088..26f3f0455 100644 --- a/custom_cards/custom_card_irmajavi_weather/custom_card_irmajavi_weather.yaml +++ b/custom_cards/custom_card_irmajavi_weather/custom_card_irmajavi_weather.yaml @@ -97,26 +97,26 @@ custom_card_irmajavi_weather: card: type: "custom:button-card" template: "generic_text" - entity: '[[[ return variables.ulm_custom_card_irmajavi_weather_entity_1; ]]]' - name: '[[[ return variables.ulm_custom_card_irmajavi_weather_name_1; ]]]' + entity: "'[[[ return variables.ulm_custom_card_irmajavi_weather_entity_1; ]]]'" + name: "'[[[ return variables.ulm_custom_card_irmajavi_weather_name_1; ]]]'" item2: card: type: "custom:button-card" template: "generic_text" - entity: '[[[ return variables.ulm_custom_card_irmajavi_weather_entity_2; ]]]' - name: '[[[ return variables.ulm_custom_card_irmajavi_weather_name_2; ]]]' + entity: "'[[[ return variables.ulm_custom_card_irmajavi_weather_entity_2; ]]]'" + name: "'[[[ return variables.ulm_custom_card_irmajavi_weather_name_2; ]]]'" item3: card: type: "custom:button-card" template: "generic_text" - entity: '[[[ return variables.ulm_custom_card_irmajavi_weather_entity_3; ]]]' - name: '[[[ return variables.ulm_custom_card_irmajavi_weather_name_3; ]]]' + entity: "'[[[ return variables.ulm_custom_card_irmajavi_weather_entity_3; ]]]'" + name: "'[[[ return variables.ulm_custom_card_irmajavi_weather_name_3; ]]]'" item4: card: type: "custom:button-card" template: "generic_text" - entity: '[[[ return variables.ulm_custom_card_irmajavi_weather_entity_4; ]]]' - name: '[[[ return variables.ulm_custom_card_irmajavi_weather_name_4; ]]]' + entity: "'[[[ return variables.ulm_custom_card_irmajavi_weather_entity_4; ]]]'" + name: "'[[[ return variables.ulm_custom_card_irmajavi_weather_name_4; ]]]'" generic_text: show_label: true show_icon: false From 1a24515282d5b80c8fbb30bc6d45ce867c5392c3 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Thu, 3 Feb 2022 19:47:24 -0400 Subject: [PATCH 153/248] Update README.md --- custom_cards/custom_card_irmajavi_speedtest/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_cards/custom_card_irmajavi_speedtest/README.md b/custom_cards/custom_card_irmajavi_speedtest/README.md index a0f868c23..cb3224279 100644 --- a/custom_cards/custom_card_irmajavi_speedtest/README.md +++ b/custom_cards/custom_card_irmajavi_speedtest/README.md @@ -196,7 +196,7 @@ custom_card_irmajavi_speedtest: - height: "40px" - padding-top: "5px" - padding-left: "5px" - name: "Speed Test" + name: "Speedtest" icon: "mdi:speedometer" custom_fields: item1: From 25a6bd4cf3761319d4087c72c88467ce834edef8 Mon Sep 17 00:00:00 2001 From: Javier Matos Date: Thu, 3 Feb 2022 19:50:11 -0400 Subject: [PATCH 154/248] Update README.md --- .../custom_card_irmajavi_weather/README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/custom_cards/custom_card_irmajavi_weather/README.md b/custom_cards/custom_card_irmajavi_weather/README.md index 80bb143e1..c4e5da827 100644 --- a/custom_cards/custom_card_irmajavi_weather/README.md +++ b/custom_cards/custom_card_irmajavi_weather/README.md @@ -240,26 +240,26 @@ custom_card_irmajavi_weather: card: type: "custom:button-card" template: "generic_text" - entity: '[[[ return variables.ulm_custom_card_irmajavi_weather_entity_1; ]]]' - name: '[[[ return variables.ulm_custom_card_irmajavi_weather_name_1; ]]]' + entity: "[[[ return variables.ulm_custom_card_irmajavi_weather_entity_1; ]]]" + name: "[[[ return variables.ulm_custom_card_irmajavi_weather_name_1; ]" item2: card: type: "custom:button-card" template: "generic_text" - entity: '[[[ return variables.ulm_custom_card_irmajavi_weather_entity_2; ]]]' - name: '[[[ return variables.ulm_custom_card_irmajavi_weather_name_2; ]]]' + entity: "[[[ return variables.ulm_custom_card_irmajavi_weather_entity_2; ]]]" + name: "[[[ return variables.ulm_custom_card_irmajavi_weather_name_2; ]]]" item3: card: type: "custom:button-card" template: "generic_text" - entity: '[[[ return variables.ulm_custom_card_irmajavi_weather_entity_3; ]]]' - name: '[[[ return variables.ulm_custom_card_irmajavi_weather_name_3; ]]]' + entity: "[[[ return variables.ulm_custom_card_irmajavi_weather_entity_3; ]]]" + name: "[[[ return variables.ulm_custom_card_irmajavi_weather_name_3; ]]]" item4: card: type: "custom:button-card" template: "generic_text" - entity: '[[[ return variables.ulm_custom_card_irmajavi_weather_entity_4; ]]]' - name: '[[[ return variables.ulm_custom_card_irmajavi_weather_name_4; ]]]' + entity: "[[[ return variables.ulm_custom_card_irmajavi_weather_entity_4; ]]]" + name: "[[[ return variables.ulm_custom_card_irmajavi_weather_name_4; ]]]" generic_text: show_label: true show_icon: false From d5db58520dad1322e38fc5dcaaf270fcd4d91167 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20H=C3=B6rrle?= Date: Fri, 4 Feb 2022 08:18:24 +0100 Subject: [PATCH 155/248] Fix code qualitiy issues --- custom_cards/custom_card_irmajavi_speedtest/README.md | 4 ++-- .../custom_card_irmajavi_speedtest.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/custom_cards/custom_card_irmajavi_speedtest/README.md b/custom_cards/custom_card_irmajavi_speedtest/README.md index cb3224279..1e87e5958 100644 --- a/custom_cards/custom_card_irmajavi_speedtest/README.md +++ b/custom_cards/custom_card_irmajavi_speedtest/README.md @@ -236,7 +236,7 @@ custom_card_irmajavi_speedtest: variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity; ]]] label: | - [[[ + [[[ var state1 = ""; if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state){ var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state; @@ -285,7 +285,7 @@ custom_card_irmajavi_speedtest: variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity; ]]] label: | - [[[ + [[[ var state1 = ""; if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state){ var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state; diff --git a/custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml b/custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml index ac8b5f71c..d409e4e81 100644 --- a/custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml +++ b/custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml @@ -146,7 +146,7 @@ custom_card_irmajavi_speedtest: variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity; ]]] label: | - [[[ + [[[ var state1 = ""; if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state){ var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state; @@ -195,7 +195,7 @@ custom_card_irmajavi_speedtest: variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity; ]]] label: | - [[[ + [[[ var state1 = ""; if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state){ var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state; From 3df75b63e4ebb7c71cb1c61402096f4e208fc7e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20H=C3=B6rrle?= Date: Fri, 4 Feb 2022 08:21:54 +0100 Subject: [PATCH 156/248] Disable markdown linting on custom_card readme --- custom_cards/custom_card_irmajavi_speedtest/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_cards/custom_card_irmajavi_speedtest/README.md b/custom_cards/custom_card_irmajavi_speedtest/README.md index 1e87e5958..126be22eb 100644 --- a/custom_cards/custom_card_irmajavi_speedtest/README.md +++ b/custom_cards/custom_card_irmajavi_speedtest/README.md @@ -3,7 +3,7 @@ title: custom_card_irmajavi_speedtest hide: - toc --- - + # Custom-card "Speedtest" From 8345521af9a13736b870d5d7a5f84ae7d24323d8 Mon Sep 17 00:00:00 2001 From: CM000n Date: Fri, 4 Feb 2022 07:22:21 +0000 Subject: [PATCH 157/248] Update docs --- .../custom_card_irmajavi_speedtest.md | 325 ++++++++++++++++++ .../custom_card_irmajavi_weather.md | 289 ++++++++++++++++ 2 files changed, 614 insertions(+) create mode 100644 docs/usage/custom_cards/custom_card_irmajavi_speedtest.md create mode 100644 docs/usage/custom_cards/custom_card_irmajavi_weather.md diff --git a/docs/usage/custom_cards/custom_card_irmajavi_speedtest.md b/docs/usage/custom_cards/custom_card_irmajavi_speedtest.md new file mode 100644 index 000000000..116e29a1f --- /dev/null +++ b/docs/usage/custom_cards/custom_card_irmajavi_speedtest.md @@ -0,0 +1,325 @@ +--- +title: custom_card_irmajavi_speedtest +hide: + - toc +--- + + +# Custom-card "Speedtest" + +This is a `custom-card` to display the results from the `Speedtest.net` integration. The integration uses the Speedtest.net web service to measure network bandwidth performance. + +![Screenshot](../../assets/img/screenshot_irmajavi_speedtest_card.jpg) + +## Credits + +Author: irmajavi - 2022 +Version: 1.0.0 + +## Changelog + +
+1.0.0 +Initial release +
+ +## Requirements + + Home Assistant Speedtest.net integration + +## Usage + +```yaml +type: custom:button-card +template: custom_card_irmajavi_speedtest +variables: + ulm_custom_card_irmajavi_speedtest_download_speed_entity: sensor.speedtest_download + ulm_custom_card_irmajavi_speedtest_upload_speed_entity: sensor.speedtest_upload + ulm_custom_card_irmajavi_speedtest_color: blue + ulm_custom_card_irmajavi_speedtest_router_name: router_name + ulm_custom_card_irmajavi_speedtest_router_model: router_model +``` + +## Variables + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VariableExampleRequiredExplanation
ulm_custom_card_irmajavi_speedtest_router_nameLinksysYesYour router name
ulm_custom_card_irmajavi_speedtest_router_modelEA8549YesYour router model
ulm_custom_card_irmajavi_speedtest_colorblueYesThe color of the icon
ulm_custom_card_irmajavi_speedtest_upload_speed_entitysensor.test2YesThe upload sensor created by the integration
ulm_custom_card_irmajavi_speedtest_download_speed_entitysensor.test3YesThe download sensor created by the integration
+ +## Template Code + +```yaml +--- +custom_card_irmajavi_speedtest: + triggers_update: "all" + show_name: false + show_label: false + variables: + ulm_custom_card_irmajavi_speedtest_color: "blue" + ulm_custom_card_irmajavi_speedtest_router_name: "router_name" + ulm_custom_card_irmajavi_speedtest_router_model: "router_model" + styles: + grid: + - grid-template-areas: "'item1' 'item2' 'item3'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" + - row-gap: "12px" + card: + - border-radius: "var(--border-radius)" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + custom_fields: + item1: + card: + type: "custom:button-card" + tap_action: + action: "none" + show_last_changed: false + show_label: true + show_name: true + show_icon: true + label: >- + [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_model + ]]] + name: >- + [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_name + ]]] + icon: "mdi:wifi" + styles: + icon: + - color: >- + [[[ return + `rgba(var(--color-${variables.ulm_custom_card_irmajavi_speedtest_color}), + 1)`; ]]] + - width: "32px" + label: + - justify-self: "center" + - align-self: "start" + - font-weight: "bolder" + - font-size: "12px" + - filter: "opacity(40%)" + name: + - margin-top: "10px" + - justify-self: "center" + - font-weight: "bold" + - font-size: "14px" + img_cell: + - background-color: >- + [[[ return + `rgba(var(--color-${variables.ulm_custom_card_irmajavi_speedtest_color}), + 0.2)`; ]]] + - border-radius: "50%" + - place-self: "center" + - width: "62px" + - height: "62px" + grid: + - grid-template-areas: "'i' 'n' 'l'" + card: + - box-shadow: "none" + size: "20px" + item2: + card: + type: "custom:button-card" + tap_action: + action: "call-service" + service: "speedtestdotnet.speedtest" + color: "var(--google-grey)" + show_icon: true + show_label: false + show_name: true + styles: + custom_fields: + item1: + - justify-self: "end" + icon: + - color: "rgba(var(--color-theme),0.9)" + - width: "20px" + img_cell: + - background-color: "none" + - place-self: "center" + - justify-self: "start" + - width: "40px" + - height: "20px" + name: + - align-self: "end" + - justify-self: "start" + - font-weight: "bold" + - font-size: "16px" + grid: + - grid-template-areas: "i n item1" + - grid-template-columns: "min-content" + - grid-template-rows: "auto" + card: + - box-shadow: "none" + - border-radius: "10px" + - border: "2px solid var(--google-grey)" + - padding_bottom: "-8px" + - height: "40px" + - padding-top: "5px" + - padding-left: "5px" + name: "Speedtest" + icon: "mdi:speedometer" + custom_fields: + item1: + card: + type: "custom:button-card" + show_icon: true + show_name: false + show_label: false + styles: + icon: + - color: "rgba(var(--color-theme),0.9)" + - width: "20px" + - justify-self: "end" + grid: + - grid-template-areas: "i" + - grid-template-columns: "auto" + - grid-template-rows: "auto" + card: + - box-shadow: "none" + icon: "mdi:chevron-right" + item3: + card: + type: "custom:button-card" + template: "list_2_items" + custom_fields: + item1: + card: + type: "custom:button-card" + tap_action: + action: "more-info" + color: "var(--google-blue)" + show_label: true + show_icon: false + name: "Download Speed" + entity: >- + [[[ return + variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity; + ]]] + label: | + [[[ + var state1 = ""; + if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state){ + var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].state; + if (states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement){ + state1 += states[variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity].attributes.unit_of_measurement; + } + } + return state1; + ]]] + styles: + icon: + - width: "30px" + - height: "30px" + label: + - align-self: "center" + - justify-self: "center" + - font-weight: "bold" + - font-size: "23px" + name: + - align-self: "center" + - justify-self: "center" + - font-weight: "bold" + - font-size: "12px" + - filter: "opacity(40%)" + grid: + - grid-template-areas: "'l' 'n'" + - grid-template-columns: "auto" + - grid-template-rows: "min-content" + card: + - box-shadow: "none" + - padding-top: "15px" + - padding-botton: "10px" + - background-color: "rgba(var(--color-theme),0.05)" + - border-radius: "14px" + - place-self: "center" + - height: "80px" + item2: + card: + type: "custom:button-card" + color: "var(--google-blue)" + show_label: true + show_icon: false + name: "Upload Speed" + entity: >- + [[[ return + variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity; + ]]] + label: | + [[[ + var state1 = ""; + if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state){ + var state1 = states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].state; + if (states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement){ + state1 += states[variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity].attributes.unit_of_measurement; + } + } + return state1; + ]]] + styles: + icon: + - width: "30px" + - height: "30px" + label: + - align-self: "center" + - justify-self: "center" + - font-weight: "bold" + - font-size: "23px" + name: + - align-self: "center" + - justify-self: "center" + - font-weight: "bold" + - font-size: "12px" + - filter: "opacity(40%)" + grid: + - grid-template-areas: "'l' 'n'" + - grid-template-columns: "auto" + - grid-template-rows: "min-content" + card: + - box-shadow: "none" + - padding-top: "15px" + - padding-botton: "10px" + - background-color: "rgba(var(--color-theme),0.05)" + - border-radius: "14px" + - place-self: "center" + - height: "80px" +``` diff --git a/docs/usage/custom_cards/custom_card_irmajavi_weather.md b/docs/usage/custom_cards/custom_card_irmajavi_weather.md new file mode 100644 index 000000000..861b43a5b --- /dev/null +++ b/docs/usage/custom_cards/custom_card_irmajavi_weather.md @@ -0,0 +1,289 @@ +--- +title: custom_card_irmajavi_weather +hide: + - toc +--- + + +## Custom-card `Weather` + +This is a `custom-card` to display states from weather entities or from a weather entity with multiples attributes (To use it with attributes need to modify the code) + +![Screenshot](../../assets/img/screenshot_irmajavi_weather_card.jpg) + +## Credits + +Author: irmajavi - 2022 +Version: 1.0.0 + +## Changelog + +
+1.0.0 +Initial release +
+ +## Requirements + +In your `configuration.yaml` you need to create a new sensor in order to use the custom date format the card uses. + +```yaml + - platform: template + sensors: + date_long: + friendly_name: 'Date and Day of week' + value_template: > + {% set months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Agu", "Sep", "Oct", "Nov", "Dic"] %} + {% set days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] %} + {{ months[now().month-1] }}.{{ now().day }}th. {{ days[now().weekday()] }} +``` + +## Usage + +```yaml +type: custom:button-card +template: custom_card_irmajavi_weather +variables: + ulm_custom_card_irmajavi_weather: weather.aguada_2 + ulm_custom_card_irmajavi_weather_entity_1: sensor.aguada_wind + ulm_custom_card_irmajavi_weather_entity_2: sensor.aguada_precipitation + ulm_custom_card_irmajavi_weather_entity_3: sensor.aguada_uv_index + ulm_custom_card_irmajavi_weather_entity_4: sensor.weather_humidity + ulm_custom_card_irmajavi_weather_name_1: Wind + ulm_custom_card_irmajavi_weather_name_2: Precipitation + ulm_custom_card_irmajavi_weather_name_3: UV + ulm_custom_card_irmajavi_weather_name_4: Humidity + ulm_custom_card_irmajavi_weather_temperature_outside: sensor.aguada_realfeel_temperature + ulm_custom_card_irmajavi_weather_date: sensor.date_long +``` + +## Variables + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VariableExampleRequiredExplanation
ulm_custom_card_irmajavi_weatherweather.yourplaceYesThe main entity
ulm_custom_card_irmajavi_weather_entity_1weather.humidityYesWeather entity
ulm_custom_card_irmajavi_weather_entity_2sensor.test1YesWeather entity
ulm_custom_card_irmajavi_weather_entity_3sensor.test2YesWeather entity
ulm_custom_card_irmajavi_weather_entity_4sensor.test3YesWeather entity
ulm_custom_card_irmajavi_weather_name_1WindYesEntity name
ulm_custom_card_irmajavi_weather_name_2HumidityYesEntity name
ulm_custom_card_irmajavi_weather_name_3UV IndexYesEntity name
ulm_custom_card_irmajavi_weather_name_4PrecipitationYesEntity name
ulm_custom_card_irmajavi_weather_temperature_outsidesensor.test4YesWeather entity
ulm_custom_card_irmajavi_weather_datesensor.test5YesCustom date format sensor
+ +## Template Code + +```yaml +--- +custom_card_irmajavi_weather: + show_icon: false + show_name: false + show_label: false + styles: + grid: + - grid-template-areas: "'item1' 'item2' 'item3' 'item4'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" + - row-gap: "12px" + card: + - border-radius: "30px" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + - height: "160px" + custom_fields: + item1: + card: + type: "custom:button-card" + color: "var(--google-grey)" + show_icon: false + show_label: true + show_name: true + styles: + name: + - justify-self: "end" + - align-self: "end" + - font-weight: "bold" + - font-size: "20px" + - border: "10px solid var(--google-grey)" + - background-color: "var(--google-grey)" + - color: "#000000" + - border-radius: "12px" + - margin-right: "10px" + - margin-top: "'-4px'" + label: + - align-self: "start" + - justify-self: "center" + - font-weight: "bold" + - font-size: "14px" + - margin-left: "12px" + grid: + - grid-template-areas: "'l n item1'" + - grid-template-columns: "min-content auto min-content" + - grid-template-rows: "min-content min-content" + card: + - box-shadow: "none" + - border-radius: "20px" + - border: "2px solid var(--google-grey)" + - height: "70px" + label: | + [[[ + var icon = '❔'; + if (states[variables.ulm_custom_card_irmajavi_weather].state == 'clear-night'){ + var icon = '🌙'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'cloudy'){ + var icon = '☁️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'exceptional'){ + var icon = '🌞'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'fog'){ + var icon = '🌫️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'hail'){ + var icon = '⛈️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'lightning'){ + var icon = '⚡'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'lightning-rainy'){ + var icon = '⛈️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'partlycloudy'){ + var icon = '⛅'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'pouring'){ + var icon = '🌧️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'rainy'){ + var icon = '💧'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'snowy'){ + var icon = '❄️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'snowy-rainy'){ + var icon = '🌨️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'sunny'){ + var icon = '☀️'; + } else if(states[variables.ulm_custom_card_irmajavi_weather].state == 'windy'){ + var icon = '🌪️'; + } + return icon + ' ' + states[variables.ulm_custom_card_irmajavi_weather_date].state; + ]]] + name: | + [[[ + var unit = states[variables.ulm_custom_card_irmajavi_weather_temperature_outside].attributes.unit_of_measurement != null ? ' ' + states[variables.ulm_custom_card_irmajavi_weather_temperature_outside].attributes.unit_of_measurement : '' + return states[variables.ulm_custom_card_irmajavi_weather_temperature_outside].state + unit; + ]]] + item2: + card: + type: "custom:button-card" + template: "list_4_items" + custom_fields: + item1: + card: + type: "custom:button-card" + template: "generic_text" + entity: "[[[ return variables.ulm_custom_card_irmajavi_weather_entity_1; ]]]" + name: "[[[ return variables.ulm_custom_card_irmajavi_weather_name_1; ]" + item2: + card: + type: "custom:button-card" + template: "generic_text" + entity: "[[[ return variables.ulm_custom_card_irmajavi_weather_entity_2; ]]]" + name: "[[[ return variables.ulm_custom_card_irmajavi_weather_name_2; ]]]" + item3: + card: + type: "custom:button-card" + template: "generic_text" + entity: "[[[ return variables.ulm_custom_card_irmajavi_weather_entity_3; ]]]" + name: "[[[ return variables.ulm_custom_card_irmajavi_weather_name_3; ]]]" + item4: + card: + type: "custom:button-card" + template: "generic_text" + entity: "[[[ return variables.ulm_custom_card_irmajavi_weather_entity_4; ]]]" + name: "[[[ return variables.ulm_custom_card_irmajavi_weather_name_4; ]]]" +generic_text: + show_label: true + show_icon: false + label: | + [[[ + var unit = entity.attributes.unit_of_measurement != null ? ' ' + entity.attributes.unit_of_measurement : '' + return entity.state + unit; + ]]] + styles: + name: + - justify-self: "center" + - align-self: "start" + - font-weight: "bolder" + - font-size: "12px" + - filter: "opacity(40%)" + label: + - margin-top: "10px" + - justify-self: "center" + - font-weight: "bold" + - font-size: "14px" + grid: + - grid-template-areas: "'l' 'n'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content min-content" + card: + - box-shadow: "none" +``` From 90d7e695672e761f8b67fd37e60ac9763cda5f0e Mon Sep 17 00:00:00 2001 From: Sil de Hoop <34340385+sildehoop@users.noreply.github.com> Date: Fri, 4 Feb 2022 09:35:38 +0100 Subject: [PATCH 158/248] Implementation of nested variables --- custom_cards/custom_card_scenes/README.md | 113 ++++++++++++++++-- .../custom_card_scenes/card_scenes.yaml | 110 +++++++++-------- 2 files changed, 160 insertions(+), 63 deletions(-) diff --git a/custom_cards/custom_card_scenes/README.md b/custom_cards/custom_card_scenes/README.md index 1fa2d3c87..38c73dc78 100644 --- a/custom_cards/custom_card_scenes/README.md +++ b/custom_cards/custom_card_scenes/README.md @@ -14,22 +14,15 @@ The `card_scenes` you can control up to 5 `entity` such as `scene` or `script`. ## Credits Author: sildehoop - 2021 -Version: 1.1.0 +Version: 1.2.0 -## Changelog +

Braking changes

-
-1.1.0 -Auto dark mode box shadow -
-
-1.0.0 -Initial release -
+
+ 1.2.0 -## Usage - -```yaml + ```yaml + #OLD - type: "custom:button-card" template: - card_scenes @@ -59,6 +52,100 @@ Initial release color_bg_3: "purple" color_bg_4: "green" color_bg_5: "red" + ``` + + ```yaml + #NEW +- type: "custom:button-card" + template: + - card_scenes + variables: + entity_1: + entity_id: "scene.YOUR_SCENE" + icon: "mdi:YOUR_ICON" + icon_color: "yellow" + name: "YOUR_NAME" + bg_color: "yellow" + entity_2: + entity_id: "scene.YOUR_SCENE" + icon: "mdi:YOUR_ICON" + icon_color: "blue" + name: "YOUR_NAME" + bg_color: "blue" + entity_3: + entity_id: "scene.YOUR_SCENE" + icon: "mdi:YOUR_ICON" + icon_color: "purple" + name: "YOUR_NAME" + bg_color: "purple" + entity_4: + entity_id: "scene.YOUR_SCENE" + icon: "mdi:YOUR_ICON" + icon_color: "green" + name: "YOUR_NAME" + bg_color: "green" + entity_5: + entity_id: "scene.YOUR_SCENE" + icon: "mdi:YOUR_ICON" + icon_color: "red" + name: "YOUR_NAME" + bg_color: "red" + ``` + +
+ +## Changelog + +
+1.2.0 +Implementation of nested variables +
+
+1.1.0 +Auto dark mode box shadow +
+
+1.0.0 +Initial release +
+ +## Usage + +```yaml +- type: "custom:button-card" + template: + - card_scenes + variables: + entity_1: + entity_id: "scene.YOUR_SCENE" + icon: "mdi:YOUR_ICON" + icon_color: "yellow" + name: "YOUR_NAME" + bg_color: "yellow" + entity_2: + entity_id: "scene.YOUR_SCENE" + icon: "mdi:YOUR_ICON" + icon_color: "blue" + name: "YOUR_NAME" + bg_color: "blue" + entity_3: + entity_id: "scene.YOUR_SCENE" + icon: "mdi:YOUR_ICON" + icon_color: "purple" + name: "YOUR_NAME" + bg_color: "purple" + entity_4: + entity_id: "scene.YOUR_SCENE" + icon: "mdi:YOUR_ICON" + icon_color: "green" + name: "YOUR_NAME" + bg_color: "green" + entity_5: + entity_id: "scene.YOUR_SCENE" + icon: "mdi:YOUR_ICON" + icon_color: "red" + name: "YOUR_NAME" + bg_color: "red" ``` ## Requirements diff --git a/custom_cards/custom_card_scenes/card_scenes.yaml b/custom_cards/custom_card_scenes/card_scenes.yaml index bc576a70f..55da6d943 100644 --- a/custom_cards/custom_card_scenes/card_scenes.yaml +++ b/custom_cards/custom_card_scenes/card_scenes.yaml @@ -4,26 +4,36 @@ card_scenes: show_name: false show_label: false variables: - icon_1: "mdi:help-circle-outline" - icon_2: "mdi:help-circle-outline" - icon_3: "mdi:help-circle-outline" - icon_4: "mdi:help-circle-outline" - icon_5: "mdi:help-circle-outline" - name_1: "n/a" - name_2: "n/a" - name_3: "n/a" - name_4: "n/a" - name_5: "n/a" - color_icon_1: "gray" - color_icon_2: "gray" - color_icon_3: "gray" - color_icon_4: "gray" - color_icon_5: "gray" - color_bg_1: "gray" - color_bg_2: "gray" - color_bg_3: "gray" - color_bg_4: "gray" - color_bg_5: "gray" + entity_1: + entity_id: + icon: "mdi:help-circle-outline" + icon_color: "gray" + name: "n/a" + bg_color: "gray" + entity_2: + entity_id: + icon: "mdi:help-circle-outline" + icon_color: "gray" + name: "n/a" + bg_color: "gray" + entity_3: + entity_id: + icon: "mdi:help-circle-outline" + icon_color: "gray" + name: "n/a" + bg_color: "gray" + entity_4: + entity_id: + icon: "mdi:help-circle-outline" + icon_color: "gray" + name: "n/a" + bg_color: "gray" + entity_5: + entity_id: + icon: "mdi:help-circle-outline" + icon_color: "gray" + name: "n/a" + bg_color: "gray" styles: grid: - grid-template-areas: "'item1 item2 item3 item4 item5'" @@ -40,77 +50,77 @@ card_scenes: card: type: "custom:button-card" template: "card_scenes_pill" - entity: "[[[ return variables.entity_1 ]]]" - icon: "[[[ return variables.icon_1 ]]]" - name: "[[[ return variables.name_1 ]]]" + entity: "[[[ return variables.entity_1.entity_id ]]]" + icon: "[[[ return variables.entity_1.icon ]]]" + name: "[[[ return variables.entity_1.name ]]]" variables: - color_icon: "[[[ return variables.color_icon_1 ]]]" - color_bg: "[[[ return variables.color_bg_1 ]]]" + color_icon: "[[[ return variables.entity_1.icon_color ]]]" + color_bg: "[[[ return variables.entity_1.bg_color ]]]" tap_action: action: "call-service" service: "homeassistant.turn_on" service_data: - entity_id: "[[[ return variables.entity_1 ]]]" + entity_id: "[[[ return variables.entity_1.entity_id ]]]" item2: card: type: "custom:button-card" template: "card_scenes_pill" - entity: "[[[ return variables.entity_2 ]]]" - icon: "[[[ return variables.icon_2 ]]]" - name: "[[[ return variables.name_2 ]]]" + entity: "[[[ return variables.entity_2.entity_id ]]]" + icon: "[[[ return variables.entity_2.icon ]]]" + name: "[[[ return variables.entity_2.name ]]]" variables: - color_icon: "[[[ return variables.color_icon_2 ]]]" - color_bg: "[[[ return variables.color_bg_2 ]]]" + color_icon: "[[[ return variables.entity_2.icon_color ]]]" + color_bg: "[[[ return variables.entity_2.bg_color ]]]" tap_action: action: "call-service" service: "homeassistant.turn_on" service_data: - entity_id: "[[[ return variables.entity_2 ]]]" + entity_id: "[[[ return variables.entity_2.entity_id ]]]" item3: card: type: "custom:button-card" template: "card_scenes_pill" - entity: "[[[ return variables.entity_3 ]]]" - icon: "[[[ return variables.icon_3 ]]]" - name: "[[[ return variables.name_3 ]]]" + entity: "[[[ return variables.entity_3.entity_id ]]]" + icon: "[[[ return variables.entity_3.icon ]]]" + name: "[[[ return variables.entity_3.name ]]]" variables: - color_icon: "[[[ return variables.color_icon_3 ]]]" - color_bg: "[[[ return variables.color_bg_3 ]]]" + color_icon: "[[[ return variables.entity_3.icon_color ]]]" + color_bg: "[[[ return variables.entity_3.bg_color ]]]" tap_action: action: "call-service" service: "homeassistant.turn_on" service_data: - entity_id: "[[[ return variables.entity_3 ]]]" + entity_id: "[[[ return variables.entity_3.entity_id ]]]" item4: card: type: "custom:button-card" template: "card_scenes_pill" - entity: "[[[ return variables.entity_4 ]]]" - icon: "[[[ return variables.icon_4 ]]]" - name: "[[[ return variables.name_4 ]]]" + entity: "[[[ return variables.entity_4.entity_id ]]]" + icon: "[[[ return variables.entity_4.icon ]]]" + name: "[[[ return variables.entity_4.name ]]]" variables: - color_icon: "[[[ return variables.color_icon_4 ]]]" - color_bg: "[[[ return variables.color_bg_4 ]]]" + color_icon: "[[[ return variables.entity_4.icon_color ]]]" + color_bg: "[[[ return variables.entity_4.bg_color ]]]" tap_action: action: "call-service" service: "homeassistant.turn_on" service_data: - entity_id: "[[[ return variables.entity_4 ]]]" + entity_id: "[[[ return variables.entity_4.entity_id ]]]" item5: card: type: "custom:button-card" template: "card_scenes_pill" - entity: "[[[ return variables.entity_5 ]]]" - icon: "[[[ return variables.icon_5 ]]]" - name: "[[[ return variables.name_5 ]]]" + entity: "[[[ return variables.entity_5.entity_id ]]]" + icon: "[[[ return variables.entity_5.icon ]]]" + name: "[[[ return variables.entity_5.name ]]]" variables: - color_icon: "[[[ return variables.color_icon_5 ]]]" - color_bg: "[[[ return variables.color_bg_5 ]]]" + color_icon: "[[[ return variables.entity_5.icon_color ]]]" + color_bg: "[[[ return variables.entity_5.bg_color ]]]" tap_action: action: "call-service" service: "homeassistant.turn_on" service_data: - entity_id: "[[[ return variables.entity_5 ]]]" + entity_id: "[[[ return variables.entity_5.entity_id ]]]" card_scenes_pill: show_icon: true From cb219f0f6c77ae15e364732ce027b1bc12c882ff Mon Sep 17 00:00:00 2001 From: basbruss <68892092+basbruss@users.noreply.github.com> Date: Fri, 4 Feb 2022 12:28:09 +0100 Subject: [PATCH 159/248] Pre-release improvement card_welcome_scenes Use of improved variables scheme Deprecate 'sensor.time' and replace by JS-template --- .../cards/card_welcome_scenes.yaml | 190 +++++++++--------- docs/usage/cards/card_welcome_scenes.md | 101 +++++++--- 2 files changed, 176 insertions(+), 115 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_welcome_scenes.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_welcome_scenes.yaml index 83758af70..e7d5f6180 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_welcome_scenes.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_welcome_scenes.yaml @@ -2,36 +2,56 @@ card_welcome_scenes: variables: ulm_weather: "[[[ return variables.ulm_weather]]]" - color_pill_1: > - [[[ - var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink']; - var color = colors[Math.floor(Math.random() * colors.length)]; - return color; - ]]] - color_pill_2: > - [[[ - var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink']; - var color = colors[Math.floor(Math.random() * colors.length)]; - return color; - ]]] - color_pill_3: > - [[[ - var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink']; - var color = colors[Math.floor(Math.random() * colors.length)]; - return color; - ]]] - color_pill_4: > - [[[ - var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink']; - var color = colors[Math.floor(Math.random() * colors.length)]; - return color; - ]]] - color_pill_5: > - [[[ - var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink']; - var color = colors[Math.floor(Math.random() * colors.length)]; - return color; - ]]] + entity_1: + entity_id: + icon: "[[[ return entity.attributes.icon ]]]" + name: "[[[ return entity.attributes.friendly_name ]]]" + color: > + [[[ + var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink']; + var color = colors[Math.floor(Math.random() * colors.length)]; + return color; + ]]] + entity_2: + entity_id: + icon: "[[[ return entity.attributes.icon ]]]" + name: "[[[ return entity.attributes.friendly_name ]]]" + color: > + [[[ + var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink']; + var color = colors[Math.floor(Math.random() * colors.length)]; + return color; + ]]] + entity_3: + entity_id: + icon: "[[[ return entity.attributes.icon ]]]" + name: "[[[ return entity.attributes.friendly_name ]]]" + color: > + [[[ + var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink']; + var color = colors[Math.floor(Math.random() * colors.length)]; + return color; + ]]] + entity_4: + entity_id: + icon: "[[[ return entity.attributes.icon ]]]" + name: "[[[ return entity.attributes.friendly_name ]]]" + color: > + [[[ + var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink']; + var color = colors[Math.floor(Math.random() * colors.length)]; + return color; + ]]] + entity_5: + entity_id: + icon: "[[[ return entity.attributes.icon ]]]" + name: "[[[ return entity.attributes.friendly_name ]]]" + color: > + [[[ + var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink']; + var color = colors[Math.floor(Math.random() * colors.length)]; + return color; + ]]] template: - "ulm_language_variables" show_icon: false @@ -69,7 +89,8 @@ card_welcome_scenes: show_entity_picture: false name: | [[[ - let time = states[variables.ulm_time].state; + var today = new Date(); + var time = today.getHours() + ":" + today.getMinutes() let welcome = ''; if (time > '18:00'){ @@ -132,7 +153,7 @@ card_welcome_scenes: type: "custom:button-card" template: > [[[ - if(variables.entity_pill_1 && variables.entity_pill_2 && variables.entity_pill_3 && variables.entity_pill_4 && variables.entity_pill_5){ + if(variables.entity_1.entity_id && variables.entity_2.entity_id && variables.entity_3.entity_id && variables.entity_4.entity_id && variables.entity_5.entity_id){ return 'card_scenes_welcome' } else { return 'card_scenes_welcome_auto' @@ -144,26 +165,11 @@ card_welcome_scenes: - box-shadow: "none" - padding: "4px" variables: - icon_pill_1: "[[[ return variables.icon_pill_1]]]" - icon_pill_2: "[[[ return variables.icon_pill_2]]]" - icon_pill_3: "[[[ return variables.icon_pill_3]]]" - icon_pill_4: "[[[ return variables.icon_pill_4]]]" - icon_pill_5: "[[[ return variables.icon_pill_5]]]" - name_pill_1: "[[[ return variables.name_pill_1]]]" - name_pill_2: "[[[ return variables.name_pill_2]]]" - name_pill_3: "[[[ return variables.name_pill_3]]]" - name_pill_4: "[[[ return variables.name_pill_4]]]" - name_pill_5: "[[[ return variables.name_pill_5]]]" - entity_pill_1: "[[[ return variables.entity_pill_1]]]" - entity_pill_2: "[[[ return variables.entity_pill_2]]]" - entity_pill_3: "[[[ return variables.entity_pill_3]]]" - entity_pill_4: "[[[ return variables.entity_pill_4]]]" - entity_pill_5: "[[[ return variables.entity_pill_5]]]" - color_pill_1: "[[[ return variables.color_pill_1]]]" - color_pill_2: "[[[ return variables.color_pill_2]]]" - color_pill_3: "[[[ return variables.color_pill_3]]]" - color_pill_4: "[[[ return variables.color_pill_4]]]" - color_pill_5: "[[[ return variables.color_pill_5]]]" + entity_1: "[[[ return variables.entity_1]]]" + entity_2: "[[[ return variables.entity_2]]]" + entity_3: "[[[ return variables.entity_3]]]" + entity_4: "[[[ return variables.entity_4]]]" + entity_5: "[[[ return variables.entity_5]]]" card_title_welcome: tap_action: action: "none" @@ -212,87 +218,87 @@ card_scenes_welcome: card: type: "custom:button-card" template: "card_scenes_pill_welcome" - entity: "[[[ return variables.entity_pill_1 ]]]" - icon: "[[[ return variables.icon_pill_1 ]]]" - name: "[[[ return variables.name_pill_1 ]]]" + entity: "[[[ return variables.entity_1.entity_id ]]]" + icon: "[[[ return variables.entity_1.icon ]]]" + name: "[[[ return variables.entity_1.name ]]]" styles: icon: - - color: "[[[ return `rgba(var(--color-${variables.color_pill_1}), 1)`;]]]" + - color: "[[[ return `rgba(var(--color-${variables.entity_1.color}), 1)`;]]]" img_cell: - - background-color: "[[[ return `rgba(var(--color-${variables.color_pill_1}), 0.20)`;]]]" + - background-color: "[[[ return `rgba(var(--color-${variables.entity_1.color}), 0.20)`;]]]" tap_action: action: "call-service" service: "script.toggle" service_data: - entity_id: "[[[ return variables.entity_pill_1 ]]]" + entity_id: "[[[ return variables.entity_1.entity_id ]]]" item2: card: type: "custom:button-card" template: "card_scenes_pill_welcome" - entity: "[[[ return variables.entity_pill_2 ]]]" - icon: "[[[ return variables.icon_pill_2 ]]]" - name: "[[[ return variables.name_pill_2 ]]]" + entity: "[[[ return variables.entity_2.entity_id ]]]" + icon: "[[[ return variables.entity_2.icon ]]]" + name: "[[[ return variables.entity_2.name ]]]" styles: icon: - - color: "[[[ return `rgba(var(--color-${variables.color_pill_2}), 1)`;]]]" + - color: "[[[ return `rgba(var(--color-${variables.entity_2.color}), 1)`;]]]" img_cell: - - background-color: "[[[ return `rgba(var(--color-${variables.color_pill_2}), 0.20)`;]]]" + - background-color: "[[[ return `rgba(var(--color-${variables.entity_2.color}), 0.20)`;]]]" tap_action: action: "call-service" service: "script.toggle" service_data: - entity_id: "[[[ return variables.entity_pill_2 ]]]" + entity_id: "[[[ return variables.entity_2.entity_id ]]]" item3: card: type: "custom:button-card" template: "card_scenes_pill_welcome" - entity: "[[[ return variables.entity_pill_3 ]]]" - icon: "[[[ return variables.icon_pill_3 ]]]" - name: "[[[ return variables.name_pill_3 ]]]" + entity: "[[[ return variables.entity_3.entity_id ]]]" + icon: "[[[ return variables.entity_3.icon ]]]" + name: "[[[ return variables.entity_3.name ]]]" styles: icon: - - color: "[[[ return `rgba(var(--color-${variables.color_pill_3}), 1)`;]]]" + - color: "[[[ return `rgba(var(--color-${variables.entity_3.color}), 1)`;]]]" img_cell: - - background-color: "[[[ return `rgba(var(--color-${variables.color_pill_3}), 0.20)`;]]]" + - background-color: "[[[ return `rgba(var(--color-${variables.entity_3.color}), 0.20)`;]]]" tap_action: action: "call-service" service: "script.toggle" service_data: - entity_id: "[[[ return variables.entity_pill_3 ]]]" + entity_id: "[[[ return variables.entity_3.entity_id ]]]" item4: card: type: "custom:button-card" template: "card_scenes_pill_welcome" - entity: "[[[ return variables.entity_pill_4 ]]]" - icon: "[[[ return variables.icon_pill_4 ]]]" - name: "[[[ return variables.name_pill_4 ]]]" + entity: "[[[ return variables.entity_4.entity_id ]]]" + icon: "[[[ return variables.entity_4.icon ]]]" + name: "[[[ return variables.entity_4.name ]]]" styles: icon: - - color: "[[[ return `rgba(var(--color-${variables.color_pill_4}), 1)`;]]]" + - color: "[[[ return `rgba(var(--color-${variables.entity_4.color}), 1)`;]]]" img_cell: - - background-color: "[[[ return `rgba(var(--color-${variables.color_pill_4}), 0.20)`;]]]" + - background-color: "[[[ return `rgba(var(--color-${variables.entity_4.color}), 0.20)`;]]]" tap_action: action: "call-service" service: "script.toggle" service_data: - entity_id: "[[[ return variables.entity_pill_4 ]]]" + entity_id: "[[[ return variables.entity_4.entity_id ]]]" item5: card: type: "custom:button-card" template: "card_scenes_pill_welcome" - entity: "[[[ return variables.entity_pill_5 ]]]" - icon: "[[[ return variables.icon_pill_5 ]]]" - name: "[[[ return variables.name_pill_5 ]]]" + entity: "[[[ return variables.entity_5.entity_id ]]]" + icon: "[[[ return variables.entity_5.icon ]]]" + name: "[[[ return variables.entity_5.name ]]]" styles: icon: - - color: "[[[ return `rgba(var(--color-${variables.color_pill_5}), 1)`;]]]" + - color: "[[[ return `rgba(var(--color-${variables.entity_5.color}), 1)`;]]]" img_cell: - - background-color: "[[[ return `rgba(var(--color-${variables.color_pill_5}), 0.20)`;]]]" + - background-color: "[[[ return `rgba(var(--color-${variables.entity_5.color}), 0.20)`;]]]" tap_action: action: "call-service" service: "script.toggle" service_data: - entity_id: "[[[ return variables.entity_pill_5 ]]]" + entity_id: "[[[ return variables.entity_5.entity_id ]]]" card_scenes_pill_welcome: show_icon: true show_label: false @@ -407,9 +413,9 @@ card_scenes_welcome_auto: template: "card_scenes_pill_welcome" styles: icon: - - color: "[[[ return `rgba(var(--color-${variables.color_pill_1}), 1)`;]]]" + - color: "[[[ return `rgba(var(--color-${variables.entity_1.color}), 1)`;]]]" img_cell: - - background-color: "[[[ return `rgba(var(--color-${variables.color_pill_1}), 0.20)`;]]]" + - background-color: "[[[ return `rgba(var(--color-${variables.entity_1.color}), 0.20)`;]]]" tap_action: action: "call-service" service: "script.toggle" @@ -434,9 +440,9 @@ card_scenes_welcome_auto: template: "card_scenes_pill_welcome" styles: icon: - - color: "[[[ return `rgba(var(--color-${variables.color_pill_2}), 1)`;]]]" + - color: "[[[ return `rgba(var(--color-${variables.entity_2.color}), 1)`;]]]" img_cell: - - background-color: "[[[ return `rgba(var(--color-${variables.color_pill_2}), 0.20)`;]]]" + - background-color: "[[[ return `rgba(var(--color-${variables.entity_2.color}), 0.20)`;]]]" tap_action: action: "call-service" service: "script.toggle" @@ -461,9 +467,9 @@ card_scenes_welcome_auto: template: "card_scenes_pill_welcome" styles: icon: - - color: "[[[ return `rgba(var(--color-${variables.color_pill_3}), 1)`;]]]" + - color: "[[[ return `rgba(var(--color-${variables.entity_3.color}), 1)`;]]]" img_cell: - - background-color: "[[[ return `rgba(var(--color-${variables.color_pill_3}), 0.20)`;]]]" + - background-color: "[[[ return `rgba(var(--color-${variables.entity_3.color}), 0.20)`;]]]" tap_action: action: "call-service" service: "script.toggle" @@ -488,9 +494,9 @@ card_scenes_welcome_auto: template: "card_scenes_pill_welcome" styles: icon: - - color: "[[[ return `rgba(var(--color-${variables.color_pill_4}), 1)`;]]]" + - color: "[[[ return `rgba(var(--color-${variables.entity_4.color}), 1)`;]]]" img_cell: - - background-color: "[[[ return `rgba(var(--color-${variables.color_pill_4}), 0.20)`;]]]" + - background-color: "[[[ return `rgba(var(--color-${variables.entity_4.color}), 0.20)`;]]]" tap_action: action: "call-service" service: "script.toggle" @@ -515,9 +521,9 @@ card_scenes_welcome_auto: template: "card_scenes_pill_welcome" styles: icon: - - color: "[[[ return `rgba(var(--color-${variables.color_pill_5}), 1)`;]]]" + - color: "[[[ return `rgba(var(--color-${variables.entity_5.color}), 1)`;]]]" img_cell: - - background-color: "[[[ return `rgba(var(--color-${variables.color_pill_5}), 0.20)`;]]]" + - background-color: "[[[ return `rgba(var(--color-${variables.entity_5.color}), 0.20)`;]]]" tap_action: action: "call-service" service: "script.toggle" diff --git a/docs/usage/cards/card_welcome_scenes.md b/docs/usage/cards/card_welcome_scenes.md index 3ef09edae..eff57c5f0 100644 --- a/docs/usage/cards/card_welcome_scenes.md +++ b/docs/usage/cards/card_welcome_scenes.md @@ -16,27 +16,10 @@ This is a card which shows the basic needs for your dashboard. This card can gen | Variable | Default | Required | Notes | |----------|---------|------------------|-------------------| | ulm_weather | | :material-check: | This is your weather provider.
Example: `weather.your_provider`| -|ulm_time| `sensor.time` | :material-check: | Sensor to check the current time.
Example: `sensor.time` | -|entity_pill_1| `script.*` | :material-close: | Script entity to show in the first pill.
When not configured it will be auto-configured with `auto-entities` | -|entity_pill_2| `script.*` | :material-close: | Script entity to show in the first pill.
When not configured it will be auto-configured with `auto-entities` | -|entity_pill_3| `script.*` | :material-close: | Script entity to show in the first pill.
When not configured it will be auto-configured with `auto-entities` | -|entity_pill_4| `script.*` | :material-close: | Script entity to show in the first pill.
When not configured it will be auto-configured with `auto-entities` | -|entity_pill_5| `script.*` | :material-close: | Script entity to show in the first pill.
When not configured it will be auto-configured with `auto-entities` | -|color_pill_1| `random` | :material-close: | Random generated color for the icon of the 1st pill.
. Can be manual configured with: `blue`,`yellow`,`green`,`red`,`purple`,`pink` | -|color_pill_2| `random` | :material-close: | Random generated color for the icon of the 2nd pill.
. Can be manual configured with: `blue`,`yellow`,`green`,`red`,`purple`,`pink` | -|color_pill_3| `random` | :material-close: | Random generated color for the icon of the 3th pill.
. Can be manual configured with: `blue`,`yellow`,`green`,`red`,`purple`,`pink` | -|color_pill_4| `random` | :material-close: | Random generated color for the icon of the 4th pill.
Can be manual configured with: `blue`,`yellow`,`green`,`red`,`purple`,`pink` | -|color_pill_5| `random` | :material-close: | Random generated color for the icon of the 5th pill.
Can be manual configured with: `blue`,`yellow`,`green`,`red`,`purple`,`pink` | -|icon_pill_1| | :material-close: | Set a custom `MDI` icon for the 1st pill | -|icon_pill_2| | :material-close: | Set a custom `MDI` icon for the 2nd pill | -|icon_pill_3| | :material-close: | Set a custom `MDI` icon for the 3th pill | -|icon_pill_4| | :material-close: | Set a custom `MDI` icon for the 4th pill | -|icon_pill_5| | :material-close: | Set a custom `MDI` icon for the 5th pill | -|name_pill_1| | :material-close: | Set a custom `MDI` icon for the 1st pill | -|name_pill_2| | :material-close: | Set a custom `MDI` icon for the 2nd pill | -|name_pill_3| | :material-close: | Set a custom `MDI` icon for the 3th pill | -|name_pill_4| | :material-close: | Set a custom `MDI` icon for the 4th pill | -|name_pill_5| | :material-close: | Set a custom `MDI` icon for the 5th pill | for the 5th pill | +| entity_ | `script.*` | :material-check: | Your script entity
If not specified, it will take a random script | +| icon_ | | :material-close: | The icon to show | +| name_ | | :material-close: | The name to show| +| color_ | Random | :material-close: | Color of the icon
Can choose between: `blue`, `red`, `green`, `yellow`, `pink`, `purple`
If not specified, it will take a random color | ## Usage @@ -44,8 +27,80 @@ This is a card which shows the basic needs for your dashboard. This card can gen - type: "custom:button-card" template: "card_welcome_scenes" variables: - ulm_time: "sensor.time" - ulm_weather: "this.entity_id" + ulm_weather: "weather.YOUR_WEATHERPROVIDER" + entity_1: + entity_id: "script.YOUR_SCRIPT" + icon: "mdi:YOUR_ICON" #OPTIONAL + name: "YOUR_NAME" #OPTIONAL + color: "blue" + entity_2: + entity_id: "script.YOUR_SCRIPT" + icon: "mdi:YOUR_ICON" #OPTIONAL + name: "YOUR_NAME" #OPTIONAL + color: "red" + entity_3: + entity_id: "script.YOUR_SCRIPT" + icon: "mdi:YOUR_ICON" #OPTIONAL + name: "YOUR_NAME" #OPTIONAL + color: "green" + entity_4: + entity_id: "script.YOUR_SCRIPT" + icon: "mdi:YOUR_ICON" #OPTIONAL + name: "YOUR_NAME" #OPTIONAL + color: "purple" + entity_5: + entity_id: "script.YOUR_SCRIPT" + icon: "mdi:YOUR_ICON" #OPTIONAL + name: "YOUR_NAME" #OPTIONAL + color: "yellow" + +# Use random script entities (icon and name cannot be specified!!) +- type: "custom:button-card" + template: "card_welcome_scenes" + variables: + ulm_weather: "weather.YOUR_WEATHERPROVIDER" + entity_1: + color: "blue" + entity_2: + color: "red" + entity_3: + color: "green" + entity_4: + color: "purple" + entity_5: + color: "yellow" + +# Use random colors +- type: "custom:button-card" + template: "card_welcome_scenes" + variables: + ulm_weather: "weather.YOUR_WEATHERPROVIDER" + entity_1: + entity_id: "script.YOUR_SCRIPT" + icon: "mdi:YOUR_ICON" #OPTIONAL + name: "YOUR_NAME" #OPTIONAL + entity_2: + entity_id: "script.YOUR_SCRIPT" + icon: "mdi:YOUR_ICON" #OPTIONAL + name: "YOUR_NAME" #OPTIONAL + entity_3: + entity_id: "script.YOUR_SCRIPT" + icon: "mdi:YOUR_ICON" #OPTIONAL + name: "YOUR_NAME" #OPTIONAL + entity_4: + entity_id: "script.YOUR_SCRIPT" + icon: "mdi:YOUR_ICON" #OPTIONAL + name: "YOUR_NAME" #OPTIONAL + entity_5: + entity_id: "script.YOUR_SCRIPT" + icon: "mdi:YOUR_ICON" #OPTIONAL + name: "YOUR_NAME" #OPTIONAL + +# Let the card decide everything +- type: "custom:button-card" + template: "card_welcome_scenes" + variables: + ulm_weather: "weather.YOUR_WEATHERPROVIDER" ``` ??? note "Template Code" From 753e95933cf18702d721e80edea88ea1325c2d2c Mon Sep 17 00:00:00 2001 From: basbruss <68892092+basbruss@users.noreply.github.com> Date: Fri, 4 Feb 2022 12:31:35 +0100 Subject: [PATCH 160/248] Update lui-lovelace.yaml Remove `sensor.time` --- .../ui_lovelace_minimalist/lovelace/ui-lovelace.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml index 94e0f375b..94df5d18a 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ui-lovelace.yaml @@ -31,7 +31,6 @@ views: type: "custom:button-card" template: "card_welcome_scenes" variables: - ulm_time: "sensor.time" ulm_weather: "this.entity_id" - type: "custom:button-card" template: "card_title" From c2cf2ec2c2cb8e827e1b44d96b9a75bc5f817e52 Mon Sep 17 00:00:00 2001 From: Ned-Tom Date: Fri, 4 Feb 2022 13:56:10 +0100 Subject: [PATCH 161/248] Added minimalist-mobile-tapbar theme --- .../minimalist-mobile-tapbar.yaml | 206 ++++++++++++++++++ 1 file changed, 206 insertions(+) create mode 100644 custom_components/ui_lovelace_minimalist/lovelace/themefiles/minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml diff --git a/custom_components/ui_lovelace_minimalist/lovelace/themefiles/minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml b/custom_components/ui_lovelace_minimalist/lovelace/themefiles/minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml new file mode 100644 index 000000000..78b8831de --- /dev/null +++ b/custom_components/ui_lovelace_minimalist/lovelace/themefiles/minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml @@ -0,0 +1,206 @@ +--- +minimalist-mobile-tapbar: + # Journal + state-icon-color: "rgb(var(--color-theme))" + border-radius: "20px" + error-color: "var(--google-red)" + warning-color: "var(--google-yellow)" + success-color: "var(--google-green)" + info-color: "var(--google-blue)" + divider-color: "rgba(var(--color-theme),.12)" + accent-color: "var(--google-yellow)" + card-mod-theme: "minimalist-mobile-tapbar" + + card-mod-view-yaml: | + "*:first-child$": | + #columns .column > * { + padding-left: 5px; + padding-right: 5px; + padding-bottom: 5px; + } + + # Move navbar + card-mod-root-yaml: | + ha-tabs$: | + #tabsContent { + width: 97%; + } + .: | + @media (orientation: portrait) { + a.menu-link[target="_blank"], ha-button-menu, ha-menu-button, [main-title] { + display: none !important; + } + app-toolbar { + padding-right: 0px; + padding-left: 0px; + } + } + app-header { + top: auto !important; + bottom: 0 !important; + transform: unset !important; + box-shadow: var(--footer-shadow); + position: fixed; + } + app-toolbar { + transform: none; + padding-top:10px !important; + padding-bottom: calc(env(safe-area-inset-bottom) + 0.5rem) !important; + } + #view { + float:left; + width:100%; + min-height: 100% !important; + margin-top: calc(env(safe-area-inset-top) - 4.625rem) !important; + padding-bottom: calc(env(safe-area-inset-bottom) + 4.625rem) !important; + } + ha-app-layout{ + transform: initial; + padding:0; + } + ha-tabs { + --paper-tabs-selection-bar-color: var(--header-tab-indicator-color) !important; + --mdc-icon-size: 26px; + display: flex; + justify-content: space-between; + padding: 0 10px; + } + paper-tab[aria-selected=true] { + color: var(--header-active-tab-color) !important; + background-color: var(--header-active-tab-bg-color) !important + + } + paper-tab { + color: var(--header-all-tabs-color) !important; + border-radius: 25px !important; + height:50px !important; + width: calc(100% / 4); + padding-left: 0px; + padding-right: 0px; + } + + # Color themes + modes: + light: + # Header / Footer + header-active-tab-color: rgba(61, 90, 254, 1) + header-active-tab-bg-color: rgba(61, 90, 254, .3) + header-all-tabs-color: 'var(--paper-item-icon-color)' + header-tab-indicator-color: 'rgba(0, 0, 0, 0)' + footer-shadow: 0px -1px 3px 0px rgba(0,0,0,0.12) + + # text + primary-text-color: "#212121" + # main interface colors + primary-color: "#434343" + google-red: "#F54436" + google-green: "#01C852" + google-yellow: "#FF9101" + google-blue: "#3D5AFE" + google-violet: "#661FFF" + google-grey: "#BBBBBB" + color-red: "245, 68, 54" + color-green: "1, 200, 82" + color-yellow: "255, 145, 1" + color-blue: "61, 90, 254" + color-purple: "102, 31, 255" + color-grey: "187, 187, 187" + color-pink: "233, 30, 99" + color-theme: "51,51,51" + color-background-yellow: "250, 250, 250" + color-background-blue: "250, 250, 250" + color-background-green: "250, 250, 250" + color-background-red: "250, 250, 250" + color-background-pink: "250, 250, 250" + color-background-purple: "250, 250, 250" + color-yellow-text: "var(--primary-text-color)" + color-blue-text: "var(--primary-text-color)" + color-green-text: "var(--primary-text-color)" + color-red-text: "var(--primary-text-color)" + color-pink-text: "var(--primary-text-color)" + color-purple-text: "var(--primary-text-color)" + opacity-bg: "1" + # background and sidebar + card-background-color: "#FAFAFA" + primary-background-color: "#EFEFEF" + secondary-background-color: "#EFEFEF" + # header + app-header-text-color: "var(--primary-text-color)" + app-header-background-color: var( --ha-card-background, var(--card-background-color, white) ) + # paper-tabs-selection-bar-color: "var(--primary-text-color)" + # slider + slider-color: "rgb(var(--color-blue))" + slider-bar-color: "rgba(var(--color-blue),0.38)" + # cards + box-shadow: "0px 2px 4px 0px rgba(0,0,0,0.16)" + ha-card-box-shadow: "var(--box-shadow)" + # sidebar + sidebar-selected-text-color: "var(--google-red)" + sidebar-selected-icon-color: "var(--google-red)" + sidebar-text-color: "#80868b" + # switch + switch-checked-color: "var(--google-blue)" + # media player + mini-media-player-accent-color: "var(--google-red)" + + dark: + # Header / Footer + header-active-tab-color: rgba(255, 145, 1, 1) + header-active-tab-bg-color: rgba(255, 145, 1, .3) + header-all-tabs-color: 'var(--paper-item-icon-color)' + header-tab-indicator-color: 'rgba(0, 0, 0, 0)' + footer-shadow: 0px -1px 3px 0px rgba(0,0,0,0.12) + + # text + primary-text-color: "#DDDDDD" + # main interface colors + primary-color: "#89B3F8" + google-red: "#F18B82" + google-green: "#80C994" + google-yellow: "#FCD663" + google-blue: "#89B3F8" + google-violet: "#BB86FC" + google-grey: "#BBBBBB" + color-red: "241, 139, 130" + color-green: "128, 201, 148" + color-yellow: "252, 214, 99" + color-blue: "137, 179, 248" + color-theme: "221,221,221" + color-purple: "102, 31, 255" + color-grey: "187, 187, 187" + color-pink: "233, 30, 99" + color-background-yellow: "var(--color-yellow)" + color-background-blue: "var(--color-blue)" + color-background-green: "var(--color-green)" + color-background-red: "var(--color-red)" + color-background-pink: "var(--color-pink)" + color-background-purple: "var(--color-purple)" + color-yellow-text: "var(--color-yellow)" + color-blue-text: "var(--color-blue)" + color-green-text: "var(--color-green)" + color-red-text: "var(--color-red)" + color-pink-text: "var(--color-pink)" + color-purple-text: "var(--color-purple)" + opacity-bg: "0.1" + # floating button text color + mdc-theme-on-secondary: "var(--card-background-color)" + # background and sidebar + card-background-color: "#1D1D1D" + primary-background-color: "#121212" + secondary-background-color: "#121212" + # header + app-header-text-color: "var(--primary-text-color)" + app-header-background-color: var( --ha-card-background, var(--card-background-color, rgb(29, 29, 29)) ) + #paper-tabs-selection-bar-color: "var(--primary-text-color)" + # Sidebar + sidebar-selected-text-color: "rgb(var(--color-blue))" + sidebar-selected-icon-color: "rgb(var(--color-blue))" + # Slider + slider-color: "rgb(var(--color-blue))" + slider-bar-color: "rgba(var(--color-blue),0.38)" + # card + box-shadow: "none" + # media player + mini-media-player-accent-color: "var(--google-blue)" + # Journal + state-icon-color: "rgb(var(--color-theme))" From df04e30ed093e336a2fabf26b7320a43dbf32b6f Mon Sep 17 00:00:00 2001 From: Ned-Tom Date: Fri, 4 Feb 2022 14:46:16 +0100 Subject: [PATCH 162/248] Fixt Quotes and white space isues from checks --- .../minimalist-mobile-tapbar.yaml | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/themefiles/minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml b/custom_components/ui_lovelace_minimalist/lovelace/themefiles/minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml index 78b8831de..c3dd325ed 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/themefiles/minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/themefiles/minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml @@ -83,11 +83,11 @@ minimalist-mobile-tapbar: modes: light: # Header / Footer - header-active-tab-color: rgba(61, 90, 254, 1) - header-active-tab-bg-color: rgba(61, 90, 254, .3) - header-all-tabs-color: 'var(--paper-item-icon-color)' - header-tab-indicator-color: 'rgba(0, 0, 0, 0)' - footer-shadow: 0px -1px 3px 0px rgba(0,0,0,0.12) + header-active-tab-color: "rgba(61, 90, 254, 1)" + header-active-tab-bg-color: "rgba(61, 90, 254, .3)" + header-all-tabs-color: "var(--paper-item-icon-color)" + header-tab-indicator-color: "rgba(0, 0, 0, 0)" + footer-shadow: "0px -1px 3px 0px rgba(0,0,0,0.12)" # text primary-text-color: "#212121" @@ -126,7 +126,7 @@ minimalist-mobile-tapbar: secondary-background-color: "#EFEFEF" # header app-header-text-color: "var(--primary-text-color)" - app-header-background-color: var( --ha-card-background, var(--card-background-color, white) ) + app-header-background-color: "var( --ha-card-background, var(--card-background-color, white) )" # paper-tabs-selection-bar-color: "var(--primary-text-color)" # slider slider-color: "rgb(var(--color-blue))" @@ -145,11 +145,11 @@ minimalist-mobile-tapbar: dark: # Header / Footer - header-active-tab-color: rgba(255, 145, 1, 1) - header-active-tab-bg-color: rgba(255, 145, 1, .3) - header-all-tabs-color: 'var(--paper-item-icon-color)' - header-tab-indicator-color: 'rgba(0, 0, 0, 0)' - footer-shadow: 0px -1px 3px 0px rgba(0,0,0,0.12) + header-active-tab-color: "rgba(255, 145, 1, 1)" + header-active-tab-bg-color: "rgba(255, 145, 1, .3)" + header-all-tabs-color: "var(--paper-item-icon-color)" + header-tab-indicator-color: "rgba(0, 0, 0, 0)" + footer-shadow: "0px -1px 3px 0px rgba(0,0,0,0.12)" # text primary-text-color: "#DDDDDD" @@ -190,8 +190,8 @@ minimalist-mobile-tapbar: secondary-background-color: "#121212" # header app-header-text-color: "var(--primary-text-color)" - app-header-background-color: var( --ha-card-background, var(--card-background-color, rgb(29, 29, 29)) ) - #paper-tabs-selection-bar-color: "var(--primary-text-color)" + app-header-background-color: "var( --ha-card-background, var(--card-background-color, rgb(29, 29, 29)) )" + # paper-tabs-selection-bar-color: "var(--primary-text-color)" # Sidebar sidebar-selected-text-color: "rgb(var(--color-blue))" sidebar-selected-icon-color: "rgb(var(--color-blue))" From 9b3a851ca2fb5248a39a52a51ea7092f8ad40ac9 Mon Sep 17 00:00:00 2001 From: Ned-Tom Date: Fri, 4 Feb 2022 14:55:34 +0100 Subject: [PATCH 163/248] Changed static 4 tabs to not fill the space --- .../minimalist-mobile-tapbar.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/themefiles/minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml b/custom_components/ui_lovelace_minimalist/lovelace/themefiles/minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml index c3dd325ed..c6dd74699 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/themefiles/minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/themefiles/minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml @@ -51,7 +51,8 @@ minimalist-mobile-tapbar: float:left; width:100%; min-height: 100% !important; - margin-top: calc(env(safe-area-inset-top) - 4.625rem) !important; + /*margin-top: calc(env(safe-area-inset-top) - 4.625rem) !important;*/ + margin-top: calc(env(safe-area-inset-top) + -3.75rem) !important; padding-bottom: calc(env(safe-area-inset-bottom) + 4.625rem) !important; } ha-app-layout{ @@ -73,10 +74,12 @@ minimalist-mobile-tapbar: paper-tab { color: var(--header-all-tabs-color) !important; border-radius: 25px !important; - height:50px !important; + /*height:50px !important; width: calc(100% / 4); padding-left: 0px; - padding-right: 0px; + padding-right: 0px;*/ + padding-left: 25px; + padding-right: 25px; } # Color themes From 06c4ff28b84df135d0ff5502ddf710ada896b8d3 Mon Sep 17 00:00:00 2001 From: Ned-Tom Date: Fri, 4 Feb 2022 15:01:33 +0100 Subject: [PATCH 164/248] Remove line break on line 82 --- .../minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/themefiles/minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml b/custom_components/ui_lovelace_minimalist/lovelace/themefiles/minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml index c6dd74699..b35943dad 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/themefiles/minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/themefiles/minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml @@ -69,7 +69,6 @@ minimalist-mobile-tapbar: paper-tab[aria-selected=true] { color: var(--header-active-tab-color) !important; background-color: var(--header-active-tab-bg-color) !important - } paper-tab { color: var(--header-all-tabs-color) !important; From 50738e3f4e1db4f48bf83d7682c594343e21716e Mon Sep 17 00:00:00 2001 From: "rick.stokkingreef" Date: Fri, 4 Feb 2022 14:21:33 +0000 Subject: [PATCH 165/248] Add support for the new theme in the integration --- .../ui_lovelace_minimalist/blueprints/set_theme.yaml | 1 + custom_components/ui_lovelace_minimalist/const.py | 1 + 2 files changed, 2 insertions(+) diff --git a/custom_components/ui_lovelace_minimalist/blueprints/set_theme.yaml b/custom_components/ui_lovelace_minimalist/blueprints/set_theme.yaml index 513a14492..4726dbdbf 100644 --- a/custom_components/ui_lovelace_minimalist/blueprints/set_theme.yaml +++ b/custom_components/ui_lovelace_minimalist/blueprints/set_theme.yaml @@ -13,6 +13,7 @@ blueprint: options: - "minimalist-desktop" - "minimalist-mobile" + - "minimalist-mobile-tapbar" mode: name: "Which Mode should it be default in" diff --git a/custom_components/ui_lovelace_minimalist/const.py b/custom_components/ui_lovelace_minimalist/const.py index e48b6783e..3a903c455 100644 --- a/custom_components/ui_lovelace_minimalist/const.py +++ b/custom_components/ui_lovelace_minimalist/const.py @@ -31,6 +31,7 @@ CONF_THEME_OPTIONS = [ "minimalist-mobile", "minimalist-desktop", + "minimalist-mobile-tapbar", "HA selected theme", ] CONF_INCLUDE_OTHER_CARDS = "include_other_cards" From b180ca2328bbadce3c53733507f6242ef618705b Mon Sep 17 00:00:00 2001 From: basbruss <68892092+basbruss@users.noreply.github.com> Date: Fri, 4 Feb 2022 16:19:28 +0100 Subject: [PATCH 166/248] Draft to improve documentation --- docs/development/custom_cards_draft.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/development/custom_cards_draft.md diff --git a/docs/development/custom_cards_draft.md b/docs/development/custom_cards_draft.md new file mode 100644 index 000000000..e69de29bb From 5fc827a29c944ce71a0c894a3d68f74c7a710129 Mon Sep 17 00:00:00 2001 From: basbruss <68892092+basbruss@users.noreply.github.com> Date: Fri, 4 Feb 2022 17:21:46 +0100 Subject: [PATCH 167/248] Update styleguidelines --- docs/assets/img/unix_line_endings.png | Bin 0 -> 23085 bytes docs/development/custom_cards.md | 36 ++++++++++++++++++++----- docs/development/custom_cards_draft.md | 0 3 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 docs/assets/img/unix_line_endings.png delete mode 100644 docs/development/custom_cards_draft.md diff --git a/docs/assets/img/unix_line_endings.png b/docs/assets/img/unix_line_endings.png new file mode 100644 index 0000000000000000000000000000000000000000..b8872295d90d952252d981ea39172cb7ea9bd083 GIT binary patch literal 23085 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

iK&3#AH5#pUIv^K4FK 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 Date: Fri, 4 Feb 2022 17:49:08 +0100 Subject: [PATCH 168/248] Add visual explanation --- docs/assets/img/fork.png | Bin 0 -> 23512 bytes docs/assets/img/upload.png | Bin 0 -> 123051 bytes docs/development/custom_cards.md | 10 ++++++---- 3 files changed, 6 insertions(+), 4 deletions(-) create mode 100644 docs/assets/img/fork.png create mode 100644 docs/assets/img/upload.png diff --git a/docs/assets/img/fork.png b/docs/assets/img/fork.png new file mode 100644 index 0000000000000000000000000000000000000000..128e1a694bee362444c37481e5dba8550d362f12 GIT binary patch literal 23512 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 literal 0 HcmV?d00001 diff --git a/docs/assets/img/upload.png b/docs/assets/img/upload.png new file mode 100644 index 0000000000000000000000000000000000000000..ec33831ef497780527aa6ffb5bc6d40f0e92be42 GIT binary patch literal 123051 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

+
+1.0.0 +Added support for ulm_language variables +
## Usage From 0624839e204289c7527b2b1507806040c3b08a4f Mon Sep 17 00:00:00 2001 From: Andy <67138158+AndyVRD@users.noreply.github.com> Date: Sat, 12 Feb 2022 21:56:04 +0100 Subject: [PATCH 243/248] Update README.md --- custom_cards/custom_card_homeassistant_updates/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_cards/custom_card_homeassistant_updates/README.md b/custom_cards/custom_card_homeassistant_updates/README.md index 1ffd686dc..b0787679b 100644 --- a/custom_cards/custom_card_homeassistant_updates/README.md +++ b/custom_cards/custom_card_homeassistant_updates/README.md @@ -26,7 +26,7 @@ This card needs additional template sensors and a group.updaters sensor to work, Initial release
-1.0.0 +1.0.1 Added support for ulm_language variables
From 4e303d771be1c6eaa973117d668f74b35871d42c Mon Sep 17 00:00:00 2001 From: Andy <67138158+AndyVRD@users.noreply.github.com> Date: Sat, 12 Feb 2022 21:57:39 +0100 Subject: [PATCH 244/248] Update custom_card_homeassistant_updates.yaml Support ulm_language variables --- .../custom_card_homeassistant_updates.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom_cards/custom_card_homeassistant_updates/custom_card_homeassistant_updates.yaml b/custom_cards/custom_card_homeassistant_updates/custom_card_homeassistant_updates.yaml index 06a19807f..0c723b518 100644 --- a/custom_cards/custom_card_homeassistant_updates/custom_card_homeassistant_updates.yaml +++ b/custom_cards/custom_card_homeassistant_updates/custom_card_homeassistant_updates.yaml @@ -26,9 +26,9 @@ card_homeassistant_updates: name: > [[[ if(states[variables.ulm_card_homeassistant_core].state ==='True' || states[variables.ulm_card_homeassistant_supervisor].state ==='True' || states[variables.ulm_card_homeassistant_os].state ==='True'){ - return 'Updates beschikbaar!'; + return variables.ulm_updates_available; } else { - return 'Geen updates' + return variables.ulm_no_updates_available } ]]] label: > From ff1e7a7a5c94bf6cf2dcc5b44decbfa82ae6f19b Mon Sep 17 00:00:00 2001 From: Ken Thompson Date: Sun, 13 Feb 2022 11:46:32 +1100 Subject: [PATCH 245/248] Update icon color to red when active only Previously icon would come on for any other state than "off". Ie. Auto (idle) is considered "on"/highlighted. Have changed to only color icon red when actively heating or cooling. Further work might be done for different color/state for auto(idle). --- .../ulm_templates/card_templates/cards/card_thermostat.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml index c49b93b46..485e25033 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_thermostat.yaml @@ -178,7 +178,7 @@ card_thermostat: - operator: "template" value: > [[[ - return entity.state != 'off' + return (entity.attributes.hvac_action == 'cooling' || entity.attributes.hvac_action == 'heating') ]]] styles: icon: From 416bca431f7dfee7aacb40aa0ac423655fda0e07 Mon Sep 17 00:00:00 2001 From: CM000n Date: Mon, 14 Feb 2022 07:17:05 +0000 Subject: [PATCH 246/248] Update docs --- .../usage/custom_cards/custom_card_homeassistant_updates.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/usage/custom_cards/custom_card_homeassistant_updates.md b/docs/usage/custom_cards/custom_card_homeassistant_updates.md index 52de1f1df..530888c0a 100644 --- a/docs/usage/custom_cards/custom_card_homeassistant_updates.md +++ b/docs/usage/custom_cards/custom_card_homeassistant_updates.md @@ -17,7 +17,7 @@ This card needs additional template sensors and a group.updaters sensor to work, - Author: AndyVRD - 2021 - Special thanks to [basbruss](https://github.com/basbruss/UI) -- Version: 1.0.0 +- Version: 1.0.1 ## Changelog @@ -25,6 +25,10 @@ This card needs additional template sensors and a group.updaters sensor to work, 1.0.0 Initial release +
+1.0.1 +Added support for ulm_language variables +
## Usage From e6cb9d119a5a63031d5efd2d99b9ec8a90b8d172 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20H=C3=B6rrle?= Date: Mon, 14 Feb 2022 08:30:43 +0100 Subject: [PATCH 247/248] Use ISO language codes instead of country codes --- .../languages/{EN.yaml => en.yaml} | 0 .../languages/{IT.yaml => it.yaml} | 0 .../languages/{PL.yaml => pl.yaml} | 0 .../languages/{EN.yaml => en.yaml} | 0 .../languages/{PL.yaml => pl.yaml} | 0 .../languages/{EN.yaml => en.yaml} | 0 .../languages/{ES.yaml => es.yaml} | 0 .../languages/{PL.yaml => pl.yaml} | 0 .../languages/{PT.yaml => pt.yaml} | 0 .../languages/{DE.yaml => de.yaml} | 0 .../languages/{EN.yaml => en.yaml} | 0 .../languages/{ES.yaml => es.yaml} | 0 .../languages/{FR.yaml => fr.yaml} | 0 .../languages/{IT.yaml => it.yaml} | 0 .../languages/{PL.yaml => pl.yaml} | 0 .../languages/{DE.yaml => de.yaml} | 0 .../languages/{EN.yaml => en.yaml} | 0 .../languages/{ES.yaml => es.yaml} | 0 .../languages/{PL.yaml => pl.yaml} | 0 .../languages/{EN.yaml => en.yaml} | 0 .../languages/{ES.yaml => es.yaml} | 0 .../languages/{IT.yaml => it.yaml} | 0 .../languages/{PL.yaml => pl.yaml} | 0 .../languages/{PT.yaml => pt.yaml} | 0 .../languages/{DE.yaml => de.yaml} | 0 .../languages/{EN.yaml => en.yaml} | 0 .../languages/{ES.yaml => es.yaml} | 0 .../languages/{FR.yaml => fr.yaml} | 0 .../languages/{IT.yaml => it.yaml} | 0 .../languages/{PL.yaml => pl.yaml} | 0 .../languages/{PT.yaml => pt.yaml} | 0 .../languages/{DE.yaml => de.yaml} | 0 .../languages/{EN.yaml => en.yaml} | 0 .../languages/{ES.yaml => es.yaml} | 0 .../languages/{FR.yaml => fr.yaml} | 0 .../languages/{IT.yaml => it.yaml} | 0 .../languages/{PL.yaml => pl.yaml} | 0 .../languages/{PT.yaml => pt.yaml} | 0 .../languages/{DE.yaml => de.yaml} | 0 .../languages/{EN.yaml => en.yaml} | 0 .../languages/{ES.yaml => es.yaml} | 0 .../languages/{FR.yaml => fr.yaml} | 0 .../languages/{PL.yaml => pl.yaml} | 0 .../languages/{PT.yaml => pt.yaml} | 0 .../ui_lovelace_minimalist/configure.py | 26 +++++++++---------- .../ui_lovelace_minimalist/const.py | 8 +++--- .../translations/{CS.yaml => cs.yaml} | 0 .../translations/{DA.yaml => da.yaml} | 0 .../translations/{DE.yaml => de.yaml} | 0 .../translations/{EN.yaml => en.yaml} | 0 .../translations/{ES.yaml => es.yaml} | 0 .../translations/{FR.yaml => fr.yaml} | 0 .../translations/{IT.yaml => it.yaml} | 0 .../translations/{NL.yaml => nl.yaml} | 0 .../translations/{NO.yaml => no.yaml} | 0 .../translations/{PL.yaml => pl.yaml} | 0 .../translations/{PT.yaml => pt.yaml} | 0 .../translations/{SK.yaml => sk.yaml} | 0 .../translations/{SE.yaml => sv.yaml} | 0 59 files changed, 17 insertions(+), 17 deletions(-) rename custom_cards/custom_card_damix48_power_details/languages/{EN.yaml => en.yaml} (100%) rename custom_cards/custom_card_damix48_power_details/languages/{IT.yaml => it.yaml} (100%) rename custom_cards/custom_card_damix48_power_details/languages/{PL.yaml => pl.yaml} (100%) rename custom_cards/custom_card_heat_pump/languages/{EN.yaml => en.yaml} (100%) rename custom_cards/custom_card_heat_pump/languages/{PL.yaml => pl.yaml} (100%) rename custom_cards/custom_card_httpedo13_thermostat/languages/{EN.yaml => en.yaml} (100%) rename custom_cards/custom_card_httpedo13_thermostat/languages/{ES.yaml => es.yaml} (100%) rename custom_cards/custom_card_httpedo13_thermostat/languages/{PL.yaml => pl.yaml} (100%) rename custom_cards/custom_card_httpedo13_thermostat/languages/{PT.yaml => pt.yaml} (100%) rename custom_cards/custom_card_imswel_person/languages/{DE.yaml => de.yaml} (100%) rename custom_cards/custom_card_imswel_person/languages/{EN.yaml => en.yaml} (100%) rename custom_cards/custom_card_imswel_person/languages/{ES.yaml => es.yaml} (100%) rename custom_cards/custom_card_imswel_person/languages/{FR.yaml => fr.yaml} (100%) rename custom_cards/custom_card_imswel_person/languages/{IT.yaml => it.yaml} (100%) rename custom_cards/custom_card_imswel_person/languages/{PL.yaml => pl.yaml} (100%) rename custom_cards/custom_card_paddy_dwd_pollen/languages/{DE.yaml => de.yaml} (100%) rename custom_cards/custom_card_paddy_dwd_pollen/languages/{EN.yaml => en.yaml} (100%) rename custom_cards/custom_card_paddy_dwd_pollen/languages/{ES.yaml => es.yaml} (100%) rename custom_cards/custom_card_paddy_dwd_pollen/languages/{PL.yaml => pl.yaml} (100%) rename custom_cards/custom_card_paddy_welcome/languages/{EN.yaml => en.yaml} (100%) rename custom_cards/custom_card_paddy_welcome/languages/{ES.yaml => es.yaml} (100%) rename custom_cards/custom_card_paddy_welcome/languages/{IT.yaml => it.yaml} (100%) rename custom_cards/custom_card_paddy_welcome/languages/{PL.yaml => pl.yaml} (100%) rename custom_cards/custom_card_paddy_welcome/languages/{PT.yaml => pt.yaml} (100%) rename custom_cards/custom_card_schumijo_car/languages/{DE.yaml => de.yaml} (100%) rename custom_cards/custom_card_schumijo_car/languages/{EN.yaml => en.yaml} (100%) rename custom_cards/custom_card_schumijo_car/languages/{ES.yaml => es.yaml} (100%) rename custom_cards/custom_card_schumijo_car/languages/{FR.yaml => fr.yaml} (100%) rename custom_cards/custom_card_schumijo_car/languages/{IT.yaml => it.yaml} (100%) rename custom_cards/custom_card_schumijo_car/languages/{PL.yaml => pl.yaml} (100%) rename custom_cards/custom_card_schumijo_car/languages/{PT.yaml => pt.yaml} (100%) rename custom_cards/custom_card_schumijo_flower/languages/{DE.yaml => de.yaml} (100%) rename custom_cards/custom_card_schumijo_flower/languages/{EN.yaml => en.yaml} (100%) rename custom_cards/custom_card_schumijo_flower/languages/{ES.yaml => es.yaml} (100%) rename custom_cards/custom_card_schumijo_flower/languages/{FR.yaml => fr.yaml} (100%) rename custom_cards/custom_card_schumijo_flower/languages/{IT.yaml => it.yaml} (100%) rename custom_cards/custom_card_schumijo_flower/languages/{PL.yaml => pl.yaml} (100%) rename custom_cards/custom_card_schumijo_flower/languages/{PT.yaml => pt.yaml} (100%) rename custom_cards/custom_card_tpx01_aircondition/languages/{DE.yaml => de.yaml} (100%) rename custom_cards/custom_card_tpx01_aircondition/languages/{EN.yaml => en.yaml} (100%) rename custom_cards/custom_card_tpx01_aircondition/languages/{ES.yaml => es.yaml} (100%) rename custom_cards/custom_card_tpx01_aircondition/languages/{FR.yaml => fr.yaml} (100%) rename custom_cards/custom_card_tpx01_aircondition/languages/{PL.yaml => pl.yaml} (100%) rename custom_cards/custom_card_tpx01_aircondition/languages/{PT.yaml => pt.yaml} (100%) rename custom_components/ui_lovelace_minimalist/lovelace/translations/{CS.yaml => cs.yaml} (100%) rename custom_components/ui_lovelace_minimalist/lovelace/translations/{DA.yaml => da.yaml} (100%) rename custom_components/ui_lovelace_minimalist/lovelace/translations/{DE.yaml => de.yaml} (100%) rename custom_components/ui_lovelace_minimalist/lovelace/translations/{EN.yaml => en.yaml} (100%) rename custom_components/ui_lovelace_minimalist/lovelace/translations/{ES.yaml => es.yaml} (100%) rename custom_components/ui_lovelace_minimalist/lovelace/translations/{FR.yaml => fr.yaml} (100%) rename custom_components/ui_lovelace_minimalist/lovelace/translations/{IT.yaml => it.yaml} (100%) rename custom_components/ui_lovelace_minimalist/lovelace/translations/{NL.yaml => nl.yaml} (100%) rename custom_components/ui_lovelace_minimalist/lovelace/translations/{NO.yaml => no.yaml} (100%) rename custom_components/ui_lovelace_minimalist/lovelace/translations/{PL.yaml => pl.yaml} (100%) rename custom_components/ui_lovelace_minimalist/lovelace/translations/{PT.yaml => pt.yaml} (100%) rename custom_components/ui_lovelace_minimalist/lovelace/translations/{SK.yaml => sk.yaml} (100%) rename custom_components/ui_lovelace_minimalist/lovelace/translations/{SE.yaml => sv.yaml} (100%) diff --git a/custom_cards/custom_card_damix48_power_details/languages/EN.yaml b/custom_cards/custom_card_damix48_power_details/languages/en.yaml similarity index 100% rename from custom_cards/custom_card_damix48_power_details/languages/EN.yaml rename to custom_cards/custom_card_damix48_power_details/languages/en.yaml diff --git a/custom_cards/custom_card_damix48_power_details/languages/IT.yaml b/custom_cards/custom_card_damix48_power_details/languages/it.yaml similarity index 100% rename from custom_cards/custom_card_damix48_power_details/languages/IT.yaml rename to custom_cards/custom_card_damix48_power_details/languages/it.yaml diff --git a/custom_cards/custom_card_damix48_power_details/languages/PL.yaml b/custom_cards/custom_card_damix48_power_details/languages/pl.yaml similarity index 100% rename from custom_cards/custom_card_damix48_power_details/languages/PL.yaml rename to custom_cards/custom_card_damix48_power_details/languages/pl.yaml diff --git a/custom_cards/custom_card_heat_pump/languages/EN.yaml b/custom_cards/custom_card_heat_pump/languages/en.yaml similarity index 100% rename from custom_cards/custom_card_heat_pump/languages/EN.yaml rename to custom_cards/custom_card_heat_pump/languages/en.yaml diff --git a/custom_cards/custom_card_heat_pump/languages/PL.yaml b/custom_cards/custom_card_heat_pump/languages/pl.yaml similarity index 100% rename from custom_cards/custom_card_heat_pump/languages/PL.yaml rename to custom_cards/custom_card_heat_pump/languages/pl.yaml diff --git a/custom_cards/custom_card_httpedo13_thermostat/languages/EN.yaml b/custom_cards/custom_card_httpedo13_thermostat/languages/en.yaml similarity index 100% rename from custom_cards/custom_card_httpedo13_thermostat/languages/EN.yaml rename to custom_cards/custom_card_httpedo13_thermostat/languages/en.yaml diff --git a/custom_cards/custom_card_httpedo13_thermostat/languages/ES.yaml b/custom_cards/custom_card_httpedo13_thermostat/languages/es.yaml similarity index 100% rename from custom_cards/custom_card_httpedo13_thermostat/languages/ES.yaml rename to custom_cards/custom_card_httpedo13_thermostat/languages/es.yaml diff --git a/custom_cards/custom_card_httpedo13_thermostat/languages/PL.yaml b/custom_cards/custom_card_httpedo13_thermostat/languages/pl.yaml similarity index 100% rename from custom_cards/custom_card_httpedo13_thermostat/languages/PL.yaml rename to custom_cards/custom_card_httpedo13_thermostat/languages/pl.yaml diff --git a/custom_cards/custom_card_httpedo13_thermostat/languages/PT.yaml b/custom_cards/custom_card_httpedo13_thermostat/languages/pt.yaml similarity index 100% rename from custom_cards/custom_card_httpedo13_thermostat/languages/PT.yaml rename to custom_cards/custom_card_httpedo13_thermostat/languages/pt.yaml diff --git a/custom_cards/custom_card_imswel_person/languages/DE.yaml b/custom_cards/custom_card_imswel_person/languages/de.yaml similarity index 100% rename from custom_cards/custom_card_imswel_person/languages/DE.yaml rename to custom_cards/custom_card_imswel_person/languages/de.yaml diff --git a/custom_cards/custom_card_imswel_person/languages/EN.yaml b/custom_cards/custom_card_imswel_person/languages/en.yaml similarity index 100% rename from custom_cards/custom_card_imswel_person/languages/EN.yaml rename to custom_cards/custom_card_imswel_person/languages/en.yaml diff --git a/custom_cards/custom_card_imswel_person/languages/ES.yaml b/custom_cards/custom_card_imswel_person/languages/es.yaml similarity index 100% rename from custom_cards/custom_card_imswel_person/languages/ES.yaml rename to custom_cards/custom_card_imswel_person/languages/es.yaml diff --git a/custom_cards/custom_card_imswel_person/languages/FR.yaml b/custom_cards/custom_card_imswel_person/languages/fr.yaml similarity index 100% rename from custom_cards/custom_card_imswel_person/languages/FR.yaml rename to custom_cards/custom_card_imswel_person/languages/fr.yaml diff --git a/custom_cards/custom_card_imswel_person/languages/IT.yaml b/custom_cards/custom_card_imswel_person/languages/it.yaml similarity index 100% rename from custom_cards/custom_card_imswel_person/languages/IT.yaml rename to custom_cards/custom_card_imswel_person/languages/it.yaml diff --git a/custom_cards/custom_card_imswel_person/languages/PL.yaml b/custom_cards/custom_card_imswel_person/languages/pl.yaml similarity index 100% rename from custom_cards/custom_card_imswel_person/languages/PL.yaml rename to custom_cards/custom_card_imswel_person/languages/pl.yaml diff --git a/custom_cards/custom_card_paddy_dwd_pollen/languages/DE.yaml b/custom_cards/custom_card_paddy_dwd_pollen/languages/de.yaml similarity index 100% rename from custom_cards/custom_card_paddy_dwd_pollen/languages/DE.yaml rename to custom_cards/custom_card_paddy_dwd_pollen/languages/de.yaml diff --git a/custom_cards/custom_card_paddy_dwd_pollen/languages/EN.yaml b/custom_cards/custom_card_paddy_dwd_pollen/languages/en.yaml similarity index 100% rename from custom_cards/custom_card_paddy_dwd_pollen/languages/EN.yaml rename to custom_cards/custom_card_paddy_dwd_pollen/languages/en.yaml diff --git a/custom_cards/custom_card_paddy_dwd_pollen/languages/ES.yaml b/custom_cards/custom_card_paddy_dwd_pollen/languages/es.yaml similarity index 100% rename from custom_cards/custom_card_paddy_dwd_pollen/languages/ES.yaml rename to custom_cards/custom_card_paddy_dwd_pollen/languages/es.yaml diff --git a/custom_cards/custom_card_paddy_dwd_pollen/languages/PL.yaml b/custom_cards/custom_card_paddy_dwd_pollen/languages/pl.yaml similarity index 100% rename from custom_cards/custom_card_paddy_dwd_pollen/languages/PL.yaml rename to custom_cards/custom_card_paddy_dwd_pollen/languages/pl.yaml diff --git a/custom_cards/custom_card_paddy_welcome/languages/EN.yaml b/custom_cards/custom_card_paddy_welcome/languages/en.yaml similarity index 100% rename from custom_cards/custom_card_paddy_welcome/languages/EN.yaml rename to custom_cards/custom_card_paddy_welcome/languages/en.yaml diff --git a/custom_cards/custom_card_paddy_welcome/languages/ES.yaml b/custom_cards/custom_card_paddy_welcome/languages/es.yaml similarity index 100% rename from custom_cards/custom_card_paddy_welcome/languages/ES.yaml rename to custom_cards/custom_card_paddy_welcome/languages/es.yaml diff --git a/custom_cards/custom_card_paddy_welcome/languages/IT.yaml b/custom_cards/custom_card_paddy_welcome/languages/it.yaml similarity index 100% rename from custom_cards/custom_card_paddy_welcome/languages/IT.yaml rename to custom_cards/custom_card_paddy_welcome/languages/it.yaml diff --git a/custom_cards/custom_card_paddy_welcome/languages/PL.yaml b/custom_cards/custom_card_paddy_welcome/languages/pl.yaml similarity index 100% rename from custom_cards/custom_card_paddy_welcome/languages/PL.yaml rename to custom_cards/custom_card_paddy_welcome/languages/pl.yaml diff --git a/custom_cards/custom_card_paddy_welcome/languages/PT.yaml b/custom_cards/custom_card_paddy_welcome/languages/pt.yaml similarity index 100% rename from custom_cards/custom_card_paddy_welcome/languages/PT.yaml rename to custom_cards/custom_card_paddy_welcome/languages/pt.yaml diff --git a/custom_cards/custom_card_schumijo_car/languages/DE.yaml b/custom_cards/custom_card_schumijo_car/languages/de.yaml similarity index 100% rename from custom_cards/custom_card_schumijo_car/languages/DE.yaml rename to custom_cards/custom_card_schumijo_car/languages/de.yaml diff --git a/custom_cards/custom_card_schumijo_car/languages/EN.yaml b/custom_cards/custom_card_schumijo_car/languages/en.yaml similarity index 100% rename from custom_cards/custom_card_schumijo_car/languages/EN.yaml rename to custom_cards/custom_card_schumijo_car/languages/en.yaml diff --git a/custom_cards/custom_card_schumijo_car/languages/ES.yaml b/custom_cards/custom_card_schumijo_car/languages/es.yaml similarity index 100% rename from custom_cards/custom_card_schumijo_car/languages/ES.yaml rename to custom_cards/custom_card_schumijo_car/languages/es.yaml diff --git a/custom_cards/custom_card_schumijo_car/languages/FR.yaml b/custom_cards/custom_card_schumijo_car/languages/fr.yaml similarity index 100% rename from custom_cards/custom_card_schumijo_car/languages/FR.yaml rename to custom_cards/custom_card_schumijo_car/languages/fr.yaml diff --git a/custom_cards/custom_card_schumijo_car/languages/IT.yaml b/custom_cards/custom_card_schumijo_car/languages/it.yaml similarity index 100% rename from custom_cards/custom_card_schumijo_car/languages/IT.yaml rename to custom_cards/custom_card_schumijo_car/languages/it.yaml diff --git a/custom_cards/custom_card_schumijo_car/languages/PL.yaml b/custom_cards/custom_card_schumijo_car/languages/pl.yaml similarity index 100% rename from custom_cards/custom_card_schumijo_car/languages/PL.yaml rename to custom_cards/custom_card_schumijo_car/languages/pl.yaml diff --git a/custom_cards/custom_card_schumijo_car/languages/PT.yaml b/custom_cards/custom_card_schumijo_car/languages/pt.yaml similarity index 100% rename from custom_cards/custom_card_schumijo_car/languages/PT.yaml rename to custom_cards/custom_card_schumijo_car/languages/pt.yaml diff --git a/custom_cards/custom_card_schumijo_flower/languages/DE.yaml b/custom_cards/custom_card_schumijo_flower/languages/de.yaml similarity index 100% rename from custom_cards/custom_card_schumijo_flower/languages/DE.yaml rename to custom_cards/custom_card_schumijo_flower/languages/de.yaml diff --git a/custom_cards/custom_card_schumijo_flower/languages/EN.yaml b/custom_cards/custom_card_schumijo_flower/languages/en.yaml similarity index 100% rename from custom_cards/custom_card_schumijo_flower/languages/EN.yaml rename to custom_cards/custom_card_schumijo_flower/languages/en.yaml diff --git a/custom_cards/custom_card_schumijo_flower/languages/ES.yaml b/custom_cards/custom_card_schumijo_flower/languages/es.yaml similarity index 100% rename from custom_cards/custom_card_schumijo_flower/languages/ES.yaml rename to custom_cards/custom_card_schumijo_flower/languages/es.yaml diff --git a/custom_cards/custom_card_schumijo_flower/languages/FR.yaml b/custom_cards/custom_card_schumijo_flower/languages/fr.yaml similarity index 100% rename from custom_cards/custom_card_schumijo_flower/languages/FR.yaml rename to custom_cards/custom_card_schumijo_flower/languages/fr.yaml diff --git a/custom_cards/custom_card_schumijo_flower/languages/IT.yaml b/custom_cards/custom_card_schumijo_flower/languages/it.yaml similarity index 100% rename from custom_cards/custom_card_schumijo_flower/languages/IT.yaml rename to custom_cards/custom_card_schumijo_flower/languages/it.yaml diff --git a/custom_cards/custom_card_schumijo_flower/languages/PL.yaml b/custom_cards/custom_card_schumijo_flower/languages/pl.yaml similarity index 100% rename from custom_cards/custom_card_schumijo_flower/languages/PL.yaml rename to custom_cards/custom_card_schumijo_flower/languages/pl.yaml diff --git a/custom_cards/custom_card_schumijo_flower/languages/PT.yaml b/custom_cards/custom_card_schumijo_flower/languages/pt.yaml similarity index 100% rename from custom_cards/custom_card_schumijo_flower/languages/PT.yaml rename to custom_cards/custom_card_schumijo_flower/languages/pt.yaml diff --git a/custom_cards/custom_card_tpx01_aircondition/languages/DE.yaml b/custom_cards/custom_card_tpx01_aircondition/languages/de.yaml similarity index 100% rename from custom_cards/custom_card_tpx01_aircondition/languages/DE.yaml rename to custom_cards/custom_card_tpx01_aircondition/languages/de.yaml diff --git a/custom_cards/custom_card_tpx01_aircondition/languages/EN.yaml b/custom_cards/custom_card_tpx01_aircondition/languages/en.yaml similarity index 100% rename from custom_cards/custom_card_tpx01_aircondition/languages/EN.yaml rename to custom_cards/custom_card_tpx01_aircondition/languages/en.yaml diff --git a/custom_cards/custom_card_tpx01_aircondition/languages/ES.yaml b/custom_cards/custom_card_tpx01_aircondition/languages/es.yaml similarity index 100% rename from custom_cards/custom_card_tpx01_aircondition/languages/ES.yaml rename to custom_cards/custom_card_tpx01_aircondition/languages/es.yaml diff --git a/custom_cards/custom_card_tpx01_aircondition/languages/FR.yaml b/custom_cards/custom_card_tpx01_aircondition/languages/fr.yaml similarity index 100% rename from custom_cards/custom_card_tpx01_aircondition/languages/FR.yaml rename to custom_cards/custom_card_tpx01_aircondition/languages/fr.yaml diff --git a/custom_cards/custom_card_tpx01_aircondition/languages/PL.yaml b/custom_cards/custom_card_tpx01_aircondition/languages/pl.yaml similarity index 100% rename from custom_cards/custom_card_tpx01_aircondition/languages/PL.yaml rename to custom_cards/custom_card_tpx01_aircondition/languages/pl.yaml diff --git a/custom_cards/custom_card_tpx01_aircondition/languages/PT.yaml b/custom_cards/custom_card_tpx01_aircondition/languages/pt.yaml similarity index 100% rename from custom_cards/custom_card_tpx01_aircondition/languages/PT.yaml rename to custom_cards/custom_card_tpx01_aircondition/languages/pt.yaml diff --git a/custom_components/ui_lovelace_minimalist/configure.py b/custom_components/ui_lovelace_minimalist/configure.py index 9224aab42..4fdab4895 100644 --- a/custom_components/ui_lovelace_minimalist/configure.py +++ b/custom_components/ui_lovelace_minimalist/configure.py @@ -15,19 +15,19 @@ _LOGGER: logging.Logger = logging.getLogger(__name__) LANGUAGES = { - "Czech": "CS", - "Danish": "DA", - "Dutch": "NL", - "English (GB)": "EN", - "French": "FR", - "German": "DE", - "Italian": "IT", - "Polish": "PL", - "Portuguese": "PT", - "Slovak": "SK", - "Spanish": "ES", - "Swedish": "SE", - "Norwegian": "NO", + "Czech": "cs", + "Danish": "da", + "German": "de", + "English (GB)": "en", + "Spanish": "es", + "French": "fr", + "Italian": "it", + "Dutch": "nl", + "Norwegian": "no", + "Polish": "pl", + "Portuguese": "pt", + "Slovak": "sk", + "Swedish": "sv", } diff --git a/custom_components/ui_lovelace_minimalist/const.py b/custom_components/ui_lovelace_minimalist/const.py index ed6bfec8d..e17319cd6 100644 --- a/custom_components/ui_lovelace_minimalist/const.py +++ b/custom_components/ui_lovelace_minimalist/const.py @@ -13,17 +13,17 @@ CONF_LANGUAGES = [ "Czech", "Danish", - "Dutch", + "German", "English (GB)", + "Spanish", "French", - "German", "Italian", + "Dutch", + "Norwegian", "Polish", "Portuguese", "Slovak", - "Spanish", "Swedish", - "Norwegian", ] CONF_SIDEPANEL_ENABLED = "sidepanel_enabled" CONF_SIDEPANEL_TITLE = "sidepanel_title" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/CS.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/cs.yaml similarity index 100% rename from custom_components/ui_lovelace_minimalist/lovelace/translations/CS.yaml rename to custom_components/ui_lovelace_minimalist/lovelace/translations/cs.yaml diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/DA.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/da.yaml similarity index 100% rename from custom_components/ui_lovelace_minimalist/lovelace/translations/DA.yaml rename to custom_components/ui_lovelace_minimalist/lovelace/translations/da.yaml diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/DE.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/de.yaml similarity index 100% rename from custom_components/ui_lovelace_minimalist/lovelace/translations/DE.yaml rename to custom_components/ui_lovelace_minimalist/lovelace/translations/de.yaml diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/EN.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/en.yaml similarity index 100% rename from custom_components/ui_lovelace_minimalist/lovelace/translations/EN.yaml rename to custom_components/ui_lovelace_minimalist/lovelace/translations/en.yaml diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/ES.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/es.yaml similarity index 100% rename from custom_components/ui_lovelace_minimalist/lovelace/translations/ES.yaml rename to custom_components/ui_lovelace_minimalist/lovelace/translations/es.yaml diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/fr.yaml similarity index 100% rename from custom_components/ui_lovelace_minimalist/lovelace/translations/FR.yaml rename to custom_components/ui_lovelace_minimalist/lovelace/translations/fr.yaml diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/IT.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/it.yaml similarity index 100% rename from custom_components/ui_lovelace_minimalist/lovelace/translations/IT.yaml rename to custom_components/ui_lovelace_minimalist/lovelace/translations/it.yaml diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/NL.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/nl.yaml similarity index 100% rename from custom_components/ui_lovelace_minimalist/lovelace/translations/NL.yaml rename to custom_components/ui_lovelace_minimalist/lovelace/translations/nl.yaml diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/NO.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/no.yaml similarity index 100% rename from custom_components/ui_lovelace_minimalist/lovelace/translations/NO.yaml rename to custom_components/ui_lovelace_minimalist/lovelace/translations/no.yaml diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/PL.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/pl.yaml similarity index 100% rename from custom_components/ui_lovelace_minimalist/lovelace/translations/PL.yaml rename to custom_components/ui_lovelace_minimalist/lovelace/translations/pl.yaml diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/PT.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/pt.yaml similarity index 100% rename from custom_components/ui_lovelace_minimalist/lovelace/translations/PT.yaml rename to custom_components/ui_lovelace_minimalist/lovelace/translations/pt.yaml diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/SK.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/sk.yaml similarity index 100% rename from custom_components/ui_lovelace_minimalist/lovelace/translations/SK.yaml rename to custom_components/ui_lovelace_minimalist/lovelace/translations/sk.yaml diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/SE.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/sv.yaml similarity index 100% rename from custom_components/ui_lovelace_minimalist/lovelace/translations/SE.yaml rename to custom_components/ui_lovelace_minimalist/lovelace/translations/sv.yaml From de30ed329a2943b775997d2097f5c1c65e566b55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20H=C3=B6rrle?= Date: Mon, 14 Feb 2022 08:41:25 +0100 Subject: [PATCH 248/248] Snyc language files --- .../ui_lovelace_minimalist/lovelace/translations/cs.yaml | 6 ++++++ .../ui_lovelace_minimalist/lovelace/translations/da.yaml | 3 +++ .../ui_lovelace_minimalist/lovelace/translations/de.yaml | 2 ++ .../ui_lovelace_minimalist/lovelace/translations/en.yaml | 1 + .../ui_lovelace_minimalist/lovelace/translations/es.yaml | 3 +++ .../ui_lovelace_minimalist/lovelace/translations/fr.yaml | 2 ++ .../ui_lovelace_minimalist/lovelace/translations/it.yaml | 2 ++ .../ui_lovelace_minimalist/lovelace/translations/no.yaml | 9 +++++++++ .../ui_lovelace_minimalist/lovelace/translations/pl.yaml | 2 ++ .../ui_lovelace_minimalist/lovelace/translations/pt.yaml | 2 ++ .../ui_lovelace_minimalist/lovelace/translations/sk.yaml | 6 ++++++ .../ui_lovelace_minimalist/lovelace/translations/sv.yaml | 2 ++ 12 files changed, 40 insertions(+) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/cs.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/cs.yaml index 253bd137f..f7e014eb5 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/cs.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/cs.yaml @@ -19,6 +19,7 @@ ulm_language_variables: ulm_cooling: "Chlazení" ulm_person_state_home: "doma" ulm_person_state_away: "pryč" + ulm_person_state_not_home: "pryč" ulm_popups_back: "Zpět" ulm_popups_toggle: "Přepnout" ulm_popups_statistics: "Statistiky" @@ -34,7 +35,12 @@ ulm_language_variables: ulm_alarm_triggered: "SPUŠTĚN" ulm_playing: "Přehrává" ulm_paused: "Pozastaveno" + ulm_updates_available: "Updates available!" + ulm_no_updates_available: "No updates available" ulm_morning: "Dobré ráno" ulm_afternoon: "Dobré odpoledne" ulm_evening: "Dobrý večer" ulm_hello: "Ahoj" + ulm_cleaning: "Cleaning" + ulm_returning: "Returning" + ulm_docked: "Docked" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/da.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/da.yaml index 4c5d3c3fe..ec8cd828a 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/da.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/da.yaml @@ -19,6 +19,7 @@ ulm_language_variables: ulm_cooling: "Køling" ulm_person_state_home: "hjemme" ulm_person_state_away: "fraværende" + ulm_person_state_not_home: "fraværende" ulm_popups_back: "Tilbage" ulm_popups_toggle: "Skift" ulm_popups_statistics: "Statistik" @@ -34,6 +35,8 @@ ulm_language_variables: ulm_alarm_triggered: "AKTIVERET" ulm_playing: "Spiller" ulm_paused: "Sat på pause" + ulm_updates_available: "Updates available!" + ulm_no_updates_available: "No updates available" ulm_morning: "Good morning" ulm_afternoon: "Good afternoon" ulm_evening: "Good evening" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/de.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/de.yaml index c5fc749c7..80c024930 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/de.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/de.yaml @@ -35,6 +35,8 @@ ulm_language_variables: ulm_alarm_triggered: "AUSGELÖST" ulm_playing: "Spielt" ulm_paused: "Pausiert" + ulm_updates_available: "Updates verfügbar!" + ulm_no_updates_available: "Keine Updates verfügbar" ulm_morning: "Guten Morgen" ulm_afternoon: "Guten Tag" ulm_evening: "Guten Abend" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/en.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/en.yaml index 4b3db8a74..5336b9bee 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/en.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/en.yaml @@ -19,6 +19,7 @@ ulm_language_variables: ulm_cooling: "Cooling" ulm_person_state_home: "home" ulm_person_state_away: "away" + ulm_person_state_not_home: "away" ulm_popups_back: "Back" ulm_popups_toggle: "Toggle" ulm_popups_statistics: "Statistics" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/es.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/es.yaml index cf4a93839..9c6163698 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/es.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/es.yaml @@ -19,6 +19,7 @@ ulm_language_variables: ulm_cooling: "Refrigeración" ulm_person_state_home: "En casa" ulm_person_state_away: "Fuera de casa" + ulm_person_state_not_home: "Fuera de casa" ulm_popups_back: "Volver" ulm_popups_toggle: "Alternar" ulm_popups_statistics: "Estadísticas" @@ -34,6 +35,8 @@ ulm_language_variables: ulm_alarm_triggered: "Alarma en curso" ulm_playing: "Reproduciendo" ulm_paused: "Pausa" + ulm_updates_available: "Updates available!" + ulm_no_updates_available: "No updates available" ulm_morning: "Buenos días" ulm_afternoon: "Buenas tardes" ulm_evening: "Buenas noches" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/fr.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/fr.yaml index ede61387d..34e8ff0ff 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/fr.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/fr.yaml @@ -35,6 +35,8 @@ ulm_language_variables: ulm_alarm_triggered: "DÉCLENCHÉE" ulm_playing: "Lecture" ulm_paused: "En Pause" + ulm_updates_available: "Updates available!" + ulm_no_updates_available: "No updates available" ulm_morning: "Bonjour" ulm_afternoon: "Bon après-midi" ulm_evening: "Bonsoir" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/it.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/it.yaml index 42d7c62e7..a9af2cb8c 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/it.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/it.yaml @@ -35,6 +35,8 @@ ulm_language_variables: ulm_alarm_triggered: "TRIGGERED" ulm_playing: "Playing" ulm_paused: "Paused" + ulm_updates_available: "Updates available!" + ulm_no_updates_available: "No updates available" ulm_morning: "Buon giorno" ulm_afternoon: "Buon pomeriggio" ulm_evening: "Buona serata" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/no.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/no.yaml index 76f08a327..42ed839f5 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/no.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/no.yaml @@ -9,10 +9,17 @@ ulm_language_variables: ulm_standby: "Klar" ulm_idle: "Hviler" ulm_currency: "NOK" + ulm_auto: "Auto" ulm_heat: "Varme" ulm_cool: "Kjøling" + ulm_dry: "Dry" + ulm_fan_only: "Fan only" + ulm_heat_cool: "Heat/Cool" + ulm_heating: "Heating" + ulm_cooling: "Cooling" ulm_person_state_home: "Hjemme" ulm_person_state_away: "Borte" + ulm_person_state_not_home: "Borte" ulm_popups_back: "Tilbake" ulm_popups_toggle: "Veksle" ulm_popups_statistics: "Statistikk" @@ -28,6 +35,8 @@ ulm_language_variables: ulm_alarm_triggered: "UTLØST" ulm_playing: "Spiller" ulm_paused: "Pauset" + ulm_updates_available: "Updates available!" + ulm_no_updates_available: "No updates available" ulm_morning: "God morgen" ulm_afternoon: "God ettermiddag" ulm_evening: "God kveld" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/pl.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/pl.yaml index e2f671519..e2c1efc09 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/pl.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/pl.yaml @@ -35,6 +35,8 @@ ulm_language_variables: ulm_alarm_triggered: "Naruszony" ulm_playing: "Odtwarzanie" ulm_paused: "Wstrzymano" + ulm_updates_available: "Updates available!" + ulm_no_updates_available: "No updates available" ulm_morning: "Dzień dobry" ulm_afternoon: "Dzień dobry" ulm_evening: "Dobry wieczór" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/pt.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/pt.yaml index d111ba435..1048de71c 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/pt.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/pt.yaml @@ -35,6 +35,8 @@ ulm_language_variables: ulm_alarm_triggered: "TRIGGERED" ulm_playing: "Playing" ulm_paused: "Paused" + ulm_updates_available: "Updates available!" + ulm_no_updates_available: "No updates available" ulm_morning: "Bom dia" ulm_afternoon: "Boa tarde" ulm_evening: "Boa noite" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/sk.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/sk.yaml index fde5d4fa0..130151718 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/sk.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/sk.yaml @@ -19,6 +19,7 @@ ulm_language_variables: ulm_cooling: "Chladenie" ulm_person_state_home: "doma" ulm_person_state_away: "preč" + ulm_person_state_not_home: "preč" ulm_popups_back: "Späť" ulm_popups_toggle: "Prepnúť" ulm_popups_statistics: "Štatistiky" @@ -34,7 +35,12 @@ ulm_language_variables: ulm_alarm_triggered: "SPUSTENÝ" ulm_playing: "Prehrávanie" ulm_paused: "Pozastavený" + ulm_updates_available: "Updates available!" + ulm_no_updates_available: "No updates available" ulm_morning: "Dobré ráno" ulm_afternoon: "Dobrý deň" ulm_evening: "Dobrý večer" ulm_hello: "Ahoj" + ulm_cleaning: "Cleaning" + ulm_returning: "Returning" + ulm_docked: "Docked" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/sv.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/sv.yaml index 2f9479c49..61473451f 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/translations/sv.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/sv.yaml @@ -35,6 +35,8 @@ ulm_language_variables: ulm_alarm_triggered: "LARM UTLÖST" ulm_playing: "Spelar" ulm_paused: "Pausad" + ulm_updates_available: "Updates available!" + ulm_no_updates_available: "No updates available" ulm_morning: "Good morning" ulm_afternoon: "Good afternoon" ulm_evening: "Good evening"