2
2
# ## Card Battery ###
3
3
card_battery :
4
4
template :
5
- - " icon_info_bg"
5
+ - " icon_more_info_new"
6
+ - " ulm_actions_card"
6
7
- " ulm_translation_engine"
7
- double_tap_action :
8
- action : " call-service"
9
- service : " input_select.select_option"
10
- service_data :
11
- option : " [[[ return variables.ulm_input_select_option ]]]"
12
- entity_id : " [[[ return variables.ulm_input_select ]]]"
13
- tap_action :
14
- action : " more-info"
15
8
variables :
16
9
ulm_card_battery_attribute :
17
10
ulm_card_battery_battery_state_entity_id :
@@ -22,108 +15,106 @@ card_battery:
22
15
ulm_card_battery_color_battery_level_warning : " var(--google-yellow)"
23
16
ulm_card_battery_color_battery_level_ok : " var(--google-green)"
24
17
triggers_update : " all"
25
- icon : |
26
- [[[
27
- // Get battery level
28
- const battery_level = variables.ulm_card_battery_attribute !== null ?
29
- states[entity.entity_id].attributes[variables.ulm_card_battery_attribute] :
30
- states[entity.entity_id].state;
31
-
32
- // Generate icon infix
33
- let infix = "";
34
- if (variables.ulm_card_battery_charger_type_entity_id == null) {
35
- // Check wether the battery state is charging
36
- infix = variables.ulm_card_battery_battery_state_entity_id !== null &&
37
- states[variables.ulm_card_battery_battery_state_entity_id].state.toLowerCase() === "charging" ?
38
- "-charging" : ""
39
- } else {
40
- // Select the infix based on the entity charging state
41
- switch (states[variables.ulm_card_battery_charger_type_entity_id].state.toLowerCase()) {
42
- case "wireless":
43
- infix = "-charging-wireless";
44
- break;
45
- case "charging":
46
- infix = "-charging";
47
- break;
48
- case "ac":
49
- infix = "-charging";
50
- break;
51
- case "usb":
52
- infix = "-charging";
53
- break;
54
- default:
55
- infix = "";
56
- }
57
- }
58
-
59
- // Generate the icon based on the battery_level
60
- let icon = "mdi:help-circle-outline";
61
- if (battery_level == 100) {
62
- icon = "mdi:battery";
63
- } else if (battery_level < 10) {
64
- icon = "mdi:battery" + infix + "-outline";
65
- } else if (battery_level == "unknown" || battery_level == "unavailable") {
66
- icon = "mdi:battery-off";
67
- } else {
68
- icon = "mdi:battery" + infix + "-" + Math.floor(battery_level / 10) * 10;
69
- }
70
-
71
- return icon;
72
- ]]]
73
- label : |
74
- [[[
75
- const battery_level = variables.ulm_card_battery_attribute !== null
76
- ? states[entity.entity_id].attributes[variables.ulm_card_battery_attribute]
77
- : states[entity.entity_id].state;
78
- return battery_level + "%";
79
- if(battery_level == "unknown")
80
- { return variables.ulm_translation_state; }
81
- else
82
- { return battery_level + "%"; }
83
- ]]]
84
- name : |
85
- [[[
86
- return states[entity.entity_id].attributes.friendly_name;
87
- ]]]
88
- styles :
89
- icon :
90
- - color : |
91
- [[[
92
- const battery_level = variables.ulm_card_battery_attribute !== null ?
93
- states[entity.entity_id].attributes[variables.ulm_card_battery_attribute] :
94
- states[entity.entity_id].state;
95
-
96
- // Get the color based on battery_level
97
- let color = "rgba(var(--color-theme), 0.9)";
98
- if (battery_level !== "unavailable" && (variables.ulm_card_battery_battery_level_danger !== null || variables.ulm_card_battery_battery_level_warning !== null)) {
99
- if (battery_level <= variables.ulm_card_battery_battery_level_danger) {
100
- color = variables.ulm_card_battery_color_battery_level_danger;
101
- } else if (battery_level <= variables.ulm_card_battery_battery_level_warning) {
102
- color = variables.ulm_card_battery_color_battery_level_warning;
103
- } else if (battery_level == "unknown" || battery_level == "unavailable") {
104
- color = variables.ulm_card_battery_color_battery_level_danger;
105
- } else {
106
- color = variables.ulm_card_battery_color_battery_level_ok;
107
- }
108
- }
109
-
110
- return color;
111
- ]]]
112
- label :
113
- - align-self : " end"
114
- - justify-self : " start"
115
- - font-weight : " bold"
116
- - font-size : " 14px"
117
- - margin-left : " 12px"
118
- - filter : " opacity(100%)"
119
- name :
120
- - justify-self : " start"
121
- - align-self : " start"
122
- - font-weight : " bolder"
123
- - font-size : " 12px"
124
- - filter : " opacity(40%)"
125
- - margin-left : " 12px"
126
- grid :
127
- - grid-template-areas : " 'i l' 'i n'"
128
- - grid-template-columns : " min-content auto"
129
- - grid-template-rows : " min-content min-content"
18
+ custom_fields :
19
+ item1 :
20
+ card :
21
+ type : " custom:button-card"
22
+ template :
23
+ - " icon_more_info"
24
+ custom_fields :
25
+ item1 :
26
+ card :
27
+ type : " custom:button-card"
28
+ variables :
29
+ ulm_input_select_option : " [[[ return variables.ulm_input_select_option; ]]]"
30
+ ulm_input_select : " [[[ return variables.ulm_input_select; ]]]"
31
+ entity : " [[[ return entity.entity_id ]]]"
32
+ icon : |
33
+ [[[
34
+ // Get battery level
35
+ const battery_level = variables.ulm_card_battery_attribute !== null ?
36
+ states[entity.entity_id].attributes[variables.ulm_card_battery_attribute] :
37
+ states[entity.entity_id].state;
38
+ // Generate icon infix
39
+ let infix = "";
40
+ if (variables.ulm_card_battery_charger_type_entity_id == null) {
41
+ // Check wether the battery state is charging
42
+ infix = variables.ulm_card_battery_battery_state_entity_id !== null &&
43
+ states[variables.ulm_card_battery_battery_state_entity_id].state.toLowerCase() === "charging" ?
44
+ "-charging" : ""
45
+ } else {
46
+ // Select the infix based on the entity charging state
47
+ switch (states[variables.ulm_card_battery_charger_type_entity_id].state.toLowerCase()) {
48
+ case "wireless":
49
+ infix = "-charging-wireless";
50
+ break;
51
+ case "charging":
52
+ infix = "-charging";
53
+ break;
54
+ case "ac":
55
+ infix = "-charging";
56
+ break;
57
+ case "usb":
58
+ infix = "-charging";
59
+ break;
60
+ default:
61
+ infix = "";
62
+ }
63
+ }
64
+ // Generate the icon based on the battery_level
65
+ let icon = "mdi:help-circle-outline";
66
+ if (battery_level == 100) {
67
+ icon = "mdi:battery";
68
+ } else if (battery_level < 10) {
69
+ icon = "mdi:battery" + infix + "-outline";
70
+ } else if (battery_level == "unknown" || battery_level == "unavailable") {
71
+ icon = "mdi:battery-off";
72
+ } else {
73
+ icon = "mdi:battery" + infix + "-" + Math.floor(battery_level / 10) * 10;
74
+ }
75
+ return icon;
76
+ ]]]
77
+ styles :
78
+ icon :
79
+ - color : |
80
+ [[[
81
+ const battery_level = variables.ulm_card_battery_attribute !== null ?
82
+ states[entity.entity_id].attributes[variables.ulm_card_battery_attribute] :
83
+ states[entity.entity_id].state;
84
+ // Get the color based on battery_level
85
+ let color = "rgba(var(--color-theme), 0.9)";
86
+ if (battery_level !== "unavailable" && (variables.ulm_card_battery_battery_level_danger !== null || variables.ulm_card_battery_battery_level_warning !== null)) {
87
+ if (battery_level <= variables.ulm_card_battery_battery_level_danger) {
88
+ color = variables.ulm_card_battery_color_battery_level_danger;
89
+ } else if (battery_level <= variables.ulm_card_battery_battery_level_warning) {
90
+ color = variables.ulm_card_battery_color_battery_level_warning;
91
+ } else if (battery_level == "unknown" || battery_level == "unavailable") {
92
+ color = variables.ulm_card_battery_color_battery_level_danger;
93
+ } else {
94
+ color = variables.ulm_card_battery_color_battery_level_ok;
95
+ }
96
+ }
97
+ return color;
98
+ ]]]
99
+ item2 :
100
+ card :
101
+ type : " custom:button-card"
102
+ variables :
103
+ ulm_input_select_option : " [[[ return variables.ulm_input_select_option; ]]]"
104
+ ulm_input_select : " [[[ return variables.ulm_input_select; ]]]"
105
+ entity : " [[[ return entity.entity_id ]]]"
106
+ label : |
107
+ [[[
108
+ const battery_level = variables.ulm_card_battery_attribute !== null
109
+ ? states[entity.entity_id].attributes[variables.ulm_card_battery_attribute]
110
+ : states[entity.entity_id].state;
111
+ return battery_level + "%";
112
+ if(battery_level == "unknown")
113
+ { return variables.ulm_translation_state; }
114
+ else
115
+ { return battery_level + "%"; }
116
+ ]]]
117
+ name : |
118
+ [[[
119
+ return states[entity.entity_id].attributes.friendly_name;
120
+ ]]]
0 commit comments