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"