diff --git a/HMI/code_gen/icons/icons.py b/HMI/code_gen/icons/icons.py index 1af189ae..565be973 100644 --- a/HMI/code_gen/icons/icons.py +++ b/HMI/code_gen/icons/icons.py @@ -46,7 +46,8 @@ icons = [ "shield-lock", "shield-airplane", "bell-ring", - "ray-vertex" + "ray-vertex", + "script-text" ] diff --git a/HMI/icons.md b/HMI/icons.md index 9a8bae87..e788c8cb 100644 --- a/HMI/icons.md +++ b/HMI/icons.md @@ -49,3 +49,4 @@ ID | MD Icon Name | Icon 42 | shield-airplane | ![shield-airplane](https://raw.githubusercontent.com/Templarian/MaterialDesign-SVG/0aeb4d612644d80d9d1fe242f705f362985de5dc/svg/shield-airplane.svg) 43 | bell-ring | ![bell-ring](https://raw.githubusercontent.com/Templarian/MaterialDesign-SVG/0aeb4d612644d80d9d1fe242f705f362985de5dc/svg/bell-ring.svg) 44 | ray-vertex | ![ray-vertex](https://raw.githubusercontent.com/Templarian/MaterialDesign-SVG/0aeb4d612644d80d9d1fe242f705f362985de5dc/svg/ray-vertex.svg) +45 | script-text | ![script-text](https://raw.githubusercontent.com/Templarian/MaterialDesign-SVG/0aeb4d612644d80d9d1fe242f705f362985de5dc/svg/script-text.svg) diff --git a/HMI/nspanel.HMI b/HMI/nspanel.HMI index 6ee12af3..1b4fa812 100644 Binary files a/HMI/nspanel.HMI and b/HMI/nspanel.HMI differ diff --git a/HMI/nspanel.tft b/HMI/nspanel.tft index aafb131c..f9cf299c 100644 Binary files a/HMI/nspanel.tft and b/HMI/nspanel.tft differ diff --git a/apps/nspanel-lovelace-ui/luibackend/controller.py b/apps/nspanel-lovelace-ui/luibackend/controller.py index 359e577c..14fc29dd 100644 --- a/apps/nspanel-lovelace-ui/luibackend/controller.py +++ b/apps/nspanel-lovelace-ui/luibackend/controller.py @@ -178,6 +178,8 @@ class LuiController(object): self._pages_gen.render_page(self._current_page) elif entity_id.startswith('scene'): self._ha_api.get_entity(entity_id).call_service("turn_on") + elif entity_id.startswith('script'): + self._ha_api.get_entity(entity_id).call_service("turn_on") elif entity_id.startswith('light') or entity_id.startswith('switch') or entity_id.startswith('input_boolean'): self._ha_api.get_entity(entity_id).call_service("toggle") else: diff --git a/apps/nspanel-lovelace-ui/luibackend/icon_mapping.py b/apps/nspanel-lovelace-ui/luibackend/icon_mapping.py index cd1a9235..4e4807d6 100644 --- a/apps/nspanel-lovelace-ui/luibackend/icon_mapping.py +++ b/apps/nspanel-lovelace-ui/luibackend/icon_mapping.py @@ -44,6 +44,7 @@ icons = { 'shield-airplane': 42, 'bell-ring': 43, 'ray-vertex': 44, + 'script-text': 45, } def get_icon_id(ma_name): diff --git a/apps/nspanel-lovelace-ui/luibackend/icons.py b/apps/nspanel-lovelace-ui/luibackend/icons.py index b3ca88e8..f2c047f7 100644 --- a/apps/nspanel-lovelace-ui/luibackend/icons.py +++ b/apps/nspanel-lovelace-ui/luibackend/icons.py @@ -39,6 +39,8 @@ def map_to_mdi_name(ha_type, state=None, device_class=None): return "gesture-tap-button" if ha_type == "scene": return "palette" + if ha_type == "script": + return "script-text" if ha_type == "switch": return "flash" if ha_type == "number": diff --git a/apps/nspanel-lovelace-ui/luibackend/localization.py b/apps/nspanel-lovelace-ui/luibackend/localization.py index cac1c3fe..f3779f4f 100644 --- a/apps/nspanel-lovelace-ui/luibackend/localization.py +++ b/apps/nspanel-lovelace-ui/luibackend/localization.py @@ -14,11 +14,12 @@ translations = { 'clear_code': "Maak skoon", 'code': "Kode", 'disarm': "Skakel Af", + 'run': "Hardloop", }, 'ca_ES': { 'PRESS': "Prem", 'ACTIVATE': "Activar", - 'aux_heat': "Calefactor auxiliar", + 'aux_heat': "Calefactor auxiliar", 'cooling': "Refredant", 'drying': "Assecant", 'fan': "Ventilació", @@ -32,6 +33,7 @@ translations = { 'clear_code': "Borrar", 'code': "Codi", 'disarm': "Desactivar", + 'run': "Executa", }, 'cs_CZ': { 'PRESS': "Stisknutí", @@ -50,6 +52,7 @@ translations = { 'clear_code': "Zrušit", 'code': "Kód", 'disarm': "Odbezpečit", + 'run': "Spustit", }, 'cy_GB': { 'ACTIVATE': "Actifadu", @@ -75,6 +78,7 @@ translations = { 'clear_code': "Ryd", 'code': "Kode", 'disarm': "Frakobl", + 'run': "Kør", }, 'de_DE': { 'PRESS': "Drücken", @@ -93,6 +97,7 @@ translations = { 'clear_code': "Löschen", 'code': "Code", 'disarm': "Deaktivieren", + 'run': "Ausführen", }, 'en_US': { 'PRESS': "Press", @@ -111,6 +116,7 @@ translations = { 'clear_code': "Clear", 'code': "Code", 'disarm': "Disarm", + 'run': "Run", }, 'es_ES': { 'PRESS': "Pulsa", @@ -129,6 +135,7 @@ translations = { 'clear_code': "Limpiar", 'code': "Código", 'disarm': "Desarmar", + 'run': "Ejecutar", }, 'et_EE': { 'PRESS': "Vajuta nuppu", @@ -147,6 +154,7 @@ translations = { 'clear_code': "Puhasta", 'code': "Kood", 'disarm': "Valvest maha", + 'run': "Käivita", }, 'eu_ES': { 'ACTIVATE': "Aktibatu", @@ -171,6 +179,7 @@ translations = { 'clear_code': "Tyhjennä", 'code': "Koodi", 'disarm': "Poista hälytys", + 'run': "Suorita", }, 'fr_FR': { 'PRESS': "Appui", @@ -189,12 +198,14 @@ translations = { 'clear_code': "Effacer", 'code': "Code", 'disarm': "Désarmer", + 'run': "Exécuter", }, 'fy_DE': { 'off': "Út", }, 'gl_ES': { 'off': "Apagado", + 'run': "Executar", }, 'hr_HR': { 'ACTIVATE': "Aktivirati", @@ -211,6 +222,7 @@ translations = { 'clear_code': "Vedro", 'code': "Kod", 'disarm': "Deaktiviraj", + 'run': "Pokreni", }, 'id_ID': { 'PRESS': "Tekan", @@ -229,6 +241,7 @@ translations = { 'clear_code': "Hapus", 'code': "Kode", 'disarm': "Nonaktifkan", + 'run': "Jalankan", }, 'is_IS': { 'PRESS': "Ýttu á", @@ -246,6 +259,7 @@ translations = { 'clear_code': "Hreinsa", 'code': "Kóði", 'disarm': "Taka af verði", + 'run': "Keyra", }, 'it_IT': { 'PRESS': "Premi", @@ -264,6 +278,7 @@ translations = { 'clear_code': "Canc", 'code': "Codice", 'disarm': "Disattiva", + 'run': "Esegui", }, 'nl_NL': { 'PRESS': "Klik", @@ -282,6 +297,7 @@ translations = { 'clear_code': "Wis", 'code': "Code", 'disarm': "Uitschakelen", + 'run': "Uitvoeren", }, 'nn_NO': { 'ACTIVATE': "Aktiver", @@ -299,6 +315,7 @@ translations = { 'clear_code': "Slett alt", 'code': "Kode", 'disarm': "Skru av", + 'run': "Køyr", }, 'pt_PT': { 'PRESS': "Pressione", @@ -316,6 +333,7 @@ translations = { 'clear_code': "Apagar", 'code': "Código", 'disarm': "Desarmar", + 'run': "Executar", }, 'sr_RS': { 'PRESS': "Pritisnite taster", @@ -339,6 +357,7 @@ translations = { 'clear_code': "Rensa", 'code': "Kod", 'disarm': "Larma från", + 'run': "Kör", }, } diff --git a/apps/nspanel-lovelace-ui/luibackend/pages.py b/apps/nspanel-lovelace-ui/luibackend/pages.py index 3972cad7..b7d6d436 100644 --- a/apps/nspanel-lovelace-ui/luibackend/pages.py +++ b/apps/nspanel-lovelace-ui/luibackend/pages.py @@ -156,6 +156,10 @@ class LuiPagesGen(object): icon_id = get_icon_id_ha("scene", overwrite=icon) text = get_translation(self._locale,"ACTIVATE") return f",button,{item},{icon_id},17299,{name},{text}" + if item_type == "script": + icon_id = get_icon_id_ha("script", overwrite=icon) + text = get_translation(self._locale,"run") + return f",button,{item},{icon_id},17299,{name},{text}" if item_type == "number": icon_id = get_icon_id_ha("number", overwrite=icon) min_v = entity.attributes.get("min", 0)