From b4bbe63f0fff6743e1bee39cdfe8f3a62895b0b3 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Tue, 6 Jul 2021 11:53:21 +0200 Subject: [PATCH 1/4] Fix device trigger clearing trigger id (#9511) --- .../trigger/types/ha-automation-trigger-device.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/panels/config/automation/trigger/types/ha-automation-trigger-device.ts b/src/panels/config/automation/trigger/types/ha-automation-trigger-device.ts index 51a579c2c6..6dc84a01f2 100644 --- a/src/panels/config/automation/trigger/types/ha-automation-trigger-device.ts +++ b/src/panels/config/automation/trigger/types/ha-automation-trigger-device.ts @@ -91,6 +91,9 @@ export class HaDeviceTrigger extends LitElement { } protected updated(changedPros) { + if (!changedPros.has("trigger")) { + return; + } const prevTrigger = changedPros.get("trigger"); if (prevTrigger && !deviceAutomationsEqual(prevTrigger, this.trigger)) { this._getCapabilities(); @@ -119,6 +122,9 @@ export class HaDeviceTrigger extends LitElement { ) { trigger = this._origTrigger; } + if (this.trigger.id) { + trigger.id = this.trigger.id; + } fireEvent(this, "value-changed", { value: trigger }); } From 02f989352208b7213f58e607a7a4da357b8fdbc1 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Wed, 7 Jul 2021 00:47:35 +0000 Subject: [PATCH 2/4] Translation update --- translations/frontend/ca.json | 14 +++++++++++--- translations/frontend/cs.json | 10 +++++++++- translations/frontend/de.json | 10 +++++++++- translations/frontend/en.json | 10 +++++++++- translations/frontend/et.json | 10 +++++++++- translations/frontend/he.json | 16 ++++++++++++---- translations/frontend/nl.json | 10 +++++++++- translations/frontend/ru.json | 10 +++++++++- translations/frontend/zh-Hant.json | 10 +++++++++- 9 files changed, 86 insertions(+), 14 deletions(-) diff --git a/translations/frontend/ca.json b/translations/frontend/ca.json index 9f43de8607..82f813c997 100644 --- a/translations/frontend/ca.json +++ b/translations/frontend/ca.json @@ -800,8 +800,8 @@ "detected_device_class": "s'ha detectat {device_class}", "is_closing": "s'està tancant", "is_opening": "s'està obrint", - "rose": "rosa", - "set": "establert", + "rose": "ha sortit", + "set": "s'ha post", "turned_off": "s'ha apagat", "turned_on": "s'ha engegat", "was_at_home": "s'ha detectat a casa", @@ -1513,6 +1513,11 @@ "wed": "Dimecres" } }, + "trigger": { + "id": "ID del disparador", + "label": "Disparador", + "no_triggers": "No hi ha disparadors disponibles" + }, "zone": { "entity": "Entitat amb ubicació", "label": "Zona", @@ -1556,6 +1561,7 @@ "delete_confirm": "Segur que vols eliminar-ho?", "duplicate": "Duplica", "header": "Disparadors", + "id": "ID del disparador (utilitzat per la condició de disparador)", "introduction": "Els disparadors són les regles que fan que s'executi una automatització. Pots definir més d'un disparador per a cada automatització. Una vegada salti un disparador, Home Assistant validarà les condicions (si n'hi ha) i finalment cridarà l'acció.", "learn_more": "Més informació sobre els activadors", "name": "Disparador", @@ -2664,10 +2670,12 @@ }, "save_script": "Desa l'script", "sequence": "Seqüència", - "sequence_sentence": "Seqüència d'accions de l'script." + "sequence_sentence": "Seqüència d'accions de l'script.", + "show_trace": "Mostra la traça" }, "picker": { "add_script": "Afegeix script", + "dev_script": "Depura script", "duplicate": "Duplica", "duplicate_script": "Duplica l'script", "edit_script": "Edita l'script", diff --git a/translations/frontend/cs.json b/translations/frontend/cs.json index d69d0058c8..235d8f11b9 100644 --- a/translations/frontend/cs.json +++ b/translations/frontend/cs.json @@ -1513,6 +1513,11 @@ "wed": "Středa" } }, + "trigger": { + "id": "ID spouštěče", + "label": "Spouštěč", + "no_triggers": "Nejsou k dispozici žádné spouštěče" + }, "zone": { "entity": "Entita s umístěním", "label": "Zóna", @@ -1556,6 +1561,7 @@ "delete_confirm": "Opravdu smazat?", "duplicate": "Duplikovat", "header": "Spouštěče", + "id": "ID spouštěče (použitého podmínkou \"spouštěč\")", "introduction": "Spouštěče spouštějí automatizaci. Pro jednu automatizaci je možné zadat více spouštěčů. Po spuštění ověří Home Assistant případné podmínky a zavolá akci.", "learn_more": "Další informace o spouštěčích", "name": "Spouštěč", @@ -2664,10 +2670,12 @@ }, "save_script": "Uložit skript", "sequence": "Sekvence", - "sequence_sentence": "Posloupnost akcí tohoto skriptu." + "sequence_sentence": "Posloupnost akcí tohoto skriptu.", + "show_trace": "Zobrazit trasu" }, "picker": { "add_script": "Přidat skript", + "dev_script": "Ladit skript", "duplicate": "Duplikát", "duplicate_script": "Duplikovat skript", "edit_script": "Upravit skript", diff --git a/translations/frontend/de.json b/translations/frontend/de.json index 6004e3c25b..0ce3529459 100644 --- a/translations/frontend/de.json +++ b/translations/frontend/de.json @@ -1513,6 +1513,11 @@ "wed": "Mittwoch" } }, + "trigger": { + "id": "Trigger-ID", + "label": "Trigger", + "no_triggers": "Keine Trigger verfügbar" + }, "zone": { "entity": "Entität mit Standort", "label": "Zone", @@ -1556,6 +1561,7 @@ "delete_confirm": "Möchtest du das wirklich löschen?", "duplicate": "Duplizieren", "header": "Auslöser", + "id": "Trigger-ID (wird von der Triggerbedingung verwendet)", "introduction": "Auslöser starten automatisierte Abläufe. Es ist möglich, mehrere Auslöser für dieselbe Abfolge zu definieren. Wenn ein Auslöser aktiviert wird, prüft Home Assistant die Bedingungen, sofern vorhanden, und führt die Aktion aus.", "learn_more": "Erfahre mehr über Auslöser", "name": "Auslöser", @@ -2664,10 +2670,12 @@ }, "save_script": "Skript speichern", "sequence": "Sequenz", - "sequence_sentence": "Die Abfolge der Aktionen dieses Skripts." + "sequence_sentence": "Die Abfolge der Aktionen dieses Skripts.", + "show_trace": "Trace anzeigen" }, "picker": { "add_script": "Neues Skript erstellen", + "dev_script": "Debug-Skript", "duplicate": "Duplizieren", "duplicate_script": "Skript duplizieren", "edit_script": "Skript bearbeiten", diff --git a/translations/frontend/en.json b/translations/frontend/en.json index dda85e0b25..aeaaf7b347 100644 --- a/translations/frontend/en.json +++ b/translations/frontend/en.json @@ -1513,6 +1513,11 @@ "wed": "Wednesday" } }, + "trigger": { + "id": "Trigger Id", + "label": "Trigger", + "no_triggers": "No triggers available" + }, "zone": { "entity": "Entity with location", "label": "Zone", @@ -1556,6 +1561,7 @@ "delete_confirm": "Are you sure you want to delete this?", "duplicate": "Duplicate", "header": "Triggers", + "id": "Trigger ID (used by the trigger condition)", "introduction": "Triggers are what starts the processing of an automation rule. It is possible to specify multiple triggers for the same rule. Once a trigger starts, Home Assistant will validate the conditions, if any, and call the action.", "learn_more": "Learn more about triggers", "name": "Trigger", @@ -2664,10 +2670,12 @@ }, "save_script": "Save script", "sequence": "Sequence", - "sequence_sentence": "The sequence of actions of this script." + "sequence_sentence": "The sequence of actions of this script.", + "show_trace": "Show trace" }, "picker": { "add_script": "Add script", + "dev_script": "Debug script", "duplicate": "Duplicate", "duplicate_script": "Duplicate script", "edit_script": "Edit script", diff --git a/translations/frontend/et.json b/translations/frontend/et.json index 5f73dfb0ca..a3e46f2926 100644 --- a/translations/frontend/et.json +++ b/translations/frontend/et.json @@ -1513,6 +1513,11 @@ "wed": "Kolmapäev" } }, + "trigger": { + "id": "Päästiku ID", + "label": "Päästik", + "no_triggers": "Päästikuid pole saadaval" + }, "zone": { "entity": "Asukohaga olem", "label": "Tsoon", @@ -1556,6 +1561,7 @@ "delete_confirm": "Oled kindel, et soovid kustutada?", "duplicate": "Paljunda", "header": "Päästikud", + "id": "Päästiku ID (kasutab päästiku tingimusi)", "introduction": "Päästikud on need, millest algab automatiseeringu töö. Ühe automatiseeringu jaoks on võimalik määrata mitu päästikut. Kui päästik vallandub, kontrollib Home Assistant võimalike tingimuste täidetust ja käivitab tegevuse.", "learn_more": "Lisateave päästikute kohta", "name": "Päästik", @@ -2664,10 +2670,12 @@ }, "save_script": "Salvesta skript", "sequence": "Jada", - "sequence_sentence": "Selle skripti toimingute jada." + "sequence_sentence": "Selle skripti toimingute jada.", + "show_trace": "Kuva täitmise samme" }, "picker": { "add_script": "Lisa uus skript", + "dev_script": "Skriptide silumine", "duplicate": "Klooni", "duplicate_script": "Klooni skript", "edit_script": "Muuda skripti", diff --git a/translations/frontend/he.json b/translations/frontend/he.json index ef7e3a97c9..7d0a6ee401 100644 --- a/translations/frontend/he.json +++ b/translations/frontend/he.json @@ -1147,7 +1147,7 @@ "filesize": "ישויות בגודל הקובץ", "filter": "סינון ישויות", "generic": "ישויות כלליות של מצלמת IP", - "generic_thermostat": "ישויות כלליות של תרמוסטט", + "generic_thermostat": "ישויות כלליות של וסת חום", "group": "קבוצות, ישויות קבוצתיות ושירותי הודעה", "history_stats": "היסטוריית מצב ישויות", "homekit": "HomeKit", @@ -1513,6 +1513,11 @@ "wed": "יום רביעי" } }, + "trigger": { + "id": "מזהה טריגר", + "label": "טריגר", + "no_triggers": "אין טריגרים זמינים" + }, "zone": { "entity": "ישות עם מיקום", "label": "אזור", @@ -1556,6 +1561,7 @@ "delete_confirm": "האם בוודאות ברצונך למחוק זאת?", "duplicate": "שיכפול", "header": "טריגרים", + "id": "מזהה טריגר (בשימוש על ידי תנאי טריגר)", "introduction": "טריגרים הם מה שמתחיל כל אוטומציה. ניתן לציין מספר טריגרים עבור אותו כלל. לאחר הפעלת טריגר, Home Assistant יאמת את התנאים, אם ישנם, ויפעיל את הפעולה.", "learn_more": "למד עוד על טריגרים", "name": "טריגר", @@ -2664,10 +2670,12 @@ }, "save_script": "שמור סקריפט", "sequence": "סדר פעולות", - "sequence_sentence": "רצף הפעולות של סקריפט זה." + "sequence_sentence": "רצף הפעולות של סקריפט זה.", + "show_trace": "הצג מעקב" }, "picker": { "add_script": "הוסף סקריפט", + "dev_script": "ניפוי באגים סקריפט", "duplicate": "שכפל", "duplicate_script": "שכפול סקריפט", "edit_script": "ערוך סקריפט", @@ -2693,7 +2701,7 @@ "filesize": "ישויות בגודל הקובץ", "filter": "סינון ישויות", "generic": "ישויות כלליות של מצלמת IP", - "generic_thermostat": "ישויות כלליות של תרמוסטט", + "generic_thermostat": "ישויות כלליות של וסת חום", "group": "קבוצות, ישויות קבוצתיות ושירותי הודעה", "heading": "טעינה מחדש של תצורת YAML", "history_stats": "היסטוריית מצב ישויות", @@ -3530,7 +3538,7 @@ "name": "רשימת קניות" }, "thermostat": { - "description": "כרטיס התרמוסטט נותן שליטה על ישות האקלים שלך. מאפשר לך לשנות את הטמפרטורה ואת המצב של הישות.", + "description": "כרטיס וסת החום נותן שליטה על ישות האקלים שלך. מאפשר לך לשנות את הטמפרטורה ואת המצב של הישות.", "name": "וסת חום" }, "vertical-stack": { diff --git a/translations/frontend/nl.json b/translations/frontend/nl.json index 32a4f5719a..2458787e5e 100644 --- a/translations/frontend/nl.json +++ b/translations/frontend/nl.json @@ -1513,6 +1513,11 @@ "wed": "woensdag" } }, + "trigger": { + "id": "Trigger Id", + "label": "Trigger", + "no_triggers": "Geen triggers beschikbaar" + }, "zone": { "entity": "Entiteit met locatie", "label": "Zone", @@ -1556,6 +1561,7 @@ "delete_confirm": "Weet je zeker dat je dit item wilt verwijderen?", "duplicate": "Dupliceren", "header": "", + "id": "Trigger-ID (gebruikt door de triggervoorwaarde)", "introduction": "Triggers starten de verwerking van een automatiseringsregel. Het is mogelijk om meerdere triggers voor dezelfde regel op te geven. Zodra een trigger start, valideert Home Assistant de eventuele voorwaarden en roept hij de actie aan.", "learn_more": "Meer informatie over triggers", "name": "Trigger", @@ -2664,10 +2670,12 @@ }, "save_script": "Script opslaan", "sequence": "Reeks", - "sequence_sentence": "De reeks van acties in dit script." + "sequence_sentence": "De reeks van acties in dit script.", + "show_trace": "Tracering weergeven" }, "picker": { "add_script": "Voeg script toe", + "dev_script": "Debug script", "duplicate": "Dupliceer", "duplicate_script": "Script dupliceren", "edit_script": "Bewerk script", diff --git a/translations/frontend/ru.json b/translations/frontend/ru.json index 057fb98a3e..54c34806ef 100644 --- a/translations/frontend/ru.json +++ b/translations/frontend/ru.json @@ -1513,6 +1513,11 @@ "wed": "Среда" } }, + "trigger": { + "id": "ID триггера", + "label": "Триггер", + "no_triggers": "Триггеры отсутствуют" + }, "zone": { "entity": "Объект с местоположением", "label": "Зона", @@ -1556,6 +1561,7 @@ "delete_confirm": "Вы уверены, что хотите удалить?", "duplicate": "Дублировать", "header": "Триггеры", + "id": "ID триггера (используется в условиях)", "introduction": "Триггеры — это то, что запускает процесс автоматизации. Можно указать несколько триггеров на одно и то же правило. Когда триггер сработает, Home Assistant будет проверять условия (если таковые имеются), и выполнять действия.", "learn_more": "Узнайте больше о триггерах", "name": "Триггер", @@ -2664,10 +2670,12 @@ }, "save_script": "Сохранить скрипт", "sequence": "Последовательность", - "sequence_sentence": "Последовательность действий этого скрипта." + "sequence_sentence": "Последовательность действий этого скрипта.", + "show_trace": "Показать трассировку" }, "picker": { "add_script": "Добавить скрипт", + "dev_script": "Отладка скрипта", "duplicate": "Дублировать", "duplicate_script": "Дублировать", "edit_script": "Редактировать скрипт", diff --git a/translations/frontend/zh-Hant.json b/translations/frontend/zh-Hant.json index 6b5419e37d..07dd92713c 100644 --- a/translations/frontend/zh-Hant.json +++ b/translations/frontend/zh-Hant.json @@ -1513,6 +1513,11 @@ "wed": "星期三" } }, + "trigger": { + "id": "觸發器 ID", + "label": "觸發器", + "no_triggers": "無觸發器可使用" + }, "zone": { "entity": "區域實體", "label": "區域", @@ -1556,6 +1561,7 @@ "delete_confirm": "確定要刪除嗎?", "duplicate": "複製", "header": "觸發", + "id": "觸發器 ID(用於觸發條件)", "introduction": "「觸發條件」為可使設定好的自動化開始運作。可以針對一個自動化設定多個觸發條件。一旦觸發後,Home Assistant 會檢查觸發判斷式,並開始執行動作。", "learn_more": "詳細了解觸發條件", "name": "觸發自動化", @@ -2664,10 +2670,12 @@ }, "save_script": "儲存腳本", "sequence": "連續", - "sequence_sentence": "此腳本所含的操作動作。" + "sequence_sentence": "此腳本所含的操作動作。", + "show_trace": "顯示紀錄" }, "picker": { "add_script": "新增腳本", + "dev_script": "除錯腳本", "duplicate": "複製", "duplicate_script": "複製腳本", "edit_script": "編輯腳本", From bc0d63ed12bd920d98c2c71b7d9074e1de7fda43 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Wed, 7 Jul 2021 09:42:41 +0200 Subject: [PATCH 3/4] Better fix for Safari IBD bug (#9514) * Better fix for Safari IBD bug * comment --- src/components/ha-gauge.ts | 5 ++--- src/data/iconsets.ts | 22 +++++++++++++++++++--- src/util/is_safari.ts | 3 +++ 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/components/ha-gauge.ts b/src/components/ha-gauge.ts index 2f0e71cabc..e5d785b435 100644 --- a/src/components/ha-gauge.ts +++ b/src/components/ha-gauge.ts @@ -6,9 +6,7 @@ import { formatNumber } from "../common/string/format_number"; import { afterNextRender } from "../common/util/render-status"; import { FrontendLocaleData } from "../data/translation"; import { getValueInPercentage, normalize } from "../util/calculate"; - -// Workaround for https://github.com/home-assistant/frontend/issues/6467 -const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); +import { isSafari } from "../util/is_safari"; const getAngle = (value: number, min: number, max: number) => { const percentage = getValueInPercentage(normalize(value, min, max), min, max); @@ -70,6 +68,7 @@ export class Gauge extends LitElement { )} > ${ + // Workaround for https://github.com/home-assistant/frontend/issues/6467 isSafari ? svg` return; } - promiseTimeout( - 1000, + const readIcons = () => iconStore("readonly", (store) => { for (const [iconName_, resolve_, reject_] of toRead) { promisifyRequest(store.get(iconName_)) @@ -37,8 +37,24 @@ export const getIcon = (iconName: string) => .catch((e) => reject_(e)); } toRead = []; + }); + + let readIconPromise: Promise; + + if (isSafari && (indexedDB as any).databases) { + let intervalId: number; + readIconPromise = new Promise((resolveTry) => { + const tryIdb = () => (indexedDB as any).databases().finally(resolveTry); + intervalId = window.setInterval(tryIdb, 100); + tryIdb(); }) - ).catch((e) => { + .then(() => readIcons()) + .finally(() => clearInterval(intervalId)); + } else { + readIconPromise = readIcons(); + } + + promiseTimeout(1000, readIconPromise).catch((e) => { // Firefox in private mode doesn't support IDB // Safari sometime doesn't open the DB so we time out for (const [, , reject_] of toRead) { diff --git a/src/util/is_safari.ts b/src/util/is_safari.ts index e69de29bb2..af3acb78ac 100644 --- a/src/util/is_safari.ts +++ b/src/util/is_safari.ts @@ -0,0 +1,3 @@ +export const isSafari = /^((?!chrome|android).)*safari/i.test( + navigator.userAgent +); From 569765e77e20dddd11efdc2c966d64eebd01fb78 Mon Sep 17 00:00:00 2001 From: Bram Kragten Date: Wed, 7 Jul 2021 09:43:20 +0200 Subject: [PATCH 4/4] Bumped version to 20210707.0 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 374d8bc9e2..f1d810634c 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup( name="home-assistant-frontend", - version="20210706.0", + version="20210707.0", description="The Home Assistant frontend", url="https://github.com/home-assistant/home-assistant-polymer", author="The Home Assistant Authors",