Compare commits

...

7 Commits

Author SHA1 Message Date
Johannes
22c39e4c74 add translation for action 2022-05-27 20:41:49 +02:00
Johannes
f3633498ad fix 2022-05-27 20:38:15 +02:00
Johannes
ec242a3c87 add translation for state and currently 2022-05-27 20:34:42 +02:00
Johannes
5538681a55 clairfy theme config 2022-05-27 20:17:22 +02:00
Johannes
dc4c9517a4 clairfy theme config 2022-05-27 20:16:25 +02:00
Johannes
c26ffc1a8e clairfy theme config 2022-05-27 20:14:41 +02:00
Johannes
35e4819213 fix #230 2022-05-27 18:23:22 +02:00
8 changed files with 208 additions and 6 deletions

View File

@@ -498,13 +498,21 @@ key | option | type | default | description
`tMainTextAlt` | True | list | White | `[R, G, B]`
`tMRIcon` | True | list | White | `[R, G, B]`
`tMR` | True | list | White | `[R, G, B]`
`autoWeather` | True | string | None | Set to `true` to enable weather icons to change depending on state e.g. blue for rainy. Any custom colors in `tMainIcon` `tF1Icon` `tF2Icon` `tF3Icon` `tF4Icon` take precedence.
`autoWeather` | True | boolean | false | Set to `true` to enable weather icons to change depending on state e.g. blue for rainy. Any custom colors in `tMainIcon` `tF1Icon` `tF2Icon` `tF3Icon` `tF4Icon` take precedence.
If `autoWeather: true` is set. You may also override the default color mapping for any valid weather state provided by homeassistant e.g. `rainy: [50, 50, 255]` or `sunny: [255, 255, 0]`
Specify colours as red green and blue values from 0-255 e.g. `[255, 0, 0]` for red or `[0, 0, 255]` for blue. These are translated internally to RGB565 (note that this has lower color depth so the colours may not appear the same). Also note that the screen has a low contrast ratio, so colors look sigificantly different at full display brightness and lowest brightness.
For complex theme setups, you may configure `theme: !include /config/appdaemon/apps/screensaver-theme.yaml` and download `screensaver-theme.yaml` from the appdaemon folder and place it in the same folder as `apps.yaml`. Note: this will cause AppDaemon to throw a warning that `screensaver-theme.yaml` is not a valid yaml file - this warning can be safely ignored or you can configure `invalid_yaml_warnings: 1` (see appdaemon.yaml in the appdaemon folder).
Example for the theme config:
```yaml
screensaver:
theme:
autoWeather: true
```
For complex setups where you want to reuse the theme over multiple panels see the config exmaples in the appdaemon folder.
#### Schedule sleep brightness

View File

@@ -6,10 +6,14 @@ This folder contains some example configs
Example config for appademon itself
## apps.yaml
## apps-simple.yaml
"Simple" Example Config with all possible entity types
## screensaver-theme.yaml
Example screensaver theme configuration. All entries are commented out but you can uncomment as appropriate to enable.
Example screensaver theme configuration. All entries are commented out but you can uncomment as appropriate to enable.
## screensaver-theme-include
Exmaple for screensaver theme configuration in seperate file to reuse it on muliple nspanels

56
appdaemon/apps-theme.yaml Normal file
View File

@@ -0,0 +1,56 @@
---
nspanel-1:
module: nspanel-lovelace-ui
class: NsPanelLovelaceUIManager
config:
panelRecvTopic: "tele/tasmota_your_mqtt_topic/RESULT"
panelSendTopic: "cmnd/tasmota_your_mqtt_topic/CustomSend"
screensaver:
entity: weather.k3ll3r
theme: !include /config/appdaemon/apps/screensaver-theme.yaml
#background: [220, 0, 0]
#time: [220, 0, 255]
#timeAMPM: [220, 0, 255]
#date: [220, 0, 255]
#tMainIcon: [220, 0, 255]
#tMainText: [220, 0, 255]
#tForecast1: [220, 0, 255]
#tForecast2: [220, 0, 255]
#tForecast3: [220, 0, 255]
#tForecast4: [220, 0, 255]
#tF1Icon: [220, 0, 255]
#tF2Icon: [220, 0, 255]
#tF3Icon: [220, 0, 255]
#tF4Icon: [220, 0, 255]
#tForecast1Val: [220, 0, 255]
#tForecast2Val: [220, 0, 255]
#tForecast3Val: [220, 0, 255]
#tForecast4Val: [220, 0, 255]
#bar: [220, 0, 255]
#tMRIcon: [220, 0, 255]
#tMR: [220, 0, 255]
#autoWeather automatically colors the screensaver weather icons based upon weather. Uncomment the following line to enable.
#autoWeather: true
#If you have enabled autoWeather, the following options allow you to customise the colors used for autoWeather.
#clear-night: [150, 150, 100]
#cloudy: [75, 75, 75]
#exceptional: [255, 50, 50]
#fog: [150, 150, 150]
#hail: [200, 200, 200]
#lightning: [200, 200, 0]
#lightning-rainy: [200, 200, 150]
#partlycloudy: [150, 150, 150]
#pouring: [50, 50, 255]
#rainy: [100, 100, 255]
#snowy: [150, 150, 150]
#snowy-rainy: [150, 150, 255]
#sunny: [255, 255, 0]
#windy: [150, 150, 150]
#windy-variant: [255, 125, 125]
cards:
- type: cardEntities
entities:
- entity: switch.example_item

View File

@@ -0,0 +1,15 @@
---
nspanel-1:
module: nspanel-lovelace-ui
class: NsPanelLovelaceUIManager
config:
panelRecvTopic: "tele/tasmota_your_mqtt_topic/RESULT"
panelSendTopic: "cmnd/tasmota_your_mqtt_topic/CustomSend"
updateMode: "auto-notify"
screensaver:
entity: weather.k3ll3r
theme: !include /config/appdaemon/apps/screensaver-theme.yaml
cards:
- type: cardEntities
entities:
- entity: switch.example_item

View File

@@ -20,6 +20,9 @@ translations = {
'brightness': "Helderheid",
'color_temperature': "Kleur temperatuur",
'position': "Posisie",
'state': "Toestand",
'currently': "Tans",
'operation': "Operasie",
},
'ar': {
'ACTIVATE': "تفعيل",
@@ -42,6 +45,9 @@ translations = {
'brightness': "السطوع",
'color_temperature': "درجة حرارة اللون",
'position': "موضع",
'state': "الحالة",
'currently': "حاليا",
'operation': "الوضع",
},
'bg': {
'ACTIVATE': "Активирай",
@@ -65,6 +71,9 @@ translations = {
'brightness': "Яркост",
'color_temperature': "Цветова температура",
'position': "Позиция",
'state': "Състояние",
'currently': "В момента",
'operation': "Режим",
},
'ca': {
'PRESS': "Prem",
@@ -89,6 +98,9 @@ translations = {
'brightness': "Brillantor",
'color_temperature': "Temperatura de color",
'position': "Posició",
'state': "Estat",
'currently': "Actual",
'operation': "Funcionament",
},
'cs': {
'PRESS': "Stisknutí",
@@ -113,6 +125,9 @@ translations = {
'brightness': "Jas",
'color_temperature': "Teplota barvy",
'position': "Pozice",
'state': "Stav",
'currently': "Aktuálně",
'operation': "Provoz",
},
'da': {
'PRESS': "Tryk",
@@ -137,6 +152,9 @@ translations = {
'brightness': "Lysstyrke",
'color_temperature': "Farvetemperatur",
'position': "Position",
'state': "Tilstand",
'currently': "Aktuelt",
'operation': "Drifttype",
},
'de': {
'PRESS': "Drücken",
@@ -161,6 +179,9 @@ translations = {
'brightness': "Helligkeit",
'color_temperature': "Farbtemperatur",
'position': "Position",
'state': "Zustand",
'currently': "Aktuell",
'operation': "Aktion",
},
'el': {
'PRESS': "Πατήστε",
@@ -185,6 +206,9 @@ translations = {
'brightness': "Φωτεινότητα",
'color_temperature': "Θερμοκρασία χρώματος",
'position': "Θέση",
'state': "Κατάσταση",
'currently': "Αυτή τη στιγμή",
'operation': "Λειτουργία",
},
'en': {
'PRESS': "Press",
@@ -209,6 +233,9 @@ translations = {
'brightness': "Brightness",
'color_temperature': "Color temperature",
'position': "Position",
'state': "State",
'currently': "Currently",
'operation': "Operation",
},
'es': {
'PRESS': "Pulsa",
@@ -233,6 +260,9 @@ translations = {
'brightness': "Brillo",
'color_temperature': "Temperatura del color",
'position': "Posición",
'state': "Estado",
'currently': "Actualmente",
'operation': "Modo",
},
'et': {
'PRESS': "Vajuta nuppu",
@@ -257,6 +287,9 @@ translations = {
'brightness': "Heledus",
'color_temperature': "Värvustemperatuur",
'position': "Asend",
'state': "Olek",
'currently': "Hetkel",
'operation': "Töörežiim",
},
'fa': {
'ACTIVATE': "فعال سازی",
@@ -279,6 +312,9 @@ translations = {
'brightness': "روشنایی",
'color_temperature': "دمای رنگ",
'position': "موقعیت",
'state': "حالت",
'currently': "در حال حاضر",
'operation': "عملیات",
},
'fi': {
'PRESS': "Paina",
@@ -303,6 +339,9 @@ translations = {
'brightness': "Kirkkaus",
'color_temperature': "Värilämpötila",
'position': "Sijainti",
'state': "Tila",
'currently': "Tällä hetkellä",
'operation': "Toiminto",
},
'fr': {
'PRESS': "Appui",
@@ -327,6 +366,9 @@ translations = {
'brightness': "Luminosité",
'color_temperature': "Température de couleur",
'position': "Position",
'state': "État",
'currently': "Actuellement",
'operation': "Opération",
},
'he': {
'PRESS': "לחיצה",
@@ -351,6 +393,9 @@ translations = {
'brightness': "בהירות",
'color_temperature': "טמפרטורת הצבע",
'position': "מיקום",
'state': "מצב",
'currently': "כעת",
'operation': "פעולה",
},
'hr': {
'ACTIVATE': "Aktivirati",
@@ -373,6 +418,9 @@ translations = {
'brightness': "Svjetlina",
'color_temperature': "Temperatura boje",
'position': "Pozicija",
'state': "Stanje",
'currently': "Trenutno",
'operation': "operacija",
},
'hu': {
'PRESS': "Gombnyomás",
@@ -397,6 +445,9 @@ translations = {
'brightness': "Fényerő",
'color_temperature': "Színhőmérséklet",
'position': "Pozíció",
'state': "Állapot",
'currently': "Jelenleg",
'operation': "Működés",
},
'hy': {
'ACTIVATE': "Ակտիվացնել",
@@ -418,6 +469,9 @@ translations = {
'brightness': "Պայծառություն",
'color_temperature': "Գունային ջերմաստիճան",
'position': "Դիրք",
'state': "Պետություն",
'currently': "Ներկայումս",
'operation': "Գործողություն",
},
'id': {
'PRESS': "Tekan",
@@ -442,6 +496,9 @@ translations = {
'brightness': "Kecerahan",
'color_temperature': "Temperatur warna",
'position': "Posisi",
'state': "Status",
'currently': "Saat ini",
'operation': "Operasi",
},
'is': {
'PRESS': "Ýttu á",
@@ -465,6 +522,9 @@ translations = {
'brightness': "Birtustig",
'color_temperature': "Litastig",
'position': "Staðsetning",
'state': "Staða",
'currently': "Er núna",
'operation': "Aðgerð",
},
'it': {
'PRESS': "Premi",
@@ -489,6 +549,9 @@ translations = {
'brightness': "Luminosità",
'color_temperature': "Temperatura colore",
'position': "Apertura",
'state': "Stato",
'currently': "Attualmente",
'operation': "Operazione",
},
'lb': {
'ACTIVATE': "Aktivéieren",
@@ -511,6 +574,9 @@ translations = {
'brightness': "Hellegkeet",
'color_temperature': "Faarf Temperatur",
'position': "Positioun",
'state': "Zoustand",
'currently': "Momentan",
'operation': "Aktioun",
},
'lt': {
'ACTIVATE': "Suaktyvinti",
@@ -532,6 +598,9 @@ translations = {
'brightness': "Ryškumas",
'color_temperature': "Spalvos temperatūra",
'position': "Padėtis",
'state': "Būsena",
'currently': "Šiuo metu",
'operation': "Operacija",
},
'lv': {
'ACTIVATE': "Aktivizēt",
@@ -553,6 +622,9 @@ translations = {
'brightness': "Spilgtums",
'color_temperature': "Krāsu temperatūra",
'position': "Pozīcija",
'state': "Stāvoklis",
'currently': "Pašlaik",
'operation': "Darbība",
},
'nb': {
'PRESS': "trykk",
@@ -577,6 +649,9 @@ translations = {
'brightness': "Lysstyrke",
'color_temperature': "Fargetemperatur",
'position': "Posisjon",
'state': "Tilstand",
'currently': "Er nå",
'operation': "Operasjon",
},
'nl': {
'PRESS': "Klik",
@@ -601,6 +676,9 @@ translations = {
'brightness': "Helderheid",
'color_temperature': "Kleurtemperatuur",
'position': "Positie",
'state': "Staat",
'currently': "Momenteel",
'operation': "Werking",
},
'nn': {
'ACTIVATE': "Aktiver",
@@ -624,6 +702,9 @@ translations = {
'brightness': "Lysstyrke",
'color_temperature': "Fargetemperatur",
'position': "Posisjon",
'state': "Tilstand",
'currently': "Akkurat no",
'operation': "Operasjon",
},
'pl': {
'PRESS': "Naciśnij",
@@ -648,6 +729,9 @@ translations = {
'brightness': "Jasność",
'color_temperature': "Temperatura barwy",
'position': "Pozycja",
'state': "Stan",
'currently': "Obecnie",
'operation': "Tryb pracy",
},
'pt': {
'PRESS': "Pressione",
@@ -671,6 +755,9 @@ translations = {
'brightness': "Brilho",
'color_temperature': "Temperatura de cor",
'position': "Posição",
'state': "Estado",
'currently': "Atualmente",
'operation': "Operação",
},
'ro': {
'ACTIVATE': "Activați",
@@ -694,6 +781,9 @@ translations = {
'brightness': "Luminozitate",
'color_temperature': "Temperatură de culoare",
'position': "Poziţie",
'state': "Status",
'currently': "În prezent",
'operation': "Operație",
},
'ru': {
'PRESS': "Нажать",
@@ -718,6 +808,9 @@ translations = {
'brightness': "Яркость",
'color_temperature': "Цветовая температура",
'position': "Положение",
'state': "Состояние",
'currently': "Сейчас",
'operation': "Режим работы",
},
'sk': {
'ACTIVATE': "Aktivovať",
@@ -741,6 +834,9 @@ translations = {
'brightness': "Jas",
'color_temperature': "Teplota farby",
'position': "Poloha",
'state': "Stav",
'currently': "Aktuálne",
'operation': "Prevádzka",
},
'sl': {
'PRESS': "Pritisnite",
@@ -764,6 +860,9 @@ translations = {
'brightness': "Svetlost",
'color_temperature': "Temperatura barve",
'position': "Položaj",
'state': "Stanje",
'currently': "Trenutno",
'operation': "Delovanje",
},
'sv': {
'PRESS': "Tryck",
@@ -788,6 +887,9 @@ translations = {
'brightness': "Ljusstyrka",
'color_temperature': "Färgtemperatur",
'position': "Position",
'state': "Tillstånd",
'currently': "Nuvarande",
'operation': "Driftläge",
},
'th': {
'PRESS': "กด",
@@ -810,6 +912,9 @@ translations = {
'brightness': "ความสว่าง",
'color_temperature': "อุณหภูมิสี",
'position': "ตำแหน่ง",
'state': "สถานะ",
'currently': "ในขณะนี้",
'operation': "การทำงาน",
},
'tr': {
'PRESS': "Basınız",
@@ -834,6 +939,9 @@ translations = {
'brightness': "Parlaklık",
'color_temperature': "Renk sıcaklığı",
'position': "Pozisyon",
'state': "Durum",
'currently': "Şu an",
'operation': "İşlem",
},
'uk': {
'PRESS': "Натисніть",
@@ -857,6 +965,9 @@ translations = {
'brightness': "Яскравість",
'color_temperature': "Кольорова температура",
'position': "Положення",
'state': "Статус",
'currently': "В даний час",
'operation': "Режим",
},
'vi': {
'ACTIVATE': "Kích hoạt",
@@ -879,6 +990,9 @@ translations = {
'brightness': "Độ sáng",
'color_temperature': "Nhiệt độ màu",
'position': "Vị trí",
'state': "Trạng thái",
'currently': "Hiện tại",
'operation': "Chế độ hoạt động",
},
}
@@ -889,3 +1003,4 @@ def get_translation(locale, input):
return translations.get(locale).get(input, en_fallback_res)
else:
return en_fallback_res

View File

@@ -278,7 +278,7 @@ class LuiPagesGen(object):
for mode in hvac_modes:
icon_id = get_icon_id('alert-circle-outline')
color_on = 64512
if mode == "auto":
if mode in ["auto", "heat_cool"]:
icon_id = get_icon_id("calendar-sync")
color_on = 1024
if mode == "heat":
@@ -305,7 +305,11 @@ class LuiPagesGen(object):
padding_len = 8-len_hvac_modes
icon_res = icon_res + "~"*4*padding_len
command = f"entityUpd~{heading}~{navigation}~{item}~{current_temp} {temperature_unit}~{dest_temp}~{status}~{min_temp}~{max_temp}~{step_temp}{icon_res}~Currently~State~Action~{temperature_unit_icon}"
currently_translation = get_translation(self._locale, "currently")
state_translation = get_translation(self._locale, "state")
action_translation = get_translation(self._locale, "operation")
command = f"entityUpd~{heading}~{navigation}~{item}~{current_temp} {temperature_unit}~{dest_temp}~{status}~{min_temp}~{max_temp}~{step_temp}{icon_res}~{currently_translation}~{state_translation}~{action_translation}~{temperature_unit_icon}"
self._send_mqtt_msg(command)
def generate_media_page(self, navigation, title, entity):