From c0896d173d95332de2bba703f9c2ac16101c714d Mon Sep 17 00:00:00 2001 From: Ian Richardson Date: Thu, 28 Feb 2019 11:48:18 -0600 Subject: [PATCH 1/8] cleanup rows (#2863) --- .../entity-rows/hui-climate-entity-row.ts | 5 +- .../entity-rows/hui-cover-entity-row.ts | 5 +- .../entity-rows/hui-group-entity-row.ts | 12 ++- .../hui-input-number-entity-row.ts | 3 + .../hui-input-select-entity-row.ts | 5 +- .../entity-rows/hui-input-text-entity-row.ts | 12 ++- .../entity-rows/hui-lock-entity-row.ts | 5 +- .../hui-media-player-entity-row.ts | 5 +- .../entity-rows/hui-scene-entity-row.ts | 5 +- .../entity-rows/hui-script-entity-row.ts | 5 +- .../entity-rows/hui-sensor-entity-row.ts | 5 +- .../entity-rows/hui-text-entity-row.ts | 5 +- .../entity-rows/hui-timer-entity-row.ts | 7 +- .../entity-rows/hui-toggle-entity-row.ts | 17 ++-- .../special-rows/hui-call-service-row.ts | 78 +++++++++---------- .../lovelace/special-rows/hui-divider-row.ts | 19 ++--- .../lovelace/special-rows/hui-section-row.ts | 56 ++++++------- .../lovelace/special-rows/hui-weblink-row.ts | 58 +++++++------- 18 files changed, 165 insertions(+), 142 deletions(-) diff --git a/src/panels/lovelace/entity-rows/hui-climate-entity-row.ts b/src/panels/lovelace/entity-rows/hui-climate-entity-row.ts index 9487294b76..586a29615f 100644 --- a/src/panels/lovelace/entity-rows/hui-climate-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-climate-entity-row.ts @@ -5,6 +5,7 @@ import { property, css, CSSResult, + customElement, } from "lit-element"; import "../../../components/ha-climate-state"; @@ -14,8 +15,10 @@ import "../components/hui-warning"; import { HomeAssistant } from "../../../types"; import { EntityRow, EntityConfig } from "./types"; +@customElement("hui-climate-entity-row") class HuiClimateEntityRow extends LitElement implements EntityRow { @property() public hass?: HomeAssistant; + @property() private _config?: EntityConfig; public setConfig(config: EntityConfig): void { @@ -69,5 +72,3 @@ declare global { "hui-climate-entity-row": HuiClimateEntityRow; } } - -customElements.define("hui-climate-entity-row", HuiClimateEntityRow); diff --git a/src/panels/lovelace/entity-rows/hui-cover-entity-row.ts b/src/panels/lovelace/entity-rows/hui-cover-entity-row.ts index 148c1614c2..160c4d6760 100644 --- a/src/panels/lovelace/entity-rows/hui-cover-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-cover-entity-row.ts @@ -5,6 +5,7 @@ import { property, css, CSSResult, + customElement, } from "lit-element"; import "../components/hui-generic-entity-row"; @@ -16,8 +17,10 @@ import { isTiltOnly } from "../../../util/cover-model"; import { HomeAssistant } from "../../../types"; import { EntityRow, EntityConfig } from "./types"; +@customElement("hui-cover-entity-row") class HuiCoverEntityRow extends LitElement implements EntityRow { @property() public hass?: HomeAssistant; + @property() private _config?: EntityConfig; public setConfig(config: EntityConfig): void { @@ -80,5 +83,3 @@ declare global { "hui-cover-entity-row": HuiCoverEntityRow; } } - -customElements.define("hui-cover-entity-row", HuiCoverEntityRow); diff --git a/src/panels/lovelace/entity-rows/hui-group-entity-row.ts b/src/panels/lovelace/entity-rows/hui-group-entity-row.ts index e422037ca6..165f4eb027 100644 --- a/src/panels/lovelace/entity-rows/hui-group-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-group-entity-row.ts @@ -1,4 +1,10 @@ -import { html, LitElement, TemplateResult, property } from "lit-element"; +import { + html, + LitElement, + TemplateResult, + property, + customElement, +} from "lit-element"; import "../components/hui-generic-entity-row"; import "../../../components/entity/ha-entity-toggle"; @@ -9,8 +15,10 @@ import { DOMAINS_TOGGLE } from "../../../common/const"; import { HomeAssistant } from "../../../types"; import { EntityRow, EntityConfig } from "./types"; +@customElement("hui-group-entity-row") class HuiGroupEntityRow extends LitElement implements EntityRow { @property() public hass?: HomeAssistant; + @property() private _config?: EntityConfig; public setConfig(config: EntityConfig): void { @@ -73,5 +81,3 @@ declare global { "hui-group-entity-row": HuiGroupEntityRow; } } - -customElements.define("hui-group-entity-row", HuiGroupEntityRow); diff --git a/src/panels/lovelace/entity-rows/hui-input-number-entity-row.ts b/src/panels/lovelace/entity-rows/hui-input-number-entity-row.ts index da44882a6a..12fd026996 100644 --- a/src/panels/lovelace/entity-rows/hui-input-number-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-input-number-entity-row.ts @@ -20,8 +20,11 @@ import { setValue } from "../../../data/input_text"; @customElement("hui-input-number-entity-row") class HuiInputNumberEntityRow extends LitElement implements EntityRow { @property() public hass?: HomeAssistant; + @property() private _config?: EntityConfig; + private _loaded?: boolean; + private _updated?: boolean; public setConfig(config: EntityConfig): void { diff --git a/src/panels/lovelace/entity-rows/hui-input-select-entity-row.ts b/src/panels/lovelace/entity-rows/hui-input-select-entity-row.ts index 77c056524c..ddb96a54a8 100644 --- a/src/panels/lovelace/entity-rows/hui-input-select-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-input-select-entity-row.ts @@ -5,6 +5,7 @@ import { property, css, CSSResult, + customElement, } from "lit-element"; import { repeat } from "lit-html/directives/repeat"; import "@polymer/paper-dropdown-menu/paper-dropdown-menu"; @@ -19,8 +20,10 @@ import { HomeAssistant } from "../../../types"; import { EntityRow, EntityConfig } from "./types"; import { setOption } from "../../../data/input-select"; +@customElement("hui-input-select-entity-row") class HuiInputSelectEntityRow extends LitElement implements EntityRow { @property() public hass?: HomeAssistant; + @property() private _config?: EntityConfig; public setConfig(config: EntityConfig): void { @@ -106,5 +109,3 @@ declare global { "hui-input-select-entity-row": HuiInputSelectEntityRow; } } - -customElements.define("hui-input-select-entity-row", HuiInputSelectEntityRow); diff --git a/src/panels/lovelace/entity-rows/hui-input-text-entity-row.ts b/src/panels/lovelace/entity-rows/hui-input-text-entity-row.ts index 1456bb9492..42376687cc 100644 --- a/src/panels/lovelace/entity-rows/hui-input-text-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-input-text-entity-row.ts @@ -1,4 +1,10 @@ -import { html, LitElement, TemplateResult, property } from "lit-element"; +import { + html, + LitElement, + TemplateResult, + property, + customElement, +} from "lit-element"; import { PaperInputElement } from "@polymer/paper-input/paper-input"; import "../components/hui-generic-entity-row"; @@ -8,8 +14,10 @@ import { HomeAssistant } from "../../../types"; import { EntityRow, EntityConfig } from "./types"; import { setValue } from "../../../data/input_text"; +@customElement("hui-input-text-entity-row") class HuiInputTextEntityRow extends LitElement implements EntityRow { @property() public hass?: HomeAssistant; + @property() private _config?: EntityConfig; public setConfig(config: EntityConfig): void { @@ -76,5 +84,3 @@ declare global { "hui-input-text-entity-row": HuiInputTextEntityRow; } } - -customElements.define("hui-input-text-entity-row", HuiInputTextEntityRow); diff --git a/src/panels/lovelace/entity-rows/hui-lock-entity-row.ts b/src/panels/lovelace/entity-rows/hui-lock-entity-row.ts index 15c0acbf5c..22d6fe6028 100644 --- a/src/panels/lovelace/entity-rows/hui-lock-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-lock-entity-row.ts @@ -5,6 +5,7 @@ import { property, css, CSSResult, + customElement, } from "lit-element"; import "../components/hui-generic-entity-row"; @@ -13,8 +14,10 @@ import "../components/hui-warning"; import { HomeAssistant } from "../../../types"; import { EntityRow, EntityConfig } from "./types"; +@customElement("hui-lock-entity-row") class HuiLockEntityRow extends LitElement implements EntityRow { @property() public hass?: HomeAssistant; + @property() private _config?: EntityConfig; public setConfig(config: EntityConfig): void { @@ -78,5 +81,3 @@ declare global { "hui-lock-entity-row": HuiLockEntityRow; } } - -customElements.define("hui-lock-entity-row", HuiLockEntityRow); diff --git a/src/panels/lovelace/entity-rows/hui-media-player-entity-row.ts b/src/panels/lovelace/entity-rows/hui-media-player-entity-row.ts index 3defa48446..28273dce7e 100644 --- a/src/panels/lovelace/entity-rows/hui-media-player-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-media-player-entity-row.ts @@ -5,6 +5,7 @@ import { css, CSSResult, property, + customElement, } from "lit-element"; import "@polymer/paper-icon-button/paper-icon-button"; @@ -22,8 +23,10 @@ import { SUPPORT_PAUSE, } from "../../../data/media-player"; +@customElement("hui-media-player-entity-row") class HuiMediaPlayerEntityRow extends LitElement implements EntityRow { @property() public hass?: HomeAssistant; + @property() private _config?: EntityConfig; public setConfig(config: EntityConfig): void { @@ -156,5 +159,3 @@ declare global { "hui-media-player-entity-row": HuiMediaPlayerEntityRow; } } - -customElements.define("hui-media-player-entity-row", HuiMediaPlayerEntityRow); diff --git a/src/panels/lovelace/entity-rows/hui-scene-entity-row.ts b/src/panels/lovelace/entity-rows/hui-scene-entity-row.ts index 4a11a1f6a3..a690adfc5c 100644 --- a/src/panels/lovelace/entity-rows/hui-scene-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-scene-entity-row.ts @@ -5,6 +5,7 @@ import { CSSResult, css, property, + customElement, } from "lit-element"; import "../components/hui-generic-entity-row"; @@ -14,8 +15,10 @@ import "../components/hui-warning"; import { HomeAssistant } from "../../../types"; import { EntityRow, EntityConfig } from "./types"; +@customElement("hui-scene-entity-row") class HuiSceneEntityRow extends LitElement implements EntityRow { @property() public hass?: HomeAssistant; + @property() private _config?: EntityConfig; public setConfig(config: EntityConfig): void { @@ -83,5 +86,3 @@ declare global { "hui-scene-entity-row": HuiSceneEntityRow; } } - -customElements.define("hui-scene-entity-row", HuiSceneEntityRow); diff --git a/src/panels/lovelace/entity-rows/hui-script-entity-row.ts b/src/panels/lovelace/entity-rows/hui-script-entity-row.ts index b0465abf11..5d6dfe82ef 100644 --- a/src/panels/lovelace/entity-rows/hui-script-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-script-entity-row.ts @@ -5,6 +5,7 @@ import { property, CSSResult, css, + customElement, } from "lit-element"; import "../components/hui-generic-entity-row"; @@ -14,8 +15,10 @@ import "../components/hui-warning"; import { HomeAssistant } from "../../../types"; import { EntityRow, EntityConfig } from "./types"; +@customElement("hui-script-entity-row") class HuiScriptEntityRow extends LitElement implements EntityRow { @property() public hass?: HomeAssistant; + @property() private _config?: EntityConfig; public setConfig(config: EntityConfig): void { @@ -83,5 +86,3 @@ declare global { "hui-script-entity-row": HuiScriptEntityRow; } } - -customElements.define("hui-script-entity-row", HuiScriptEntityRow); diff --git a/src/panels/lovelace/entity-rows/hui-sensor-entity-row.ts b/src/panels/lovelace/entity-rows/hui-sensor-entity-row.ts index 4c65f99cf0..998ba9450c 100644 --- a/src/panels/lovelace/entity-rows/hui-sensor-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-sensor-entity-row.ts @@ -5,6 +5,7 @@ import { property, CSSResult, css, + customElement, } from "lit-element"; import "../components/hui-generic-entity-row"; @@ -20,8 +21,10 @@ interface SensorEntityConfig extends EntityConfig { format?: "relative" | "date" | "time" | "datetime"; } +@customElement("hui-sensor-entity-row") class HuiSensorEntityRow extends LitElement implements EntityRow { @property() public hass?: HomeAssistant; + @property() private _config?: SensorEntityConfig; public setConfig(config: SensorEntityConfig): void { @@ -85,5 +88,3 @@ declare global { "hui-sensor-entity-row": HuiSensorEntityRow; } } - -customElements.define("hui-sensor-entity-row", HuiSensorEntityRow); diff --git a/src/panels/lovelace/entity-rows/hui-text-entity-row.ts b/src/panels/lovelace/entity-rows/hui-text-entity-row.ts index 5fd9f2f442..6c7e564262 100644 --- a/src/panels/lovelace/entity-rows/hui-text-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-text-entity-row.ts @@ -5,6 +5,7 @@ import { property, CSSResult, css, + customElement, } from "lit-element"; import "../components/hui-generic-entity-row"; @@ -14,8 +15,10 @@ import computeStateDisplay from "../../../common/entity/compute_state_display"; import { HomeAssistant } from "../../../types"; import { EntityRow, EntityConfig } from "./types"; +@customElement("hui-text-entity-row") class HuiTextEntityRow extends LitElement implements EntityRow { @property() public hass?: HomeAssistant; + @property() private _config?: EntityConfig; public setConfig(config: EntityConfig): void { @@ -71,5 +74,3 @@ declare global { "hui-text-entity-row": HuiTextEntityRow; } } - -customElements.define("hui-text-entity-row", HuiTextEntityRow); diff --git a/src/panels/lovelace/entity-rows/hui-timer-entity-row.ts b/src/panels/lovelace/entity-rows/hui-timer-entity-row.ts index 7e7383961d..1bcd3e64ef 100644 --- a/src/panels/lovelace/entity-rows/hui-timer-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-timer-entity-row.ts @@ -4,6 +4,7 @@ import { TemplateResult, property, PropertyValues, + customElement, } from "lit-element"; import "../components/hui-generic-entity-row"; @@ -15,10 +16,14 @@ import { HomeAssistant } from "../../../types"; import { EntityConfig } from "./types"; import { HassEntity } from "home-assistant-js-websocket"; +@customElement("hui-timer-entity-row") class HuiTimerEntityRow extends LitElement { @property() public hass?: HomeAssistant; + @property() private _config?: EntityConfig; + @property() private _timeRemaining?: number; + private _interval?: number; public setConfig(config: EntityConfig): void { @@ -124,5 +129,3 @@ declare global { "hui-timer-entity-row": HuiTimerEntityRow; } } - -customElements.define("hui-timer-entity-row", HuiTimerEntityRow); diff --git a/src/panels/lovelace/entity-rows/hui-toggle-entity-row.ts b/src/panels/lovelace/entity-rows/hui-toggle-entity-row.ts index e91a47e460..0ac6a57ecc 100644 --- a/src/panels/lovelace/entity-rows/hui-toggle-entity-row.ts +++ b/src/panels/lovelace/entity-rows/hui-toggle-entity-row.ts @@ -1,8 +1,9 @@ import { html, LitElement, - PropertyDeclarations, TemplateResult, + customElement, + property, } from "lit-element"; import "../components/hui-generic-entity-row"; @@ -10,19 +11,15 @@ import "../../../components/entity/ha-entity-toggle"; import "../components/hui-warning"; import computeStateDisplay from "../../../common/entity/compute_state_display"; + import { HomeAssistant } from "../../../types"; import { EntityRow, EntityConfig } from "./types"; +@customElement("hui-toggle-entity-row") class HuiToggleEntityRow extends LitElement implements EntityRow { - public hass?: HomeAssistant; - private _config?: EntityConfig; + @property() public hass?: HomeAssistant; - static get properties(): PropertyDeclarations { - return { - hass: {}, - _config: {}, - }; - } + @property() private _config?: EntityConfig; public setConfig(config: EntityConfig): void { if (!config) { @@ -78,5 +75,3 @@ declare global { "hui-toggle-entity-row": HuiToggleEntityRow; } } - -customElements.define("hui-toggle-entity-row", HuiToggleEntityRow); diff --git a/src/panels/lovelace/special-rows/hui-call-service-row.ts b/src/panels/lovelace/special-rows/hui-call-service-row.ts index 0d89a7c986..479f45d7e2 100644 --- a/src/panels/lovelace/special-rows/hui-call-service-row.ts +++ b/src/panels/lovelace/special-rows/hui-call-service-row.ts @@ -1,4 +1,12 @@ -import { html, LitElement, TemplateResult } from "lit-element"; +import { + html, + LitElement, + TemplateResult, + customElement, + property, + css, + CSSResult, +} from "lit-element"; import "@material/mwc-button"; import "../../../components/ha-icon"; @@ -7,16 +15,11 @@ import { callService } from "../common/call-service"; import { EntityRow, CallServiceConfig } from "../entity-rows/types"; import { HomeAssistant } from "../../../types"; +@customElement("hui-call-service-row") class HuiCallServiceRow extends LitElement implements EntityRow { - public hass?: HomeAssistant; - private _config?: CallServiceConfig; + @property() public hass?: HomeAssistant; - static get properties() { - return { - hass: {}, - _config: {}, - }; - } + @property() private _config?: CallServiceConfig; public setConfig(config: CallServiceConfig): void { if (!config || !config.name || !config.service) { @@ -32,7 +35,6 @@ class HuiCallServiceRow extends LitElement implements EntityRow { } return html` - ${this.renderStyle()}
${this._config.name}
@@ -43,34 +45,32 @@ class HuiCallServiceRow extends LitElement implements EntityRow { `; } - private renderStyle(): TemplateResult { - return html` - + static get styles(): CSSResult { + return css` + :host { + display: flex; + align-items: center; + } + ha-icon { + padding: 8px; + color: var(--paper-item-icon-color); + } + .flex { + flex: 1; + overflow: hidden; + margin-left: 16px; + display: flex; + justify-content: space-between; + align-items: center; + } + .flex div { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + mwc-button { + margin-right: -0.57em; + } `; } @@ -84,5 +84,3 @@ declare global { "hui-call-service-row": HuiCallServiceRow; } } - -customElements.define("hui-call-service-row", HuiCallServiceRow); diff --git a/src/panels/lovelace/special-rows/hui-divider-row.ts b/src/panels/lovelace/special-rows/hui-divider-row.ts index 38cead769e..0f6df4cee1 100644 --- a/src/panels/lovelace/special-rows/hui-divider-row.ts +++ b/src/panels/lovelace/special-rows/hui-divider-row.ts @@ -1,16 +1,19 @@ -import { html, LitElement, TemplateResult } from "lit-element"; +import { + html, + LitElement, + TemplateResult, + customElement, + property, +} from "lit-element"; + import { EntityRow, DividerConfig } from "../entity-rows/types"; import { HomeAssistant } from "../../../types"; +@customElement("hui-divider-row") class HuiDividerRow extends LitElement implements EntityRow { public hass?: HomeAssistant; - private _config?: DividerConfig; - static get properties() { - return { - _config: {}, - }; - } + @property() private _config?: DividerConfig; public setConfig(config): void { if (!config) { @@ -48,5 +51,3 @@ declare global { "hui-divider-row": HuiDividerRow; } } - -customElements.define("hui-divider-row", HuiDividerRow); diff --git a/src/panels/lovelace/special-rows/hui-section-row.ts b/src/panels/lovelace/special-rows/hui-section-row.ts index 0a038e91c6..21f09f10bc 100644 --- a/src/panels/lovelace/special-rows/hui-section-row.ts +++ b/src/panels/lovelace/special-rows/hui-section-row.ts @@ -1,18 +1,23 @@ -import { html, LitElement, TemplateResult } from "lit-element"; +import { + html, + LitElement, + TemplateResult, + customElement, + property, + css, + CSSResult, +} from "lit-element"; + import { EntityRow, SectionConfig } from "../entity-rows/types"; import { HomeAssistant } from "../../../types"; import "../../../components/ha-icon"; +@customElement("hui-section-row") class HuiSectionRow extends LitElement implements EntityRow { public hass?: HomeAssistant; - private _config?: SectionConfig; - static get properties() { - return { - _config: {}, - }; - } + @property() private _config?: SectionConfig; public setConfig(config: SectionConfig): void { if (!config) { @@ -28,7 +33,6 @@ class HuiSectionRow extends LitElement implements EntityRow { } return html` - ${this.renderStyle()}
${this._config.label ? html` @@ -38,24 +42,22 @@ class HuiSectionRow extends LitElement implements EntityRow { `; } - private renderStyle(): TemplateResult { - return html` - + static get styles(): CSSResult { + return css` + .label { + color: var(--primary-color); + margin-left: 8px; + margin-bottom: 16px; + margin-top: 16px; + } + .divider { + height: 1px; + background-color: var(--secondary-text-color); + opacity: 0.25; + margin-left: -16px; + margin-right: -16px; + margin-top: 8px; + } `; } } @@ -65,5 +67,3 @@ declare global { "hui-section-row": HuiSectionRow; } } - -customElements.define("hui-section-row", HuiSectionRow); diff --git a/src/panels/lovelace/special-rows/hui-weblink-row.ts b/src/panels/lovelace/special-rows/hui-weblink-row.ts index d06e8470c9..90ce800ec0 100644 --- a/src/panels/lovelace/special-rows/hui-weblink-row.ts +++ b/src/panels/lovelace/special-rows/hui-weblink-row.ts @@ -1,18 +1,23 @@ -import { html, LitElement, TemplateResult } from "lit-element"; +import { + html, + LitElement, + TemplateResult, + customElement, + property, + css, + CSSResult, +} from "lit-element"; + import { EntityRow, WeblinkConfig } from "../entity-rows/types"; import { HomeAssistant } from "../../../types"; import "../../../components/ha-icon"; +@customElement("hui-webline-row") class HuiWeblinkRow extends LitElement implements EntityRow { public hass?: HomeAssistant; - private _config?: WeblinkConfig; - static get properties() { - return { - _config: {}, - }; - } + @property() private _config?: WeblinkConfig; public setConfig(config: WeblinkConfig): void { if (!config || !config.url) { @@ -32,7 +37,6 @@ class HuiWeblinkRow extends LitElement implements EntityRow { } return html` - ${this.renderStyle()}
${this._config.name}
@@ -40,26 +44,24 @@ class HuiWeblinkRow extends LitElement implements EntityRow { `; } - private renderStyle(): TemplateResult { - return html` - + static get styles(): CSSResult { + return css` + a { + display: flex; + align-items: center; + color: var(--primary-color); + } + ha-icon { + padding: 8px; + color: var(--paper-item-icon-color); + } + div { + flex: 1; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + margin-left: 16px; + } `; } } From 82189ab3c610d6afb1c4f389aabce5e4abd177db Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 28 Feb 2019 10:24:19 -0800 Subject: [PATCH 2/8] Fix system health check (#2866) * Fix system health check * Update src/panels/dev-info/system-health-card.ts Co-Authored-By: balloob --- src/panels/dev-info/system-health-card.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/panels/dev-info/system-health-card.ts b/src/panels/dev-info/system-health-card.ts index 4f0d0408d6..d6b6e4e7ef 100644 --- a/src/panels/dev-info/system-health-card.ts +++ b/src/panels/dev-info/system-health-card.ts @@ -98,7 +98,7 @@ class SystemHealthCard extends LitElement { private async _fetchInfo() { try { - if (!("system_health" in this.hass!.config.components)) { + if (!this.hass!.config.components.includes("system_health")) { throw new Error(); } this._info = await fetchSystemHealthInfo(this.hass!); From 7c21a07a6647a43f572f7be5e225464a52f0855a Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 28 Feb 2019 11:48:37 -0800 Subject: [PATCH 3/8] fix import --- src/data/entity.ts | 40 +++++++++++++++++++ .../dev-service/ha-panel-dev-service.js | 3 +- 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/src/data/entity.ts b/src/data/entity.ts index 69028008b9..506ff75edd 100644 --- a/src/data/entity.ts +++ b/src/data/entity.ts @@ -1 +1,41 @@ export const UNAVAILABLE = "unavailable"; + +export const ENTITY_COMPONENT_DOMAINS = [ + "air_quality", + "alarm_control_panel", + "automation", + "binary_sensor", + "calendar", + "counter", + "cover", + "dominos", + "fan", + "geo_location", + "group", + "history_graph", + "image_processing", + "input_boolean", + "input_datetime", + "input_number", + "input_select", + "input_text", + "light", + "lock", + "mailbox", + "media_player", + "person", + "plant", + "remember_the_milk", + "remote", + "scene", + "script", + "sensor", + "switch", + "timer", + "utility_meter", + "vacuum", + "weather", + "wink", + "zha", + "zwave", +]; diff --git a/src/panels/dev-service/ha-panel-dev-service.js b/src/panels/dev-service/ha-panel-dev-service.js index 6505f1dc02..11f84b78af 100644 --- a/src/panels/dev-service/ha-panel-dev-service.js +++ b/src/panels/dev-service/ha-panel-dev-service.js @@ -6,6 +6,7 @@ import "@polymer/paper-input/paper-textarea"; import { html } from "@polymer/polymer/lib/utils/html-tag"; import { PolymerElement } from "@polymer/polymer/polymer-element"; +import { ENTITY_COMPONENT_DOMAINS } from "../../data/entity"; import "../../components/entity/ha-entity-picker"; import "../../components/ha-menu-button"; import "../../components/ha-service-picker"; @@ -293,7 +294,7 @@ class HaPanelDevService extends PolymerElement { } _computeEntityDomainFilter(domain) { - return domain === "homeassistant" ? null : domain; + return ENTITY_COMPONENT_DOMAINS.includes(domain) ? domain : null; } _callService() { From 8dba463dd4084251959e2c9d27fb1d606b314583 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 28 Feb 2019 12:02:32 -0800 Subject: [PATCH 4/8] Fix define --- src/panels/lovelace/special-rows/hui-weblink-row.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/panels/lovelace/special-rows/hui-weblink-row.ts b/src/panels/lovelace/special-rows/hui-weblink-row.ts index 90ce800ec0..0655564c2c 100644 --- a/src/panels/lovelace/special-rows/hui-weblink-row.ts +++ b/src/panels/lovelace/special-rows/hui-weblink-row.ts @@ -13,7 +13,7 @@ import { HomeAssistant } from "../../../types"; import "../../../components/ha-icon"; -@customElement("hui-webline-row") +@customElement("hui-weblink-row") class HuiWeblinkRow extends LitElement implements EntityRow { public hass?: HomeAssistant; @@ -71,5 +71,3 @@ declare global { "hui-weblink-row": HuiWeblinkRow; } } - -customElements.define("hui-weblink-row", HuiWeblinkRow); From 03d4a648f502a93f6162dc87bf18ace50bd3aa2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Lov=C3=A9n?= Date: Thu, 28 Feb 2019 23:30:43 +0100 Subject: [PATCH 5/8] Trim overflowing cards (#2864) * Trim overflowing cards * Fix picture-elements instead --- src/panels/lovelace/cards/hui-picture-elements-card.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/panels/lovelace/cards/hui-picture-elements-card.ts b/src/panels/lovelace/cards/hui-picture-elements-card.ts index a323f97f85..8b854d5c16 100644 --- a/src/panels/lovelace/cards/hui-picture-elements-card.ts +++ b/src/panels/lovelace/cards/hui-picture-elements-card.ts @@ -84,12 +84,14 @@ class HuiPictureElementsCard extends LitElement implements LovelaceCard { `; } From 8f4d24b6daba83732219f4dc259b3aef7b15805d Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 28 Feb 2019 17:11:59 -0800 Subject: [PATCH 6/8] Update translatins --- translations/ca.json | 35 ++++++++++++++++++++++++++------- translations/de.json | 37 ++++++++++++++++++++++++++--------- translations/en.json | 41 +++++++++++++++++++++++++++++---------- translations/es.json | 37 +++++++++++++++++++++++++++-------- translations/fr.json | 35 ++++++++++++++++++++++++++------- translations/he.json | 35 ++++++++++++++++++++++++++------- translations/ko.json | 41 +++++++++++++++++++++++++++++---------- translations/lb.json | 18 ++++++++++++++--- translations/ru.json | 41 +++++++++++++++++++++++++++++---------- translations/sv.json | 35 ++++++++++++++++++++++++++------- translations/zh-Hant.json | 41 +++++++++++++++++++++++++++++---------- 11 files changed, 308 insertions(+), 88 deletions(-) diff --git a/translations/ca.json b/translations/ca.json index f4b6f4f896..f303040269 100644 --- a/translations/ca.json +++ b/translations/ca.json @@ -270,6 +270,10 @@ "active": "actiu", "idle": "inactiu", "paused": "en pausa" + }, + "person": { + "home": "A casa", + "not_home": "Fora" } }, "state_badge": { @@ -292,6 +296,10 @@ "device_tracker": { "home": "A casa", "not_home": "Fora" + }, + "person": { + "home": "A casa", + "not_home": "Fora" } }, "ui": { @@ -365,7 +373,8 @@ "introduction": "L'editor d'automatismes permet crear i editar automatismes. Llegeix [les instruccions](https:\/\/home-assistant.io\/docs\/automation\/editor\/) per assegurar-te que has configurat el Home Assistant correctament.", "pick_automation": "Selecciona l'automatisme a editar", "no_automations": "No s'ha pogut trobar cap automatisme editable", - "add_automation": "Afegir automatisme" + "add_automation": "Afegir automatisme", + "learn_more": "Més informació sobre els automatismes" }, "editor": { "introduction": "Utilitza els automatismes per donar més vida a la teva casa", @@ -452,7 +461,8 @@ "enter": "Entrar", "leave": "Sortir" } - } + }, + "learn_more": "Més informació sobre els activadors" }, "conditions": { "header": "Condicions", @@ -497,7 +507,8 @@ "entity": "Entitat amb ubicació", "zone": "Zona" } - } + }, + "learn_more": "Més informació sobre les condicions" }, "actions": { "header": "Accions", @@ -530,7 +541,8 @@ "event": "Esdeveniment:", "service_data": "Dades de servei" } - } + }, + "learn_more": "Més informació sobre les accions" } } }, @@ -603,7 +615,8 @@ "picker": { "header": "Registre d'àrees", "introduction": "Les àrees s'utilitzen per organitzar la situació dels dispositius. Aquesta informació serà utilitzada per Home Assistant per ajudar-te a organitzar millor la teva interfície, els permisos i les integracions amb d'altres sistemes.", - "introduction2": "Per col·locar dispositius en una àrea, utilitza l'enllaç de sota per anar a la pàgina d'integracions i, a continuació, fes clic a una integració configurada per accedir a les targetes del dispositiu." + "introduction2": "Per col·locar dispositius en una àrea, utilitza l'enllaç de sota per anar a la pàgina d'integracions i, a continuació, fes clic a una integració configurada per accedir a les targetes del dispositiu.", + "integrations_page": "Pàgina d'integracions" }, "no_areas": "Sembla que encara no tens cap àrea, encara.", "create_area": "CREA ÀREA", @@ -621,7 +634,8 @@ "header": "Registre d'entitats", "unavailable": "(no disponible)", "introduction": "Home Assistant manté un registre de totes les entitats que ha detectat alguna vegada les quals tenen una identificació única. Cadascuna d'aquestes entitats té un identificador (ID) assignat que està reservat només per a ella.", - "introduction2": "Utilitza el registre d'entitats per canviar el nom, canviar l'ID o eliminar l'entrada de Home Assistant de les entitats. Tingues en compte que eliminar-les del registre d'entitats no eliminarà l'entitat. Per fer-ho, segueix l'enllaç següent i elimineu-la dins la pàgina d'integracions." + "introduction2": "Utilitza el registre d'entitats per canviar el nom, canviar l'ID o eliminar l'entrada de Home Assistant de les entitats. Tingues en compte que eliminar-les del registre d'entitats no eliminarà l'entitat. Per fer-ho, segueix l'enllaç següent i elimineu-la dins la pàgina d'integracions.", + "integrations_page": "Pàgina d'integracions" }, "editor": { "unavailable": "Aquesta entitat no està disponible actualment.", @@ -870,6 +884,12 @@ }, "menu": { "raw_editor": "Editor de codi" + }, + "raw_editor": { + "header": "Edita la configuració", + "save": "Desar", + "unsaved_changes": "Canvis sense desar", + "saved": "Desat" } }, "menu": { @@ -1118,7 +1138,8 @@ "hassio": "Hass.io", "homeassistant": "Home Assistant", "lovelace": "Lovelace", - "system_health": "Estat del sistema" + "system_health": "Estat del sistema", + "person": "Persona" }, "attribute": { "weather": { diff --git a/translations/de.json b/translations/de.json index f7bb964794..c316cbf8cf 100644 --- a/translations/de.json +++ b/translations/de.json @@ -270,6 +270,10 @@ "active": "aktiv", "idle": "Leerlauf", "paused": "pausiert" + }, + "person": { + "home": "Zuhause", + "not_home": "Abwesend" } }, "state_badge": { @@ -292,6 +296,10 @@ "device_tracker": { "home": "Z. Hause", "not_home": "Abwes." + }, + "person": { + "home": "Zuhause", + "not_home": "Abwesend" } }, "ui": { @@ -362,10 +370,11 @@ "description": "Automatisierungen erstellen und bearbeiten", "picker": { "header": "Automatisierungseditor", - "introduction": "Mit dem Automationseditor können Automatisierungen erstellt und bearbeitet werden. Bitte lies [die Anleitungen](https:\/\/home-assistant.io\/docs\/automation\/editor\/), um sicherzustellen, dass du Home Assistant richtig konfiguriert hast.", + "introduction": "Mit dem Automationseditor können Automatisierungen erstellt und bearbeitet werden. Bitte folge dem nachfolgenden Link, um die Anleitung zu lesen, um sicherzustellen, dass du Home Assistant richtig konfiguriert hast.", "pick_automation": "Wähle eine Automatisierung zum Bearbeiten", "no_automations": "Wir konnten keine editierbaren Automatisierungen finden", - "add_automation": "Automatisierung hinzufügen" + "add_automation": "Automatisierung hinzufügen", + "learn_more": "Erfahre mehr über Automatisierungen" }, "editor": { "introduction": "Benutze Automatisierungen, um deinem Zuhause Leben einzuhauchen", @@ -375,7 +384,7 @@ "alias": "Name", "triggers": { "header": "Auslöser", - "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.\n\n[Erfahre mehr über Auslöser.](https:\/\/home-assistant.io\/docs\/automation\/trigger\/)", + "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.", "add": "Auslöser hinzufügen", "duplicate": "Duplizieren", "delete": "Löschen", @@ -452,11 +461,12 @@ "enter": "Betreten", "leave": "Verlassen" } - } + }, + "learn_more": "Erfahre mehr über Auslöser" }, "conditions": { "header": "Bedingungen", - "introduction": "Bedingungen sind ein optionaler Bestandteil bei automatisierten Abläufen und können das Ausführen einer Aktion verhindern. Bedingungen sind Auslösern ähnlich, aber dennoch verschieden. Ein Auslöser beobachtet im System ablaufende Ereignisse, wohingegen Bedingungen nur den aktuellen Systemzustand betrachten. Ein Auslöser kann beobachten, ob ein Schalter aktiviert wird. Eine Bedingung kann lediglich sehen, ob ein Schalter aktuell an oder aus ist.\n\n[Erfahre mehr über Bedingungen.](https:\/\/home-assistant.io\/docs\/scripts\/conditions\/)", + "introduction": "Bedingungen sind ein optionaler Bestandteil bei automatisierten Abläufen und können das Ausführen einer Aktion verhindern. Bedingungen sind Auslösern ähnlich, aber dennoch verschieden. Ein Auslöser beobachtet im System ablaufende Ereignisse, wohingegen Bedingungen nur den aktuellen Systemzustand betrachten. Ein Auslöser kann beobachten, ob ein Schalter aktiviert wird. Eine Bedingung kann lediglich sehen, ob ein Schalter aktuell an oder aus ist.", "add": "Bedingung hinzufügen", "duplicate": "Duplizieren", "delete": "Löschen", @@ -497,11 +507,12 @@ "entity": "Entität mit Standort", "zone": "Zone" } - } + }, + "learn_more": "Erfahre mehr über Bedingungen" }, "actions": { "header": "Aktionen", - "introduction": "Aktionen werden von Home Assistant ausgeführt, wenn Automatisierungen ausgelöst werden.\n\n[Erfahre mehr über Aktionen.](https:\/\/home-assistant.io\/docs\/automation\/action\/)", + "introduction": "Aktionen werden von Home Assistant ausgeführt, wenn Automatisierungen ausgelöst werden.", "add": "Aktion hinzufügen", "duplicate": "Duplizieren", "delete": "Löschen", @@ -530,7 +541,8 @@ "event": "Ereignis:", "service_data": "Dienstdaten" } - } + }, + "learn_more": "Erfahre mehr über Aktionen" } } }, @@ -870,6 +882,12 @@ }, "menu": { "raw_editor": "Raw-Konfigurationseditor" + }, + "raw_editor": { + "header": "Konfiguration bearbeiten", + "save": "Speichern", + "unsaved_changes": "Nicht gespeicherte Änderungen", + "saved": "Gespeichert" } }, "menu": { @@ -1118,7 +1136,8 @@ "hassio": "Hass.io", "homeassistant": "Home Assistant", "lovelace": "Lovelace", - "system_health": "Systemzustand" + "system_health": "Systemzustand", + "person": "Person" }, "attribute": { "weather": { diff --git a/translations/en.json b/translations/en.json index 5154de2053..d8718e77a6 100644 --- a/translations/en.json +++ b/translations/en.json @@ -270,6 +270,10 @@ "active": "active", "idle": "idle", "paused": "paused" + }, + "person": { + "home": "Home", + "not_home": "Away" } }, "state_badge": { @@ -292,6 +296,10 @@ "device_tracker": { "home": "Home", "not_home": "Away" + }, + "person": { + "home": "Home", + "not_home": "Away" } }, "ui": { @@ -365,7 +373,8 @@ "introduction": "The automation editor allows you to create and edit automations. Please follow the link below to read the instructions to make sure that you have configured Home Assistant correctly.", "pick_automation": "Pick automation to edit", "no_automations": "We couldn’t find any editable automations", - "add_automation": "Add automation" + "add_automation": "Add automation", + "learn_more": "Learn more about automations" }, "editor": { "introduction": "Use automations to bring your home alive", @@ -375,7 +384,7 @@ "alias": "Name", "triggers": { "header": "Triggers", - "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. Click the link below to learn more about triggers.", + "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.", "add": "Add trigger", "duplicate": "Duplicate", "delete": "Delete", @@ -452,11 +461,12 @@ "enter": "Enter", "leave": "Leave" } - } + }, + "learn_more": "Learn more about triggers" }, "conditions": { "header": "Conditions", - "introduction": "Conditions are an optional part of an automation rule and can be used to prevent an action from happening when triggered. Conditions look very similar to triggers but are very different. A trigger will look at events happening in the system while a condition only looks at how the system looks right now. A trigger can observe that a switch is being turned on. A condition can only see if a switch is currently on or off. Click the link below to learn more about conditions.", + "introduction": "Conditions are an optional part of an automation rule and can be used to prevent an action from happening when triggered. Conditions look very similar to triggers but are very different. A trigger will look at events happening in the system while a condition only looks at how the system looks right now. A trigger can observe that a switch is being turned on. A condition can only see if a switch is currently on or off.", "add": "Add condition", "duplicate": "Duplicate", "delete": "Delete", @@ -497,11 +507,12 @@ "entity": "Entity with location", "zone": "Zone" } - } + }, + "learn_more": "Learn more about conditions" }, "actions": { "header": "Actions", - "introduction": "The actions are what Home Assistant will do when the automation is triggered. Click the link below to learn more about actions.", + "introduction": "The actions are what Home Assistant will do when the automation is triggered.", "add": "Add action", "duplicate": "Duplicate", "delete": "Delete", @@ -530,7 +541,8 @@ "event": "Event:", "service_data": "Service data" } - } + }, + "learn_more": "Learn more about actions" } } }, @@ -603,7 +615,8 @@ "picker": { "header": "Area Registry", "introduction": "Areas are used to organize where devices are. This information will be used throughout Home Assistant to help you in organizing your interface, permissions and integrations with other systems.", - "introduction2": "To place devices in an area, use the link below to navigate to the integrations page and then click on a configured integration to get to the device cards." + "introduction2": "To place devices in an area, use the link below to navigate to the integrations page and then click on a configured integration to get to the device cards.", + "integrations_page": "Integrations page" }, "no_areas": "Looks like you have no areas yet!", "create_area": "CREATE AREA", @@ -621,7 +634,8 @@ "header": "Entity Registry", "unavailable": "(unavailable)", "introduction": "Home Assistant keeps a registry of every entity it has ever seen that can be uniquely identified. Each of these entities will have an entity ID assigned which will be reserved for just this entity.", - "introduction2": "Use the entity registry to override the name, change the entity ID or remove the entry from Home Assistant. Note, removing the entity registry entry won't remove the entity. To do that, follow the link below and remove it from the integrations page." + "introduction2": "Use the entity registry to override the name, change the entity ID or remove the entry from Home Assistant. Note, removing the entity registry entry won't remove the entity. To do that, follow the link below and remove it from the integrations page.", + "integrations_page": "Integrations page" }, "editor": { "unavailable": "This entity is not currently available.", @@ -870,6 +884,12 @@ }, "menu": { "raw_editor": "Raw config editor" + }, + "raw_editor": { + "header": "Edit Config", + "save": "Save", + "unsaved_changes": "Unsaved changes", + "saved": "Saved" } }, "menu": { @@ -1118,7 +1138,8 @@ "hassio": "Hass.io", "homeassistant": "Home Assistant", "lovelace": "Lovelace", - "system_health": "System Health" + "system_health": "System Health", + "person": "Person" }, "attribute": { "weather": { diff --git a/translations/es.json b/translations/es.json index e2501c7386..37e33a8aac 100644 --- a/translations/es.json +++ b/translations/es.json @@ -270,6 +270,10 @@ "active": "activo", "idle": "inactivo", "paused": "pausado" + }, + "person": { + "home": "Casa", + "not_home": "Fuera de casa" } }, "state_badge": { @@ -292,6 +296,10 @@ "device_tracker": { "home": "Casa", "not_home": "Fuera" + }, + "person": { + "home": "Casa", + "not_home": "Fuera de casa" } }, "ui": { @@ -365,7 +373,8 @@ "introduction": "El editor de automatización le permite crear y editar automatizaciones. Lea [las instrucciones] (https:\/\/home-assistant.io\/docs\/automation\/editor\/) para asegurarse de haber configurado correctamente Home Assistant.", "pick_automation": "Elija la automatización para editar", "no_automations": "No pudimos encontrar ninguna automatización editable", - "add_automation": "Añadir automatización" + "add_automation": "Añadir automatización", + "learn_more": "Aprende más sobre automatizaciones." }, "editor": { "introduction": "Use automatizaciones para dar vida a su hogar.", @@ -452,7 +461,8 @@ "enter": "Entrar", "leave": "Salir" } - } + }, + "learn_more": "Aprenda más sobre los desencadenantes" }, "conditions": { "header": "Condiciones", @@ -497,7 +507,8 @@ "entity": "Entidad con la ubicación", "zone": "Zona" } - } + }, + "learn_more": "Aprende más sobre las condiciones." }, "actions": { "header": "Acciones", @@ -530,7 +541,8 @@ "event": "Evento:", "service_data": "Datos del servicio" } - } + }, + "learn_more": "Aprende más sobre las acciones." } } }, @@ -603,7 +615,8 @@ "picker": { "header": "Registro de Área", "introduction": "Las áreas se utilizan para organizar dónde están los dispositivos. Esta información se utilizará en Home Assistant para ayudarle a organizar su interfaz, permisos e integraciones con otros sistemas.", - "introduction2": "Para colocar dispositivos en un área, utilice el siguiente enlace para navegar a la página de integraciones y luego haga clic en una integración configurada para llegar a las tarjetas de dispositivos." + "introduction2": "Para colocar dispositivos en un área, utilice el siguiente enlace para navegar a la página de integraciones y luego haga clic en una integración configurada para llegar a las tarjetas de dispositivos.", + "integrations_page": "Integraciones" }, "no_areas": "¡Parece que no tienes áreas!", "create_area": "CREAR ÁREA", @@ -621,7 +634,8 @@ "header": "Registro de Entidades", "unavailable": "(no disponible)", "introduction": "Home Assistant mantiene un registro de cada entidad que ha visto. Cada una de estas entidades tendrá una identificación asignada que se reservará sólo para esta entidad.", - "introduction2": "Utilice el registro de entidades para anular el nombre, cambiar el ID de la entidad o eliminar la entrada de Home Assistant. Nota: la eliminación de la entrada del registro de entidades no eliminará la entidad. Para ello, siga el siguiente enlace y elimínelo de la página de integraciones." + "introduction2": "Utilice el registro de entidades para anular el nombre, cambiar el ID de la entidad o eliminar la entrada de Home Assistant. Nota: la eliminación de la entrada del registro de entidades no eliminará la entidad. Para ello, siga el siguiente enlace y elimínelo de la página de integraciones.", + "integrations_page": "Integraciones" }, "editor": { "unavailable": "Esta entidad no está disponible actualmente.", @@ -870,6 +884,12 @@ }, "menu": { "raw_editor": "Editor de configuración en bruto" + }, + "raw_editor": { + "header": "Editar configuración", + "save": "Guardar", + "unsaved_changes": "Cambios no guardados", + "saved": "Guardado" } }, "menu": { @@ -1118,7 +1138,8 @@ "hassio": "Hass.io", "homeassistant": "Home Assistant", "lovelace": "Lovelace", - "system_health": "Salud del sistema" + "system_health": "Salud del sistema", + "person": "Persona" }, "attribute": { "weather": { @@ -1131,7 +1152,7 @@ "climate": { "fan_mode": { "off": "Apagado", - "on": "Prendido", + "on": "Encendido", "auto": "Automatico" } } diff --git a/translations/fr.json b/translations/fr.json index 95ffe1b2e6..3a2535cc43 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -270,6 +270,10 @@ "active": "actif", "idle": "En veille", "paused": "en pause" + }, + "person": { + "home": "Présent", + "not_home": "Absent" } }, "state_badge": { @@ -292,6 +296,10 @@ "device_tracker": { "home": "Maison", "not_home": "Absent.e" + }, + "person": { + "home": "Présent", + "not_home": "Absent" } }, "ui": { @@ -365,7 +373,8 @@ "introduction": "L'éditeur d'automatisation vous permet de créer et éditer des automatisations. Veuillez lire [les instructions](https:\/\/home-assistant.io\/docs\/automation\/editor\/) pour être sûr d'avoir configuré Home-Assistant correctement.", "pick_automation": "Choisissez l'automatisation à éditer", "no_automations": "Il n'y a aucune automatisation modifiable.", - "add_automation": "Ajouter une automatisation" + "add_automation": "Ajouter une automatisation", + "learn_more": "En savoir plus sur les automatisations" }, "editor": { "introduction": "Utilisez les automatisations pour donner vie à votre maison", @@ -452,7 +461,8 @@ "enter": "Entre", "leave": "Quitte" } - } + }, + "learn_more": "En savoir plus sur les déclencheurs" }, "conditions": { "header": "Conditions", @@ -497,7 +507,8 @@ "entity": "Entité avec localisation", "zone": "Zone" } - } + }, + "learn_more": "En savoir plus sur les conditions" }, "actions": { "header": "Actions", @@ -530,7 +541,8 @@ "event": "Évènement :", "service_data": "Données du service" } - } + }, + "learn_more": "En savoir plus sur les actions" } } }, @@ -603,7 +615,8 @@ "picker": { "header": "Registre des pièces", "introduction": "Les zones sont utilisées pour organiser l'emplacement des périphériques. Ces informations seront utilisées partout dans Home Assistant pour vous aider à organiser votre interface, vos autorisations et vos intégrations avec d'autres systèmes.", - "introduction2": "Pour placer des périphériques dans une zone, utilisez le lien ci-dessous pour accéder à la page des intégrations, puis cliquez sur une intégration configurée pour accéder aux cartes de périphérique." + "introduction2": "Pour placer des périphériques dans une zone, utilisez le lien ci-dessous pour accéder à la page des intégrations, puis cliquez sur une intégration configurée pour accéder aux cartes de périphérique.", + "integrations_page": "Page des intégrations" }, "no_areas": "Vous n'avez pas encore configuré de pièce !", "create_area": "CRÉER UNE PIÈCE", @@ -621,7 +634,8 @@ "header": "Registre des entités", "unavailable": "(indisponible)", "introduction": "Home Assistant tient un registre de chaque entité qu'il n’a jamais vue et qui peut être identifié de manière unique. Chacune de ces entités se verra attribuer un identifiant qui sera réservé à cette seule entité.", - "introduction2": "Utilisez le registre d'entités pour remplacer le nom, modifier l'ID d'entité ou supprimer l'entrée d'Home Assistant. Remarque: la suppression de l'entrée de registre d'entité ne supprime pas l'entité. Pour ce faire, suivez le lien ci-dessous et supprimez-le de la page des intégrations." + "introduction2": "Utilisez le registre d'entités pour remplacer le nom, modifier l'ID d'entité ou supprimer l'entrée d'Home Assistant. Remarque: la suppression de l'entrée de registre d'entité ne supprime pas l'entité. Pour ce faire, suivez le lien ci-dessous et supprimez-le de la page des intégrations.", + "integrations_page": "Page des intégrations" }, "editor": { "unavailable": "Cette entité n'est pas disponible actuellement.", @@ -870,6 +884,12 @@ }, "menu": { "raw_editor": "Éditeur de configuration" + }, + "raw_editor": { + "header": "Modifier la configuration", + "save": "Enregistrer", + "unsaved_changes": "Modifications non enregistrées", + "saved": "Enregistré" } }, "menu": { @@ -1118,7 +1138,8 @@ "hassio": "Hass.io", "homeassistant": "Home Assistant", "lovelace": "Lovelace", - "system_health": "Santé du système" + "system_health": "Santé du système", + "person": "Personne" }, "attribute": { "weather": { diff --git a/translations/he.json b/translations/he.json index 7c7a55cc34..d21ceabf9f 100644 --- a/translations/he.json +++ b/translations/he.json @@ -270,6 +270,10 @@ "active": "פעיל", "idle": "לא פעיל", "paused": "מושהה" + }, + "person": { + "home": "בבית", + "not_home": "לא נמצא" } }, "state_badge": { @@ -292,6 +296,10 @@ "device_tracker": { "home": "בבית", "not_home": "לא בבית" + }, + "person": { + "home": "בבית", + "not_home": "לא נמצא" } }, "ui": { @@ -365,7 +373,8 @@ "introduction": "עורך אוטומציה מאפשר לך ליצור ולערוך אוטומציות. אנא קרא את [ההוראות](https:\/\/home-assistant.io\/docs\/automation\/editor\/) כדי לוודא שהגדרת את ה - Home Assistant כהלכה.", "pick_automation": "בחר אוטומציה לעריכה", "no_automations": "לא הצלחנו למצוא שום אוטומציה הניתנת לעריכה", - "add_automation": "הוסף אוטומציה" + "add_automation": "הוסף אוטומציה", + "learn_more": "למד עוד על אוטומציות" }, "editor": { "introduction": "השתמש באוטומציות להביא את הבית שלך לחיים", @@ -452,7 +461,8 @@ "enter": "כניסה", "leave": "יציאה" } - } + }, + "learn_more": "למד עוד על טריגרים" }, "conditions": { "header": "תנאים", @@ -497,7 +507,8 @@ "entity": "ישות עם מיקום", "zone": "אזור" } - } + }, + "learn_more": "למד עוד על תנאים" }, "actions": { "header": "פעולות", @@ -530,7 +541,8 @@ "event": "ארוע", "service_data": "נתוני שירות" } - } + }, + "learn_more": "למד עוד על פעולות" } } }, @@ -603,7 +615,8 @@ "picker": { "header": "מאגר האזורים", "introduction": "אזורים משמשים לארגון המיקום של ההתקנים. Home Assistant יעשה שימוש במידע זה בכדי לסייע לך בארגון הממשק, ההרשאות והאינטגרציות שלך עם מערכות אחרות.", - "introduction2": "כדי למקם התקנים באזור זה, השתמש בקישור הבא כדי לנווט אל דף האינטגרציות ולאחר מכן לחץ על אינטגרציה מוגדרת כדי להגיע לכרטיסי המכשיר." + "introduction2": "כדי למקם התקנים באזור זה, השתמש בקישור הבא כדי לנווט אל דף האינטגרציות ולאחר מכן לחץ על אינטגרציה מוגדרת כדי להגיע לכרטיסי המכשיר.", + "integrations_page": "דף אינטגרציות" }, "no_areas": "נראה שעדיין אין אזורים!", "create_area": "צור איזור", @@ -621,7 +634,8 @@ "header": "מאגר הישויות", "unavailable": "(לא זמין)", "introduction": "Home Assistant מנהל רישום של כל ישות שנראתה אי פעם ואשר ניתנת לזיהוי ייחודי. לכל אחד מישויות אלו יהיה מזהה ישות שהוקצה ואשר יהה שמור רק עבור ישות זו.", - "introduction2": "השתמש במאגר הישויות בכדי לשנות את השם, מזהה הישות או להסיר את הערך מ- Home Assistant. שים לב, הסרת הישות ממאגר זה לא תסיר את הישות. לשם כך, פעל לפי הקישור שלהלן והסר אותו מדף האינטגרציות." + "introduction2": "השתמש במאגר הישויות בכדי לשנות את השם, מזהה הישות או להסיר את הערך מ- Home Assistant. שים לב, הסרת הישות ממאגר זה לא תסיר את הישות. לשם כך, פעל לפי הקישור שלהלן והסר אותו מדף האינטגרציות.", + "integrations_page": "דף אינטגרציות" }, "editor": { "unavailable": "ישות זו אינה זמינה כעת.", @@ -870,6 +884,12 @@ }, "menu": { "raw_editor": "עורך הקונפיגורציה" + }, + "raw_editor": { + "header": "עריכת קונפיגורציה", + "save": "שמור", + "unsaved_changes": "שינויים שלא נשמרו", + "saved": "נשמר" } }, "menu": { @@ -1118,7 +1138,8 @@ "hassio": "Hass.io", "homeassistant": "Home Assistant", "lovelace": "Lovelace", - "system_health": "בריאות מערכת" + "system_health": "בריאות מערכת", + "person": "אדם" }, "attribute": { "weather": { diff --git a/translations/ko.json b/translations/ko.json index 0d9c0aae31..0b9a632ddc 100644 --- a/translations/ko.json +++ b/translations/ko.json @@ -270,6 +270,10 @@ "active": "활성화", "idle": "대기중", "paused": "일시중지됨" + }, + "person": { + "home": "재실", + "not_home": "외출" } }, "state_badge": { @@ -292,6 +296,10 @@ "device_tracker": { "home": "재실", "not_home": "외출" + }, + "person": { + "home": "재실", + "not_home": "외출" } }, "ui": { @@ -365,7 +373,8 @@ "introduction": "자동화 편집기를 사용하여 자동화를 작성하고 편집 할 수 있습니다. 아래 링크를 따라 안내사항을 읽고 Home Assistant 를 올바르게 구성했는지 확인해보세요.", "pick_automation": "편집할 자동화 선택", "no_automations": "편집 가능한 자동화를 찾을 수 없습니다", - "add_automation": "자동화 추가하기" + "add_automation": "자동화 추가하기", + "learn_more": "자동화에 대해 더 알아보기" }, "editor": { "introduction": "자동화를 사용하여 집에 생기를 불어넣으세요", @@ -375,7 +384,7 @@ "alias": "이름", "triggers": { "header": "트리거", - "introduction": "트리거는 자동화 규칙을 처리하는 시작점 입니다. 같은 자동화 규칙에 여러 개의 트리거를 지정할 수 있습니다. 트리거가 발동되면 Home Assistant 는 조건을 확인하고 동작을 호출합니다. 자세히 알아 보려면 아래 링크를 클릭해주세요.", + "introduction": "트리거는 자동화 규칙을 처리하는 시작점 입니다. 같은 자동화 규칙에 여러 개의 트리거를 지정할 수 있습니다. 트리거가 발동되면 Home Assistant 는 조건을 확인하고 동작을 호출합니다.", "add": "트리거 추가", "duplicate": "복제", "delete": "삭제", @@ -452,11 +461,12 @@ "enter": "입장", "leave": "퇴장" } - } + }, + "learn_more": "트리거에 대해 더 알아보기" }, "conditions": { "header": "조건", - "introduction": "조건은 자동화 규칙의 선택사항이며 트리거 될 때 발생하는 동작을 방지하는 데 사용할 수 있습니다. 조건은 트리거와 비슷해 보이지만 매우 다릅니다. 트리거는 시스템에서 발생하는 이벤트를 검사하고 조건은 시스템의 현재 상태를 검사합니다. 스위치를 예로 들면, 트리거는 스위치가 켜지는 것(이벤트)을, 조건은 스위치가 현재 켜져 있는지 혹은 꺼져 있는지(상태)를 검사합니다. 자세히 알아 보려면 아래 링크를 클릭해주세요.", + "introduction": "조건은 자동화 규칙의 선택사항이며 트리거 될 때 발생하는 동작을 방지하는 데 사용할 수 있습니다. 조건은 트리거와 비슷해 보이지만 매우 다릅니다. 트리거는 시스템에서 발생하는 이벤트를 검사하고 조건은 시스템의 현재 상태를 검사합니다. 스위치를 예로 들면, 트리거는 스위치가 켜지는 것(이벤트)을, 조건은 스위치가 현재 켜져 있는지 혹은 꺼져 있는지(상태)를 검사합니다.", "add": "조건 추가", "duplicate": "복제", "delete": "삭제", @@ -497,11 +507,12 @@ "entity": "위치기반 구성요소", "zone": "구역" } - } + }, + "learn_more": "조건에 대해 더 알아보기" }, "actions": { "header": "동작", - "introduction": "동작은 자동화가 트리거 될 때 Home Assistant 가 수행할 작업입니다. 자세히 알아 보려면 아래 링크를 클릭해주세요.", + "introduction": "동작은 자동화가 트리거 될 때 Home Assistant 가 수행할 작업입니다.", "add": "동작 추가", "duplicate": "복제", "delete": "삭제", @@ -530,7 +541,8 @@ "event": "이벤트:", "service_data": "서비스 데이터" } - } + }, + "learn_more": "동작에 대해 더 알아보기" } } }, @@ -603,7 +615,8 @@ "picker": { "header": "영역 등록", "introduction": "영역은 장치가있는 위치를 구성하는데 사용합니다. 이 정보는 Home Assistant 의 인터페이스 정리, 권한 및 다른 시스템과의 통합 구성에 도움을 줍니다.", - "introduction2": "특정 영역에 장치를 배치하려면 아래 링크를 따라 통합 구성요소 페이지로 이동 한 다음, 설정된 구성요소의 장치를 클릭하여 영역을 설정 할 수 있습니다." + "introduction2": "특정 영역에 장치를 배치하려면 아래 링크를 따라 통합 구성요소 페이지로 이동 한 다음, 설정된 구성요소의 장치를 클릭하여 영역을 설정 할 수 있습니다.", + "integrations_page": "통합 구성요소 페이지" }, "no_areas": "등록된 영역이 없습니다. 거실, 침실과 같이 영역을 등록해보세요!", "create_area": "영역 만들기", @@ -621,7 +634,8 @@ "header": "구성요소", "unavailable": "(사용불가)", "introduction": "Home Assistant 는 구성요소의 식별을 위해 모든 구성요소에 대해 고유한 레지스트리를 유지합니다. 각각의 구성요소들은 자신만의 고유한 구성요소 ID 를 가집니다.", - "introduction2": "구성요소 편집을 사용하여 이름을 대체하거나 구성요소 ID를 변경하거나 Home Assistant 에서 항목을 제거할 수 있습니다. 단, 구성요소 편집창에서 구성요소를 삭제해도 구성요소가 완전히 제거되는것은 아닙니다. 완전히 제거하려면, 아래 링크를 따라 통합 구성요소 페이지에서 제거해주세요." + "introduction2": "구성요소 편집을 사용하여 이름을 대체하거나 구성요소 ID를 변경하거나 Home Assistant 에서 항목을 제거할 수 있습니다. 단, 구성요소 편집창에서 구성요소를 삭제해도 구성요소가 완전히 제거되는것은 아닙니다. 완전히 제거하려면, 아래 링크를 따라 통합 구성요소 페이지에서 제거해주세요.", + "integrations_page": "통합 구성요소 페이지" }, "editor": { "unavailable": "이 구성요소는 현재 사용할 수 없습니다.", @@ -870,6 +884,12 @@ }, "menu": { "raw_editor": "구성 코드 편집기" + }, + "raw_editor": { + "header": "구성 코드 편집", + "save": "저장하기", + "unsaved_changes": "저장되지 않은 변경사항", + "saved": "저장되었습니다" } }, "menu": { @@ -1118,7 +1138,8 @@ "hassio": "Hass.io", "homeassistant": "Home Assistant", "lovelace": "Lovelace", - "system_health": "시스템 상태" + "system_health": "시스템 상태", + "person": "구성원" }, "attribute": { "weather": { diff --git a/translations/lb.json b/translations/lb.json index 77f1ff7fa7..a1cb8703cc 100644 --- a/translations/lb.json +++ b/translations/lb.json @@ -270,6 +270,10 @@ "active": "Aktiv", "idle": "Waart", "paused": "Pauseiert" + }, + "person": { + "home": "Doheem", + "not_home": "Ënnerwee" } }, "state_badge": { @@ -292,6 +296,10 @@ "device_tracker": { "home": "Doheem", "not_home": "Ënnerwee" + }, + "person": { + "home": "Doheem", + "not_home": "Ënnerwee" } }, "ui": { @@ -870,6 +878,9 @@ }, "menu": { "raw_editor": "Editeur fir déi reng Konfiguratioun" + }, + "raw_editor": { + "save": "Späicheren" } }, "menu": { @@ -879,8 +890,8 @@ "refresh": "Erneieren" }, "warning": { - "entity_not_found": "Entitéit net erreechbar: {entitiy}", - "entity_non_numeric": "Entitéit ass net numerescher Natur: {entitiy}" + "entity_not_found": "Entitéit net erreechbar: {entity}", + "entity_non_numeric": "Entitéit ass net numerescher Natur: {entity}" } } }, @@ -1118,7 +1129,8 @@ "hassio": "Hass.io", "homeassistant": "Home Assistant", "lovelace": "Lovelace", - "system_health": "System Zoustand" + "system_health": "System Zoustand", + "person": "Persoun" }, "attribute": { "weather": { diff --git a/translations/ru.json b/translations/ru.json index ea317da11d..844b0731a2 100644 --- a/translations/ru.json +++ b/translations/ru.json @@ -270,6 +270,10 @@ "active": "Отсчёт", "idle": "Ожидание", "paused": "Пауза" + }, + "person": { + "home": "Дома", + "not_home": "Не дома" } }, "state_badge": { @@ -292,6 +296,10 @@ "device_tracker": { "home": "Дома", "not_home": "Не дома" + }, + "person": { + "home": "Дома", + "not_home": "Не дома" } }, "ui": { @@ -365,7 +373,8 @@ "introduction": "Редактор автоматизаций позволяет создавать и редактировать автоматизации.\nПожалуйста, ознакомьтесь с инструкциями по указанной ниже ссылке и убедитесь, что правильно настроили Home Assistant.", "pick_automation": "Выберите автоматизацию для редактирования", "no_automations": "Мы не нашли редактируемые автоматизации", - "add_automation": "Добавить автоматизацию" + "add_automation": "Добавить автоматизацию", + "learn_more": "Узнайте больше об автоматизациях" }, "editor": { "introduction": "Используйте автоматизацию, чтобы оживить ваш дом", @@ -375,7 +384,7 @@ "alias": "Название", "triggers": { "header": "Триггеры", - "introduction": "Триггеры - это то, что запускает процесс автоматизации. Можно указать несколько триггеров на одно и то же правило. Когда триггер сработает, Home Assistant будет проверять условия (если таковые имеются), и выполнять действия.\nБолее подробную информацию о триггерах Вы можете получить по указанной ниже ссылке.", + "introduction": "Триггеры - это то, что запускает процесс автоматизации. Можно указать несколько триггеров на одно и то же правило. Когда триггер сработает, Home Assistant будет проверять условия (если таковые имеются), и выполнять действия.", "add": "Добавить триггер", "duplicate": "Дублировать", "delete": "Удалить", @@ -452,11 +461,12 @@ "enter": "Войти", "leave": "Покинуть" } - } + }, + "learn_more": "Узнайте больше о триггерах" }, "conditions": { "header": "Условия", - "introduction": "Условия являются необязательной частью правила автоматизации и могут использоваться для предотвращения действия при срабатывании. С первого взгляда может показаться, что условия и триггеры – это одно и то же, однако это не так. Триггер срабатывает непосредственно в момент, когда произошло событие, а условие лишь проверяет состояние системы в данный момент. Триггер может заметить, как был включен выключатель, условие же может видеть только текущее его состояние. \nБолее подробную информацию об условиях Вы можете получить по указанной ниже ссылке.", + "introduction": "Условия являются необязательной частью правила автоматизации и могут использоваться для предотвращения действия при срабатывании. С первого взгляда может показаться, что условия и триггеры – это одно и то же, однако это не так. Триггер срабатывает непосредственно в момент, когда произошло событие, а условие лишь проверяет состояние системы в данный момент. Триггер может заметить, как был включен выключатель, условие же может видеть только текущее его состояние.", "add": "Добавить условие", "duplicate": "Дублировать", "delete": "Удалить", @@ -497,11 +507,12 @@ "entity": "Объект с местоположением", "zone": "Зона" } - } + }, + "learn_more": "Узнайте больше об условиях" }, "actions": { "header": "Действия", - "introduction": "Действия - это то, что сделает Home Assistant, когда правило автоматизации сработает.\nБолее подробную информацию о действиях Вы можете получить по указанной ниже ссылке.", + "introduction": "Действия - это то, что сделает Home Assistant, когда правило автоматизации сработает.", "add": "Добавить действие", "duplicate": "Дублировать", "delete": "Удалить", @@ -530,7 +541,8 @@ "event": "Событие:", "service_data": "Данные службы" } - } + }, + "learn_more": "Узнайте больше о действиях" } } }, @@ -603,7 +615,8 @@ "picker": { "header": "Управление помещениями", "introduction": "Этот раздел используется для определения местоположения устройств. Данная информация будет использоваться в Home Assistant, чтобы помочь вам в организации вашего интерфейса, определении прав доступа и интеграции с другими системами.", - "introduction2": "Чтобы назначить устройству местоположение, используйте указанную ниже ссылку для перехода на страницу интеграций, а затем откройте уже настроенную интеграцию." + "introduction2": "Чтобы назначить устройству местоположение, используйте указанную ниже ссылку для перехода на страницу интеграций, а затем откройте уже настроенную интеграцию.", + "integrations_page": "Страница интеграций" }, "no_areas": "Похоже, что у Вас пока ещё нет добавленных помещений!", "create_area": "ДОБАВИТЬ", @@ -621,7 +634,8 @@ "header": "Управление объектами", "unavailable": "(недоступен)", "introduction": "Home Assistant ведет реестр каждого объекта, который когда-либо был настроен в системе. Каждому из этих объектов присвоен ID, который зарезервирован только для этого объекта.", - "introduction2": "Используйте данный реестр, чтобы изменить ID или название объекта либо удалить запись из Home Assistant. Обратите внимание, что удаление записи из реестра объектов не удалит сам объект. Для этого перейдите по указанной ниже ссылке и удалите его со страницы интеграций." + "introduction2": "Используйте данный реестр, чтобы изменить ID или название объекта либо удалить запись из Home Assistant. Обратите внимание, что удаление записи из реестра объектов не удалит сам объект. Для этого перейдите по указанной ниже ссылке и удалите его со страницы интеграций.", + "integrations_page": "Страница интеграций" }, "editor": { "unavailable": "Этот объект в настоящее время недоступен.", @@ -870,6 +884,12 @@ }, "menu": { "raw_editor": "Текстовый редактор" + }, + "raw_editor": { + "header": "Редактирование конфигурации", + "save": "Сохранить", + "unsaved_changes": "Несохраненные изменения", + "saved": "Сохранено" } }, "menu": { @@ -1118,7 +1138,8 @@ "hassio": "Hass.io", "homeassistant": "Home Assistant", "lovelace": "Lovelace", - "system_health": "Статус системы" + "system_health": "Статус системы", + "person": "Люди" }, "attribute": { "weather": { diff --git a/translations/sv.json b/translations/sv.json index 441ce24d92..fcea51349d 100644 --- a/translations/sv.json +++ b/translations/sv.json @@ -270,6 +270,10 @@ "active": "aktiv", "idle": "inaktiv", "paused": "pausad" + }, + "person": { + "home": "Hemma", + "not_home": "Borta" } }, "state_badge": { @@ -292,6 +296,10 @@ "device_tracker": { "home": "Hemma", "not_home": "Borta" + }, + "person": { + "home": "Hemma", + "not_home": "Borta" } }, "ui": { @@ -365,7 +373,8 @@ "introduction": "Automatiseringseditorn låter dig skapa och redigera automationer. Läs [instruktionerna](https:\/\/home-assistant.io\/docs\/automation\/editor\/) för att se till att du har konfigurerat Home Assistant korrekt.", "pick_automation": "Välj automation att redigera", "no_automations": "Vi kunde inte hitta några redigerbara automationer", - "add_automation": "Lägg till automatisering" + "add_automation": "Lägg till automatisering", + "learn_more": "Lär dig mer om automatiseringar" }, "editor": { "introduction": "Använd automatiseringar för väcka liv i ditt hem", @@ -452,7 +461,8 @@ "enter": "Ankomma", "leave": "Lämna" } - } + }, + "learn_more": "Lär dig mer om utlösare" }, "conditions": { "header": "Villkor", @@ -497,7 +507,8 @@ "entity": "Entitet med position", "zone": "Zon" } - } + }, + "learn_more": "Lär dig mer om villkor" }, "actions": { "header": "Åtgärder", @@ -530,7 +541,8 @@ "event": "Händelse", "service_data": "Tjänstedata" } - } + }, + "learn_more": "Lär dig mer om händelser" } } }, @@ -603,7 +615,8 @@ "picker": { "header": "Områdesregister", "introduction": "Områden används för att organisera var enheter befinner sig. Denna information kommer att användas i hela Home Assistant för att hjälpa dig att organisera ditt gränssnitt, behörigheter och integreringar med andra system.", - "introduction2": "Om du vill placera enheter i ett område använder du länken nedan för att navigera till integrationssidan och klickar sedan på en konfigurerad integration för att komma till enhetskort." + "introduction2": "Om du vill placera enheter i ett område använder du länken nedan för att navigera till integrationssidan och klickar sedan på en konfigurerad integration för att komma till enhetskort.", + "integrations_page": "Integrationssidan" }, "no_areas": "Det verkar som om du inte har några områden än!", "create_area": "SKAPA OMRÅDE", @@ -621,7 +634,8 @@ "header": "Enhetsregister", "unavailable": "(ej tillgänglig)", "introduction": "Home Assistanthar ett enhetsregister som innehåller varje enhet som någonsin har setts vars identifieras kan vara unikt. Var och en av dessa enheter kommer att ha ett ID-nummer som är reserverat för bara den enheten.", - "introduction2": "Använd enhetsregistret för att skriva över namnet, ändra ID eller ta bort posten ifrån Home Assistant. Obs! Att ta bort posten ifrån entity registry (enhetsregister) kommer inte att ta bort enheten. För att göra det, följ länken nedan och ta bort det från integreringssidan." + "introduction2": "Använd enhetsregistret för att skriva över namnet, ändra ID eller ta bort posten ifrån Home Assistant. Obs! Att ta bort posten ifrån entity registry (enhetsregister) kommer inte att ta bort enheten. För att göra det, följ länken nedan och ta bort det från integreringssidan.", + "integrations_page": "Integrationssida" }, "editor": { "unavailable": "Denna enhet är inte tillgänglig för tillfället.", @@ -870,6 +884,12 @@ }, "menu": { "raw_editor": "Rå konfigurationseditor" + }, + "raw_editor": { + "header": "Ändra konfigurationen", + "save": "Spara", + "unsaved_changes": "Osparade ändringar", + "saved": "Sparat" } }, "menu": { @@ -1118,7 +1138,8 @@ "hassio": "Hass.io", "homeassistant": "Home Assistant", "lovelace": "Lovelace", - "system_health": "Systemhälsa" + "system_health": "Systemhälsa", + "person": "Person" }, "attribute": { "weather": { diff --git a/translations/zh-Hant.json b/translations/zh-Hant.json index ac6f6035b7..cb879d6e50 100644 --- a/translations/zh-Hant.json +++ b/translations/zh-Hant.json @@ -270,6 +270,10 @@ "active": "啟用", "idle": "閒置", "paused": "暫停" + }, + "person": { + "home": "在家", + "not_home": "離家" } }, "state_badge": { @@ -292,6 +296,10 @@ "device_tracker": { "home": "在家", "not_home": "離家" + }, + "person": { + "home": "在家", + "not_home": "離家" } }, "ui": { @@ -365,7 +373,8 @@ "introduction": "自動化編輯器允許新增或編輯自動化。請參考下方教學連結,以確保正確的設定 Home Assistant。", "pick_automation": "選擇欲編輯的自動化", "no_automations": "沒有任何可編輯的自動化", - "add_automation": "新增一個自動化" + "add_automation": "新增一個自動化", + "learn_more": "詳細了解自動化" }, "editor": { "introduction": "使用自動化來讓你的智能家居更有魅力吧!", @@ -375,7 +384,7 @@ "alias": "名稱", "triggers": { "header": "觸發", - "introduction": "「觸發條件」為可使設定好的自動化開始運作。可以針對一個自動化設定多個觸發條件。一旦觸發後,Home Assistant 會檢查觸發判斷式,並開始執行動作。請參考下方連結以了解更多關於「事件觸發」的資料。", + "introduction": "「觸發條件」為可使設定好的自動化開始運作。可以針對一個自動化設定多個觸發條件。一旦觸發後,Home Assistant 會檢查觸發判斷式,並開始執行動作。", "add": "新增一個觸發", "duplicate": "複製", "delete": "刪除", @@ -452,11 +461,12 @@ "enter": "進入區域", "leave": "離開區域" } - } + }, + "learn_more": "詳細了解觸發條件" }, "conditions": { "header": "觸發判斷", - "introduction": "「觸發判斷」為自動化規則中,選項使用的部分。可以用以避免誤觸發某些動作。「觸發判斷」看起來跟觸發很類似,但實際上不盡相同。觸發主要監看系統中、事件的變化產生,而觸發判斷僅監看系統目前的狀況。例如:觸發可以觀察到開關被開啟,而觸發判斷僅關注目前開關是開啟或關閉的狀態。請參考下方連結以了解更多關於「觸發判斷」的資料。", + "introduction": "「觸發判斷」為自動化規則中,選項使用的部分。可以用以避免誤觸發某些動作。「觸發判斷」看起來跟觸發很類似,但實際上不盡相同。觸發主要監看系統中、事件的變化產生,而觸發判斷僅監看系統目前的狀況。例如:觸發可以觀察到開關被開啟,而觸發判斷僅關注目前開關是開啟或關閉的狀態。", "add": "新增一個判斷式", "duplicate": "複製", "delete": "刪除", @@ -497,11 +507,12 @@ "entity": "區域物件", "zone": "區域" } - } + }, + "learn_more": "詳細了解觸發判斷" }, "actions": { "header": "觸發後動作", - "introduction": "「動作」為自動化觸發後,Home Assistant 所執行的自動化。點選下方連結以了解更多關於「動作」的資料。", + "introduction": "「動作」為自動化觸發後,Home Assistant 所執行的自動化。", "add": "新增一個動作", "duplicate": "複製", "delete": "刪除", @@ -530,7 +541,8 @@ "event": "事件:", "service_data": "資料" } - } + }, + "learn_more": "詳細了解動作" } } }, @@ -603,7 +615,8 @@ "picker": { "header": "分區 ID", "introduction": "分區主要用以管理裝置所在位置。此資訊將會於 Home Assistant 中使用以協助您管理介面、權限,並與其他系統進行整合。", - "introduction2": "欲於分區中放置裝置,請使用下方連結至整合頁面,並點選設定整合以設定裝置卡片。" + "introduction2": "欲於分區中放置裝置,請使用下方連結至整合頁面,並點選設定整合以設定裝置卡片。", + "integrations_page": "整合頁面" }, "no_areas": "看起來你還沒有建立分區!", "create_area": "建立分區", @@ -621,7 +634,8 @@ "header": "物件 ID", "unavailable": "(不可用)", "introduction": "Home Assistant 保持每個物件 ID 的獨特辨識性,此些物件將會指定一組專用的 物件 ID。", - "introduction2": "使用物件 ID 以覆寫名稱、變更物件 ID 或由 Home Assistant 移除物件。請注意:移除物件 ID 項目並不會移除物件。欲移除,請跟隨下方連結,並於整合頁面中進行移除。" + "introduction2": "使用物件 ID 以覆寫名稱、變更物件 ID 或由 Home Assistant 移除物件。請注意:移除物件 ID 項目並不會移除物件。欲移除,請跟隨下方連結,並於整合頁面中進行移除。", + "integrations_page": "整合頁面" }, "editor": { "unavailable": "該物件目前不可用。", @@ -870,6 +884,12 @@ }, "menu": { "raw_editor": "文字設定編輯器" + }, + "raw_editor": { + "header": "編輯設定", + "save": "儲存", + "unsaved_changes": "未儲存的變更", + "saved": "已儲存" } }, "menu": { @@ -1118,7 +1138,8 @@ "hassio": "Hass.io", "homeassistant": "Home Assistant", "lovelace": "Lovelace", - "system_health": "系統健康" + "system_health": "系統健康", + "person": "個人" }, "attribute": { "weather": { From 1db93a4f7bbbf0754c5982bc8abe2e13d5a577c5 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 28 Feb 2019 17:41:20 -0800 Subject: [PATCH 7/8] Fix ha-entity-toggle restoring old state (#2868) --- src/components/entity/ha-entity-toggle.ts | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/components/entity/ha-entity-toggle.ts b/src/components/entity/ha-entity-toggle.ts index 42a622a9e2..18caf31ea9 100644 --- a/src/components/entity/ha-entity-toggle.ts +++ b/src/components/entity/ha-entity-toggle.ts @@ -110,11 +110,21 @@ class HaEntityToggle extends LitElement { entity_id: this.stateObj.entity_id, }); - setTimeout(() => { + setTimeout(async () => { // If after 2 seconds we have not received a state update // reset the switch to it's original state. - if (this.stateObj === currentState) { - this.requestUpdate(); + if (this.stateObj !== currentState) { + return; + } + // Force a re-render. It's not good enough to just call this.requestUpdate() + // because the value has changed outside of Lit's render function, and so Lit + // won't update the property again, because it's the same as last update. + // So we just temporarily unset the stateObj and set it again. + this.stateObj = undefined; + await this.updateComplete; + // Make sure that a stateObj was not set in between. + if (this.stateObj === undefined) { + this.stateObj = currentState; } }, 2000); } From c2948638d62e57cac7565a48e548c9dde23239f2 Mon Sep 17 00:00:00 2001 From: Paulus Schoutsen Date: Thu, 28 Feb 2019 17:41:38 -0800 Subject: [PATCH 8/8] Bumped version to 20190228.0 --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index cfa3788d19..cd5216a7aa 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages setup( name="home-assistant-frontend", - version="20190227.0", + version="20190228.0", description="The Home Assistant frontend", url="https://github.com/home-assistant/home-assistant-polymer", author="The Home Assistant Authors",