Merge pull request #6250 from home-assistant/dev

This commit is contained in:
Paulus Schoutsen 2020-06-26 13:03:23 -07:00 committed by GitHub
commit ff7731d063
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 298 additions and 170 deletions

View File

@ -87,7 +87,7 @@
"fuse.js": "^6.0.0", "fuse.js": "^6.0.0",
"google-timezones-json": "^1.0.2", "google-timezones-json": "^1.0.2",
"hls.js": "^0.12.4", "hls.js": "^0.12.4",
"home-assistant-js-websocket": "^5.4.0", "home-assistant-js-websocket": "^5.4.1",
"idb-keyval": "^3.2.0", "idb-keyval": "^3.2.0",
"intl-messageformat": "^8.3.9", "intl-messageformat": "^8.3.9",
"js-yaml": "^3.13.1", "js-yaml": "^3.13.1",

View File

@ -16,14 +16,31 @@ function today() {
)}${String(now.getDate()).padStart(2, "0")}.0`; )}${String(now.getDate()).padStart(2, "0")}.0`;
} }
function auto(version) {
const todayVersion = today();
if (todayVersion !== version) {
return todayVersion;
}
return patch(version);
}
const methods = { const methods = {
patch, patch,
today, today,
auto,
}; };
async function main(args) { async function main(args) {
const method = args.length > 0 && methods[args[0]]; let method;
const commit = args.length > 1 && args[1] == "--commit"; let commit;
if (args.length === 0) {
method = methods.auto;
commit = true;
} else {
method = args.length > 0 && methods[args[0]];
commit = args.length > 1 && args[1] == "--commit";
}
if (!method) { if (!method) {
console.error( console.error(

View File

@ -2,7 +2,7 @@ from setuptools import setup, find_packages
setup( setup(
name="home-assistant-frontend", name="home-assistant-frontend",
version="20200626.0", version="20200626.1",
description="The Home Assistant frontend", description="The Home Assistant frontend",
url="https://github.com/home-assistant/home-assistant-polymer", url="https://github.com/home-assistant/home-assistant-polymer",
author="The Home Assistant Authors", author="The Home Assistant Authors",

View File

@ -13,6 +13,7 @@ import {
STATE_NOT_RUNNING, STATE_NOT_RUNNING,
STATE_RUNNING, STATE_RUNNING,
} from "home-assistant-js-websocket"; } from "home-assistant-js-websocket";
import { CustomPanelInfo } from "../data/panel_custom";
const CACHE_URL_PATHS = ["lovelace", "developer-tools"]; const CACHE_URL_PATHS = ["lovelace", "developer-tools"];
const COMPONENTS = { const COMPONENTS = {
@ -159,7 +160,17 @@ class PartialPanelResolver extends HassRouterPage {
if (document.hidden) { if (document.hidden) {
this._hiddenTimeout = window.setTimeout(() => { this._hiddenTimeout = window.setTimeout(() => {
this._hiddenTimeout = undefined; this._hiddenTimeout = undefined;
if (this.lastChild) { const curPanel = this.hass.panels[this._currentPage];
if (
this.lastChild &&
// iFrames will lose their state when disconnected
// Do not disconnect any iframe panel
curPanel.component_name !== "iframe" &&
// Do not disconnect any custom panel that embeds into iframe (ie hassio)
(curPanel.component_name !== "custom" ||
!(curPanel.config as CustomPanelInfo).config._panel_custom
.embed_iframe)
) {
this._disconnectedPanel = this.lastChild; this._disconnectedPanel = this.lastChild;
this.removeChild(this.lastChild); this.removeChild(this.lastChild);
} }

View File

@ -143,15 +143,17 @@ class CloudGoogleAssistant extends LitElement {
</ha-formfield> </ha-formfield>
${entity.might_2fa ${entity.might_2fa
? html` ? html`
<ha-switch <ha-formfield
.entityId=${entity.entity_id} .label=${this.hass!.localize(
.checked=${Boolean(config.disable_2fa)}
@change=${this._disable2FAChanged}
>
${this.hass!.localize(
"ui.panel.config.cloud.google.disable_2FA" "ui.panel.config.cloud.google.disable_2FA"
)} )}
</ha-switch> >
<ha-switch
.entityId=${entity.entity_id}
.checked=${Boolean(config.disable_2fa)}
@change=${this._disable2FAChanged}
></ha-switch>
</ha-formfield>
` `
: ""} : ""}
</div> </div>
@ -375,6 +377,9 @@ class CloudGoogleAssistant extends LitElement {
state-info { state-info {
cursor: pointer; cursor: pointer;
} }
ha-formfield {
display: block;
}
ha-switch { ha-switch {
padding: 8px 0; padding: 8px 0;
} }

View File

@ -26,7 +26,8 @@ import { mdiCloudLock } from "@mdi/js";
class HaConfigDashboard extends LitElement { class HaConfigDashboard extends LitElement {
@property() public hass!: HomeAssistant; @property() public hass!: HomeAssistant;
@property() public narrow!: boolean; @property({ type: Boolean, reflect: true })
public narrow!: boolean;
@property() public isWide!: boolean; @property() public isWide!: boolean;
@ -35,6 +36,96 @@ class HaConfigDashboard extends LitElement {
@property() public showAdvanced!: boolean; @property() public showAdvanced!: boolean;
protected render(): TemplateResult { protected render(): TemplateResult {
const content = html` <ha-config-section
.narrow=${this.narrow}
.isWide=${this.isWide}
>
<div slot="header">
${this.hass.localize("ui.panel.config.header")}
</div>
<div slot="introduction">
${this.hass.localize("ui.panel.config.introduction")}
</div>
${this.cloudStatus && isComponentLoaded(this.hass, "cloud")
? html`
<ha-card>
<ha-config-navigation
.hass=${this.hass}
.showAdvanced=${this.showAdvanced}
.pages=${[
{
component: "cloud",
path: "/config/cloud",
translationKey: "ui.panel.config.cloud.caption",
info: this.cloudStatus,
iconPath: mdiCloudLock,
},
]}
></ha-config-navigation>
</ha-card>
`
: ""}
${Object.values(configSections).map(
(section) => html`
<ha-card>
<ha-config-navigation
.hass=${this.hass}
.showAdvanced=${this.showAdvanced}
.pages=${section}
></ha-config-navigation>
</ha-card>
`
)}
${isComponentLoaded(this.hass, "zha")
? html`
<div class="promo-advanced">
${this.hass.localize(
"ui.panel.config.integration_panel_move.missing_zha",
"integrations_page",
html`<a href="/config/integrations">
${this.hass.localize(
"ui.panel.config.integration_panel_move.link_integration_page"
)}
</a>`
)}
</div>
`
: ""}
${isComponentLoaded(this.hass, "zwave")
? html`
<div class="promo-advanced">
${this.hass.localize(
"ui.panel.config.integration_panel_move.missing_zwave",
"integrations_page",
html`<a href="/config/integrations">
${this.hass.localize(
"ui.panel.config.integration_panel_move.link_integration_page"
)}
</a>`
)}
</div>
`
: ""}
${!this.showAdvanced
? html`
<div class="promo-advanced">
${this.hass.localize("ui.panel.config.advanced_mode.hint_enable")}
<a href="/profile"
>${this.hass.localize(
"ui.panel.config.advanced_mode.link_profile_page"
)}</a
>.
</div>
`
: ""}
</ha-config-section>`;
if (!this.narrow) {
return content;
}
return html` return html`
<app-header-layout has-scrolling-region> <app-header-layout has-scrolling-region>
<app-header fixed slot="header"> <app-header fixed slot="header">
@ -46,90 +137,7 @@ class HaConfigDashboard extends LitElement {
</app-toolbar> </app-toolbar>
</app-header> </app-header>
<ha-config-section .narrow=${this.narrow} .isWide=${this.isWide}> ${content}
<div slot="header">
${this.hass.localize("ui.panel.config.header")}
</div>
<div slot="introduction">
${this.hass.localize("ui.panel.config.introduction")}
</div>
${this.cloudStatus && isComponentLoaded(this.hass, "cloud")
? html`
<ha-card>
<ha-config-navigation
.hass=${this.hass}
.showAdvanced=${this.showAdvanced}
.pages=${[
{
component: "cloud",
path: "/config/cloud",
translationKey: "ui.panel.config.cloud.caption",
info: this.cloudStatus,
iconPath: mdiCloudLock,
},
]}
></ha-config-navigation>
</ha-card>
`
: ""}
${Object.values(configSections).map(
(section) => html`
<ha-card>
<ha-config-navigation
.hass=${this.hass}
.showAdvanced=${this.showAdvanced}
.pages=${section}
></ha-config-navigation>
</ha-card>
`
)}
${isComponentLoaded(this.hass, "zha")
? html`
<div class="promo-advanced">
${this.hass.localize(
"ui.panel.config.integration_panel_move.missing_zha",
"integrations_page",
html`<a href="/config/integrations">
${this.hass.localize(
"ui.panel.config.integration_panel_move.link_integration_page"
)}
</a>`
)}
</div>
`
: ""}
${isComponentLoaded(this.hass, "zwave")
? html`
<div class="promo-advanced">
${this.hass.localize(
"ui.panel.config.integration_panel_move.missing_zwave",
"integrations_page",
html`<a href="/config/integrations">
${this.hass.localize(
"ui.panel.config.integration_panel_move.link_integration_page"
)}
</a>`
)}
</div>
`
: ""}
${!this.showAdvanced
? html`
<div class="promo-advanced">
${this.hass.localize(
"ui.panel.config.advanced_mode.hint_enable"
)}
<a href="/profile"
>${this.hass.localize(
"ui.panel.config.advanced_mode.link_profile_page"
)}</a
>.
</div>
`
: ""}
</ha-config-section>
</app-header-layout> </app-header-layout>
`; `;
} }
@ -145,6 +153,9 @@ class HaConfigDashboard extends LitElement {
margin-bottom: 24px; margin-bottom: 24px;
} }
ha-config-section { ha-config-section {
margin-top: -12px;
}
:host([narrow]) ha-config-section {
margin-top: -20px; margin-top: -20px;
} }
ha-card { ha-card {

View File

@ -232,6 +232,9 @@ class DialogMQTTDeviceDebugInfo extends LitElement {
.triggerlistitem { .triggerlistitem {
margin-bottom: 12px; margin-bottom: 12px;
} }
ha-formfield {
display: block;
}
`, `,
]; ];
} }

View File

@ -318,6 +318,9 @@ export class DialogLovelaceDashboardDetail extends LitElement {
ha-switch { ha-switch {
padding: 16px 0; padding: 16px 0;
} }
ha-formfield {
display: block;
}
`, `,
]; ];
} }

View File

@ -59,12 +59,14 @@ export class HaPanelLogbook extends LitElement {
start.setHours(start.getHours() - 2); start.setHours(start.getHours() - 2);
start.setMinutes(0); start.setMinutes(0);
start.setSeconds(0); start.setSeconds(0);
start.setMilliseconds(0);
this._startDate = start; this._startDate = start;
const end = new Date(); const end = new Date();
end.setHours(end.getHours() + 1); end.setHours(end.getHours() + 1);
end.setMinutes(0); end.setMinutes(0);
end.setSeconds(0); end.setSeconds(0);
end.setMilliseconds(0);
this._endDate = end; this._endDate = end;
} }

View File

@ -136,19 +136,12 @@ export class HuiCardOptions extends LitElement {
color: var(--disabled-text-color); color: var(--disabled-text-color);
} }
paper-item.header { mwc-list-item {
color: var(--primary-text-color);
text-transform: uppercase;
font-weight: 500;
font-size: 14px;
}
paper-item {
cursor: pointer; cursor: pointer;
white-space: nowrap; white-space: nowrap;
} }
paper-item.delete-item { mwc-list-item.delete-item {
color: var(--error-color); color: var(--error-color);
} }
`; `;

View File

@ -209,6 +209,7 @@ export class HuiDialogEditCard extends LitElement {
<ha-circular-progress <ha-circular-progress
active active
alt="Saving" alt="Saving"
size="small"
></ha-circular-progress> ></ha-circular-progress>
` `
: this.hass!.localize("ui.common.save")} : this.hass!.localize("ui.common.save")}
@ -291,8 +292,6 @@ export class HuiDialogEditCard extends LitElement {
} }
mwc-button ha-circular-progress { mwc-button ha-circular-progress {
width: 14px;
height: 14px;
margin-right: 20px; margin-right: 20px;
} }
.hidden { .hidden {

View File

@ -107,11 +107,11 @@ export class HuiButtonCardEditor extends LitElement
${configElementStyle} ${configElementStyle}
<div class="card-config"> <div class="card-config">
<ha-entity-picker <ha-entity-picker
.label="${this.hass.localize( .label="${this.hass.localize(
"ui.panel.lovelace.editor.card.generic.entity" "ui.panel.lovelace.editor.card.generic.entity"
)} (${this.hass.localize( )} (${this.hass.localize(
"ui.panel.lovelace.editor.card.config.optional" "ui.panel.lovelace.editor.card.config.optional"
)})" )})"
.hass=${this.hass} .hass=${this.hass}
.value="${this._entity}" .value="${this._entity}"
.configValue=${"entity"} .configValue=${"entity"}
@ -120,11 +120,11 @@ export class HuiButtonCardEditor extends LitElement
></ha-entity-picker> ></ha-entity-picker>
<div class="side-by-side"> <div class="side-by-side">
<paper-input <paper-input
.label="${this.hass.localize( .label="${this.hass.localize(
"ui.panel.lovelace.editor.card.generic.name" "ui.panel.lovelace.editor.card.generic.name"
)} (${this.hass.localize( )} (${this.hass.localize(
"ui.panel.lovelace.editor.card.config.optional" "ui.panel.lovelace.editor.card.config.optional"
)})" )})"
.value="${this._name}" .value="${this._name}"
.configValue="${"name"}" .configValue="${"name"}"
@value-changed="${this._valueChanged}" @value-changed="${this._valueChanged}"
@ -133,49 +133,51 @@ export class HuiButtonCardEditor extends LitElement
.label="${this.hass.localize( .label="${this.hass.localize(
"ui.panel.lovelace.editor.card.generic.icon" "ui.panel.lovelace.editor.card.generic.icon"
)} (${this.hass.localize( )} (${this.hass.localize(
"ui.panel.lovelace.editor.card.config.optional" "ui.panel.lovelace.editor.card.config.optional"
)})" )})"
.value=${this._icon} .value=${this._icon}
.placeholder=${ .placeholder=${this._icon ||
this._icon || stateIcon(this.hass.states[this._entity]) stateIcon(this.hass.states[this._entity])}
}
.configValue=${"icon"} .configValue=${"icon"}
@value-changed=${this._valueChanged} @value-changed=${this._valueChanged}
></ha-icon-input> ></ha-icon-input>
</div> </div>
<div class="side-by-side"> <div class="side-by-side">
<ha-formfield .label=${this.hass.localize( <ha-formfield
"ui.panel.lovelace.editor.card.generic.show_name" .label=${this.hass.localize(
)}> "ui.panel.lovelace.editor.card.generic.show_name"
<ha-switch )}
.checked="${this._config!.show_name !== false}"
.configValue="${"show_name"}"
@change="${this._valueChanged}"
></ha-switch
> >
</ha-formfield> <ha-switch
<ha-formfield .label=${this.hass.localize( .checked="${this._config!.show_name !== false}"
"ui.panel.lovelace.editor.card.generic.show_icon" .configValue="${"show_name"}"
)}> @change="${this._valueChanged}"
<ha-switch ></ha-switch>
.checked="${this._config!.show_icon !== false}" </ha-formfield>
.configValue="${"show_icon"}" <ha-formfield
@change="${this._valueChanged}" .label=${this.hass.localize(
></ha-switch "ui.panel.lovelace.editor.card.generic.show_icon"
></ha-formfield> )}
>
<ha-switch
.checked="${this._config!.show_icon !== false}"
.configValue="${"show_icon"}"
@change="${this._valueChanged}"
></ha-switch>
</ha-formfield>
</div> </div>
<div class="side-by-side"> <div class="side-by-side">
<paper-input <paper-input
.label="${this.hass.localize( .label="${this.hass.localize(
"ui.panel.lovelace.editor.card.generic.icon_height" "ui.panel.lovelace.editor.card.generic.icon_height"
)} (${this.hass.localize( )} (${this.hass.localize(
"ui.panel.lovelace.editor.card.config.optional" "ui.panel.lovelace.editor.card.config.optional"
)})" )})"
.value="${this._icon_height}" .value="${this._icon_height}"
.configValue="${"icon_height"}" .configValue="${"icon_height"}"
@value-changed="${this._valueChanged}" @value-changed="${this._valueChanged}"
type="number" type="number"
><div class="suffix" slot="suffix">px</div> ><div class="suffix" slot="suffix">px</div>
</paper-input> </paper-input>
<hui-theme-select-editor <hui-theme-select-editor
.hass=${this.hass} .hass=${this.hass}
@ -183,16 +185,14 @@ export class HuiButtonCardEditor extends LitElement
.configValue="${"theme"}" .configValue="${"theme"}"
@value-changed="${this._valueChanged}" @value-changed="${this._valueChanged}"
></hui-theme-select-editor> ></hui-theme-select-editor>
</paper-input>
</div> </div>
<div class="side-by-side"> <div class="side-by-side">
<hui-action-editor <hui-action-editor
.label="${this.hass.localize( .label="${this.hass.localize(
"ui.panel.lovelace.editor.card.generic.tap_action" "ui.panel.lovelace.editor.card.generic.tap_action"
)} (${this.hass.localize( )} (${this.hass.localize(
"ui.panel.lovelace.editor.card.config.optional" "ui.panel.lovelace.editor.card.config.optional"
)})" )})"
.hass=${this.hass} .hass=${this.hass}
.config="${this._tap_action}" .config="${this._tap_action}"
.actions="${actions}" .actions="${actions}"
@ -200,11 +200,11 @@ export class HuiButtonCardEditor extends LitElement
@action-changed="${this._valueChanged}" @action-changed="${this._valueChanged}"
></hui-action-editor> ></hui-action-editor>
<hui-action-editor <hui-action-editor
.label="${this.hass.localize( .label="${this.hass.localize(
"ui.panel.lovelace.editor.card.generic.hold_action" "ui.panel.lovelace.editor.card.generic.hold_action"
)} (${this.hass.localize( )} (${this.hass.localize(
"ui.panel.lovelace.editor.card.config.optional" "ui.panel.lovelace.editor.card.config.optional"
)})" )})"
.hass=${this.hass} .hass=${this.hass}
.config="${this._hold_action}" .config="${this._hold_action}"
.actions="${actions}" .actions="${actions}"

View File

@ -133,11 +133,11 @@ export class HuiViewEditor extends LitElement {
@change=${this._valueChanged} @change=${this._valueChanged}
></ha-switch ></ha-switch
></ha-formfield> ></ha-formfield>
<span class="panel" <span class="panel">
>${this.hass.localize( ${this.hass.localize(
"ui.panel.lovelace.editor.view.panel_mode.description" "ui.panel.lovelace.editor.view.panel_mode.description"
)}</span )}
> </span>
</div> </div>
`; `;
} }
@ -181,6 +181,9 @@ export class HuiViewEditor extends LitElement {
.panel { .panel {
color: var(--secondary-text-color); color: var(--secondary-text-color);
} }
ha-formfield {
display: block;
}
`; `;
} }
} }

View File

@ -527,7 +527,7 @@
}, },
"date-range-picker": { "date-range-picker": {
"end_date": "Fecha de finalización", "end_date": "Fecha de finalización",
"select": "Seleccione", "select": "Seleccionar",
"start_date": "Fecha de inicio" "start_date": "Fecha de inicio"
}, },
"device-picker": { "device-picker": {

View File

@ -2198,6 +2198,10 @@
"description": "La scheda Pila Orizzontale consente di raggruppare insieme più schede, in modo che siano sempre l'una accanto all'altra nello spazio di una colonna.", "description": "La scheda Pila Orizzontale consente di raggruppare insieme più schede, in modo che siano sempre l'una accanto all'altra nello spazio di una colonna.",
"name": "Pila orizzontale" "name": "Pila orizzontale"
}, },
"humidifier": {
"description": "La scheda Umidificatore fornisce il controllo della tua entità umidificatore, consentendo di modificare l'umidità e la modalità dell'entità.",
"name": "Umidificatore"
},
"iframe": { "iframe": {
"description": "La scheda Pagina Web consente di incorporare la pagina Web preferita direttamente in Home Assistant.", "description": "La scheda Pagina Web consente di incorporare la pagina Web preferita direttamente in Home Assistant.",
"name": "Pagina web" "name": "Pagina web"

View File

@ -48,6 +48,19 @@
"none": "Geen", "none": "Geen",
"sleep": "Slapen" "sleep": "Slapen"
} }
},
"humidifier": {
"mode": {
"auto": "Auto",
"away": "Afwezig",
"baby": "Baby",
"boost": "Boost",
"comfort": "Comfort",
"eco": "Eco",
"home": "Thuis",
"normal": "Normaal",
"sleep": "Slapen"
}
} }
}, },
"state_badge": { "state_badge": {
@ -388,6 +401,12 @@
"reverse": "Omkeren", "reverse": "Omkeren",
"speed": "Snelheid" "speed": "Snelheid"
}, },
"humidifier": {
"humidity": "Doel luchtvochtigheid",
"mode": "Modus",
"on_entity": "{name} aan",
"target_humidity_entity": "{name} doel luchtvochtigheid"
},
"light": { "light": {
"brightness": "Helderheid", "brightness": "Helderheid",
"color_temperature": "Kleurtemperatuur", "color_temperature": "Kleurtemperatuur",
@ -506,6 +525,11 @@
"clear": "Wis", "clear": "Wis",
"show_areas": "Toon gebieden" "show_areas": "Toon gebieden"
}, },
"date-range-picker": {
"end_date": "Einddatum",
"select": "Selecteer",
"start_date": "Startdatum"
},
"device-picker": { "device-picker": {
"clear": "Wis", "clear": "Wis",
"device": "Apparaat", "device": "Apparaat",
@ -695,6 +719,7 @@
"zha_device_info": { "zha_device_info": {
"buttons": { "buttons": {
"add": "Apparaten toevoegen via dit apparaat", "add": "Apparaten toevoegen via dit apparaat",
"clusters": "Clusters beheren",
"reconfigure": "Apparaat opnieuw configureren", "reconfigure": "Apparaat opnieuw configureren",
"remove": "Verwijder apparaat", "remove": "Verwijder apparaat",
"zigbee_information": "Zigbee-apparaathandtekening" "zigbee_information": "Zigbee-apparaathandtekening"
@ -744,7 +769,7 @@
"connection_lost": "Verbinding verbroken. Opnieuw verbinden...", "connection_lost": "Verbinding verbroken. Opnieuw verbinden...",
"service_call_failed": "Kan service {service} niet aanroepen", "service_call_failed": "Kan service {service} niet aanroepen",
"started": "Home Assistant is gestart!", "started": "Home Assistant is gestart!",
"starting": "Home Assistant is aan het opstarten, nog niet alles is beschikbaar tot dit is voltooid.", "starting": "Home Assistant is aan het opstarten. Gedurende het opstarten zal niet alles beschikbaar zijn.",
"triggered": "Geactiveerd {name}" "triggered": "Geactiveerd {name}"
}, },
"panel": { "panel": {
@ -1391,6 +1416,11 @@
"system_health_error": "De systeemstatus component is niet geladen. Voeg ' system_health: ' toe aan het configuratiebestand.", "system_health_error": "De systeemstatus component is niet geladen. Voeg ' system_health: ' toe aan het configuratiebestand.",
"title": "Info" "title": "Info"
}, },
"integration_panel_move": {
"link_integration_page": "integraties pagina",
"missing_zha": "Mis je de ZHA configuratie? Dit is verplaatst naar de ZHA integratie op de {integrations_page}.",
"missing_zwave": "Mis je de Z-Wave configuratie? Dit is verplaatst naar de Z-Wave integratie op de {integrations_page}."
},
"integrations": { "integrations": {
"add_integration": "Integratie toevoegen", "add_integration": "Integratie toevoegen",
"caption": "Integraties", "caption": "Integraties",
@ -1553,6 +1583,7 @@
} }
}, },
"mqtt": { "mqtt": {
"button": "Configureer",
"description_listen": "Luisteren naar onderwerp", "description_listen": "Luisteren naar onderwerp",
"description_publish": "Publiceer een pakket", "description_publish": "Publiceer een pakket",
"listening_to": "Luisteren naar", "listening_to": "Luisteren naar",
@ -1673,6 +1704,11 @@
"core": "Herlaad locatie en aanpassingen", "core": "Herlaad locatie en aanpassingen",
"group": "Herlaad groepen", "group": "Herlaad groepen",
"heading": "Configuratie herladen", "heading": "Configuratie herladen",
"input_boolean": "Herlaad input booleans",
"input_datetime": "Herlaad input date times",
"input_number": "Herlaad input numbers",
"input_select": "Herlaad input selects",
"input_text": "Herlaad input texts",
"introduction": "Sommige delen van Home Assistant kunnen opnieuw worden geladen zonder dat een herstart vereist is. Als je herladen gebruikt, wordt de huidige configuratie leeggemaakt en wordt de nieuwe geladen.", "introduction": "Sommige delen van Home Assistant kunnen opnieuw worden geladen zonder dat een herstart vereist is. Als je herladen gebruikt, wordt de huidige configuratie leeggemaakt en wordt de nieuwe geladen.",
"person": "Herlaad personen", "person": "Herlaad personen",
"scene": "Herlaad scenes", "scene": "Herlaad scenes",
@ -1732,13 +1768,15 @@
"system": "Systeem" "system": "Systeem"
} }
}, },
"users_privileges_note": "Gebruikersgroepen zijn nog werk in uitvoering. De gebruiker kan de instantie niet beheren via de interface. We zijn bezig met het uitvoeren van een audit om verzekerd te zijn dat de management API-eindpunten toegang voor beheerders correct beperken." "users_privileges_note": "Gebruikersgroepen zijn nog in ontwikkeling. De gebruiker kan de instantie niet beheren via de interface. We zijn bezig met het controleren van de API-eindpunten toegang voor beheerders."
}, },
"zha": { "zha": {
"add_device_page": { "add_device_page": {
"discovered_text": "Apparaten zullen hier verschijnen zodra ze zijn ontdekt.", "discovered_text": "Apparaten zullen hier verschijnen zodra ze zijn ontdekt.",
"discovery_text": "Gevonden apparaten worden hier weergegeven. Volg de instructies voor je apparaat of apparaten en plaats het apparaat of de apparaten in de koppelingsmodus.", "discovery_text": "Gevonden apparaten worden hier weergegeven. Volg de instructies voor je apparaat of apparaten en plaats het apparaat of de apparaten in de koppelingsmodus.",
"header": "Zigbee Home Automation - Apparaten toevoegen", "header": "Zigbee Home Automation - Apparaten toevoegen",
"no_devices_found": "Geen apparaten gevonden, zorg ervoor dat ze in de koppelingsmodus staan en dat gedurende het ontdekken ze actief zijn.",
"pairing_mode": "Zorg ervoor dat de apparaten in de koppelingsmodus staan. Kijk in de instructies van het apparaat hoe dit moet.",
"search_again": "Opnieuw zoeken", "search_again": "Opnieuw zoeken",
"spinner": "Zoeken naar ZHA Zigbee-apparaten ..." "spinner": "Zoeken naar ZHA Zigbee-apparaten ..."
}, },
@ -2001,11 +2039,23 @@
}, },
"history": { "history": {
"period": "Periode", "period": "Periode",
"ranges": {
"last_week": "Vorige week",
"this_week": "Deze week",
"today": "Vandaag",
"yesterday": "Gisteren"
},
"showing_entries": "Toon items voor" "showing_entries": "Toon items voor"
}, },
"logbook": { "logbook": {
"entries_not_found": "Geen logboekvermeldingen gevonden.", "entries_not_found": "Geen logboekvermeldingen gevonden.",
"period": "Periode", "period": "Periode",
"ranges": {
"last_week": "Vorige week",
"this_week": "Deze week",
"today": "Vandaag",
"yesterday": "Gisteren"
},
"showing_entries": "Toont gegevens van" "showing_entries": "Toont gegevens van"
}, },
"lovelace": { "lovelace": {
@ -2145,6 +2195,10 @@
"description": "Met de Horizontal Stack-kaart kun je meerdere kaarten op elkaar stapelen, zodat ze altijd naast elkaar in de ruimte van één kolom zitten.", "description": "Met de Horizontal Stack-kaart kun je meerdere kaarten op elkaar stapelen, zodat ze altijd naast elkaar in de ruimte van één kolom zitten.",
"name": "Horizontale stapel" "name": "Horizontale stapel"
}, },
"humidifier": {
"description": "De luchtbevochtiger-kaart geeft controle over de entiteit van de luchtbevochtiger. Hiermee kun je de vochtigheid en de modus van de entiteit wijzigen.",
"name": "Bevochtiger"
},
"iframe": { "iframe": {
"description": "Met de Webpage-kaart kunt u uw favoriete webpagina rechtstreeks in de Home Assistant insluiten.", "description": "Met de Webpage-kaart kunt u uw favoriete webpagina rechtstreeks in de Home Assistant insluiten.",
"name": "Webpagina" "name": "Webpagina"

View File

@ -48,6 +48,19 @@
"none": "無", "none": "無",
"sleep": "睡眠" "sleep": "睡眠"
} }
},
"humidifier": {
"mode": {
"auto": "自動模式",
"away": "離家模式",
"baby": "孩童模式",
"boost": "全速模式",
"comfort": "舒適模式",
"eco": "節能模式",
"home": "居家模式",
"normal": "一般模式",
"sleep": "睡眠模式"
}
} }
}, },
"state_badge": { "state_badge": {
@ -388,6 +401,12 @@
"reverse": "反向", "reverse": "反向",
"speed": "風速" "speed": "風速"
}, },
"humidifier": {
"humidity": "設定濕度",
"mode": "模式",
"on_entity": "{name} 已開啟",
"target_humidity_entity": "{name} 設定濕度"
},
"light": { "light": {
"brightness": "亮度", "brightness": "亮度",
"color_temperature": "色溫", "color_temperature": "色溫",
@ -2198,6 +2217,10 @@
"description": "水平排列面板可供將多個面板排列、同時顯示。", "description": "水平排列面板可供將多個面板排列、同時顯示。",
"name": "水平排列面板" "name": "水平排列面板"
}, },
"humidifier": {
"description": "加濕器面板可供控制加濕物件、可允許變更濕度與模式。",
"name": "加濕器"
},
"iframe": { "iframe": {
"description": "網頁面板可供於 Home Assistant 嵌入喜愛的網頁。", "description": "網頁面板可供於 Home Assistant 嵌入喜愛的網頁。",
"name": "網頁面板" "name": "網頁面板"

View File

@ -6683,10 +6683,10 @@ hmac-drbg@^1.0.0:
minimalistic-assert "^1.0.0" minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.1" minimalistic-crypto-utils "^1.0.1"
home-assistant-js-websocket@^5.4.0: home-assistant-js-websocket@^5.4.1:
version "5.4.0" version "5.4.1"
resolved "https://registry.yarnpkg.com/home-assistant-js-websocket/-/home-assistant-js-websocket-5.4.0.tgz#637321ba47138562716290404adfa921d8d525dc" resolved "https://registry.yarnpkg.com/home-assistant-js-websocket/-/home-assistant-js-websocket-5.4.1.tgz#3f677391b38e4feb24f1670e3a9b695767332a51"
integrity sha512-/sMJZwKTkoDvCljBTwGRiZy67ODZua/xYNH61n4zmX3Lcgb1D/zRDiJtwvW+g//BO/RAsNR5GulbUOdDrqmQlA== integrity sha512-FTVoO5yMSa2dy1ffZDvJy/r79VTjwFOzyP/bPld5lDHKbNyXC8wgqpn8Kdf5ZQISYJf1T1dfH+v2NYEngn5NgQ==
homedir-polyfill@^1.0.1: homedir-polyfill@^1.0.1:
version "1.0.3" version "1.0.3"