Merge pull request #3385 from home-assistant/dev

20190718.0
This commit is contained in:
Paulus Schoutsen 2019-07-18 14:07:04 -07:00 committed by GitHub
commit 95d6cbd130
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
19 changed files with 281 additions and 178 deletions

View File

@ -2,7 +2,7 @@ from setuptools import setup, find_packages
setup( setup(
name="home-assistant-frontend", name="home-assistant-frontend",
version="20190717.1", version="20190718.0",
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

@ -155,6 +155,15 @@ class StateHistoryChartLine extends LocalizeMixin(PolymerElement) {
domain === "climate" || domain === "climate" ||
domain === "water_heater" domain === "water_heater"
) { ) {
const isHeating =
domain === "climate"
? (state) => state.attributes.hvac_action === "heating"
: (state) => state.state === "heat";
const isCooling =
domain === "climate"
? (state) => state.attributes.hvac_action === "cooling"
: (state) => state.state === "cool";
// We differentiate between thermostats that have a target temperature // We differentiate between thermostats that have a target temperature
// range versus ones that have just a target temperature // range versus ones that have just a target temperature
@ -165,8 +174,8 @@ class StateHistoryChartLine extends LocalizeMixin(PolymerElement) {
state.attributes.target_temp_high !== state.attributes.target_temp_high !==
state.attributes.target_temp_low state.attributes.target_temp_low
); );
const hasHeat = states.states.some((state) => state.state === "heat"); const hasHeat = states.states.some(isHeating);
const hasCool = states.states.some((state) => state.state === "cool"); const hasCool = states.states.some(isCooling);
addColumn(name + " current temperature", true); addColumn(name + " current temperature", true);
if (hasHeat) { if (hasHeat) {
@ -192,10 +201,10 @@ class StateHistoryChartLine extends LocalizeMixin(PolymerElement) {
const curTemp = safeParseFloat(state.attributes.current_temperature); const curTemp = safeParseFloat(state.attributes.current_temperature);
const series = [curTemp]; const series = [curTemp];
if (hasHeat) { if (hasHeat) {
series.push(state.state === "heat" ? curTemp : null); series.push(isHeating(state) ? curTemp : null);
} }
if (hasCool) { if (hasCool) {
series.push(state.state === "cool" ? curTemp : null); series.push(isCooling(state) ? curTemp : null);
} }
if (hasTargetRange) { if (hasTargetRange) {
const targetHigh = safeParseFloat( const targetHigh = safeParseFloat(

View File

@ -12,7 +12,7 @@ export type HvacMode =
| "dry" | "dry"
| "fan_only"; | "fan_only";
export type HvacAction = "off" | "Heating" | "cooling" | "drying" | "idle"; export type HvacAction = "off" | "heating" | "cooling" | "drying" | "idle";
export type ClimateEntity = HassEntityBase & { export type ClimateEntity = HassEntityBase & {
attributes: HassEntityAttributeBase & { attributes: HassEntityAttributeBase & {

View File

@ -4,6 +4,13 @@ export interface ZWaveNetworkStatus {
state: number; state: number;
} }
export interface ZWaveValue {
index: number;
instance: number;
label: string;
poll_intensity: number;
}
export const ZWAVE_NETWORK_STATE_STOPPED = 0; export const ZWAVE_NETWORK_STATE_STOPPED = 0;
export const ZWAVE_NETWORK_STATE_FAILED = 1; export const ZWAVE_NETWORK_STATE_FAILED = 1;
export const ZWAVE_NETWORK_STATE_STARTED = 5; export const ZWAVE_NETWORK_STATE_STARTED = 5;
@ -16,3 +23,6 @@ export const fetchNetworkStatus = (
hass.callWS({ hass.callWS({
type: "zwave/network_status", type: "zwave/network_status",
}); });
export const fetchValues = (hass: HomeAssistant, nodeId: number) =>
hass.callApi<ZWaveValue[]>("GET", `zwave/values/${nodeId}`);

View File

@ -1,121 +0,0 @@
import "@polymer/paper-dropdown-menu/paper-dropdown-menu";
import "@polymer/paper-item/paper-item";
import "@polymer/paper-listbox/paper-listbox";
import { html } from "@polymer/polymer/lib/utils/html-tag";
import { PolymerElement } from "@polymer/polymer/polymer-element";
import "../../../components/buttons/ha-call-service-button";
import "../../../components/ha-card";
class ZwaveValues extends PolymerElement {
static get template() {
return html`
<style include="iron-flex ha-style">
.content {
margin-top: 24px;
}
ha-card {
margin: 0 auto;
max-width: 600px;
}
.device-picker {
@apply --layout-horizontal;
@apply --layout-center-center;
padding-left: 24px;
padding-right: 24px;
padding-bottom: 24px;
}
.help-text {
padding-left: 24px;
padding-right: 24px;
}
</style>
<div class="content">
<ha-card header="Node Values">
<div class="device-picker">
<paper-dropdown-menu label="Value" dynamic-align="" class="flex">
<paper-listbox
slot="dropdown-content"
selected="{{_selectedValue}}"
>
<template is="dom-repeat" items="[[values]]" as="item">
<paper-item>[[_computeSelectCaption(item)]]</paper-item>
</template>
</paper-listbox>
</paper-dropdown-menu>
</div>
</ha-card>
</div>
`;
}
static get properties() {
return {
hass: Object,
nodes: Array,
values: Array,
selectedNode: {
type: Number,
observer: "selectedNodeChanged",
},
_selectedValue: {
type: Number,
value: -1,
observer: "_selectedValueChanged",
},
};
}
ready() {
super.ready();
this.addEventListener("hass-service-called", (ev) =>
this.serviceCalled(ev)
);
}
serviceCalled(ev) {
if (ev.detail.success) {
setTimeout(() => {
this._refreshValues(this.selectedNode);
}, 5000);
}
}
_computeSelectCaption(item) {
return `${item.value.label} (Instance: ${item.value.instance}, Index: ${
item.value.index
})`;
}
async _refreshValues(selectedNode) {
const valueData = [];
const values = await this.hass.callApi(
"GET",
`zwave/values/${this.nodes[selectedNode].attributes.node_id}`
);
Object.keys(values).forEach((key) => {
valueData.push({
key,
value: values[key],
});
});
this.setProperties({ values: valueData });
this._selectedValueChanged(this._selectedValue);
}
_selectedValueChanged() {}
selectedNodeChanged(selectedNode) {
if (selectedNode === -1) return;
this.setProperties({ _selectedValue: -1 });
}
}
customElements.define("zwave-values", ZwaveValues);

View File

@ -0,0 +1,119 @@
import "@polymer/paper-dropdown-menu/paper-dropdown-menu";
import "@polymer/paper-item/paper-item";
import "@polymer/paper-listbox/paper-listbox";
import {
css,
CSSResult,
customElement,
html,
LitElement,
property,
TemplateResult,
} from "lit-element";
import { haStyle } from "../../../resources/styles";
import { HomeAssistant } from "../../../types";
import "../../../components/buttons/ha-call-service-button";
import "../../../components/ha-card";
import { ZWaveValue } from "../../../data/zwave";
@customElement("zwave-values")
export class ZwaveValues extends LitElement {
@property() public hass!: HomeAssistant;
@property() private _values: ZWaveValue[] = [];
@property() private _selectedValue: number = -1;
protected render(): TemplateResult | void {
return html`
<div class="content">
<ha-card
.header=${this.hass.localize("ui.panel.config.zwave.values.header")}
>
<div class="device-picker">
<paper-dropdown-menu
label=${this.hass.localize("ui.panel.config.zwave.common.value")}
dynamic-align
class="flex"
>
<paper-listbox
slot="dropdown-content"
.selected=${this._selectedValue}
>
${this._values.map(
(item) => html`
<paper-item
>${item.label}
(${this.hass.localize(
"ui.panel.config.zwave.common.instance"
)}:
${item.instance},
${this.hass.localize(
"ui.panel.config.zwave.common.index"
)}:
${item.index})</paper-item
>
`
)}
</paper-listbox>
</paper-dropdown-menu>
</div>
</ha-card>
</div>
`;
}
static get styles(): CSSResult[] {
return [
haStyle,
css`
.content {
margin-top: 24px;
}
ha-card {
margin: 0 auto;
max-width: 600px;
}
.device-picker {
@apply --layout-horizontal;
@apply --layout-center-center;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-ms-flex-direction: row;
-webkit-flex-direction: row;
flex-direction: row;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
padding-left: 24px;
padding-right: 24px;
padding-bottom: 24px;
}
.flex {
-ms-flex: 1 1 0.000000001px;
-webkit-flex: 1;
flex: 1;
-webkit-flex-basis: 0.000000001px;
flex-basis: 0.000000001px;
}
.help-text {
padding-left: 24px;
padding-right: 24px;
}
`,
];
}
}
declare global {
interface HTMLElementTagNameMap {
"zwave-values": ZwaveValues;
}
}

View File

@ -116,7 +116,8 @@ export class HuiThermostatCard extends LitElement implements LovelaceCard {
[mode]: true, [mode]: true,
large: this._broadCard!, large: this._broadCard!,
small: !this._broadCard, small: !this._broadCard,
})}"> })}"
>
<div id="root"> <div id="root">
<paper-icon-button <paper-icon-button
icon="hass:dots-vertical" icon="hass:dots-vertical"
@ -125,28 +126,26 @@ export class HuiThermostatCard extends LitElement implements LovelaceCard {
></paper-icon-button> ></paper-icon-button>
<div id="thermostat"></div> <div id="thermostat"></div>
<div id="tooltip"> <div id="tooltip">
<div class="title">${this._config.name || <div class="title">
computeStateName(stateObj)}</div> ${this._config.name || computeStateName(stateObj)}
</div>
<div class="current-temperature"> <div class="current-temperature">
<span class="current-temperature-text"> <span class="current-temperature-text">
${stateObj.attributes.current_temperature} ${stateObj.attributes.current_temperature}
${ ${stateObj.attributes.current_temperature
stateObj.attributes.current_temperature ? html`
? html` <span class="uom"
<span class="uom" >${this.hass.config.unit_system.temperature}</span
>${this.hass.config.unit_system.temperature}</span >
> `
` : ""}
: ""
}
</span> </span>
</div> </div>
<div class="climate-info"> <div class="climate-info">
<div id="set-temperature"></div> <div id="set-temperature"></div>
<div class="current-mode"> <div class="current-mode">
${this.hass!.localize(`state.climate.${stateObj.state}`)} ${this.hass!.localize(`state.climate.${stateObj.state}`)}
${ ${stateObj.attributes.preset_mode
stateObj.attributes.preset_mode
? html` ? html`
- -
${this.hass!.localize( ${this.hass!.localize(
@ -155,13 +154,13 @@ export class HuiThermostatCard extends LitElement implements LovelaceCard {
}` }`
) || stateObj.attributes.preset_mode} ) || stateObj.attributes.preset_mode}
` `
: "" : ""}
} </div>
</div> <div class="modes">
<div class="modes"> ${stateObj.attributes.hvac_modes.map((modeItem) =>
${stateObj.attributes.hvac_modes.map((modeItem) => this._renderIcon(modeItem, mode)
this._renderIcon(modeItem, mode) )}
)} </div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -915,6 +915,11 @@
"zwave": { "zwave": {
"caption": "Z-Wave", "caption": "Z-Wave",
"description": "Manage your Z-Wave network", "description": "Manage your Z-Wave network",
"common": {
"value": "Value",
"instance": "Instance",
"index": "Index"
},
"network_management": { "network_management": {
"header": "Z-Wave Network Management", "header": "Z-Wave Network Management",
"introduction": "Run commands that affect the Z-Wave network. You won't get feedback on whether most commands succeeded, but you can check the OZW Log to try to find out." "introduction": "Run commands that affect the Z-Wave network. You won't get feedback on whether most commands succeeded, but you can check the OZW Log to try to find out."
@ -927,6 +932,9 @@
"network_started_note_some_queried": "Awake nodes have been queried. Sleeping nodes will be queried when they wake.", "network_started_note_some_queried": "Awake nodes have been queried. Sleeping nodes will be queried when they wake.",
"network_started_note_all_queried": "All nodes have been queried." "network_started_note_all_queried": "All nodes have been queried."
}, },
"values": {
"header": "Node Values"
},
"services": { "services": {
"start_network": "Start Network", "start_network": "Start Network",
"stop_network": "Stop Network", "stop_network": "Stop Network",

View File

@ -141,7 +141,8 @@
"high_demand": "Alta potència", "high_demand": "Alta potència",
"heat_pump": "Bomba de calor", "heat_pump": "Bomba de calor",
"gas": "Gas", "gas": "Gas",
"manual": "Manual" "manual": "Manual",
"heat_cool": "Escalfar\/Refredar"
}, },
"configurator": { "configurator": {
"configure": "Configurar", "configure": "Configurar",
@ -397,7 +398,7 @@
"description": "Personalitza les entitats", "description": "Personalitza les entitats",
"picker": { "picker": {
"header": "Personalització", "header": "Personalització",
"introduction": "Modificació dels atributs d'entitat. Les personalitzacions afegides\/modificades apareixeran immediatament. Les personalitzacions eliminades tindran efecte quan l'entitat s'actualitzi." "introduction": "Personalitza els atributs de les entitats al teu gust. Les personalitzacions afegides\/modificades apareixeran immediatament, les que s'hagin eliminat tindran efecte quan l'entitat s'actualitzi."
} }
}, },
"automation": { "automation": {

View File

@ -319,7 +319,7 @@
"title": "Begivenheder" "title": "Begivenheder"
}, },
"templates": { "templates": {
"title": "Skabeloner" "title": "Skabelon"
}, },
"mqtt": { "mqtt": {
"title": "MQTT" "title": "MQTT"

View File

@ -141,7 +141,8 @@
"high_demand": "Hoher Verbrauch", "high_demand": "Hoher Verbrauch",
"heat_pump": "Wärmepumpe", "heat_pump": "Wärmepumpe",
"gas": "Gas", "gas": "Gas",
"manual": "Manuell" "manual": "Manuell",
"heat_cool": "Heizen\/Kühlen"
}, },
"configurator": { "configurator": {
"configure": "Konfigurieren", "configure": "Konfigurieren",

View File

@ -141,7 +141,8 @@
"high_demand": "Forte demande", "high_demand": "Forte demande",
"heat_pump": "Pompe à chaleur", "heat_pump": "Pompe à chaleur",
"gas": "Gaz", "gas": "Gaz",
"manual": "Manuel" "manual": "Manuel",
"heat_cool": "Chaud\/Froid"
}, },
"configurator": { "configurator": {
"configure": "Configurer", "configure": "Configurer",
@ -323,6 +324,9 @@
}, },
"mqtt": { "mqtt": {
"title": "MQTT" "title": "MQTT"
},
"info": {
"title": "Info"
} }
} }
}, },
@ -586,7 +590,10 @@
}, },
"zwave": { "zwave": {
"caption": "Z-Wave", "caption": "Z-Wave",
"description": "Gérez votre réseau Z-Wave" "description": "Gérez votre réseau Z-Wave",
"services": {
"save_config": "Enregistrer la configuration"
}
}, },
"users": { "users": {
"caption": "Utilisateurs", "caption": "Utilisateurs",
@ -779,7 +786,8 @@
"step_done": "Configuration terminée pour {step}", "step_done": "Configuration terminée pour {step}",
"close": "Fermer", "close": "Fermer",
"submit": "Envoyer" "submit": "Envoyer"
} },
"logout": "Déconnexion"
}, },
"page-authorize": { "page-authorize": {
"initializing": "Initialisation", "initializing": "Initialisation",

View File

@ -118,13 +118,15 @@
"eco": "Sparnaður", "eco": "Sparnaður",
"heat_pump": "Hitadæla", "heat_pump": "Hitadæla",
"gas": "Gas", "gas": "Gas",
"manual": "Handvirkt" "manual": "Handvirkt",
"heat_cool": "Hita\/Kæla"
}, },
"cover": { "cover": {
"open": "Opin", "open": "Opin",
"opening": "Opna", "opening": "Opna",
"closed": "Lokað", "closed": "Lokað",
"closing": "Loka" "closing": "Loka",
"stopped": "Stöðvuð"
}, },
"device_tracker": { "device_tracker": {
"home": "Heima", "home": "Heima",
@ -222,11 +224,14 @@
"windy-variant": "Vindasamt" "windy-variant": "Vindasamt"
}, },
"vacuum": { "vacuum": {
"cleaning": "Að ryksuga",
"docked": "í tengikví",
"error": "Villa", "error": "Villa",
"idle": "Aðgerðalaus", "idle": "Aðgerðalaus",
"off": "Slökkt", "off": "Slökkt",
"on": "Í gangi", "on": "Í gangi",
"paused": "Í bið" "paused": "Í bið",
"returning": "Á leið tilbaka í tengikví"
}, },
"timer": { "timer": {
"active": "virkur", "active": "virkur",
@ -244,6 +249,9 @@
"error": "Villa", "error": "Villa",
"entity_not_found": "Eining fannst ekki" "entity_not_found": "Eining fannst ekki"
}, },
"alarm_control_panel": {
"triggered": "Kveik"
},
"device_tracker": { "device_tracker": {
"home": "Heima", "home": "Heima",
"not_home": "Fjarverandi" "not_home": "Fjarverandi"
@ -369,10 +377,14 @@
"unsaved_confirm": "Þú ert með óvistaðar breytingar. Ertu viss um að þú viljir fara?", "unsaved_confirm": "Þú ert með óvistaðar breytingar. Ertu viss um að þú viljir fara?",
"alias": "Nafn", "alias": "Nafn",
"triggers": { "triggers": {
"header": "Kveikjur",
"introduction": "Kveikjur sjá um að ræsa sjálfvirkni reglur. Það er mögulegt að tilgreina margar kveikjur fyrir sömu regluna. Þegar kveikja er ræst þá mun Home Assistant sannreyna skilyrðin ef einhver og kalla á aðgerðina.",
"add": "Bæta við kveikju",
"duplicate": "Fjölfalda", "duplicate": "Fjölfalda",
"delete": "Eyða", "delete": "Eyða",
"delete_confirm": "Ert þú viss um að þú viljir eyða?", "delete_confirm": "Ert þú viss um að þú viljir eyða?",
"unsupported_platform": "Vettvangur ekki studdur: {platform}", "unsupported_platform": "Vettvangur ekki studdur: {platform}",
"type_select": "Gerð kveikju",
"type": { "type": {
"event": { "event": {
"label": "Viðburður", "label": "Viðburður",
@ -396,7 +408,8 @@
}, },
"numeric_state": { "numeric_state": {
"above": "Yfir", "above": "Yfir",
"below": "Undir" "below": "Undir",
"value_template": "Gildissniðmát (valfrjálst)"
}, },
"sun": { "sun": {
"label": "Sól", "label": "Sól",
@ -404,6 +417,10 @@
"sunrise": "Sólarupprás", "sunrise": "Sólarupprás",
"sunset": "Sólsetur" "sunset": "Sólsetur"
}, },
"template": {
"label": "Sniðmát",
"value_template": "Gildissniðmát"
},
"time": { "time": {
"label": "Tími", "label": "Tími",
"at": "Þann" "at": "Þann"
@ -434,7 +451,8 @@
"enter": "Koma", "enter": "Koma",
"leave": "Brottför" "leave": "Brottför"
} }
} },
"learn_more": "Læra meira um gikki"
}, },
"conditions": { "conditions": {
"header": "Skilyrði", "header": "Skilyrði",
@ -451,7 +469,8 @@
}, },
"numeric_state": { "numeric_state": {
"above": "Yfir", "above": "Yfir",
"below": "Undir" "below": "Undir",
"value_template": "Gildissniðmát (valfrjálst)"
}, },
"sun": { "sun": {
"label": "Sól", "label": "Sól",
@ -460,6 +479,10 @@
"sunrise": "Sólarupprás", "sunrise": "Sólarupprás",
"sunset": "Sólsetur" "sunset": "Sólsetur"
}, },
"template": {
"label": "Sniðmát",
"value_template": "Gildissniðmát"
},
"time": { "time": {
"label": "Tími", "label": "Tími",
"after": "Eftir", "after": "Eftir",
@ -493,13 +516,15 @@
}, },
"wait_template": { "wait_template": {
"label": "Bið", "label": "Bið",
"wait_template": "Bið skapalón", "wait_template": "Bið sniðmát",
"timeout": "Tímamörk (valfrjálst)" "timeout": "Tímamörk (valfrjálst)"
}, },
"condition": { "condition": {
"label": "Skilyrði" "label": "Skilyrði"
}, },
"event": { "event": {
"label": "Skjóta viðburði",
"event": "Viðburður:",
"service_data": "Þjónustu gögn" "service_data": "Þjónustu gögn"
} }
}, },
@ -522,11 +547,15 @@
"network_status": { "network_status": {
"network_stopped": "Z-Wave net stöðvað", "network_stopped": "Z-Wave net stöðvað",
"network_starting": "Ræsi Z-Wave net...", "network_starting": "Ræsi Z-Wave net...",
"network_starting_note": "Þetta gæti tekið smá stund, veltur á stærð netsins.",
"network_started": "Z-Wave net ræst" "network_started": "Z-Wave net ræst"
}, },
"services": { "services": {
"start_network": "Ræsa net", "start_network": "Ræsa net",
"stop_network": "Söðva net", "stop_network": "Stöðva net",
"heal_network": "Lækna net",
"test_network": "Prófa net",
"soft_reset": "Mjúk endurstilling",
"save_config": "Vista stillingar", "save_config": "Vista stillingar",
"cancel_command": "Hætta við skipun" "cancel_command": "Hætta við skipun"
} }
@ -832,6 +861,7 @@
}, },
"core-config": { "core-config": {
"intro": "Hæ {name}, velkomin(n) í Home Assistant. Hvað á heimilið þitt að heita?", "intro": "Hæ {name}, velkomin(n) í Home Assistant. Hvað á heimilið þitt að heita?",
"intro_location": "Okkur langar að vita hvar þú býrð. Þessar upplýsingar munu hjálpa varðandi upplýsingar og uppsetningu á sólar-tengdri sjálfvirkni. Þessum upplýsingum er aldrei deilt út fyrir þitt net.",
"location_name_default": "Heima", "location_name_default": "Heima",
"button_detect": "Uppgötva", "button_detect": "Uppgötva",
"finish": "Næsta" "finish": "Næsta"
@ -923,8 +953,12 @@
"config": { "config": {
"arsaboo": { "arsaboo": {
"names": { "names": {
"upstairs": "Uppi",
"family_room": "Fjölskyldurými", "family_room": "Fjölskyldurými",
"kitchen": "Eldhús", "kitchen": "Eldhús",
"patio": "Verönd",
"hallway": "Gangur",
"master_bedroom": "Hjónaherbergi",
"left": "Vinstri", "left": "Vinstri",
"right": "Hægri", "right": "Hægri",
"mirror": "Spegill" "mirror": "Spegill"
@ -932,6 +966,8 @@
"labels": { "labels": {
"lights": "Ljós", "lights": "Ljós",
"information": "Upplýsingar", "information": "Upplýsingar",
"morning_commute": "Morgunferðalag",
"commute_home": "Á leiðinni heim",
"entertainment": "Skemmtun", "entertainment": "Skemmtun",
"activity": "Virkni", "activity": "Virkni",
"hdmi_input": "HDMI inntak", "hdmi_input": "HDMI inntak",
@ -1014,6 +1050,10 @@
"code": "Kóði", "code": "Kóði",
"clear_code": "Hreinsa" "clear_code": "Hreinsa"
}, },
"automation": {
"last_triggered": "Síðast kveikt",
"trigger": "Kveikja"
},
"cover": { "cover": {
"position": "Staðsetning" "position": "Staðsetning"
}, },
@ -1035,9 +1075,13 @@
"climate": { "climate": {
"currently": "Er núna", "currently": "Er núna",
"on_off": "Kveikt \/ slökkt", "on_off": "Kveikt \/ slökkt",
"target_temperature": "Viðmiðunar hitastig",
"target_humidity": "Viðmiðunar rakastig",
"operation": "Aðgerð", "operation": "Aðgerð",
"fan_mode": "Viftuhamur", "fan_mode": "Viftuhamur",
"swing_mode": "Sveifluhamur" "swing_mode": "Sveifluhamur",
"away_mode": "Fjarverandi hamur",
"preset_mode": "Forstilling"
}, },
"lock": { "lock": {
"code": "Kóði", "code": "Kóði",
@ -1057,7 +1101,8 @@
"currently": "Er núna", "currently": "Er núna",
"on_off": "Kveikt \/ slökkt", "on_off": "Kveikt \/ slökkt",
"target_temperature": "Viðmiðunarhitastig", "target_temperature": "Viðmiðunarhitastig",
"operation": "Aðgerð" "operation": "Aðgerð",
"away_mode": "Fjarverandi hamur"
} }
}, },
"components": { "components": {
@ -1178,6 +1223,14 @@
"off": "Slökkt", "off": "Slökkt",
"on": "Kveikt", "on": "Kveikt",
"auto": "Sjálfvirkt" "auto": "Sjálfvirkt"
},
"preset_mode": {
"none": "Ekkert",
"eco": "Sparnaður",
"away": "Fjarverandi",
"comfort": "Þægindi",
"home": "Heima",
"sleep": "Svefn"
} }
} }
}, },

View File

@ -141,7 +141,8 @@
"high_demand": "고성능", "high_demand": "고성능",
"heat_pump": "순환펌프", "heat_pump": "순환펌프",
"gas": "가스", "gas": "가스",
"manual": "수동" "manual": "수동",
"heat_cool": "냉난방"
}, },
"configurator": { "configurator": {
"configure": "설정", "configure": "설정",

View File

@ -141,7 +141,8 @@
"high_demand": "Héich Ufro", "high_demand": "Héich Ufro",
"heat_pump": "Heizung", "heat_pump": "Heizung",
"gas": "Gas", "gas": "Gas",
"manual": "Manuell" "manual": "Manuell",
"heat_cool": "Hëtzen\/Ofkillen"
}, },
"configurator": { "configurator": {
"configure": "Astellen", "configure": "Astellen",
@ -591,13 +592,15 @@
"caption": "Z-Wave", "caption": "Z-Wave",
"description": "Verwalt är Z-Wave Netzwierk", "description": "Verwalt är Z-Wave Netzwierk",
"network_management": { "network_management": {
"header": "Z-Wave Netzwierk Verwaltung" "header": "Z-Wave Netzwierk Verwaltung",
"introduction": "Féiert Commande aus am Z-Wave Netzwierk. Di kritt kee Feedback op déi meeschte Commande erfollegräich ausgeféiert goufen, mee dir kënnt de OZW Log ënnersiche fir weider Detailer"
}, },
"network_status": { "network_status": {
"network_stopped": "Z-Wave Netzwierk gestoppt", "network_stopped": "Z-Wave Netzwierk gestoppt",
"network_starting": "Z-Wave Netzwierk start", "network_starting": "Z-Wave Netzwierk start",
"network_starting_note": "Dës kann eng Weil dauere jee no gréisst vum Netzwierk.", "network_starting_note": "Dës kann eng Weil dauere jee no gréisst vum Netzwierk.",
"network_started": "Z-Wave Netzwierk gestart", "network_started": "Z-Wave Netzwierk gestart",
"network_started_note_some_queried": "Aktiv Apparater sinn ofgefrot. Inaktiv Apparater ginn ofgefrot soubal sie aktiv sinn.",
"network_started_note_all_queried": "All Apparater sinn ofgefrot" "network_started_note_all_queried": "All Apparater sinn ofgefrot"
}, },
"services": { "services": {

View File

@ -141,7 +141,8 @@
"high_demand": "Høy etterspørsel", "high_demand": "Høy etterspørsel",
"heat_pump": "Varmepumpe", "heat_pump": "Varmepumpe",
"gas": "Gass", "gas": "Gass",
"manual": "Manuell" "manual": "Manuell",
"heat_cool": "Varme\/kjøling"
}, },
"configurator": { "configurator": {
"configure": "Konfigurer", "configure": "Konfigurer",
@ -323,6 +324,9 @@
}, },
"mqtt": { "mqtt": {
"title": "MQTT" "title": "MQTT"
},
"info": {
"title": "Info"
} }
} }
}, },
@ -803,7 +807,8 @@
"step_done": "Oppsett fullført for {step}", "step_done": "Oppsett fullført for {step}",
"close": "Lukk", "close": "Lukk",
"submit": "Send inn" "submit": "Send inn"
} },
"logout": "Logg ut"
}, },
"page-authorize": { "page-authorize": {
"initializing": "Initialiserer", "initializing": "Initialiserer",

View File

@ -141,7 +141,8 @@
"high_demand": "Hoge vraag", "high_demand": "Hoge vraag",
"heat_pump": "Warmtepomp", "heat_pump": "Warmtepomp",
"gas": "Gas", "gas": "Gas",
"manual": "Handmatig" "manual": "Handmatig",
"heat_cool": "Verwarmen\/Koelen"
}, },
"configurator": { "configurator": {
"configure": "Configureer", "configure": "Configureer",
@ -323,6 +324,9 @@
}, },
"mqtt": { "mqtt": {
"title": "MQTT" "title": "MQTT"
},
"info": {
"title": "Info"
} }
} }
}, },
@ -803,7 +807,8 @@
"step_done": "Instellen voltooid voor {step}", "step_done": "Instellen voltooid voor {step}",
"close": "Sluiten", "close": "Sluiten",
"submit": "Verzenden" "submit": "Verzenden"
} },
"logout": "Uitloggen"
}, },
"page-authorize": { "page-authorize": {
"initializing": "Initialiseren", "initializing": "Initialiseren",

View File

@ -141,7 +141,8 @@
"high_demand": "duży rozbiór", "high_demand": "duży rozbiór",
"heat_pump": "pompa ciepła", "heat_pump": "pompa ciepła",
"gas": "gaz", "gas": "gaz",
"manual": "manualnie" "manual": "manualnie",
"heat_cool": "grzanie\/chłodzenie"
}, },
"configurator": { "configurator": {
"configure": "Skonfiguruj", "configure": "Skonfiguruj",

View File

@ -8,7 +8,7 @@
"mailbox": "Почта", "mailbox": "Почта",
"shopping_list": "Список покупок", "shopping_list": "Список покупок",
"dev-info": "Информация", "dev-info": "Информация",
"developer_tools": "Инструменты разработчика", "developer_tools": "Панель разработчика",
"calendar": "Календарь", "calendar": "Календарь",
"profile": "Профиль" "profile": "Профиль"
}, },
@ -141,7 +141,8 @@
"high_demand": "Большая нагрузка", "high_demand": "Большая нагрузка",
"heat_pump": "Тепловой насос", "heat_pump": "Тепловой насос",
"gas": "Газовый", "gas": "Газовый",
"manual": "Ручной режим" "manual": "Ручной режим",
"heat_cool": "Нагрев \/ Охлаждение"
}, },
"configurator": { "configurator": {
"configure": "Настроить", "configure": "Настроить",