diff --git a/custom_cards/custom_card_damix48_power_details/languages/de.yaml b/custom_cards/custom_card_damix48_power_details/languages/de.yaml
new file mode 100644
index 000000000..e294d090b
--- /dev/null
+++ b/custom_cards/custom_card_damix48_power_details/languages/de.yaml
@@ -0,0 +1,7 @@
+---
+ulm_custom_card_damix48_power_details_language_variables:
+ variables:
+ ulm_custom_card_damix48_power_details_hour: "Stunde"
+ ulm_custom_card_damix48_power_details_hours: "Stunden"
+ ulm_custom_card_damix48_power_details_in_the_last: "In der letzten"
+ ulm_custom_card_damix48_power_details_in_the_lasts: "In den letzten"
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 677b4b8df..f279a1c4c 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
@@ -332,7 +332,7 @@ card_esh_welcome_nav:
type: "custom:button-card"
tap_action:
action: "navigate"
- navigation_path: "[[[ return variables.entity_1.nav; ]]]"
+ navigation_path: "[[[ return variables.entity_5.nav; ]]]"
name: "[[[ return variables.entity_5.name ]]]"
card_esh_welcome_pill_nav:
diff --git a/custom_cards/custom_card_heat_pump/languages/de.yaml b/custom_cards/custom_card_heat_pump/languages/de.yaml
new file mode 100644
index 000000000..e9b1db55c
--- /dev/null
+++ b/custom_cards/custom_card_heat_pump/languages/de.yaml
@@ -0,0 +1,8 @@
+---
+custom_card_heat_pump_language_variables:
+ variables:
+ custom_card_heat_pump_dry: "Trocknen"
+ custom_card_heat_pump_heat: "Heizen"
+ custom_card_heat_pump_heat_cool: "Auto"
+ custom_card_heat_pump_cool: "Kühlen"
+ custom_card_heat_pump_fan_only: "Nur Lüften"
diff --git a/custom_cards/custom_card_heat_pump/languages/en.yaml b/custom_cards/custom_card_heat_pump/languages/en.yaml
index 2ac1caee2..f0ccc6542 100644
--- a/custom_cards/custom_card_heat_pump/languages/en.yaml
+++ b/custom_cards/custom_card_heat_pump/languages/en.yaml
@@ -1,7 +1,6 @@
---
custom_card_heat_pump_language_variables:
variables:
- custom_card_heat_pump_off: "Off"
custom_card_heat_pump_dry: "Dry"
custom_card_heat_pump_heat: "Heat"
custom_card_heat_pump_heat_cool: "Auto"
diff --git a/custom_cards/custom_card_heat_pump/languages/pl.yaml b/custom_cards/custom_card_heat_pump/languages/pl.yaml
index 36719bd89..492f6aa89 100644
--- a/custom_cards/custom_card_heat_pump/languages/pl.yaml
+++ b/custom_cards/custom_card_heat_pump/languages/pl.yaml
@@ -1,7 +1,6 @@
---
custom_card_heat_pump_language_variables:
variables:
- custom_card_heat_pump_off: "Wyłączone"
custom_card_heat_pump_dry: "Osuszanie"
custom_card_heat_pump_heat: "Grzanie"
custom_card_heat_pump_heat_cool: "Automatycznie"
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 d24c055fd..539e08e20 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
@@ -2,7 +2,6 @@
custom_card_httpedo13_thermostat:
template:
- "ulm_language_variables"
- - "custom_card_httpedo13_thermostat_language_variables"
tap_action:
action: "toggle"
icon: |
@@ -15,11 +14,11 @@ custom_card_httpedo13_thermostat:
label: >-
[[[
if (entity.state =='off') {
- return variables.custom_card_httpedo13_thermostat_off;
+ return variables.ulm_off;
} else if (entity.state =='heat') {
- return variables.custom_card_httpedo13_thermostat_on;
+ return variables.ulm_on;
} else if (entity.attributes.hvac_action == 'heating') {
- return variables.custom_card_httpedo13_thermostat_heating;
+ return variables.ulm_heating;
}
return entity.state;
]]]
@@ -195,7 +194,6 @@ custom_card_httpedo13_thermostat_with_buttons:
entity_id: "[[[ return variables.entity ]]]"
icon: "mdi:plus"
-
custom_card_httpedo13_thermostat_with_buttons_collapse:
triggers_update: "all"
styles:
@@ -330,7 +328,6 @@ custom_card_httpedo13_thermostat_with_buttons_collapse:
entity_id: "[[[ return variables.entity ]]]"
icon: "mdi:plus"
-
widget_current_temperature:
color: "var(--google-grey-500)"
show_icon: false
diff --git a/custom_cards/custom_card_httpedo13_thermostat/languages/en.yaml b/custom_cards/custom_card_httpedo13_thermostat/languages/en.yaml
deleted file mode 100644
index 351039c57..000000000
--- a/custom_cards/custom_card_httpedo13_thermostat/languages/en.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-custom_card_httpedo13_thermostat_language_variables:
- variables:
- custom_card_httpedo13_thermostat_off: "off"
- custom_card_httpedo13_thermostat_on: "on"
- custom_card_httpedo13_thermostat_heating: "heating"
diff --git a/custom_cards/custom_card_httpedo13_thermostat/languages/pl.yaml b/custom_cards/custom_card_httpedo13_thermostat/languages/pl.yaml
deleted file mode 100644
index 4a014ebb0..000000000
--- a/custom_cards/custom_card_httpedo13_thermostat/languages/pl.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-custom_card_httpedo13_thermostat_language_variables:
- variables:
- custom_card_httpedo13_thermostat_off: "wyłączone"
- custom_card_httpedo13_thermostat_on: "włączone"
- custom_card_httpedo13_thermostat_heating: "grzanie"
diff --git a/custom_cards/custom_card_httpedo13_thermostat/languages/pt.yaml b/custom_cards/custom_card_httpedo13_thermostat/languages/pt.yaml
deleted file mode 100644
index 9be929b57..000000000
--- a/custom_cards/custom_card_httpedo13_thermostat/languages/pt.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
----
-custom_card_httpedo13_thermostat_language_variables:
- variables:
- custom_card_httpedo13_thermostat_off: "desligado"
- custom_card_httpedo13_thermostat_on: "ligado"
- custom_card_httpedo13_thermostat_heating: "A aquecer"
diff --git a/custom_cards/custom_card_paddy_welcome/custom_card_paddy_welcome.yaml b/custom_cards/custom_card_paddy_welcome/custom_card_paddy_welcome.yaml
index c8df1a213..456436315 100644
--- a/custom_cards/custom_card_paddy_welcome/custom_card_paddy_welcome.yaml
+++ b/custom_cards/custom_card_paddy_welcome/custom_card_paddy_welcome.yaml
@@ -1,7 +1,5 @@
---
custom_card_paddy_welcome:
- template:
- - "ulm_custom_card_paddy_welcome_language_variables"
show_icon: false
show_name: false
show_label: false
@@ -25,13 +23,13 @@ custom_card_paddy_welcome:
let welcome = '';
if (time > '18:00'){
- welcome = variables.ulm_custom_card_paddy_welcome_evening;
+ welcome = variables.ulm_evening;
} else if (time > '12:00'){
- welcome = variables.ulm_custom_card_paddy_welcome_afternoon;
+ welcome = variables.ulm_afternoon;
} else if (time > '05:00'){
- welcome = variables.ulm_custom_card_paddy_welcome_morning;
+ welcome = variables.ulm_morning;
} else {
- welcome = variables.ulm_custom_card_paddy_welcome_hello;
+ welcome = variables.ulm_hello;
}
return welcome + ',
' + user.name + '!';
@@ -47,8 +45,6 @@ custom_card_paddy_welcome:
}
custom_card_paddy_welcome_with_weather:
- template:
- - "ulm_custom_card_paddy_welcome_language_variables"
show_icon: false
show_name: false
show_label: false
@@ -72,14 +68,13 @@ custom_card_paddy_welcome_with_weather:
let welcome = '';
if (time > '18:00'){
- welcome = variables.ulm_custom_card_paddy_welcome_evening;
+ welcome = variables.ulm_evening;
} else if (time > '12:00'){
- welcome = variables.ulm_custom_card_paddy_welcome_afternoon;
+ welcome = variables.ulm_afternoon;
} else if (time > '05:00'){
- welcome = variables.ulm_custom_card_paddy_welcome_morning;
+ welcome = variables.ulm_morning;
} else {
- welcome = variables.ulm_custom_card_paddy_welcome_hello;
- }
+ welcome = variables.ulm_hello;
return welcome + ',
' + user.name + '!';
]]]
@@ -132,8 +127,6 @@ custom_card_paddy_welcome_with_weather:
}
custom_card_paddy_welcome_with_news:
- template:
- - "ulm_custom_card_paddy_welcome_language_variables"
show_icon: false
show_name: false
show_label: false
@@ -157,14 +150,13 @@ custom_card_paddy_welcome_with_news:
let welcome = '';
if (time > '18:00'){
- welcome = variables.ulm_custom_card_paddy_welcome_evening;
+ welcome = variables.ulm_evening;
} else if (time > '12:00'){
- welcome = variables.ulm_custom_card_paddy_welcome_afternoon;
+ welcome = variables.ulm_afternoon;
} else if (time > '05:00'){
- welcome = variables.ulm_custom_card_paddy_welcome_morning;
+ welcome = variables.ulm_morning;
} else {
- welcome = variables.ulm_custom_card_paddy_welcome_hello;
- }
+ welcome = variables.ulm_hello;
return welcome + ',
' + user.name + '!';
]]]
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 a5a44b7d6..76e1bf905 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
@@ -23,15 +23,15 @@ custom_card_tpx01_aircondition:
if (entity.state =='off') {
return variables.ulm_off;
} else if (entity.state =='dry') {
- return variables.custom_card_tpx01_aircondition_dry;
+ return variables.ulm_dry;
} else if (entity.state =='heat') {
- return variables.custom_card_tpx01_aircondition_heat;
+ return variables.ulm_heating;
} else if (entity.state =='heat_cool') {
- return variables.custom_card_tpx01_aircondition_heat_cool;
+ return variables.ulm_heat_cool;
} else if (entity.state =='cool') {
- return variables.custom_card_tpx01_aircondition_cool;
+ return variables.ulm_cooling;
} else if (entity.state =='fan_only') {
- return variables.custom_card_tpx01_aircondition_fan_only;
+ return variables.ulm_fan_only;
}
return entity.state;
]]]
diff --git a/custom_cards/custom_card_wsly_pollen/languages/de.yaml b/custom_cards/custom_card_wsly_pollen/languages/de.yaml
new file mode 100644
index 000000000..54fd3d8df
--- /dev/null
+++ b/custom_cards/custom_card_wsly_pollen/languages/de.yaml
@@ -0,0 +1,10 @@
+# EN.yaml for custom_card_wsly_pollen
+---
+custom_card_wsly_pollen_language_variables:
+ variables:
+ custom_card_wsly_pollen_none: "Keine"
+ custom_card_wsly_pollen_very_low: "Sehr niedrig"
+ custom_card_wsly_pollen_low: "Niedrig"
+ custom_card_wsly_pollen_medium: "Mittel"
+ custom_card_wsly_pollen_high: "Hoch"
+ custom_card_wsly_pollen_very_high: "Sehr hoch"
diff --git a/custom_cards/custom_card_yagrasdemonde_lights_count/languages/de.yaml b/custom_cards/custom_card_yagrasdemonde_lights_count/languages/de.yaml
new file mode 100644
index 000000000..3c71ddfba
--- /dev/null
+++ b/custom_cards/custom_card_yagrasdemonde_lights_count/languages/de.yaml
@@ -0,0 +1,9 @@
+---
+ulm_custom_card_yagrasdemonde_lights_count_language_variables:
+ variables:
+ ulm_custom_card_yagrasdemonde_lights_count_light_0: "Keine Lampen an"
+ ulm_custom_card_yagrasdemonde_lights_count_light_1: "1 Lampe an"
+ ulm_custom_card_yagrasdemonde_lights_count_light_many: "Lampen an"
+ ulm_custom_card_yagrasdemonde_lights_count_cover_0: "Keine Rollos offen"
+ ulm_custom_card_yagrasdemonde_lights_count_cover_1: "1 Rollo offen"
+ ulm_custom_card_yagrasdemonde_lights_count_cover_many: "Rollos offen"
diff --git a/custom_components/ui_lovelace_minimalist/configure.py b/custom_components/ui_lovelace_minimalist/configure.py
index 083f59d24..34409a8a8 100644
--- a/custom_components/ui_lovelace_minimalist/configure.py
+++ b/custom_components/ui_lovelace_minimalist/configure.py
@@ -30,6 +30,7 @@
"Slovak": "sk",
"Swedish": "sv",
"Turkish": "tr",
+ "Russian": "ru",
}
diff --git a/custom_components/ui_lovelace_minimalist/const.py b/custom_components/ui_lovelace_minimalist/const.py
index 5e45e1cd2..2badd1cad 100644
--- a/custom_components/ui_lovelace_minimalist/const.py
+++ b/custom_components/ui_lovelace_minimalist/const.py
@@ -26,6 +26,7 @@
"Slovak",
"Swedish",
"Turkish",
+ "Russian",
]
CONF_SIDEPANEL_ENABLED = "sidepanel_enabled"
CONF_SIDEPANEL_TITLE = "sidepanel_title"
diff --git a/custom_components/ui_lovelace_minimalist/lovelace/themefiles/minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml b/custom_components/ui_lovelace_minimalist/lovelace/themefiles/minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml
index 8e12fc9e1..b01ba6387 100644
--- a/custom_components/ui_lovelace_minimalist/lovelace/themefiles/minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml
+++ b/custom_components/ui_lovelace_minimalist/lovelace/themefiles/minimalist-mobile-tapbar/minimalist-mobile-tapbar.yaml
@@ -131,8 +131,8 @@ minimalist-mobile-tapbar:
# text
primary-text-color: "#212121"
# slider
- slider-color: "rgb(var(--google-blue))"
- slider-bar-color: "rgba(var(--google-blue),0.38)"
+ slider-color: "rgb(var(--color-blue))"
+ slider-bar-color: "rgba(var(--color-blue),0.38)"
# cards
box-shadow: "0px 2px 4px 0px rgba(0,0,0,0.16)"
ha-card-box-shadow: "var(--box-shadow)"
diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/de.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/de.yaml
index f61184cc6..e87333535 100644
--- a/custom_components/ui_lovelace_minimalist/lovelace/translations/de.yaml
+++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/de.yaml
@@ -46,5 +46,5 @@ ulm_language_variables:
ulm_hello: "Hallo"
ulm_cleaning: "Staubsaugen"
ulm_returning: "Auf dem Heimweg"
- ulm_docked: "Docked"
+ ulm_docked: "Angedockt"
ulm_mopping: "Wischen"
diff --git a/custom_components/ui_lovelace_minimalist/lovelace/translations/ru.yaml b/custom_components/ui_lovelace_minimalist/lovelace/translations/ru.yaml
new file mode 100644
index 000000000..846bff84f
--- /dev/null
+++ b/custom_components/ui_lovelace_minimalist/lovelace/translations/ru.yaml
@@ -0,0 +1,50 @@
+---
+ulm_language_variables:
+ variables:
+ ulm_on: "включено"
+ ulm_off: "выключено"
+ ulm_open: "открыто"
+ ulm_closed: "закрыто"
+ ulm_unavailable: "недоступно"
+ ulm_standby: "ожидание"
+ ulm_idle: "бездействие"
+ ulm_currency: "RUB"
+ ulm_auto: "Авто"
+ ulm_heat: "Нагрев"
+ ulm_cool: "Охлаждение"
+ ulm_dry: "Осушение"
+ ulm_fan_only: "Вентиляция"
+ ulm_heat_cool: "Нагрев/Охлаждение"
+ ulm_heating: "Нагрев"
+ ulm_cooling: "Охлаждение"
+ ulm_person_state_home: "дома"
+ ulm_person_state_away: "на улице"
+ ulm_person_state_not_home: "вне дома"
+ ulm_device_state_home: "В сети"
+ ulm_device_state_not_home: "Не в сети"
+ ulm_popups_back: "Назад"
+ ulm_popups_toggle: "Переключить"
+ ulm_popups_statistics: "Статистика"
+ ulm_popups_history: "История"
+ ulm_popups_brightness: "Яркость"
+ ulm_popups_color_temp: "Цветовая температура"
+ ulm_popups_color: "Цвет"
+ ulm_unknown: "неизвестно"
+ ulm_alarm_armed_home: "Режим охраны (дом)"
+ ulm_alarm_armed_away: "Режим охраны (вне дома)"
+ ulm_alarm_armed_night: "Режим охраны (ночной)"
+ ulm_alarm_disarmed: "Режим охраны (отключен)"
+ ulm_alarm_arming: "Режим охраны (постановка)"
+ ulm_alarm_triggered: "СРАБАТЫВАНИЕ"
+ ulm_playing: "Воспроизведение"
+ ulm_paused: "На паузе"
+ ulm_updates_available: "Доступны обновления!"
+ ulm_no_updates_available: "Нет доступных обновлений"
+ ulm_morning: "Доброе утро"
+ ulm_afternoon: "Добрый день"
+ ulm_evening: "Добрый вечер"
+ ulm_hello: "Здравствуйте"
+ ulm_cleaning: "Идет уборка"
+ ulm_returning: "Возвращение на базу"
+ ulm_docked: "На базе"
+ ulm_mopping: "Влажная уборка"
diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_battery.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_battery.yaml
index 6f925f9ab..5c4eaeceb 100644
--- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_battery.yaml
+++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_battery.yaml
@@ -3,6 +3,7 @@
card_battery:
template:
- "icon_info_bg"
+ - "ulm_language_variables"
tap_action:
action: "more-info"
variables:
@@ -55,6 +56,8 @@ card_battery:
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;
}
@@ -66,7 +69,10 @@ card_battery:
const battery_level = variables.ulm_card_battery_attribute !== null
? states[entity.entity_id].attributes[variables.ulm_card_battery_attribute]
: states[entity.entity_id].state;
- return battery_level + "%";
+ if(battery_level == "unknown")
+ { return variables.ulm_unavailable; }
+ else
+ { return battery_level + "%"; }
]]]
name: |
[[[
@@ -87,6 +93,8 @@ card_battery:
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 if (battery_level == "unknown" || battery_level == "unavailable") {
+ color = variables.ulm_card_battery_color_battery_level_danger;
} else {
color = variables.ulm_card_battery_color_battery_level_ok;
}
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 a0b0b218e..7093f171d 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
@@ -7,6 +7,8 @@ card_cover:
ulm_card_cover_name: "[[[ return entity.attributes.friendly_name ]]]"
ulm_card_cover_display_left_right: false
ulm_card_curtain_display_collapse_expand: false
+ ulm_card_cover_garage: false
+ ulm_card_cover_gate: false
ulm_card_cover_enable_controls: false
ulm_card_cover_enable_slider: false
ulm_card_cover_enable_horizontal: false
@@ -114,23 +116,40 @@ card_cover:
if (states[entity.entity_id].state == "closed"){
if (variables.ulm_card_curtain_display_collapse_expand){
var icon = "mdi:curtains-closed";
+ } else if (variables.ulm_card_cover_garage){
+ var icon = "mdi:garage-variant";
+ } else if (variables.ulm_card_cover_gate){
+ var icon = "mdi:gate";
} else
var icon = "mdi:window-shutter";
} else
if (variables.ulm_card_curtain_display_collapse_expand){
var icon = "mdi:curtains";
- } else
+ } else if (variables.ulm_card_cover_garage){
+ var icon = "mdi:garage-open-variant";
+ } else if (variables.ulm_card_cover_gate){
+ var icon = "mdi:gate-open";
+ }else
var icon = "mdi:window-shutter-open";
} else {
if (states[entity.entity_id].attributes.current_position == 0){
if (variables.ulm_card_curtain_display_collapse_expand){
var icon = "mdi:curtains-closed";
+ } else if (variables.ulm_card_cover_garage){
+ var icon = "mdi:garage-variant";
+ } else if(variables.ulm_card_cover_gate){
+ var icon = "mdi:gate";
} else
var icon = "mdi:window-shutter";
} else
if (variables.ulm_card_curtain_display_collapse_expand){
var icon = "mdi:curtains";
- } else
+ } else if(variables.ulm_card_cover_garage){
+ var icon = "mdi:garage-open-variant";
+ } else if(variables.ulm_card_cover_gate){
+ var icon = "mdi:gate-open";
+ }
+ else
var icon = "mdi:window-shutter-open";
}
return icon ;
@@ -302,7 +321,7 @@ card_cover:
mainSliderColor: >
[[[
if (entity.state == "unavailable"){
- return "rgba(var(--color-grey),1)";
+ return "rgba(var(--color-grey),1)";
}
else{
return "rgba(var(--color-blue),1)";
@@ -311,7 +330,7 @@ card_cover:
secondarySliderColor: >
[[[
if (entity.state == "unavailable"){
- return "rgba(var(--color-grey),0.2)";
+ return "rgba(var(--color-grey),0.2)";
}
else{
return "rgba(var(--color-blue),0.2)";
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 a7de1bd25..2642c642f 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
@@ -163,6 +163,13 @@ card_media_player:
return variables["ulm_" + state] ? variables["ulm_" + state] : state;
]]]
state:
+ - operator: "template"
+ value: "[[[ return entity.state == 'off' ]]]"
+ name: |
+ [[[
+ let name = variables.ulm_card_media_player_name || states[entity.entity_id].attributes.friendly_name;
+ return name;
+ ]]]
- operator: "template"
value: "[[[ return entity.state != 'off' ]]]"
name: |
diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_scenes.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_scenes.yaml
new file mode 100644
index 000000000..a31fed7d4
--- /dev/null
+++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_scenes.yaml
@@ -0,0 +1,219 @@
+---
+card_scenes:
+ show_icon: false
+ show_name: true
+ show_label: false
+ variables:
+ entity_1:
+ entity_id: ""
+ color: >
+ [[[
+ var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink'];
+ var color = colors[Math.floor(Math.random() * colors.length)];
+ return color;
+ ]]]
+ entity_2:
+ entity_id: ""
+ color: >
+ [[[
+ var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink'];
+ var color = colors[Math.floor(Math.random() * colors.length)];
+ return color;
+ ]]]
+ entity_3:
+ entity_id: ""
+ color: >
+ [[[
+ var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink'];
+ var color = colors[Math.floor(Math.random() * colors.length)];
+ return color;
+ ]]]
+ entity_4:
+ entity_id: ""
+ color: >
+ [[[
+ var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink'];
+ var color = colors[Math.floor(Math.random() * colors.length)];
+ return color;
+ ]]]
+ entity_5:
+ entity_id: ""
+ color: >
+ [[[
+ var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink'];
+ var color = colors[Math.floor(Math.random() * colors.length)];
+ return color;
+ ]]]
+ entity_6:
+ entity_id: ""
+ color: >
+ [[[
+ var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink'];
+ var color = colors[Math.floor(Math.random() * colors.length)];
+ return color;
+ ]]]
+ entity_7:
+ entity_id: ""
+ color: >
+ [[[
+ var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink'];
+ var color = colors[Math.floor(Math.random() * colors.length)];
+ return color;
+ ]]]
+ styles:
+ grid:
+ - grid-template-areas: >
+ [[[
+ var pills = []
+ const entities = [variables.entity_1.entity_id, variables.entity_2.entity_id, variables.entity_3.entity_id, variables.entity_4.entity_id, variables.entity_5.entity_id, variables.entity_6.entity_id, variables.entity_7.entity_id]
+ function entity_check(item) {
+ if (item != "") {
+ pills.push("item" + (pills.length+1))
+ }
+ }
+ entities.forEach(entity_check)
+ return pills.join(" ")
+ ]]]
+ - display: "flex"
+ - grid-template-rows: "min-content"
+ - justify-content: "space-evenly"
+ card:
+ - border-radius: "var(--border-radius)"
+ - box-shadow: "var(--box-shadow)"
+ - padding: "12px"
+ - overflow: "visible"
+ custom_fields:
+ item1:
+ - display: "[[[ return (variables.entity_1.entity_id != '') ? 'block' : 'none' ]]]"
+ item2:
+ - display: "[[[ return (variables.entity_2.entity_id != '') ? 'block' : 'none' ]]]"
+ item3:
+ - display: "[[[ return (variables.entity_3.entity_id != '') ? 'block' : 'none' ]]]"
+ item4:
+ - display: "[[[ return (variables.entity_4.entity_id != '') ? 'block' : 'none' ]]]"
+ item5:
+ - display: "[[[ return (variables.entity_5.entity_id != '') ? 'block' : 'none' ]]]"
+ item6:
+ - display: "[[[ return (variables.entity_6.entity_id != '') ? 'block' : 'none' ]]]"
+ item7:
+ - display: "[[[ return (variables.entity_7.entity_id != '') ? 'block' : 'none' ]]]"
+ custom_fields:
+ item1:
+ card:
+ type: "custom:button-card"
+ template: "card_scenes_pill_welcome"
+ variables: "[[[ return variables.entity_1; ]]]"
+ entity: "[[[ return variables.entity_1.entity_id ]]]"
+ custom_fields:
+ item1:
+ card:
+ type: "custom:button-card"
+ entity: "[[[ return variables.entity_1.entity_id ]]]"
+ icon: "[[[ return variables.entity_1.icon ]]]"
+ item2:
+ card:
+ type: "custom:button-card"
+ entity: "[[[ return variables.entity_1.entity_id ]]]"
+ name: "[[[ return variables.entity_1.name ]]]"
+ item2:
+ card:
+ type: "custom:button-card"
+ template: "card_scenes_pill_welcome"
+ variables: "[[[ return variables.entity_2; ]]]"
+ entity: "[[[ return variables.entity_2.entity_id ]]]"
+ custom_fields:
+ item1:
+ card:
+ type: "custom:button-card"
+ entity: "[[[ return variables.entity_2.entity_id ]]]"
+ icon: "[[[ return variables.entity_2.icon ]]]"
+ item2:
+ card:
+ type: "custom:button-card"
+ entity: "[[[ return variables.entity_2.entity_id ]]]"
+ name: "[[[ return variables.entity_2.name ]]]"
+ item3:
+ card:
+ type: "custom:button-card"
+ template: "card_scenes_pill_welcome"
+ variables: "[[[ return variables.entity_3; ]]]"
+ entity: "[[[ return variables.entity_3.entity_id ]]]"
+ custom_fields:
+ item1:
+ card:
+ type: "custom:button-card"
+ entity: "[[[ return variables.entity_3.entity_id ]]]"
+ icon: "[[[ return variables.entity_3.icon ]]]"
+ item2:
+ card:
+ type: "custom:button-card"
+ entity: "[[[ return variables.entity_3.entity_id ]]]"
+ name: "[[[ return variables.entity_3.name ]]]"
+ item4:
+ card:
+ type: "custom:button-card"
+ template: "card_scenes_pill_welcome"
+ variables: "[[[ return variables.entity_4; ]]]"
+ entity: "[[[ return variables.entity_4.entity_id ]]]"
+ custom_fields:
+ item1:
+ card:
+ type: "custom:button-card"
+ entity: "[[[ return variables.entity_4.entity_id ]]]"
+ icon: "[[[ return variables.entity_4.icon ]]]"
+ item2:
+ card:
+ type: "custom:button-card"
+ entity: "[[[ return variables.entity_4.entity_id ]]]"
+ name: "[[[ return variables.entity_4.name ]]]"
+ item5:
+ card:
+ type: "custom:button-card"
+ template: "card_scenes_pill_welcome"
+ variables: "[[[ return variables.entity_5; ]]]"
+ entity: "[[[ return variables.entity_5.entity_id ]]]"
+ custom_fields:
+ item1:
+ card:
+ type: "custom:button-card"
+ entity: "[[[ return variables.entity_5.entity_id ]]]"
+ icon: "[[[ return variables.entity_5.icon ]]]"
+ item2:
+ card:
+ type: "custom:button-card"
+ entity: "[[[ return variables.entity_5.entity_id ]]]"
+ name: "[[[ return variables.entity_5.name ]]]"
+ item6:
+ card:
+ type: "custom:button-card"
+ template: "card_scenes_pill_welcome"
+ variables: "[[[ return variables.entity_6; ]]]"
+ entity: "[[[ return variables.entity_6.entity_id ]]]"
+ custom_fields:
+ item1:
+ card:
+ type: "custom:button-card"
+ entity: "[[[ return variables.entity_6.entity_id ]]]"
+ icon: "[[[ return variables.entity_6.icon ]]]"
+ item2:
+ card:
+ type: "custom:button-card"
+ entity: "[[[ return variables.entity_6.entity_id ]]]"
+ name: "[[[ return variables.entity_6.name ]]]"
+ item7:
+ card:
+ type: "custom:button-card"
+ template: "card_scenes_pill_welcome"
+ variables: "[[[ return variables.entity_7; ]]]"
+ entity: "[[[ return variables.entity_7.entity_id ]]]"
+ custom_fields:
+ item1:
+ card:
+ type: "custom:button-card"
+ entity: "[[[ return variables.entity_7.entity_id ]]]"
+ icon: "[[[ return variables.entity_7.icon ]]]"
+ item2:
+ card:
+ type: "custom:button-card"
+ entity: "[[[ return variables.entity_7.entity_id ]]]"
+ name: "[[[ return variables.entity_7.name ]]]"
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 24fbae1b0..53ee4f782 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
@@ -781,7 +781,7 @@ card_thermostat:
icon: "mdi:fan"
tap_action:
action: "call-service"
- service: "climate.set_hvac_mode]"
+ service: "climate.set_hvac_mode"
service_data:
entity_id: "[[[ return entity.entity_id ]]]"
hvac_mode: "fan_only"
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 83a9303f6..b4ca43493 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
@@ -10,12 +10,44 @@ card_vacuum:
ulm_card_vacuum_icon: "[[[ return entity.attributes.icon ]]]"
ulm_card_vacuum_room:
ulm_card_vacuum_room_icon: "[[[ return entity.attributes.icon ]]]"
+ ulm_card_vacuum_camera:
+ ulm_card_vacuum_camera_toggle:
triggers_update: "all"
styles:
grid:
- - grid-template-areas: "'item1' 'item2'"
+ - grid-template-areas: >
+ [[[
+ if( variables.ulm_card_vacuum_camera ){
+ if ( variables.ulm_card_vacuum_camera_toggle ) {
+ if( entity.state.toLowerCase() === 'cleaning' ){
+ return "'item1' 'item3' 'item2'";
+ } else {
+ return "'item1' 'item2'";
+ }
+ } else {
+ return "'item1' 'item3' 'item2'";
+ }
+ } else {
+ return "'item1' 'item2'";
+ }
+ ]]]
- grid-template-columns: "1fr"
- - grid-template-rows: "min-content min-content"
+ - grid-template-rows: >
+ [[[
+ if( variables.ulm_card_vacuum_camera ){
+ if ( variables.ulm_card_vacuum_camera_toggle ) {
+ if( entity.state.toLowerCase() === 'cleaning' ){
+ return "repeat(3, min-content)";
+ } else {
+ return "repeat(2, min-content)";
+ }
+ } else {
+ return "repeat(3, min-content)";
+ }
+ } else {
+ return "repeat(2, min-content)";
+ }
+ ]]]
- row-gap: "12px"
card:
- border-radius: "var(--border-radius)"
@@ -34,6 +66,24 @@ card_vacuum:
return 'rgba(var(--color-purple),0.1)'
}
]]]
+ custom_fields:
+ item3:
+ - display: >
+ [[[
+ if( variables.ulm_card_vacuum_camera ){
+ if ( variables.ulm_card_vacuum_camera_toggle ) {
+ if( entity.state.toLowerCase() === 'cleaning' ){
+ return "block";
+ } else {
+ return "none";
+ }
+ } else {
+ return "block";
+ }
+ } else {
+ return "none";
+ }
+ ]]]
custom_fields:
item1:
card:
@@ -208,3 +258,10 @@ card_vacuum:
service: "script.turn_on"
service_data:
entity_id: "[[[ return variables.ulm_card_vacuum_room ]]]"
+ item3:
+ card:
+ type: "picture-entity"
+ camera_view: "live"
+ entity: "[[[ return variables.ulm_card_vacuum_camera ]]]"
+ show_name: false
+ show_state: false
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 66b41b255..866750c88 100644
--- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_welcome_scenes.yaml
+++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/card_templates/cards/card_welcome_scenes.yaml
@@ -2,11 +2,9 @@
card_welcome_scenes:
variables:
ulm_weather: "[[[ return variables.ulm_weather]]]"
- ulm_language: "[[[return window.navigator.language ]]]"
+ ulm_language: "[[[ return window.navigator.language ]]]"
entity_1:
- entity_id:
- icon: "[[[ return entity.attributes.icon ]]]"
- name: "[[[ return entity.attributes.friendly_name ]]]"
+ entity_id: ""
color: >
[[[
var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink'];
@@ -14,9 +12,7 @@ card_welcome_scenes:
return color;
]]]
entity_2:
- entity_id:
- icon: "[[[ return entity.attributes.icon ]]]"
- name: "[[[ return entity.attributes.friendly_name ]]]"
+ entity_id: ""
color: >
[[[
var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink'];
@@ -24,9 +20,7 @@ card_welcome_scenes:
return color;
]]]
entity_3:
- entity_id:
- icon: "[[[ return entity.attributes.icon ]]]"
- name: "[[[ return entity.attributes.friendly_name ]]]"
+ entity_id: ""
color: >
[[[
var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink'];
@@ -34,9 +28,7 @@ card_welcome_scenes:
return color;
]]]
entity_4:
- entity_id:
- icon: "[[[ return entity.attributes.icon ]]]"
- name: "[[[ return entity.attributes.friendly_name ]]]"
+ entity_id: ""
color: >
[[[
var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink'];
@@ -44,9 +36,23 @@ card_welcome_scenes:
return color;
]]]
entity_5:
- entity_id:
- icon: "[[[ return entity.attributes.icon ]]]"
- name: "[[[ return entity.attributes.friendly_name ]]]"
+ entity_id: ""
+ color: >
+ [[[
+ var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink'];
+ var color = colors[Math.floor(Math.random() * colors.length)];
+ return color;
+ ]]]
+ entity_6:
+ entity_id: ""
+ color: >
+ [[[
+ var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink'];
+ var color = colors[Math.floor(Math.random() * colors.length)];
+ return color;
+ ]]]
+ entity_7:
+ entity_id: ""
color: >
[[[
var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink'];
@@ -179,8 +185,8 @@ card_welcome_scenes:
type: "custom:button-card"
template: >
[[[
- if(variables.entity_1.entity_id && variables.entity_2.entity_id && variables.entity_3.entity_id && variables.entity_4.entity_id && variables.entity_5.entity_id){
- return 'card_scenes_welcome'
+ if(variables?.entity_1?.entity_id != ""){
+ return 'card_scenes'
} else {
return 'card_scenes_welcome_auto'
}
@@ -196,6 +202,8 @@ card_welcome_scenes:
entity_3: "[[[ return variables.entity_3]]]"
entity_4: "[[[ return variables.entity_4]]]"
entity_5: "[[[ return variables.entity_5]]]"
+ entity_6: "[[[ return variables.entity_6]]]"
+ entity_7: "[[[ return variables.entity_7]]]"
card_title_welcome:
tap_action:
action: "none"
@@ -224,137 +232,8 @@ card_title_welcome:
- font-weight: "bold"
- font-size: "1rem"
- opacity: "0.4"
-card_scenes_welcome:
- show_icon: false
- show_name: true
- show_label: false
- styles:
- grid:
- - grid-template-areas: "'item1 item2 item3 item4 item5'"
- - grid-template-columns: "1fr 1fr 1fr 1fr 1fr"
- - grid-template-rows: "min-content"
- - justify-items: "center"
- card:
- - border-radius: "var(--border-radius)"
- - box-shadow: "var(--box-shadow)"
- - padding: "12px"
- - overflow: "visible"
- custom_fields:
- item1:
- card:
- type: "custom:button-card"
- template: "card_scenes_pill_welcome"
- entity: "[[[ return variables.entity_1.entity_id ]]]"
- custom_fields:
- item1:
- card:
- type: "custom:button-card"
- template: "tap_action"
- entity: "[[[ return variables.entity_1.entity_id ]]]"
- icon: "[[[ return variables.entity_1.icon ]]]"
- styles:
- icon:
- - color: "[[[ return `rgba(var(--color-${variables.entity_1.color}), 1)`;]]]"
- img_cell:
- - background-color: "[[[ return `rgba(var(--color-${variables.entity_1.color}), 0.20)`;]]]"
- item2:
- card:
- type: "custom:button-card"
- template: "tap_action"
- entity: "[[[ return variables.entity_1.entity_id ]]]"
- name: "[[[ return variables.entity_1.name ]]]"
- item2:
- card:
- type: "custom:button-card"
- template: "card_scenes_pill_welcome"
- entity: "[[[ return variables.entity_2.entity_id ]]]"
- custom_fields:
- item1:
- card:
- type: "custom:button-card"
- template: "tap_action"
- entity: "[[[ return variables.entity_2.entity_id ]]]"
- icon: "[[[ return variables.entity_2.icon ]]]"
- styles:
- icon:
- - color: "[[[ return `rgba(var(--color-${variables.entity_2.color}), 1)`;]]]"
- img_cell:
- - background-color: "[[[ return `rgba(var(--color-${variables.entity_2.color}), 0.20)`;]]]"
- item2:
- card:
- type: "custom:button-card"
- template: "tap_action"
- entity: "[[[ return variables.entity_2.entity_id ]]]"
- name: "[[[ return variables.entity_2.name ]]]"
- item3:
- card:
- type: "custom:button-card"
- template: "card_scenes_pill_welcome"
- entity: "[[[ return variables.entity_3.entity_id ]]]"
- custom_fields:
- item1:
- card:
- type: "custom:button-card"
- template: "tap_action"
- entity: "[[[ return variables.entity_3.entity_id ]]]"
- icon: "[[[ return variables.entity_3.icon ]]]"
- styles:
- icon:
- - color: "[[[ return `rgba(var(--color-${variables.entity_3.color}), 1)`;]]]"
- img_cell:
- - background-color: "[[[ return `rgba(var(--color-${variables.entity_3.color}), 0.20)`;]]]"
- item2:
- card:
- type: "custom:button-card"
- template: "tap_action"
- entity: "[[[ return variables.entity_3.entity_id ]]]"
- name: "[[[ return variables.entity_3.name ]]]"
- item4:
- card:
- type: "custom:button-card"
- template: "card_scenes_pill_welcome"
- entity: "[[[ return variables.entity_4.entity_id ]]]"
- custom_fields:
- item1:
- card:
- type: "custom:button-card"
- template: "tap_action"
- entity: "[[[ return variables.entity_4.entity_id ]]]"
- icon: "[[[ return variables.entity_4.icon ]]]"
- styles:
- icon:
- - color: "[[[ return `rgba(var(--color-${variables.entity_4.color}), 1)`;]]]"
- img_cell:
- - background-color: "[[[ return `rgba(var(--color-${variables.entity_4.color}), 0.20)`;]]]"
- item2:
- card:
- type: "custom:button-card"
- template: "tap_action"
- entity: "[[[ return variables.entity_4.entity_id ]]]"
- name: "[[[ return variables.entity_4.name ]]]"
- item5:
- card:
- type: "custom:button-card"
- template: "card_scenes_pill_welcome"
- entity: "[[[ return variables.entity_5.entity_id ]]]"
- custom_fields:
- item1:
- card:
- type: "custom:button-card"
- template: "tap_action"
- entity: "[[[ return variables.entity_5.entity_id ]]]"
- icon: "[[[ return variables.entity_5.icon ]]]"
- styles:
- icon:
- - color: "[[[ return `rgba(var(--color-${variables.entity_5.color}), 1)`;]]]"
- img_cell:
- - background-color: "[[[ return `rgba(var(--color-${variables.entity_5.color}), 0.20)`;]]]"
- item2:
- card:
- type: "custom:button-card"
- template: "tap_action"
- entity: "[[[ return variables.entity_5.entity_id ]]]"
- name: "[[[ return variables.entity_5.name ]]]"
+
+# pill
card_scenes_pill_welcome:
show_icon: false
show_label: false
@@ -363,7 +242,7 @@ card_scenes_pill_welcome:
- operator: "template"
value: >
[[[
- return (entity.state !== 'on' && entity.state !== 'playing')
+ return (entity.state !== 'on' && entity.state !== 'playing' && entity.state != variables?.state)
]]]
styles:
card:
@@ -398,14 +277,58 @@ card_scenes_pill_welcome:
show_icon: true
show_label: false
show_name: false
+ tap_action:
+ action: >
+ [[[
+ if(variables?.nav_path){
+ return "navigate"
+ } else {
+ return "call-service"
+ }
+ ]]]
+ service: >
+ [[[
+ if(entity.entity_id.startsWith("scene.")){
+ return "scene.turn_on"
+ }
+ else if(entity.entity_id.startsWith("media_player.")){
+ return "media_player.media_play_pause"
+ }
+ else if(entity.entity_id.startsWith("input_select.")){
+ return "input_select.select_option"
+ } else {
+ return "homeassistant.toggle"
+ }
+ ]]]
+ navigation_path: "[[[ return variables?.nav_path; ]]]"
+ service_data: |
+ [[[
+ var obj;
+ if( entity.entity_id.startsWith("input_select.") )
+ obj = { entity_id: entity.entity_id, option: variables.state };
+ else
+ obj = { entity_id: entity.entity_id };
+ return obj;
+ ]]]
styles:
grid:
- grid-template-areas: "i"
icon:
- - color: "[[[ return `rgba(var(--color-theme), 0.20)`;]]]"
+ - color: >
+ [[[
+ var color = variables?.color
+ if(hass.themes.darkMode){var color = "#FAFAFA";}
+ return `rgba(var(--color-${color}), 1)`;
+ ]]]
- width: "20px"
img_cell:
- - background-color: "[[[ return `rgba(var(--color-theme), 0.05)`;]]] "
+ - background-color: >
+ [[[
+ var color = variables?.color
+ var opacity = '0.20'
+ if(hass.themes.darkMode){var opacity = '1'}
+ return `rgba(var(--color-${color}), ${opacity})`;
+ ]]]
- border-radius: "50%"
- width: "42px"
- height: "42px"
@@ -417,7 +340,7 @@ card_scenes_pill_welcome:
- operator: "template"
value: >
[[[
- return (entity.state !== 'on' && entity.state !== 'playing')
+ return (entity.state !== 'on' && entity.state !== 'playing' && entity.state != variables?.state)
]]]
styles:
card:
@@ -435,6 +358,39 @@ card_scenes_pill_welcome:
type: "custom:button-card"
show_icon: false
show_label: false
+ tap_action:
+ action: >
+ [[[
+ if(variables?.nav_path){
+ return "navigate"
+ } else {
+ return "call-service"
+ }
+ ]]]
+ navigation_path: "[[[ return variables?.nav_path; ]]]"
+ service: >
+ [[[
+ if(entity.entity_id.startsWith("scene.")){
+ return "scene.turn_on"
+ }
+ else if(entity.entity_id.startsWith("media_player.")){
+ return "media_player.media_play_pause"
+ }
+ else if(entity.entity_id.startsWith("input_select.")){
+ return "input_select.select_option"
+ } else {
+ return "homeassistant.toggle"
+ }
+ ]]]
+ service_data: |
+ [[[
+ var obj;
+ if( entity.entity_id.startsWith("input_select.") )
+ obj = { entity_id: entity.entity_id, option: variables.state };
+ else
+ obj = { entity_id: entity.entity_id };
+ return obj;
+ ]]]
styles:
grid:
- grid-template-areas: "n"
@@ -537,13 +493,18 @@ card_scenes_welcome_auto:
show_icon: false
show_name: true
show_label: false
+ variables:
+ colors: >
+ [[[
+ var colors = ['yellow', 'blue', 'red', 'purple','green', 'pink'];
+ var color = colors[Math.floor(Math.random() * colors.length)];
+ return color;
+ ]]]
styles:
grid:
- - grid-template-areas: "'item1 item2 item3 item4 item5'"
- - grid-template-columns: "1fr 1fr 1fr 1fr 1fr"
- - grid-template-rows: "min-content"
- - justify-items: "center"
- - column-gap: "24px"
+ - grid-template-areas: "item1"
+ - display: "flex"
+ - justify-content: "center"
card:
- border-radius: "var(--border-radius)"
- box-shadow: "var(--box-shadow)"
@@ -554,84 +515,14 @@ card_scenes_welcome_auto:
type: "custom:auto-entities"
card:
type: "grid"
- columns: 1
- square: false
- card_param: "cards"
- sort:
- count: 1
- filter:
- include:
- - domain: "script"
- options:
- type: "custom:button-card"
- template: "card_scenes_pill_welcome"
- custom_fields:
- item1:
- card:
- type: "custom:button-card"
- template: "tap_action"
- entity: "this.entity_id"
- icon: "[[[ return variables.entity_1.icon ]]]"
- styles:
- icon:
- - color: "[[[ return `rgba(var(--color-${variables.entity_1.color}), 1)`;]]]"
- img_cell:
- - background-color: "[[[ return `rgba(var(--color-${variables.entity_1.color}), 0.20)`;]]]"
- item2:
- card:
- type: "custom:button-card"
- template: "tap_action"
- entity: "this.entity_id"
- name: "[[[ return variables.entity_1.name ]]]"
- item2:
- card:
- type: "custom:auto-entities"
- card:
- type: "grid"
- columns: 1
- square: false
- card_param: "cards"
- sort:
- count: 1
- first: 1
- filter:
- include:
- - domain: "script"
- options:
- type: "custom:button-card"
- template: "card_scenes_pill_welcome"
- custom_fields:
- item1:
- card:
- type: "custom:button-card"
- template: "tap_action"
- entity: "this.entity_id"
- icon: "[[[ return variables.entity_2.icon ]]]"
- styles:
- icon:
- - color: "[[[ return `rgba(var(--color-${variables.entity_2.color}), 1)`;]]]"
- img_cell:
- - background-color: "[[[ return `rgba(var(--color-${variables.entity_2.color}), 0.20)`;]]]"
- item2:
- card:
- type: "custom:button-card"
- template: "tap_action"
- entity: "this.entity_id"
- name: "[[[ return variables.entity_2.name ]]]"
- item3:
- card:
- type: "custom:auto-entities"
- card:
- type: "grid"
- columns: 1
+ columns: 5
square: false
card_param: "cards"
sort:
- count: 1
- first: 2
+ count: 5
filter:
include:
- - domain: "script"
+ - domain: "light"
options:
type: "custom:button-card"
template: "card_scenes_pill_welcome"
@@ -639,104 +530,25 @@ card_scenes_welcome_auto:
item1:
card:
type: "custom:button-card"
- template: "tap_action"
entity: "this.entity_id"
- icon: "[[[ return variables.entity_3.icon ]]]"
styles:
icon:
- - color: "[[[ return `rgba(var(--color-${variables.entity_3.color}), 1)`;]]]"
+ - color: >
+ [[[
+ var color = variables.colors
+ if(hass.themes.darkMode){var color = "#FAFAFA";}
+ return `rgba(var(--color-${color}), 1)`;
+ ]]]
+ - width: "20px"
img_cell:
- - background-color: "[[[ return `rgba(var(--color-${variables.entity_3.color}), 0.20)`;]]]"
+ - background-color: >
+ [[[
+ var color = variables.colors
+ var opacity = '0.20'
+ if(hass.themes.darkMode){var opacity = '1'}
+ return `rgba(var(--color-${color}), ${opacity})`;
+ ]]]
item2:
card:
type: "custom:button-card"
- template: "tap_action"
entity: "this.entity_id"
- name: "[[[ return variables.entity_3.name ]]]"
- item4:
- card:
- type: "custom:auto-entities"
- card:
- type: "grid"
- columns: 1
- square: false
- card_param: "cards"
- sort:
- count: 1
- first: 3
- filter:
- include:
- - domain: "script"
- options:
- type: "custom:button-card"
- template: "card_scenes_pill_welcome"
- custom_fields:
- item1:
- card:
- type: "custom:button-card"
- template: "tap_action"
- entity: "this.entity_id"
- icon: "[[[ return variables.entity_4.icon ]]]"
- styles:
- icon:
- - color: "[[[ return `rgba(var(--color-${variables.entity_4.color}), 1)`;]]]"
- img_cell:
- - background-color: "[[[ return `rgba(var(--color-${variables.entity_4.color}), 0.20)`;]]]"
- item2:
- card:
- type: "custom:button-card"
- template: "tap_action"
- entity: "this.entity_id"
- name: "[[[ return variables.entity_4.name ]]]"
- item5:
- card:
- type: "custom:auto-entities"
- card:
- type: "grid"
- columns: 1
- square: false
- card_param: "cards"
- sort:
- count: 1
- first: 4
- filter:
- include:
- - domain: "script"
- options:
- type: "custom:button-card"
- template: "card_scenes_pill_welcome"
- custom_fields:
- item1:
- card:
- type: "custom:button-card"
- template: "tap_action"
- entity: "this.entity_id"
- icon: "[[[ return variables.entity_5.icon ]]]"
- styles:
- icon:
- - color: "[[[ return `rgba(var(--color-${variables.entity_5.color}), 1)`;]]]"
- img_cell:
- - background-color: "[[[ return `rgba(var(--color-${variables.entity_5.color}), 0.20)`;]]]"
- item2:
- card:
- type: "custom:button-card"
- template: "tap_action"
- entity: "this.entity_id"
- name: "[[[ return variables.entity_5.name ]]]"
-### tap_action
-tap_action:
- tap_action:
- action: "call-service"
- service: >
- [[[
- if(entity.entity_id.startsWith("scene.")){
- return "scene.turn_on"
- }
- else if(entity.entity_id.startsWith("media_player.")){
- return "media_player.media_play_pause"
- } else {
- return "homeassistant.toggle"
- }
- ]]]
- service_data:
- entity_id: "[[[ return entity.entity_id]]]"
diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button.yaml
index 0ba7ce89c..e0638b80d 100644
--- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button.yaml
+++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button.yaml
@@ -11,6 +11,8 @@ popup_button:
card:
- background: "none"
- box-shadow: "none"
+ - border-radius: "none"
+ - padding: "12px"
icon:
- color: "var(--primary-color)"
img_cell:
diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button_app.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button_app.yaml
new file mode 100644
index 000000000..551de48ca
--- /dev/null
+++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button_app.yaml
@@ -0,0 +1,118 @@
+---
+popup_button_app:
+ template:
+ - "popup_button"
+ show_name: true
+ show_label: true
+ styles:
+ grid:
+ - grid-template-areas: "'i n' 'i l'"
+ - grid-template-columns: "min-content auto"
+ - grid-template-rows: "min-content min-content"
+ label:
+ - justify-self: "start"
+ - align-self: "start"
+ - font-weight: "bolder"
+ - font-size: "12px"
+ - filter: "opacity(40%)"
+ - margin-left: "12px"
+ name:
+ - align-self: "end"
+ - justify-self: "start"
+ - font-weight: "bold"
+ - font-size: "14px"
+ - margin-left: "12px"
+ - margin-top: "0px"
+ icon:
+ - color: >
+ [[[
+ var color = "var(--color-theme)";
+ if(entity?.attributes?.app_name){
+ var app = entity.attributes?.app_name.toLowerCase();
+ if(app = "spotify"){
+ var color = "#1DB954";
+ }
+ } else if(entity?.attributes?.media_content_id?.toLowerCase().includes("spotify")){
+ var color = "#1DB954";
+ }
+ return color;
+ ]]]
+ img_cell:
+ - border: "1px solid var(--color-theme)"
+ - border-shadow: "none"
+ - background-color: >
+ [[[
+ var color = "var(--color-theme)";
+ if(entity?.attributes?.app_name){
+ var app = entity?.attributes?.app_name?.toLowerCase();
+ if(app = "spotify"){
+ var color = "#434343";
+ }
+ } else if(entity?.attributes?.media_content_id?.toLowerCase().includes("spotify")){
+ var color = "#434343";
+ }
+ return color;
+ ]]]
+ icon: >
+ [[[
+ var icon = entity.attributes.icon || "mdi:speaker";
+ if(entity?.attributes?.app_name){
+ var app = entity.attributes.app_name.toLowerCase();
+ if(app == "spotify"){
+ var icon = "mdi:spotify";
+ } else if(app == "google podcasts"){
+ var icon = "mdi:google-podcast";
+ } else if(app == "plex"){
+ var icon = "mdi:plex";
+ } else if(app == "soundcloud"){
+ var icon = "mdi:soundcloud";
+ } else if(app == "youtube music"){
+ var icon = "mdi:youtube";
+ } else if (app == "oto music"){
+ var icon = "mdi:music-circle";
+ } else if(app == "pandora"){
+ var icon = "mdi:pandora";
+ } else if(app == "netflix"){
+ var icon = "mdi:netflix";
+ } else if(app == "bluetooth audio"){
+ var icon = "mdi:bluetooth";
+ }
+ } else if(entity?.attributes?.media_content_id?.toLowerCase().includes("spotify")){
+ var icon = "mdi:spotify";
+ }
+ return icon;
+ ]]]
+ label: >
+ [[[
+ var label = entity.attributes.media_title || entity.attributes.friendly_name;
+ return label;
+ ]]]
+ name: >
+ [[[
+ var name = entity.attributes.friendly_name;
+ if(entity?.attributes?.app_name){
+ var app = entity?.attributes?.app_name?.toLowerCase();
+ if(app == "spotify"){
+ var name = "Spotify";
+ } else if(app == "google podcasts"){
+ var name = "Google-Podcast";
+ } else if(app == "plex"){
+ var name = "Plex";
+ } else if(app == "soundcloud"){
+ var name = "Soundcloud";
+ } else if(app == "youtube music"){
+ var name = "Youtube";
+ } else if (app == "oto music"){
+ var name = "Oto Music";
+ } else if(app == "pandora"){
+ var name = "Pandora";
+ } else if(app == "netflix"){
+ var name = "Netflix";
+ } else if(app == "bluetooth audio"){
+ var name = "Bluetooth";
+ }
+ } else if(entity?.attributes?.media_content_id?.toLowerCase().includes("spotify")){
+ var name = "Spotify";
+ }
+ return name;
+ ]]]
diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button_source.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button_source.yaml
new file mode 100644
index 000000000..a43106542
--- /dev/null
+++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button_source.yaml
@@ -0,0 +1,15 @@
+---
+popup_button_source:
+ template:
+ - "popup_button"
+ - "ulm_language_variables"
+ icon: "mdi:playlist-music"
+ name: "Source"
+ styles:
+ name:
+ - text-transform: "uppercase"
+ - color: "rgba(var(--color-theme),0.5)"
+ img_cell:
+ - background: "none"
+ - box-shadow: "none"
+ - border: "1px solid rgba(var(--color-theme),0.25)"
diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button_volume.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button_volume.yaml
index bdc7d8620..27054bd4a 100644
--- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button_volume.yaml
+++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_button_volume.yaml
@@ -1,5 +1,17 @@
---
popup_button_volume:
- template: "ulm_language_variables"
+ template:
+ - "popup_button"
+ - "ulm_language_variables"
icon: "mdi:volume-high"
name: "Volume"
+ styles:
+ name:
+ - text-transform: "uppercase"
+ - color: "rgba(var(--color-theme),0.5)"
+ img_cell:
+ - background: "none"
+ - box-shadow: "none"
+ - border: "1px solid rgba(var(--color-theme),0.25)"
+ tap_action:
+ action: "more_info"
diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_card_volume.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_card_volume.yaml
new file mode 100644
index 000000000..1f548c7b9
--- /dev/null
+++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_card_volume.yaml
@@ -0,0 +1,15 @@
+---
+popup_card_volume:
+ template: "chips"
+ show_icon: true
+ icon: "mdi:volume-high"
+ label: "80%"
+ styles:
+ card:
+ - background: "none"
+ - box-shadow: "none"
+ - border: "1px solid rgba(var(--color-theme),0.25)"
+ grid:
+ - grid-template-areas: "i l"
+ - justify-content: "space-between"
+ - display: "flex"
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
new file mode 100644
index 000000000..a0a33b42d
--- /dev/null
+++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_chip_controls.yaml
@@ -0,0 +1,76 @@
+---
+popup_chip_controls:
+ template: "chips"
+ variables:
+ ulm_popup_media_player_entity: "[[[ return variables.ulm_popup_media_player_entity ]]]"
+ styles:
+ card:
+ - background: "none"
+ - box-shadow: "none"
+ - border: "1px solid rgba(var(--color-theme),0.5)"
+ - height: "42px"
+ - border-radius: "21px"
+ grid:
+ - grid-template-areas: "item1 item2 item3"
+ - justify-content: "space-evenly"
+ - display: "flex"
+ - grid-template-columns: "min-content min-content min-content"
+ custom_fields:
+ item1:
+ card:
+ type: "custom:button-card"
+ template: "icon_controls"
+ entity: "[[[ return variables.ulm_popup_media_player_entity ]]]"
+ icon: "mdi:skip-previous"
+ tap_action:
+ action: "call-service"
+ service: "media_player.media_previous_track"
+ service_data:
+ entity_id: "[[[ return variables.ulm_popup_media_player_entity]]]"
+ styles:
+ icon:
+ - color: "rgba(var(--color-theme),0.5)"
+ item2:
+ card:
+ type: "custom:button-card"
+ template: "icon_controls"
+ entity: "[[[ return variables.ulm_popup_media_player_entity ]]]"
+ icon: "mdi:play"
+ state:
+ - value: "playing"
+ icon: "mdi:pause"
+ tap_action:
+ action: "call-service"
+ service: "media_player.media_play_pause"
+ service_data:
+ entity_id: "[[[ return variables.ulm_popup_media_player_entity]]]"
+ item3:
+ card:
+ type: "custom:button-card"
+ template: "icon_controls"
+ entity: "[[[ return variables.ulm_popup_media_player_entity ]]]"
+ icon: "mdi:skip-next"
+ tap_action:
+ action: "call-service"
+ service: "media_player.media_next_track"
+ service_data:
+ entity_id: "[[[ return variables.ulm_popup_media_player_entity]]]"
+ styles:
+ icon:
+ - color: "rgba(var(--color-theme),0.5)"
+
+icon_controls:
+ show_icon: true
+ show_label: false
+ show_name: false
+ show_state: false
+ styles:
+ card:
+ - background: "none"
+ - box-shadow: "none"
+ - height: "42px"
+ grid:
+ - grid-template-areas: "'i'"
+ img_cell:
+ - width: "30px"
+ size: "80%"
diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_chip_volume.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_chip_volume.yaml
new file mode 100644
index 000000000..c0280a244
--- /dev/null
+++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_chip_volume.yaml
@@ -0,0 +1,23 @@
+---
+popup_chip_volume:
+ template: "chips"
+ show_icon: true
+ icon: "mdi:volume-high"
+ label: >
+ [[[
+ let level = entity.attributes.volume_level
+ return level * 100 + '%'
+ ]]]
+ styles:
+ card:
+ - background: "none"
+ - box-shadow: "none"
+ - border: "1px solid rgba(var(--color-theme),0.25)"
+ - height: "42px"
+ - border-radius: "21px"
+ grid:
+ - grid-template-areas: "i l"
+ - justify-content: "space-between"
+ - display: "flex"
+ img_cell:
+ - width: "30px"
diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_header.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_header.yaml
index 03484ba24..04db54a4f 100644
--- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_header.yaml
+++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_buttons/popup_header.yaml
@@ -15,6 +15,8 @@ popup_header:
- font-weight: "bold"
- font-size: "12px"
- filter: "opacity(40%)"
+ name:
+ - margin-top: "6px"
icon:
- color: "var(--color-theme)"
label: |-
diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_list_items.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_list_items.yaml
index 840f48f63..42c111946 100644
--- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_list_items.yaml
+++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popup_layouts/popup_list_items.yaml
@@ -4,3 +4,8 @@ popup_list_items:
styles:
card:
- background: "none"
+ - border-radius: "none"
+ grid:
+ - grid-template-areas: "'item1 item2 item3'"
+ - justify-content: "space-evenly"
+ - display: "flex"
diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_light_brightness.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_light_brightness.yaml
index 0a1abfd11..ff8414935 100644
--- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_light_brightness.yaml
+++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_light_brightness.yaml
@@ -37,7 +37,6 @@ popup_light_brightness:
}
return columns.join(" ");
]]]
- - column-gap: "30px"
card:
- background: "var(--primary-background-color)"
- box-shadow: "none"
diff --git a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_media_player_infos.yaml b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_media_player_infos.yaml
index 607ec7438..76b3e4e1a 100644
--- a/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_media_player_infos.yaml
+++ b/custom_components/ui_lovelace_minimalist/lovelace/ulm_templates/popup_templates/popups/popup_media_player_infos.yaml
@@ -1,15 +1,17 @@
---
popup_media_player_infos:
+ triggers_update: "all"
styles:
grid:
- - grid-template-areas: "'header header' 'content1 content2' 'footer footer'"
- - grid-template-rows: "16vh 56vh 14vh"
- - grid-template-columns: "1fr 1fr"
- - column-gap: "30px"
+ - grid-template-areas: "'header' 'content1' 'footer'"
+ - grid-template-rows: "14vh 56vh 16vh"
+ - row-gap: "2.5%"
card:
- background: "var(--primary-background-color)"
- box-shadow: "none"
- padding: "4%"
+ - border-radius: "none"
+ - height: "100vh"
custom_fields:
header:
- align-self: "start"
@@ -22,17 +24,18 @@ popup_media_player_infos:
- max-width: "400px"
- justify-self: "center"
content2:
- - align-self: "center"
+ - display: "none"
buttons:
- display: "none"
footer:
- align-self: "end"
- margin-top: "25px"
+ - padding-bottom: "4%"
extra_styles: |
@media (max-width: 800px) {
#container {
- grid-template-areas: "header" "content1" "buttons" "footer" !important;
- grid-template-rows: 16vh 52vh 14vh 14vh !important;
+ grid-template-areas: "header" "content1" "footer" !important;
+ grid-template-rows: 14vh 56vh 16vh !important;
grid-template-columns: 1fr !important;
}
#buttons {
@@ -52,14 +55,32 @@ popup_media_player_infos:
content1:
card:
type: "custom:button-card"
+ show_icon: false
+ show_name: false
+ show_label: false
styles:
grid:
- - grid-template-areas: "'picture' 'media' 'control'"
+ - grid-template-areas: "'app' 'picture' 'media' 'control' 'bar'"
card:
- - background: "none"
+ - background-blend-mode: "soft-light"
+ - background: |
+ [[[
+ if(hass.themes.darkMode){
+ return states[variables.ulm_popup_media_player_entity].state == 'playing' && states[variables.ulm_popup_media_player_entity].attributes.entity_picture != null
+ ? ' center / cover url(' + states[variables.ulm_popup_media_player_entity].attributes.entity_picture + '), radial-gradient(circle, #333333 90%, grey 105% ,#333333 110%)'
+ : ''
+ }else{
+ return states[variables.ulm_popup_media_player_entity].state == 'playing' && states[variables.ulm_popup_media_player_entity].attributes.entity_picture != null
+ ? ' center / cover url(' + states[variables.ulm_popup_media_player_entity].attributes.entity_picture + '), radial-gradient(circle, white 5%, grey 100% ,white 110%)'
+ : ''
+ }
+ ]]]
- box-shadow: "none"
- - padding: "4%"
+ - padding: "1%"
custom_fields:
+ app:
+ - justify-self: "start"
+ - align-self: "start"
picture:
- margin-left: "auto"
- margin-right: "auto"
@@ -73,7 +94,17 @@ popup_media_player_infos:
control:
- background: "none"
- box-shadow: "none"
+ bar:
+ - align-self: "start"
+ - background: "none"
+ - box-shadow: "none"
+ - margin-bottom: "12px"
custom_fields:
+ app:
+ card:
+ type: "custom:button-card"
+ template: "popup_button_app"
+ entity: "[[[ return variables.ulm_popup_media_player_entity ]]]"
picture:
card:
type: "custom:mini-media-player"
@@ -132,6 +163,7 @@ popup_media_player_infos:
type: "custom:mini-media-player"
entity: "[[[ return variables.ulm_popup_media_player_entity ]]]"
hide:
+ controls: true
icon: true
name: true
info: true
@@ -145,43 +177,58 @@ popup_media_player_infos:
background: none !important;
box-shadow: none !important;
width: 50% !important;
- margin-left: auto !important;
- margin-right: auto !important;
+ margin-left: 6px !important;
+ margin-right: 6px !important;
}
.mmp__bg{
background: none !important;
}
- buttons:
- card:
- type: "custom:button-card"
- template: "list_2_items"
- styles:
- card:
- - background: "none"
- custom_fields:
- item1:
- card:
- type: "custom:button-card"
- template:
- - "popup_button"
- - "popup_button_selected"
- - "popup_button_playing"
- item2:
+ bar:
card:
type: "custom:button-card"
- template:
- - "popup_button"
- - "popup_button_volume"
- tap_action:
- action: "fire-dom-event"
- browser_mod:
- command: "popup"
- hide_header: true
+ template: "list_2_items"
+ variables:
+ ulm_popup_media_player_entity: "[[[ return variables.ulm_popup_media_player_entity ]]]"
+ styles:
+ card:
+ - background: "none"
+ - box-shadow: "none"
+ - padding: "0px"
+ grid:
+ - display: "flex"
+ - justify-content: "center"
+ custom_fields:
+ item1:
card:
type: "custom:button-card"
- template: "popup_media_player_volume"
+ template: "popup_chip_controls"
variables:
ulm_popup_media_player_entity: "[[[ return variables.ulm_popup_media_player_entity ]]]"
+ styles:
+ card:
+ - background: "none"
+ - box-shadow: "none"
+ - padding: "0px"
+ item2:
+ card:
+ type: "custom:button-card"
+ template: "popup_chip_volume"
+ entity: "[[[ return variables.ulm_popup_media_player_entity ]]]"
+ styles:
+ card:
+ - background: "none"
+ - box-shadow: "none"
+ - padding: "0"
+ tap_action:
+ action: "fire-dom-event"
+ browser_mod:
+ command: "popup"
+ hide_header: true
+ card:
+ type: "custom:button-card"
+ template: "popup_media_player_volume"
+ variables:
+ ulm_popup_media_player_entity: "[[[ return variables.ulm_popup_media_player_entity ]]]"
footer:
card:
type: "custom:button-card"
@@ -196,6 +243,11 @@ popup_media_player_infos:
type: "custom:button-card"
template: "popup_button_power"
entity: "[[[ return variables.ulm_popup_media_player_entity ]]]"
+ item3:
+ card:
+ type: "custom:button-card"
+ template: "popup_button_source"
+ entity: "[[[ return variables.ulm_popup_media_player_entity ]]]"
content2:
card:
type: "custom:my-slider"
diff --git a/custom_components/ui_lovelace_minimalist/translations/de.json b/custom_components/ui_lovelace_minimalist/translations/de.json
new file mode 100644
index 000000000..84bc3abfb
--- /dev/null
+++ b/custom_components/ui_lovelace_minimalist/translations/de.json
@@ -0,0 +1,43 @@
+{
+ "title": "UI Lovelace Minimalist",
+ "config": {
+ "step": {
+ "user": {
+ "title": "UI Lovelace Minimalist Einstellungen",
+ "description": "",
+ "data": {
+ "language": "Sprache",
+ "sidepanel_enabled": "Erstellung eines Eintrages in der Seitenleiste aktivieren.",
+ "sidepanel_icon": "Icon Seitenleiste",
+ "sidepanel_title": "Titel Seitenleiste",
+ "theme": "Thema",
+ "include_other_cards": "Individuelle Karten, die für die Nutzung benötigt werden, ebenfalls laden."
+ }
+ }
+ },
+ "abort": {
+ "single_instance_allowed": "Es ist nur eine Konfiguration von UI Lovelace Minimalist erlaubt.",
+ "not_setup": "UI Lovelace Minimalist ist nicht eingerichtet."
+ }
+ },
+ "options": {
+ "step": {
+ "user": {
+ "title": "UI Lovelace Minimalist Einstellungen",
+ "description": "",
+ "data": {
+ "language": "Sprache",
+ "sidepanel_enabled": "Erstellung eines Eintrages in der Seitenleiste aktivieren.",
+ "sidepanel_icon": "Icon Seitenleiste",
+ "sidepanel_title": "Titel Seitenleiste",
+ "theme": "Thema",
+ "include_other_cards": "Individuelle Karten, die für die Nutzung benötigt werden, ebenfalls laden."
+ }
+ }
+ },
+ "abort": {
+ "single_instance_allowed": "Es ist nur eine Konfiguration von UI Lovelace Minimalist erlaubt.",
+ "not_setup": "UI Lovelace Minimalist ist nicht eingerichtet."
+ }
+ }
+}
diff --git a/custom_components/ui_lovelace_minimalist/translations/ru.json b/custom_components/ui_lovelace_minimalist/translations/ru.json
new file mode 100644
index 000000000..c42f9999f
--- /dev/null
+++ b/custom_components/ui_lovelace_minimalist/translations/ru.json
@@ -0,0 +1,43 @@
+{
+ "title": "UI Lovelace Minimalist",
+ "config": {
+ "step": {
+ "user": {
+ "title": "Настройки UI Lovelace Minimalist",
+ "description": "",
+ "data": {
+ "language": "Язык",
+ "sidepanel_enabled": "Создайте новую Панель инструментов на боковой панели.",
+ "sidepanel_icon": "Значок боковой панели",
+ "sidepanel_title": "Название боковой панели",
+ "theme": "Тема",
+ "include_other_cards": "Включите ресурсы, необходимые для пользовательских карт."
+ }
+ }
+ },
+ "abort": {
+ "single_instance_allowed": "Допустима только одна конфигурация UI Lovelace Minimalist.",
+ "not_setup": "UI Lovelace Minimalist не установлена."
+ }
+ },
+ "options": {
+ "step": {
+ "user": {
+ "title": "Настройки UI Lovelace Minimalist",
+ "description": "",
+ "data": {
+ "language": "Язык",
+ "sidepanel_enabled": "Создайте новую Панель инструментов на боковой панели.",
+ "sidepanel_icon": "Значок боковой панели",
+ "sidepanel_title": "Название боковой панели",
+ "theme": "Тема",
+ "include_other_cards": "Включите ресурсы, необходимые для пользовательских карт."
+ }
+ }
+ },
+ "abort": {
+ "single_instance_allowed": "Допустима только одна конфигурация UI Lovelace Minimalist.",
+ "not_setup": "UI Lovelace Minimalist не установлена."
+ }
+ }
+}
diff --git a/docs/testenv.code-workspace b/docs/testenv.code-workspace
new file mode 100644
index 000000000..985f94a15
--- /dev/null
+++ b/docs/testenv.code-workspace
@@ -0,0 +1,10 @@
+{
+ "folders": [
+ {
+ "path": ".."
+ },
+ {
+ "path": "../../../config"
+ }
+ ]
+}
diff --git a/docs/usage/cards/card_cover.md b/docs/usage/cards/card_cover.md
index fbb83deba..e2f6c71e1 100644
--- a/docs/usage/cards/card_cover.md
+++ b/docs/usage/cards/card_cover.md
@@ -18,16 +18,18 @@ With the `cover-card` you have the state of your cover. Optionnaly, on the secon
## Variables
-| Variable/Entity | Default | Required | Notes | Requirement |
-|----------------------------------------|-----------------|------------------|----------------|-------------|
-| entity | | :material-check: | Your HA entity | |
-| ulm_card_cover_name | `friendly_name` | :material-close: | Customize name | |
-| ulm_card_cover_display_left_right | `false` | :material-close: | Display left right control button | |
-| ulm_card_curtain_display_collapse_expand | `false` | :material-close: | Display expand collapse control button | |
-| ulm_card_cover_enable_controls | `false` | :material-close: | Enable control buttons | |
-| ulm_card_cover_enable_slider | `false` | :material-close: | Enable slider | |
-| ulm_card_cover_enable_horizontal | `false` | :material-close: | Enable horizontal card | Need `ulm_card_cover_enable_controls: true` or `ulm_card_cover_enable_slider: true` |
-| ulm_card_cover_enable_popup | `false` | :material-close: | Enable `popup_cover` | |
+| Variable/Entity | Default | Required | Notes | Requirement |
+|----------------------------------------|-----------------|------------------|----------------------------------------|-------------|
+| entity | | :material-check: | Your HA entity | |
+| ulm_card_cover_name | `friendly_name` | :material-close: | Customize name | |
+| ulm_card_cover_display_left_right | `false` | :material-close: | Display left right control button | |
+| ulm_card_curtain_display_collapse_expand | `false` | :material-close: | Display expand collapse control button | |
+| ulm_card_cover_garage | `false` | :material-close: | Display garage icon for garage cover | |
+| ulm_card_cover_gate | `false` | :material-close: | Display gate icon for gate cover | |
+| ulm_card_cover_enable_controls | `false` | :material-close: | Enable control buttons | |
+| ulm_card_cover_enable_slider | `false` | :material-close: | Enable slider | |
+| ulm_card_cover_enable_horizontal | `false` | :material-close: | Enable horizontal card | Need `ulm_card_cover_enable_controls: true` or `ulm_card_cover_enable_slider: true` |
+| ulm_card_cover_enable_popup | `false` | :material-close: | Enable `popup_cover` | |
## Usage
diff --git a/docs/usage/cards/card_vacuum.md b/docs/usage/cards/card_vacuum.md
index 7166b3e33..fec1efdae 100644
--- a/docs/usage/cards/card_vacuum.md
+++ b/docs/usage/cards/card_vacuum.md
@@ -23,6 +23,8 @@ This is a card to control your Robot-vacuum. It has support for all vacuums whic
|`ulm_card_vacuum_label`| | :material-close: | Add a custom label |
|`ulm_card_vacuum_room`| | :material-close: | Add a script to clean a specific room |
|`ulm_card_vacuum_room_icon`| | :material-close: | Add custom icon to the room script |
+|`ulm_card_vacuum_camera`| | :material-close: | Add a camera entity to the card to show the vacuum map |
+|`ulm_card_vacuum_camera_toggle`| | :material-close: | Only show the camera entity while cleaning |
## Usage
@@ -37,6 +39,8 @@ This is a card to control your Robot-vacuum. It has support for all vacuums whic
variables:
ulm_card_vacuum_room: "script.clean_kitchen"
ulm_card_vacuum_room_icon: "mdi:table-chair"
+ ulm_card_vacuum_camera: "camera.vacuum_map"
+ ulm_card_vacuum_camera_toggle: true
```
??? note "Template Code"
diff --git a/docs/usage/cards/card_welcome_scenes.md b/docs/usage/cards/card_welcome_scenes.md
index 8f7c6082f..d44f4eb17 100644
--- a/docs/usage/cards/card_welcome_scenes.md
+++ b/docs/usage/cards/card_welcome_scenes.md
@@ -17,16 +17,29 @@ This is a card which shows the basic needs for your dashboard. This card can gen
|----------|---------|------------------|-------------------|
| ulm_card_welcome_scenes_collapse | | :material-close: | Enables the collapse function.
requires an `input_boolean` to track the state|
| ulm_weather | | :material-check: | This is your weather provider.
Example: `weather.your_provider`|
-| ulm_language | Language of your system | :material-close: | You can set a different format with the [BCP-47 language tags](https://www.techonthenet.com/js/language_tags.php)
Example:
-`"en-US"` or just `"en"`|
-| entity_ | | :material-check: | Support almost all types of entities
Scenes do always show as off |
-| icon_ | | :material-close: | The icon to show |
-| name_ | | :material-close: | The name to show|
-| color_ | Random | :material-close: | Color of the icon
Can choose between: `blue`, `red`, `green`, `yellow`, `pink`, `purple`
If not specified, it will take a random color |
+| ulm_language | Language of your system | :material-close: | You can set a different format with the [BCP-47 language tags](https://www.techonthenet.com/js/language_tags.php)
Example: `"en-US"` or just `"en"`|
+| entity_1 | auto-entities | :material-close: | Can be any common type of entity
if no entity is specified defaults to auto-entities |
+| entity_2 | auto-entities | :material-close: | Can be any common type of entity
if no entity is specified defaults to auto-entities|
+| entity_3 | auto-entities | :material-close: | Can be any common type of entity
if no entity is specified defaults to auto-entities|
+| entity_4 | auto-entities | :material-close: | Can be any common type of entity
if no entity is specified defaults to auto-entities|
+| entity_5 | auto-entities | :material-close: | Can be any common type of entity
if no entity is specified defaults to auto-entities|
+| entity_6 | none | :material-close: | Can be any common type of entity |
+| entity_7 | none | :material-close: | Can be any common type of entity |
-## Collapse
+## Entity Variables
-!!! note
+| Variable | Default | Required | Notes |
+|----------|---------|------------------|-------------------|
+| _entity_id | | :material-close: | Support almost all types of entities
Scenes do always show as off |
+| _icon | | :material-close: | The icon to show |
+| _name | | :material-close: | The name to show|
+| _color | Random | :material-close: | Color of the icon
Can choose between: `blue`, `red`, `green`, `yellow`, `pink`, `purple`
If not specified, it will take a random color |
+| _state | `on` or `playing` | :material-close: | Define `input_select` state or give manual state for pill to be full |
+| _nav_path | | :material-close: | Navigate to another view
*Overrides other types of actions*
+
+## Requirement Collapse Function
+
+!!! note ""
This feature is fully optional. It requires some more manual configuration!
You need to create a `input_boolean` in HA to track the state. See [Docs](https://www.home-assistant.io/integrations/input_boolean/).
Furthermore, you need to add the `input_boolean` to the variable `ulm_card_welcome_scenes_collapse` **and** to either the `entity` or `triggers_update` to make sure it directly refreshes the state.
@@ -35,6 +48,10 @@ Furthermore, you need to add the `input_boolean` to the variable `ulm_card_welco
## Usage
+!!! note ""
+ You can set 1 to 7 entities to show 1 to 7 pills dynamically
+ If set none it uses `auto-entities` with max 5 pills
+
```yaml
- type: "custom:button-card"
template: "card_welcome_scenes"
@@ -68,6 +85,16 @@ Furthermore, you need to add the `input_boolean` to the variable `ulm_card_welco
icon: "mdi:YOUR_ICON" #OPTIONAL
name: "YOUR_NAME" #OPTIONAL
color: "yellow"
+ entity_6:
+ entity_id: ""
+ icon: "mdi:YOUR_ICON" #OPTIONAL
+ name: "YOUR_NAME" #OPTIONAL
+ color: "pink"
+ entity_7:
+ entity_id: ""
+ icon: "mdi:YOUR_ICON" #OPTIONAL
+ name: "YOUR_NAME" #OPTIONAL
+ color: "yellow"
```
??? note "Auto-entities"
@@ -80,31 +107,6 @@ Furthermore, you need to add the `input_boolean` to the variable `ulm_card_welco
variables:
ulm_card_welcome_scenes_collapse: input_boolean. #OPTIONAl --> uncomment also entity or triggers_update
ulm_weather: "weather.YOUR_WEATHERPROVIDER"
- entity_1:
- entity_id:
- icon:
- name:
- color: "blue" #OPTIONAL
- entity_2:
- entity_id:
- icon:
- name:
- color: "red" #OPTIONAL
- entity_3:
- entity_id:
- icon:
- name:
- color: "green" #OPTIONAL
- entity_4:
- entity_id:
- icon:
- name:
- color: "purple" #OPTIONAL
- entity_5:
- entity_id:
- icon:
- name:
- color: "yellow" #OPTIONAL
```
??? note "Random Colors"
@@ -121,27 +123,31 @@ Furthermore, you need to add the `input_boolean` to the variable `ulm_card_welco
entity_id: ""
icon: "mdi:YOUR_ICON" #OPTIONAL
name: "YOUR_NAME" #OPTIONAL
- color:
entity_2:
entity_id: ""
icon: "mdi:YOUR_ICON" #OPTIONAL
name: "YOUR_NAME" #OPTIONAL
- color:
entity_3:
entity_id: ""
icon: "mdi:YOUR_ICON" #OPTIONAL
name: "YOUR_NAME" #OPTIONAL
- color:
entity_4:
entity_id: ""
icon: "mdi:YOUR_ICON" #OPTIONAL
name: "YOUR_NAME" #OPTIONAL
- color:
entity_5:
entity_id: ""
icon: "mdi:YOUR_ICON" #OPTIONAL
name: "YOUR_NAME" #OPTIONAL
- color:
+ entity_6:
+ entity_id: ""
+ icon: "mdi:YOUR_ICON" #OPTIONAL
+ name: "YOUR_NAME" #OPTIONAL
+ entity_7:
+ entity_id: ""
+ icon: "mdi:YOUR_ICON" #OPTIONAL
+ name: "YOUR_NAME" #OPTIONAL
+
```
??? note "Template Code"