Skip to content

Commit e4e104c

Browse files
authored
Merge pull request #770 from basbruss/custom_actions
Fix merging issue release v1.0.0
2 parents 8443c89 + 1fe916b commit e4e104c

19 files changed

+382
-542
lines changed

custom_components/ui_lovelace_minimalist/configure.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -151,5 +151,11 @@ def reload_configuration(hass):
151151
hass.config.path(f"{combined_cards_dir}/custom_cards"),
152152
dirs_exist_ok=True,
153153
)
154-
154+
if os.path.exists(hass.config.path(f"{DOMAIN}/custom_actions")):
155+
# Copy over manually installed custom_actions from user
156+
shutil.copytree(
157+
hass.config.path(f"{DOMAIN}/custom_actions"),
158+
hass.config.path(f"{combined_cards_dir}/custom_actions"),
159+
dirs_exist_ok=True,
160+
)
155161
hass.bus.async_fire("ui_lovelace_minimalist_reload")

custom_components/ui_lovelace_minimalist/lovelace/translations/default.yaml

+5-1
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,11 @@ ulm_translation_engine:
9292
let domain = entity.entity_id.substr(0, entity.entity_id.indexOf("."));
9393
let unit = entity.attributes.unit_of_measurement != null ? " " + entity.attributes.unit_of_measurement : "";
9494
95-
var translation = hass.resources[lang]["component." + domain + ".state._." + state] + unit || state + unit;
95+
if(hass.resources[lang]["component." + domain + ".state._." + state]){
96+
var translation = hass.resources[lang]["component." + domain + ".state._." + state] + unit
97+
} else {
98+
var translation = state + unit;
99+
}
96100
if (def.includes(state)) {
97101
var translation = hass.resources[lang]["state.default." + state ];
98102
}

custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_battery.yaml

+105-114
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,9 @@
22
### Card Battery ###
33
card_battery:
44
template:
5-
- "icon_info_bg"
5+
- "icon_more_info_new"
6+
- "ulm_actions_card"
67
- "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"
158
variables:
169
ulm_card_battery_attribute:
1710
ulm_card_battery_battery_state_entity_id:
@@ -22,108 +15,106 @@ card_battery:
2215
ulm_card_battery_color_battery_level_warning: "var(--google-yellow)"
2316
ulm_card_battery_color_battery_level_ok: "var(--google-green)"
2417
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+
]]]

custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_binary_sensor.yaml

+10-2
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22
### Card Binary Sensor ###
33
card_binary_sensor:
44
template:
5-
- "icon_info_bg"
5+
- "icon_more_info_new"
66
- "blue"
77
- "ulm_language_variables"
88
- "ulm_actions_card"
99
show_last_changed: false
10+
variables:
11+
ulm_show_last_changed: false
1012
custom_fields:
1113
item1:
1214
card:
@@ -20,12 +22,18 @@ card_binary_sensor:
2022
type: "custom:button-card"
2123
template:
2224
- "blue"
25+
variables:
26+
ulm_input_select_option: "[[[ return variables.ulm_input_select_option; ]]]"
27+
ulm_input_select: "[[[ return variables.ulm_input_select; ]]]"
2328
entity: "[[[ return entity.entity_id ]]]"
2429
item2:
2530
card:
2631
type: "custom:button-card"
2732
template:
2833
- "blue_no_card"
34+
variables:
35+
ulm_input_select_option: "[[[ return variables.ulm_input_select_option; ]]]"
36+
ulm_input_select: "[[[ return variables.ulm_input_select; ]]]"
2937
entity: "[[[ return entity.entity_id ]]]"
3038
name: "[[[ return entity.attributes.friendly_name != '' ? entity.attributes.friendly_name : entity.entity_id ]]]"
31-
show_last_changed: true
39+
show_last_changed: "[[[ return variables.ulm_show_last_changed; ]]]"

custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_binary_sensor_alert.yaml

+9-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ card_binary_sensor_alert:
77
- "ulm_language_variables"
88
- "ulm_actions_card"
99
show_last_changed: false
10+
variables:
11+
ulm_show_last_changed: false
1012
custom_fields:
1113
item1:
1214
card:
@@ -20,12 +22,18 @@ card_binary_sensor_alert:
2022
type: "custom:button-card"
2123
template:
2224
- "blue"
25+
variables:
26+
ulm_input_select_option: "[[[ return variables.ulm_input_select_option; ]]]"
27+
ulm_input_select: "[[[ return variables.ulm_input_select; ]]]"
2328
entity: "[[[ return entity.entity_id ]]]"
2429
item2:
2530
card:
2631
type: "custom:button-card"
2732
template:
2833
- "blue_no_card"
34+
variables:
35+
ulm_input_select_option: "[[[ return variables.ulm_input_select_option; ]]]"
36+
ulm_input_select: "[[[ return variables.ulm_input_select; ]]]"
2937
entity: "[[[ return entity.entity_id ]]]"
3038
name: "[[[ return entity.attributes.friendly_name != '' ? entity.attributes.friendly_name : entity.entity_id ]]]"
31-
show_last_changed: true
39+
show_last_changed: "[[[ return variables.ulm_show_last_changed; ]]]"

0 commit comments

Comments
 (0)