187 files
This commit is contained in:
@@ -39,6 +39,7 @@ from custom_components.powercalc.helpers import (
|
||||
resolve_related_entity_placeholder,
|
||||
)
|
||||
from custom_components.powercalc.power_profile.library import ModelInfo, ProfileLibrary
|
||||
from custom_components.powercalc.power_profile.library_url import profile_url
|
||||
from custom_components.powercalc.power_profile.power_profile import (
|
||||
DEVICE_TYPE_DOMAIN,
|
||||
DOMAIN_DEVICE_TYPE_MAPPING,
|
||||
@@ -473,6 +474,20 @@ class LibraryFlow:
|
||||
return DiscoveryBy.CONFIG_ENTRY
|
||||
return DiscoveryBy.DEVICE
|
||||
|
||||
def _build_profile_details(self, profile: PowerProfile) -> str:
|
||||
"""Build a link to the profile in the public library when available."""
|
||||
if profile.is_custom_profile:
|
||||
return ""
|
||||
|
||||
translations = translation.async_get_cached_translations(
|
||||
self.flow.hass,
|
||||
self.flow.hass.config.language,
|
||||
"common",
|
||||
DOMAIN,
|
||||
)
|
||||
label = translations[f"component.{DOMAIN}.common.view_measurement_details"]
|
||||
return f"\n\n[{label}]({profile_url(profile.manufacturer, profile.model)})"
|
||||
|
||||
|
||||
class LibraryConfigFlow(LibraryFlow):
|
||||
def __init__(self, flow: PowercalcConfigFlow) -> None:
|
||||
@@ -592,6 +607,7 @@ class LibraryConfigFlow(LibraryFlow):
|
||||
"remarks": self._build_library_remarks(profile),
|
||||
"manufacturer": profile.manufacturer,
|
||||
"model": profile.model,
|
||||
"profile_details": self._build_profile_details(profile),
|
||||
"source": self._get_profile_source(profile),
|
||||
}
|
||||
|
||||
@@ -674,11 +690,14 @@ class LibraryOptionsFlow(LibraryFlow):
|
||||
if user_input is not None:
|
||||
return await self.async_step_manufacturer()
|
||||
|
||||
profile = self.flow.selected_profile
|
||||
assert profile is not None
|
||||
return self.flow.async_show_form(
|
||||
step_id=Step.LIBRARY_OPTIONS,
|
||||
description_placeholders={
|
||||
"manufacturer": self.flow.selected_profile.manufacturer, # type: ignore
|
||||
"model": self.flow.selected_profile.model, # type: ignore
|
||||
"manufacturer": profile.manufacturer,
|
||||
"model": profile.model,
|
||||
"profile_details": self._build_profile_details(profile),
|
||||
},
|
||||
last_step=False,
|
||||
)
|
||||
|
||||
@@ -22,5 +22,5 @@
|
||||
"requirements": [
|
||||
"numpy>=1.21.1"
|
||||
],
|
||||
"version": "v1.25.2"
|
||||
"version": "v1.25.3"
|
||||
}
|
||||
@@ -9,7 +9,7 @@ from pathlib import Path
|
||||
import shutil
|
||||
import tempfile
|
||||
from typing import Any, NotRequired, TypedDict, cast
|
||||
from urllib.parse import urlsplit
|
||||
from urllib.parse import SplitResult, unquote, urlsplit
|
||||
|
||||
import aiohttp
|
||||
from aiohttp import ClientError
|
||||
@@ -39,10 +39,30 @@ TIMEOUT_SECONDS = 30
|
||||
MODEL_JSON_RETRY_LIMIT = 2
|
||||
|
||||
ALLOWED_RESOURCE_HOSTS = frozenset({"github.com", "raw.githubusercontent.com"})
|
||||
# Profile resources are only ever served from the profile library of the Powercalc repository.
|
||||
# The download API names the URL for every file, so without this the API could point an install
|
||||
# at any repository on GitHub. The model hash cannot stand in for this check: it is a digest of
|
||||
# the library.json metadata entry, not of the files that get downloaded.
|
||||
LIBRARY_REPOSITORY_SEGMENTS = ("bramstroker", "homeassistant-powercalc")
|
||||
LIBRARY_RESOURCE_DIRECTORY = "profile_library"
|
||||
MAX_RESOURCE_SIZE = 10 * 1024 * 1024
|
||||
MAX_MANIFEST_SIZE = 1024 * 1024
|
||||
DOWNLOAD_CHUNK_SIZE = 64 * 1024
|
||||
|
||||
|
||||
def _is_library_repository_url(parsed_url: SplitResult) -> bool:
|
||||
"""Check that a resource URL addresses the profile library of the Powercalc repository."""
|
||||
segments = [segment for segment in unquote(parsed_url.path).split("/") if segment]
|
||||
if any(segment in {".", ".."} for segment in segments):
|
||||
return False
|
||||
repository_depth = len(LIBRARY_REPOSITORY_SEGMENTS)
|
||||
if tuple(segments[:repository_depth]) != LIBRARY_REPOSITORY_SEGMENTS:
|
||||
return False
|
||||
return LIBRARY_RESOURCE_DIRECTORY in segments[repository_depth:]
|
||||
|
||||
|
||||
def _validate_resource_url(url: object) -> str:
|
||||
"""Validate that a resource URL points to an allowed HTTPS host."""
|
||||
"""Validate that a resource URL points to the profile library on an allowed HTTPS host."""
|
||||
if not isinstance(url, str):
|
||||
raise ProfileDownloadError("Remote profile resource has an invalid URL")
|
||||
|
||||
@@ -54,6 +74,7 @@ def _validate_resource_url(url: object) -> str:
|
||||
and parsed_url.username is None
|
||||
and parsed_url.password is None
|
||||
and parsed_url.port in (None, 443)
|
||||
and _is_library_repository_url(parsed_url)
|
||||
)
|
||||
except ValueError as err:
|
||||
raise ProfileDownloadError(f"Remote profile resource has an invalid URL: {url}") from err
|
||||
@@ -63,6 +84,26 @@ def _validate_resource_url(url: object) -> str:
|
||||
return url
|
||||
|
||||
|
||||
async def _read_capped(response: aiohttp.ClientResponse, limit: int, description: str) -> bytes:
|
||||
"""Read a response body, refusing anything larger than `limit` bytes.
|
||||
|
||||
Downloads land in memory before they are written, so an oversized response would otherwise
|
||||
be able to exhaust the memory of the Home Assistant instance.
|
||||
"""
|
||||
too_large = ProfileDownloadError(f"{description} is larger than the maximum of {limit} bytes")
|
||||
if response.content_length is not None and response.content_length > limit:
|
||||
raise too_large
|
||||
|
||||
chunks: list[bytes] = []
|
||||
size = 0
|
||||
async for chunk in response.content.iter_chunked(DOWNLOAD_CHUNK_SIZE):
|
||||
size += len(chunk)
|
||||
if size > limit:
|
||||
raise too_large
|
||||
chunks.append(chunk)
|
||||
return b"".join(chunks)
|
||||
|
||||
|
||||
def _resolve_resource_path(storage_path: str, resource_path: object) -> Path:
|
||||
"""Resolve and validate a resource path within the profile storage directory."""
|
||||
if not isinstance(resource_path, str) or not resource_path or "\0" in resource_path:
|
||||
@@ -612,7 +653,14 @@ class RemoteLoader(Loader):
|
||||
async with session.get(endpoint, params={"hash": model_hash}) as resp:
|
||||
if resp.status != 200:
|
||||
raise ProfileDownloadError(f"Failed to download profile: {manufacturer}/{model}")
|
||||
resources = await resp.json()
|
||||
manifest = await _read_capped(resp, MAX_MANIFEST_SIZE, "Remote profile resource manifest")
|
||||
|
||||
try:
|
||||
resources = json.loads(manifest)
|
||||
except JSONDecodeError as err:
|
||||
raise ProfileDownloadError(
|
||||
f"Remote profile response is not valid JSON: {manufacturer}/{model}",
|
||||
) from err
|
||||
|
||||
validated_resources = await self.hass.async_add_executor_job(
|
||||
_validate_resources,
|
||||
@@ -629,7 +677,7 @@ class RemoteLoader(Loader):
|
||||
if resp.status != 200:
|
||||
raise ProfileDownloadError(f"Failed to download github URL: {url}")
|
||||
|
||||
contents = await resp.read()
|
||||
contents = await _read_capped(resp, MAX_RESOURCE_SIZE, f"Remote profile resource {url}")
|
||||
downloaded_resources.append((contents, destination))
|
||||
|
||||
await self.hass.async_add_executor_job(_save_resources, downloaded_resources)
|
||||
|
||||
@@ -12,12 +12,14 @@ from homeassistant.components.camera import DOMAIN as CAMERA_DOMAIN
|
||||
from homeassistant.components.climate import DOMAIN as CLIMATE_DOMAIN
|
||||
from homeassistant.components.cover import DOMAIN as COVER_DOMAIN
|
||||
from homeassistant.components.fan import DOMAIN as FAN_DOMAIN
|
||||
from homeassistant.components.humidifier import DOMAIN as HUMIDIFIER_DOMAIN
|
||||
from homeassistant.components.lawn_mower import DOMAIN as LAWN_MOWER_DOMAIN
|
||||
from homeassistant.components.light import DOMAIN as LIGHT_DOMAIN
|
||||
from homeassistant.components.media_player import DOMAIN as MEDIA_PLAYER_DOMAIN
|
||||
from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN
|
||||
from homeassistant.components.switch import DOMAIN as SWITCH_DOMAIN
|
||||
from homeassistant.components.vacuum import DOMAIN as VACUUM_DOMAIN
|
||||
from homeassistant.components.water_heater import DOMAIN as WATER_HEATER_DOMAIN
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers import translation
|
||||
from homeassistant.helpers.entity_registry import RegistryEntry
|
||||
@@ -47,6 +49,8 @@ _LOGGER = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class DeviceType(StrEnum):
|
||||
AIR_CONDITIONER = "air_conditioner"
|
||||
AIR_PURIFIER = "air_purifier"
|
||||
CAMERA = "camera"
|
||||
COVER = "cover"
|
||||
FAN = "fan"
|
||||
@@ -54,6 +58,7 @@ class DeviceType(StrEnum):
|
||||
LIGHT = "light"
|
||||
POWER_METER = "power_meter"
|
||||
PRINTER = "printer"
|
||||
SET_TOP_BOX = "set_top_box"
|
||||
SMART_DIMMER = "smart_dimmer"
|
||||
SMART_SWITCH = "smart_switch"
|
||||
SMART_SPEAKER = "smart_speaker"
|
||||
@@ -62,7 +67,9 @@ class DeviceType(StrEnum):
|
||||
VACUUM_ROBOT = "vacuum_robot"
|
||||
LAWN_MOWER_ROBOT = "lawn_mower_robot"
|
||||
HEATING = "heating"
|
||||
HUMIDIFIER = "humidifier"
|
||||
UPS = "ups"
|
||||
WATER_HEATER = "water_heater"
|
||||
|
||||
|
||||
class DiscoveryBy(StrEnum):
|
||||
@@ -82,12 +89,15 @@ class CustomField:
|
||||
|
||||
|
||||
DEVICE_TYPE_DOMAIN: dict[DeviceType, str | set[str]] = {
|
||||
DeviceType.AIR_CONDITIONER: CLIMATE_DOMAIN,
|
||||
DeviceType.AIR_PURIFIER: FAN_DOMAIN,
|
||||
DeviceType.CAMERA: CAMERA_DOMAIN,
|
||||
DeviceType.COVER: COVER_DOMAIN,
|
||||
DeviceType.FAN: FAN_DOMAIN,
|
||||
DeviceType.GENERIC_IOT: {SENSOR_DOMAIN, MEDIA_PLAYER_DOMAIN},
|
||||
DeviceType.LIGHT: LIGHT_DOMAIN,
|
||||
DeviceType.POWER_METER: SENSOR_DOMAIN,
|
||||
DeviceType.SET_TOP_BOX: MEDIA_PLAYER_DOMAIN,
|
||||
DeviceType.SMART_DIMMER: LIGHT_DOMAIN,
|
||||
DeviceType.SMART_SWITCH: {SWITCH_DOMAIN, LIGHT_DOMAIN},
|
||||
DeviceType.SMART_SPEAKER: MEDIA_PLAYER_DOMAIN,
|
||||
@@ -97,7 +107,9 @@ DEVICE_TYPE_DOMAIN: dict[DeviceType, str | set[str]] = {
|
||||
DeviceType.VACUUM_ROBOT: VACUUM_DOMAIN,
|
||||
DeviceType.LAWN_MOWER_ROBOT: LAWN_MOWER_DOMAIN,
|
||||
DeviceType.HEATING: CLIMATE_DOMAIN,
|
||||
DeviceType.HUMIDIFIER: HUMIDIFIER_DOMAIN,
|
||||
DeviceType.UPS: SENSOR_DOMAIN,
|
||||
DeviceType.WATER_HEATER: WATER_HEATER_DOMAIN,
|
||||
}
|
||||
|
||||
SUPPORTED_DOMAINS: set[str] = {
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"source_entity": "Zdrojová entita",
|
||||
"source_device": "Zdrojové zařízení",
|
||||
"remarks_smart_switch": "Tento profil poskytuje pouze hodnoty napájení v pohotovostním režimu. \n Pokud máte spotřebič, který zapnutí spotřebovává pevně dané množství energie, můžete zadat tuto hodnotu v dalším kroku v nastavení",
|
||||
"remarks_smart_dimmer": "Tento profil poskytuje pouze hodnoty spotřeby energie v pohotovostním režimu. \n V dalším kroku můžete volitelně zadat hodnoty připojeného světla"
|
||||
"remarks_smart_dimmer": "Tento profil poskytuje pouze hodnoty spotřeby energie v pohotovostním režimu. \n V dalším kroku můžete volitelně zadat hodnoty připojeného světla",
|
||||
"view_measurement_details": "Zobrazit podrobnosti měření"
|
||||
},
|
||||
"config": {
|
||||
"abort": {
|
||||
@@ -335,7 +336,7 @@
|
||||
"data_description": {
|
||||
"confirm_autodisovered_model": "Pokud se rozhodnete nepotvrzovat, pak můžete zadat výrobce a model manuálně"
|
||||
},
|
||||
"description": "{source}\n\nVýrobce \"{manufacturer}\" a model \"{model}\" byl automaticky detekován pro vaše zařízení.{remarks}",
|
||||
"description": "{source}\n\nVýrobce \"{manufacturer}\" a model \"{model}\" byl automaticky detekován pro vaše zařízení.{remarks}{profile_details}",
|
||||
"title": "Knihovna"
|
||||
},
|
||||
"library_custom_fields": {
|
||||
@@ -1000,7 +1001,7 @@
|
||||
},
|
||||
"library_options": {
|
||||
"title": "Možnosti knihovny",
|
||||
"description": "Aktuálně je vybrán následující profil knihovny: \n výrobce: {manufacturer}\n model: {model}\n\nPokud chcete profil změnit, klikněte na Další."
|
||||
"description": "Aktuálně je vybrán následující profil knihovny: \n výrobce: {manufacturer}\n model: {model}\n\nPokud chcete profil změnit, klikněte na Další.{profile_details}"
|
||||
},
|
||||
"select_device": {
|
||||
"data": {
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"source_entity": "Kildeentitet",
|
||||
"source_device": "Kildeenhed",
|
||||
"remarks_smart_switch": "Denne profil indeholder kun effektværdier for standby. \n Hvis du har et apparat, der bruger en fast mængde effekt, når det er tændt, kan du angive denne værdi i næste trin i konfigurationsforløbet",
|
||||
"remarks_smart_dimmer": "Denne profil indeholder kun effektværdier for standby. \n I næste trin kan du valgfrit angive værdierne for det tilsluttede lys"
|
||||
"remarks_smart_dimmer": "Denne profil indeholder kun effektværdier for standby. \n I næste trin kan du valgfrit angive værdierne for det tilsluttede lys",
|
||||
"view_measurement_details": "Se måledetaljer"
|
||||
},
|
||||
"config": {
|
||||
"abort": {
|
||||
@@ -335,7 +336,7 @@
|
||||
"data_description": {
|
||||
"confirm_autodisovered_model": "Hvis du vælger ikke at bekræfte, kan du selv indtaste producent og model"
|
||||
},
|
||||
"description": "{source}\n\nProducenten \"{manufacturer}\" og model \"{model}\" blev automatisk fundet for din enhed.{remarks}",
|
||||
"description": "{source}\n\nProducenten \"{manufacturer}\" og model \"{model}\" blev automatisk fundet for din enhed.{remarks}{profile_details}",
|
||||
"title": "Bibliotek"
|
||||
},
|
||||
"library_custom_fields": {
|
||||
@@ -1000,7 +1001,7 @@
|
||||
},
|
||||
"library_options": {
|
||||
"title": "Biblioteksindstillinger",
|
||||
"description": "I øjeblikket er følgende biblioteksprofil valgt: \n producent: {manufacturer}\n model: {model}\n\nHvis du vil ændre profilen, skal du klikke på næste."
|
||||
"description": "I øjeblikket er følgende biblioteksprofil valgt: \n producent: {manufacturer}\n model: {model}\n\nHvis du vil ændre profilen, skal du klikke på næste.{profile_details}"
|
||||
},
|
||||
"select_device": {
|
||||
"data": {
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"source_entity": "Quell-Entität",
|
||||
"source_device": "Quell-Gerät",
|
||||
"remarks_smart_switch": "Dieses Profil liefert nur Werte für die Standby-Leistung. \n Wenn Sie ein Gerät haben, das beim Einschalten eine bestimmte Menge an Strom verbraucht, können Sie diesen Wert im nächsten Schritt des Konfigurationsablaufs angeben",
|
||||
"remarks_smart_dimmer": "Dieses Profil bietet nur Standby-Leistungswerte. \n Im nächsten Schritt können Sie optional die Werte der angeschlossenen Lampe angeben"
|
||||
"remarks_smart_dimmer": "Dieses Profil bietet nur Standby-Leistungswerte. \n Im nächsten Schritt können Sie optional die Werte der angeschlossenen Lampe angeben",
|
||||
"view_measurement_details": "Messdetails anzeigen"
|
||||
},
|
||||
"config": {
|
||||
"abort": {
|
||||
@@ -335,7 +336,7 @@
|
||||
"data_description": {
|
||||
"confirm_autodisovered_model": "Wenn Sie nicht bestätigen möchten, können Sie den Hersteller und das Modell selbst eingeben"
|
||||
},
|
||||
"description": "{source}\n\nHersteller \"{manufacturer}\" und Modell \"{model}\" wurden für Ihre Gerät automatisch erkannt.{remarks}",
|
||||
"description": "{source}\n\nHersteller \"{manufacturer}\" und Modell \"{model}\" wurden für Ihre Gerät automatisch erkannt.{remarks}{profile_details}",
|
||||
"title": "Bibliothek"
|
||||
},
|
||||
"library_custom_fields": {
|
||||
@@ -1000,7 +1001,7 @@
|
||||
},
|
||||
"library_options": {
|
||||
"title": "Bibliotheksoptionen",
|
||||
"description": "Derzeit ist folgendes Bibliotheksprofil ausgewählt: \n Hersteller: {manufacturer}\n Modell: {model}\n\nWenn du das Profil ändern möchtest, klicke auf Weiter."
|
||||
"description": "Derzeit ist folgendes Bibliotheksprofil ausgewählt: \n Hersteller: {manufacturer}\n Modell: {model}\n\nWenn du das Profil ändern möchtest, klicke auf Weiter.{profile_details}"
|
||||
},
|
||||
"select_device": {
|
||||
"data": {
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"source_entity": "Source entity",
|
||||
"source_device": "Source device",
|
||||
"remarks_smart_switch": "This profile only provides standby power values. \n When you have an appliance which consumes a fixed amount of power when turned on, you can provide that value in next step of the config flow",
|
||||
"remarks_smart_dimmer": "This profile only provides standby power values. \n In the next step you can optionally provide the values of the connected light"
|
||||
"remarks_smart_dimmer": "This profile only provides standby power values. \n In the next step you can optionally provide the values of the connected light",
|
||||
"view_measurement_details": "View measurement details"
|
||||
},
|
||||
"config": {
|
||||
"abort": {
|
||||
@@ -335,7 +336,7 @@
|
||||
"data_description": {
|
||||
"confirm_autodisovered_model": "If you choose not to confirm, you can input the manufacturer and model yourself"
|
||||
},
|
||||
"description": "{source}\n\nManufacturer \"{manufacturer}\" and model \"{model}\" were automatically detected for your device.{remarks}",
|
||||
"description": "{source}\n\nManufacturer \"{manufacturer}\" and model \"{model}\" were automatically detected for your device.{remarks}{profile_details}",
|
||||
"title": "Library"
|
||||
},
|
||||
"library_custom_fields": {
|
||||
@@ -1000,7 +1001,7 @@
|
||||
},
|
||||
"library_options": {
|
||||
"title": "Library options",
|
||||
"description": "Currently the following library profile is selected: \n manufacturer: {manufacturer}\n model: {model}\n\nIf you want to change the profile, click next."
|
||||
"description": "Currently the following library profile is selected: \n manufacturer: {manufacturer}\n model: {model}\n\nIf you want to change the profile, click next.{profile_details}"
|
||||
},
|
||||
"select_device": {
|
||||
"data": {
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"source_entity": "Entidad de origen",
|
||||
"source_device": "Dispositivo de origen",
|
||||
"remarks_smart_switch": "Este perfil solo provee valores de potencia en espera. \nCuando tienes un aparato que encendido consume una cantidad fija de potencia, puedes proveer ese valor en el siguiente paso de la configuración",
|
||||
"remarks_smart_dimmer": "Este perfil solo proporciona valores de energía en espera.\nEn el siguiente paso puedes proporcionar opcionalmente los valores de la luz conectada"
|
||||
"remarks_smart_dimmer": "Este perfil solo proporciona valores de energía en espera.\nEn el siguiente paso puedes proporcionar opcionalmente los valores de la luz conectada",
|
||||
"view_measurement_details": "Ver detalles de la medición"
|
||||
},
|
||||
"config": {
|
||||
"abort": {
|
||||
@@ -335,7 +336,7 @@
|
||||
"data_description": {
|
||||
"confirm_autodisovered_model": "Si eliges no confirmar, puedes introducir el fabricante y el modelo tú mismo"
|
||||
},
|
||||
"description": "{source}\n\nEl fabricante \"{manufacturer}\" y el modelo \"{model}\" fueron detectados automáticamente en su dispositivo.{remarks}",
|
||||
"description": "{source}\n\nEl fabricante \"{manufacturer}\" y el modelo \"{model}\" fueron detectados automáticamente en su dispositivo.{remarks}{profile_details}",
|
||||
"title": "Biblioteca"
|
||||
},
|
||||
"library_custom_fields": {
|
||||
@@ -1000,7 +1001,7 @@
|
||||
},
|
||||
"library_options": {
|
||||
"title": "Opciones de biblioteca",
|
||||
"description": "Actualmente se ha seleccionado el siguiente perfil de biblioteca: \n fabricante: {manufacturer}\n modelo: {model}\n\nSi quieres cambiar el perfil, haz clic a continuación."
|
||||
"description": "Actualmente se ha seleccionado el siguiente perfil de biblioteca: \n fabricante: {manufacturer}\n modelo: {model}\n\nSi quieres cambiar el perfil, haz clic a continuación.{profile_details}"
|
||||
},
|
||||
"select_device": {
|
||||
"data": {
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"source_entity": "Lähde-entiteetti",
|
||||
"source_device": "Lähdelaite",
|
||||
"remarks_smart_switch": "Tämä profiili sisältää vain valmiustilan tehoarvot. \n Jos laite kuluttaa käynnissä ollessaan kiinteän määrän tehoa, voit antaa arvon määrityksen seuraavassa vaiheessa",
|
||||
"remarks_smart_dimmer": "Tämä profiili sisältää vain valmiustilan tehoarvot. \n Seuraavassa vaiheessa voit halutessasi antaa liitetyn valon arvot"
|
||||
"remarks_smart_dimmer": "Tämä profiili sisältää vain valmiustilan tehoarvot. \n Seuraavassa vaiheessa voit halutessasi antaa liitetyn valon arvot",
|
||||
"view_measurement_details": "Näytä mittaustiedot"
|
||||
},
|
||||
"config": {
|
||||
"abort": {
|
||||
@@ -335,7 +336,7 @@
|
||||
"data_description": {
|
||||
"confirm_autodisovered_model": "Jos et halua vahvistaa, voit syöttää valmistajan ja mallin itse"
|
||||
},
|
||||
"description": "{source}\n\nValmistaja \"{manufacturer}\" ja malli \"{model}\" tunnistettiin automaattisesti laitteellesi.{remarks}",
|
||||
"description": "{source}\n\nValmistaja \"{manufacturer}\" ja malli \"{model}\" tunnistettiin automaattisesti laitteellesi.{remarks}{profile_details}",
|
||||
"title": "Kirjasto"
|
||||
},
|
||||
"library_custom_fields": {
|
||||
@@ -1000,7 +1001,7 @@
|
||||
},
|
||||
"library_options": {
|
||||
"title": "Kirjaston vaihtoehdot",
|
||||
"description": "Tällä hetkellä on valittuna seuraava kirjastoprofiili: \n valmistaja: {manufacturer}\n malli: {model}\n\nJos haluat vaihtaa profiilia, napsauta Seuraava."
|
||||
"description": "Tällä hetkellä on valittuna seuraava kirjastoprofiili: \n valmistaja: {manufacturer}\n malli: {model}\n\nJos haluat vaihtaa profiilia, napsauta Seuraava.{profile_details}"
|
||||
},
|
||||
"select_device": {
|
||||
"data": {
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"source_entity": "Entité source",
|
||||
"source_device": "Appareil source",
|
||||
"remarks_smart_switch": "Ce profil ne fournit que des valeurs de puissance en veille. \n Si vous avez un appareil qui consomme une quantité fixe de puissance lorsqu'il est allumé, vous pouvez fournir cette valeur à l'étape suivante du flux de configuration",
|
||||
"remarks_smart_dimmer": "Ce profil ne fournit que des valeurs de puissance en veille. \n À l'étape suivante, vous pouvez éventuellement fournir les valeurs de la lampe connectée"
|
||||
"remarks_smart_dimmer": "Ce profil ne fournit que des valeurs de puissance en veille. \n À l'étape suivante, vous pouvez éventuellement fournir les valeurs de la lampe connectée",
|
||||
"view_measurement_details": "Voir les détails de mesure"
|
||||
},
|
||||
"config": {
|
||||
"abort": {
|
||||
@@ -335,7 +336,7 @@
|
||||
"data_description": {
|
||||
"confirm_autodisovered_model": "Si vous choisissez de ne pas confirmer, vous pouvez entrer vous-même le fabricant et le modèle"
|
||||
},
|
||||
"description": "{source}\n\nLe fabricant \"{manufacturer}\" et le modèle \"{model}\" ont été automatiquement détectés pour votre appareil.{remarks}",
|
||||
"description": "{source}\n\nLe fabricant \"{manufacturer}\" et le modèle \"{model}\" ont été automatiquement détectés pour votre appareil.{remarks}{profile_details}",
|
||||
"title": "Bibliothèque"
|
||||
},
|
||||
"library_custom_fields": {
|
||||
@@ -1000,7 +1001,7 @@
|
||||
},
|
||||
"library_options": {
|
||||
"title": "Options de bibliothèque",
|
||||
"description": "Le profil de bibliothèque suivant est actuellement sélectionné : \n fabricant : {manufacturer}\n modèle : {model}\n\nSi vous souhaitez changer de profil, cliquez sur Suivant."
|
||||
"description": "Le profil de bibliothèque suivant est actuellement sélectionné : \n fabricant : {manufacturer}\n modèle : {model}\n\nSi vous souhaitez changer de profil, cliquez sur Suivant.{profile_details}"
|
||||
},
|
||||
"select_device": {
|
||||
"data": {
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"source_entity": "Forrásentitás",
|
||||
"source_device": "Forráseszköz",
|
||||
"remarks_smart_switch": "Ez a profil csak készenléti teljesítményértékeket tartalmaz. \n Ha egy eszköz bekapcsolva állandó teljesítményt vesz fel, ezt az értéket a konfiguráció következő lépésében adhatja meg",
|
||||
"remarks_smart_dimmer": "Ez a profil csak készenléti teljesítményértékeket tartalmaz. \n A következő lépésben megadhatja a csatlakoztatott lámpa értékeit"
|
||||
"remarks_smart_dimmer": "Ez a profil csak készenléti teljesítményértékeket tartalmaz. \n A következő lépésben megadhatja a csatlakoztatott lámpa értékeit",
|
||||
"view_measurement_details": "Mérési részletek megtekintése"
|
||||
},
|
||||
"config": {
|
||||
"abort": {
|
||||
@@ -335,7 +336,7 @@
|
||||
"data_description": {
|
||||
"confirm_autodisovered_model": "Ha úgy dönt, hogy nem erősíti meg, megadhatja saját maga a gyártót és a modellt"
|
||||
},
|
||||
"description": "{source}\n\nA készülék automatikusan észlelte a „{manufacturer}” gyártót és a „{model}” modellt.{remarks}",
|
||||
"description": "{source}\n\nA készülék automatikusan észlelte a „{manufacturer}” gyártót és a „{model}” modellt.{remarks}{profile_details}",
|
||||
"title": "Könyvtár"
|
||||
},
|
||||
"library_custom_fields": {
|
||||
@@ -1000,7 +1001,7 @@
|
||||
},
|
||||
"library_options": {
|
||||
"title": "Könyvtári beállítások",
|
||||
"description": "Jelenleg a következő könyvtári profil van kiválasztva: \n gyártó: {manufacturer}\n modell: {model}\n\nHa módosítani szeretné a profilt, kattintson a Tovább gombra."
|
||||
"description": "Jelenleg a következő könyvtári profil van kiválasztva: \n gyártó: {manufacturer}\n modell: {model}\n\nHa módosítani szeretné a profilt, kattintson a Tovább gombra.{profile_details}"
|
||||
},
|
||||
"select_device": {
|
||||
"data": {
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"source_entity": "Entità sorgente",
|
||||
"source_device": "Dispositivo sorgente",
|
||||
"remarks_smart_switch": "Questo profilo fornisce solo valori di potenza in standby. Quando hai un dispositivo che consuma una quantità fissa di potenza quando è acceso, puoi fornire quel valore nel passaggio successivo del flusso di configurazione",
|
||||
"remarks_smart_dimmer": "Questo profilo fornisce solo valori di potenza in standby. \n Nel passo successivo è possibile fornire facoltativamente i valori della luce collegata"
|
||||
"remarks_smart_dimmer": "Questo profilo fornisce solo valori di potenza in standby. \n Nel passo successivo è possibile fornire facoltativamente i valori della luce collegata",
|
||||
"view_measurement_details": "Visualizza i dettagli della misurazione"
|
||||
},
|
||||
"config": {
|
||||
"abort": {
|
||||
@@ -335,7 +336,7 @@
|
||||
"data_description": {
|
||||
"confirm_autodisovered_model": "Se si sceglie di non confermare, è possibile immettere il produttore e modellare da soli"
|
||||
},
|
||||
"description": "Source entity: {source}\n\nProduttore \"{manufacturer}\" e modello \"{model}\" sono stati rilevati automaticamente per il tuo dispositivo.{remarks}",
|
||||
"description": "Source entity: {source}\n\nProduttore \"{manufacturer}\" e modello \"{model}\" sono stati rilevati automaticamente per il tuo dispositivo.{remarks}{profile_details}",
|
||||
"title": "Libreria"
|
||||
},
|
||||
"library_custom_fields": {
|
||||
@@ -1000,7 +1001,7 @@
|
||||
},
|
||||
"library_options": {
|
||||
"title": "Opzioni della libreria",
|
||||
"description": "Attualmente è selezionato il seguente profilo libreria: \n produttore: {manufacturer}\n modello: {model}\n\nSe desideri modificare il profilo, fai clic su Avanti."
|
||||
"description": "Attualmente è selezionato il seguente profilo libreria: \n produttore: {manufacturer}\n modello: {model}\n\nSe desideri modificare il profilo, fai clic su Avanti.{profile_details}"
|
||||
},
|
||||
"select_device": {
|
||||
"data": {
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"source_entity": "Kildeentitet",
|
||||
"source_device": "Kildeenhet",
|
||||
"remarks_smart_switch": "Denne profilen inneholder bare effektverdier for standby. \n Hvis du har et apparat med fast effekt når det er slått på, kan du angi denne verdien i neste trinn i konfigurasjonen",
|
||||
"remarks_smart_dimmer": "Denne profilen inneholder bare effektverdier for standby. \n I neste trinn kan du valgfritt oppgi verdiene for det tilkoblede lyset"
|
||||
"remarks_smart_dimmer": "Denne profilen inneholder bare effektverdier for standby. \n I neste trinn kan du valgfritt oppgi verdiene for det tilkoblede lyset",
|
||||
"view_measurement_details": "Vis måledetaljer"
|
||||
},
|
||||
"config": {
|
||||
"abort": {
|
||||
@@ -335,7 +336,7 @@
|
||||
"data_description": {
|
||||
"confirm_autodisovered_model": "Hvis du velger å ikke bekrefte, kan du selv angi produsenten og modellen"
|
||||
},
|
||||
"description": "{source}\n\nProdusent \"{manufacturer}\" og modell \"{model}\" ble automatisk oppdaget for enheten din.{remarks}",
|
||||
"description": "{source}\n\nProdusent \"{manufacturer}\" og modell \"{model}\" ble automatisk oppdaget for enheten din.{remarks}{profile_details}",
|
||||
"title": "Bibliotek"
|
||||
},
|
||||
"library_custom_fields": {
|
||||
@@ -1000,7 +1001,7 @@
|
||||
},
|
||||
"library_options": {
|
||||
"title": "Alternativer for bibliotek",
|
||||
"description": "For øyeblikket er følgende bibliotekprofil valgt: \n produsent: {manufacturer}\n modell: {model}\n\nHvis du vil endre profilen, klikker du på neste."
|
||||
"description": "For øyeblikket er følgende bibliotekprofil valgt: \n produsent: {manufacturer}\n modell: {model}\n\nHvis du vil endre profilen, klikker du på neste.{profile_details}"
|
||||
},
|
||||
"select_device": {
|
||||
"data": {
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"source_entity": "Bron entiteit",
|
||||
"source_device": "Bron apparaat",
|
||||
"remarks_smart_switch": "Dit profiel biedt alleen stand-by stroomwaarden. \n Wanneer je een apparaat hebt dat een vaste hoeveelheid stroom verbruikt wanneer het is ingeschakeld, kunt u die waarde opgeven in de volgende stap van de configuratie flow",
|
||||
"remarks_smart_dimmer": "Dit profiel biedt alleen waarden voor standby vermogen. \n In de volgende stap kunt u optioneel de waarden van het aangesloten licht opgeven"
|
||||
"remarks_smart_dimmer": "Dit profiel biedt alleen waarden voor standby vermogen. \n In de volgende stap kunt u optioneel de waarden van het aangesloten licht opgeven",
|
||||
"view_measurement_details": "Meetdetails bekijken"
|
||||
},
|
||||
"config": {
|
||||
"abort": {
|
||||
@@ -335,7 +336,7 @@
|
||||
"data_description": {
|
||||
"confirm_autodisovered_model": "Wanneer je niet bevestigd kan je in het volgende scherm zelf de fabrikant en het model kiezen."
|
||||
},
|
||||
"description": "{source}\n\nFabrikant \"{manufacturer}\" en model \"{model}\" zijn automatisch gedecteerd voor het apparaat.{remarks}",
|
||||
"description": "{source}\n\nFabrikant \"{manufacturer}\" en model \"{model}\" zijn automatisch gedecteerd voor het apparaat.{remarks}{profile_details}",
|
||||
"title": "Bibliotheek"
|
||||
},
|
||||
"library_custom_fields": {
|
||||
@@ -1000,7 +1001,7 @@
|
||||
},
|
||||
"library_options": {
|
||||
"title": "Bibliotheek opties",
|
||||
"description": "Momenteel is het huidige profiel geselecteerd: \nfabrikant: {manufacturer}\nmodel: {model}\n\nAls u het profiel wilt wijzigen, klikt u op volgende."
|
||||
"description": "Momenteel is het huidige profiel geselecteerd: \nfabrikant: {manufacturer}\nmodel: {model}\n\nAls u het profiel wilt wijzigen, klikt u op volgende.{profile_details}"
|
||||
},
|
||||
"select_device": {
|
||||
"data": {
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"source_entity": "Encja źródłowa",
|
||||
"source_device": "Urządzenie źródłowe",
|
||||
"remarks_smart_switch": "Ten profil dostarcza tylko wartości poboru mocy w trybie czuwania. \n Gdy masz urządzenie, które zużywa stałą ilość energii po włączeniu, możesz podać tę wartość w następnym kroku przepływu konfiguracji",
|
||||
"remarks_smart_dimmer": "Ten profil dostarcza tylko wartości poboru mocy w trybie czuwania. \n W następnym kroku możesz opcjonalnie podać wartości dla podłączonego światła"
|
||||
"remarks_smart_dimmer": "Ten profil dostarcza tylko wartości poboru mocy w trybie czuwania. \n W następnym kroku możesz opcjonalnie podać wartości dla podłączonego światła",
|
||||
"view_measurement_details": "Zobacz szczegóły pomiaru"
|
||||
},
|
||||
"config": {
|
||||
"abort": {
|
||||
@@ -335,7 +336,7 @@
|
||||
"data_description": {
|
||||
"confirm_autodisovered_model": "Jeśli zdecydujesz się nie potwierdzać, możesz samodzielnie wprowadzić producenta i model"
|
||||
},
|
||||
"description": "{source}\n\nProducent \"{manufacturer}\" i model \"{model}\" zostały automatycznie wykryte dla twojego urządzenia.{remarks}",
|
||||
"description": "{source}\n\nProducent \"{manufacturer}\" i model \"{model}\" zostały automatycznie wykryte dla twojego urządzenia.{remarks}{profile_details}",
|
||||
"title": "Biblioteka"
|
||||
},
|
||||
"library_custom_fields": {
|
||||
@@ -1000,7 +1001,7 @@
|
||||
},
|
||||
"library_options": {
|
||||
"title": "Opcje biblioteki",
|
||||
"description": "Obecnie wybrany jest następujący profil biblioteki: \n producent: {manufacturer}\n model: {model}\n\nJeśli chcesz zmienić profil, kliknij dalej."
|
||||
"description": "Obecnie wybrany jest następujący profil biblioteki: \n producent: {manufacturer}\n model: {model}\n\nJeśli chcesz zmienić profil, kliknij dalej.{profile_details}"
|
||||
},
|
||||
"select_device": {
|
||||
"data": {
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"source_entity": "Entidade de origem",
|
||||
"source_device": "Dispositivo de origem",
|
||||
"remarks_smart_switch": "Este perfil só fornece valores da potência em standby.\nQuando você tem um aparelho que consome uma quantidade fixa de energia quando ativado, você pode informar esse valor no próximo passo do fluxo de configuração",
|
||||
"remarks_smart_dimmer": "Esse perfil fornece apenas valores de energia em modo de espera. \n Na próxima etapa, você pode fornecer opcionalmente os valores da luz conectada"
|
||||
"remarks_smart_dimmer": "Esse perfil fornece apenas valores de energia em modo de espera. \n Na próxima etapa, você pode fornecer opcionalmente os valores da luz conectada",
|
||||
"view_measurement_details": "Ver detalhes da medição"
|
||||
},
|
||||
"config": {
|
||||
"abort": {
|
||||
@@ -335,7 +336,7 @@
|
||||
"data_description": {
|
||||
"confirm_autodisovered_model": "Se você optar por não confirmar, você mesmo pode inserir o fabricante e o modelo"
|
||||
},
|
||||
"description": "{source}\n\nO fabricante \"{manufacturer}\" e o modelo \"{model}\" foram detectados automaticamente para sua luz.{remarks}",
|
||||
"description": "{source}\n\nO fabricante \"{manufacturer}\" e o modelo \"{model}\" foram detectados automaticamente para sua luz.{remarks}{profile_details}",
|
||||
"title": "Biblioteca"
|
||||
},
|
||||
"library_custom_fields": {
|
||||
@@ -1000,7 +1001,7 @@
|
||||
},
|
||||
"library_options": {
|
||||
"title": "Opções da biblioteca",
|
||||
"description": "Atualmente o seguinte perfil de biblioteca esta selecionado: \n fabricante {manufacturer}\n modelo: {model}\n\nSe você deseja alterar o perfil, clique em próximo."
|
||||
"description": "Atualmente o seguinte perfil de biblioteca esta selecionado: \n fabricante {manufacturer}\n modelo: {model}\n\nSe você deseja alterar o perfil, clique em próximo.{profile_details}"
|
||||
},
|
||||
"select_device": {
|
||||
"data": {
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"source_entity": "Entidade de origem",
|
||||
"source_device": "Dispositivo de origem",
|
||||
"remarks_smart_switch": "Este perfil fornece apenas valores de potência em standby. \n Quando tiver um aparelho que consome uma quantidade fixa de potência quando ligado, pode fornecer esse valor no próximo passo do fluxo de configuração",
|
||||
"remarks_smart_dimmer": "Este perfil fornece apenas valores de potência em standby. \n No próximo passo pode fornecer opcionalmente os valores da luz ligada"
|
||||
"remarks_smart_dimmer": "Este perfil fornece apenas valores de potência em standby. \n No próximo passo pode fornecer opcionalmente os valores da luz ligada",
|
||||
"view_measurement_details": "Ver detalhes da medição"
|
||||
},
|
||||
"config": {
|
||||
"abort": {
|
||||
@@ -335,7 +336,7 @@
|
||||
"data_description": {
|
||||
"confirm_autodisovered_model": "Se decidir não confirmar, poderá inserir manualmente o fabricante e o modelo"
|
||||
},
|
||||
"description": "{source}\n\nO fabricante '({manufacturer})' e o modelo '({model})' foram detectados automaticamente para sua luz.{remarks}",
|
||||
"description": "{source}\n\nO fabricante '({manufacturer})' e o modelo '({model})' foram detectados automaticamente para sua luz.{remarks}{profile_details}",
|
||||
"title": "Biblioteca"
|
||||
},
|
||||
"library_custom_fields": {
|
||||
@@ -1000,7 +1001,7 @@
|
||||
},
|
||||
"library_options": {
|
||||
"title": "Opções da biblioteca",
|
||||
"description": "Atualmente está selecionado o seguinte perfil da biblioteca: \n fabricante: {manufacturer}\n modelo: {model}\n\nSe quiser alterar o perfil, clique em seguinte."
|
||||
"description": "Atualmente está selecionado o seguinte perfil da biblioteca: \n fabricante: {manufacturer}\n modelo: {model}\n\nSe quiser alterar o perfil, clique em seguinte.{profile_details}"
|
||||
},
|
||||
"select_device": {
|
||||
"data": {
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"source_entity": "Entitatea sursă",
|
||||
"source_device": "Dispozitiv sursă",
|
||||
"remarks_smart_switch": "Acest profil furnizează doar valorile puterii de așteptare. \n Când aveți un aparat care consumă o cantitate fixă de energie atunci când este pornit, puteți furniza acea valoare în următorul pas al fluxului de configurare",
|
||||
"remarks_smart_dimmer": "Acest profil furnizează doar valorile puterii de așteptare. \n În pasul următor puteți furniza opțional valorile luminii conectate"
|
||||
"remarks_smart_dimmer": "Acest profil furnizează doar valorile puterii de așteptare. \n În pasul următor puteți furniza opțional valorile luminii conectate",
|
||||
"view_measurement_details": "Vedeți detaliile măsurătorii"
|
||||
},
|
||||
"config": {
|
||||
"abort": {
|
||||
@@ -335,7 +336,7 @@
|
||||
"data_description": {
|
||||
"confirm_autodisovered_model": "Dacă alegeți să nu confirmați, puteți introduce singur producătorul și modelul"
|
||||
},
|
||||
"description": "{source}\n\nProducătorul \"{manufacturer}\" și modelul \"{model}\" au fost detectate automat pentru dispozitivul dvs.{remarks}",
|
||||
"description": "{source}\n\nProducătorul \"{manufacturer}\" și modelul \"{model}\" au fost detectate automat pentru dispozitivul dvs.{remarks}{profile_details}",
|
||||
"title": "Bibliotecă"
|
||||
},
|
||||
"library_custom_fields": {
|
||||
@@ -1000,7 +1001,7 @@
|
||||
},
|
||||
"library_options": {
|
||||
"title": "Opțiuni de bibliotecă",
|
||||
"description": "În prezent este selectat următorul profil de bibliotecă: \n producator: {manufacturer}\n model: {model}\n\nDacă doriți să schimbați profilul, faceți clic pe următorul."
|
||||
"description": "În prezent este selectat următorul profil de bibliotecă: \n producator: {manufacturer}\n model: {model}\n\nDacă doriți să schimbați profilul, faceți clic pe următorul.{profile_details}"
|
||||
},
|
||||
"select_device": {
|
||||
"data": {
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"source_entity": "Исходный объект",
|
||||
"source_device": "Исходное устройство",
|
||||
"remarks_smart_switch": "Этот профиль предоставляет только значения потребления в режиме ожидания. \n Если у вас есть устройство с фиксированным потреблением во включённом состоянии, вы можете указать это значение на следующем шаге",
|
||||
"remarks_smart_dimmer": "Этот профиль предоставляет только значения потребления в режиме ожидания. \n На следующем шаге вы можете дополнительно указать параметры подключённого светильника"
|
||||
"remarks_smart_dimmer": "Этот профиль предоставляет только значения потребления в режиме ожидания. \n На следующем шаге вы можете дополнительно указать параметры подключённого светильника",
|
||||
"view_measurement_details": "Посмотреть подробности измерения"
|
||||
},
|
||||
"config": {
|
||||
"abort": {
|
||||
@@ -335,7 +336,7 @@
|
||||
"data_description": {
|
||||
"confirm_autodisovered_model": "Если не подтвердите, вы сможете ввести производителя и модель вручную"
|
||||
},
|
||||
"description": "{source}\n\nПроизводитель \"{manufacturer}\" и модель \"{model}\" были автоматически определены для вашего устройства.{remarks}",
|
||||
"description": "{source}\n\nПроизводитель \"{manufacturer}\" и модель \"{model}\" были автоматически определены для вашего устройства.{remarks}{profile_details}",
|
||||
"title": "Библиотека"
|
||||
},
|
||||
"library_custom_fields": {
|
||||
@@ -1000,7 +1001,7 @@
|
||||
},
|
||||
"library_options": {
|
||||
"title": "Параметры библиотеки",
|
||||
"description": "В настоящее время выбран следующий профиль библиотеки: \n производитель: {manufacturer}\n модель: {model}\n\nЕсли хотите изменить профиль, нажмите далее."
|
||||
"description": "В настоящее время выбран следующий профиль библиотеки: \n производитель: {manufacturer}\n модель: {model}\n\nЕсли хотите изменить профиль, нажмите далее.{profile_details}"
|
||||
},
|
||||
"select_device": {
|
||||
"data": {
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"source_entity": "Zdrojová entita",
|
||||
"source_device": "Zdrojové zariadenie",
|
||||
"remarks_smart_switch": "Tento profil poskytuje iba hodnoty spotreby energie v pohotovostnom režime. \n Keď máte spotrebič, ktorý po zapnutí spotrebúva pevné množstvo energie, môžete túto hodnotu zadať v ďalšom kroku konfiguračného postupu",
|
||||
"remarks_smart_dimmer": "Tento profil poskytuje iba hodnoty spotreby energie v pohotovostnom režime. \n V ďalšom kroku môžete voliteľne zadať hodnoty pripojeného svetla"
|
||||
"remarks_smart_dimmer": "Tento profil poskytuje iba hodnoty spotreby energie v pohotovostnom režime. \n V ďalšom kroku môžete voliteľne zadať hodnoty pripojeného svetla",
|
||||
"view_measurement_details": "Zobraziť podrobnosti merania"
|
||||
},
|
||||
"config": {
|
||||
"abort": {
|
||||
@@ -335,7 +336,7 @@
|
||||
"data_description": {
|
||||
"confirm_autodisovered_model": "Ak sa rozhodnete nepotvrdiť, môžete zadať výrobcu a model sami"
|
||||
},
|
||||
"description": "{source}\n\nVýrobca \"{manufacturer}\" a model \"{model}\" boli automaticky detekované pre vaše zariadenie.{remarks}",
|
||||
"description": "{source}\n\nVýrobca \"{manufacturer}\" a model \"{model}\" boli automaticky detekované pre vaše zariadenie.{remarks}{profile_details}",
|
||||
"title": "Knižnica"
|
||||
},
|
||||
"library_custom_fields": {
|
||||
@@ -1000,7 +1001,7 @@
|
||||
},
|
||||
"library_options": {
|
||||
"title": "Možnosti knižnice",
|
||||
"description": "Momentálne je vybratý nasledujúci profil knižnice: \n výrobca: {manufacturer}\n model: {model}\n\nAk chcete profil zmeniť, kliknite na tlačidlo Ďalej."
|
||||
"description": "Momentálne je vybratý nasledujúci profil knižnice: \n výrobca: {manufacturer}\n model: {model}\n\nAk chcete profil zmeniť, kliknite na tlačidlo Ďalej.{profile_details}"
|
||||
},
|
||||
"select_device": {
|
||||
"data": {
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"source_entity": "Källentitet",
|
||||
"source_device": "Källenhet",
|
||||
"remarks_smart_switch": "Denna profil visar endast effekt i standby-läge. \n Har du apparater som förbrukar ett fast effekt-värde när de är påslagna, kan du ange detta värde i nästa steg",
|
||||
"remarks_smart_dimmer": "Den här profilen ger endast standby-effektvärden. \n I nästa steg kan du ange värden för det anslutna ljuset som tillval"
|
||||
"remarks_smart_dimmer": "Den här profilen ger endast standby-effektvärden. \n I nästa steg kan du ange värden för det anslutna ljuset som tillval",
|
||||
"view_measurement_details": "Visa mätdetaljer"
|
||||
},
|
||||
"config": {
|
||||
"abort": {
|
||||
@@ -335,7 +336,7 @@
|
||||
"data_description": {
|
||||
"confirm_autodisovered_model": "Om du väljer att inte bekräfta kan du ange tillverkare och modell själv"
|
||||
},
|
||||
"description": "{source}\n\nTillverkare \"{manufacturer}\" och modell \"{model}\" var automatiskt detekterade för din lampa.{remarks}",
|
||||
"description": "{source}\n\nTillverkare \"{manufacturer}\" och modell \"{model}\" var automatiskt detekterade för din lampa.{remarks}{profile_details}",
|
||||
"title": "Bibliotek"
|
||||
},
|
||||
"library_custom_fields": {
|
||||
@@ -1000,7 +1001,7 @@
|
||||
},
|
||||
"library_options": {
|
||||
"title": "Biblioteksalternativ",
|
||||
"description": "För närvarande är följande biblioteksprofil vald: \n tillverkare: {manufacturer}\n modell: {model}\n\nOm du vill ändra profilen klickar du på nästa."
|
||||
"description": "För närvarande är följande biblioteksprofil vald: \n tillverkare: {manufacturer}\n modell: {model}\n\nOm du vill ändra profilen klickar du på nästa.{profile_details}"
|
||||
},
|
||||
"select_device": {
|
||||
"data": {
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"source_entity": "源实体",
|
||||
"source_device": "源设备",
|
||||
"remarks_smart_switch": "此配置文件仅提供待机功率值。\n 如果设备开启时消耗固定功率,可以在配置流程的下一步提供该值",
|
||||
"remarks_smart_dimmer": "此配置文件仅提供待机功率值。\n 下一步可以选择提供连接灯具的功率值"
|
||||
"remarks_smart_dimmer": "此配置文件仅提供待机功率值。\n 下一步可以选择提供连接灯具的功率值",
|
||||
"view_measurement_details": "查看测量详情"
|
||||
},
|
||||
"config": {
|
||||
"abort": {
|
||||
@@ -335,7 +336,7 @@
|
||||
"data_description": {
|
||||
"confirm_autodisovered_model": "如果不确认,可以自行输入制造商和型号"
|
||||
},
|
||||
"description": "{source}\n\n已自动检测到设备的制造商“{manufacturer}”和型号“{model}”。{remarks}",
|
||||
"description": "{source}\n\n已自动检测到设备的制造商“{manufacturer}”和型号“{model}”。{remarks}{profile_details}",
|
||||
"title": "配置文件库"
|
||||
},
|
||||
"library_custom_fields": {
|
||||
@@ -1000,7 +1001,7 @@
|
||||
},
|
||||
"library_options": {
|
||||
"title": "配置文件库选项",
|
||||
"description": "当前选择了以下配置文件库中的配置文件:\n 制造商:{manufacturer}\n 型号:{model}\n\n如需更改配置文件,请点击“下一步”。"
|
||||
"description": "当前选择了以下配置文件库中的配置文件:\n 制造商:{manufacturer}\n 型号:{model}\n\n如需更改配置文件,请点击“下一步”。{profile_details}"
|
||||
},
|
||||
"select_device": {
|
||||
"data": {
|
||||
|
||||
Reference in New Issue
Block a user