From f102e4f76ef131bca60b94021df288af2aa83fda Mon Sep 17 00:00:00 2001 From: Karthik Shivashankar Date: Tue, 4 Jul 2023 23:40:09 +0530 Subject: [PATCH 01/49] Create custom_card_person_info_small.yaml --- .../custom_card_person_info_small.yaml | 149 ++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 custom_cards/custom_card_person_info_small/custom_card_person_info_small.yaml diff --git a/custom_cards/custom_card_person_info_small/custom_card_person_info_small.yaml b/custom_cards/custom_card_person_info_small/custom_card_person_info_small.yaml new file mode 100644 index 000000000..0b4eefbbe --- /dev/null +++ b/custom_cards/custom_card_person_info_small/custom_card_person_info_small.yaml @@ -0,0 +1,149 @@ +--- +card_person_info_small: + template: + - "icon_info_bg" + - "ulm_translation_engine" + variables: + ulm_card_person_use_entity_picture: true + ulm_card_person_zone1: "" + ulm_card_person_zone2: "" + ulm_card_person_icon: "mdi:face-man" + ulm_address: "" + ulm_address_locality: "" + ulm_card_person_driving_entity: "" + ulm_card_person_battery_entity: "" + ulm_card_person_battery_state_entity: "" + ulm_card_battery_battery_level_danger: 15 + ulm_card_battery_battery_level_warning: 30 + ulm_card_battery_color_battery_level_danger: "var(--google-red)" + ulm_card_battery_color_battery_level_warning: "var(--google-yellow)" + ulm_card_battery_color_battery_level_ok: "var(--google-green)" + triggers_update: "all" + tap_action: + action: "more-info" + entity: "[[[ return variables.ulm_card_person_entity; ]]]" + hold_action: + action: "more-info" + entity: "[[[ return variables.ulm_card_person_battery_entity; ]]]" + show_label: true + show_name: true + label: > + [[[ + if (variables.ulm_address){ + return states[variables.ulm_address].state; + } else if (variables.ulm_address_locality){ + return states[variables.ulm_address_locality].attributes.Locality; + } + else if (states[variables.ulm_card_person_driving_entity]?.state === "on") { + let state = states[variables.ulm_card_person_entity].state; + return `Driving - ${variables.ulm_translation_state}`; + } else { + let state = states[variables.ulm_card_person_entity].state; + return hass.resources[hass["language"]]["component.person.entity_component._.state." + state] ? hass.resources[hass["language"]]["component.person.entity_component._.state." + state] : state; + } + ]]] + name: "[[[ return states[variables.ulm_card_person_entity].attributes.friendly_name ]]]" + entity: "[[[ return variables.ulm_card_person_entity; ]]]" + icon: "[[[ return variables.ulm_card_person_icon; ]]]" + show_entity_picture: "[[[ return variables.ulm_card_person_use_entity_picture ]]]" + entity_picture: + "[[[ return variables.ulm_card_person_use_entity_picture != false ? states[variables.ulm_card_person_entity].attributes.entity_picture\ + \ : null ]]]" + styles: + grid: + - grid-template-areas: "'i battery' 'n n' 'l l'" + icon: + - color: "rgba(var(--color-theme),0.9)" + - width: "42px" + - place-self: "start" + name: + - place-self: "center" + - margin-left: 0 + - margin-top: "6%" + label: + - place-self: "center" + - margin-left: 0 + - text-transform: capitalize + custom_fields: + notification: + - position: "absolute" + - top: "7%" + - left: "38px" + - height: "16px" + - width: "16px" + - border: "2px solid var(--card-background-color)" + - border-radius: "50%" + - font-size: "12px" + - line-height: "14px" + - background-color: > + [[[ + if (states[variables.ulm_card_person_entity].state == 'home') { + return "rgba(var(--color-blue),1)"; + } else { + return "rgba(var(--color-yellow),1)"; + } + ]]] + battery: + - width: "30px" + - height: "30px" + - place-self: "end" + - align-self: "center" + - background-color: "rgba(var(--primary-background-color), 0.5)" + - border: "2px solid var(--card-background-color)" + - border-radius: "50%" + + custom_fields: + notification: > + [[[ + let height = "11px"; + let width = "11px"; + if (states[variables.ulm_card_person_entity].state !== 'home') { + if (states[variables.ulm_card_person_entity].state === states[variables.ulm_card_person_zone1]?.attributes?.friendly_name) { + var icon = states[variables.ulm_card_person_zone1].attributes.icon !== null ? states[variables.ulm_card_person_zone1].attributes.icon : 'mdi:help-circle' + return ``; + } else if (states[variables.ulm_card_person_entity].state === states[variables.ulm_card_person_zone2]?.attributes?.friendly_name) { + var icon = states[variables.ulm_card_person_zone2].attributes.icon !== null ? states[variables.ulm_card_person_zone2].attributes.icon : 'mdi:help-circle' + return ``; + } else { + return ``; + } + } else { + return ``; + } + ]]] + battery: > + [[[ + if (states[variables.ulm_card_person_battery_entity]?.state) { + let battery_level = states[variables.ulm_card_person_battery_entity]?.state; + battery_level = Number(battery_level); + let charging = states[variables.ulm_card_person_battery_state_entity]?.state.toLowerCase() === "charging"; + + var infix = charging ? "-charging" : "" + let icon = "mdi:help-circle-outline"; + if (battery_level == 100) { + icon = "mdi:battery"; + } else if (battery_level < 10) { + icon = "mdi:battery" + infix + "-outline"; + } else if (battery_level == "unknown" || battery_level == "unavailable") { + icon = "mdi:battery-off"; + } else { + icon = "mdi:battery" + infix + "-" + Math.floor(battery_level / 10) * 10; + } + + let color = variables.ulm_card_battery_color_battery_level_ok; + if (battery_level !== "unavailable") { + if (battery_level <= variables.ulm_card_battery_battery_level_danger) { + color = variables.ulm_card_battery_color_battery_level_danger; + } else if (battery_level <= variables.ulm_card_battery_battery_level_warning) { + color = variables.ulm_card_battery_color_battery_level_warning; + } else { + color = variables.ulm_card_battery_color_battery_level_ok; + } + } + + return ` + + `; + } + ]]] + From e328a85909f7440aa55cd7cc0d96375a43466e57 Mon Sep 17 00:00:00 2001 From: Karthik Shivashankar Date: Wed, 5 Jul 2023 00:27:55 +0530 Subject: [PATCH 02/49] Create README.md --- .../custom_card_person_info_small/README.md | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 custom_cards/custom_card_person_info_small/README.md diff --git a/custom_cards/custom_card_person_info_small/README.md b/custom_cards/custom_card_person_info_small/README.md new file mode 100644 index 000000000..46d1888e2 --- /dev/null +++ b/custom_cards/custom_card_person_info_small/README.md @@ -0,0 +1,55 @@ +--- +title: Person Info Card +--- + +## Description + +![Person Info](../../docs/assets/img/custom_card_person_info_small_dark.png) +![Person Info](../../docs/assets/img/custom_card_person_info_small_light.png) + +The `custom_card_person_info_small` is based on `card_person_info`. + +## Credits + +- Author: Imaginelenses <@imaginelenses> +- Based on [person info card](https://ui-lovelace-minimalist.github.io/UI/usage/custom_cards/custom_card_person_info/#variables) by Jordan Janzen <@jordandrako> +- Version: 1.0.0 + +## Variables + +| Variable | Default | Required | Notes | +| -------------------------------------------- | -------------------- | ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | +| ulm_card_person_entity | | :material-check: | The person entity | +| ulm_card_person_use_entity_picture | true | :material-close: | If you set this to true, the card shows the entity picture from your user, otherwise (set to false) shows the icon. Default is false. | +| ulm_card_person_zone1 | | :material-close: | Set another zone (beside "home") to use for the card. You can set up two zones besides "home". | +| ulm_card_person_zone2 | | :material-close: | Set another zone (beside "home") to use for the card. You can set up two zones besides "home". | +| ulm_address | | :material-close: | Show an address as label, add an entity with a geo location | +| ulm_card_person_driving_entity | | :material-close: | Set a binary sensor that depicts when this person is driving | +| ulm_card_person_battery_entity | | :material-close: | Set a battery level sensor | +| ulm_card_person_battery_state_entity | | :material-close: | Set a battery state sensor (eg the battery state sensor from the home assistant companion app will have the states "charging" or "discharging") | +| ulm_card_battery_battery_level_danger | 15 | :material-close: | Changes the color of the Icon, if the battery level falls below the provided value. Must be higher than ulm_card_battery_battery_level_waring +| ulm_card_battery_battery_level_waring | 30 | :material-close: | Changes the color of the Icon, if the battery level falls below the provided value. +| ulm_card_battery_color_battery_level_danger | var(--google-red) | :material-close: | Color of icon if battery level is within the 'danger' zone. +| ulm_card_battery_color_battery_level_warning | var(--google-yellow) | :material-close: | Color of icon if battery level is within the 'warning' zone. +| ulm_card_battery_color_battery_level_ok | var(--google-green) | :material-close: | Color of icon if battery level is not within the 'danger' or 'warning' zone. + +## Usage + +```yaml +- type: "custom:button-card" + template: card_person_info_small + variables: + ulm_card_person_entity: person.imaginelenses + ulm_card_person_zone1: zone.work + ulm_card_person_driving_entity: binary_sensor.driving + ulm_card_person_battery_entity: sensor.phone_battery_level + ulm_card_person_battery_state_entity: sensor.phone_battery_state +``` + +## Template Code + +??? note "Template Code" + + ```yaml title="custom_card_person_info_small.yaml" + --8<-- "custom_cards/custom_card_person_info_small/custom_card_person_info_small.yaml" + ``` From 627c7c80d2ff31145b54e91df46d86a98f62648a Mon Sep 17 00:00:00 2001 From: Karthik Shivashankar Date: Wed, 5 Jul 2023 00:31:13 +0530 Subject: [PATCH 03/49] Added custom_card_person_info_small images. --- .../img/custom_card_person_info_small_dark.png | Bin 0 -> 12083 bytes .../img/custom_card_person_info_small_light.png | Bin 0 -> 12711 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/assets/img/custom_card_person_info_small_dark.png create mode 100644 docs/assets/img/custom_card_person_info_small_light.png diff --git a/docs/assets/img/custom_card_person_info_small_dark.png b/docs/assets/img/custom_card_person_info_small_dark.png new file mode 100644 index 0000000000000000000000000000000000000000..36ec3c6a9c2aaa2119c04570b0d06db54d33c885 GIT binary patch literal 12083 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∓AX}80iDs~ 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 literal 0 HcmV?d00001 diff --git a/docs/assets/img/custom_card_person_info_small_light.png b/docs/assets/img/custom_card_person_info_small_light.png new file mode 100644 index 0000000000000000000000000000000000000000..aeabb5fc1a4ada8ec05d3e23aa7d776f7f1e6fd5 GIT binary patch literal 12711 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 E0yYIa^8f$< literal 0 HcmV?d00001 From e306b296cdac80d4f1bc0917016384e662b95824 Mon Sep 17 00:00:00 2001 From: imaginelenses Date: Wed, 5 Jul 2023 00:58:57 +0530 Subject: [PATCH 04/49] Fixed style --- custom_cards/custom_card_person_info_small/README.md | 8 ++++---- .../custom_card_person_info_small.yaml | 11 +++++------ 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/custom_cards/custom_card_person_info_small/README.md b/custom_cards/custom_card_person_info_small/README.md index 46d1888e2..a11620edc 100644 --- a/custom_cards/custom_card_person_info_small/README.md +++ b/custom_cards/custom_card_person_info_small/README.md @@ -27,11 +27,11 @@ The `custom_card_person_info_small` is based on `card_person_info`. | ulm_card_person_driving_entity | | :material-close: | Set a binary sensor that depicts when this person is driving | | ulm_card_person_battery_entity | | :material-close: | Set a battery level sensor | | ulm_card_person_battery_state_entity | | :material-close: | Set a battery state sensor (eg the battery state sensor from the home assistant companion app will have the states "charging" or "discharging") | -| ulm_card_battery_battery_level_danger | 15 | :material-close: | Changes the color of the Icon, if the battery level falls below the provided value. Must be higher than ulm_card_battery_battery_level_waring +| ulm_card_battery_battery_level_danger | 15 | :material-close: | Changes the color of the Icon, if the battery level falls below the provided value. Must be higher than ulm_card_battery_battery_level_waring | ulm_card_battery_battery_level_waring | 30 | :material-close: | Changes the color of the Icon, if the battery level falls below the provided value. -| ulm_card_battery_color_battery_level_danger | var(--google-red) | :material-close: | Color of icon if battery level is within the 'danger' zone. -| ulm_card_battery_color_battery_level_warning | var(--google-yellow) | :material-close: | Color of icon if battery level is within the 'warning' zone. -| ulm_card_battery_color_battery_level_ok | var(--google-green) | :material-close: | Color of icon if battery level is not within the 'danger' or 'warning' zone. +| ulm_card_battery_color_battery_level_danger | var(--google-red) | :material-close: | Color of icon if battery level is within the 'danger' zone. +| ulm_card_battery_color_battery_level_warning | var(--google-yellow) | :material-close: | Color of icon if battery level is within the 'warning' zone. +| ulm_card_battery_color_battery_level_ok | var(--google-green) | :material-close: | Color of icon if battery level is not within the 'danger' or 'warning' zone. ## Usage diff --git a/custom_cards/custom_card_person_info_small/custom_card_person_info_small.yaml b/custom_cards/custom_card_person_info_small/custom_card_person_info_small.yaml index 0b4eefbbe..0e09bd96a 100644 --- a/custom_cards/custom_card_person_info_small/custom_card_person_info_small.yaml +++ b/custom_cards/custom_card_person_info_small/custom_card_person_info_small.yaml @@ -24,7 +24,7 @@ card_person_info_small: entity: "[[[ return variables.ulm_card_person_entity; ]]]" hold_action: action: "more-info" - entity: "[[[ return variables.ulm_card_person_battery_entity; ]]]" + entity: "[[[ return variables.ulm_card_person_battery_entity; ]]]" show_label: true show_name: true label: > @@ -85,7 +85,7 @@ card_person_info_small: ]]] battery: - width: "30px" - - height: "30px" + - height: "30px" - place-self: "end" - align-self: "center" - background-color: "rgba(var(--primary-background-color), 0.5)" @@ -117,7 +117,7 @@ card_person_info_small: let battery_level = states[variables.ulm_card_person_battery_entity]?.state; battery_level = Number(battery_level); let charging = states[variables.ulm_card_person_battery_state_entity]?.state.toLowerCase() === "charging"; - + var infix = charging ? "-charging" : "" let icon = "mdi:help-circle-outline"; if (battery_level == 100) { @@ -128,7 +128,7 @@ card_person_info_small: icon = "mdi:battery-off"; } else { icon = "mdi:battery" + infix + "-" + Math.floor(battery_level / 10) * 10; - } + } let color = variables.ulm_card_battery_color_battery_level_ok; if (battery_level !== "unavailable") { @@ -139,11 +139,10 @@ card_person_info_small: } else { color = variables.ulm_card_battery_color_battery_level_ok; } - } + } return ` `; } ]]] - From 956c04b746e2c9bf30b351fa9e7811047b2a85f0 Mon Sep 17 00:00:00 2001 From: imaginelenses Date: Wed, 5 Jul 2023 01:06:38 +0530 Subject: [PATCH 05/49] Actually fixed style --- .../custom_card_person_info_small.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_cards/custom_card_person_info_small/custom_card_person_info_small.yaml b/custom_cards/custom_card_person_info_small/custom_card_person_info_small.yaml index 0e09bd96a..b593518c0 100644 --- a/custom_cards/custom_card_person_info_small/custom_card_person_info_small.yaml +++ b/custom_cards/custom_card_person_info_small/custom_card_person_info_small.yaml @@ -63,7 +63,7 @@ card_person_info_small: label: - place-self: "center" - margin-left: 0 - - text-transform: capitalize + - text-transform: "capitalize" custom_fields: notification: - position: "absolute" From dd4383a4d19965521b6d34dc2049be83cdfcd885 Mon Sep 17 00:00:00 2001 From: imaginelenses Date: Wed, 5 Jul 2023 01:12:32 +0530 Subject: [PATCH 06/49] Disabled Markdown lint and fixed title --- custom_cards/custom_card_person_info_small/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/custom_cards/custom_card_person_info_small/README.md b/custom_cards/custom_card_person_info_small/README.md index a11620edc..ef9c16bcd 100644 --- a/custom_cards/custom_card_person_info_small/README.md +++ b/custom_cards/custom_card_person_info_small/README.md @@ -2,6 +2,8 @@ title: Person Info Card --- + + ## Description ![Person Info](../../docs/assets/img/custom_card_person_info_small_dark.png) From a7126773a24aed3d5890ee3264bc23649537ad21 Mon Sep 17 00:00:00 2001 From: tieskuh <115901851+tieskuh@users.noreply.github.com> Date: Fri, 8 Mar 2024 15:18:41 +0100 Subject: [PATCH 07/49] Update card_vacuum.yaml - add support for lawn mower By adding the state 'mowing' this card could also be used for a robot lawn mower. --- .../card_templates/cards/card_vacuum.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_vacuum.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_vacuum.yaml index 6cf727789..240fa7c1b 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_vacuum.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_vacuum.yaml @@ -21,6 +21,7 @@ card_vacuum: var state = entity.state.toLowerCase(); var colors = { "cleaning": "blue", + "mowing": "blue", "paused": "green", "mopping": "yellow", "returning": "purple", @@ -52,7 +53,7 @@ card_vacuum: let map = "'item1' 'map' 'item2'" if(variables.ulm_card_vacuum_camera != ""){ if(variables.ulm_card_vacuum_camera_toggle){ - if(entity.state.toLowerCase() === 'cleaning' || entity.state.toLowerCase() === 'mopping'){ + if(entity.state.toLowerCase() === 'cleaning' || entity.state.toLowerCase() === 'mopping' || entity.state.toLowerCase() === 'mowing'){ return map; } } else { @@ -67,7 +68,7 @@ card_vacuum: let map = "repeat(3, min-content)" if(variables.ulm_card_vacuum_camera != ""){ if(variables.ulm_card_vacuum_camera_toggle){ - if(entity.state.toLowerCase() === 'cleaning' || entity.state.toLowerCase() === 'mopping'){ + if(entity.state.toLowerCase() === 'cleaning' || entity.state.toLowerCase() === 'mopping' || entity.state.toLowerCase() === 'mowing'){ return map; } } else { @@ -94,7 +95,7 @@ card_vacuum: let map = "block" if(variables.ulm_card_vacuum_camera != ""){ if(variables.ulm_card_vacuum_camera_toggle){ - if(entity.state.toLowerCase() === 'cleaning' || entity.state.toLowerCase() === 'mopping'){ + if(entity.state.toLowerCase() === 'cleaning' || entity.state.toLowerCase() === 'mopping' || entity.state.toLowerCase() === 'mowing'){ return map; } } else { @@ -249,7 +250,7 @@ card_vacuum: ]]] state: - operator: "template" - value: "[[[ return ['cleaning','mopping'].includes(entity.state.toLowerCase()) ]]]" + value: "[[[ return ['cleaning','mopping','mowing'].includes(entity.state.toLowerCase()) ]]]" icon: "mdi:stop" tap_action: action: "call-service" @@ -260,7 +261,7 @@ card_vacuum: action: "call-service" service: > [[[ - return ['cleaning','mopping'].includes(entity.state.toLowerCase()) ? "vacuum.stop" : "vacuum.start"; + return ['cleaning','mopping','mowing'].includes(entity.state.toLowerCase()) ? "vacuum.stop" : "vacuum.start"; ]]] service_data: entity_id: "[[[ return entity.entity_id ]]]" From 00b1ba5916e8a174e9ed4821bc60156cb8b90d80 Mon Sep 17 00:00:00 2001 From: Inaki Abadia Date: Mon, 1 Apr 2024 14:54:23 +0100 Subject: [PATCH 08/49] Add custom_card_iAbadia_battery_chip --- .../README.md | 58 ++++++++++++++++++ .../custom_card_iAbadia_battery_chip.yaml | 38 ++++++++++++ .../img/custom_card_iAbadia_battery_chip.png | Bin 0 -> 12929 bytes 3 files changed, 96 insertions(+) create mode 100644 custom_cards/custom_card_iAbadia_battery_chip/README.md create mode 100644 custom_cards/custom_card_iAbadia_battery_chip/custom_card_iAbadia_battery_chip.yaml create mode 100644 docs/assets/img/custom_card_iAbadia_battery_chip.png diff --git a/custom_cards/custom_card_iAbadia_battery_chip/README.md b/custom_cards/custom_card_iAbadia_battery_chip/README.md new file mode 100644 index 000000000..ece9f3ec9 --- /dev/null +++ b/custom_cards/custom_card_iAbadia_battery_chip/README.md @@ -0,0 +1,58 @@ +--- +title: iAbadia's Battery Chip Custom Card +hide: + - toc +--- + + + +# Custom-card "Battery Chip" + +This is a `custom-card` or `custom-chip` to see your device's battery level at a glance. + +![Screenshot](../../docs/assets/img/custom_card_iAbadia_battery_chip.png) + +## Credits + +Author: Iñaki Abadia - 2024 +Version: 1.0.0 + +## Changelog + +
+1.0.0 +Initial release +
+ +## Requirements + +None + +## Usage + +```yaml +type: "custom:button-card" +template: custom_card_iAbadia_battery_chip +variables: + ulm_custom_card_iAbadia_battery_chip_entity: sensor.living_room_sensor_battery + ulm_custom_card_iAbadia_battery_chip_icon: mdi:thermostat + ulm_custom_card_iAbadia_battery_chip_warning: 30 + ulm_custom_card_iAbadia_battery_chip_danger: 10 +``` + +## Variables + +| Variable | Example | Required | Explanation | +| ---------------------------------------------- | -------------------- | -------- | ----------------------------------------------------- | +| ulm_custom_card_iAbadia_battery_chip_entity | `sensor.temperature` | ✓ | Battery entity | +| ulm_custom_card_iAbadia_battery_chip_icon | `mdi:thermometer` | ✘ | Icon to be displayed. Will default to mdi:battery | +| ulm_custom_card_iAbadia_battery_chip_warning | `20` | ✘ | Battery level below which to color as warning (yellow) | +| ulm_custom_card_iAbadia_battery_chip_danger | `10` | ✘ | Battery level below which to color as danger (red) | + +## Template Code + +??? note "Template Code" + + ```yaml title="custom_card_irmajavi_speedtest.yaml" + --8<-- "custom_cards/custom_card_iAbadia_battery_chip/custom_card_iAbadia_battery_chip.yaml" + ``` diff --git a/custom_cards/custom_card_iAbadia_battery_chip/custom_card_iAbadia_battery_chip.yaml b/custom_cards/custom_card_iAbadia_battery_chip/custom_card_iAbadia_battery_chip.yaml new file mode 100644 index 000000000..2f9dca3f7 --- /dev/null +++ b/custom_cards/custom_card_iAbadia_battery_chip/custom_card_iAbadia_battery_chip.yaml @@ -0,0 +1,38 @@ +--- +custom_card_iAbadia_battery_chip: + template: + - "chips" + variables: + ulm_custom_card_iAbadia_battery_chip_entity: "" + ulm_custom_card_iAbadia_battery_chip_icon: "" + ulm_custom_card_iAbadia_battery_chip_danger: "10" + ulm_custom_card_iAbadia_battery_chip_warning: "20" + show_icon: true + triggers_update: "all" + icon: > + [[[ + if (variables.ulm_custom_card_iAbadia_battery_chip_icon){ + return variables.ulm_custom_card_iAbadia_battery_chip_icon; + } else { + return "mdi:battery" + } + ]]] + entity: "[[[ return variables.ulm_custom_card_iAbadia_battery_chip_entity; ]]]" + tap_action: + action: "more-info" + entity: "[[[ return variables.ulm_custom_card_iAbadia_battery_chip_entity; ]]]" + styles: + icon: + - color: > + [[[ + let battery_level = Math.round((states[variables.ulm_custom_card_iAbadia_battery_chip_entity].state)/1); + if (battery_level > variables.ulm_custom_card_iAbadia_battery_chip_warning) { + return "var(--google-green)" + } else if (battery_level <= variables.ulm_custom_card_iAbadia_battery_chip_warning && battery_level > variables.ulm_custom_card_iAbadia_battery_chip_danger) { + return "var(--google-yellow)" + } else { + return "var(--google-red)" + } + ]]] + grid: + - grid-template-areas: "'i'" diff --git a/docs/assets/img/custom_card_iAbadia_battery_chip.png b/docs/assets/img/custom_card_iAbadia_battery_chip.png new file mode 100644 index 0000000000000000000000000000000000000000..89a9a910da3e620f8401ff008b4df33baef31180 GIT binary patch literal 12929 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 TBm?~02-o$?7MChaoS*(L71O?$ literal 0 HcmV?d00001 From 1312db8c93b38e422aa21f08a78e42b380448d5c Mon Sep 17 00:00:00 2001 From: wilbiev Date: Wed, 3 Jul 2024 19:47:02 +0000 Subject: [PATCH 09/49] Updated documentation --- docs/setup/download.md | 11 +++++--- docs/setup/installation.md | 53 ++++++++++++++++++++------------------ 2 files changed, 36 insertions(+), 28 deletions(-) diff --git a/docs/setup/download.md b/docs/setup/download.md index feb29dd90..51ce34cc8 100644 --- a/docs/setup/download.md +++ b/docs/setup/download.md @@ -3,7 +3,9 @@ title: Prepare & Download hide: - toc --- + + Before get started on anything, make sure you have created a backup of your home assistant configuration. > In case you experience problems during installation please reach join the [Discord Server](https://discord.gg/TPXg9b7GfR). @@ -15,7 +17,7 @@ You should have a HomeAssistant (HA) instance running, preferably with [HACS](ht You have access to your `config` folder of HA. Doesn’t matter which way this is, but you need to be able to upload and change files in your config. If you’re running `HA-OS` or a `supervised install` of HA, we highly recommend the [Samba AddOn](https://www.home-assistant.io/common-tasks/supervised/#installing-and-using-the-samba-add-on) (see the AddOn page for instructions) and for editing the File editor AddOn or a good editor like [Notepad++](https://notepad-plus-plus.org/) or [SublimeText](https://www.sublimetext.com/) for your OS. !!! danger "Breaking Changes" - This integration is still under heavy development and might cause breaking changes +This integration is still under heavy development and might cause breaking changes ## HACS Download @@ -54,13 +56,16 @@ In order to function correctly, the UI Lovelace Mininmalist "Theme" requires som - [card-mod](https://github.com/thomasloven/lovelace-card-mod) by Thomas Lovén - [mini-graph-card](https://github.com/kalkih/mini-graph-card) by Karl Kihlström - [Mini Media Player](https://github.com/kalkih/mini-media-player) by Karl Kihlström -- [My Cards Bundle](https://github.com/AnthonMS/my-cards) by AnthonMS** +- [My Cards Bundle](https://github.com/AnthonMS/my-cards) by AnthonMS\*\* - [Light Entity Card](https://github.com/ljmerza/light-entity-card) by Leonardo Merza - [auto-entities](https://github.com/thomasloven/lovelace-auto-entities) by Thomas Lovén +- [weather-radar-card](https://github.com/Makin-Things/weather-radar-card) by Makin-Things +- [lovelace-layout-card](https://github.com/thomasloven/lovelace-layout-card) by Thomas Lovén +- [lovelace-state-swtch](https://github.com/thomasloven/lovelace-state-switch) by Thomas Lovén You can install these via HACS or manually. -Some resources (as marked above with **) might not be available in HACS by default. +Some resources (as marked above with \*\*) might not be available in HACS by default. To find and install these using HACS, first add them as [custom repositories](https://hacs.xyz/docs/faq/custom_repositories/). ### Download Release File diff --git a/docs/setup/installation.md b/docs/setup/installation.md index eb27218cf..4786fa0e6 100644 --- a/docs/setup/installation.md +++ b/docs/setup/installation.md @@ -26,20 +26,20 @@ Now you can configure the Integration, you can do this also after it's installed ![hacs_integration_config](../assets/img/setup/hacs_integration_config.png) -- *Language*: Will set the language for the Integration. -- *Enable creation of a Dashboard entry in the Side panel*: If you want to add an Entry in the Side Panel for the auto generated Dashboard. (Still under heavy development!) -- *Side panel title*: Will set the title for the Lovelace Dashboard in the Sidebar. -- *Side panel icon*: Which icon to put in front of the Title. -- *Enable adaptive Dashboard with popup splitview*: Creates an entry for the [adaptive dashboard](adaptive_dash.md) -- *Adaptive panel title*: Will set the title for the adaptive dashboard in the Sidebar. -- *Adaptive panel icon*: Which icon to put in front of the adaptive dashboard sidebar entry. -- *Theme*: Choose a theme of your choice (Note: Both themes will be installed anyway and can be customized later if needed.) +- _Language_: Will set the language for the Integration. +- _Enable creation of a Dashboard entry in the Side panel_: If you want to add an Entry in the Side Panel for the auto generated Dashboard. (Still under heavy development!) +- _Side panel title_: Will set the title for the Lovelace Dashboard in the Sidebar. +- _Side panel icon_: Which icon to put in front of the Title. +- _Enable adaptive Dashboard with popup splitview_: Creates an entry for the [adaptive dashboard](adaptive_dash.md) +- _Adaptive panel title_: Will set the title for the adaptive dashboard in the Sidebar. +- _Adaptive panel icon_: Which icon to put in front of the adaptive dashboard sidebar entry. +- _Theme_: Choose a theme of your choice (Note: Both themes will be installed anyway and can be customized later if needed.) !!! note "" 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 "" @@ -52,24 +52,27 @@ Now you can configure the Integration, you can do this also after it's installed You will also need to change your user theme to the chosen theme or else no visual modifications will work. -- *Include Custom Cards*: This will make sure almost all dependency cards are included and configured for you. +- _Include Custom Cards_: This will make sure almost all dependency cards are included and configured for you. !!! danger "" Activate **"Include Custom Cards"** only if you have not already installed the required Lovelace resources yourself, or if you dont want to install them by yourself. Otherwise this can currently lead to a freeze of the frontend due to double loaded lovelace resources. -| Included lovelace resources | -| ----------------------------------------------------------------------- | -| [`button-card`](https://github.com/custom-cards/button-card) | -| [`lovelace-card-mod`](https://github.com/thomasloven/lovelace-card-mod) | -| [`mini-graph-card`](https://github.com/kalkih/mini-graph-card) | -| [`mini-media-player`](https://github.com/kalkih/mini-media-player) | -| [`my-cards-slider-card`](https://github.com/AnthonMS/my-cards) | -| [`light-entity-card`](https://github.com/ljmerza/light-entity-card) | -| [`auto-entities`](https://github.com/thomasloven/lovelace-auto-entities)| -| [`simple-weather-card`](https://github.com/kalkih/simple-weather-card) | - -- *Select Community Cards you want to enable*: Selected [custom cards](custom_cards.md) will be downloaded automatically to enable usage. Requires a GitHub account. Restart or reload your configuration after toggling this setting. If needed, a notification will appear, indicating that GitHub needs to be set up. You will be prompted to go to your integrations and to reconfigure this integration. Selecting "reconfigure" on your Lovelace Minimalist UI integration, the GitHub-Login-flow will start. You might need to restart HomeAssistant, when your selected community cards change. +| Included lovelace resources | +| ------------------------------------------------------------------------------ | +| [`button-card`](https://github.com/custom-cards/button-card) | +| [`lovelace-card-mod`](https://github.com/thomasloven/lovelace-card-mod) | +| [`mini-graph-card`](https://github.com/kalkih/mini-graph-card) | +| [`mini-media-player`](https://github.com/kalkih/mini-media-player) | +| [`my-cards-slider-card`](https://github.com/AnthonMS/my-cards) | +| [`light-entity-card`](https://github.com/ljmerza/light-entity-card) | +| [`auto-entities`](https://github.com/thomasloven/lovelace-auto-entities) | +| [`simple-weather-card`](https://github.com/kalkih/simple-weather-card) | +| [`weather-radar-card`](https://github.com/Makin-Things/weather-radar-card) | +| [`lovelace-layout-card`](https://github.com/thomasloven/lovelace-layout-card) | +| [`lovelace-state-swtch`](https://github.com/thomasloven/lovelace-state-switch) | + +- _Select Community Cards you want to enable_: Selected [custom cards](custom_cards.md) will be downloaded automatically to enable usage. Requires a GitHub account. Restart or reload your configuration after toggling this setting. If needed, a notification will appear, indicating that GitHub needs to be set up. You will be prompted to go to your integrations and to reconfigure this integration. Selecting "reconfigure" on your Lovelace Minimalist UI integration, the GitHub-Login-flow will start. You might need to restart HomeAssistant, when your selected community cards change. Hit submit and in the Sidebar a new Dashboard entry should appear. A new file for the dashboard configuration, with a small example, where you can generate your own layout should have been created under that location: @@ -77,9 +80,9 @@ A new file for the dashboard configuration, with a small example, where you can ```yaml config └── ui_lovelace_minimalist - ├── custom_cards - └── dashboard - └── ui-lovelace.yaml +├── custom_cards +└── dashboard +└── ui-lovelace.yaml ``` In case you want to use your own ui-lovelace files go to [Configuration](../configuration). From 7451d3d801f37bb9493c69210beb67d9e6cb79dd Mon Sep 17 00:00:00 2001 From: wilbiev Date: Fri, 5 Jul 2024 14:40:27 +0000 Subject: [PATCH 10/49] Updated documentation --- docs/setup/download.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/setup/download.md b/docs/setup/download.md index 51ce34cc8..71802a104 100644 --- a/docs/setup/download.md +++ b/docs/setup/download.md @@ -59,6 +59,7 @@ In order to function correctly, the UI Lovelace Mininmalist "Theme" requires som - [My Cards Bundle](https://github.com/AnthonMS/my-cards) by AnthonMS\*\* - [Light Entity Card](https://github.com/ljmerza/light-entity-card) by Leonardo Merza - [auto-entities](https://github.com/thomasloven/lovelace-auto-entities) by Thomas Lovén +- [simple-weather-card](https://github.com/kalkih/simple-weather-card) by Karl Kihlström - [weather-radar-card](https://github.com/Makin-Things/weather-radar-card) by Makin-Things - [lovelace-layout-card](https://github.com/thomasloven/lovelace-layout-card) by Thomas Lovén - [lovelace-state-swtch](https://github.com/thomasloven/lovelace-state-switch) by Thomas Lovén From 8e0ed6c347c86a82fd1da59198143788dc8438c0 Mon Sep 17 00:00:00 2001 From: wilbiev Date: Fri, 5 Jul 2024 16:55:54 +0000 Subject: [PATCH 11/49] Fix for hanging when not using GitHub option --- .../ui_lovelace_minimalist/__init__.py | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/__init__.py b/custom_components/ui_lovelace_minimalist/__init__.py index 8a41bc470..411fa28f1 100644 --- a/custom_components/ui_lovelace_minimalist/__init__.py +++ b/custom_components/ui_lovelace_minimalist/__init__.py @@ -13,7 +13,7 @@ from homeassistant.loader import async_get_integration from .base import UlmBase -from .const import DOMAIN, NAME +from .const import DOMAIN, NAME, DOMAIN_DATA from .enums import ConfigurationType, UlmDisabledReason _LOGGER: logging.Logger = logging.getLogger(__package__) @@ -113,13 +113,26 @@ async def async_startup(): async def async_setup(hass: HomeAssistant, config: dict): """Set up this integration using UI.""" - return await async_initialize_integration(hass=hass, config=config) + if config.get(DOMAIN) is None: + # We get here if the integration is set up using config flow + return True + + hass.data.setdefault(DOMAIN_DATA, config[DOMAIN]) + hass.async_create_task( + hass.config_entries.flow.async_init( + DOMAIN, context={"source": SOURCE_IMPORT}, data=hass.data[DOMAIN_DATA] + ) + ) + # Return boolean to indicate that initialization was successful. + return True async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: """Set up this integration using UI.""" - config_entry.add_update_listener(config_entry_update_listener) + config_entry.async_on_unload( + config_entry.add_update_listener(config_entry_update_listener) + ) return await async_initialize_integration(hass=hass, config_entry=config_entry) @@ -133,13 +146,6 @@ async def async_remove_entry(hass: HomeAssistant, config_entry: ConfigEntry): async_remove_panel(hass, "ui-lovelace-minimalist") -async def async_reload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> None: - """Reload Integration.""" - _LOGGER.debug("Reload the config entry") - - await async_setup_entry(hass, config_entry) - - async def config_entry_update_listener( hass: HomeAssistant, config_entry: ConfigEntry ) -> None: From da6481f3300058010dbf2534bc37042e6504053d Mon Sep 17 00:00:00 2001 From: wilbiev Date: Fri, 5 Jul 2024 17:32:15 +0000 Subject: [PATCH 12/49] Fix for hanging when not using GitHub option --- custom_components/ui_lovelace_minimalist/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_components/ui_lovelace_minimalist/__init__.py b/custom_components/ui_lovelace_minimalist/__init__.py index 411fa28f1..e40cc9c3e 100644 --- a/custom_components/ui_lovelace_minimalist/__init__.py +++ b/custom_components/ui_lovelace_minimalist/__init__.py @@ -13,7 +13,7 @@ from homeassistant.loader import async_get_integration from .base import UlmBase -from .const import DOMAIN, NAME, DOMAIN_DATA +from .const import DOMAIN, DOMAIN_DATA, NAME from .enums import ConfigurationType, UlmDisabledReason _LOGGER: logging.Logger = logging.getLogger(__package__) From 86ff36c7edb9dfed2ffd197ffe9d01c8739213ef Mon Sep 17 00:00:00 2001 From: wilbiev Date: Fri, 5 Jul 2024 17:48:33 +0000 Subject: [PATCH 13/49] Fix for hanging when not using GitHub option --- .../custom_card_sisimomo_printer.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml b/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml index efe166995..b80018dd8 100644 --- a/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml +++ b/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml @@ -192,7 +192,7 @@ custom_card_sisimomo_printer: filter: opacity(40%); font-size: medium; } - + /* Error CSS */ div#cartridges .error-container { text-align: left; From bb8a8232544eee6ff923fb30caba06f8b6e21c06 Mon Sep 17 00:00:00 2001 From: Thomas Date: Tue, 16 Jul 2024 16:12:34 +0200 Subject: [PATCH 14/49] Added support to Olen lovelace-flower-card fork --- .../custom_card_schumijo_flower/README.md | 35 +++++++++++++++++-- .../custom_card_schumijo_flower.yaml | 1 + 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/custom_cards/custom_card_schumijo_flower/README.md b/custom_cards/custom_card_schumijo_flower/README.md index 518095d67..f42bedc19 100644 --- a/custom_cards/custom_card_schumijo_flower/README.md +++ b/custom_cards/custom_card_schumijo_flower/README.md @@ -14,8 +14,9 @@ This is a `custom-card` to display a plant entity. Shows state of the plant and ## Credits -Author: schumijo - 2021 -Version: 1.1.0 +- Author: schumijo - 2021 +- Update 2.0.0 : Ashino - 2024 +- Version: 2.0.0 ## Changelog @@ -28,6 +29,11 @@ Initial release Fix language files for beta5 Updated README +
+2.0.0 +Add support to lovelace-flower-card from Olen (advanced forked version) +Updated README +
## Usage @@ -38,6 +44,10 @@ Updated README ulm_card_flower_entity: plant.bonsai_ficus ulm_card_flower_name: Bonsai Ficus ulm_card_flower_species: "ficus retusa" + ulm_card_flower_show_bars: + - temperature + - humidity + - moisture ``` #### Variables @@ -67,11 +77,30 @@ Updated README yes The species of your plant + +ulm_card_flower_show_bars + +- temperature +
+- moisture +
+- humidity + +no +The bar you want to display. Any of : +
  • illuminance
  • +
  • humidity
  • +
  • moisture
  • +
  • conductivity
  • +
  • temperature
  • +
  • dli
  • + + ## Requirements -Need [lovelace-flower-card](https://github.com/thomasloven/lovelace-flower-card) +Need [lovelace-flower-card](https://github.com/Olen/lovelace-flower-card) ## Template code diff --git a/custom_cards/custom_card_schumijo_flower/custom_card_schumijo_flower.yaml b/custom_cards/custom_card_schumijo_flower/custom_card_schumijo_flower.yaml index 6703e826a..655661ca1 100644 --- a/custom_cards/custom_card_schumijo_flower/custom_card_schumijo_flower.yaml +++ b/custom_cards/custom_card_schumijo_flower/custom_card_schumijo_flower.yaml @@ -77,6 +77,7 @@ card_flower: type: "custom:flower-card" entity: "[[[ return variables.ulm_card_flower_entity ]]]" species: "[[[ return variables.ulm_card_flower_species ]]]" + show_bars: "[[[ return variables.ulm_card_flower_show_bars ]]]" card_mod: style: | ha-card{ From f25ab919d3fa4da75a67de6de9035bea108f9f72 Mon Sep 17 00:00:00 2001 From: Ashino Date: Sat, 27 Jul 2024 15:55:00 +0200 Subject: [PATCH 15/49] pre-commit hooks --- custom_cards/custom_card_schumijo_flower/README.md | 2 +- .../custom_card_sisimomo_printer.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/custom_cards/custom_card_schumijo_flower/README.md b/custom_cards/custom_card_schumijo_flower/README.md index f42bedc19..cbf595d7f 100644 --- a/custom_cards/custom_card_schumijo_flower/README.md +++ b/custom_cards/custom_card_schumijo_flower/README.md @@ -14,7 +14,7 @@ This is a `custom-card` to display a plant entity. Shows state of the plant and ## Credits -- Author: schumijo - 2021 +- Author: schumijo - 2021 - Update 2.0.0 : Ashino - 2024 - Version: 2.0.0 diff --git a/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml b/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml index efe166995..b80018dd8 100644 --- a/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml +++ b/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml @@ -192,7 +192,7 @@ custom_card_sisimomo_printer: filter: opacity(40%); font-size: medium; } - + /* Error CSS */ div#cartridges .error-container { text-align: left; From c82bce7270831ca04e39df5e6e9a736023314634 Mon Sep 17 00:00:00 2001 From: wilbiev Date: Sun, 6 Oct 2024 12:15:35 +0000 Subject: [PATCH 16/49] Update call-service to perform-action --- .../card_templates/cards/card_cover.yaml | 42 +++++------ .../card_templates/cards/card_fan.yaml | 6 +- .../card_templates/cards/card_light.yaml | 18 ++--- .../cards/card_media_player.yaml | 36 +++++----- .../card_templates/cards/card_room.yaml | 14 ++-- .../card_templates/cards/card_thermostat.yaml | 66 ++++++++--------- .../card_templates/cards/card_vacuum.yaml | 30 ++++---- .../cards/card_vertical_button.yaml | 6 +- .../cards/card_welcome_scenes.yaml | 18 ++--- .../vertical_buttons_custom_state.yaml | 6 +- .../popup_button_airconditionner.yaml | 6 +- .../popup_buttons/popup_chip_controls.yaml | 18 ++--- .../popup_layouts/popup_light_effect_row.yaml | 6 +- .../popup_light_palette_row.yaml | 6 +- .../popup_layouts/popup_media_player_row.yaml | 6 +- .../popup_templates/popups/popup_cover.yaml | 18 ++--- .../popups/popup_thermostat_temperature.yaml | 72 +++++++++---------- 17 files changed, 187 insertions(+), 187 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_cover.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_cover.yaml index fd3d50927..5caf0c47b 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_cover.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_cover.yaml @@ -391,9 +391,9 @@ card_cover: icon: - color: "rgba(var(--color-theme),0.4)" tap_action: - action: "call-service" - service: "cover.close_cover" - service_data: + action: "perform-action" + perform_action: "cover.close_cover" + target: entity_id: "[[[ return entity.entity_id ]]]" icon: > [[[ @@ -441,9 +441,9 @@ card_cover: return 'rgba(var(--color-theme),0.9)'; ]]] tap_action: - action: "call-service" - service: "cover.stop_cover" - service_data: + action: "perform-action" + perform_action: "cover.stop_cover" + target: entity_id: "[[[ return entity.entity_id ]]]" icon: "mdi:stop" item3: @@ -506,9 +506,9 @@ card_cover: icon: - color: "rgba(var(--color-theme),0.4)" tap_action: - action: "call-service" - service: "cover.open_cover" - service_data: + action: "perform-action" + perform_action: "cover.open_cover" + target: entity_id: "[[[ return entity.entity_id ]]]" icon: >- [[[ @@ -556,9 +556,9 @@ card_cover: return 'rgba(var(--color-theme),0.9)'; ]]] tap_action: - action: "call-service" - service: "cover.set_cover_position" - service_data: + action: "perform-action" + perform_action: "cover.set_cover_position" + target: entity_id: "[[[ return entity.entity_id ]]]" position: "[[[ return variables.ulm_card_cover_favorite_percentage ]]]" icon: "mdi:star" @@ -695,9 +695,9 @@ card_cover: icon: - color: "rgba(var(--color-theme),0.4)" tap_action: - action: "call-service" - service: "cover.close_cover_tilt" - service_data: + action: "perform-action" + perform_action: "cover.close_cover_tilt" + target: entity_id: "[[[ return entity.entity_id ]]]" icon: "mdi:arrow-bottom-left" item2: @@ -735,9 +735,9 @@ card_cover: return 'rgba(var(--color-theme),0.9)'; ]]] tap_action: - action: "call-service" - service: "cover.stop_cover_tilt" - service_data: + action: "perform-action" + perform_action: "cover.stop_cover_tilt" + target: entity_id: "[[[ return entity.entity_id ]]]" icon: "mdi:stop" item3: @@ -800,8 +800,8 @@ card_cover: icon: - color: "rgba(var(--color-theme),0.4)" tap_action: - action: "call-service" - service: "cover.open_cover_tilt" - service_data: + action: "perform-action" + perform_action: "cover.open_cover_tilt" + target: entity_id: "[[[ return entity.entity_id ]]]" icon: "mdi:arrow-top-right" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_fan.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_fan.yaml index d5c88ce7d..1b5dd42e0 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_fan.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_fan.yaml @@ -263,9 +263,9 @@ card_fan: icon: "[[[ return variables.ulm_card_fan_button_icon ]]]" entity: "[[[ return entity.entity_id ]]]" tap_action: - action: "call-service" - service: "[[[ return variables.ulm_card_fan_button_service ]]]" - service_data: + action: "perform-action" + perform_action: "[[[ return variables.ulm_card_fan_button_service ]]]" + target: entity_id: "[[[ return entity.entity_id ]]]" oscillating: "[[[ return !entity.attributes[variables.ulm_card_fan_oscillate_attribute] ]]]" state: 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 95abd3360..95813002b 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 @@ -331,9 +331,9 @@ card_light: return 'rgba(var(--color-theme),0.9)'; ]]] tap_action: - action: "call-service" - service: "light.turn_on" - service_data: + action: "perform-action" + perform_action: "light.turn_on" + target: entity_id: "[[[ return entity.entity_id ]]]" brightness_pct: "[[[ return variables.ulm_card_light_brightness_low ]]]" icon: "mdi:lightbulb-on-10" @@ -383,9 +383,9 @@ card_light: return 'rgba(var(--color-theme),0.9)'; ]]] tap_action: - action: "call-service" - service: "light.turn_on" - service_data: + action: "perform-action" + perform_action: "light.turn_on" + target: entity_id: "[[[ return entity.entity_id ]]]" brightness_pct: "[[[ return variables.ulm_card_light_brightness_medium ]]]" icon: "mdi:lightbulb-on-50" @@ -435,9 +435,9 @@ card_light: return 'rgba(var(--color-theme),0.9)'; ]]] tap_action: - action: "call-service" - service: "light.turn_on" - service_data: + action: "perform-action" + perform_action: "light.turn_on" + target: entity_id: "[[[ return entity.entity_id ]]]" brightness_pct: "[[[ return variables.ulm_card_light_brightness_high ]]]" icon: "mdi:lightbulb-on" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player.yaml index 325c2eca3..dafb2b4f4 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player.yaml @@ -371,9 +371,9 @@ card_media_player: template: "popup_media_player_infos" entity: "[[[ return entity.entity_id ]]]" tap_action: - action: "call-service" - service: "media_player.media_previous_track" - service_data: + action: "perform-action" + perform_action: "media_player.media_previous_track" + target: entity_id: "[[[ return variables.ulm_card_media_player_player_controls_entity ]]]" icon: "mdi:skip-previous" entity: "[[[ return entity.entity_id ]]]" @@ -432,9 +432,9 @@ card_media_player: template: "popup_media_player_infos" entity: "[[[ return entity.entity_id; ]]]" tap_action: - action: "call-service" - service: "[[[ return (entity.attributes?.media_duration > 0) ? 'media_player.media_play_pause' : entity.state =='playing' ? 'media_player.media_stop' : 'media_player.media_play']]]" - service_data: + action: "perform-action" + perform_action: "[[[ return (entity.attributes?.media_duration > 0) ? 'media_player.media_play_pause' : entity.state =='playing' ? 'media_player.media_stop' : 'media_player.media_play']]]" + target: entity_id: "[[[ return variables.ulm_card_media_player_player_controls_entity ]]]" icon: "[[[ return (entity.attributes?.media_duration > 0) ? 'mdi:pause' : 'mdi:stop' ]]]" state: @@ -502,9 +502,9 @@ card_media_player: template: "popup_media_player_infos" entity: "[[[ return entity.entity_id; ]]]" tap_action: - action: "call-service" - service: "media_player.media_next_track" - service_data: + action: "perform-action" + perform_action: "media_player.media_next_track" + target: entity_id: "[[[ return variables.ulm_card_media_player_player_controls_entity ]]]" icon: "mdi:skip-next" styles: @@ -700,9 +700,9 @@ card_media_player: template: "popup_media_player_infos" entity: "[[[ return entity.entity_id; ]]]" tap_action: - action: "call-service" - service: "media_player.volume_mute" - service_data: + action: "perform-action" + perform_action: "media_player.volume_mute" + target: entity_id: "[[[ return variables.ulm_card_media_player_player_controls_entity ]]]" is_volume_muted: "[[[ return (states[entity.entity_id].attributes.is_volume_muted) ? false : true; ]]]" icon: "mdi:volume-mute" @@ -761,9 +761,9 @@ card_media_player: template: "popup_media_player_infos" entity: "[[[ return entity.entity_id; ]]]" tap_action: - action: "call-service" - service: "media_player.volume_set" - service_data: + action: "perform-action" + perform_action: "media_player.volume_set" + target: entity_id: "[[[ return variables.ulm_card_media_player_player_controls_entity ]]]" volume_level: | [[[ @@ -841,9 +841,9 @@ card_media_player: template: "popup_media_player_infos" entity: "[[[ return entity.entity_id; ]]]" tap_action: - action: "call-service" - service: "media_player.volume_set" - service_data: + action: "perform-action" + perform_action: "media_player.volume_set" + target: entity_id: "[[[ return variables.ulm_card_media_player_player_controls_entity ]]]" volume_level: | [[[ 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 0cc571673..9c23e658c 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 @@ -6,9 +6,9 @@ card_room: label_use_temperature: true label_use_brightness: false double_tap_action: - action: "call-service" - service: "input_select.select_option" - service_data: + action: "perform-action" + perform_action: "input_select.select_option" + target: option: "[[[ return variables.ulm_input_select_option ]]]" entity_id: "[[[ return variables.ulm_input_select ]]]" color: "var(--google-grey-500)" @@ -207,15 +207,15 @@ widget_icon_room: 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; ]]]" + perform_action: "[[[ return variables.tap_action.service; ]]]" + target: "[[[ return variables.tap_action.service_data; ]]]" hold_action: action: "[[[ return variables?.hold_action?.action ? variables.hold_action.action : '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; ]]]" + perform_action: "[[[ return variables.hold_action.service; ]]]" + target: "[[[ return variables.hold_action.service_data; ]]]" size: "15px" color: "var(--google-grey)" show_icon: true 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 0daa1f9cd..4ac8e9510 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 @@ -222,9 +222,9 @@ card_thermostat: entity: "[[[ return entity.entity_id ]]]" icon: "mdi:minus" tap_action: - action: "call-service" - service: "climate.set_temperature" - service_data: + action: "perform-action" + perform_action: "climate.set_temperature" + target: target_temp_low: | [[[ if (entity.attributes.target_temp_low == null) { @@ -292,9 +292,9 @@ card_thermostat: entity: "[[[ return entity.entity_id ]]]" icon: "mdi:plus" tap_action: - action: "call-service" - service: "climate.set_temperature" - service_data: + action: "perform-action" + perform_action: "climate.set_temperature" + target: target_temp_low: | [[[ if (entity.attributes.target_temp_low == null) { @@ -348,9 +348,9 @@ card_thermostat: entity: "[[[ return entity.entity_id ]]]" icon: "mdi:minus" tap_action: - action: "call-service" - service: "climate.set_temperature" - service_data: + action: "perform-action" + perform_action: "climate.set_temperature" + target: target_temp_low: | [[[ const unit = hass.config.unit_system.temperature @@ -394,9 +394,9 @@ card_thermostat: entity: "[[[ return entity.entity_id ]]]" icon: "mdi:plus" tap_action: - action: "call-service" - service: "climate.set_temperature" - service_data: + action: "perform-action" + perform_action: "climate.set_temperature" + target: target_temp_low: | [[[ const unit = hass.config.unit_system.temperature @@ -554,9 +554,9 @@ card_thermostat: template: "widget_icon" icon: "mdi:autorenew" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" hvac_mode: "auto" state: @@ -584,9 +584,9 @@ card_thermostat: template: "widget_icon" icon: "mdi:fire" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" hvac_mode: "heat" state: @@ -614,9 +614,9 @@ card_thermostat: template: "widget_icon" icon: "mdi:snowflake" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" hvac_mode: "cool" state: @@ -644,9 +644,9 @@ card_thermostat: template: "widget_icon" icon: "mdi:water" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" hvac_mode: "dry" state: @@ -674,9 +674,9 @@ card_thermostat: template: "widget_icon" icon: "mdi:sun-snowflake" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" hvac_mode: "heat_cool" state: @@ -704,9 +704,9 @@ card_thermostat: template: "widget_icon" icon: "mdi:fan" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" hvac_mode: "fan_only" state: @@ -734,9 +734,9 @@ card_thermostat: template: "widget_icon" icon: "mdi:fan" tap_action: - action: "call-service" - service: "fan.toggle" - service_data: + action: "perform-action" + perform_action: "fan.toggle" + target: entity_id: "[[[ return variables.ulm_card_thermostat_fan_entity !== null ? states[variables.ulm_card_thermostat_fan_entity].entity_id : null ]]]" state: - operator: "template" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_vacuum.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_vacuum.yaml index 6cf727789..928010263 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_vacuum.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_vacuum.yaml @@ -252,17 +252,17 @@ card_vacuum: value: "[[[ return ['cleaning','mopping'].includes(entity.state.toLowerCase()) ]]]" icon: "mdi:stop" tap_action: - action: "call-service" - service: "vacuum.stop" - service_data: + action: "perform-action" + perform_action: "vacuum.stop" + target: entity_id: "[[[ return entity.entity_id ]]]" tap_action: - action: "call-service" - service: > + action: "perform-action" + perform_action: > [[[ return ['cleaning','mopping'].includes(entity.state.toLowerCase()) ? "vacuum.stop" : "vacuum.start"; ]]] - service_data: + target: entity_id: "[[[ return entity.entity_id ]]]" item2: card: @@ -297,9 +297,9 @@ card_vacuum: return 'rgba(var(--color-theme),0.9)'; ]]] tap_action: - action: "call-service" - service: "vacuum.return_to_base" - service_data: + action: "perform-action" + perform_action: "vacuum.return_to_base" + target: entity_id: "[[[ return entity.entity_id ]]]" item3: card: @@ -334,9 +334,9 @@ card_vacuum: return 'rgba(var(--color-theme),0.9)'; ]]] tap_action: - action: "call-service" - service: "vacuum.locate" - service_data: + action: "perform-action" + perform_action: "vacuum.locate" + target: entity_id: "[[[ return entity.entity_id ]]]" item4: card: @@ -371,7 +371,7 @@ card_vacuum: return 'rgba(var(--color-theme),0.9)'; ]]] tap_action: - action: "call-service" - service: "script.turn_on" - service_data: + action: "perform-action" + perform_action: "script.turn_on" + target: entity_id: "[[[ return variables.ulm_card_vacuum_room ]]]" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_vertical_button.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_vertical_button.yaml index 1667d8e9d..4eaadb039 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_vertical_button.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_vertical_button.yaml @@ -59,8 +59,8 @@ card_vertical_button: card: - background-color: "[[[ return `rgba(var(--color-background-${variables.ulm_card_vertical_button_color}), var(--opacity-bg))`; ]]]" tap_action: - action: "call-service" - service: | + action: "perform-action" + perform_action: | [[[ if( entity.entity_id.startsWith("input_select.") ) return "input_select.select_option"; @@ -85,7 +85,7 @@ card_vertical_button: // If we need to support other entities we can add these options here. return ""; ]]] - service_data: | + target: | [[[ var obj; if( entity.entity_id.startsWith("input_select.") ) 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 8ad6c4697..b1243551c 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 @@ -284,9 +284,9 @@ card_scenes_pill_welcome: if(variables?.nav_path){ return "navigate" } - return "call-service" + return "perform-action" ]]] - service: > + perform_action: > [[[ if(entity?.entity_id.startsWith("scene.")){ return "scene.turn_on" @@ -303,7 +303,7 @@ card_scenes_pill_welcome: return "homeassistant.toggle" ]]] navigation_path: "[[[ return variables?.nav_path; ]]]" - service_data: | + target: | [[[ if (variables.service_data){ return variables.service_data @@ -371,10 +371,10 @@ card_scenes_pill_welcome: if(variables?.nav_path){ return "navigate" } - return "call-service" + return "perform-action" ]]] navigation_path: "[[[ return variables?.nav_path; ]]]" - service: > + perform_action: > [[[ if(entity?.entity_id.startsWith("scene.")){ return "scene.turn_on" @@ -390,7 +390,7 @@ card_scenes_pill_welcome: } return "homeassistant.toggle" ]]] - service_data: | + target: | [[[ if (variables.service_data){ return variables.service_data @@ -451,9 +451,9 @@ card_topbar_welcome: icon: - color: "rgb(var(--color-theme))" tap_action: - action: "call-service" - service: "input_boolean.toggle" - service_data: + action: "perform-action" + perform_action: "input_boolean.toggle" + target: entity_id: "[[[ return variables.ulm_card_welcome_scenes_collapse ]]]" item2: card: diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/vertical_buttons/vertical_buttons_custom_state.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/vertical_buttons/vertical_buttons_custom_state.yaml index 3789c36f4..d1cec32e6 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/vertical_buttons/vertical_buttons_custom_state.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/vertical_buttons/vertical_buttons_custom_state.yaml @@ -26,8 +26,8 @@ vertical_buttons_custom_state: card: - background-color: "[[[ return `rgba(var(--color-background-${variables.color}), var(--opacity-bg))`; ]]]" tap_action: - action: "call-service" - service: "input_select.select_option" - service_data: + action: "perform-action" + perform_action: "input_select.select_option" + target: entity_id: "[[[ return entity.entity_id ]]]" option: "[[[ return variables.state ]]]" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button_airconditionner.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button_airconditionner.yaml index 3923d0f91..75b194687 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button_airconditionner.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button_airconditionner.yaml @@ -16,8 +16,8 @@ popup_button_airconditionner: - transform: "scale(0.95)" value: "[[[ return variables.ulm_popup_button_airconditionner_state ]]]" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "climate.hvac" hvac_mode: "[[[ return variables.ulm_popup_button_airconditionner_state ]]]" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_chip_controls.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_chip_controls.yaml index 5b0a12023..2027d150d 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_chip_controls.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_chip_controls.yaml @@ -21,9 +21,9 @@ popup_chip_controls: entity: "[[[ return entity.entity_id; ]]]" icon: "mdi:skip-previous" tap_action: - action: "call-service" - service: "media_player.media_previous_track" - service_data: + action: "perform-action" + perform_action: "media_player.media_previous_track" + target: entity_id: "[[[ return entity.entity_id; ]]]" styles: icon: @@ -45,9 +45,9 @@ popup_chip_controls: - value: "playing" icon: "mdi:pause" tap_action: - action: "call-service" - service: "media_player.media_play_pause" - service_data: + action: "perform-action" + perform_action: "media_player.media_play_pause" + target: entity_id: "[[[ return entity.entity_id; ]]]" item3: card: @@ -56,9 +56,9 @@ popup_chip_controls: entity: "[[[ return entity.entity_id; ]]]" icon: "mdi:skip-next" tap_action: - action: "call-service" - service: "media_player.media_next_track" - service_data: + action: "perform-action" + perform_action: "media_player.media_next_track" + target: entity_id: "[[[ return entity.entity_id; ]]]" styles: icon: diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_light_effect_row.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_light_effect_row.yaml index 9969245b7..e6f078827 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_light_effect_row.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_light_effect_row.yaml @@ -17,8 +17,8 @@ popup_light_effect_row: name: - color: "rgba(var(--color-blue),1)" tap_action: - action: "call-service" - service: "light.turn_on" - service_data: + action: "perform-action" + perform_action: "light.turn_on" + target: entity_id: "[[[ return entity.entity_id; ]]]" effect: "[[[ return entity.attributes.effect_list[variables.ulm_popup_light_effect_entity_idx]; ]]]" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_light_palette_row.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_light_palette_row.yaml index ca4f4cbde..d613a1a26 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_light_palette_row.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_light_palette_row.yaml @@ -16,8 +16,8 @@ popup_light_palette_row: name: - color: "rgba(var(--color-blue),1)" tap_action: - action: "call-service" - service: "select.select_option" - service_data: + action: "perform-action" + perform_action: "select.select_option" + target: entity_id: "[[[ return entity.entity_id; ]]]" option: "[[[ return entity.attributes.options[variables.ulm_popup_light_palette_entity_idx]; ]]]" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_media_player_row.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_media_player_row.yaml index 3b1f4f478..60da76cc5 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_media_player_row.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_media_player_row.yaml @@ -16,8 +16,8 @@ popup_media_player_row: name: - color: "rgba(var(--color-blue),1)" tap_action: - action: "call-service" - service: "media_player.select_source" - service_data: + action: "perform-action" + perform_action: "media_player.select_source" + target: entity_id: "[[[ return entity.entity_id; ]]]" source: "[[[ return entity.attributes.source_list[variables.ulm_popup_media_entity_idx]; ]]]" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_cover.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_cover.yaml index 5b26a7602..4025d2a8e 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_cover.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_cover.yaml @@ -122,9 +122,9 @@ popup_cover: } ]]] tap_action: - action: "call-service" - service: "cover.close_cover" - service_data: + action: "perform-action" + perform_action: "cover.close_cover" + target: entity_id: "[[[ return entity.entity_id ]]]" item2: card: @@ -135,9 +135,9 @@ popup_cover: - "popup_button" - "popup_button_cover_stop" tap_action: - action: "call-service" - service: "cover.stop_cover" - service_data: + action: "perform-action" + perform_action: "cover.stop_cover" + target: entity_id: "[[[ return entity.entity_id ]]]" item3: card: @@ -164,9 +164,9 @@ popup_cover: } ]]] tap_action: - action: "call-service" - service: "cover.open_cover" - service_data: + action: "perform-action" + perform_action: "cover.open_cover" + target: entity_id: "[[[ return entity.entity_id ]]]" footer: card: 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 f385ff374..f23788759 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 @@ -279,9 +279,9 @@ popup_thermostat_temperature: template: "widget_icon" icon: "mdi:autorenew" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" hvac_mode: "auto" styles: @@ -305,9 +305,9 @@ popup_thermostat_temperature: template: "widget_icon" icon: "mdi:fire" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" hvac_mode: "heat" styles: @@ -331,9 +331,9 @@ popup_thermostat_temperature: template: "widget_icon" icon: "mdi:snowflake" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" hvac_mode: "cool" styles: @@ -357,9 +357,9 @@ popup_thermostat_temperature: template: "widget_icon" icon: "mdi:water" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" hvac_mode: "dry" styles: @@ -383,9 +383,9 @@ popup_thermostat_temperature: template: "widget_icon" icon: "mdi:fan" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" hvac_mode: "fan_only" styles: @@ -409,9 +409,9 @@ popup_thermostat_temperature: template: "widget_icon" icon: "mdi:sun-snowflake" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" hvac_mode: "heat_cool" styles: @@ -435,9 +435,9 @@ popup_thermostat_temperature: template: "widget_icon" icon: "mdi:toggle-switch-off" tap_action: - action: "call-service" - service: "climate.set_preset_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_preset_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" preset_mode: "[[[ if ('preset_mode' in entity.attributes) {return entity.attributes.preset_mode.includes('none') ? 'none' : 'None'} ]]]" styles: @@ -462,9 +462,9 @@ popup_thermostat_temperature: template: "widget_icon" icon: "mdi:home-switch-outline" tap_action: - action: "call-service" - service: "climate.set_preset_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_preset_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" preset_mode: "[[[ if ('preset_mode' in entity.attributes) {return entity.attributes.preset_mode.includes('away') ? 'away' : 'Away'} ]]]" styles: @@ -489,9 +489,9 @@ popup_thermostat_temperature: template: "widget_icon" icon: "mdi:car-seat-cooler" tap_action: - action: "call-service" - service: "climate.set_preset_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_preset_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" preset_mode: "[[[ if ('preset_mode' in entity.attributes) {return entity.attributes.preset_mode.includes('comfort') ? 'comfort' : 'Comfort'} ]]]" styles: @@ -516,9 +516,9 @@ popup_thermostat_temperature: template: "widget_icon" icon: "mdi:home" tap_action: - action: "call-service" - service: "climate.set_preset_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_preset_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" preset_mode: "[[[ if ('preset_mode' in entity.attributes) {return entity.attributes.preset_mode.includes('home') ? 'home' : 'Home'} ]]]" styles: @@ -543,9 +543,9 @@ popup_thermostat_temperature: template: "widget_icon" icon: "mdi:sleep" tap_action: - action: "call-service" - service: "climate.set_preset_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_preset_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" preset_mode: "[[[ if ('preset_mode' in entity.attributes) {return entity.attributes.preset_mode.includes('sleep') ? 'sleep' : 'Sleep'} ]]]" styles: @@ -570,9 +570,9 @@ popup_thermostat_temperature: template: "widget_icon" icon: "mdi:ticket" tap_action: - action: "call-service" - service: "climate.set_preset_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_preset_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" preset_mode: "[[[ if ('preset_mode' in entity.attributes) {return entity.attributes.preset_mode.includes('activity') ? 'activity' : 'Activity'} ]]]" styles: From 71a26382eba84cf4f29d2aa404ed11dd4029acfc Mon Sep 17 00:00:00 2001 From: wilbiev Date: Sun, 20 Oct 2024 17:53:28 +0000 Subject: [PATCH 17/49] Add data label to perform_action --- .../card_templates/cards/card_cover.yaml | 1 + .../card_templates/cards/card_fan.yaml | 1 + .../card_templates/cards/card_light.yaml | 3 +++ .../cards/card_media_player.yaml | 3 +++ .../card_templates/cards/card_room.yaml | 3 ++- .../card_templates/cards/card_thermostat.yaml | 18 ++++++++++++++---- .../vertical_buttons_custom_state.yaml | 1 + .../popup_button_airconditionner.yaml | 1 + .../popup_layouts/popup_light_effect_row.yaml | 1 + .../popup_layouts/popup_light_palette_row.yaml | 1 + .../popup_layouts/popup_media_player_row.yaml | 1 + .../popups/popup_thermostat_temperature.yaml | 12 ++++++++++++ 12 files changed, 41 insertions(+), 5 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_cover.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_cover.yaml index 5caf0c47b..7dfa80314 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_cover.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_cover.yaml @@ -560,6 +560,7 @@ card_cover: perform_action: "cover.set_cover_position" target: entity_id: "[[[ return entity.entity_id ]]]" + data: position: "[[[ return variables.ulm_card_cover_favorite_percentage ]]]" icon: "mdi:star" item3: diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_fan.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_fan.yaml index 1b5dd42e0..eefda8c75 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_fan.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_fan.yaml @@ -267,6 +267,7 @@ card_fan: perform_action: "[[[ return variables.ulm_card_fan_button_service ]]]" target: entity_id: "[[[ return entity.entity_id ]]]" + data: oscillating: "[[[ return !entity.attributes[variables.ulm_card_fan_oscillate_attribute] ]]]" state: - operator: "template" 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 95813002b..dd2180f87 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 @@ -335,6 +335,7 @@ card_light: perform_action: "light.turn_on" target: entity_id: "[[[ return entity.entity_id ]]]" + data: brightness_pct: "[[[ return variables.ulm_card_light_brightness_low ]]]" icon: "mdi:lightbulb-on-10" item2: @@ -387,6 +388,7 @@ card_light: perform_action: "light.turn_on" target: entity_id: "[[[ return entity.entity_id ]]]" + data: brightness_pct: "[[[ return variables.ulm_card_light_brightness_medium ]]]" icon: "mdi:lightbulb-on-50" item3: @@ -439,5 +441,6 @@ card_light: perform_action: "light.turn_on" target: entity_id: "[[[ return entity.entity_id ]]]" + data: brightness_pct: "[[[ return variables.ulm_card_light_brightness_high ]]]" icon: "mdi:lightbulb-on" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player.yaml index dafb2b4f4..4ea40f579 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_media_player.yaml @@ -704,6 +704,7 @@ card_media_player: perform_action: "media_player.volume_mute" target: entity_id: "[[[ return variables.ulm_card_media_player_player_controls_entity ]]]" + data: is_volume_muted: "[[[ return (states[entity.entity_id].attributes.is_volume_muted) ? false : true; ]]]" icon: "mdi:volume-mute" styles: @@ -765,6 +766,7 @@ card_media_player: perform_action: "media_player.volume_set" target: entity_id: "[[[ return variables.ulm_card_media_player_player_controls_entity ]]]" + data: volume_level: | [[[ var volume = states[entity.entity_id].attributes.volume_level; @@ -845,6 +847,7 @@ card_media_player: perform_action: "media_player.volume_set" target: entity_id: "[[[ return variables.ulm_card_media_player_player_controls_entity ]]]" + data: volume_level: | [[[ var volume = states[entity.entity_id].attributes.volume_level; 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 9c23e658c..16b015df6 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 @@ -9,8 +9,9 @@ card_room: action: "perform-action" perform_action: "input_select.select_option" target: - option: "[[[ return variables.ulm_input_select_option ]]]" entity_id: "[[[ return variables.ulm_input_select ]]]" + data: + option: "[[[ return variables.ulm_input_select_option ]]]" color: "var(--google-grey-500)" size: "45%" aspect_ratio: "1/1" 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 4ac8e9510..2e9742b31 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 @@ -225,6 +225,8 @@ card_thermostat: action: "perform-action" perform_action: "climate.set_temperature" target: + entity_id: "[[[ return entity.entity_id ]]]" + data: target_temp_low: | [[[ if (entity.attributes.target_temp_low == null) { @@ -256,7 +258,6 @@ card_thermostat: return (parseFloat(states[entity.entity_id].attributes.temperature) - step) } ]]] - entity_id: "[[[ return entity.entity_id ]]]" state: - operator: "template" value: > @@ -295,6 +296,8 @@ card_thermostat: action: "perform-action" perform_action: "climate.set_temperature" target: + entity_id: "[[[ return entity.entity_id ]]]" + data: target_temp_low: | [[[ if (entity.attributes.target_temp_low == null) { @@ -323,7 +326,6 @@ card_thermostat: return (parseFloat(states[entity.entity_id].attributes.temperature) + step) } ]]] - entity_id: "[[[ return entity.entity_id ]]]" state: - operator: "template" value: > @@ -351,6 +353,8 @@ card_thermostat: action: "perform-action" perform_action: "climate.set_temperature" target: + entity_id: "[[[ return entity.entity_id ]]]" + data: target_temp_low: | [[[ const unit = hass.config.unit_system.temperature @@ -358,7 +362,6 @@ card_thermostat: return (parseFloat(entity.attributes.target_temp_low) - step) ]]] target_temp_high: "[[[ return entity.attributes.target_temp_high ]]]" - entity_id: "[[[ return entity.entity_id ]]]" state: - operator: "template" value: > @@ -397,6 +400,8 @@ card_thermostat: action: "perform-action" perform_action: "climate.set_temperature" target: + entity_id: "[[[ return entity.entity_id ]]]" + data: target_temp_low: | [[[ const unit = hass.config.unit_system.temperature @@ -410,7 +415,6 @@ card_thermostat: const new_temp = (parseFloat(entity.attributes.target_temp_low) + step) return (new_temp + variables.ulm_card_thermostat_minimum_temp_spread > entity.attributes.target_temp_high ? new_temp + variables.ulm_card_thermostat_minimum_temp_spread : entity.attributes.target_temp_high) ]]] - entity_id: "[[[ return entity.entity_id ]]]" state: - operator: "template" value: > @@ -558,6 +562,7 @@ card_thermostat: perform_action: "climate.set_hvac_mode" target: entity_id: "[[[ return entity.entity_id ]]]" + data: hvac_mode: "auto" state: - operator: "template" @@ -588,6 +593,7 @@ card_thermostat: perform_action: "climate.set_hvac_mode" target: entity_id: "[[[ return entity.entity_id ]]]" + data: hvac_mode: "heat" state: - operator: "template" @@ -618,6 +624,7 @@ card_thermostat: perform_action: "climate.set_hvac_mode" target: entity_id: "[[[ return entity.entity_id ]]]" + data: hvac_mode: "cool" state: - operator: "template" @@ -648,6 +655,7 @@ card_thermostat: perform_action: "climate.set_hvac_mode" target: entity_id: "[[[ return entity.entity_id ]]]" + data: hvac_mode: "dry" state: - operator: "template" @@ -678,6 +686,7 @@ card_thermostat: perform_action: "climate.set_hvac_mode" target: entity_id: "[[[ return entity.entity_id ]]]" + data: hvac_mode: "heat_cool" state: - operator: "template" @@ -708,6 +717,7 @@ card_thermostat: perform_action: "climate.set_hvac_mode" target: entity_id: "[[[ return entity.entity_id ]]]" + data: hvac_mode: "fan_only" state: - operator: "template" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/vertical_buttons/vertical_buttons_custom_state.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/vertical_buttons/vertical_buttons_custom_state.yaml index d1cec32e6..da11bf10d 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/vertical_buttons/vertical_buttons_custom_state.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/vertical_buttons/vertical_buttons_custom_state.yaml @@ -30,4 +30,5 @@ vertical_buttons_custom_state: perform_action: "input_select.select_option" target: entity_id: "[[[ return entity.entity_id ]]]" + data: option: "[[[ return variables.state ]]]" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button_airconditionner.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button_airconditionner.yaml index 75b194687..6d3474bc4 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button_airconditionner.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button_airconditionner.yaml @@ -20,4 +20,5 @@ popup_button_airconditionner: perform_action: "climate.set_hvac_mode" target: entity_id: "climate.hvac" + data: hvac_mode: "[[[ return variables.ulm_popup_button_airconditionner_state ]]]" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_light_effect_row.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_light_effect_row.yaml index e6f078827..e460cb97d 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_light_effect_row.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_light_effect_row.yaml @@ -21,4 +21,5 @@ popup_light_effect_row: perform_action: "light.turn_on" target: entity_id: "[[[ return entity.entity_id; ]]]" + data: effect: "[[[ return entity.attributes.effect_list[variables.ulm_popup_light_effect_entity_idx]; ]]]" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_light_palette_row.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_light_palette_row.yaml index d613a1a26..8718c229f 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_light_palette_row.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_light_palette_row.yaml @@ -20,4 +20,5 @@ popup_light_palette_row: perform_action: "select.select_option" target: entity_id: "[[[ return entity.entity_id; ]]]" + data: option: "[[[ return entity.attributes.options[variables.ulm_popup_light_palette_entity_idx]; ]]]" diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_media_player_row.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_media_player_row.yaml index 60da76cc5..27509cdb6 100644 --- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_media_player_row.yaml +++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_media_player_row.yaml @@ -20,4 +20,5 @@ popup_media_player_row: perform_action: "media_player.select_source" target: entity_id: "[[[ return entity.entity_id; ]]]" + data: source: "[[[ return entity.attributes.source_list[variables.ulm_popup_media_entity_idx]; ]]]" 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 f23788759..2373218af 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 @@ -283,6 +283,7 @@ popup_thermostat_temperature: perform_action: "climate.set_hvac_mode" target: entity_id: "[[[ return entity.entity_id ]]]" + data: hvac_mode: "auto" styles: card: @@ -309,6 +310,7 @@ popup_thermostat_temperature: perform_action: "climate.set_hvac_mode" target: entity_id: "[[[ return entity.entity_id ]]]" + data: hvac_mode: "heat" styles: card: @@ -335,6 +337,7 @@ popup_thermostat_temperature: perform_action: "climate.set_hvac_mode" target: entity_id: "[[[ return entity.entity_id ]]]" + data: hvac_mode: "cool" styles: card: @@ -361,6 +364,7 @@ popup_thermostat_temperature: perform_action: "climate.set_hvac_mode" target: entity_id: "[[[ return entity.entity_id ]]]" + data: hvac_mode: "dry" styles: card: @@ -387,6 +391,7 @@ popup_thermostat_temperature: perform_action: "climate.set_hvac_mode" target: entity_id: "[[[ return entity.entity_id ]]]" + data: hvac_mode: "fan_only" styles: card: @@ -413,6 +418,7 @@ popup_thermostat_temperature: perform_action: "climate.set_hvac_mode" target: entity_id: "[[[ return entity.entity_id ]]]" + data: hvac_mode: "heat_cool" styles: card: @@ -439,6 +445,7 @@ popup_thermostat_temperature: perform_action: "climate.set_preset_mode" target: entity_id: "[[[ return entity.entity_id ]]]" + data: preset_mode: "[[[ if ('preset_mode' in entity.attributes) {return entity.attributes.preset_mode.includes('none') ? 'none' : 'None'} ]]]" styles: card: @@ -466,6 +473,7 @@ popup_thermostat_temperature: perform_action: "climate.set_preset_mode" target: entity_id: "[[[ return entity.entity_id ]]]" + data: preset_mode: "[[[ if ('preset_mode' in entity.attributes) {return entity.attributes.preset_mode.includes('away') ? 'away' : 'Away'} ]]]" styles: card: @@ -493,6 +501,7 @@ popup_thermostat_temperature: perform_action: "climate.set_preset_mode" target: entity_id: "[[[ return entity.entity_id ]]]" + data: preset_mode: "[[[ if ('preset_mode' in entity.attributes) {return entity.attributes.preset_mode.includes('comfort') ? 'comfort' : 'Comfort'} ]]]" styles: card: @@ -520,6 +529,7 @@ popup_thermostat_temperature: perform_action: "climate.set_preset_mode" target: entity_id: "[[[ return entity.entity_id ]]]" + data: preset_mode: "[[[ if ('preset_mode' in entity.attributes) {return entity.attributes.preset_mode.includes('home') ? 'home' : 'Home'} ]]]" styles: card: @@ -547,6 +557,7 @@ popup_thermostat_temperature: perform_action: "climate.set_preset_mode" target: entity_id: "[[[ return entity.entity_id ]]]" + data: preset_mode: "[[[ if ('preset_mode' in entity.attributes) {return entity.attributes.preset_mode.includes('sleep') ? 'sleep' : 'Sleep'} ]]]" styles: card: @@ -574,6 +585,7 @@ popup_thermostat_temperature: perform_action: "climate.set_preset_mode" target: entity_id: "[[[ return entity.entity_id ]]]" + data: preset_mode: "[[[ if ('preset_mode' in entity.attributes) {return entity.attributes.preset_mode.includes('activity') ? 'activity' : 'Activity'} ]]]" styles: card: From 3992387e9c5e359091a7c3990867169a787c80b1 Mon Sep 17 00:00:00 2001 From: Patrick Masters Date: Wed, 4 Dec 2024 21:27:59 -0500 Subject: [PATCH 18/49] register static files with async_register_static_paths instead --- custom_components/ui_lovelace_minimalist/base.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/base.py b/custom_components/ui_lovelace_minimalist/base.py index 4c45acec8..0bdf2a7e1 100644 --- a/custom_components/ui_lovelace_minimalist/base.py +++ b/custom_components/ui_lovelace_minimalist/base.py @@ -18,6 +18,7 @@ GitHubRatelimitException, ) from homeassistant.components.frontend import add_extra_js_url, async_remove_panel +from homeassistant.components.http import StaticPathConfig from homeassistant.components.lovelace import _register_panel from homeassistant.components.lovelace.dashboard import LovelaceYAML from homeassistant.config_entries import ConfigEntry, ConfigEntryState @@ -363,10 +364,11 @@ async def configure_plugins(self) -> bool: ) # Register - self.hass.http.register_static_path( - "/ui_lovelace_minimalist/cards", - self.hass.config.path(f"{self.integration_dir}/cards"), - True, + await self.hass.http.async_register_static_paths( + [StaticPathConfig( + "/ui_lovelace_minimalist/cards", + self.hass.config.path(f"{self.integration_dir}/cards"), + True)] ) except Exception as exception: From 2725320902536d4515f9fbf56005efaaab79e877 Mon Sep 17 00:00:00 2001 From: Patrick Masters Date: Wed, 4 Dec 2024 22:07:41 -0500 Subject: [PATCH 19/49] code quality fix --- custom_components/ui_lovelace_minimalist/base.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/base.py b/custom_components/ui_lovelace_minimalist/base.py index 0bdf2a7e1..dc2e0dcae 100644 --- a/custom_components/ui_lovelace_minimalist/base.py +++ b/custom_components/ui_lovelace_minimalist/base.py @@ -365,10 +365,13 @@ async def configure_plugins(self) -> bool: # Register await self.hass.http.async_register_static_paths( - [StaticPathConfig( - "/ui_lovelace_minimalist/cards", - self.hass.config.path(f"{self.integration_dir}/cards"), - True)] + [ + StaticPathConfig( + "/ui_lovelace_minimalist/cards", + self.hass.config.path(f"{self.integration_dir}/cards"), + True, + ) + ] ) except Exception as exception: From 20db49a5bf753c2d34f08b8a368e36a64464084a Mon Sep 17 00:00:00 2001 From: wilbiev Date: Sun, 8 Dec 2024 13:43:25 +0000 Subject: [PATCH 20/49] Fix aiofiles version issue - update init.py --- .../ui_lovelace_minimalist/__init__.py | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/__init__.py b/custom_components/ui_lovelace_minimalist/__init__.py index e40cc9c3e..73b7e0c73 100644 --- a/custom_components/ui_lovelace_minimalist/__init__.py +++ b/custom_components/ui_lovelace_minimalist/__init__.py @@ -113,18 +113,7 @@ async def async_startup(): async def async_setup(hass: HomeAssistant, config: dict): """Set up this integration using UI.""" - if config.get(DOMAIN) is None: - # We get here if the integration is set up using config flow - return True - - hass.data.setdefault(DOMAIN_DATA, config[DOMAIN]) - hass.async_create_task( - hass.config_entries.flow.async_init( - DOMAIN, context={"source": SOURCE_IMPORT}, data=hass.data[DOMAIN_DATA] - ) - ) - # Return boolean to indicate that initialization was successful. - return True + return await async_initialize_integration(hass=hass, config=config) async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> bool: @@ -146,6 +135,13 @@ async def async_remove_entry(hass: HomeAssistant, config_entry: ConfigEntry): async_remove_panel(hass, "ui-lovelace-minimalist") +async def async_reload_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> None: + """Reload Integration.""" + _LOGGER.debug("Reload the config entry") + + await async_setup_entry(hass, config_entry) + + async def config_entry_update_listener( hass: HomeAssistant, config_entry: ConfigEntry ) -> None: From 409859f292b6c3b1f079be843e2f521af4b289d7 Mon Sep 17 00:00:00 2001 From: wilbiev Date: Sun, 8 Dec 2024 13:59:17 +0000 Subject: [PATCH 21/49] Fix init.py --- custom_components/ui_lovelace_minimalist/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_components/ui_lovelace_minimalist/__init__.py b/custom_components/ui_lovelace_minimalist/__init__.py index 73b7e0c73..be8369bbc 100644 --- a/custom_components/ui_lovelace_minimalist/__init__.py +++ b/custom_components/ui_lovelace_minimalist/__init__.py @@ -13,7 +13,7 @@ from homeassistant.loader import async_get_integration from .base import UlmBase -from .const import DOMAIN, DOMAIN_DATA, NAME +from .const import DOMAIN, NAME from .enums import ConfigurationType, UlmDisabledReason _LOGGER: logging.Logger = logging.getLogger(__package__) From 8a6d58ff1e2db4ae504aaded190546bc4081a229 Mon Sep 17 00:00:00 2001 From: Wilbert <155230953+wilbiev@users.noreply.github.com> Date: Sun, 8 Dec 2024 15:13:44 +0100 Subject: [PATCH 22/49] Delete custom_cards/custom_card_bar_card/custom_card_bar_card.yaml --- .../custom_card_bar_card.yaml | 70 ------------------- 1 file changed, 70 deletions(-) delete mode 100644 custom_cards/custom_card_bar_card/custom_card_bar_card.yaml diff --git a/custom_cards/custom_card_bar_card/custom_card_bar_card.yaml b/custom_cards/custom_card_bar_card/custom_card_bar_card.yaml deleted file mode 100644 index 58dd0b13d..000000000 --- a/custom_cards/custom_card_bar_card/custom_card_bar_card.yaml +++ /dev/null @@ -1,70 +0,0 @@ ---- -custom_card_bar_card: - variables: - ulm_custom_card_bar_card_color: "var(--google-blue)" - ulm_custom_card_bar_card_min: "0" - ulm_custom_card_bar_card_max: "100" - triggers_update: "all" - styles: - grid: - - grid-template-areas: "'item1' 'item2'" - - grid-template-rows: "1fr" - card: - - border-radius: "var(--border-radius)" - - box-shadow: "var(--box-shadow)" - - padding: "0px" - custom_fields: - item1: - card: - type: "custom:button-card" - template: - - "icon_info" - - "card_generic" - variables: - ulm_card_generic_name: "[[[ return variables.ulm_custom_card_bar_card_name != '' ? variables.ulm_custom_card_bar_card_name : '' ]]]" - ulm_card_generic_icon: "[[[ return variables.ulm_custom_card_bar_card_icon != '' ? variables.ulm_custom_card_bar_card_icon : '' ]]]" - styles: - card: - - box-shadow: "none" - - border-radius: "var(--border-radius) var(--border-radius) 0px 0px" - - padding: "12px" - entity: "[[[ return variables.ulm_custom_card_bar_card_entity ]]]" - item2: - card: - type: "custom:bar-card" - entities: - - entity: "[[[ return variables.ulm_custom_card_bar_card_entity ]]]" - color: "[[[ return variables.ulm_custom_card_bar_card_color ]]]" - positions: - icon: "off" - indicator: "[[[ return variables.ulm_custom_card_bar_card_indicator == true ? 'inside' : 'off' ]]]" - minmax: "off" - title: "off" - value: "[[[ return variables.ulm_custom_card_bar_card_value == true ? 'inside' : 'off' ]]]" - name: "off" - min: "[[[ return variables.ulm_custom_card_bar_card_min ]]]" - max: "[[[ return variables.ulm_custom_card_bar_card_max ]]]" - card_mod: - style: |- - bar-card-currentbar { - border-radius: 0px !important; - right: 0; - } - bar-card-backgroundbar { - border-radius: 0px !important; - right: 0; - } - #states { - padding: 0; - height: 35px; - } - bar-card-background { - height: 35px !important; - } - bar-card-indicator { - left: 10px; - } - bar-card-value { - font-weight: bold; - font-size: 12px; - } From c986e8781937ad93c2fcf4636c9911f450abbb14 Mon Sep 17 00:00:00 2001 From: Wilbert <155230953+wilbiev@users.noreply.github.com> Date: Sun, 8 Dec 2024 15:14:22 +0100 Subject: [PATCH 23/49] Delete custom_cards/custom_card_eraycetinay_elapsed_time/languages/hu.yaml --- .../languages/hu.yaml | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 custom_cards/custom_card_eraycetinay_elapsed_time/languages/hu.yaml diff --git a/custom_cards/custom_card_eraycetinay_elapsed_time/languages/hu.yaml b/custom_cards/custom_card_eraycetinay_elapsed_time/languages/hu.yaml deleted file mode 100644 index 848b525aa..000000000 --- a/custom_cards/custom_card_eraycetinay_elapsed_time/languages/hu.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -ulm_custom_card_eraycetinay_elapsed_time_language_variables: - variables: - custom_card_eraycetinay_elapsed_time_day: "nappal" - custom_card_eraycetinay_elapsed_time_days: "nappal" - custom_card_eraycetinay_elapsed_time_hour: "órával" - custom_card_eraycetinay_elapsed_time_hours: "órával" - custom_card_eraycetinay_elapsed_time_minute: "perccel" - custom_card_eraycetinay_elapsed_time_minutes: "perccel" - custom_card_eraycetinay_elapsed_time_ago: "ezelőtt" - custom_card_eraycetinay_elapsed_time_justnow: "éppen most" From 6afa0bfdd6a6b3cebb0506f643798d1f8d203c2b Mon Sep 17 00:00:00 2001 From: Wilbert <155230953+wilbiev@users.noreply.github.com> Date: Sun, 8 Dec 2024 15:15:31 +0100 Subject: [PATCH 24/49] Delete custom_cards/custom_card_eraycetinay_lock/README.md --- .../custom_card_eraycetinay_lock/README.md | 130 ------------------ 1 file changed, 130 deletions(-) delete mode 100644 custom_cards/custom_card_eraycetinay_lock/README.md diff --git a/custom_cards/custom_card_eraycetinay_lock/README.md b/custom_cards/custom_card_eraycetinay_lock/README.md deleted file mode 100644 index 9b3bb9e06..000000000 --- a/custom_cards/custom_card_eraycetinay_lock/README.md +++ /dev/null @@ -1,130 +0,0 @@ ---- -title: Lock Card Custom-card -hide: - - toc ---- - - - -# Custom-card "Lock" - -This is a `custom-card` that works in switch logic with a `lock` entity. Card structure uses `lock`, `unlock` (optional `open`) actions and `lock`,`unlock`,`locking`,`unlocking`, `jammed` states. - -![Generic](../../docs/assets/img/custom_card_eraycetinay_lock.png) - -## Credits - -Author: eraycetinay - 2022 -Version: 0.0.3 - -## Changelog - -
    - 0.0.3 -
      -

      Contributor: Sisimomo - 2022-06-14

      -
    • Now can displays a warning when the battery is low.
    • -
    • Now can displays a warning when the door is lock but the door is still open.
    • -
    • Code refactoring to fit framework structure.
    • -
    • Documentation clean up.
    • -
    • Code clean up.
    • -
    -
    -
    - 0.0.2 - Added option to only use lock.open -
    -
    - 0.0.1 - Initial release -
    - -## Usage - -```yaml -- type: "custom:button-card" - entity: lock.door_lock - template: "custom_card_eraycetinay_lock" - name: "Door Lock" - variables: - ulm_custom_card_eraycetinay_lock_tap_control: true - ulm_custom_card_eraycetinay_lock_battery_level: sensor.door_battery - ulm_custom_card_eraycetinay_lock_door_open: binary_sensor.door_open - triggers_update: - - "sensor.door_battery" - - "binary_sensor.door_open" -``` - -## Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    VariableExampleDefaultRequiredExplanation
    ulm_custom_card_eraycetinay_lock_tap_controltruefalsenoLock/Unlock on tap action
    ulm_custom_card_eraycetinay_lock_only_opentruefalsenoOnly use the card to open the door (always sends lock.open on tap)
    ulm_custom_card_eraycetinay_lock_battery_levelsensor.door_batterynoDisplays a warning when the battery is low.
    ulm_custom_card_eraycetinay_lock_battery_warning2520noAt what battery percentage should the low battery warning appear.
    ulm_custom_card_eraycetinay_lock_battery_warning_low105noAt what battery percentage should the very low battery warning appear.
    ulm_custom_card_eraycetinay_lock_door_openbinary_sensor.door_opennoDisplays a warning when the door is lock but the door is still open.
    ulm_custom_card_eraycetinay_lock_battery_sensor_binarytruefalsenoSet to true if using a binary battery sensor. Will ignore battery_warning percentage settings
    ulm_custom_card_eraycetinay_lock_battery_sensor_binary_low_stateoffonnoSet whether the binary sensor turns to on or off when in low state
    - -??? note "Template Code" - - ```yaml title="custom_card_eraycetinay_lock.yaml" - --8<-- "custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml" - ``` From d23728b3f6274d4d17e60d4cee6f92c65aee90ec Mon Sep 17 00:00:00 2001 From: Wilbert <155230953+wilbiev@users.noreply.github.com> Date: Sun, 8 Dec 2024 15:15:48 +0100 Subject: [PATCH 25/49] Delete custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml --- .../custom_card_eraycetinay_lock.yaml | 131 ------------------ 1 file changed, 131 deletions(-) delete mode 100644 custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml diff --git a/custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml b/custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml deleted file mode 100644 index 8a20e4b99..000000000 --- a/custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml +++ /dev/null @@ -1,131 +0,0 @@ ---- -custom_card_eraycetinay_lock: - template: - - "icon_info_bg" - - "ulm_translation_engine" - - "custom_card_eraycetinay_lock_language_variables" - variables: - ulm_custom_card_eraycetinay_lock_battery_warning: 20 - ulm_custom_card_eraycetinay_lock_battery_warning_low: 5 - ulm_custom_card_eraycetinay_lock_battery_sensor_binary: false - ulm_custom_card_eraycetinay_lock_battery_sensor_binary_low_state: "on" - tap_action: - action: | - [[[ - return variables.ulm_custom_card_eraycetinay_lock_tap_control ? "call-service" : "more-info"; - ]]] - # only related with call-service action - service: | - [[[ - if(variables.ulm_custom_card_eraycetinay_lock_tap_control){ - if(variables.ulm_custom_card_eraycetinay_lock_open){ - return "lock.open"; - } else { - if (entity.state == "locked"){ - return "lock.unlock"; - } else if (entity.state == "unlocked"){ - return "lock.lock"; - } - } - } - ]]] - # only related with call-service action - service_data: - entity_id: | - [[[ return entity.entity_id; ]]] - show_label: true - show_name: true - triggers_update: - - "[[[ return entity.entity_id; ]]]" - label: "[[[ return variables.ulm_translation_state ]]]" - state: - - operator: "template" - value: | - [[[ return entity.state == ("unlocked" || "open" || "opened"); ]]] - styles: - icon: - - color: "rgba(var(--color-yellow),1)" - img_cell: - - background-color: "rgba(var(--color-yellow), 0.2)" - - operator: "template" - value: | - [[[ return entity.state == "locked" || "closed"; ]]] - styles: - icon: - - color: "rgba(var(--color-green),1)" - img_cell: - - background-color: "rgba(var(--color-green), 0.2)" - styles: - icon: - - color: "rgba(var(--color-theme),0.2)" - img_cell: - - background-color: "rgba(var(--color-theme),0.05)" - - border-radius: "50%" - - place-self: "center" - - width: "42px" - - height: "42px" - grid: - - position: "relative" - custom_fields: - notification_locked_and_opened: - - border-radius: "50%" - - position: "absolute" - - left: "28px" - - top: "-6px" - - height: "16px" - - width: "16px" - - border: "2px solid var(--card-background-color)" - - font-size: "12px" - - line-height: "14px" - - background-color: "[[[ return 'rgba(var(--color-red),1)'; ]]]" - notification_battery: - - border-radius: "50%" - - position: "absolute" - - left: "-6px" - - top: "-6px" - - height: "16px" - - width: "16px" - - border: "2px solid var(--card-background-color)" - - font-size: "12px" - - line-height: "14px" - - background-color: | - [[[ - if (variables.ulm_custom_card_eraycetinay_lock_battery_level !== undefined) { - if (variables.ulm_custom_card_eraycetinay_lock_battery_sensor_binary) { - if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state == variables.ulm_custom_card_eraycetinay_lock_battery_sensor_binary_low_state) { - return "rgba(var(--color-red),1)"; - } - } else { - if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state <= variables.ulm_custom_card_eraycetinay_lock_battery_warning_low) { - return "rgba(var(--color-red),1)"; - } else if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state <= variables.ulm_custom_card_eraycetinay_lock_battery_warning) { - return "rgba(var(--color-yellow),1)"; - } - } - } - ]]] - custom_fields: - notification_locked_and_opened: > - [[[ - if (variables.ulm_custom_card_eraycetinay_lock_door_open !== undefined && (entity.state === "locked" && states[variables.ulm_custom_card_eraycetinay_lock_door_open].state === "on")) { - return ``; - } - ]]] - notification_battery: > - [[[ - if (variables.ulm_custom_card_eraycetinay_lock_battery_level !== undefined) { - if (variables.ulm_custom_card_eraycetinay_lock_battery_sensor_binary) { - if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state == variables.ulm_custom_card_eraycetinay_lock_battery_sensor_binary_low_state) { - return ` - - `; - } - } else { - if (variables.ulm_custom_card_eraycetinay_lock_battery_warning >= states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state) { - return ` - - `; - } - } - } - ]]] From cb38314a19c049caff9c62cd6858c6ef0c160779 Mon Sep 17 00:00:00 2001 From: Wilbert <155230953+wilbiev@users.noreply.github.com> Date: Sun, 8 Dec 2024 15:16:11 +0100 Subject: [PATCH 26/49] Delete custom_cards/custom_card_eraycetinay_lock/languages/de.yaml --- .../custom_card_eraycetinay_lock/languages/de.yaml | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 custom_cards/custom_card_eraycetinay_lock/languages/de.yaml diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/de.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/de.yaml deleted file mode 100644 index d97a28f11..000000000 --- a/custom_cards/custom_card_eraycetinay_lock/languages/de.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -custom_card_eraycetinay_lock_language_variables: - variables: - ulm_custom_card_eraycetinay_lock_locked: "verriegelt" - ulm_custom_card_eraycetinay_lock_unlocked: "entriegelt" - ulm_custom_card_eraycetinay_lock_locking: "verriegeln" - ulm_custom_card_eraycetinay_lock_unlocking: "entriegeln" - ulm_custom_card_eraycetinay_lock_unavailable: "nicht verfügbar" - ulm_custom_card_eraycetinay_lock_jammed: "blockiert" - ulm_custom_card_eraycetinay_lock_locked_and_opened: "Die Tür ist verschlossen, aber noch offen." - ulm_custom_card_eraycetinay_lock_battery_is_at: "Batterie ist an" - ulm_custom_card_eraycetinay_lock_battery_is_low: "Batterie schwach" From 8dd2760f162e4ca356a90e069e8d2a095c7d9770 Mon Sep 17 00:00:00 2001 From: Wilbert <155230953+wilbiev@users.noreply.github.com> Date: Sun, 8 Dec 2024 15:16:46 +0100 Subject: [PATCH 27/49] Delete custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml --- .../custom_card_sisimomo_printer.yaml | 223 ------------------ 1 file changed, 223 deletions(-) delete mode 100644 custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml diff --git a/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml b/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml deleted file mode 100644 index b80018dd8..000000000 --- a/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml +++ /dev/null @@ -1,223 +0,0 @@ ---- -custom_card_sisimomo_printer: - template: - - "ulm_translation_engine" - - "ulm_language_variables" - variables: - printer_name: "[[[ entity.attributes.friendly_name; ]]]" - ulm_idle: "idle" - show_icon: false - show_label: false - show_name: false - triggers_update: "all" - tap_action: - action: "" - styles: - grid: - - grid-template-areas: "'printer_state' 'cartridges'" - - grid-template-columns: "1fr" - - grid-template-rows: "min-content" - card: - - border-radius: "var(--border-radius)" - - box-shadow: "var(--box-shadow)" - - padding: "12px" - - "--mdc-ripple-press-opacity": 0 - - cursor: "default" - custom_fields: - printer_state: - card: - type: "custom:button-card" - template: | - [[[ - return ( - entity.state.toLowerCase() != variables.ulm_idle.toLowerCase() - && entity.state.toLowerCase() != variables.ulm_translation_unavailable.toLowerCase() - ? [ "icon_info", "blue_no_state" ] : [ "icon_info" ] - ); - ]]] - tap_action: - action: "more-info" - label: "[[[ return entity.state; ]]]" - name: "[[[ return variables.printer_name; ]]]" - entity: "[[[ return entity.entity_id; ]]]" - styles: - card: - - padding: "0" - - "--mdc-ripple-press-opacity": 0.12 - - cursor: "pointer" - label: - - text-transform: "capitalize" - cartridges: | - [[[ - // Source: https://stackoverflow.com/a/56266358 - const isColor = (strColor) => { - const s = new Option().style; - s.color = strColor; - return s.color !== ''; - } - - let toner_info_available = true; - if (variables.cartridges !== undefined ? Array.isArray(variables.cartridges) && variables.cartridges.length > 0 : false) { - let errorArray = []; - variables.cartridges.forEach(cartridge => { - let index = variables.cartridges.indexOf(cartridge); - let valid_cartridge_types = ['unicolor', 'tricolor'] - - // Confirm that the label is provided. - if (cartridge.label === undefined) { - errorArray.push(`cartridges.[${index}].label: You must provide a value.`); - } - - // Confirm that a valid cartridge type is provided, if not default to 'unicolor' - // for backwards compatibility with older configuration files - if (cartridge.type === undefined) { - cartridge.type = 'unicolor' - } else if (!valid_cartridge_types.includes(cartridge.type)) { - errorArray.push(`cartridges.[${index}].type: You must provide a valid cartridge type`); - } - - // Confirm that the color is provided and is valid color css. - if (cartridge.color !== undefined) { - if (cartridge.type === 'unicolor') { - if (typeof cartridge.color === 'string' || cartridge.color instanceof String ? !isColor(cartridge.color) : false) { - errorArray.push(`cartridges.[${index}].color: You must provide a single valid CSS color value.`); - } - } else if (Array.isArray(cartridge.color) && cartridge.color.length === 3 ? cartridge.type === 'tricolor' : false) { - cartridge.color.forEach(color => { - let col_index = cartridge.color.indexOf(color); - if (!isColor(String(color))) { - errorArray.push(`cartridges.[${index}].color.[${col_index}]: You must provide a single valid CSS color value.`); - } - }); - } else { - errorArray.push(`cartridges.[${index}].color: Invalid combination of colour and type.`); - } - } else { - errorArray.push(`cartridges.[${index}].color: You must provide a value.`); - } - - // Confirm that the entity_id is provided, is a valid entity_id, a integer and a value between 0 and 100 inclusively. - if (cartridge.entity_id === undefined) { - errorArray.push(`cartridges.[${index}].entity_id: You must provide a value.`); - } else if (states[cartridge.entity_id] === undefined) { - errorArray.push(`cartridges.[${index}].entity_id: You must provide a existing entity_id.`); - } else if (String(states[cartridge.entity_id].state).toLowerCase() === String(variables.ulm_translation_unavailable).toLowerCase()) { - toner_info_available = false; - } else if (isNaN(states[cartridge.entity_id].state) || typeof states[cartridge.entity_id].state === "boolean") { - errorArray.push(`cartridges.[${index}].entity_id: You must provide a entity representing an integer.`); - } else if (states[cartridge.entity_id].state < 0 || states[cartridge.entity_id].state > 100) { - errorArray.push(`cartridges.[${index}].entity_id: You must provide a entity representing an integer between 0 and 100 inclusively.`); - } - }); - if (errorArray.length > 0) { - return `
    - Configuration Error: -
      - ${errorArray.map(error => `
    • ${error}
    • `).join("")} -
    -
    `; - } - - if (toner_info_available) { - return '
    ' + - variables.cartridges.map(cartridge => { - if (cartridge.type === "unicolor") { - cartridge.bar_style = ` - background-color: ${cartridge.color}; - width: ${states[cartridge.entity_id].state}%; - `; - } else if (cartridge.type === "tricolor") { - cartridge.bar_style = ` - background: linear-gradient( - 180deg, - ${cartridge.color[0]}, - ${cartridge.color[0]} 33%, - ${cartridge.color[1]} 33%, - ${cartridge.color[1]} 66%, - ${cartridge.color[2]} 66%, - ${cartridge.color[2]} - ); - width: ${states[cartridge.entity_id].state}%; - `; - } - - // Removes unnecessary whitespace from inline CSS - cartridge.bar_style = cartridge.bar_style.replace(/\s{2,}/g, '') - return ` -
    ${cartridge.label}
    -
    -
    -
    -
    ${states[cartridge.entity_id].state}%
    - `; - }).join("") + - '
    '; - } else { - return ` -
    - Toner Information Unavailable -
    - `; - } - } else { - - } - ]]] - card_mod: - style: | - /* Cartridge CSS */ - div#cartridges .wrapper { - display: grid; - grid-template-columns: auto 1fr auto; - grid-gap: 1rem; - padding: 12px 8px 8px 8px; - } - div#cartridges .wrapper > *:nth-child(3n-2), .wrapper > *:nth-child(3n) { - place-self: center start; - } - div#cartridges .wrapper > .label { - filter: opacity(70%); - font-size: medium; - } - div#cartridges .wrapper > .container-bar { - position: relative; - border-radius: 4px; - border: 0.01rem solid rgba(var(--color-theme),.35); - } - div#cartridges .wrapper > .container-bar .bar { - height: 20px; - border-radius: 4px; - } - div#cartridges .wrapper > .state { - filter: opacity(40%); - font-size: medium; - } - - /* Error CSS */ - div#cartridges .error-container { - text-align: left; - font-size: 75%; - font-family: var(--code-font-family, monospace); - padding: 10px; - background-color: rgba(219, 68, 55, 0.75); - margin-top:10px; - border-radius:8px; - } - div#cartridges .error-container ul { - list-style: none; - padding: 0; - margin: 0; - overflow-wrap: break-word; - word-wrap: break-word; - white-space: normal !important; - } - div#cartridges .error-container ul li { - margin-top: 0.5em; - } - div#cartridges .info-unavailable { - padding: 1em; - white-space: normal; - margin-top:10px; - border-radius:8px; - opacity: 60%; - } From 162155096797ae960d60d425075c8cb902fed9cb Mon Sep 17 00:00:00 2001 From: Wilbert <155230953+wilbiev@users.noreply.github.com> Date: Sun, 8 Dec 2024 15:17:17 +0100 Subject: [PATCH 28/49] Delete custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml --- .../custom_card_paddy_dwd_pollen.yaml | 69 ------------------- 1 file changed, 69 deletions(-) delete mode 100644 custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml diff --git a/custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml b/custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml deleted file mode 100644 index 1144adcec..000000000 --- a/custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml +++ /dev/null @@ -1,69 +0,0 @@ ---- -custom_card_paddy_dwd_pollen: - template: - - "card_generic_swap" - - "custom_card_paddy_dwd_pollen_language_variables" - variables: - ulm_card_generic_swap_name: "[[[ return variables.ulm_custom_card_paddy_dwd_pollen_name; ]]]" - ulm_card_generic_swap_icon: "[[[ return variables.ulm_custom_card_paddy_dwd_pollen_icon; ]]]" - custom_fields: - item1: - card: - type: "custom:button-card" - template: - - "icon_more_info" - custom_fields: - item1: - card: - type: "custom:button-card" - entity: "[[[ return entity.entity_id ]]]" - state: - - value: "6" - styles: - img_cell: - - background-color: "rgba(190,0,33,1)" - - value: "5" - styles: - img_cell: - - background-color: "rgba(240,56,26,1)" - - value: "4" - styles: - img_cell: - - background-color: "rgba(254,154,36,1)" - - value: "3" - styles: - img_cell: - - background-color: "rgba(254,197,77,1)" - - value: "2" - styles: - img_cell: - - background-color: "rgba(254,228,156,1)" - - value: "1" - styles: - img_cell: - - background-color: "rgba(219,250,200,1)" - - value: "0" - styles: - icon: - - color: "rgba(var(--color-theme),0.2)" - item2: - card: - type: "custom:button-card" - entity: "[[[ return entity.entity_id ]]]" - label: > - [[[ - if (entity.state == "6"){ - return variables.custom_card_paddy_dwd_pollen_6; - } else if (entity.state == "5"){ - return variables.custom_card_paddy_dwd_pollen_5; - } else if (entity.state == "4"){ - return variables.custom_card_paddy_dwd_pollen_4; - } else if (entity.state == "3"){ - return variables.custom_card_paddy_dwd_pollen_3; - } else if (entity.state == "2"){ - return variables.custom_card_paddy_dwd_pollen_2; - } else if (entity.state == "1"){ - return variables.custom_card_paddy_dwd_pollen_1; - } - return variables.custom_card_paddy_dwd_pollen_none; - ]]] From c3db6010b51cc8b24c04804cecc9edc677b2c4a8 Mon Sep 17 00:00:00 2001 From: Wilbert <155230953+wilbiev@users.noreply.github.com> Date: Sun, 8 Dec 2024 15:17:47 +0100 Subject: [PATCH 29/49] Delete custom_cards/custom_card_mpse_printer/custom_card_mpse_printer.yaml --- .../custom_card_mpse_printer.yaml | 224 ------------------ 1 file changed, 224 deletions(-) delete mode 100644 custom_cards/custom_card_mpse_printer/custom_card_mpse_printer.yaml diff --git a/custom_cards/custom_card_mpse_printer/custom_card_mpse_printer.yaml b/custom_cards/custom_card_mpse_printer/custom_card_mpse_printer.yaml deleted file mode 100644 index 56fad13d0..000000000 --- a/custom_cards/custom_card_mpse_printer/custom_card_mpse_printer.yaml +++ /dev/null @@ -1,224 +0,0 @@ ---- -custom_card_mpse_printer: - show_icon: false - show_name: false - show_label: false - styles: - card: - - border-radius: "20px" - - box-shadow: "var(--box-shadow)" - - padding: "0px" - grid: - - grid-template-areas: "'item1' 'item2' 'item3' 'item4' 'item5'" - - grid-template-columns: "1fr" - - grid-template-rows: "min-content" - custom_fields: - item1: - card: - entity: "[[[ return entity.entity_id ]]]" - name: "[[[ return variables.ulm_card_printer_name ]]]" - label: >- - [[[ - return entity.state; - ]]] - template: - - "icon_info" - - "custom_card_mpse_printer_blue" - styles: - card: - - padding: "12px" - type: "custom:button-card" - item2: - card: - type: "custom:bar-card" - height: "20px" - positions: - name: off - value: "inside" - icon: off - indicator: off - minmax: off - color: "black" - entities: - - entity: "[[[ return variables.ulm_card_printer_black_name ]]]" - card_mod: - style: | - bar-card-currentbar{ - border: 0.01rem solid rgba(var(--color-theme),.4); - } - bar-card-backgroundbar{ - display: none; - } - bar-card-name{ - width: 2rem; - margin-right: 40px !important; - } - bar-card-value{ - width: 2rem; - margin-left: 40px !important; - justify-content: center; - display: flex; - color: grey; - } - bar-card-background{ - margin: 4px 0 4px 0 !important; - text-align: initial; - } - ha-card{ - --bar-card-border-radius: 5px; - border-radius: 0px; - box-shadow: none; - } - #states{ - padding: 0 16px; - } - item3: - card: - type: "custom:bar-card" - height: "20px" - positions: - name: off - value: "inside" - icon: off - indicator: off - minmax: off - color: "rgb(250,255,0)" - entities: - - entity: "[[[ return variables.ulm_card_printer_yellow_name ]]]" - card_mod: - style: | - bar-card-currentbar{ - border: 0.01rem solid rgba(var(--color-theme),.4); - } - bar-card-backgroundbar{ - display: none; - } - bar-card-name{ - width: 2rem; - margin-right: 40px !important; - } - bar-card-value{ - width: 2rem; - margin-left: 40px !important; - justify-content: center; - display: flex; - color: grey; - } - bar-card-background{ - margin: 4px 0 4px 0 !important; - text-align: initial; - } - ha-card{ - --bar-card-border-radius: 5px; - border-radius: 0px; - box-shadow: none; - } - #states{ - padding: 0 16px; - } - item4: - card: - type: "custom:bar-card" - height: "20px" - positions: - name: off - value: "inside" - icon: off - indicator: off - minmax: off - color: "rgb(248,0,255)" - entities: - - entity: "[[[ return variables.ulm_card_printer_magenta_name ]]]" - card_mod: - style: | - bar-card-currentbar{ - border: 0.01rem solid rgba(var(--color-theme),.4); - } - bar-card-backgroundbar{ - display: none; - } - bar-card-name{ - width: 2rem; - margin-right: 40px !important; - } - bar-card-value{ - width: 2rem; - margin-left: 40px !important; - justify-content: center; - display: flex; - color: grey; - } - bar-card-background{ - margin: 4px 0 4px 0 !important; - text-align: initial; - } - ha-card{ - --bar-card-border-radius: 5px; - border-radius: 0px; - box-shadow: none; - } - #states{ - padding: 0 16px; - } - item5: - card: - type: "custom:bar-card" - height: "20px" - positions: - name: off - value: "inside" - icon: off - indicator: off - minmax: off - color: "rgb(0,255,255)" - entities: - - entity: "[[[ return variables.ulm_card_printer_cyan_name ]]]" - card_mod: - style: | - bar-card-currentbar{ - border: 0.01rem solid rgba(var(--color-theme),.4); - } - bar-card-backgroundbar{ - display: none; - } - bar-card-name{ - width: 2rem; - margin-right: 40px !important; - } - bar-card-value{ - width: 2rem; - margin-left: 40px !important; - justify-content: center; - display: flex; - color: grey; - } - bar-card-background{ - margin: 4px 0 4px 0 !important; - text-align: initial; - } - ha-card{ - --bar-card-border-radius: 5px; - border-radius: 0px; - box-shadow: none; - } - #states{ - padding: 0 16px 16px 16px; - } -custom_card_mpse_printer_blue: - 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)" - card: - - background-color: "rgba(var(--color-background-blue), var(--opacity-bg))" - operator: "template" - value: > - [[[ - return entity.state!="idle" ? true : false - ]]] From adcf5485f224ffe04d7dea8e44536a95735aa0ff Mon Sep 17 00:00:00 2001 From: Wilbert <155230953+wilbiev@users.noreply.github.com> Date: Sun, 8 Dec 2024 15:18:06 +0100 Subject: [PATCH 30/49] Delete custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml --- .../custom_card_irmajavi_speedtest.yaml | 241 ------------------ 1 file changed, 241 deletions(-) delete mode 100644 custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml 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 deleted file mode 100644 index bc6df3597..000000000 --- a/custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml +++ /dev/null @@ -1,241 +0,0 @@ ---- -custom_card_irmajavi_speedtest: - triggers_update: "all" - show_name: false - show_label: false - template: - - "ulm_custom_card_irmajavi_speedtest_language_variables" - 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: "homeassistant.update_entity" - service_data: - entity_id: - - "[[[ return variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity]]]" - - "[[[ return variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity]]]" - - "[[[ return variables.ulm_custom_card_irmajavi_speedtest_ping_entity]]]" - color: "var(--google-grey)" - show_icon: true - show_label: false - show_name: true - styles: - custom_fields: - item1: - - justify-self: "end" - - margin-top: "-23px" - - margin-right: "3px" - 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" - - margin-left: "40px" - - margin-top: "3px" - 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: "[[[ return variables.ulm_custom_card_irmajavi_speedtest_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" - color: "var(--google-blue)" - show_label: true - show_icon: false - name: "[[[ return variables.ulm_custom_card_irmajavi_speedtest_download ]]]" - 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: "[[[ return variables.ulm_custom_card_irmajavi_speedtest_upload ]]]" - 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 16317e8137c7fd460dd3268df59a16003e150a7a Mon Sep 17 00:00:00 2001 From: Wilbert <155230953+wilbiev@users.noreply.github.com> Date: Sun, 8 Dec 2024 15:18:24 +0100 Subject: [PATCH 31/49] Delete custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml --- .../custom_card_eraycetinay_lock/languages/tr.yaml | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml deleted file mode 100644 index 71087a982..000000000 --- a/custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -custom_card_eraycetinay_lock_language_variables: - variables: - ulm_custom_card_eraycetinay_lock_locked: "kilitli" - ulm_custom_card_eraycetinay_lock_unlocked: "kilitli değil" - ulm_custom_card_eraycetinay_lock_locking: "kilitleniyor" - ulm_custom_card_eraycetinay_lock_unlocking: "kilit açılıyor" - ulm_custom_card_eraycetinay_lock_unavailable: "müsait değil" - ulm_custom_card_eraycetinay_lock_jammed: "sıkışmış" - ulm_custom_card_eraycetinay_lock_locked_and_opened: "Kapı kilitli ama hala açık" - ulm_custom_card_eraycetinay_lock_battery_is_at: "pil" - ulm_custom_card_eraycetinay_lock_battery_is_low: "pil zayıf" From ab1ce0d770e403602a44e473bdafff420ed2bd47 Mon Sep 17 00:00:00 2001 From: Wilbert <155230953+wilbiev@users.noreply.github.com> Date: Sun, 8 Dec 2024 15:18:51 +0100 Subject: [PATCH 32/49] Delete custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml --- .../custom_card_eraycetinay_lock/languages/sv.yaml | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml deleted file mode 100644 index 858d90629..000000000 --- a/custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -custom_card_eraycetinay_lock_language_variables: - variables: - ulm_custom_card_eraycetinay_lock_locked: "låst" - ulm_custom_card_eraycetinay_lock_unlocked: "olåst" - ulm_custom_card_eraycetinay_lock_locking: "låser" - ulm_custom_card_eraycetinay_lock_unlocking: "låser upp" - ulm_custom_card_eraycetinay_lock_unavailable: "otillgängligt" - ulm_custom_card_eraycetinay_lock_jammed: "fastnat" - ulm_custom_card_eraycetinay_lock_locked_and_opened: "Dörren är låst men fortfarande öppen." - ulm_custom_card_eraycetinay_lock_battery_is_at: "Batterinivån är" - ulm_custom_card_eraycetinay_lock_battery_is_low: "Batteriet är lågt" From e1ba5721d876a885062f1174e90f5a6b2bb5d4d8 Mon Sep 17 00:00:00 2001 From: Wilbert <155230953+wilbiev@users.noreply.github.com> Date: Sun, 8 Dec 2024 15:19:06 +0100 Subject: [PATCH 33/49] Delete custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml --- .../custom_card_eraycetinay_lock/languages/pl.yaml | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml deleted file mode 100644 index edfaba02f..000000000 --- a/custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -custom_card_eraycetinay_lock_language_variables: - variables: - ulm_custom_card_eraycetinay_lock_locked: "zamknięty" - ulm_custom_card_eraycetinay_lock_unlocked: "otwarty" - ulm_custom_card_eraycetinay_lock_locking: "zamykanie" - ulm_custom_card_eraycetinay_lock_unlocking: "otwieranie" - ulm_custom_card_eraycetinay_lock_unavailable: "niedostępny" - ulm_custom_card_eraycetinay_lock_jammed: "zacięty" - ulm_custom_card_eraycetinay_lock_locked_and_opened: "Drzwi są zamknięte, ale nadal otwarte." - ulm_custom_card_eraycetinay_lock_battery_is_at: "Bateria jest na" - ulm_custom_card_eraycetinay_lock_battery_is_low: "Bateria jest słaba" From 8e56b169ad2ce2eb0422a033570106fee5dc8838 Mon Sep 17 00:00:00 2001 From: Wilbert <155230953+wilbiev@users.noreply.github.com> Date: Sun, 8 Dec 2024 15:19:21 +0100 Subject: [PATCH 34/49] Delete custom_cards/custom_card_eraycetinay_lock/languages/es.yaml --- .../custom_card_eraycetinay_lock/languages/es.yaml | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 custom_cards/custom_card_eraycetinay_lock/languages/es.yaml diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/es.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/es.yaml deleted file mode 100644 index 3281e2ee1..000000000 --- a/custom_cards/custom_card_eraycetinay_lock/languages/es.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -custom_card_eraycetinay_lock_language_variables: - variables: - ulm_custom_card_eraycetinay_lock_locked: "bloqueado" - ulm_custom_card_eraycetinay_lock_unlocked: "desbloqueado" - ulm_custom_card_eraycetinay_lock_locking: "bloqueando" - ulm_custom_card_eraycetinay_lock_unlocking: "desbloqueando" - ulm_custom_card_eraycetinay_lock_unavailable: "no disponible" - ulm_custom_card_eraycetinay_lock_jammed: "apretada" - ulm_custom_card_eraycetinay_lock_locked_and_opened: "La puerta está cerrada pero aún abierta." - ulm_custom_card_eraycetinay_lock_battery_is_at: "la batería está en" - ulm_custom_card_eraycetinay_lock_battery_is_low: "La batería está baja" From d7a63821c7e51e8b8af134c8d7514b800ae84923 Mon Sep 17 00:00:00 2001 From: Wilbert <155230953+wilbiev@users.noreply.github.com> Date: Sun, 8 Dec 2024 15:19:32 +0100 Subject: [PATCH 35/49] Delete custom_cards/custom_card_eraycetinay_lock/languages/en.yaml --- .../custom_card_eraycetinay_lock/languages/en.yaml | 12 ------------ 1 file changed, 12 deletions(-) delete mode 100644 custom_cards/custom_card_eraycetinay_lock/languages/en.yaml diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/en.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/en.yaml deleted file mode 100644 index 81579b70b..000000000 --- a/custom_cards/custom_card_eraycetinay_lock/languages/en.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -custom_card_eraycetinay_lock_language_variables: - variables: - ulm_custom_card_eraycetinay_lock_locked: "locked" - ulm_custom_card_eraycetinay_lock_unlocked: "unlocked" - ulm_custom_card_eraycetinay_lock_locking: "locking" - ulm_custom_card_eraycetinay_lock_unlocking: "unlocking" - ulm_custom_card_eraycetinay_lock_unavailable: "unavailable" - ulm_custom_card_eraycetinay_lock_jammed: "jammed" - ulm_custom_card_eraycetinay_lock_locked_and_opened: "The door is locked but still open." - ulm_custom_card_eraycetinay_lock_battery_is_at: "Battery is at" - ulm_custom_card_eraycetinay_lock_battery_is_low: "Battery is low" From e0a036f2a44bdba042f470a08617d9cc889dc7ac Mon Sep 17 00:00:00 2001 From: wilbiev Date: Sun, 8 Dec 2024 14:35:50 +0000 Subject: [PATCH 36/49] Fix aiofiles HA 2024.12 --- custom_components/ui_lovelace_minimalist/manifest.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/custom_components/ui_lovelace_minimalist/manifest.json b/custom_components/ui_lovelace_minimalist/manifest.json index 3a6b34c63..0aa0e891c 100644 --- a/custom_components/ui_lovelace_minimalist/manifest.json +++ b/custom_components/ui_lovelace_minimalist/manifest.json @@ -14,8 +14,8 @@ "iot_class": "calculated", "issue_tracker": "https://github.com/UI-Lovelace-Minimalist/UI/issues", "requirements": [ - "aiofiles==0.8.0", + "aiofiles>=0.8.0", "aiogithubapi>=22.2.4" ], - "version": "0.0.1" + "version": "v1.3.11" } From fbd12731c02ff90f5d03f1b9ce26bf914ada0eb6 Mon Sep 17 00:00:00 2001 From: Rick Stokkingreef Date: Mon, 9 Dec 2024 12:43:19 +0100 Subject: [PATCH 37/49] Update README.md --- README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/README.md b/README.md index 1691f05d7..331d27b60 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,18 @@ ![hacs installs](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Flauwbier.nl%2Fhacs%2Fui_lovelace_minimalist) ![Downloads](https://img.shields.io/github/downloads/UI-Lovelace-Minimalist/UI/total) +> [!IMPORTANT] +> Looking for New Maintainers! +> +> This project is in need of new maintainers! The current maintainers are no longer actively working on it, and without fresh leadership, we may be forced to shut down the project and its associated Discord server. +> +> If you're passionate about this project and would like to take over its development and community management, we’d love to hear from you! +> +> Join us on Discord to discuss further: [Thread Message](https://discord.com/channels/923363055444832296/928986459975876668/1314292139139534979) +> Or reach out on GitHub Discussions: [GitHub discussion](https://github.com/UI-Lovelace-Minimalist/UI/discussions/1560) +> +> Thank you for considering helping keep this project alive and thriving! 🙌 + It's kind of hard to explain what this is, so let's call it a "theme" (in quotation marks). But one thing is for sure, it is very nice! Taking the exceptional work of tben as a basis, this repository is aimed to ease installation and maintenance of his wonderful work. You can use this interpretation of a SmartHomeUI more or less like a theme in HomeAssistant. From ed68816029202f04b5a43ec9dcbbd5c40ec2e713 Mon Sep 17 00:00:00 2001 From: Rick Stokkingreef Date: Mon, 9 Dec 2024 12:43:43 +0100 Subject: [PATCH 38/49] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 331d27b60..1f9cab65f 100644 --- a/README.md +++ b/README.md @@ -12,8 +12,8 @@ > > If you're passionate about this project and would like to take over its development and community management, we’d love to hear from you! > -> Join us on Discord to discuss further: [Thread Message](https://discord.com/channels/923363055444832296/928986459975876668/1314292139139534979) -> Or reach out on GitHub Discussions: [GitHub discussion](https://github.com/UI-Lovelace-Minimalist/UI/discussions/1560) +> - Join us on Discord to discuss further: [Thread Message](https://discord.com/channels/923363055444832296/928986459975876668/1314292139139534979) +> - Or reach out on GitHub Discussions: [GitHub discussion](https://github.com/UI-Lovelace-Minimalist/UI/discussions/1560) > > Thank you for considering helping keep this project alive and thriving! 🙌 From 09b524e6d0a5adc2423401889f158e0307f3728c Mon Sep 17 00:00:00 2001 From: wilbiev Date: Sat, 14 Dec 2024 14:08:40 +0100 Subject: [PATCH 39/49] Changes minimal version HA to 2024.8 --- hacs.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hacs.json b/hacs.json index 02dd6ec15..81ea653f8 100644 --- a/hacs.json +++ b/hacs.json @@ -1,7 +1,7 @@ { "name": "UI Lovelace Minimalist", "render_readme": true, - "homeassistant": "2023.5.0", + "homeassistant": "2024.8.0", "zip_release": true, "filename": "ui_lovelace_minimalist.zip" } From e88617917c5f306ed5f09d4a69c0946ce332202a Mon Sep 17 00:00:00 2001 From: wilbiev Date: Sat, 14 Dec 2024 14:17:15 +0100 Subject: [PATCH 40/49] Changes minimal version HA to 2024.8 --- hacs.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hacs.json b/hacs.json index 81ea653f8..c09842e66 100644 --- a/hacs.json +++ b/hacs.json @@ -4,4 +4,4 @@ "homeassistant": "2024.8.0", "zip_release": true, "filename": "ui_lovelace_minimalist.zip" -} +} \ No newline at end of file From 942f9c11fb94314900ceafd6de5d1ba6c92e48e2 Mon Sep 17 00:00:00 2001 From: wilbiev Date: Sat, 14 Dec 2024 14:32:05 +0100 Subject: [PATCH 41/49] Changes minimal version HA to 2024.8 --- hacs.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hacs.json b/hacs.json index c09842e66..81ea653f8 100644 --- a/hacs.json +++ b/hacs.json @@ -4,4 +4,4 @@ "homeassistant": "2024.8.0", "zip_release": true, "filename": "ui_lovelace_minimalist.zip" -} \ No newline at end of file +} From 4e65c60147d30de79d35a30f0c8d476977f6df26 Mon Sep 17 00:00:00 2001 From: wilbiev Date: Sat, 21 Dec 2024 15:25:06 +0000 Subject: [PATCH 42/49] Fix pre-commit --- README.md | 8 ++++---- .../custom_card_sisimomo_printer.yaml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 1f9cab65f..9cfc8928f 100644 --- a/README.md +++ b/README.md @@ -7,14 +7,14 @@ > [!IMPORTANT] > Looking for New Maintainers! -> +> > This project is in need of new maintainers! The current maintainers are no longer actively working on it, and without fresh leadership, we may be forced to shut down the project and its associated Discord server. -> +> > If you're passionate about this project and would like to take over its development and community management, we’d love to hear from you! -> +> > - Join us on Discord to discuss further: [Thread Message](https://discord.com/channels/923363055444832296/928986459975876668/1314292139139534979) > - Or reach out on GitHub Discussions: [GitHub discussion](https://github.com/UI-Lovelace-Minimalist/UI/discussions/1560) -> +> > Thank you for considering helping keep this project alive and thriving! 🙌 It's kind of hard to explain what this is, so let's call it a "theme" (in quotation marks). But one thing is for sure, it is very nice! Taking the exceptional work of tben as a basis, this repository is aimed to ease installation and maintenance of his wonderful work. You can use this interpretation of a SmartHomeUI more or less like a theme in HomeAssistant. diff --git a/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml b/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml index efe166995..b80018dd8 100644 --- a/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml +++ b/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml @@ -192,7 +192,7 @@ custom_card_sisimomo_printer: filter: opacity(40%); font-size: medium; } - + /* Error CSS */ div#cartridges .error-container { text-align: left; From bc8361948b644610975ef8c9dd9aee0db2db7474 Mon Sep 17 00:00:00 2001 From: wilbiev Date: Sat, 21 Dec 2024 15:32:23 +0000 Subject: [PATCH 43/49] Restore deleted custom cards --- .../custom_card_bar_card.yaml | 69 +++++ .../custom_card_eraycetinay_lock/README.md | 116 +++++++++ .../custom_card_eraycetinay_lock.yaml | 115 ++++++++ .../languages/de.yaml | 11 + .../languages/en.yaml | 11 + .../languages/es.yaml | 11 + .../languages/pl.yaml | 11 + .../languages/sv.yaml | 11 + .../languages/tr.yaml | 11 + .../custom_card_irmajavi_speedtest.yaml | 245 ++++++++++++++++++ .../custom_card_mpse_printer.yaml | 220 ++++++++++++++++ .../custom_card_paddy_dwd_pollen.yaml | 69 +++++ .../custom_card_sisimomo_printer.yaml | 222 ++++++++++++++++ 13 files changed, 1122 insertions(+) create mode 100644 custom_cards/custom_card_bar_card/custom_card_bar_card.yaml create mode 100644 custom_cards/custom_card_eraycetinay_lock/README.md create mode 100644 custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml create mode 100644 custom_cards/custom_card_eraycetinay_lock/languages/de.yaml create mode 100644 custom_cards/custom_card_eraycetinay_lock/languages/en.yaml create mode 100644 custom_cards/custom_card_eraycetinay_lock/languages/es.yaml create mode 100644 custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml create mode 100644 custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml create mode 100644 custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml create mode 100644 custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml create mode 100644 custom_cards/custom_card_mpse_printer/custom_card_mpse_printer.yaml create mode 100644 custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml create mode 100644 custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml diff --git a/custom_cards/custom_card_bar_card/custom_card_bar_card.yaml b/custom_cards/custom_card_bar_card/custom_card_bar_card.yaml new file mode 100644 index 000000000..dcb4ca712 --- /dev/null +++ b/custom_cards/custom_card_bar_card/custom_card_bar_card.yaml @@ -0,0 +1,69 @@ +--- +custom_card_bar_card: + variables: + ulm_custom_card_bar_card_color: "var(--google-blue)" + ulm_custom_card_bar_card_min: "0" + ulm_custom_card_bar_card_max: "100" + triggers_update: "all" + styles: + grid: + - grid-template-areas: "'item1' 'item2'" + - grid-template-rows: "1fr" + card: + - border-radius: "var(--border-radius)" + - box-shadow: "var(--box-shadow)" + - padding: "0px" + custom_fields: + item1: + card: + type: "custom:button-card" + template: + - "icon_info" + - "card_generic" + variables: + ulm_card_generic_name: "[[[ return variables.ulm_custom_card_bar_card_name != '' ? variables.ulm_custom_card_bar_card_name : '' ]]]" + ulm_card_generic_icon: "[[[ return variables.ulm_custom_card_bar_card_icon != '' ? variables.ulm_custom_card_bar_card_icon : '' ]]]" + styles: + card: + - box-shadow: "none" + - border-radius: "var(--border-radius) var(--border-radius) 0px 0px" + - padding: "12px" + entity: "[[[ return variables.ulm_custom_card_bar_card_entity ]]]" + item2: + card: + type: "custom:bar-card" + entities: + - entity: "[[[ return variables.ulm_custom_card_bar_card_entity ]]]" + color: "[[[ return variables.ulm_custom_card_bar_card_color ]]]" + positions: + icon: "off" + indicator: "[[[ return variables.ulm_custom_card_bar_card_indicator == true ? 'inside' : 'off' ]]]" + minmax: "off" + title: "off" + value: "[[[ return variables.ulm_custom_card_bar_card_value == true ? 'inside' : 'off' ]]]" + name: "off" + min: "[[[ return variables.ulm_custom_card_bar_card_min ]]]" + max: "[[[ return variables.ulm_custom_card_bar_card_max ]]]" + style: |- + bar-card-currentbar { + border-radius: 0px !important; + right: 0; + } + bar-card-backgroundbar { + border-radius: 0px !important; + right: 0; + } + #states { + padding: 0; + height: 35px; + } + bar-card-background { + height: 35px !important; + } + bar-card-indicator { + left: 10px; + } + bar-card-value { + font-weight: bold; + font-size: 12px; + } diff --git a/custom_cards/custom_card_eraycetinay_lock/README.md b/custom_cards/custom_card_eraycetinay_lock/README.md new file mode 100644 index 000000000..777c75ac2 --- /dev/null +++ b/custom_cards/custom_card_eraycetinay_lock/README.md @@ -0,0 +1,116 @@ +--- +title: Lock Card Custom-card +hide: + - toc +--- + + + +# Custom-card "Lock" + +This is a `custom-card` that works in switch logic with a `lock` entity. Card structure uses `lock`, `unlock` (optional `open`) actions and `lock`,`unlock`,`locking`,`unlocking`, `jammed` states. + +![Generic](../../docs/assets/img/custom_card_eraycetinay_lock.png) + +## Credits + +Author: eraycetinay - 2022 +Version: 0.0.3 + +## Changelog + +
    + 0.0.3 +
      +

      Contributor: Sisimomo - 2022-06-14

      +
    • Now can displays a warning when the battery is low.
    • +
    • Now can displays a warning when the door is lock but the door is still open.
    • +
    • Code refactoring to fit framework structure.
    • +
    • Documentation clean up.
    • +
    • Code clean up.
    • +
    +
    +
    + 0.0.2 + Added option to only use lock.open +
    +
    + 0.0.1 + Initial release +
    + +## Usage + +```yaml +- type: "custom:button-card" + entity: lock.door_lock + template: "custom_card_eraycetinay_lock" + name: "Door Lock" + variables: + ulm_custom_card_eraycetinay_lock_tap_control: true + ulm_custom_card_eraycetinay_lock_battery_level: sensor.door_battery + ulm_custom_card_eraycetinay_lock_door_open: binary_sensor.door_open + triggers_update: + - "sensor.door_battery" + - "binary_sensor.door_open" +``` + +## Variables + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    VariableExampleDefaultRequiredExplanation
    ulm_custom_card_eraycetinay_lock_tap_controltruefalsenoLock/Unlock on tap action
    ulm_custom_card_eraycetinay_lock_only_opentruefalsenoOnly use the card to open the door (always sends lock.open on tap)
    ulm_custom_card_eraycetinay_lock_battery_levelsensor.door_batterynoDisplays a warning when the battery is low.
    ulm_custom_card_eraycetinay_lock_battery_warning2520noAt what battery percentage should the low battery warning appear.
    ulm_custom_card_eraycetinay_lock_battery_warning_low105noAt what battery percentage should the very low battery warning appear.
    ulm_custom_card_eraycetinay_lock_door_openbinary_sensor.door_opennoDisplays a warning when the door is lock but the door is still open.
    + +??? note "Template Code" + + ```yaml title="custom_card_eraycetinay_lock.yaml" + --8<-- "custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml" + ``` diff --git a/custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml b/custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml new file mode 100644 index 000000000..4c2447996 --- /dev/null +++ b/custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml @@ -0,0 +1,115 @@ +--- +custom_card_eraycetinay_lock: + template: + - "icon_info_bg" + - "ulm_translation_engine" + - "custom_card_eraycetinay_lock_language_variables" + variables: + ulm_custom_card_eraycetinay_lock_battery_warning: 20 + ulm_custom_card_eraycetinay_lock_battery_warning_low: 5 + tap_action: + action: | + [[[ + return variables.ulm_custom_card_eraycetinay_lock_tap_control ? "call-service" : "more-info"; + ]]] + # only related with call-service action + service: | + [[[ + if(variables.ulm_custom_card_eraycetinay_lock_tap_control){ + if(variables.ulm_custom_card_eraycetinay_lock_open){ + return "lock.open"; + } else { + if (entity.state == "locked"){ + return "lock.unlock"; + } else if (entity.state == "unlocked"){ + return "lock.lock"; + } + } + } + ]]] + # only related with call-service action + service_data: + entity_id: | + [[[ return entity.entity_id; ]]] + show_label: true + show_name: true + triggers_update: + - "[[[ return entity.entity_id; ]]]" + label: "[[[ return variables.ulm_translation_state ]]]" + state: + - operator: "template" + value: | + [[[ return entity.state == ("unlocked" || "open" || "opened"); ]]] + styles: + icon: + - color: "rgba(var(--color-yellow),1)" + img_cell: + - background-color: "rgba(var(--color-yellow), 0.2)" + - operator: "template" + value: | + [[[ return entity.state == "locked" || "closed"; ]]] + styles: + icon: + - color: "rgba(var(--color-green),1)" + img_cell: + - background-color: "rgba(var(--color-green), 0.2)" + styles: + icon: + - color: "rgba(var(--color-theme),0.2)" + img_cell: + - background-color: "rgba(var(--color-theme),0.05)" + - border-radius: "50%" + - place-self: "center" + - width: "42px" + - height: "42px" + grid: + - position: "relative" + custom_fields: + notification_locked_and_opened: + - border-radius: "50%" + - position: "absolute" + - left: "28px" + - top: "-6px" + - height: "16px" + - width: "16px" + - border: "2px solid var(--card-background-color)" + - font-size: "12px" + - line-height: "14px" + - background-color: "[[[ return 'rgba(var(--color-red),1)'; ]]]" + notification_battery: + - border-radius: "50%" + - position: "absolute" + - left: "-6px" + - top: "-6px" + - height: "16px" + - width: "16px" + - border: "2px solid var(--card-background-color)" + - font-size: "12px" + - line-height: "14px" + - background-color: | + [[[ + if (variables.ulm_custom_card_eraycetinay_lock_battery_level !== undefined) { + if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state <= variables.ulm_custom_card_eraycetinay_lock_battery_warning_low) { + return "rgba(var(--color-red),1)"; + } else if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state <= variables.ulm_custom_card_eraycetinay_lock_battery_warning) { + return "rgba(var(--color-yellow),1)"; + } + } + ]]] + custom_fields: + notification_locked_and_opened: > + [[[ + if (variables.ulm_custom_card_eraycetinay_lock_door_open !== undefined && (entity.state === "locked" && states[variables.ulm_custom_card_eraycetinay_lock_door_open].state === "on")) { + return ``; + } + ]]] + notification_battery: > + [[[ + if (variables.ulm_custom_card_eraycetinay_lock_battery_level !== undefined) { + if (variables.ulm_custom_card_eraycetinay_lock_battery_warning >= states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state) { + return ` + + `; + } + } + ]]] diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/de.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/de.yaml new file mode 100644 index 000000000..1305d95eb --- /dev/null +++ b/custom_cards/custom_card_eraycetinay_lock/languages/de.yaml @@ -0,0 +1,11 @@ +--- +custom_card_eraycetinay_lock_language_variables: + variables: + custom_card_eraycetinay_lock_locked: "verriegelt" + custom_card_eraycetinay_lock_unlocked: "entriegelt" + custom_card_eraycetinay_lock_locking: "verriegeln" + custom_card_eraycetinay_lock_unlocking: "entriegeln" + custom_card_eraycetinay_lock_unavailable: "nicht verfügbar" + custom_card_eraycetinay_lock_jammed: "blockiert" + custom_card_eraycetinay_lock_locked_and_opened: "Die Tür ist verschlossen, aber noch offen." + custom_card_eraycetinay_lock_battery_is_at: "Batterie ist an" diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/en.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/en.yaml new file mode 100644 index 000000000..f34a60515 --- /dev/null +++ b/custom_cards/custom_card_eraycetinay_lock/languages/en.yaml @@ -0,0 +1,11 @@ +--- +custom_card_eraycetinay_lock_language_variables: + variables: + custom_card_eraycetinay_lock_locked: "locked" + custom_card_eraycetinay_lock_unlocked: "unlocked" + custom_card_eraycetinay_lock_locking: "locking" + custom_card_eraycetinay_lock_unlocking: "unlocking" + custom_card_eraycetinay_lock_unavailable: "unavailable" + custom_card_eraycetinay_lock_jammed: "jammed" + custom_card_eraycetinay_lock_locked_and_opened: "The door is locked but still open." + custom_card_eraycetinay_lock_battery_is_at: "Battery is at" diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/es.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/es.yaml new file mode 100644 index 000000000..637d3c74c --- /dev/null +++ b/custom_cards/custom_card_eraycetinay_lock/languages/es.yaml @@ -0,0 +1,11 @@ +--- +custom_card_eraycetinay_lock_language_variables: + variables: + custom_card_eraycetinay_lock_locked: "bloqueado" + custom_card_eraycetinay_lock_unlocked: "desbloqueado" + custom_card_eraycetinay_lock_locking: "bloqueando" + custom_card_eraycetinay_lock_unlocking: "desbloqueando" + custom_card_eraycetinay_lock_unavailable: "no disponible" + custom_card_eraycetinay_lock_jammed: "apretada" + custom_card_eraycetinay_lock_locked_and_opened: "La puerta está cerrada pero aún abierta." + custom_card_eraycetinay_lock_battery_is_at: "la batería está en" diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml new file mode 100644 index 000000000..b00d13270 --- /dev/null +++ b/custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml @@ -0,0 +1,11 @@ +--- +custom_card_eraycetinay_lock_language_variables: + variables: + custom_card_eraycetinay_lock_locked: "zamknięty" + custom_card_eraycetinay_lock_unlocked: "otwarty" + custom_card_eraycetinay_lock_locking: "zamykanie" + custom_card_eraycetinay_lock_unlocking: "otwieranie" + custom_card_eraycetinay_lock_unavailable: "niedostępny" + custom_card_eraycetinay_lock_jammed: "zacięty" + custom_card_eraycetinay_lock_locked_and_opened: "Drzwi są zamknięte, ale nadal otwarte." + custom_card_eraycetinay_lock_battery_is_at: "Bateria jest na" diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml new file mode 100644 index 000000000..707eab945 --- /dev/null +++ b/custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml @@ -0,0 +1,11 @@ +--- +custom_card_eraycetinay_lock_language_variables: + variables: + custom_card_eraycetinay_lock_locked: "låst" + custom_card_eraycetinay_lock_unlocked: "olåst" + custom_card_eraycetinay_lock_locking: "låser" + custom_card_eraycetinay_lock_unlocking: "låser upp" + custom_card_eraycetinay_lock_unavailable: "otillgängligt" + custom_card_eraycetinay_lock_jammed: "fastnat" + custom_card_eraycetinay_lock_locked_and_opened: "Dörren är låst men fortfarande öppen." + custom_card_eraycetinay_lock_battery_is_at: "Batterinivån är" diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml new file mode 100644 index 000000000..e612ab5f2 --- /dev/null +++ b/custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml @@ -0,0 +1,11 @@ +--- +custom_card_eraycetinay_lock_language_variables: + variables: + custom_card_eraycetinay_lock_locked: "kilitli" + custom_card_eraycetinay_lock_unlocked: "kilitli değil" + custom_card_eraycetinay_lock_locking: "kilitleniyor" + custom_card_eraycetinay_lock_unlocking: "kilit açılıyor" + custom_card_eraycetinay_lock_unavailable: "müsait değil" + custom_card_eraycetinay_lock_jammed: "sıkışmış" + custom_card_eraycetinay_lock_locked_and_opened: "Kapı kilitli ama hala açık" + custom_card_eraycetinay_lock_battery_is_at: "pil" 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..d4a204be1 --- /dev/null +++ b/custom_cards/custom_card_irmajavi_speedtest/custom_card_irmajavi_speedtest.yaml @@ -0,0 +1,245 @@ +--- +custom_card_irmajavi_speedtest: + triggers_update: "all" + show_name: false + show_label: false + template: + - "ulm_custom_card_irmajavi_speedtest_language_variables" + 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: "homeassistant.update_entity" + service_data: + entity_id: + - "[[[ return variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity]]]" + - "[[[ return variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity]]]" + - "[[[ return variables.ulm_custom_card_irmajavi_speedtest_ping_entity]]]" + color: "var(--google-grey)" + show_icon: true + show_label: false + show_name: true + styles: + custom_fields: + item1: + - justify-self: "end" + - margin-top: "-23px" + - margin-right: "3px" + 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" + - margin-left: "40px" + - margin-top: "3px" + 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: "[[[ return variables.ulm_custom_card_irmajavi_speedtest_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: "[[[ return variables.ulm_custom_card_irmajavi_speedtest_download ]]]" + 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: "[[[ return variables.ulm_custom_card_irmajavi_speedtest_upload ]]]" + 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_mpse_printer/custom_card_mpse_printer.yaml b/custom_cards/custom_card_mpse_printer/custom_card_mpse_printer.yaml new file mode 100644 index 000000000..3cf1542f1 --- /dev/null +++ b/custom_cards/custom_card_mpse_printer/custom_card_mpse_printer.yaml @@ -0,0 +1,220 @@ +--- +custom_card_mpse_printer: + show_icon: false + show_name: false + show_label: false + styles: + card: + - border-radius: "20px" + - box-shadow: "var(--box-shadow)" + - padding: "0px" + grid: + - grid-template-areas: "'item1' 'item2' 'item3' 'item4' 'item5'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content" + custom_fields: + item1: + card: + entity: "[[[ return entity.entity_id ]]]" + name: "[[[ return variables.ulm_card_printer_name ]]]" + label: >- + [[[ + return entity.state; + ]]] + template: + - "icon_info" + - "custom_card_mpse_printer_blue" + styles: + card: + - padding: "12px" + type: "custom:button-card" + item2: + card: + type: "custom:bar-card" + height: "20px" + positions: + name: off + value: "inside" + icon: off + indicator: off + minmax: off + color: "black" + entities: + - entity: "[[[ return variables.ulm_card_printer_black_name ]]]" + style: | + bar-card-currentbar{ + border: 0.01rem solid rgba(var(--color-theme),.4); + } + bar-card-backgroundbar{ + display: none; + } + bar-card-name{ + width: 2rem; + margin-right: 40px !important; + } + bar-card-value{ + width: 2rem; + margin-left: 40px !important; + justify-content: center; + display: flex; + color: grey; + } + bar-card-background{ + margin: 4px 0 4px 0 !important; + text-align: initial; + } + ha-card{ + --bar-card-border-radius: 5px; + border-radius: 0px; + box-shadow: none; + } + #states{ + padding: 0 16px; + } + item3: + card: + type: "custom:bar-card" + height: "20px" + positions: + name: off + value: "inside" + icon: off + indicator: off + minmax: off + color: "rgb(250,255,0)" + entities: + - entity: "[[[ return variables.ulm_card_printer_yellow_name ]]]" + style: | + bar-card-currentbar{ + border: 0.01rem solid rgba(var(--color-theme),.4); + } + bar-card-backgroundbar{ + display: none; + } + bar-card-name{ + width: 2rem; + margin-right: 40px !important; + } + bar-card-value{ + width: 2rem; + margin-left: 40px !important; + justify-content: center; + display: flex; + color: grey; + } + bar-card-background{ + margin: 4px 0 4px 0 !important; + text-align: initial; + } + ha-card{ + --bar-card-border-radius: 5px; + border-radius: 0px; + box-shadow: none; + } + #states{ + padding: 0 16px; + } + item4: + card: + type: "custom:bar-card" + height: "20px" + positions: + name: off + value: "inside" + icon: off + indicator: off + minmax: off + color: "rgb(248,0,255)" + entities: + - entity: "[[[ return variables.ulm_card_printer_magenta_name ]]]" + style: | + bar-card-currentbar{ + border: 0.01rem solid rgba(var(--color-theme),.4); + } + bar-card-backgroundbar{ + display: none; + } + bar-card-name{ + width: 2rem; + margin-right: 40px !important; + } + bar-card-value{ + width: 2rem; + margin-left: 40px !important; + justify-content: center; + display: flex; + color: grey; + } + bar-card-background{ + margin: 4px 0 4px 0 !important; + text-align: initial; + } + ha-card{ + --bar-card-border-radius: 5px; + border-radius: 0px; + box-shadow: none; + } + #states{ + padding: 0 16px; + } + item5: + card: + type: "custom:bar-card" + height: "20px" + positions: + name: off + value: "inside" + icon: off + indicator: off + minmax: off + color: "rgb(0,255,255)" + entities: + - entity: "[[[ return variables.ulm_card_printer_cyan_name ]]]" + style: | + bar-card-currentbar{ + border: 0.01rem solid rgba(var(--color-theme),.4); + } + bar-card-backgroundbar{ + display: none; + } + bar-card-name{ + width: 2rem; + margin-right: 40px !important; + } + bar-card-value{ + width: 2rem; + margin-left: 40px !important; + justify-content: center; + display: flex; + color: grey; + } + bar-card-background{ + margin: 4px 0 4px 0 !important; + text-align: initial; + } + ha-card{ + --bar-card-border-radius: 5px; + border-radius: 0px; + box-shadow: none; + } + #states{ + padding: 0 16px 16px 16px; + } +custom_card_mpse_printer_blue: + 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)" + card: + - background-color: "rgba(var(--color-background-blue), var(--opacity-bg))" + operator: "template" + value: > + [[[ + return entity.state!="idle" ? true : false + ]]] diff --git a/custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml b/custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml new file mode 100644 index 000000000..1fee063b8 --- /dev/null +++ b/custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml @@ -0,0 +1,69 @@ +--- +custom_card_paddy_dwd_pollen: + template: + - "card_generic_swap" + - "custom_card_paddy_dwd_pollen_language_variables" + variables: + ulm_card_generic_swap_name: "[[[ return variables.ulm_custom_card_paddy_dwd_pollen_name; ]]]" + ulm_card_generic_swap_icon: "[[[ return variables.ulm_custom_card_paddy_dwd_pollen_icon; ]]]" + custom_fields: + item1: + card: + type: "custom:button-card" + template: + - "icon_more_info" + custom_fields: + item1: + card: + type: "custom:button-card" + entity: "[[[ return entity.entity_id ]]]" + item2: + card: + type: "custom:button-card" + entity: "[[[ return entity.entity_id ]]]" + label: > + [[[ + if (entity.state == "6"){ + return variables.custom_card_paddy_dwd_pollen_6; + } else if (entity.state == "5"){ + return variables.custom_card_paddy_dwd_pollen_5; + } else if (entity.state == "4"){ + return variables.custom_card_paddy_dwd_pollen_4; + } else if (entity.state == "3"){ + return variables.custom_card_paddy_dwd_pollen_3; + } else if (entity.state == "2"){ + return variables.custom_card_paddy_dwd_pollen_2; + } else if (entity.state == "1"){ + return variables.custom_card_paddy_dwd_pollen_1; + } + return variables.custom_card_paddy_dwd_pollen_none; + ]]] + state: + - value: "6" + styles: + img_cell: + - background-color: "rgba(190,0,33,1)" + - value: "5" + styles: + img_cell: + - background-color: "rgba(240,56,26,1)" + - value: "4" + styles: + img_cell: + - background-color: "rgba(254,154,36,1)" + - value: "3" + styles: + img_cell: + - background-color: "rgba(254,197,77,1)" + - value: "2" + styles: + img_cell: + - background-color: "rgba(254,228,156,1)" + - value: "1" + styles: + img_cell: + - background-color: "rgba(219,250,200,1)" + - value: "0" + styles: + icon: + - color: "rgba(var(--color-theme),0.2)" diff --git a/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml b/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml new file mode 100644 index 000000000..30315c9f4 --- /dev/null +++ b/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml @@ -0,0 +1,222 @@ +--- +custom_card_sisimomo_printer: + template: + - "ulm_translation_engine" + - "ulm_language_variables" + variables: + printer_name: "[[[ entity.attributes.friendly_name; ]]]" + ulm_idle: "idle" + show_icon: false + show_label: false + show_name: false + triggers_update: "all" + tap_action: + action: "" + styles: + grid: + - grid-template-areas: "'printer_state' 'cartridges'" + - grid-template-columns: "1fr" + - grid-template-rows: "min-content" + card: + - border-radius: "var(--border-radius)" + - box-shadow: "var(--box-shadow)" + - padding: "12px" + - "--mdc-ripple-press-opacity": 0 + - cursor: "default" + custom_fields: + printer_state: + card: + type: "custom:button-card" + template: | + [[[ + return ( + entity.state.toLowerCase() != variables.ulm_idle.toLowerCase() + && entity.state.toLowerCase() != variables.ulm_translation_unavailable.toLowerCase() + ? [ "icon_info", "blue_no_state" ] : [ "icon_info" ] + ); + ]]] + tap_action: + action: "more-info" + label: "[[[ return entity.state; ]]]" + name: "[[[ return variables.printer_name; ]]]" + entity: "[[[ return entity.entity_id; ]]]" + styles: + card: + - padding: "0" + - "--mdc-ripple-press-opacity": 0.12 + - cursor: "pointer" + label: + - text-transform: "capitalize" + cartridges: | + [[[ + // Source: https://stackoverflow.com/a/56266358 + const isColor = (strColor) => { + const s = new Option().style; + s.color = strColor; + return s.color !== ''; + } + + let toner_info_available = true; + if (variables.cartridges !== undefined ? Array.isArray(variables.cartridges) && variables.cartridges.length > 0 : false) { + let errorArray = []; + variables.cartridges.forEach(cartridge => { + let index = variables.cartridges.indexOf(cartridge); + let valid_cartridge_types = ['unicolor', 'tricolor'] + + // Confirm that the label is provided. + if (cartridge.label === undefined) { + errorArray.push(`cartridges.[${index}].label: You must provide a value.`); + } + + // Confirm that a valid cartridge type is provided, if not default to 'unicolor' + // for backwards compatibility with older configuration files + if (cartridge.type === undefined) { + cartridge.type = 'unicolor' + } else if (!valid_cartridge_types.includes(cartridge.type)) { + errorArray.push(`cartridges.[${index}].type: You must provide a valid cartridge type`); + } + + // Confirm that the color is provided and is valid color css. + if (cartridge.color !== undefined) { + if (cartridge.type === 'unicolor') { + if (typeof cartridge.color === 'string' || cartridge.color instanceof String ? !isColor(cartridge.color) : false) { + errorArray.push(`cartridges.[${index}].color: You must provide a single valid CSS color value.`); + } + } else if (Array.isArray(cartridge.color) && cartridge.color.length === 3 ? cartridge.type === 'tricolor' : false) { + cartridge.color.forEach(color => { + let col_index = cartridge.color.indexOf(color); + if (!isColor(String(color))) { + errorArray.push(`cartridges.[${index}].color.[${col_index}]: You must provide a single valid CSS color value.`); + } + }); + } else { + errorArray.push(`cartridges.[${index}].color: Invalid combination of colour and type.`); + } + } else { + errorArray.push(`cartridges.[${index}].color: You must provide a value.`); + } + + // Confirm that the entity_id is provided, is a valid entity_id, a integer and a value between 0 and 100 inclusively. + if (cartridge.entity_id === undefined) { + errorArray.push(`cartridges.[${index}].entity_id: You must provide a value.`); + } else if (states[cartridge.entity_id] === undefined) { + errorArray.push(`cartridges.[${index}].entity_id: You must provide a existing entity_id.`); + } else if (String(states[cartridge.entity_id].state).toLowerCase() === String(variables.ulm_translation_unavailable).toLowerCase()) { + toner_info_available = false; + } else if (isNaN(states[cartridge.entity_id].state) || typeof states[cartridge.entity_id].state === "boolean") { + errorArray.push(`cartridges.[${index}].entity_id: You must provide a entity representing an integer.`); + } else if (states[cartridge.entity_id].state < 0 || states[cartridge.entity_id].state > 100) { + errorArray.push(`cartridges.[${index}].entity_id: You must provide a entity representing an integer between 0 and 100 inclusively.`); + } + }); + if (errorArray.length > 0) { + return `
    + Configuration Error: +
      + ${errorArray.map(error => `
    • ${error}
    • `).join("")} +
    +
    `; + } + + if (toner_info_available) { + return '
    ' + + variables.cartridges.map(cartridge => { + if (cartridge.type === "unicolor") { + cartridge.bar_style = ` + background-color: ${cartridge.color}; + width: ${states[cartridge.entity_id].state}%; + `; + } else if (cartridge.type === "tricolor") { + cartridge.bar_style = ` + background: linear-gradient( + 180deg, + ${cartridge.color[0]}, + ${cartridge.color[0]} 33%, + ${cartridge.color[1]} 33%, + ${cartridge.color[1]} 66%, + ${cartridge.color[2]} 66%, + ${cartridge.color[2]} + ); + width: ${states[cartridge.entity_id].state}%; + `; + } + + // Removes unnecessary whitespace from inline CSS + cartridge.bar_style = cartridge.bar_style.replace(/\s{2,}/g, '') + return ` +
    ${cartridge.label}
    +
    +
    +
    +
    ${states[cartridge.entity_id].state}%
    + `; + }).join("") + + '
    '; + } else { + return ` +
    + Toner Information Unavailable +
    + `; + } + } else { + + } + ]]] + style: | + /* Cartridge CSS */ + div#cartridges .wrapper { + display: grid; + grid-template-columns: auto 1fr auto; + grid-gap: 1rem; + padding: 12px 8px 8px 8px; + } + div#cartridges .wrapper > *:nth-child(3n-2), .wrapper > *:nth-child(3n) { + place-self: center start; + } + div#cartridges .wrapper > .label { + filter: opacity(70%); + font-size: medium; + } + div#cartridges .wrapper > .container-bar { + position: relative; + border-radius: 4px; + border: 0.01rem solid rgba(var(--color-theme),.35); + } + div#cartridges .wrapper > .container-bar .bar { + height: 20px; + border-radius: 4px; + } + div#cartridges .wrapper > .state { + filter: opacity(40%); + font-size: medium; + } + + /* Error CSS */ + div#cartridges .error-container { + text-align: left; + font-size: 75%; + font-family: var(--code-font-family, monospace); + padding: 10px; + background-color: rgba(219, 68, 55, 0.75); + margin-top:10px; + border-radius:8px; + } + div#cartridges .error-container ul { + list-style: none; + padding: 0; + margin: 0; + overflow-wrap: break-word; + word-wrap: break-word; + white-space: normal !important; + } + div#cartridges .error-container ul li { + margin-top: 0.5em; + } + div#cartridges .info-unavailable { + padding: 1em; + white-space: normal; + margin-top:10px; + border-radius:8px; + opacity: 60%; + } From b27252cc036d5b7d4f739a5c76a1a224a910248a Mon Sep 17 00:00:00 2001 From: wilbiev Date: Sat, 21 Dec 2024 17:18:44 +0000 Subject: [PATCH 44/49] Fix bug welcome_scenes --- .../card_templates/cards/card_welcome_scenes.yaml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 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 b1243551c..9f5a5a5a5 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 @@ -391,6 +391,15 @@ card_scenes_pill_welcome: return "homeassistant.toggle" ]]] target: | + [[[ + var obj; + if(typeof(entity) !== 'undefined' && entity !== undefined){ + if( entity?.entity_id.startsWith("input_select.") ) + obj = { entity_id: entity?.entity_id }; + return obj; + } + ]]] + data: | [[[ if (variables.service_data){ return variables.service_data @@ -398,9 +407,7 @@ card_scenes_pill_welcome: var obj; if(typeof(entity) !== 'undefined' && entity !== undefined){ if( entity?.entity_id.startsWith("input_select.") ) - obj = { entity_id: entity?.entity_id, option: variables.state }; - else - obj = { entity_id: entity?.entity_id }; + obj = { option: variables.state }; return obj; } ]]] From ef9c76bb10c78b6f98e522da79531b5abcce2dc0 Mon Sep 17 00:00:00 2001 From: wilbiev Date: Sat, 21 Dec 2024 17:43:14 +0000 Subject: [PATCH 45/49] Sync updates release --- .../custom_card_bar_card.yaml | 47 ++-- .../languages/hu.yaml | 11 + .../custom_card_eraycetinay_lock/README.md | 14 + .../custom_card_eraycetinay_lock.yaml | 32 ++- .../languages/de.yaml | 17 +- .../languages/en.yaml | 17 +- .../languages/es.yaml | 17 +- .../languages/pl.yaml | 17 +- .../languages/sv.yaml | 17 +- .../languages/tr.yaml | 17 +- .../custom_card_irmajavi_speedtest.yaml | 18 +- .../custom_card_mpse_printer.yaml | 244 +++++++++--------- .../custom_card_paddy_dwd_pollen.yaml | 42 +-- .../custom_card_sisimomo_printer.yaml | 113 ++++---- 14 files changed, 336 insertions(+), 287 deletions(-) create mode 100644 custom_cards/custom_card_eraycetinay_elapsed_time/languages/hu.yaml diff --git a/custom_cards/custom_card_bar_card/custom_card_bar_card.yaml b/custom_cards/custom_card_bar_card/custom_card_bar_card.yaml index dcb4ca712..58dd0b13d 100644 --- a/custom_cards/custom_card_bar_card/custom_card_bar_card.yaml +++ b/custom_cards/custom_card_bar_card/custom_card_bar_card.yaml @@ -44,26 +44,27 @@ custom_card_bar_card: name: "off" min: "[[[ return variables.ulm_custom_card_bar_card_min ]]]" max: "[[[ return variables.ulm_custom_card_bar_card_max ]]]" - style: |- - bar-card-currentbar { - border-radius: 0px !important; - right: 0; - } - bar-card-backgroundbar { - border-radius: 0px !important; - right: 0; - } - #states { - padding: 0; - height: 35px; - } - bar-card-background { - height: 35px !important; - } - bar-card-indicator { - left: 10px; - } - bar-card-value { - font-weight: bold; - font-size: 12px; - } + card_mod: + style: |- + bar-card-currentbar { + border-radius: 0px !important; + right: 0; + } + bar-card-backgroundbar { + border-radius: 0px !important; + right: 0; + } + #states { + padding: 0; + height: 35px; + } + bar-card-background { + height: 35px !important; + } + bar-card-indicator { + left: 10px; + } + bar-card-value { + font-weight: bold; + font-size: 12px; + } diff --git a/custom_cards/custom_card_eraycetinay_elapsed_time/languages/hu.yaml b/custom_cards/custom_card_eraycetinay_elapsed_time/languages/hu.yaml new file mode 100644 index 000000000..848b525aa --- /dev/null +++ b/custom_cards/custom_card_eraycetinay_elapsed_time/languages/hu.yaml @@ -0,0 +1,11 @@ +--- +ulm_custom_card_eraycetinay_elapsed_time_language_variables: + variables: + custom_card_eraycetinay_elapsed_time_day: "nappal" + custom_card_eraycetinay_elapsed_time_days: "nappal" + custom_card_eraycetinay_elapsed_time_hour: "órával" + custom_card_eraycetinay_elapsed_time_hours: "órával" + custom_card_eraycetinay_elapsed_time_minute: "perccel" + custom_card_eraycetinay_elapsed_time_minutes: "perccel" + custom_card_eraycetinay_elapsed_time_ago: "ezelőtt" + custom_card_eraycetinay_elapsed_time_justnow: "éppen most" diff --git a/custom_cards/custom_card_eraycetinay_lock/README.md b/custom_cards/custom_card_eraycetinay_lock/README.md index 777c75ac2..9b3bb9e06 100644 --- a/custom_cards/custom_card_eraycetinay_lock/README.md +++ b/custom_cards/custom_card_eraycetinay_lock/README.md @@ -107,6 +107,20 @@ Version: 0.0.3 no Displays a warning when the door is lock but the door is still open. + + ulm_custom_card_eraycetinay_lock_battery_sensor_binary + true + false + no + Set to true if using a binary battery sensor. Will ignore battery_warning percentage settings + + + ulm_custom_card_eraycetinay_lock_battery_sensor_binary_low_state + off + on + no + Set whether the binary sensor turns to on or off when in low state + ??? note "Template Code" diff --git a/custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml b/custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml index 4c2447996..8a20e4b99 100644 --- a/custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml @@ -7,6 +7,8 @@ custom_card_eraycetinay_lock: variables: ulm_custom_card_eraycetinay_lock_battery_warning: 20 ulm_custom_card_eraycetinay_lock_battery_warning_low: 5 + ulm_custom_card_eraycetinay_lock_battery_sensor_binary: false + ulm_custom_card_eraycetinay_lock_battery_sensor_binary_low_state: "on" tap_action: action: | [[[ @@ -89,10 +91,16 @@ custom_card_eraycetinay_lock: - background-color: | [[[ if (variables.ulm_custom_card_eraycetinay_lock_battery_level !== undefined) { - if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state <= variables.ulm_custom_card_eraycetinay_lock_battery_warning_low) { - return "rgba(var(--color-red),1)"; - } else if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state <= variables.ulm_custom_card_eraycetinay_lock_battery_warning) { - return "rgba(var(--color-yellow),1)"; + if (variables.ulm_custom_card_eraycetinay_lock_battery_sensor_binary) { + if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state == variables.ulm_custom_card_eraycetinay_lock_battery_sensor_binary_low_state) { + return "rgba(var(--color-red),1)"; + } + } else { + if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state <= variables.ulm_custom_card_eraycetinay_lock_battery_warning_low) { + return "rgba(var(--color-red),1)"; + } else if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state <= variables.ulm_custom_card_eraycetinay_lock_battery_warning) { + return "rgba(var(--color-yellow),1)"; + } } } ]]] @@ -106,10 +114,18 @@ custom_card_eraycetinay_lock: notification_battery: > [[[ if (variables.ulm_custom_card_eraycetinay_lock_battery_level !== undefined) { - if (variables.ulm_custom_card_eraycetinay_lock_battery_warning >= states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state) { - return ` - - `; + if (variables.ulm_custom_card_eraycetinay_lock_battery_sensor_binary) { + if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state == variables.ulm_custom_card_eraycetinay_lock_battery_sensor_binary_low_state) { + return ` + + `; + } + } else { + if (variables.ulm_custom_card_eraycetinay_lock_battery_warning >= states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state) { + return ` + + `; + } } } ]]] diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/de.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/de.yaml index 1305d95eb..d97a28f11 100644 --- a/custom_cards/custom_card_eraycetinay_lock/languages/de.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/languages/de.yaml @@ -1,11 +1,12 @@ --- custom_card_eraycetinay_lock_language_variables: variables: - custom_card_eraycetinay_lock_locked: "verriegelt" - custom_card_eraycetinay_lock_unlocked: "entriegelt" - custom_card_eraycetinay_lock_locking: "verriegeln" - custom_card_eraycetinay_lock_unlocking: "entriegeln" - custom_card_eraycetinay_lock_unavailable: "nicht verfügbar" - custom_card_eraycetinay_lock_jammed: "blockiert" - custom_card_eraycetinay_lock_locked_and_opened: "Die Tür ist verschlossen, aber noch offen." - custom_card_eraycetinay_lock_battery_is_at: "Batterie ist an" + ulm_custom_card_eraycetinay_lock_locked: "verriegelt" + ulm_custom_card_eraycetinay_lock_unlocked: "entriegelt" + ulm_custom_card_eraycetinay_lock_locking: "verriegeln" + ulm_custom_card_eraycetinay_lock_unlocking: "entriegeln" + ulm_custom_card_eraycetinay_lock_unavailable: "nicht verfügbar" + ulm_custom_card_eraycetinay_lock_jammed: "blockiert" + ulm_custom_card_eraycetinay_lock_locked_and_opened: "Die Tür ist verschlossen, aber noch offen." + ulm_custom_card_eraycetinay_lock_battery_is_at: "Batterie ist an" + ulm_custom_card_eraycetinay_lock_battery_is_low: "Batterie schwach" diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/en.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/en.yaml index f34a60515..81579b70b 100644 --- a/custom_cards/custom_card_eraycetinay_lock/languages/en.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/languages/en.yaml @@ -1,11 +1,12 @@ --- custom_card_eraycetinay_lock_language_variables: variables: - custom_card_eraycetinay_lock_locked: "locked" - custom_card_eraycetinay_lock_unlocked: "unlocked" - custom_card_eraycetinay_lock_locking: "locking" - custom_card_eraycetinay_lock_unlocking: "unlocking" - custom_card_eraycetinay_lock_unavailable: "unavailable" - custom_card_eraycetinay_lock_jammed: "jammed" - custom_card_eraycetinay_lock_locked_and_opened: "The door is locked but still open." - custom_card_eraycetinay_lock_battery_is_at: "Battery is at" + ulm_custom_card_eraycetinay_lock_locked: "locked" + ulm_custom_card_eraycetinay_lock_unlocked: "unlocked" + ulm_custom_card_eraycetinay_lock_locking: "locking" + ulm_custom_card_eraycetinay_lock_unlocking: "unlocking" + ulm_custom_card_eraycetinay_lock_unavailable: "unavailable" + ulm_custom_card_eraycetinay_lock_jammed: "jammed" + ulm_custom_card_eraycetinay_lock_locked_and_opened: "The door is locked but still open." + ulm_custom_card_eraycetinay_lock_battery_is_at: "Battery is at" + ulm_custom_card_eraycetinay_lock_battery_is_low: "Battery is low" diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/es.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/es.yaml index 637d3c74c..3281e2ee1 100644 --- a/custom_cards/custom_card_eraycetinay_lock/languages/es.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/languages/es.yaml @@ -1,11 +1,12 @@ --- custom_card_eraycetinay_lock_language_variables: variables: - custom_card_eraycetinay_lock_locked: "bloqueado" - custom_card_eraycetinay_lock_unlocked: "desbloqueado" - custom_card_eraycetinay_lock_locking: "bloqueando" - custom_card_eraycetinay_lock_unlocking: "desbloqueando" - custom_card_eraycetinay_lock_unavailable: "no disponible" - custom_card_eraycetinay_lock_jammed: "apretada" - custom_card_eraycetinay_lock_locked_and_opened: "La puerta está cerrada pero aún abierta." - custom_card_eraycetinay_lock_battery_is_at: "la batería está en" + ulm_custom_card_eraycetinay_lock_locked: "bloqueado" + ulm_custom_card_eraycetinay_lock_unlocked: "desbloqueado" + ulm_custom_card_eraycetinay_lock_locking: "bloqueando" + ulm_custom_card_eraycetinay_lock_unlocking: "desbloqueando" + ulm_custom_card_eraycetinay_lock_unavailable: "no disponible" + ulm_custom_card_eraycetinay_lock_jammed: "apretada" + ulm_custom_card_eraycetinay_lock_locked_and_opened: "La puerta está cerrada pero aún abierta." + ulm_custom_card_eraycetinay_lock_battery_is_at: "la batería está en" + ulm_custom_card_eraycetinay_lock_battery_is_low: "La batería está baja" diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml index b00d13270..edfaba02f 100644 --- a/custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml @@ -1,11 +1,12 @@ --- custom_card_eraycetinay_lock_language_variables: variables: - custom_card_eraycetinay_lock_locked: "zamknięty" - custom_card_eraycetinay_lock_unlocked: "otwarty" - custom_card_eraycetinay_lock_locking: "zamykanie" - custom_card_eraycetinay_lock_unlocking: "otwieranie" - custom_card_eraycetinay_lock_unavailable: "niedostępny" - custom_card_eraycetinay_lock_jammed: "zacięty" - custom_card_eraycetinay_lock_locked_and_opened: "Drzwi są zamknięte, ale nadal otwarte." - custom_card_eraycetinay_lock_battery_is_at: "Bateria jest na" + ulm_custom_card_eraycetinay_lock_locked: "zamknięty" + ulm_custom_card_eraycetinay_lock_unlocked: "otwarty" + ulm_custom_card_eraycetinay_lock_locking: "zamykanie" + ulm_custom_card_eraycetinay_lock_unlocking: "otwieranie" + ulm_custom_card_eraycetinay_lock_unavailable: "niedostępny" + ulm_custom_card_eraycetinay_lock_jammed: "zacięty" + ulm_custom_card_eraycetinay_lock_locked_and_opened: "Drzwi są zamknięte, ale nadal otwarte." + ulm_custom_card_eraycetinay_lock_battery_is_at: "Bateria jest na" + ulm_custom_card_eraycetinay_lock_battery_is_low: "Bateria jest słaba" diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml index 707eab945..858d90629 100644 --- a/custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml @@ -1,11 +1,12 @@ --- custom_card_eraycetinay_lock_language_variables: variables: - custom_card_eraycetinay_lock_locked: "låst" - custom_card_eraycetinay_lock_unlocked: "olåst" - custom_card_eraycetinay_lock_locking: "låser" - custom_card_eraycetinay_lock_unlocking: "låser upp" - custom_card_eraycetinay_lock_unavailable: "otillgängligt" - custom_card_eraycetinay_lock_jammed: "fastnat" - custom_card_eraycetinay_lock_locked_and_opened: "Dörren är låst men fortfarande öppen." - custom_card_eraycetinay_lock_battery_is_at: "Batterinivån är" + ulm_custom_card_eraycetinay_lock_locked: "låst" + ulm_custom_card_eraycetinay_lock_unlocked: "olåst" + ulm_custom_card_eraycetinay_lock_locking: "låser" + ulm_custom_card_eraycetinay_lock_unlocking: "låser upp" + ulm_custom_card_eraycetinay_lock_unavailable: "otillgängligt" + ulm_custom_card_eraycetinay_lock_jammed: "fastnat" + ulm_custom_card_eraycetinay_lock_locked_and_opened: "Dörren är låst men fortfarande öppen." + ulm_custom_card_eraycetinay_lock_battery_is_at: "Batterinivån är" + ulm_custom_card_eraycetinay_lock_battery_is_low: "Batteriet är lågt" diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml index e612ab5f2..71087a982 100644 --- a/custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml @@ -1,11 +1,12 @@ --- custom_card_eraycetinay_lock_language_variables: variables: - custom_card_eraycetinay_lock_locked: "kilitli" - custom_card_eraycetinay_lock_unlocked: "kilitli değil" - custom_card_eraycetinay_lock_locking: "kilitleniyor" - custom_card_eraycetinay_lock_unlocking: "kilit açılıyor" - custom_card_eraycetinay_lock_unavailable: "müsait değil" - custom_card_eraycetinay_lock_jammed: "sıkışmış" - custom_card_eraycetinay_lock_locked_and_opened: "Kapı kilitli ama hala açık" - custom_card_eraycetinay_lock_battery_is_at: "pil" + ulm_custom_card_eraycetinay_lock_locked: "kilitli" + ulm_custom_card_eraycetinay_lock_unlocked: "kilitli değil" + ulm_custom_card_eraycetinay_lock_locking: "kilitleniyor" + ulm_custom_card_eraycetinay_lock_unlocking: "kilit açılıyor" + ulm_custom_card_eraycetinay_lock_unavailable: "müsait değil" + ulm_custom_card_eraycetinay_lock_jammed: "sıkışmış" + ulm_custom_card_eraycetinay_lock_locked_and_opened: "Kapı kilitli ama hala açık" + ulm_custom_card_eraycetinay_lock_battery_is_at: "pil" + ulm_custom_card_eraycetinay_lock_battery_is_low: "pil zayıf" 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 d4a204be1..bc6df3597 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 @@ -30,11 +30,9 @@ custom_card_irmajavi_speedtest: show_name: true show_icon: true label: >- - [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_model - ]]] + [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_model ]]] name: >- - [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_name - ]]] + [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_name ]]] icon: "mdi:wifi" styles: icon: @@ -146,15 +144,13 @@ custom_card_irmajavi_speedtest: item1: card: type: "custom:button-card" - tap_action: - action: "more-info" color: "var(--google-blue)" show_label: true show_icon: false name: "[[[ return variables.ulm_custom_card_irmajavi_speedtest_download ]]]" entity: >- [[[ return - variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity; + variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity; ]]] label: | [[[ @@ -209,10 +205,10 @@ custom_card_irmajavi_speedtest: [[[ 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 = 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; ]]] diff --git a/custom_cards/custom_card_mpse_printer/custom_card_mpse_printer.yaml b/custom_cards/custom_card_mpse_printer/custom_card_mpse_printer.yaml index 3cf1542f1..56fad13d0 100644 --- a/custom_cards/custom_card_mpse_printer/custom_card_mpse_printer.yaml +++ b/custom_cards/custom_card_mpse_printer/custom_card_mpse_printer.yaml @@ -41,36 +41,37 @@ custom_card_mpse_printer: color: "black" entities: - entity: "[[[ return variables.ulm_card_printer_black_name ]]]" - style: | - bar-card-currentbar{ - border: 0.01rem solid rgba(var(--color-theme),.4); - } - bar-card-backgroundbar{ - display: none; - } - bar-card-name{ - width: 2rem; - margin-right: 40px !important; - } - bar-card-value{ - width: 2rem; - margin-left: 40px !important; - justify-content: center; - display: flex; - color: grey; - } - bar-card-background{ - margin: 4px 0 4px 0 !important; - text-align: initial; - } - ha-card{ - --bar-card-border-radius: 5px; - border-radius: 0px; - box-shadow: none; - } - #states{ - padding: 0 16px; - } + card_mod: + style: | + bar-card-currentbar{ + border: 0.01rem solid rgba(var(--color-theme),.4); + } + bar-card-backgroundbar{ + display: none; + } + bar-card-name{ + width: 2rem; + margin-right: 40px !important; + } + bar-card-value{ + width: 2rem; + margin-left: 40px !important; + justify-content: center; + display: flex; + color: grey; + } + bar-card-background{ + margin: 4px 0 4px 0 !important; + text-align: initial; + } + ha-card{ + --bar-card-border-radius: 5px; + border-radius: 0px; + box-shadow: none; + } + #states{ + padding: 0 16px; + } item3: card: type: "custom:bar-card" @@ -84,36 +85,37 @@ custom_card_mpse_printer: color: "rgb(250,255,0)" entities: - entity: "[[[ return variables.ulm_card_printer_yellow_name ]]]" - style: | - bar-card-currentbar{ - border: 0.01rem solid rgba(var(--color-theme),.4); - } - bar-card-backgroundbar{ - display: none; - } - bar-card-name{ - width: 2rem; - margin-right: 40px !important; - } - bar-card-value{ - width: 2rem; - margin-left: 40px !important; - justify-content: center; - display: flex; - color: grey; - } - bar-card-background{ - margin: 4px 0 4px 0 !important; - text-align: initial; - } - ha-card{ - --bar-card-border-radius: 5px; - border-radius: 0px; - box-shadow: none; - } - #states{ - padding: 0 16px; - } + card_mod: + style: | + bar-card-currentbar{ + border: 0.01rem solid rgba(var(--color-theme),.4); + } + bar-card-backgroundbar{ + display: none; + } + bar-card-name{ + width: 2rem; + margin-right: 40px !important; + } + bar-card-value{ + width: 2rem; + margin-left: 40px !important; + justify-content: center; + display: flex; + color: grey; + } + bar-card-background{ + margin: 4px 0 4px 0 !important; + text-align: initial; + } + ha-card{ + --bar-card-border-radius: 5px; + border-radius: 0px; + box-shadow: none; + } + #states{ + padding: 0 16px; + } item4: card: type: "custom:bar-card" @@ -127,36 +129,37 @@ custom_card_mpse_printer: color: "rgb(248,0,255)" entities: - entity: "[[[ return variables.ulm_card_printer_magenta_name ]]]" - style: | - bar-card-currentbar{ - border: 0.01rem solid rgba(var(--color-theme),.4); - } - bar-card-backgroundbar{ - display: none; - } - bar-card-name{ - width: 2rem; - margin-right: 40px !important; - } - bar-card-value{ - width: 2rem; - margin-left: 40px !important; - justify-content: center; - display: flex; - color: grey; - } - bar-card-background{ - margin: 4px 0 4px 0 !important; - text-align: initial; - } - ha-card{ - --bar-card-border-radius: 5px; - border-radius: 0px; - box-shadow: none; - } - #states{ - padding: 0 16px; - } + card_mod: + style: | + bar-card-currentbar{ + border: 0.01rem solid rgba(var(--color-theme),.4); + } + bar-card-backgroundbar{ + display: none; + } + bar-card-name{ + width: 2rem; + margin-right: 40px !important; + } + bar-card-value{ + width: 2rem; + margin-left: 40px !important; + justify-content: center; + display: flex; + color: grey; + } + bar-card-background{ + margin: 4px 0 4px 0 !important; + text-align: initial; + } + ha-card{ + --bar-card-border-radius: 5px; + border-radius: 0px; + box-shadow: none; + } + #states{ + padding: 0 16px; + } item5: card: type: "custom:bar-card" @@ -170,36 +173,37 @@ custom_card_mpse_printer: color: "rgb(0,255,255)" entities: - entity: "[[[ return variables.ulm_card_printer_cyan_name ]]]" - style: | - bar-card-currentbar{ - border: 0.01rem solid rgba(var(--color-theme),.4); - } - bar-card-backgroundbar{ - display: none; - } - bar-card-name{ - width: 2rem; - margin-right: 40px !important; - } - bar-card-value{ - width: 2rem; - margin-left: 40px !important; - justify-content: center; - display: flex; - color: grey; - } - bar-card-background{ - margin: 4px 0 4px 0 !important; - text-align: initial; - } - ha-card{ - --bar-card-border-radius: 5px; - border-radius: 0px; - box-shadow: none; - } - #states{ - padding: 0 16px 16px 16px; - } + card_mod: + style: | + bar-card-currentbar{ + border: 0.01rem solid rgba(var(--color-theme),.4); + } + bar-card-backgroundbar{ + display: none; + } + bar-card-name{ + width: 2rem; + margin-right: 40px !important; + } + bar-card-value{ + width: 2rem; + margin-left: 40px !important; + justify-content: center; + display: flex; + color: grey; + } + bar-card-background{ + margin: 4px 0 4px 0 !important; + text-align: initial; + } + ha-card{ + --bar-card-border-radius: 5px; + border-radius: 0px; + box-shadow: none; + } + #states{ + padding: 0 16px 16px 16px; + } custom_card_mpse_printer_blue: state: - styles: diff --git a/custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml b/custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml index 1fee063b8..1144adcec 100644 --- a/custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml +++ b/custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml @@ -17,27 +17,6 @@ custom_card_paddy_dwd_pollen: card: type: "custom:button-card" entity: "[[[ return entity.entity_id ]]]" - item2: - card: - type: "custom:button-card" - entity: "[[[ return entity.entity_id ]]]" - label: > - [[[ - if (entity.state == "6"){ - return variables.custom_card_paddy_dwd_pollen_6; - } else if (entity.state == "5"){ - return variables.custom_card_paddy_dwd_pollen_5; - } else if (entity.state == "4"){ - return variables.custom_card_paddy_dwd_pollen_4; - } else if (entity.state == "3"){ - return variables.custom_card_paddy_dwd_pollen_3; - } else if (entity.state == "2"){ - return variables.custom_card_paddy_dwd_pollen_2; - } else if (entity.state == "1"){ - return variables.custom_card_paddy_dwd_pollen_1; - } - return variables.custom_card_paddy_dwd_pollen_none; - ]]] state: - value: "6" styles: @@ -67,3 +46,24 @@ custom_card_paddy_dwd_pollen: styles: icon: - color: "rgba(var(--color-theme),0.2)" + item2: + card: + type: "custom:button-card" + entity: "[[[ return entity.entity_id ]]]" + label: > + [[[ + if (entity.state == "6"){ + return variables.custom_card_paddy_dwd_pollen_6; + } else if (entity.state == "5"){ + return variables.custom_card_paddy_dwd_pollen_5; + } else if (entity.state == "4"){ + return variables.custom_card_paddy_dwd_pollen_4; + } else if (entity.state == "3"){ + return variables.custom_card_paddy_dwd_pollen_3; + } else if (entity.state == "2"){ + return variables.custom_card_paddy_dwd_pollen_2; + } else if (entity.state == "1"){ + return variables.custom_card_paddy_dwd_pollen_1; + } + return variables.custom_card_paddy_dwd_pollen_none; + ]]] diff --git a/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml b/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml index 30315c9f4..b80018dd8 100644 --- a/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml +++ b/custom_cards/custom_card_sisimomo_printer/custom_card_sisimomo_printer.yaml @@ -163,60 +163,61 @@ custom_card_sisimomo_printer: } ]]] - style: | - /* Cartridge CSS */ - div#cartridges .wrapper { - display: grid; - grid-template-columns: auto 1fr auto; - grid-gap: 1rem; - padding: 12px 8px 8px 8px; - } - div#cartridges .wrapper > *:nth-child(3n-2), .wrapper > *:nth-child(3n) { - place-self: center start; - } - div#cartridges .wrapper > .label { - filter: opacity(70%); - font-size: medium; - } - div#cartridges .wrapper > .container-bar { - position: relative; - border-radius: 4px; - border: 0.01rem solid rgba(var(--color-theme),.35); - } - div#cartridges .wrapper > .container-bar .bar { - height: 20px; - border-radius: 4px; - } - div#cartridges .wrapper > .state { - filter: opacity(40%); - font-size: medium; - } + card_mod: + style: | + /* Cartridge CSS */ + div#cartridges .wrapper { + display: grid; + grid-template-columns: auto 1fr auto; + grid-gap: 1rem; + padding: 12px 8px 8px 8px; + } + div#cartridges .wrapper > *:nth-child(3n-2), .wrapper > *:nth-child(3n) { + place-self: center start; + } + div#cartridges .wrapper > .label { + filter: opacity(70%); + font-size: medium; + } + div#cartridges .wrapper > .container-bar { + position: relative; + border-radius: 4px; + border: 0.01rem solid rgba(var(--color-theme),.35); + } + div#cartridges .wrapper > .container-bar .bar { + height: 20px; + border-radius: 4px; + } + div#cartridges .wrapper > .state { + filter: opacity(40%); + font-size: medium; + } - /* Error CSS */ - div#cartridges .error-container { - text-align: left; - font-size: 75%; - font-family: var(--code-font-family, monospace); - padding: 10px; - background-color: rgba(219, 68, 55, 0.75); - margin-top:10px; - border-radius:8px; - } - div#cartridges .error-container ul { - list-style: none; - padding: 0; - margin: 0; - overflow-wrap: break-word; - word-wrap: break-word; - white-space: normal !important; - } - div#cartridges .error-container ul li { - margin-top: 0.5em; - } - div#cartridges .info-unavailable { - padding: 1em; - white-space: normal; - margin-top:10px; - border-radius:8px; - opacity: 60%; - } + /* Error CSS */ + div#cartridges .error-container { + text-align: left; + font-size: 75%; + font-family: var(--code-font-family, monospace); + padding: 10px; + background-color: rgba(219, 68, 55, 0.75); + margin-top:10px; + border-radius:8px; + } + div#cartridges .error-container ul { + list-style: none; + padding: 0; + margin: 0; + overflow-wrap: break-word; + word-wrap: break-word; + white-space: normal !important; + } + div#cartridges .error-container ul li { + margin-top: 0.5em; + } + div#cartridges .info-unavailable { + padding: 1em; + white-space: normal; + margin-top:10px; + border-radius:8px; + opacity: 60%; + } From 0cc7b896e3a44247a8c88c1b37e9a8524d4441ee Mon Sep 17 00:00:00 2001 From: wilbiev Date: Mon, 23 Dec 2024 10:17:38 +0000 Subject: [PATCH 46/49] Update custom cards 23122024 --- .../card_alarm_time.yaml | 14 +++--- .../custom_card_bar_card.yaml | 47 +++++++++---------- .../custom_card_eraycetinay_lock/README.md | 14 ------ .../custom_card_eraycetinay_lock.yaml | 42 +++++------------ .../languages/de.yaml | 17 ++++--- .../languages/en.yaml | 17 ++++--- .../languages/es.yaml | 17 ++++--- .../languages/pl.yaml | 17 ++++--- .../languages/sv.yaml | 17 ++++--- .../languages/tr.yaml | 17 ++++--- .../card_input_number.yaml | 26 +++++----- .../custom_card_irmajavi_speedtest.yaml | 18 ++++--- .../custom_card_paddy_dwd_pollen.yaml | 42 ++++++++--------- 13 files changed, 139 insertions(+), 166 deletions(-) diff --git a/custom_cards/custom_card_alarm_time/card_alarm_time.yaml b/custom_cards/custom_card_alarm_time/card_alarm_time.yaml index bea5c3afb..15e355be0 100644 --- a/custom_cards/custom_card_alarm_time/card_alarm_time.yaml +++ b/custom_cards/custom_card_alarm_time/card_alarm_time.yaml @@ -176,10 +176,11 @@ card_alarm_time: type: "custom:button-card" template: "widget_icon" tap_action: - action: "call-service" - service: "input_datetime.set_datetime" - service_data: + action: "perform-action" + perform_action: "input_datetime.set_datetime" + target: entity_id: "[[[ return variables.ulm_card_alarm_time_datetime ]]]" + data: time: > [[[ var timestamp = states[variables.ulm_card_alarm_time_datetime].attributes.timestamp; @@ -259,10 +260,11 @@ card_alarm_time: type: "custom:button-card" template: "widget_icon" tap_action: - action: "call-service" - service: "input_datetime.set_datetime" - service_data: + action: "perform-action" + perform_action: "input_datetime.set_datetime" + target: entity_id: "[[[ return variables.ulm_card_alarm_time_datetime ]]]" + data: time: > [[[ var timestamp = states[variables.ulm_card_alarm_time_datetime].attributes.timestamp; diff --git a/custom_cards/custom_card_bar_card/custom_card_bar_card.yaml b/custom_cards/custom_card_bar_card/custom_card_bar_card.yaml index 58dd0b13d..dcb4ca712 100644 --- a/custom_cards/custom_card_bar_card/custom_card_bar_card.yaml +++ b/custom_cards/custom_card_bar_card/custom_card_bar_card.yaml @@ -44,27 +44,26 @@ custom_card_bar_card: name: "off" min: "[[[ return variables.ulm_custom_card_bar_card_min ]]]" max: "[[[ return variables.ulm_custom_card_bar_card_max ]]]" - card_mod: - style: |- - bar-card-currentbar { - border-radius: 0px !important; - right: 0; - } - bar-card-backgroundbar { - border-radius: 0px !important; - right: 0; - } - #states { - padding: 0; - height: 35px; - } - bar-card-background { - height: 35px !important; - } - bar-card-indicator { - left: 10px; - } - bar-card-value { - font-weight: bold; - font-size: 12px; - } + style: |- + bar-card-currentbar { + border-radius: 0px !important; + right: 0; + } + bar-card-backgroundbar { + border-radius: 0px !important; + right: 0; + } + #states { + padding: 0; + height: 35px; + } + bar-card-background { + height: 35px !important; + } + bar-card-indicator { + left: 10px; + } + bar-card-value { + font-weight: bold; + font-size: 12px; + } diff --git a/custom_cards/custom_card_eraycetinay_lock/README.md b/custom_cards/custom_card_eraycetinay_lock/README.md index 9b3bb9e06..777c75ac2 100644 --- a/custom_cards/custom_card_eraycetinay_lock/README.md +++ b/custom_cards/custom_card_eraycetinay_lock/README.md @@ -107,20 +107,6 @@ Version: 0.0.3 no Displays a warning when the door is lock but the door is still open. - - ulm_custom_card_eraycetinay_lock_battery_sensor_binary - true - false - no - Set to true if using a binary battery sensor. Will ignore battery_warning percentage settings - - - ulm_custom_card_eraycetinay_lock_battery_sensor_binary_low_state - off - on - no - Set whether the binary sensor turns to on or off when in low state - ??? note "Template Code" diff --git a/custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml b/custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml index 8a20e4b99..fc7bca7a3 100644 --- a/custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml @@ -7,15 +7,13 @@ custom_card_eraycetinay_lock: variables: ulm_custom_card_eraycetinay_lock_battery_warning: 20 ulm_custom_card_eraycetinay_lock_battery_warning_low: 5 - ulm_custom_card_eraycetinay_lock_battery_sensor_binary: false - ulm_custom_card_eraycetinay_lock_battery_sensor_binary_low_state: "on" tap_action: action: | [[[ - return variables.ulm_custom_card_eraycetinay_lock_tap_control ? "call-service" : "more-info"; + return variables.ulm_custom_card_eraycetinay_lock_tap_control ? "perform-action" : "more-info"; ]]] - # only related with call-service action - service: | + # only related with perform_action + perform_action: | [[[ if(variables.ulm_custom_card_eraycetinay_lock_tap_control){ if(variables.ulm_custom_card_eraycetinay_lock_open){ @@ -29,8 +27,8 @@ custom_card_eraycetinay_lock: } } ]]] - # only related with call-service action - service_data: + # only related with perform_action + target: entity_id: | [[[ return entity.entity_id; ]]] show_label: true @@ -91,16 +89,10 @@ custom_card_eraycetinay_lock: - background-color: | [[[ if (variables.ulm_custom_card_eraycetinay_lock_battery_level !== undefined) { - if (variables.ulm_custom_card_eraycetinay_lock_battery_sensor_binary) { - if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state == variables.ulm_custom_card_eraycetinay_lock_battery_sensor_binary_low_state) { - return "rgba(var(--color-red),1)"; - } - } else { - if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state <= variables.ulm_custom_card_eraycetinay_lock_battery_warning_low) { - return "rgba(var(--color-red),1)"; - } else if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state <= variables.ulm_custom_card_eraycetinay_lock_battery_warning) { - return "rgba(var(--color-yellow),1)"; - } + if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state <= variables.ulm_custom_card_eraycetinay_lock_battery_warning_low) { + return "rgba(var(--color-red),1)"; + } else if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state <= variables.ulm_custom_card_eraycetinay_lock_battery_warning) { + return "rgba(var(--color-yellow),1)"; } } ]]] @@ -114,18 +106,10 @@ custom_card_eraycetinay_lock: notification_battery: > [[[ if (variables.ulm_custom_card_eraycetinay_lock_battery_level !== undefined) { - if (variables.ulm_custom_card_eraycetinay_lock_battery_sensor_binary) { - if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state == variables.ulm_custom_card_eraycetinay_lock_battery_sensor_binary_low_state) { - return ` - - `; - } - } else { - if (variables.ulm_custom_card_eraycetinay_lock_battery_warning >= states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state) { - return ` - - `; - } + if (variables.ulm_custom_card_eraycetinay_lock_battery_warning >= states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state) { + return ` + + `; } } ]]] diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/de.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/de.yaml index d97a28f11..1305d95eb 100644 --- a/custom_cards/custom_card_eraycetinay_lock/languages/de.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/languages/de.yaml @@ -1,12 +1,11 @@ --- custom_card_eraycetinay_lock_language_variables: variables: - ulm_custom_card_eraycetinay_lock_locked: "verriegelt" - ulm_custom_card_eraycetinay_lock_unlocked: "entriegelt" - ulm_custom_card_eraycetinay_lock_locking: "verriegeln" - ulm_custom_card_eraycetinay_lock_unlocking: "entriegeln" - ulm_custom_card_eraycetinay_lock_unavailable: "nicht verfügbar" - ulm_custom_card_eraycetinay_lock_jammed: "blockiert" - ulm_custom_card_eraycetinay_lock_locked_and_opened: "Die Tür ist verschlossen, aber noch offen." - ulm_custom_card_eraycetinay_lock_battery_is_at: "Batterie ist an" - ulm_custom_card_eraycetinay_lock_battery_is_low: "Batterie schwach" + custom_card_eraycetinay_lock_locked: "verriegelt" + custom_card_eraycetinay_lock_unlocked: "entriegelt" + custom_card_eraycetinay_lock_locking: "verriegeln" + custom_card_eraycetinay_lock_unlocking: "entriegeln" + custom_card_eraycetinay_lock_unavailable: "nicht verfügbar" + custom_card_eraycetinay_lock_jammed: "blockiert" + custom_card_eraycetinay_lock_locked_and_opened: "Die Tür ist verschlossen, aber noch offen." + custom_card_eraycetinay_lock_battery_is_at: "Batterie ist an" diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/en.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/en.yaml index 81579b70b..f34a60515 100644 --- a/custom_cards/custom_card_eraycetinay_lock/languages/en.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/languages/en.yaml @@ -1,12 +1,11 @@ --- custom_card_eraycetinay_lock_language_variables: variables: - ulm_custom_card_eraycetinay_lock_locked: "locked" - ulm_custom_card_eraycetinay_lock_unlocked: "unlocked" - ulm_custom_card_eraycetinay_lock_locking: "locking" - ulm_custom_card_eraycetinay_lock_unlocking: "unlocking" - ulm_custom_card_eraycetinay_lock_unavailable: "unavailable" - ulm_custom_card_eraycetinay_lock_jammed: "jammed" - ulm_custom_card_eraycetinay_lock_locked_and_opened: "The door is locked but still open." - ulm_custom_card_eraycetinay_lock_battery_is_at: "Battery is at" - ulm_custom_card_eraycetinay_lock_battery_is_low: "Battery is low" + custom_card_eraycetinay_lock_locked: "locked" + custom_card_eraycetinay_lock_unlocked: "unlocked" + custom_card_eraycetinay_lock_locking: "locking" + custom_card_eraycetinay_lock_unlocking: "unlocking" + custom_card_eraycetinay_lock_unavailable: "unavailable" + custom_card_eraycetinay_lock_jammed: "jammed" + custom_card_eraycetinay_lock_locked_and_opened: "The door is locked but still open." + custom_card_eraycetinay_lock_battery_is_at: "Battery is at" diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/es.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/es.yaml index 3281e2ee1..637d3c74c 100644 --- a/custom_cards/custom_card_eraycetinay_lock/languages/es.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/languages/es.yaml @@ -1,12 +1,11 @@ --- custom_card_eraycetinay_lock_language_variables: variables: - ulm_custom_card_eraycetinay_lock_locked: "bloqueado" - ulm_custom_card_eraycetinay_lock_unlocked: "desbloqueado" - ulm_custom_card_eraycetinay_lock_locking: "bloqueando" - ulm_custom_card_eraycetinay_lock_unlocking: "desbloqueando" - ulm_custom_card_eraycetinay_lock_unavailable: "no disponible" - ulm_custom_card_eraycetinay_lock_jammed: "apretada" - ulm_custom_card_eraycetinay_lock_locked_and_opened: "La puerta está cerrada pero aún abierta." - ulm_custom_card_eraycetinay_lock_battery_is_at: "la batería está en" - ulm_custom_card_eraycetinay_lock_battery_is_low: "La batería está baja" + custom_card_eraycetinay_lock_locked: "bloqueado" + custom_card_eraycetinay_lock_unlocked: "desbloqueado" + custom_card_eraycetinay_lock_locking: "bloqueando" + custom_card_eraycetinay_lock_unlocking: "desbloqueando" + custom_card_eraycetinay_lock_unavailable: "no disponible" + custom_card_eraycetinay_lock_jammed: "apretada" + custom_card_eraycetinay_lock_locked_and_opened: "La puerta está cerrada pero aún abierta." + custom_card_eraycetinay_lock_battery_is_at: "la batería está en" diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml index edfaba02f..b00d13270 100644 --- a/custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml @@ -1,12 +1,11 @@ --- custom_card_eraycetinay_lock_language_variables: variables: - ulm_custom_card_eraycetinay_lock_locked: "zamknięty" - ulm_custom_card_eraycetinay_lock_unlocked: "otwarty" - ulm_custom_card_eraycetinay_lock_locking: "zamykanie" - ulm_custom_card_eraycetinay_lock_unlocking: "otwieranie" - ulm_custom_card_eraycetinay_lock_unavailable: "niedostępny" - ulm_custom_card_eraycetinay_lock_jammed: "zacięty" - ulm_custom_card_eraycetinay_lock_locked_and_opened: "Drzwi są zamknięte, ale nadal otwarte." - ulm_custom_card_eraycetinay_lock_battery_is_at: "Bateria jest na" - ulm_custom_card_eraycetinay_lock_battery_is_low: "Bateria jest słaba" + custom_card_eraycetinay_lock_locked: "zamknięty" + custom_card_eraycetinay_lock_unlocked: "otwarty" + custom_card_eraycetinay_lock_locking: "zamykanie" + custom_card_eraycetinay_lock_unlocking: "otwieranie" + custom_card_eraycetinay_lock_unavailable: "niedostępny" + custom_card_eraycetinay_lock_jammed: "zacięty" + custom_card_eraycetinay_lock_locked_and_opened: "Drzwi są zamknięte, ale nadal otwarte." + custom_card_eraycetinay_lock_battery_is_at: "Bateria jest na" diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml index 858d90629..707eab945 100644 --- a/custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml @@ -1,12 +1,11 @@ --- custom_card_eraycetinay_lock_language_variables: variables: - ulm_custom_card_eraycetinay_lock_locked: "låst" - ulm_custom_card_eraycetinay_lock_unlocked: "olåst" - ulm_custom_card_eraycetinay_lock_locking: "låser" - ulm_custom_card_eraycetinay_lock_unlocking: "låser upp" - ulm_custom_card_eraycetinay_lock_unavailable: "otillgängligt" - ulm_custom_card_eraycetinay_lock_jammed: "fastnat" - ulm_custom_card_eraycetinay_lock_locked_and_opened: "Dörren är låst men fortfarande öppen." - ulm_custom_card_eraycetinay_lock_battery_is_at: "Batterinivån är" - ulm_custom_card_eraycetinay_lock_battery_is_low: "Batteriet är lågt" + custom_card_eraycetinay_lock_locked: "låst" + custom_card_eraycetinay_lock_unlocked: "olåst" + custom_card_eraycetinay_lock_locking: "låser" + custom_card_eraycetinay_lock_unlocking: "låser upp" + custom_card_eraycetinay_lock_unavailable: "otillgängligt" + custom_card_eraycetinay_lock_jammed: "fastnat" + custom_card_eraycetinay_lock_locked_and_opened: "Dörren är låst men fortfarande öppen." + custom_card_eraycetinay_lock_battery_is_at: "Batterinivån är" diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml index 71087a982..e612ab5f2 100644 --- a/custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml @@ -1,12 +1,11 @@ --- custom_card_eraycetinay_lock_language_variables: variables: - ulm_custom_card_eraycetinay_lock_locked: "kilitli" - ulm_custom_card_eraycetinay_lock_unlocked: "kilitli değil" - ulm_custom_card_eraycetinay_lock_locking: "kilitleniyor" - ulm_custom_card_eraycetinay_lock_unlocking: "kilit açılıyor" - ulm_custom_card_eraycetinay_lock_unavailable: "müsait değil" - ulm_custom_card_eraycetinay_lock_jammed: "sıkışmış" - ulm_custom_card_eraycetinay_lock_locked_and_opened: "Kapı kilitli ama hala açık" - ulm_custom_card_eraycetinay_lock_battery_is_at: "pil" - ulm_custom_card_eraycetinay_lock_battery_is_low: "pil zayıf" + custom_card_eraycetinay_lock_locked: "kilitli" + custom_card_eraycetinay_lock_unlocked: "kilitli değil" + custom_card_eraycetinay_lock_locking: "kilitleniyor" + custom_card_eraycetinay_lock_unlocking: "kilit açılıyor" + custom_card_eraycetinay_lock_unavailable: "müsait değil" + custom_card_eraycetinay_lock_jammed: "sıkışmış" + custom_card_eraycetinay_lock_locked_and_opened: "Kapı kilitli ama hala açık" + custom_card_eraycetinay_lock_battery_is_at: "pil" 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 712be4c5a..2a33e0a7c 100644 --- a/custom_cards/custom_card_input_number/card_input_number.yaml +++ b/custom_cards/custom_card_input_number/card_input_number.yaml @@ -38,16 +38,18 @@ card_input_number: type: "custom:button-card" template: "widget_icon" tap_action: - action: "call-service" - service: | + action: "perform-action" + perform_action: | [[[ if( entity.entity_id.startsWith("input_number.") ) return "input_number.decrement"; - if( entity.entity_id.startsWith("counter.") ) + else if( entity.entity_id.startsWith("counter.") ) return "counter.decrement"; + else if( entity.entity_id.startsWith("select.") ) + return "select.select_previous"; return ""; ]]] - service_data: + target: entity_id: "[[[ return entity.entity_id ]]]" icon: "mdi:arrow-down" item2: @@ -56,25 +58,27 @@ card_input_number: template: "widget_text" entity: "[[[ return entity.entity_id ]]]" tap_action: - action: "call-service" - service: "cover.stop_cover" - service_data: + action: "perform-action" + perform_action: "cover.stop_cover" + target: entity_id: "[[[ return entity.entity_id ]]]" item3: card: type: "custom:button-card" template: "widget_icon" tap_action: - action: "call-service" - service: | + action: "perform-action" + perform_action: | [[[ if( entity.entity_id.startsWith("input_number.") ) return "input_number.increment"; - if( entity.entity_id.startsWith("counter.") ) + else if( entity.entity_id.startsWith("counter.") ) return "counter.increment"; + else if( entity.entity_id.startsWith("select.") ) + return "select.select_next"; return ""; ]]] - service_data: + target: entity_id: "[[[ return entity.entity_id ]]]" icon: "mdi:arrow-up" 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 bc6df3597..d4a204be1 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 @@ -30,9 +30,11 @@ custom_card_irmajavi_speedtest: show_name: true show_icon: true label: >- - [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_model ]]] + [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_model + ]]] name: >- - [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_name ]]] + [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_name + ]]] icon: "mdi:wifi" styles: icon: @@ -144,13 +146,15 @@ custom_card_irmajavi_speedtest: item1: card: type: "custom:button-card" + tap_action: + action: "more-info" color: "var(--google-blue)" show_label: true show_icon: false name: "[[[ return variables.ulm_custom_card_irmajavi_speedtest_download ]]]" entity: >- [[[ return - variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity; + variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity; ]]] label: | [[[ @@ -205,10 +209,10 @@ custom_card_irmajavi_speedtest: [[[ 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 = 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; ]]] diff --git a/custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml b/custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml index 1144adcec..1fee063b8 100644 --- a/custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml +++ b/custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml @@ -17,6 +17,27 @@ custom_card_paddy_dwd_pollen: card: type: "custom:button-card" entity: "[[[ return entity.entity_id ]]]" + item2: + card: + type: "custom:button-card" + entity: "[[[ return entity.entity_id ]]]" + label: > + [[[ + if (entity.state == "6"){ + return variables.custom_card_paddy_dwd_pollen_6; + } else if (entity.state == "5"){ + return variables.custom_card_paddy_dwd_pollen_5; + } else if (entity.state == "4"){ + return variables.custom_card_paddy_dwd_pollen_4; + } else if (entity.state == "3"){ + return variables.custom_card_paddy_dwd_pollen_3; + } else if (entity.state == "2"){ + return variables.custom_card_paddy_dwd_pollen_2; + } else if (entity.state == "1"){ + return variables.custom_card_paddy_dwd_pollen_1; + } + return variables.custom_card_paddy_dwd_pollen_none; + ]]] state: - value: "6" styles: @@ -46,24 +67,3 @@ custom_card_paddy_dwd_pollen: styles: icon: - color: "rgba(var(--color-theme),0.2)" - item2: - card: - type: "custom:button-card" - entity: "[[[ return entity.entity_id ]]]" - label: > - [[[ - if (entity.state == "6"){ - return variables.custom_card_paddy_dwd_pollen_6; - } else if (entity.state == "5"){ - return variables.custom_card_paddy_dwd_pollen_5; - } else if (entity.state == "4"){ - return variables.custom_card_paddy_dwd_pollen_4; - } else if (entity.state == "3"){ - return variables.custom_card_paddy_dwd_pollen_3; - } else if (entity.state == "2"){ - return variables.custom_card_paddy_dwd_pollen_2; - } else if (entity.state == "1"){ - return variables.custom_card_paddy_dwd_pollen_1; - } - return variables.custom_card_paddy_dwd_pollen_none; - ]]] From e42d143441c5aa69a597b5c2bced5ad5dad1811e Mon Sep 17 00:00:00 2001 From: wilbiev Date: Mon, 23 Dec 2024 13:47:58 +0000 Subject: [PATCH 47/49] Custom card updates and fixes --- .../custom_card_bar_card.yaml | 47 +++--- .../custom_card_chromecast.yaml | 18 +-- .../custom_card_eraycetinay_elapsed_time.yaml | 8 +- .../languages/de.yaml | 16 +- .../languages/en.yaml | 16 +- .../languages/es.yaml | 16 +- .../languages/hu.yaml | 16 +- .../languages/pl.yaml | 16 +- .../languages/tr.yaml | 16 +- .../custom_card_eraycetinay_lock/README.md | 14 ++ .../custom_card_eraycetinay_lock.yaml | 39 +++-- .../languages/de.yaml | 17 ++- .../languages/en.yaml | 17 ++- .../languages/es.yaml | 17 ++- .../languages/pl.yaml | 17 ++- .../languages/sv.yaml | 17 ++- .../languages/tr.yaml | 17 ++- .../custom_card_esh_welcome.yaml | 6 +- .../custom_card_haven_washer.yaml | 28 ++-- .../custom_card_heat_pump.yaml | 56 ++++--- .../custom_card_httpedo13_thermostat.yaml | 64 ++++---- .../card_input_datetime.yaml | 28 ++-- .../custom_card_irmajavi_speedtest.yaml | 24 ++- .../custom_card_media_player_sonos.yaml | 18 +-- .../custom_card_mpse_thermostat.yaml | 14 +- .../custom_card_neekster_update.yaml | 18 +-- .../custom_card_nik_clock.yaml | 6 +- .../custom_card_nik_door.yaml | 12 +- .../custom_card_nik_tablet.yaml | 12 +- .../custom_card_paddy_dwd_pollen.yaml | 44 +++--- .../languages/de.yaml | 16 +- .../languages/en.yaml | 16 +- .../languages/es.yaml | 16 +- .../languages/pl.yaml | 16 +- .../custom_card_saxel_fan.yaml | 7 +- custom_cards/custom_card_scenes/README.md | 137 +++++++++--------- .../custom_card_scenes/card_scenes.yaml | 30 ++-- .../custom_card_speedtest_shogun160.yaml | 6 +- .../custom_card_tpx01_aircondition.yaml | 26 ++-- 39 files changed, 494 insertions(+), 430 deletions(-) diff --git a/custom_cards/custom_card_bar_card/custom_card_bar_card.yaml b/custom_cards/custom_card_bar_card/custom_card_bar_card.yaml index dcb4ca712..58dd0b13d 100644 --- a/custom_cards/custom_card_bar_card/custom_card_bar_card.yaml +++ b/custom_cards/custom_card_bar_card/custom_card_bar_card.yaml @@ -44,26 +44,27 @@ custom_card_bar_card: name: "off" min: "[[[ return variables.ulm_custom_card_bar_card_min ]]]" max: "[[[ return variables.ulm_custom_card_bar_card_max ]]]" - style: |- - bar-card-currentbar { - border-radius: 0px !important; - right: 0; - } - bar-card-backgroundbar { - border-radius: 0px !important; - right: 0; - } - #states { - padding: 0; - height: 35px; - } - bar-card-background { - height: 35px !important; - } - bar-card-indicator { - left: 10px; - } - bar-card-value { - font-weight: bold; - font-size: 12px; - } + card_mod: + style: |- + bar-card-currentbar { + border-radius: 0px !important; + right: 0; + } + bar-card-backgroundbar { + border-radius: 0px !important; + right: 0; + } + #states { + padding: 0; + height: 35px; + } + bar-card-background { + height: 35px !important; + } + bar-card-indicator { + left: 10px; + } + bar-card-value { + font-weight: bold; + font-size: 12px; + } diff --git a/custom_cards/custom_card_chromecast/custom_card_chromecast.yaml b/custom_cards/custom_card_chromecast/custom_card_chromecast.yaml index 3810be83d..c11c1328a 100644 --- a/custom_cards/custom_card_chromecast/custom_card_chromecast.yaml +++ b/custom_cards/custom_card_chromecast/custom_card_chromecast.yaml @@ -49,9 +49,9 @@ card_media_player_chromecast_with_controls: type: "custom:button-card" template: "widget_icon" tap_action: - action: "call-service" - service: "media_player.toggle" - service_data: + action: "perform-action" + perform_action: "media_player.toggle" + target: entity_id: "[[[ return variables.ulm_card_media_player_with_controls_entity ]]]" icon: "mdi:power" item2: @@ -60,9 +60,9 @@ card_media_player_chromecast_with_controls: template: "widget_icon" entity: "[[[ return variables.ulm_card_media_player_with_controls_entity ]]]" tap_action: - action: "call-service" - service: "media_player.media_play_pause" - service_data: + action: "perform-action" + perform_action: "media_player.media_play_pause" + target: entity_id: "[[[ return variables.ulm_card_media_player_with_controls_entity ]]]" icon: "mdi:pause" state: @@ -75,9 +75,9 @@ card_media_player_chromecast_with_controls: type: "custom:button-card" template: "widget_icon" tap_action: - action: "call-service" - service: "media_player.toggle" - service_data: + action: "perform-action" + perform_action: "media_player.toggle" + target: entity_id: "[[[ return variables.ulm_card_media_player_with_controls_entity ]]]" icon: "mdi:video-input-hdmi" diff --git a/custom_cards/custom_card_eraycetinay_elapsed_time/custom_card_eraycetinay_elapsed_time.yaml b/custom_cards/custom_card_eraycetinay_elapsed_time/custom_card_eraycetinay_elapsed_time.yaml index 6d7f5283f..eac04aa4c 100644 --- a/custom_cards/custom_card_eraycetinay_elapsed_time/custom_card_eraycetinay_elapsed_time.yaml +++ b/custom_cards/custom_card_eraycetinay_elapsed_time/custom_card_eraycetinay_elapsed_time.yaml @@ -23,15 +23,15 @@ custom_card_eraycetinay_elapsed_time: let text = ''; if(entity.attributes.has_date) { - text += days > 0 ? days + ' ' + (days > 1 ? variables.custom_card_eraycetinay_elapsed_time_days : variables.custom_card_eraycetinay_elapsed_time_day) +' ' : ''; + text += days > 0 ? days + ' ' + (days > 1 ? variables.ulm_custom_card_eraycetinay_elapsed_time_days : variables.ulm_custom_card_eraycetinay_elapsed_time_day) +' ' : ''; } if(entity.attributes.has_time) { - text += hours > 0 ? hours + ' ' + (hours > 1 ? variables.custom_card_eraycetinay_elapsed_time_hours : variables.custom_card_eraycetinay_elapsed_time_hour) +' ' : ''; + text += hours > 0 ? hours + ' ' + (hours > 1 ? variables.ulm_custom_card_eraycetinay_elapsed_time_hours : variables.ulm_custom_card_eraycetinay_elapsed_time_hour) +' ' : ''; } if(entity.attributes.has_time && !entity.attributes.has_date) { - text += minutes > 0 ? minutes + ' ' + (minutes > 1 ? variables.custom_card_eraycetinay_elapsed_time_minutes : variables.custom_card_eraycetinay_elapsed_time_minute) +' ' : ''; + text += minutes > 0 ? minutes + ' ' + (minutes > 1 ? variables.ulm_custom_card_eraycetinay_elapsed_time_minutes : variables.ulm_custom_card_eraycetinay_elapsed_time_minute) +' ' : ''; } - text = text.length ? text += variables.custom_card_eraycetinay_elapsed_time_ago : variables.custom_card_eraycetinay_elapsed_time_justnow; + text = text.length ? text += variables.ulm_custom_card_eraycetinay_elapsed_time_ago : variables.ulm_custom_card_eraycetinay_elapsed_time_justnow; return text; ]]] diff --git a/custom_cards/custom_card_eraycetinay_elapsed_time/languages/de.yaml b/custom_cards/custom_card_eraycetinay_elapsed_time/languages/de.yaml index d0b14792a..0b81d9b18 100644 --- a/custom_cards/custom_card_eraycetinay_elapsed_time/languages/de.yaml +++ b/custom_cards/custom_card_eraycetinay_elapsed_time/languages/de.yaml @@ -1,11 +1,11 @@ --- ulm_custom_card_eraycetinay_elapsed_time_language_variables: variables: - custom_card_eraycetinay_elapsed_time_day: "Tag" - custom_card_eraycetinay_elapsed_time_days: "Tage" - custom_card_eraycetinay_elapsed_time_hour: "Stunde" - custom_card_eraycetinay_elapsed_time_hours: "Stunden" - custom_card_eraycetinay_elapsed_time_minute: "Minute" - custom_card_eraycetinay_elapsed_time_minutes: "Minuten" - custom_card_eraycetinay_elapsed_time_ago: "her" - custom_card_eraycetinay_elapsed_time_justnow: "Jetzt" + ulm_custom_card_eraycetinay_elapsed_time_day: "Tag" + ulm_custom_card_eraycetinay_elapsed_time_days: "Tage" + ulm_custom_card_eraycetinay_elapsed_time_hour: "Stunde" + ulm_custom_card_eraycetinay_elapsed_time_hours: "Stunden" + ulm_custom_card_eraycetinay_elapsed_time_minute: "Minute" + ulm_custom_card_eraycetinay_elapsed_time_minutes: "Minuten" + ulm_custom_card_eraycetinay_elapsed_time_ago: "her" + ulm_custom_card_eraycetinay_elapsed_time_justnow: "Jetzt" diff --git a/custom_cards/custom_card_eraycetinay_elapsed_time/languages/en.yaml b/custom_cards/custom_card_eraycetinay_elapsed_time/languages/en.yaml index 738a2e718..a062075df 100644 --- a/custom_cards/custom_card_eraycetinay_elapsed_time/languages/en.yaml +++ b/custom_cards/custom_card_eraycetinay_elapsed_time/languages/en.yaml @@ -1,11 +1,11 @@ --- ulm_custom_card_eraycetinay_elapsed_time_language_variables: variables: - custom_card_eraycetinay_elapsed_time_day: "day" - custom_card_eraycetinay_elapsed_time_days: "days" - custom_card_eraycetinay_elapsed_time_hour: "hour" - custom_card_eraycetinay_elapsed_time_hours: "hours" - custom_card_eraycetinay_elapsed_time_minute: "minute" - custom_card_eraycetinay_elapsed_time_minutes: "minutes" - custom_card_eraycetinay_elapsed_time_ago: "ago" - custom_card_eraycetinay_elapsed_time_justnow: "just now" + ulm_custom_card_eraycetinay_elapsed_time_day: "day" + ulm_custom_card_eraycetinay_elapsed_time_days: "days" + ulm_custom_card_eraycetinay_elapsed_time_hour: "hour" + ulm_custom_card_eraycetinay_elapsed_time_hours: "hours" + ulm_custom_card_eraycetinay_elapsed_time_minute: "minute" + ulm_custom_card_eraycetinay_elapsed_time_minutes: "minutes" + ulm_custom_card_eraycetinay_elapsed_time_ago: "ago" + ulm_custom_card_eraycetinay_elapsed_time_justnow: "just now" diff --git a/custom_cards/custom_card_eraycetinay_elapsed_time/languages/es.yaml b/custom_cards/custom_card_eraycetinay_elapsed_time/languages/es.yaml index 08f72bf65..137df9718 100644 --- a/custom_cards/custom_card_eraycetinay_elapsed_time/languages/es.yaml +++ b/custom_cards/custom_card_eraycetinay_elapsed_time/languages/es.yaml @@ -1,11 +1,11 @@ --- ulm_custom_card_eraycetinay_elapsed_time_language_variables: variables: - custom_card_eraycetinay_elapsed_time_day: "día" - custom_card_eraycetinay_elapsed_time_days: "días" - custom_card_eraycetinay_elapsed_time_hour: "hora" - custom_card_eraycetinay_elapsed_time_hours: "horas" - custom_card_eraycetinay_elapsed_time_minute: "minuto" - custom_card_eraycetinay_elapsed_time_minutes: "minutos" - custom_card_eraycetinay_elapsed_time_ago: "atrás" - custom_card_eraycetinay_elapsed_time_justnow: "justo ahora" + ulm_custom_card_eraycetinay_elapsed_time_day: "día" + ulm_custom_card_eraycetinay_elapsed_time_days: "días" + ulm_custom_card_eraycetinay_elapsed_time_hour: "hora" + ulm_custom_card_eraycetinay_elapsed_time_hours: "horas" + ulm_custom_card_eraycetinay_elapsed_time_minute: "minuto" + ulm_custom_card_eraycetinay_elapsed_time_minutes: "minutos" + ulm_custom_card_eraycetinay_elapsed_time_ago: "atrás" + ulm_custom_card_eraycetinay_elapsed_time_justnow: "justo ahora" diff --git a/custom_cards/custom_card_eraycetinay_elapsed_time/languages/hu.yaml b/custom_cards/custom_card_eraycetinay_elapsed_time/languages/hu.yaml index 848b525aa..5c29e717f 100644 --- a/custom_cards/custom_card_eraycetinay_elapsed_time/languages/hu.yaml +++ b/custom_cards/custom_card_eraycetinay_elapsed_time/languages/hu.yaml @@ -1,11 +1,11 @@ --- ulm_custom_card_eraycetinay_elapsed_time_language_variables: variables: - custom_card_eraycetinay_elapsed_time_day: "nappal" - custom_card_eraycetinay_elapsed_time_days: "nappal" - custom_card_eraycetinay_elapsed_time_hour: "órával" - custom_card_eraycetinay_elapsed_time_hours: "órával" - custom_card_eraycetinay_elapsed_time_minute: "perccel" - custom_card_eraycetinay_elapsed_time_minutes: "perccel" - custom_card_eraycetinay_elapsed_time_ago: "ezelőtt" - custom_card_eraycetinay_elapsed_time_justnow: "éppen most" + ulm_custom_card_eraycetinay_elapsed_time_day: "nappal" + ulm_custom_card_eraycetinay_elapsed_time_days: "nappal" + ulm_custom_card_eraycetinay_elapsed_time_hour: "órával" + ulm_custom_card_eraycetinay_elapsed_time_hours: "órával" + ulm_custom_card_eraycetinay_elapsed_time_minute: "perccel" + ulm_custom_card_eraycetinay_elapsed_time_minutes: "perccel" + ulm_custom_card_eraycetinay_elapsed_time_ago: "ezelőtt" + ulm_custom_card_eraycetinay_elapsed_time_justnow: "éppen most" diff --git a/custom_cards/custom_card_eraycetinay_elapsed_time/languages/pl.yaml b/custom_cards/custom_card_eraycetinay_elapsed_time/languages/pl.yaml index 9d59fd2e4..e7912b293 100644 --- a/custom_cards/custom_card_eraycetinay_elapsed_time/languages/pl.yaml +++ b/custom_cards/custom_card_eraycetinay_elapsed_time/languages/pl.yaml @@ -1,11 +1,11 @@ --- ulm_custom_card_eraycetinay_elapsed_time_language_variables: variables: - custom_card_eraycetinay_elapsed_time_day: "dzień" - custom_card_eraycetinay_elapsed_time_days: "dni" - custom_card_eraycetinay_elapsed_time_hour: "godzinę" - custom_card_eraycetinay_elapsed_time_hours: "godzin" - custom_card_eraycetinay_elapsed_time_minute: "minutę" - custom_card_eraycetinay_elapsed_time_minutes: "minut" - custom_card_eraycetinay_elapsed_time_ago: "temu" - custom_card_eraycetinay_elapsed_time_justnow: "przed chwilą" + ulm_custom_card_eraycetinay_elapsed_time_day: "dzień" + ulm_custom_card_eraycetinay_elapsed_time_days: "dni" + ulm_custom_card_eraycetinay_elapsed_time_hour: "godzinę" + ulm_custom_card_eraycetinay_elapsed_time_hours: "godzin" + ulm_custom_card_eraycetinay_elapsed_time_minute: "minutę" + ulm_custom_card_eraycetinay_elapsed_time_minutes: "minut" + ulm_custom_card_eraycetinay_elapsed_time_ago: "temu" + ulm_custom_card_eraycetinay_elapsed_time_justnow: "przed chwilą" diff --git a/custom_cards/custom_card_eraycetinay_elapsed_time/languages/tr.yaml b/custom_cards/custom_card_eraycetinay_elapsed_time/languages/tr.yaml index d3991c805..0b36ea71f 100644 --- a/custom_cards/custom_card_eraycetinay_elapsed_time/languages/tr.yaml +++ b/custom_cards/custom_card_eraycetinay_elapsed_time/languages/tr.yaml @@ -1,11 +1,11 @@ --- ulm_custom_card_eraycetinay_elapsed_time_language_variables: variables: - custom_card_eraycetinay_elapsed_time_day: "gün" - custom_card_eraycetinay_elapsed_time_days: "gün" - custom_card_eraycetinay_elapsed_time_hour: "saat" - custom_card_eraycetinay_elapsed_time_hours: "saat" - custom_card_eraycetinay_elapsed_time_minute: "dakika" - custom_card_eraycetinay_elapsed_time_minutes: "dakika" - custom_card_eraycetinay_elapsed_time_ago: "önce" - custom_card_eraycetinay_elapsed_time_justnow: "az önce" + ulm_custom_card_eraycetinay_elapsed_time_day: "gün" + ulm_custom_card_eraycetinay_elapsed_time_days: "gün" + ulm_custom_card_eraycetinay_elapsed_time_hour: "saat" + ulm_custom_card_eraycetinay_elapsed_time_hours: "saat" + ulm_custom_card_eraycetinay_elapsed_time_minute: "dakika" + ulm_custom_card_eraycetinay_elapsed_time_minutes: "dakika" + ulm_custom_card_eraycetinay_elapsed_time_ago: "önce" + ulm_custom_card_eraycetinay_elapsed_time_justnow: "az önce" diff --git a/custom_cards/custom_card_eraycetinay_lock/README.md b/custom_cards/custom_card_eraycetinay_lock/README.md index 777c75ac2..9b3bb9e06 100644 --- a/custom_cards/custom_card_eraycetinay_lock/README.md +++ b/custom_cards/custom_card_eraycetinay_lock/README.md @@ -107,6 +107,20 @@ Version: 0.0.3 no Displays a warning when the door is lock but the door is still open. + + ulm_custom_card_eraycetinay_lock_battery_sensor_binary + true + false + no + Set to true if using a binary battery sensor. Will ignore battery_warning percentage settings + + + ulm_custom_card_eraycetinay_lock_battery_sensor_binary_low_state + off + on + no + Set whether the binary sensor turns to on or off when in low state + ??? note "Template Code" diff --git a/custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml b/custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml index fc7bca7a3..fa59709a2 100644 --- a/custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/custom_card_eraycetinay_lock.yaml @@ -7,16 +7,19 @@ custom_card_eraycetinay_lock: variables: ulm_custom_card_eraycetinay_lock_battery_warning: 20 ulm_custom_card_eraycetinay_lock_battery_warning_low: 5 + ulm_custom_card_eraycetinay_lock_battery_sensor_binary: false + ulm_custom_card_eraycetinay_lock_battery_sensor_binary_low_state: "on" + ulm_custom_card_eraycetinay_lock_only_open: false tap_action: action: | [[[ return variables.ulm_custom_card_eraycetinay_lock_tap_control ? "perform-action" : "more-info"; ]]] - # only related with perform_action + # only related with perform-action perform_action: | [[[ if(variables.ulm_custom_card_eraycetinay_lock_tap_control){ - if(variables.ulm_custom_card_eraycetinay_lock_open){ + if(variables.ulm_custom_card_eraycetinay_lock_only_open){ return "lock.open"; } else { if (entity.state == "locked"){ @@ -27,7 +30,7 @@ custom_card_eraycetinay_lock: } } ]]] - # only related with perform_action + # only related with perform-action target: entity_id: | [[[ return entity.entity_id; ]]] @@ -89,10 +92,16 @@ custom_card_eraycetinay_lock: - background-color: | [[[ if (variables.ulm_custom_card_eraycetinay_lock_battery_level !== undefined) { - if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state <= variables.ulm_custom_card_eraycetinay_lock_battery_warning_low) { - return "rgba(var(--color-red),1)"; - } else if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state <= variables.ulm_custom_card_eraycetinay_lock_battery_warning) { - return "rgba(var(--color-yellow),1)"; + if (variables.ulm_custom_card_eraycetinay_lock_battery_sensor_binary) { + if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state == variables.ulm_custom_card_eraycetinay_lock_battery_sensor_binary_low_state) { + return "rgba(var(--color-red),1)"; + } + } else { + if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state <= variables.ulm_custom_card_eraycetinay_lock_battery_warning_low) { + return "rgba(var(--color-red),1)"; + } else if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state <= variables.ulm_custom_card_eraycetinay_lock_battery_warning) { + return "rgba(var(--color-yellow),1)"; + } } } ]]] @@ -106,10 +115,18 @@ custom_card_eraycetinay_lock: notification_battery: > [[[ if (variables.ulm_custom_card_eraycetinay_lock_battery_level !== undefined) { - if (variables.ulm_custom_card_eraycetinay_lock_battery_warning >= states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state) { - return ` - - `; + if (variables.ulm_custom_card_eraycetinay_lock_battery_sensor_binary) { + if (states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state == variables.ulm_custom_card_eraycetinay_lock_battery_sensor_binary_low_state) { + return ` + + `; + } + } else { + if (variables.ulm_custom_card_eraycetinay_lock_battery_warning >= states[variables.ulm_custom_card_eraycetinay_lock_battery_level].state) { + return ` + + `; + } } } ]]] diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/de.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/de.yaml index 1305d95eb..d97a28f11 100644 --- a/custom_cards/custom_card_eraycetinay_lock/languages/de.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/languages/de.yaml @@ -1,11 +1,12 @@ --- custom_card_eraycetinay_lock_language_variables: variables: - custom_card_eraycetinay_lock_locked: "verriegelt" - custom_card_eraycetinay_lock_unlocked: "entriegelt" - custom_card_eraycetinay_lock_locking: "verriegeln" - custom_card_eraycetinay_lock_unlocking: "entriegeln" - custom_card_eraycetinay_lock_unavailable: "nicht verfügbar" - custom_card_eraycetinay_lock_jammed: "blockiert" - custom_card_eraycetinay_lock_locked_and_opened: "Die Tür ist verschlossen, aber noch offen." - custom_card_eraycetinay_lock_battery_is_at: "Batterie ist an" + ulm_custom_card_eraycetinay_lock_locked: "verriegelt" + ulm_custom_card_eraycetinay_lock_unlocked: "entriegelt" + ulm_custom_card_eraycetinay_lock_locking: "verriegeln" + ulm_custom_card_eraycetinay_lock_unlocking: "entriegeln" + ulm_custom_card_eraycetinay_lock_unavailable: "nicht verfügbar" + ulm_custom_card_eraycetinay_lock_jammed: "blockiert" + ulm_custom_card_eraycetinay_lock_locked_and_opened: "Die Tür ist verschlossen, aber noch offen." + ulm_custom_card_eraycetinay_lock_battery_is_at: "Batterie ist an" + ulm_custom_card_eraycetinay_lock_battery_is_low: "Batterie schwach" diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/en.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/en.yaml index f34a60515..81579b70b 100644 --- a/custom_cards/custom_card_eraycetinay_lock/languages/en.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/languages/en.yaml @@ -1,11 +1,12 @@ --- custom_card_eraycetinay_lock_language_variables: variables: - custom_card_eraycetinay_lock_locked: "locked" - custom_card_eraycetinay_lock_unlocked: "unlocked" - custom_card_eraycetinay_lock_locking: "locking" - custom_card_eraycetinay_lock_unlocking: "unlocking" - custom_card_eraycetinay_lock_unavailable: "unavailable" - custom_card_eraycetinay_lock_jammed: "jammed" - custom_card_eraycetinay_lock_locked_and_opened: "The door is locked but still open." - custom_card_eraycetinay_lock_battery_is_at: "Battery is at" + ulm_custom_card_eraycetinay_lock_locked: "locked" + ulm_custom_card_eraycetinay_lock_unlocked: "unlocked" + ulm_custom_card_eraycetinay_lock_locking: "locking" + ulm_custom_card_eraycetinay_lock_unlocking: "unlocking" + ulm_custom_card_eraycetinay_lock_unavailable: "unavailable" + ulm_custom_card_eraycetinay_lock_jammed: "jammed" + ulm_custom_card_eraycetinay_lock_locked_and_opened: "The door is locked but still open." + ulm_custom_card_eraycetinay_lock_battery_is_at: "Battery is at" + ulm_custom_card_eraycetinay_lock_battery_is_low: "Battery is low" diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/es.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/es.yaml index 637d3c74c..3281e2ee1 100644 --- a/custom_cards/custom_card_eraycetinay_lock/languages/es.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/languages/es.yaml @@ -1,11 +1,12 @@ --- custom_card_eraycetinay_lock_language_variables: variables: - custom_card_eraycetinay_lock_locked: "bloqueado" - custom_card_eraycetinay_lock_unlocked: "desbloqueado" - custom_card_eraycetinay_lock_locking: "bloqueando" - custom_card_eraycetinay_lock_unlocking: "desbloqueando" - custom_card_eraycetinay_lock_unavailable: "no disponible" - custom_card_eraycetinay_lock_jammed: "apretada" - custom_card_eraycetinay_lock_locked_and_opened: "La puerta está cerrada pero aún abierta." - custom_card_eraycetinay_lock_battery_is_at: "la batería está en" + ulm_custom_card_eraycetinay_lock_locked: "bloqueado" + ulm_custom_card_eraycetinay_lock_unlocked: "desbloqueado" + ulm_custom_card_eraycetinay_lock_locking: "bloqueando" + ulm_custom_card_eraycetinay_lock_unlocking: "desbloqueando" + ulm_custom_card_eraycetinay_lock_unavailable: "no disponible" + ulm_custom_card_eraycetinay_lock_jammed: "apretada" + ulm_custom_card_eraycetinay_lock_locked_and_opened: "La puerta está cerrada pero aún abierta." + ulm_custom_card_eraycetinay_lock_battery_is_at: "la batería está en" + ulm_custom_card_eraycetinay_lock_battery_is_low: "La batería está baja" diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml index b00d13270..edfaba02f 100644 --- a/custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/languages/pl.yaml @@ -1,11 +1,12 @@ --- custom_card_eraycetinay_lock_language_variables: variables: - custom_card_eraycetinay_lock_locked: "zamknięty" - custom_card_eraycetinay_lock_unlocked: "otwarty" - custom_card_eraycetinay_lock_locking: "zamykanie" - custom_card_eraycetinay_lock_unlocking: "otwieranie" - custom_card_eraycetinay_lock_unavailable: "niedostępny" - custom_card_eraycetinay_lock_jammed: "zacięty" - custom_card_eraycetinay_lock_locked_and_opened: "Drzwi są zamknięte, ale nadal otwarte." - custom_card_eraycetinay_lock_battery_is_at: "Bateria jest na" + ulm_custom_card_eraycetinay_lock_locked: "zamknięty" + ulm_custom_card_eraycetinay_lock_unlocked: "otwarty" + ulm_custom_card_eraycetinay_lock_locking: "zamykanie" + ulm_custom_card_eraycetinay_lock_unlocking: "otwieranie" + ulm_custom_card_eraycetinay_lock_unavailable: "niedostępny" + ulm_custom_card_eraycetinay_lock_jammed: "zacięty" + ulm_custom_card_eraycetinay_lock_locked_and_opened: "Drzwi są zamknięte, ale nadal otwarte." + ulm_custom_card_eraycetinay_lock_battery_is_at: "Bateria jest na" + ulm_custom_card_eraycetinay_lock_battery_is_low: "Bateria jest słaba" diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml index 707eab945..858d90629 100644 --- a/custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/languages/sv.yaml @@ -1,11 +1,12 @@ --- custom_card_eraycetinay_lock_language_variables: variables: - custom_card_eraycetinay_lock_locked: "låst" - custom_card_eraycetinay_lock_unlocked: "olåst" - custom_card_eraycetinay_lock_locking: "låser" - custom_card_eraycetinay_lock_unlocking: "låser upp" - custom_card_eraycetinay_lock_unavailable: "otillgängligt" - custom_card_eraycetinay_lock_jammed: "fastnat" - custom_card_eraycetinay_lock_locked_and_opened: "Dörren är låst men fortfarande öppen." - custom_card_eraycetinay_lock_battery_is_at: "Batterinivån är" + ulm_custom_card_eraycetinay_lock_locked: "låst" + ulm_custom_card_eraycetinay_lock_unlocked: "olåst" + ulm_custom_card_eraycetinay_lock_locking: "låser" + ulm_custom_card_eraycetinay_lock_unlocking: "låser upp" + ulm_custom_card_eraycetinay_lock_unavailable: "otillgängligt" + ulm_custom_card_eraycetinay_lock_jammed: "fastnat" + ulm_custom_card_eraycetinay_lock_locked_and_opened: "Dörren är låst men fortfarande öppen." + ulm_custom_card_eraycetinay_lock_battery_is_at: "Batterinivån är" + ulm_custom_card_eraycetinay_lock_battery_is_low: "Batteriet är lågt" diff --git a/custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml b/custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml index e612ab5f2..71087a982 100644 --- a/custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml +++ b/custom_cards/custom_card_eraycetinay_lock/languages/tr.yaml @@ -1,11 +1,12 @@ --- custom_card_eraycetinay_lock_language_variables: variables: - custom_card_eraycetinay_lock_locked: "kilitli" - custom_card_eraycetinay_lock_unlocked: "kilitli değil" - custom_card_eraycetinay_lock_locking: "kilitleniyor" - custom_card_eraycetinay_lock_unlocking: "kilit açılıyor" - custom_card_eraycetinay_lock_unavailable: "müsait değil" - custom_card_eraycetinay_lock_jammed: "sıkışmış" - custom_card_eraycetinay_lock_locked_and_opened: "Kapı kilitli ama hala açık" - custom_card_eraycetinay_lock_battery_is_at: "pil" + ulm_custom_card_eraycetinay_lock_locked: "kilitli" + ulm_custom_card_eraycetinay_lock_unlocked: "kilitli değil" + ulm_custom_card_eraycetinay_lock_locking: "kilitleniyor" + ulm_custom_card_eraycetinay_lock_unlocking: "kilit açılıyor" + ulm_custom_card_eraycetinay_lock_unavailable: "müsait değil" + ulm_custom_card_eraycetinay_lock_jammed: "sıkışmış" + ulm_custom_card_eraycetinay_lock_locked_and_opened: "Kapı kilitli ama hala açık" + ulm_custom_card_eraycetinay_lock_battery_is_at: "pil" + ulm_custom_card_eraycetinay_lock_battery_is_low: "pil zayıf" diff --git a/custom_cards/custom_card_esh_welcome/custom_card_esh_welcome.yaml b/custom_cards/custom_card_esh_welcome/custom_card_esh_welcome.yaml index d2c089bf3..5a9b32266 100644 --- a/custom_cards/custom_card_esh_welcome/custom_card_esh_welcome.yaml +++ b/custom_cards/custom_card_esh_welcome/custom_card_esh_welcome.yaml @@ -405,9 +405,9 @@ card_esh_welcome_topbar: type: "custom:button-card" template: "chips" tap_action: - action: "call-service" - service: "input_boolean.toggle" - service_data: + action: "perform-action" + perform_action: "input_boolean.toggle" + target: entity_id: "[[[ return variables.ulm_card_esh_welcome_collapse ]]]" show_icon: true icon: "mdi:chevron-up" diff --git a/custom_cards/custom_card_haven_washer/custom_card_haven_washer.yaml b/custom_cards/custom_card_haven_washer/custom_card_haven_washer.yaml index 0ebb86562..42561ff34 100644 --- a/custom_cards/custom_card_haven_washer/custom_card_haven_washer.yaml +++ b/custom_cards/custom_card_haven_washer/custom_card_haven_washer.yaml @@ -565,10 +565,11 @@ custom_card_haven_washer: type: "custom:button-card" template: "widget_icon" tap_action: - action: "call-service" - service: "input_datetime.set_datetime" - service_data: + action: "perform-action" + perform_action: "input_datetime.set_datetime" + target: entity_id: "[[[ return variables.ulm_custom_card_washer_delayed_starttime; ]]]" + data: time: > [[[ if (!!variables.ulm_custom_card_washer_delayed_starttime @@ -597,10 +598,11 @@ custom_card_haven_washer: type: "custom:button-card" template: "custom_card_haven_washer_delayed_text" tap_action: - action: "call-service" - service: "input_datetime.set_datetime" - service_data: + action: "perform-action" + perform_action: "input_datetime.set_datetime" + target: entity_id: "[[[ return variables.ulm_custom_card_washer_delayed_starttime; ]]]" + data: time: > [[[ if (!!variables.ulm_custom_card_washer_delayed_starttime @@ -624,10 +626,11 @@ custom_card_haven_washer: } ]]] hold_action: - action: "call-service" - service: "input_datetime.set_datetime" - service_data: + action: "perform-action" + perform_action: "input_datetime.set_datetime" + target: entity_id: "[[[ variables.ulm_custom_card_washer_delayed_starttime ]]]" + data: time: > [[[ if (!!variables.ulm_custom_card_washer_delayed_starttime @@ -656,10 +659,11 @@ custom_card_haven_washer: type: "custom:button-card" template: "widget_icon" tap_action: - action: "call-service" - service: "input_datetime.set_datetime" - service_data: + action: "perform-action" + perform_action: "input_datetime.set_datetime" + target: entity_id: "[[[ return variables.ulm_custom_card_washer_delayed_starttime ]]]" + data: time: > [[[ if (!!variables.ulm_custom_card_washer_delayed_starttime diff --git a/custom_cards/custom_card_heat_pump/custom_card_heat_pump.yaml b/custom_cards/custom_card_heat_pump/custom_card_heat_pump.yaml index df0477091..b3097b1ba 100644 --- a/custom_cards/custom_card_heat_pump/custom_card_heat_pump.yaml +++ b/custom_cards/custom_card_heat_pump/custom_card_heat_pump.yaml @@ -99,10 +99,11 @@ custom_card_heat_pump: template: "widget_icon" icon: "mdi:arrow-down" tap_action: - action: "call-service" - service: "climate.set_temperature" - service_data: + action: "perform-action" + perform_action: "climate.set_temperature" + target: entity_id: "[[[ return entity.entity_id ]]]" + data: temperature: "[[[ return entity.attributes.temperature - entity.attributes.target_temp_step ]]]" item2: card: @@ -120,10 +121,11 @@ custom_card_heat_pump: template: "widget_icon" icon: "mdi:arrow-up" tap_action: - action: "call-service" - service: "climate.set_temperature" - service_data: + action: "perform-action" + perform_action: "climate.set_temperature" + target: entity_id: "[[[ return entity.entity_id ]]]" + data: temperature: "[[[ return entity.attributes.temperature + entity.attributes.target_temp_step ]]]" item3: card: @@ -133,19 +135,21 @@ custom_card_heat_pump: template: "widget_icon_juve" icon: "mdi:power" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" + data: hvac_mode: "off" - type: "custom:button-card" template: "widget_icon_juve" icon: "mdi:fire" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" + data: hvac_mode: "heat" styles: icon: @@ -170,10 +174,11 @@ custom_card_heat_pump: template: "widget_icon_juve" icon: "mdi:snowflake" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" + data: hvac_mode: "cool" styles: icon: @@ -198,10 +203,11 @@ custom_card_heat_pump: template: "widget_icon_juve" icon: "mdi:sync" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" + data: hvac_mode: "heat_cool" styles: icon: @@ -226,10 +232,11 @@ custom_card_heat_pump: template: "widget_icon_juve" icon: "mdi:water" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" + data: hvac_mode: "dry" styles: icon: @@ -254,10 +261,11 @@ custom_card_heat_pump: template: "widget_icon_juve" icon: "mdi:fan" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return entity.entity_id ]]]" + data: hvac_mode: "fan_only" styles: icon: diff --git a/custom_cards/custom_card_httpedo13_thermostat/custom_card_httpedo13_thermostat.yaml b/custom_cards/custom_card_httpedo13_thermostat/custom_card_httpedo13_thermostat.yaml index f1c44182c..254bf35c3 100644 --- a/custom_cards/custom_card_httpedo13_thermostat/custom_card_httpedo13_thermostat.yaml +++ b/custom_cards/custom_card_httpedo13_thermostat/custom_card_httpedo13_thermostat.yaml @@ -75,10 +75,11 @@ custom_card_httpedo13_thermostat_with_buttons: return 'var(--card-background-color)'; ]]] tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return variables.entity ]]]" + data: hvac_mode: | [[[ if (states[variables.entity].state == "off"){ @@ -109,10 +110,11 @@ custom_card_httpedo13_thermostat_with_buttons: - "icon_info" - "custom_card_httpedo13_thermostat" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return variables.entity ]]]" + data: hvac_mode: | [[[ if (states[variables.entity].state == "off"){ @@ -157,11 +159,12 @@ custom_card_httpedo13_thermostat_with_buttons: template: "widget_icon_for_thermostat" entity: "[[[ return variables.entity ]]]" tap_action: - action: "call-service" - service: "climate.set_temperature" - service_data: - temperature: "[[[ return (parseFloat(states[variables.entity].attributes.temperature) - 0.5) ]]]" + action: "perform-action" + perform_action: "climate.set_temperature" + target: entity_id: "[[[ return variables.entity ]]]" + data: + temperature: "[[[ return (parseFloat(states[variables.entity].attributes.temperature) - 0.5) ]]]" icon: "mdi:minus" item2: card: @@ -177,11 +180,12 @@ custom_card_httpedo13_thermostat_with_buttons: template: "widget_icon_for_thermostat" entity: "[[[ return variables.entity ]]]" tap_action: - action: "call-service" - service: "climate.set_temperature" - service_data: - temperature: "[[[ return (parseFloat(states[variables.entity].attributes.temperature) + 0.5) ]]]" + action: "perform-action" + perform_action: "climate.set_temperature" + target: entity_id: "[[[ return variables.entity ]]]" + data: + temperature: "[[[ return (parseFloat(states[variables.entity].attributes.temperature) + 0.5) ]]]" icon: "mdi:plus" custom_card_httpedo13_thermostat_with_buttons_collapse: @@ -204,10 +208,11 @@ custom_card_httpedo13_thermostat_with_buttons_collapse: return 'var(--card-background-color)'; ]]] tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return variables.entity ]]]" + data: hvac_mode: | [[[ if (states[variables.entity].state == "off"){ @@ -238,10 +243,11 @@ custom_card_httpedo13_thermostat_with_buttons_collapse: - "icon_info" - "custom_card_httpedo13_thermostat" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return variables.entity ]]]" + data: hvac_mode: | [[[ if (states[variables.entity].state == "off"){ @@ -291,11 +297,12 @@ custom_card_httpedo13_thermostat_with_buttons_collapse: template: "widget_icon_for_thermostat" entity: "[[[ return variables.entity ]]]" tap_action: - action: "call-service" - service: "climate.set_temperature" - service_data: - temperature: "[[[ return (parseFloat(states[variables.entity].attributes.temperature) - 0.5) ]]]" + action: "perform-action" + perform_action: "climate.set_temperature" + target: entity_id: "[[[ return variables.entity ]]]" + data: + temperature: "[[[ return (parseFloat(states[variables.entity].attributes.temperature) - 0.5) ]]]" icon: "mdi:minus" item2: card: @@ -311,11 +318,12 @@ custom_card_httpedo13_thermostat_with_buttons_collapse: template: "widget_icon_for_thermostat" entity: "[[[ return variables.entity ]]]" tap_action: - action: "call-service" - service: "climate.set_temperature" - service_data: - temperature: "[[[ return (parseFloat(states[variables.entity].attributes.temperature) + 0.5) ]]]" + action: "perform-action" + perform_action: "climate.set_temperature" + target: entity_id: "[[[ return variables.entity ]]]" + data: + temperature: "[[[ return (parseFloat(states[variables.entity].attributes.temperature) + 0.5) ]]]" icon: "mdi:plus" widget_current_temperature: diff --git a/custom_cards/custom_card_input_datetime/card_input_datetime.yaml b/custom_cards/custom_card_input_datetime/card_input_datetime.yaml index 87d917e2b..9657ff71a 100644 --- a/custom_cards/custom_card_input_datetime/card_input_datetime.yaml +++ b/custom_cards/custom_card_input_datetime/card_input_datetime.yaml @@ -37,10 +37,11 @@ card_input_datetime: type: "custom:button-card" template: "widget_icon" tap_action: - action: "call-service" - service: "input_datetime.set_datetime" - service_data: + action: "perform-action" + perform_action: "input_datetime.set_datetime" + target: entity_id: "[[[ return entity.entity_id ]]]" + data: time: > [[[ var timestamp = entity.attributes.timestamp @@ -68,10 +69,11 @@ card_input_datetime: template: "widget_text" entity: "[[[ return entity.entity_id ]]]" tap_action: - action: "call-service" - service: "input_datetime.set_datetime" - service_data: + action: "perform-action" + perform_action: "input_datetime.set_datetime" + target: entity_id: "[[[ return entity.entity_id ]]]" + data: time: > [[[ var timestamp = entity.attributes.timestamp @@ -93,10 +95,11 @@ card_input_datetime: return formattedTime; ]]] hold_action: - action: "call-service" - service: "input_datetime.set_datetime" - service_data: + action: "perform-action" + perform_action: "input_datetime.set_datetime" + target: entity_id: "[[[ return entity.entity_id ]]]" + data: time: > [[[ var timestamp = entity.attributes.timestamp @@ -123,10 +126,11 @@ card_input_datetime: type: "custom:button-card" template: "widget_icon" tap_action: - action: "call-service" - service: "input_datetime.set_datetime" - service_data: + action: "perform-action" + perform_action: "input_datetime.set_datetime" + target: entity_id: "[[[ return entity.entity_id ]]]" + data: time: > [[[ var timestamp = entity.attributes.timestamp 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 d4a204be1..0c126cd39 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 @@ -30,11 +30,9 @@ custom_card_irmajavi_speedtest: show_name: true show_icon: true label: >- - [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_model - ]]] + [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_model ]]] name: >- - [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_name - ]]] + [[[ return variables.ulm_custom_card_irmajavi_speedtest_router_name ]]] icon: "mdi:wifi" styles: icon: @@ -72,9 +70,9 @@ custom_card_irmajavi_speedtest: card: type: "custom:button-card" tap_action: - action: "call-service" - service: "homeassistant.update_entity" - service_data: + action: "perform-action" + perform_action: "homeassistant.update_entity" + target: entity_id: - "[[[ return variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity]]]" - "[[[ return variables.ulm_custom_card_irmajavi_speedtest_upload_speed_entity]]]" @@ -146,15 +144,13 @@ custom_card_irmajavi_speedtest: item1: card: type: "custom:button-card" - tap_action: - action: "more-info" color: "var(--google-blue)" show_label: true show_icon: false name: "[[[ return variables.ulm_custom_card_irmajavi_speedtest_download ]]]" entity: >- [[[ return - variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity; + variables.ulm_custom_card_irmajavi_speedtest_download_speed_entity; ]]] label: | [[[ @@ -209,10 +205,10 @@ custom_card_irmajavi_speedtest: [[[ 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 = 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; ]]] diff --git a/custom_cards/custom_card_media_player_sonos/custom_card_media_player_sonos.yaml b/custom_cards/custom_card_media_player_sonos/custom_card_media_player_sonos.yaml index 9bfc4c1cc..3213ca9f0 100644 --- a/custom_cards/custom_card_media_player_sonos/custom_card_media_player_sonos.yaml +++ b/custom_cards/custom_card_media_player_sonos/custom_card_media_player_sonos.yaml @@ -58,9 +58,9 @@ card_media_player_sonos_with_controls: type: "custom:button-card" template: "widget_icon" tap_action: - action: "call-service" - service: "media_player.volume_down" - service_data: + action: "perform-action" + perform_action: "media_player.volume_down" + target: entity_id: "[[[ return variables.ulm_card_media_player_with_controls_entity ]]]" icon: "mdi:volume-minus" item2: @@ -69,9 +69,9 @@ card_media_player_sonos_with_controls: template: "widget_icon" entity: "[[[ return variables.ulm_card_media_player_with_controls_entity ]]]" tap_action: - action: "call-service" - service: "media_player.media_play_pause" - service_data: + action: "perform-action" + perform_action: "media_player.media_play_pause" + target: entity_id: "[[[ return variables.ulm_card_media_player_with_controls_entity ]]]" icon: "mdi:pause" state: @@ -84,9 +84,9 @@ card_media_player_sonos_with_controls: type: "custom:button-card" template: "widget_icon" tap_action: - action: "call-service" - service: "media_player.volume_up" - service_data: + action: "perform-action" + perform_action: "media_player.volume_up" + target: entity_id: "[[[ return variables.ulm_card_media_player_with_controls_entity ]]]" icon: "mdi:volume-plus" diff --git a/custom_cards/custom_card_mpse_thermostat/custom_card_mpse_thermostat.yaml b/custom_cards/custom_card_mpse_thermostat/custom_card_mpse_thermostat.yaml index c8870299a..ab63cb2fd 100644 --- a/custom_cards/custom_card_mpse_thermostat/custom_card_mpse_thermostat.yaml +++ b/custom_cards/custom_card_mpse_thermostat/custom_card_mpse_thermostat.yaml @@ -85,10 +85,11 @@ custom_card_mpse_thermostat: template: "widget_icon" icon: "mdi:arrow-down" tap_action: - action: "call-service" - service: "climate.set_temperature" - service_data: + action: "perform-action" + perform_action: "climate.set_temperature" + target: entity_id: "[[[ return entity.entity_id ]]]" + data: temperature: "[[[ return entity.attributes.temperature - entity.attributes.target_temp_step ]]]" item2: card: @@ -106,8 +107,9 @@ custom_card_mpse_thermostat: template: "widget_icon" icon: "mdi:arrow-up" tap_action: - action: "call-service" - service: "climate.set_temperature" - service_data: + action: "perform-action" + perform_action: "climate.set_temperature" + target: entity_id: "[[[ return entity.entity_id ]]]" + data: temperature: "[[[ return entity.attributes.temperature + entity.attributes.target_temp_step ]]]" diff --git a/custom_cards/custom_card_neekster_update/custom_card_neekster_update.yaml b/custom_cards/custom_card_neekster_update/custom_card_neekster_update.yaml index 792e5101b..749e83ff9 100644 --- a/custom_cards/custom_card_neekster_update/custom_card_neekster_update.yaml +++ b/custom_cards/custom_card_neekster_update/custom_card_neekster_update.yaml @@ -131,9 +131,9 @@ card_neekster_update: hold_action: action: "more-info" tap_action: - action: "call-service" - service: "update.install" - service_data: + action: "perform-action" + perform_action: "update.install" + target: entity_id: "[[[ return entity.entity_id ]]]" icon: "mdi:package-down" item2: @@ -142,13 +142,13 @@ card_neekster_update: template: "widget_icon" entity: "[[[ return entity.entity_id ]]]" hold_action: - action: "call-service" - service: "update.clear_skipped" - service_data: + action: "cperform-action" + perform_action: "update.clear_skipped" + target: entity_id: "[[[ return entity.entity_id ]]]" tap_action: - action: "call-service" - service: "update.skip" - service_data: + action: "perform-action" + perform_action: "update.skip" + target: entity_id: "[[[ return entity.entity_id ]]]" icon: "mdi:cancel" diff --git a/custom_cards/custom_card_nik_clock/custom_card_nik_clock.yaml b/custom_cards/custom_card_nik_clock/custom_card_nik_clock.yaml index bb7860f0f..e85f8476f 100644 --- a/custom_cards/custom_card_nik_clock/custom_card_nik_clock.yaml +++ b/custom_cards/custom_card_nik_clock/custom_card_nik_clock.yaml @@ -32,14 +32,14 @@ custom_card_nik_clock: action: > [[[ if (variables.ulm_custom_card_nik_clock_switch_enable){ - return 'call-service' + return 'perform-action' } else{ return 'none' } ]]] - service: "input_boolean.toggle" - service_data: + perform_action: "input_boolean.toggle" + target: entity_id: "[[[ return variables.ulm_custom_card_nik_clock_switch ]]]" styles: card: diff --git a/custom_cards/custom_card_nik_door/custom_card_nik_door.yaml b/custom_cards/custom_card_nik_door/custom_card_nik_door.yaml index 58a53a644..b533f2dc1 100644 --- a/custom_cards/custom_card_nik_door/custom_card_nik_door.yaml +++ b/custom_cards/custom_card_nik_door/custom_card_nik_door.yaml @@ -112,9 +112,9 @@ custom_card_nik_door: icon: "mdi:lock-open-variant" entity: "[[[ return entity.entity_id ]]]" tap_action: - action: "call-service" - service: "lock.open" - service_data: + action: "perform-action" + perform_action: "lock.open" + target: entity_id: "[[[ return variables.ulm_custom_card_entity_1_lock ]]]" state: - value: "Open" @@ -136,9 +136,9 @@ custom_card_nik_door: icon: "mdi:lock" entity: "[[[ return entity.entity_id ]]]" tap_action: - action: "call-service" - service: "lock.lock" - service_data: + action: "perform-action" + perform_action: "lock.lock" + target: entity_id: "[[[ return variables.ulm_custom_card_entity_1_lock ]]]" state: - value: "Closed & Locked" diff --git a/custom_cards/custom_card_nik_tablet/custom_card_nik_tablet.yaml b/custom_cards/custom_card_nik_tablet/custom_card_nik_tablet.yaml index aa8398ca8..07168fbbe 100644 --- a/custom_cards/custom_card_nik_tablet/custom_card_nik_tablet.yaml +++ b/custom_cards/custom_card_nik_tablet/custom_card_nik_tablet.yaml @@ -100,9 +100,9 @@ custom_card_nik_tablet: entity: "[[[ return variables.ulm_custom_card_nik_tablet_restart ]]]" icon: "mdi:restart-alert" tap_action: - action: "call-service" - service: "button.press" - service_data: + action: "perform-action" + perform_action: "button.press" + target: entity_id: "[[[ return variables.ulm_custom_card_nik_tablet_restart ]]]" item2: card: @@ -121,9 +121,9 @@ custom_card_nik_tablet: entity: "[[[ return variables.ulm_custom_card_nik_tablet_reload ]]]" icon: "mdi:reload" tap_action: - action: "call-service" - service: "button.press" - service_data: + action: "perform-action" + perform_action: "button.press" + target: entity_id: "[[[ return variables.ulm_custom_card_nik_tablet_reload ]]]" item4: card: diff --git a/custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml b/custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml index 1fee063b8..86cf79ab5 100644 --- a/custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml +++ b/custom_cards/custom_card_paddy_dwd_pollen/custom_card_paddy_dwd_pollen.yaml @@ -2,7 +2,7 @@ custom_card_paddy_dwd_pollen: template: - "card_generic_swap" - - "custom_card_paddy_dwd_pollen_language_variables" + - "ulm_custom_card_paddy_dwd_pollen_language_variables" variables: ulm_card_generic_swap_name: "[[[ return variables.ulm_custom_card_paddy_dwd_pollen_name; ]]]" ulm_card_generic_swap_icon: "[[[ return variables.ulm_custom_card_paddy_dwd_pollen_icon; ]]]" @@ -17,27 +17,6 @@ custom_card_paddy_dwd_pollen: card: type: "custom:button-card" entity: "[[[ return entity.entity_id ]]]" - item2: - card: - type: "custom:button-card" - entity: "[[[ return entity.entity_id ]]]" - label: > - [[[ - if (entity.state == "6"){ - return variables.custom_card_paddy_dwd_pollen_6; - } else if (entity.state == "5"){ - return variables.custom_card_paddy_dwd_pollen_5; - } else if (entity.state == "4"){ - return variables.custom_card_paddy_dwd_pollen_4; - } else if (entity.state == "3"){ - return variables.custom_card_paddy_dwd_pollen_3; - } else if (entity.state == "2"){ - return variables.custom_card_paddy_dwd_pollen_2; - } else if (entity.state == "1"){ - return variables.custom_card_paddy_dwd_pollen_1; - } - return variables.custom_card_paddy_dwd_pollen_none; - ]]] state: - value: "6" styles: @@ -67,3 +46,24 @@ custom_card_paddy_dwd_pollen: styles: icon: - color: "rgba(var(--color-theme),0.2)" + item2: + card: + type: "custom:button-card" + entity: "[[[ return entity.entity_id ]]]" + label: > + [[[ + if (entity.state == "6"){ + return variables.ulm_custom_card_paddy_dwd_pollen_6; + } else if (entity.state == "5"){ + return variables.ulm_custom_card_paddy_dwd_pollen_5; + } else if (entity.state == "4"){ + return variables.ulm_custom_card_paddy_dwd_pollen_4; + } else if (entity.state == "3"){ + return variables.ulm_custom_card_paddy_dwd_pollen_3; + } else if (entity.state == "2"){ + return variables.ulm_custom_card_paddy_dwd_pollen_2; + } else if (entity.state == "1"){ + return variables.ulm_custom_card_paddy_dwd_pollen_1; + } + return variables.ulm_custom_card_paddy_dwd_pollen_none; + ]]] diff --git a/custom_cards/custom_card_paddy_dwd_pollen/languages/de.yaml b/custom_cards/custom_card_paddy_dwd_pollen/languages/de.yaml index be9723597..06b5d8a1f 100644 --- a/custom_cards/custom_card_paddy_dwd_pollen/languages/de.yaml +++ b/custom_cards/custom_card_paddy_dwd_pollen/languages/de.yaml @@ -1,10 +1,10 @@ --- -custom_card_paddy_dwd_pollen_language_variables: +ulm_custom_card_paddy_dwd_pollen_language_variables: variables: - custom_card_paddy_dwd_pollen_6: "hoch" - custom_card_paddy_dwd_pollen_5: "mittel bis hoch" - custom_card_paddy_dwd_pollen_4: "mittel" - custom_card_paddy_dwd_pollen_3: "gering bis mittel" - custom_card_paddy_dwd_pollen_2: "gering" - custom_card_paddy_dwd_pollen_1: "keine bis gering" - custom_card_paddy_dwd_pollen_none: "keine" + ulm_custom_card_paddy_dwd_pollen_6: "hoch" + ulm_custom_card_paddy_dwd_pollen_5: "mittel bis hoch" + ulm_custom_card_paddy_dwd_pollen_4: "mittel" + ulm_custom_card_paddy_dwd_pollen_3: "gering bis mittel" + ulm_custom_card_paddy_dwd_pollen_2: "gering" + ulm_custom_card_paddy_dwd_pollen_1: "keine bis gering" + ulm_custom_card_paddy_dwd_pollen_none: "keine" diff --git a/custom_cards/custom_card_paddy_dwd_pollen/languages/en.yaml b/custom_cards/custom_card_paddy_dwd_pollen/languages/en.yaml index 2e1ab807f..ae15ef735 100644 --- a/custom_cards/custom_card_paddy_dwd_pollen/languages/en.yaml +++ b/custom_cards/custom_card_paddy_dwd_pollen/languages/en.yaml @@ -1,10 +1,10 @@ --- -custom_card_paddy_dwd_pollen_language_variables: +ulm_custom_card_paddy_dwd_pollen_language_variables: variables: - custom_card_paddy_dwd_pollen_6: "high" - custom_card_paddy_dwd_pollen_5: "medium to high" - custom_card_paddy_dwd_pollen_4: "medium" - custom_card_paddy_dwd_pollen_3: "low to mediuml" - custom_card_paddy_dwd_pollen_2: "low" - custom_card_paddy_dwd_pollen_1: "none to low" - custom_card_paddy_dwd_pollen_none: "none" + ulm_custom_card_paddy_dwd_pollen_6: "high" + ulm_custom_card_paddy_dwd_pollen_5: "medium to high" + ulm_custom_card_paddy_dwd_pollen_4: "medium" + ulm_custom_card_paddy_dwd_pollen_3: "low to mediuml" + ulm_custom_card_paddy_dwd_pollen_2: "low" + ulm_custom_card_paddy_dwd_pollen_1: "none to low" + ulm_custom_card_paddy_dwd_pollen_none: "none" diff --git a/custom_cards/custom_card_paddy_dwd_pollen/languages/es.yaml b/custom_cards/custom_card_paddy_dwd_pollen/languages/es.yaml index 274ee9bd4..789edbaca 100644 --- a/custom_cards/custom_card_paddy_dwd_pollen/languages/es.yaml +++ b/custom_cards/custom_card_paddy_dwd_pollen/languages/es.yaml @@ -1,10 +1,10 @@ --- -custom_card_paddy_dwd_pollen_language_variables: +ulm_custom_card_paddy_dwd_pollen_language_variables: variables: - custom_card_paddy_dwd_pollen_6: "alto" - custom_card_paddy_dwd_pollen_5: "medio a alto" - custom_card_paddy_dwd_pollen_4: "medio" - custom_card_paddy_dwd_pollen_3: "bajo a medio" - custom_card_paddy_dwd_pollen_2: "bajo" - custom_card_paddy_dwd_pollen_1: "ninguno a bajo" - custom_card_paddy_dwd_pollen_none: "ninguno" + ulm_custom_card_paddy_dwd_pollen_6: "alto" + ulm_custom_card_paddy_dwd_pollen_5: "medio a alto" + ulm_custom_card_paddy_dwd_pollen_4: "medio" + ulm_custom_card_paddy_dwd_pollen_3: "bajo a medio" + ulm_custom_card_paddy_dwd_pollen_2: "bajo" + ulm_custom_card_paddy_dwd_pollen_1: "ninguno a bajo" + ulm_custom_card_paddy_dwd_pollen_none: "ninguno" diff --git a/custom_cards/custom_card_paddy_dwd_pollen/languages/pl.yaml b/custom_cards/custom_card_paddy_dwd_pollen/languages/pl.yaml index a3f4092fb..4bf91dd47 100644 --- a/custom_cards/custom_card_paddy_dwd_pollen/languages/pl.yaml +++ b/custom_cards/custom_card_paddy_dwd_pollen/languages/pl.yaml @@ -1,10 +1,10 @@ --- -custom_card_paddy_dwd_pollen_language_variables: +ulm_custom_card_paddy_dwd_pollen_language_variables: variables: - custom_card_paddy_dwd_pollen_6: "bardzo wysokie" - custom_card_paddy_dwd_pollen_5: "wysokie" - custom_card_paddy_dwd_pollen_4: "średnie" - custom_card_paddy_dwd_pollen_3: "umiarkowane" - custom_card_paddy_dwd_pollen_2: "słabe" - custom_card_paddy_dwd_pollen_1: "bardzo słabe" - custom_card_paddy_dwd_pollen_none: "brak" + ulm_custom_card_paddy_dwd_pollen_6: "bardzo wysokie" + ulm_custom_card_paddy_dwd_pollen_5: "wysokie" + ulm_custom_card_paddy_dwd_pollen_4: "średnie" + ulm_custom_card_paddy_dwd_pollen_3: "umiarkowane" + ulm_custom_card_paddy_dwd_pollen_2: "słabe" + ulm_custom_card_paddy_dwd_pollen_1: "bardzo słabe" + ulm_custom_card_paddy_dwd_pollen_none: "brak" diff --git a/custom_cards/custom_card_saxel_fan/custom_card_saxel_fan.yaml b/custom_cards/custom_card_saxel_fan/custom_card_saxel_fan.yaml index d175b17f3..14b60ab0f 100644 --- a/custom_cards/custom_card_saxel_fan/custom_card_saxel_fan.yaml +++ b/custom_cards/custom_card_saxel_fan/custom_card_saxel_fan.yaml @@ -198,10 +198,11 @@ custom_card_saxel_fan_common: icon: "[[[ return variables.ulm_button_icon ]]]" entity: "[[[ return entity.entity_id ]]]" tap_action: - action: "call-service" - service: "[[[ return variables.ulm_button_service ]]]" - service_data: + action: "perform-action" + perform_action: "[[[ return variables.ulm_button_service ]]]" + target: entity_id: "[[[ return entity.entity_id; ]]]" + data: oscillating: "[[[ return !entity.attributes[variables.oscillate_attribute] ]]]" template: - "widget_icon" diff --git a/custom_cards/custom_card_scenes/README.md b/custom_cards/custom_card_scenes/README.md index db64478f9..01562ba97 100644 --- a/custom_cards/custom_card_scenes/README.md +++ b/custom_cards/custom_card_scenes/README.md @@ -3,6 +3,7 @@ title: Scenes Card Custom-card hide: - toc --- + # Custom-card "Scenes Card" @@ -21,76 +22,76 @@ Version: 1.2.0
    1.2.0 - ```yaml - #OLD +```yaml +#OLD - type: "custom:button-card" - template: - - card_scenes - variables: - entity_1: "scene.YOUR_SCENE" - entity_2: "scene.YOUR_SCENE" - entity_3: "scene.YOUR_SCENE" - entity_4: "scene.YOUR_SCENE" - entity_5: "scene.YOUR_SCENE" - name_1: "YOUR_NAME" - name_2: "YOUR_NAME" - name_3: "YOUR_NAME" - name_4: "YOUR_NAME" - name_5: "YOUR_NAME" - icon_1: "mdi:YOUR_ICON" - icon_2: "mdi:YOUR_ICON" - icon_3: "mdi:YOUR_ICON" - icon_4: "mdi:YOUR_ICON" - icon_5: "mdi:YOUR_ICON" - color_icon_1: "yellow" - color_icon_2: "blue" - color_icon_3: "purple" - color_icon_4: "green" - color_icon_5: "red" - color_bg_1: "yellow" - color_bg_2: "blue" - color_bg_3: "purple" - color_bg_4: "green" - color_bg_5: "red" - ``` - - ```yaml - #NEW + template: + - card_scenes + variables: + entity_1: "scene.YOUR_SCENE" + entity_2: "scene.YOUR_SCENE" + entity_3: "scene.YOUR_SCENE" + entity_4: "scene.YOUR_SCENE" + entity_5: "scene.YOUR_SCENE" + name_1: "YOUR_NAME" + name_2: "YOUR_NAME" + name_3: "YOUR_NAME" + name_4: "YOUR_NAME" + name_5: "YOUR_NAME" + icon_1: "mdi:YOUR_ICON" + icon_2: "mdi:YOUR_ICON" + icon_3: "mdi:YOUR_ICON" + icon_4: "mdi:YOUR_ICON" + icon_5: "mdi:YOUR_ICON" + icon_color_1: "yellow" + icon_color_2: "blue" + icon_color_3: "purple" + icon_color_4: "green" + icon_color_5: "red" + bg_color_1: "yellow" + bg_color_2: "blue" + bg_color_3: "purple" + bg_color_4: "green" + bg_color_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" - ``` + 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" +```
    diff --git a/custom_cards/custom_card_scenes/card_scenes.yaml b/custom_cards/custom_card_scenes/card_scenes.yaml index d316b54c8..c4b2cd5dc 100644 --- a/custom_cards/custom_card_scenes/card_scenes.yaml +++ b/custom_cards/custom_card_scenes/card_scenes.yaml @@ -57,8 +57,8 @@ card_scenes: color_icon: "[[[ return variables.entity_1.icon_color ]]]" color_bg: "[[[ return variables.entity_1.bg_color ]]]" tap_action: - action: "call-service" - service: | + action: "perform-action" + perform_action: | [[[ let domain = variables.entity_1.entity_id.substr(0, variables.entity_1.entity_id.indexOf(".")); if (domain == "automation") { @@ -67,7 +67,7 @@ card_scenes: return "homeassistant.turn_on" } ]]] - service_data: + target: entity_id: "[[[ return variables.entity_1.entity_id ]]]" item2: card: @@ -80,8 +80,8 @@ card_scenes: color_icon: "[[[ return variables.entity_2.icon_color ]]]" color_bg: "[[[ return variables.entity_2.bg_color ]]]" tap_action: - action: "call-service" - service: | + action: "perform-action" + perform_action: | [[[ let domain = variables.entity_2.entity_id.substr(0, variables.entity_2.entity_id.indexOf(".")); if (domain == "automation") { @@ -90,7 +90,7 @@ card_scenes: return "homeassistant.turn_on" } ]]] - service_data: + target: entity_id: "[[[ return variables.entity_2.entity_id ]]]" item3: card: @@ -103,8 +103,8 @@ card_scenes: color_icon: "[[[ return variables.entity_3.icon_color ]]]" color_bg: "[[[ return variables.entity_3.bg_color ]]]" tap_action: - action: "call-service" - service: | + action: "perform-action" + perform_action: | [[[ let domain = variables.entity_3.entity_id.substr(0, variables.entity_3.entity_id.indexOf(".")); if (domain == "automation") { @@ -113,7 +113,7 @@ card_scenes: return "homeassistant.turn_on" } ]]] - service_data: + target: entity_id: "[[[ return variables.entity_3.entity_id ]]]" item4: card: @@ -126,8 +126,8 @@ card_scenes: color_icon: "[[[ return variables.entity_4.icon_color ]]]" color_bg: "[[[ return variables.entity_4.bg_color ]]]" tap_action: - action: "call-service" - service: | + action: "perform-action" + perform_action: | [[[ let domain = variables.entity_4.entity_id.substr(0, variables.entity_4.entity_id.indexOf(".")); if (domain == "automation") { @@ -136,7 +136,7 @@ card_scenes: return "homeassistant.turn_on" } ]]] - service_data: + target: entity_id: "[[[ return variables.entity_4.entity_id ]]]" item5: card: @@ -149,8 +149,8 @@ card_scenes: color_icon: "[[[ return variables.entity_5.icon_color ]]]" color_bg: "[[[ return variables.entity_5.bg_color ]]]" tap_action: - action: "call-service" - service: | + action: "perform-action" + perform_action: | [[[ let domain = variables.entity_5.entity_id.substr(0, variables.entity_5.entity_id.indexOf(".")); if (domain == "automation") { @@ -159,7 +159,7 @@ card_scenes: return "homeassistant.turn_on" } ]]] - service_data: + target: entity_id: "[[[ return variables.entity_5.entity_id ]]]" card_scenes_pill: diff --git a/custom_cards/custom_card_speedtest_shogun160/custom_card_speedtest_shogun160.yaml b/custom_cards/custom_card_speedtest_shogun160/custom_card_speedtest_shogun160.yaml index ccb027758..b90a0551d 100644 --- a/custom_cards/custom_card_speedtest_shogun160/custom_card_speedtest_shogun160.yaml +++ b/custom_cards/custom_card_speedtest_shogun160/custom_card_speedtest_shogun160.yaml @@ -13,9 +13,9 @@ custom_card_speedtest_shogun160: ulm_custom_card_speedtest_ping_max: 85 ulm_custom_card_speedtest_round: false tap_action: - action: "call-service" - service: "homeassistant.update_entity" - service_data: + action: "perform-action" + perform_action: "homeassistant.update_entity" + target: entity_id: - "[[[ return variables.ulm_custom_card_speedtest_download_speed_entity]]]" - "[[[ return variables.ulm_custom_card_speedtest_upload_speed_entity]]]" diff --git a/custom_cards/custom_card_tpx01_aircondition/custom_card_tpx01_aircondition.yaml b/custom_cards/custom_card_tpx01_aircondition/custom_card_tpx01_aircondition.yaml index a144ee4fa..5807c5925 100644 --- a/custom_cards/custom_card_tpx01_aircondition/custom_card_tpx01_aircondition.yaml +++ b/custom_cards/custom_card_tpx01_aircondition/custom_card_tpx01_aircondition.yaml @@ -78,10 +78,11 @@ custom_card_tpx01_aircondition_with_buttons: type: "custom:button-card" template: "widget_icon" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return variables.entity ]]]" + data: hvac_mode: "cool" icon: "mdi:power" - type: "conditional" @@ -92,10 +93,11 @@ custom_card_tpx01_aircondition_with_buttons: type: "custom:button-card" template: "widget_icon" tap_action: - action: "call-service" - service: "climate.set_hvac_mode" - service_data: + action: "perform-action" + perform_action: "climate.set_hvac_mode" + target: entity_id: "[[[ return variables.entity ]]]" + data: hvac_mode: "off" icon: "mdi:power-off" item2: @@ -108,9 +110,9 @@ custom_card_tpx01_aircondition_with_buttons: type: "custom:button-card" template: "widget_icon" tap_action: - action: "call-service" - service: "script.decrease_climate_temperature" - service_data: + action: "perform-action" + perform_action: "script.decrease_climate_temperature" + target: entity_id: "[[[ return variables.entity ]]]" icon: "mdi:minus" item2: @@ -126,9 +128,9 @@ custom_card_tpx01_aircondition_with_buttons: type: "custom:button-card" template: "widget_icon" tap_action: - action: "call-service" - service: "script.increment_climate_temperature" - service_data: + action: "perform-action" + perform_action: "script.increment_climate_temperature" + target: entity_id: "[[[ return variables.entity ]]]" icon: "mdi:plus" From e67bd5a7e34e02da69ec337be5f72ab3b3d2fe91 Mon Sep 17 00:00:00 2001 From: wilbiev Date: Mon, 23 Dec 2024 13:58:50 +0000 Subject: [PATCH 48/49] Update docs --- docs/usage/custom_cards/custom_card_scenes.md | 137 +++++++++--------- 1 file changed, 69 insertions(+), 68 deletions(-) diff --git a/docs/usage/custom_cards/custom_card_scenes.md b/docs/usage/custom_cards/custom_card_scenes.md index 2b2d46614..ed0e8b033 100644 --- a/docs/usage/custom_cards/custom_card_scenes.md +++ b/docs/usage/custom_cards/custom_card_scenes.md @@ -3,6 +3,7 @@ title: Scenes Card Custom-card hide: - toc --- + # Custom-card "Scenes Card" @@ -21,76 +22,76 @@ Version: 1.2.0
    1.2.0 - ```yaml - #OLD +```yaml +#OLD - type: "custom:button-card" - template: - - card_scenes - variables: - entity_1: "scene.YOUR_SCENE" - entity_2: "scene.YOUR_SCENE" - entity_3: "scene.YOUR_SCENE" - entity_4: "scene.YOUR_SCENE" - entity_5: "scene.YOUR_SCENE" - name_1: "YOUR_NAME" - name_2: "YOUR_NAME" - name_3: "YOUR_NAME" - name_4: "YOUR_NAME" - name_5: "YOUR_NAME" - icon_1: "mdi:YOUR_ICON" - icon_2: "mdi:YOUR_ICON" - icon_3: "mdi:YOUR_ICON" - icon_4: "mdi:YOUR_ICON" - icon_5: "mdi:YOUR_ICON" - color_icon_1: "yellow" - color_icon_2: "blue" - color_icon_3: "purple" - color_icon_4: "green" - color_icon_5: "red" - color_bg_1: "yellow" - color_bg_2: "blue" - color_bg_3: "purple" - color_bg_4: "green" - color_bg_5: "red" - ``` - - ```yaml - #NEW + template: + - card_scenes + variables: + entity_1: "scene.YOUR_SCENE" + entity_2: "scene.YOUR_SCENE" + entity_3: "scene.YOUR_SCENE" + entity_4: "scene.YOUR_SCENE" + entity_5: "scene.YOUR_SCENE" + name_1: "YOUR_NAME" + name_2: "YOUR_NAME" + name_3: "YOUR_NAME" + name_4: "YOUR_NAME" + name_5: "YOUR_NAME" + icon_1: "mdi:YOUR_ICON" + icon_2: "mdi:YOUR_ICON" + icon_3: "mdi:YOUR_ICON" + icon_4: "mdi:YOUR_ICON" + icon_5: "mdi:YOUR_ICON" + icon_color_1: "yellow" + icon_color_2: "blue" + icon_color_3: "purple" + icon_color_4: "green" + icon_color_5: "red" + bg_color_1: "yellow" + bg_color_2: "blue" + bg_color_3: "purple" + bg_color_4: "green" + bg_color_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" - ``` + 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" +```
    From db74954dea57d0f56fef7d88ac1e2790238305bb Mon Sep 17 00:00:00 2001 From: wilbiev Date: Mon, 23 Dec 2024 19:22:43 +0000 Subject: [PATCH 49/49] Update docs --- .../custom_card_iAbadia_battery_chip.md | 58 +++++++++++++++++++ .../custom_card_schumijo_flower.md | 35 ++++++++++- 2 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 docs/usage/custom_cards/custom_card_iAbadia_battery_chip.md diff --git a/docs/usage/custom_cards/custom_card_iAbadia_battery_chip.md b/docs/usage/custom_cards/custom_card_iAbadia_battery_chip.md new file mode 100644 index 000000000..05a56b8fe --- /dev/null +++ b/docs/usage/custom_cards/custom_card_iAbadia_battery_chip.md @@ -0,0 +1,58 @@ +--- +title: iAbadia's Battery Chip Custom Card +hide: + - toc +--- + + + +# Custom-card "Battery Chip" + +This is a `custom-card` or `custom-chip` to see your device's battery level at a glance. + +![Screenshot](../../assets/img/custom_card_iAbadia_battery_chip.png) + +## Credits + +Author: Iñaki Abadia - 2024 +Version: 1.0.0 + +## Changelog + +
    +1.0.0 +Initial release +
    + +## Requirements + +None + +## Usage + +```yaml +type: "custom:button-card" +template: custom_card_iAbadia_battery_chip +variables: + ulm_custom_card_iAbadia_battery_chip_entity: sensor.living_room_sensor_battery + ulm_custom_card_iAbadia_battery_chip_icon: mdi:thermostat + ulm_custom_card_iAbadia_battery_chip_warning: 30 + ulm_custom_card_iAbadia_battery_chip_danger: 10 +``` + +## Variables + +| Variable | Example | Required | Explanation | +| ---------------------------------------------- | -------------------- | -------- | ----------------------------------------------------- | +| ulm_custom_card_iAbadia_battery_chip_entity | `sensor.temperature` | ✓ | Battery entity | +| ulm_custom_card_iAbadia_battery_chip_icon | `mdi:thermometer` | ✘ | Icon to be displayed. Will default to mdi:battery | +| ulm_custom_card_iAbadia_battery_chip_warning | `20` | ✘ | Battery level below which to color as warning (yellow) | +| ulm_custom_card_iAbadia_battery_chip_danger | `10` | ✘ | Battery level below which to color as danger (red) | + +## Template Code + +??? note "Template Code" + + ```yaml title="custom_card_irmajavi_speedtest.yaml" + --8<-- "custom_cards/custom_card_iAbadia_battery_chip/custom_card_iAbadia_battery_chip.yaml" + ``` diff --git a/docs/usage/custom_cards/custom_card_schumijo_flower.md b/docs/usage/custom_cards/custom_card_schumijo_flower.md index 994a3c851..9acad317a 100644 --- a/docs/usage/custom_cards/custom_card_schumijo_flower.md +++ b/docs/usage/custom_cards/custom_card_schumijo_flower.md @@ -14,8 +14,9 @@ This is a `custom-card` to display a plant entity. Shows state of the plant and ## Credits -Author: schumijo - 2021 -Version: 1.1.0 +- Author: schumijo - 2021 +- Update 2.0.0 : Ashino - 2024 +- Version: 2.0.0 ## Changelog @@ -28,6 +29,11 @@ Initial release Fix language files for beta5 Updated README +
    +2.0.0 +Add support to lovelace-flower-card from Olen (advanced forked version) +Updated README +
    ## Usage @@ -38,6 +44,10 @@ Updated README ulm_card_flower_entity: plant.bonsai_ficus ulm_card_flower_name: Bonsai Ficus ulm_card_flower_species: "ficus retusa" + ulm_card_flower_show_bars: + - temperature + - humidity + - moisture ``` #### Variables @@ -67,11 +77,30 @@ Updated README yes The species of your plant + +ulm_card_flower_show_bars + +- temperature +
    +- moisture +
    +- humidity + +no +The bar you want to display. Any of : +
  • illuminance
  • +
  • humidity
  • +
  • moisture
  • +
  • conductivity
  • +
  • temperature
  • +
  • dli
  • + + ## Requirements -Need [lovelace-flower-card](https://github.com/thomasloven/lovelace-flower-card) +Need [lovelace-flower-card](https://github.com/Olen/lovelace-flower-card) ## Template code