251 files
This commit is contained in:
@@ -18,6 +18,7 @@ from ....reference_extraction import (
|
||||
VALUE_KEYS,
|
||||
core_references,
|
||||
event_payload_keys_to_leave_alone,
|
||||
extract_platform_keys_from_config,
|
||||
names_given_to_templates,
|
||||
threshold_entities,
|
||||
without_never_rendered,
|
||||
@@ -355,10 +356,6 @@ class SpookRepair(AbstractSpookAutomationReferencesRepair):
|
||||
self.hass, entity.raw_config, self._known_services
|
||||
)
|
||||
)
|
||||
for key in ("trigger", "triggers"):
|
||||
all_entities.difference_update(
|
||||
extract_event_types_from_trigger_config(entity.raw_config.get(key))
|
||||
)
|
||||
|
||||
# Extract entities from Template objects within the automation entity
|
||||
all_entities.update(
|
||||
@@ -368,6 +365,19 @@ class SpookRepair(AbstractSpookAutomationReferencesRepair):
|
||||
)
|
||||
|
||||
raw_config = getattr(entity, "raw_config", None)
|
||||
if raw_config:
|
||||
# The kinds of trigger and event this automation listens for look
|
||||
# like entity IDs, `sun.dusk` and `timer.finished` for two, and a
|
||||
# template comparing `trigger.platform` or the event type with
|
||||
# one names no entity at all.
|
||||
all_entities.difference_update(
|
||||
extract_platform_keys_from_config(raw_config).trigger_keys
|
||||
)
|
||||
for key in ("trigger", "triggers"):
|
||||
all_entities.difference_update(
|
||||
extract_event_types_from_trigger_config(raw_config.get(key))
|
||||
)
|
||||
|
||||
return await async_unknown_entities_named(
|
||||
self.hass,
|
||||
all_entities,
|
||||
|
||||
@@ -42,7 +42,9 @@ class SpookRepair(AbstractSpookRepair):
|
||||
self.hass, entity_ids=members, known_entity_ids=known_entity_ids
|
||||
):
|
||||
described = await async_describe_unknown_entities(
|
||||
self.hass, sorted(unknown_entities)
|
||||
self.hass,
|
||||
sorted(unknown_entities),
|
||||
referenced_by={entity.entity_id},
|
||||
)
|
||||
self.async_create_issue(
|
||||
issue_id=entity.entity_id,
|
||||
|
||||
@@ -595,7 +595,12 @@ def async_drop_existing_action_names(
|
||||
# easy-layout-card hands mini-graph-card `this.entity_id1`, `this.entity_id2`
|
||||
# and so on, one per entity. Anything starting with these is the same variable
|
||||
# with a number on it, and no domain ever will be. #1606.
|
||||
NEVER_AN_ENTITY_PREFIXES = ("trigger.entity_id", "this.entity_id")
|
||||
#
|
||||
# `browser_entities` is browser_mod's: a dictionary of the entities of the
|
||||
# browser looking at the dashboard, only there in its own cards, frontend
|
||||
# templates and browser calls. `browser_entities.browserID` reads like an
|
||||
# entity ID, and is the browser's own sensor, whichever browser it is. #1982.
|
||||
NEVER_AN_ENTITY_PREFIXES = ("trigger.entity_id", "this.entity_id", "browser_entities.")
|
||||
|
||||
|
||||
@callback
|
||||
|
||||
@@ -10,5 +10,5 @@
|
||||
"iot_class": "calculated",
|
||||
"issue_tracker": "https://github.com/frenck/spook/issues",
|
||||
"requirements": [],
|
||||
"version": "5.11.0"
|
||||
"version": "5.11.1"
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"offset": "Läggs till källans värde. En sensor som visar 1,5 grader för mycket får -1,5. I den enhet som källan rapporterar i.",
|
||||
"factor": "Källans värde multipliceras först med detta. Låt stå på 1 för att bara lägga till förskjutningen."
|
||||
},
|
||||
"description": "Denna hjälpare korrigerar en sensor som visar fel: en temperatur en grad för hög, en luftfuktighet några procent för låg. Den visar källans värde gånger faktorn, plus förskjutningen.",
|
||||
"description": "Denna hjälpare korrigerar en sensor som visar fel: en temperatur en grad för hög, en luftfuktighet några procent för låg. Den visar källans värde multiplicerat med faktorn, plus förskjutningen.",
|
||||
"title": "Kalibrering 👻"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,5 +10,5 @@
|
||||
"iot_class": "calculated",
|
||||
"issue_tracker": "https://github.com/frenck/spook/issues",
|
||||
"requirements": [],
|
||||
"version": "5.11.0"
|
||||
"version": "5.11.1"
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
"valve": "Invertera en ventil"
|
||||
},
|
||||
"title": "Invertera 👻",
|
||||
"description": "Denna hjälpare låter dig invertera beteendet hos en entitet. Till exempel vända på öppen/stängd eller på/av för binära sensorer, skydd, brytare och ventiler."
|
||||
"description": "Denna hjälpare låter dig invertera beteendet hos en entitet. Till exempel genom att vända på öppen/stängd eller på/av för binära sensorer, skydd, brytare och ventiler."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -10,5 +10,5 @@
|
||||
"iot_class": "calculated",
|
||||
"issue_tracker": "https://github.com/frenck/spook/issues",
|
||||
"requirements": [],
|
||||
"version": "5.11.0"
|
||||
"version": "5.11.1"
|
||||
}
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
"calendar",
|
||||
"climate",
|
||||
"cloud",
|
||||
"conversation",
|
||||
"counter",
|
||||
"cover",
|
||||
"energy",
|
||||
@@ -51,5 +50,5 @@
|
||||
"iot_class": "local_push",
|
||||
"issue_tracker": "https://github.com/frenck/spook/issues",
|
||||
"requirements": [],
|
||||
"version": "5.11.0"
|
||||
"version": "5.11.1"
|
||||
}
|
||||
|
||||
@@ -45,7 +45,12 @@ from homeassistant.helpers.event import async_call_later, async_track_time_inter
|
||||
from homeassistant.helpers.recorder import get_instance
|
||||
from homeassistant.util.async_ import create_eager_task
|
||||
|
||||
from .attribute_checking import async_unknown_attributes
|
||||
from .attribute_checking import (
|
||||
NAMES_THE_STATE_HINT,
|
||||
async_note_attributes,
|
||||
async_unknown_attributes,
|
||||
names_the_state,
|
||||
)
|
||||
from .attribute_value_checking import as_yaml, async_unknown_attribute_values
|
||||
from .const import DOMAIN, LOGGER
|
||||
from .dashboard_resources import is_yaml_managed, redundant_item_ids
|
||||
@@ -76,6 +81,7 @@ from .reference_extraction import (
|
||||
NamedReferences,
|
||||
async_collect_mentioned_strings,
|
||||
async_referencing,
|
||||
config_to_judge,
|
||||
extract_attribute_references_from_config,
|
||||
extract_state_references_from_config,
|
||||
)
|
||||
@@ -120,6 +126,15 @@ _MIN_MAX_MINIMUM_MEMBERS = 2
|
||||
# the worst moment for it. #1898.
|
||||
FIRST_INSPECTIONS_SPREAD_OVER = timedelta(minutes=2)
|
||||
|
||||
# What an entity registry entry can have written to it that no repair looks
|
||||
# at. Integrations write these all day long: a media player's sources, a
|
||||
# select's options or a climate entity's modes go in `capabilities` every
|
||||
# time they change, along with the features that come with them. None of it
|
||||
# changes which entities there are or what they are called, and every one of
|
||||
# them had every repair listening to the registry look at the whole house
|
||||
# again.
|
||||
REGISTRY_CHANGES_NO_REPAIR_LOOKS_AT = frozenset({"capabilities", "supported_features"})
|
||||
|
||||
|
||||
def _plural(items: Sized) -> str:
|
||||
"""Return the plural suffix for a sized collection."""
|
||||
@@ -131,6 +146,20 @@ def _bulleted(items: Iterable[str]) -> str:
|
||||
return "\n".join(f"- `{item}`" for item in items)
|
||||
|
||||
|
||||
@callback
|
||||
def _registry_entry_changed_something_looked_at(
|
||||
event_data: er.EventEntityRegistryUpdatedData,
|
||||
) -> bool:
|
||||
"""Return whether a registry event is worth another look.
|
||||
|
||||
An entry created or removed always is, and so is any update with more in
|
||||
it than what no repair looks at.
|
||||
"""
|
||||
if event_data["action"] != "update":
|
||||
return True
|
||||
return not event_data["changes"].keys() <= REGISTRY_CHANGES_NO_REPAIR_LOOKS_AT
|
||||
|
||||
|
||||
def format_config_entry_references(
|
||||
hass: HomeAssistant, entry_ids: Iterable[str]
|
||||
) -> str:
|
||||
@@ -348,6 +377,9 @@ class AbstractSpookRepairBase(ABC):
|
||||
class AbstractSpookRepair(AbstractSpookRepairBase):
|
||||
"""Abstract base class to hold a Spook repairs."""
|
||||
|
||||
#: Re-run the inspection when one of these is fired. Entity registry
|
||||
#: updates writing only what no repair looks at are let go, see
|
||||
#: `REGISTRY_CHANGES_NO_REPAIR_LOOKS_AT`.
|
||||
inspect_events: set[EventType[Any] | str] | None = None
|
||||
inspect_debouncer: Debouncer[Coroutine[Any, Any, None]]
|
||||
inspect_config_entry_changed: bool | str = False
|
||||
@@ -371,10 +403,18 @@ class AbstractSpookRepair(AbstractSpookRepairBase):
|
||||
#: as a state and nothing else, often well after Home Assistant started.
|
||||
inspect_on_entity_added_or_removed: bool = False
|
||||
|
||||
#: Re-run the inspection when an entity gains an attribute it was reported
|
||||
#: without, handed over with `_await_attributes`. A sensor that lost its
|
||||
#: attributes for a while gets them back without anything else that would
|
||||
#: bring a look: no reload, no registry change, and the daily look can be
|
||||
#: a day away. #1995.
|
||||
inspect_when_attributes_appear: bool = False
|
||||
|
||||
automatically_clean_up_issues: bool = False
|
||||
possible_issue_ids: set[str]
|
||||
|
||||
_event_subs: set[Callable[[], None]]
|
||||
_attributes_awaited: dict[str, frozenset[str]]
|
||||
|
||||
def __init__(self, hass: HomeAssistant) -> None:
|
||||
"""Initialize the repair."""
|
||||
@@ -382,6 +422,21 @@ class AbstractSpookRepair(AbstractSpookRepairBase):
|
||||
self._event_subs = set()
|
||||
self.possible_issue_ids = set()
|
||||
self._waiting_for_first_inspection = False
|
||||
self._attributes_awaited = {}
|
||||
|
||||
@callback
|
||||
def _await_attributes(self, pairs: Iterable[tuple[str, str]]) -> None:
|
||||
"""Remember the (entity ID, attribute) pairs this round reported.
|
||||
|
||||
Replaced every round, so what is fixed or gone is no longer waited on.
|
||||
"""
|
||||
awaited: dict[str, set[str]] = {}
|
||||
for entity_id, attribute in pairs:
|
||||
awaited.setdefault(entity_id, set()).add(attribute)
|
||||
self._attributes_awaited = {
|
||||
entity_id: frozenset(attributes)
|
||||
for entity_id, attributes in awaited.items()
|
||||
}
|
||||
|
||||
async def _async_inspect_with_cleanup(self) -> None:
|
||||
"""Run an inspection and clean up issues that are no longer valid."""
|
||||
@@ -468,7 +523,15 @@ class AbstractSpookRepair(AbstractSpookRepairBase):
|
||||
if self.inspect_events is not None:
|
||||
for event in self.inspect_events:
|
||||
self._event_subs.add(
|
||||
self.hass.bus.async_listen(event, _async_call_inspect_debouncer),
|
||||
self.hass.bus.async_listen(
|
||||
event,
|
||||
_async_call_inspect_debouncer,
|
||||
event_filter=(
|
||||
_registry_entry_changed_something_looked_at
|
||||
if event == er.EVENT_ENTITY_REGISTRY_UPDATED
|
||||
else None
|
||||
),
|
||||
),
|
||||
)
|
||||
|
||||
if self.inspect_interval is not None:
|
||||
@@ -507,6 +570,9 @@ class AbstractSpookRepair(AbstractSpookRepairBase):
|
||||
),
|
||||
)
|
||||
|
||||
if self.inspect_when_attributes_appear:
|
||||
self._listen_for_awaited_attributes()
|
||||
|
||||
if self.inspect_on_reload:
|
||||
|
||||
@callback
|
||||
@@ -554,6 +620,48 @@ class AbstractSpookRepair(AbstractSpookRepairBase):
|
||||
),
|
||||
)
|
||||
|
||||
@callback
|
||||
def _listen_for_awaited_attributes(self) -> None:
|
||||
"""Look again once an entity gets an attribute this repair waits on."""
|
||||
|
||||
@callback
|
||||
def _an_awaited_attribute_appeared(event_data: Mapping[str, Any]) -> bool:
|
||||
"""Return whether an entity just got an attribute it was missing.
|
||||
|
||||
Only the update it shows up in: a sensor that updates every second
|
||||
must not bring a look, and the recorder question that comes with
|
||||
it, each time.
|
||||
"""
|
||||
awaited = self._attributes_awaited.get(event_data["entity_id"])
|
||||
if awaited is None or (new_state := event_data.get("new_state")) is None:
|
||||
return False
|
||||
|
||||
old_state = event_data.get("old_state")
|
||||
had = old_state.attributes if old_state is not None else {}
|
||||
return any(
|
||||
attribute in new_state.attributes and attribute not in had
|
||||
for attribute in awaited
|
||||
)
|
||||
|
||||
@callback
|
||||
def _async_attribute_appeared(event: Event) -> None:
|
||||
# Noted right away: it may be gone again by the time the look
|
||||
# comes, before the recorder has written it down.
|
||||
async_note_attributes(
|
||||
self.hass,
|
||||
event.data["entity_id"],
|
||||
event.data["new_state"].attributes,
|
||||
)
|
||||
self.inspect_debouncer.async_schedule_call()
|
||||
|
||||
self._event_subs.add(
|
||||
self.hass.bus.async_listen(
|
||||
EVENT_STATE_CHANGED,
|
||||
_async_attribute_appeared,
|
||||
event_filter=_an_awaited_attribute_appeared,
|
||||
),
|
||||
)
|
||||
|
||||
async def async_deactivate(self) -> None:
|
||||
"""Unregister the repair."""
|
||||
for sub in self._event_subs.copy():
|
||||
@@ -785,6 +893,9 @@ class AbstractSpookUnknownEntityNamesRepair(
|
||||
#: How one finding reads in the issue, with ``{name}`` and ``{entity_id}``.
|
||||
finding_line: str
|
||||
|
||||
#: Whether the names are attributes, which can be the state by another name.
|
||||
names_attributes: bool = False
|
||||
|
||||
_unknown_by_owner: dict[str, set[str]]
|
||||
_unknown_by_reference: dict[str, _UnknownName]
|
||||
_inspected_configs: dict[str, Any]
|
||||
@@ -849,7 +960,7 @@ class AbstractSpookUnknownEntityNamesRepair(
|
||||
"""
|
||||
named = self._named.get(entity.entity_id)
|
||||
if named is None or named[0] is not config:
|
||||
named = (config, self._references_in(config))
|
||||
named = (config, self._references_in(config_to_judge(entity, config)))
|
||||
self._named[entity.entity_id] = named
|
||||
references = named[1]
|
||||
|
||||
@@ -908,6 +1019,12 @@ class AbstractSpookUnknownEntityNamesRepair(
|
||||
{pair for pairs in named.values() for pair in pairs}
|
||||
)
|
||||
by_pair = {(finding.entity_id, finding.name): finding for finding in unknown}
|
||||
if self.inspect_when_attributes_appear:
|
||||
self._await_attributes(
|
||||
(finding.entity_id, finding.name)
|
||||
for finding in unknown
|
||||
if isinstance(finding.name, str)
|
||||
)
|
||||
|
||||
self._inspected_configs = configs
|
||||
self._unknown_by_reference = {
|
||||
@@ -971,6 +1088,12 @@ class AbstractSpookUnknownEntityNamesRepair(
|
||||
line = self.finding_line.format(name=name, entity_id=finding.entity_id)
|
||||
if finding.suggestion is not None:
|
||||
line += f" (did you mean `{finding.suggestion}`?)"
|
||||
elif (
|
||||
self.names_attributes
|
||||
and isinstance(name, str)
|
||||
and names_the_state(finding.entity_id, name)
|
||||
):
|
||||
line += f" ({NAMES_THE_STATE_HINT})"
|
||||
lines.append(line)
|
||||
return "\n".join(lines)
|
||||
|
||||
@@ -980,6 +1103,8 @@ class AbstractSpookUnknownAttributesRepair(AbstractSpookUnknownEntityNamesRepair
|
||||
|
||||
reference_label = "attributes"
|
||||
finding_line = "- `{name}` of `{entity_id}`"
|
||||
names_attributes = True
|
||||
inspect_when_attributes_appear = True
|
||||
|
||||
def _references_in(self, config: dict[str, Any]) -> NamedReferences:
|
||||
"""Return the attributes a configuration names, and of which entities."""
|
||||
|
||||
@@ -897,10 +897,6 @@
|
||||
"title": "Unknown notifiers used by alert: {alert}",
|
||||
"description": "Spook has found a ghost in your alerts 👻\n\nThe alert {alert} (`{entity_id}`) notifies through the following actions, which are unknown to Home Assistant:\n\n{notifiers}\n\nThe alert still fires and still does its rounds, but these notifications go nowhere. Home Assistant logs that only at the moment the alert fires, which is a poor moment to find out nobody is listening.\n\nTo fix this error, edit the `notifiers:` list of this alert in your configuration and remove or correct these entries.\n\nSpook 👻 Your homie."
|
||||
},
|
||||
"assist_duplicate_names": {
|
||||
"title": "Assist can't tell these apart: {name}",
|
||||
"description": "Spook has found a ghost in your voice assistants 👻\n\nThe following entities are exposed to Assist, and all answer to the name {name}:\n\n{entities}\n\nWhen names are the same, Assist only tells them apart by area: the one you name, or the one your voice satellite is in. Some of these share an area, or have no area at all, so Assist can't pick them out by this name from anywhere. Asking for {name} then fails, and nothing says which entities are in the way.\n\nTo fix this, give each one a name or alias of its own, or move them into different areas. You can change the aliases of an entity, and whether Assist sees it at all, under [Exposed entities](/config/voice-assistants/expose). Areas are set on the [Areas page](/config/areas/dashboard).\n\nSpook 👻 Your homie."
|
||||
},
|
||||
"automation_never_true_templates": {
|
||||
"description": "Spook has found a ghost in your automations 👻\n\nWhile floating around, Spook crossed path with the following automation:\n\n[{automation}]({edit}) (`{entity_id}`)\n\nThis automation has the following templates, which can never pass, whatever happens in your home:\n\n{templates}\n\n\n\nA template condition passes only when it renders `true`, and a `wait_template` too, unless it changes into something that reads as true later. A template trigger fires when its template turns into something that reads as true, like `true`, `on`, `yes` or `1`. These templates always render something else, because of how they are written. The usual causes:\n\n- Quotes around the template. A `>-` block takes them as text, so they end up in the result.\n- No template delimiters at all, so the text is taken as it is.\n- YAML pasted into the template field.\n- A YAML `#` comment inside the Jinja, which Jinja prints as text.\n- A condition that renders `on` instead of `true`.\n\nNothing tells you: the condition never passes, the wait only ends on its timeout, and the trigger never fires. To fix this, [edit the automation]({edit}) and make the template render `true` when it should pass.\n\nSpook 👻 Your homie.",
|
||||
"title": "Templates that can never pass in: {automation}"
|
||||
|
||||
@@ -33,10 +33,10 @@
|
||||
"name": "Ponovo pokreni"
|
||||
},
|
||||
"repairs_ignore_all": {
|
||||
"name": "Zanemari sve"
|
||||
"name": "Ignoriši sve"
|
||||
},
|
||||
"repairs_unignore_all": {
|
||||
"name": "Poništi zanemarivanje svih"
|
||||
"name": "Poništi ignorisanje svih"
|
||||
}
|
||||
},
|
||||
"event": {
|
||||
@@ -210,7 +210,7 @@
|
||||
"name": "Ukupno"
|
||||
},
|
||||
"repairs_ignored_issues": {
|
||||
"name": "Zanemareno"
|
||||
"name": "Ignorisano"
|
||||
},
|
||||
"repairs_active_issues": {
|
||||
"name": "Aktivno"
|
||||
@@ -440,13 +440,22 @@
|
||||
"message": "{entity_id} je raspored iz vaše YAML konfiguracije, koji Spook ne može da promeni. Umesto toga, uredi ga direktno u vašoj konfiguraciji."
|
||||
},
|
||||
"area_nothing_to_update": {
|
||||
"message": "Nema ništa za ažuriranje u prostoriji {area_id}: navedite barem jedno od polja {fields}."
|
||||
"message": "Nema ništa za ažuriranje u prostoriji {area_id}: navedite barem jedno od {fields}."
|
||||
},
|
||||
"device_nothing_to_update": {
|
||||
"message": "Nema ništa za ažuriranje na uređaju {device_id}: navedite barem jedno od polja {fields}."
|
||||
"message": "Nema ništa za ažuriranje na uređaju {device_id}: navedite barem jedno od {fields}."
|
||||
},
|
||||
"floor_nothing_to_update": {
|
||||
"message": "Nema ništa za ažuriranje na spratu {floor_id}: navedite barem jedno od polja {fields}."
|
||||
"message": "Nema ništa za ažuriranje na spratu {floor_id}: navedite barem jedno od {fields}."
|
||||
},
|
||||
"area_name_taken": {
|
||||
"message": "Naziv {name} je već zauzet od strane prostorije {area_id}."
|
||||
},
|
||||
"floor_name_taken": {
|
||||
"message": "Naziv {name} je već zauzet od strane sprata {floor_id}."
|
||||
},
|
||||
"schedule_blocks_invalid": {
|
||||
"message": "Ovi vremenski blokovi ne odgovaraju entitetu {entity_id}: {error}. Ništa nije promenjeno."
|
||||
}
|
||||
},
|
||||
"issues": {
|
||||
@@ -502,7 +511,7 @@
|
||||
},
|
||||
"proximity_unknown_ignored_zones": {
|
||||
"description": "Spook je pronašao duha u vašoj konfiguraciji blizine 👻\n\nDok je lutao okolo, Spook je naišao na sledeću konfiguraciju blizine:\n\n{name}\n\nOva konfiguracija ignoriše zone koje su nepoznate Home Assistant‑u:\n\n{zones}\n\n\n\nDa biste ispravili ovu grešku, izmenite konfiguraciju i uklonite ovu/ove zone.\n\nSpook 👻 Vaš pomoćnik.",
|
||||
"title": "Nepoznate zanemarene zone: {name}"
|
||||
"title": "Nepoznate ignorisane zone: {name}"
|
||||
},
|
||||
"proximity_unknown_tracked_entities": {
|
||||
"description": "Spook je pronašao duha u vašoj konfiguraciji blizine 👻\n\nDok je lutao okolo, Spook je naišao na sledeću konfiguraciju blizine:\n\n{name}\n\nOva konfiguracija prati osobe ili uređaje koji su nepoznati Home Assistant‑u:\n\n{entities}\n\n\n\nDa biste ispravili ovu grešku, izmenite konfiguraciju i uklonite ovaj/ove entitete.\n\nSpook 👻 Vaš pomoćnik.",
|
||||
@@ -957,28 +966,52 @@
|
||||
"description": "Spook je pronašao duha u vašim skriptama 👻\n\nDok je lebdeo okolo, Spook je naišao na sledeću skriptu:\n\n[{script}]({edit}) (`{entity_id}`)\n\nOva skripta navodi sledeće korisnike koji više ne postoje:\n\n{users}\n\n\n\nHome Assistant nikada ne dodeljuje isti ID korisnika dvaput, što znači da su ovi korisnici uklonjeni. Šablon koji se poredi sa nekim od njih nikada neće napraviti podudaranje, a pokretač koji čeka nekog od njih nikada se neće aktivirati, a da Vam sistem to ne signalizira. Da biste ovo ispravili, [uredite skriptut]({edit}) i upotrebite ID korisnika koji postoji, ili uklonite tu proveru.\n\nSpook 👻 Vaš pomoćnik."
|
||||
},
|
||||
"automation_unknown_config_entry_references": {
|
||||
"description": "Spook je pronašao duha u vašim automatizacijama 👻\n\nDok je lebdeo okolo, Spook je naišao na sledeću automatizaciju:\n\n[{automation}]({edit}) (`{entity_id}`)\n\nOva automatizacija prosleđuje svojim akcijama sledeće unose integracija, koji su nepoznati Home Assistant-u ili pripadaju nekoj drugoj integraciji u odnosu na onu koju akcija zahteva:\n\n{config_entries}\n\nHome Assistant ih odbija u trenutku pokretanja tog koraka. Ovo se obično dešava nakon što je integracija uklonjena pa ponovo dodata: tada dobija novi unos integracije sa novim ID-jem.\n\nDa biste ispravili ovu grešku, uredite automatizaciju i ponovo izaberite unos integracije u ovim akcijama.\n\nSpook 👻 Vaš pomoćnik."
|
||||
"description": "Spook je pronašao duha u vašim automatizacijama 👻\n\nDok je lebdeo okolo, Spook je naišao na sledeću automatizaciju:\n\n[{automation}]({edit}) (`{entity_id}`)\n\nOva automatizacija prosleđuje svojim akcijama sledeće unose integracija, koji su nepoznati Home Assistant-u ili pripadaju nekoj drugoj integraciji u odnosu na onu koju akcija zahteva:\n\n{config_entries}\n\nHome Assistant ih odbija u trenutku pokretanja tog koraka. Ovo se obično dešava nakon što je integracija uklonjena pa ponovo dodata: tada dobija novi unos integracije sa novim ID-jem.\n\nDa biste ispravili ovu grešku, uredite automatizaciju i ponovo izaberite unos integracije u ovim akcijama.\n\nSpook 👻 Vaš pomoćnik.",
|
||||
"title": "Nepoznati unosi integracija u: {automation}"
|
||||
},
|
||||
"automation_unknown_icons": {
|
||||
"description": "Spook je pronašao duha u vašim automatizacijama 👻\n\nDok je lebdeo okolo, Spook je naišao na sledeću automatizaciju:\n\n[{automation}]({edit}) (`{entity_id}`)\n\nOva automatizacija dodeljuje sledeće ikone, koje ne postoje u Material Design Icons paketu koji dolazi uz Home Assistant:\n\n{icons}\n\n\n\nSvaka od njih se prikazuje kao prazno mesto, bez ijedne reči. Ovo se često dešava kada je naziv ikone pogrešno otkucan, promenjen ili uklonjen, ili ako je izabrana iz novije verzije Material Design Icons paketa u odnosu na onu koja dolazi uz Home Assistant. Da biste ispravili ovu grešku, [uredite automatizaciju]({edit}) i zamenite ih ikonama koje postoje.\n\nSpook 👻 Vaš pomoćnik."
|
||||
"description": "Spook je pronašao duha u vašim automatizacijama 👻\n\nDok je lebdeo okolo, Spook je naišao na sledeću automatizaciju:\n\n[{automation}]({edit}) (`{entity_id}`)\n\nOva automatizacija dodeljuje sledeće ikone, koje ne postoje u Material Design Icons paketu koji dolazi uz Home Assistant:\n\n{icons}\n\n\n\nSvaka od njih se prikazuje kao prazno mesto, bez ijedne reči. Ovo se često dešava kada je naziv ikone pogrešno otkucan, promenjen ili uklonjen, ili ako je izabrana iz novije verzije Material Design Icons paketa u odnosu na onu koja dolazi uz Home Assistant. Da biste ispravili ovu grešku, [uredite automatizaciju]({edit}) i zamenite ih ikonama koje postoje.\n\nSpook 👻 Vaš pomoćnik.",
|
||||
"title": "Nepoznate ikone u: {automation}"
|
||||
},
|
||||
"automation_never_true_templates": {
|
||||
"description": "Spook je pronašao duha u Vašim automatizacijama 👻\n\nDok je lebdeo okolo, Spook je naišao na sledeću automatizaciju:\n\n[{automation}]({edit}) (`{entity_id}`)\n\nOva automatizacija sadrži sledeće šablone, koji nikada ne mogu da prođu, šta god da se desi u vašem domu:\n\n{templates}\n\n\n\nUslov šablona (template condition) prolazi samo kada vrati vrednost `true`, kao i `wait_template`, osim ako se kasnije ne promeni u nešto što se čita kao tačno. Pokretač šablona se aktivira kada se njegov šablon promeni u nešto što se čita kao tačno, poput `true`, `on`, `yes` ili `1`. Ovi šabloni uvek vraćaju nešto drugo, zbog načina na koji su napisani. Uobičajeni uzroci su:\n\n- Navodnici oko šablona. `>-` blok ih prihvata kao tekst, pa oni na kraju završe u rezultatu.\n- Uopšte nema graničnika šablona (template delimiters), pa se tekst uzima onakav kakav jeste.\n- YAML kod je kopiran u polje za šablon.\n- YAML komentar sa znakom `#` unutar Jinja koda, što Jinja ispisuje kao tekst.\n- Uslov koji vraća on umesto `true`.\n\nSistem Vam ništa ne signalizira: uslov nikada ne prolazi, čekanje (wait) se završava tek kada istekne vremensko ograničenje (timeout), a pokretač se nikada ne aktivira. Da biste ovo ispravili, [uredite automatizaciju]({edit}) i podesite šablon tako da vrati `true`kada treba da prođe.\n\nSpook 👻 Vaš pomoćnik."
|
||||
"description": "Spook je pronašao duha u vašim automatizacijama 👻\n\nDok je lebdeo okolo, Spook je naišao na sledeću automatizaciju:\n\n[{automation}]({edit}) (`{entity_id}`)\n\nOva automatizacija sadrži sledeće šablone, koji nikada ne mogu da prođu, šta god da se desi u vašem domu:\n\n{templates}\n\n\n\nUslov šablona (template condition) prolazi samo kada vrati vrednost `true`, kao i `wait_template`, osim ako se kasnije ne promeni u nešto što se čita kao tačno. Pokretač šablona se aktivira kada se njegov šablon promeni u nešto što se čita kao tačno, poput `true`, `on`, `yes` ili `1`. Ovi šabloni uvek vraćaju nešto drugo, zbog načina na koji su napisani. Uobičajeni uzroci su:\n\n- Navodnici oko šablona. `>-` blok ih prihvata kao tekst, pa oni na kraju završe u rezultatu.\n- Uopšte nema graničnika šablona, pa se tekst uzima onakav kakav jeste.\n- YAML kod je kopiran u polje za šablon.\n- YAML komentar sa znakom `#` unutar Jinja koda, što Jinja ispisuje kao tekst.\n- Uslov koji vraća on umesto `true`.\n\nSistem Vam ništa ne signalizira: uslov nikada ne prolazi, čekanje (wait) se završava tek kada istekne vremensko ograničenje, a pokretač se nikada ne aktivira. Da biste ovo ispravili, [uredite automatizaciju]({edit}) i podesite šablon tako da vrati `true`kada treba da prođe.\n\nSpook 👻 Vaš pomoćnik.",
|
||||
"title": "Šabloni koji nikada ne mogu da prođu u: {automation}"
|
||||
},
|
||||
"lovelace_unknown_icons": {
|
||||
"description": "Spook je pronašao duha na vašim kontrolnim tablama 👻\n\n\nDok je lebdeo okolo, Spook je naišao na sledeću kontrolnu tablu:\n\n[{dashboard}]({edit})\n\nOva kontrolna tabla koristi sledeće ikone, koje ne postoje u Material Design Icons paketu koji dolazi uz Home Assistant (verzija {version}):\n\n{icons}\n\n\n\nSvaka od njih se prikazuje kao prazno mesto, bez ijedne reči. Ovo se često dešava kada je naziv ikone pogrešno otkucan, promenjen ili uklonjen, ili ako je izabrana iz novije verzije Material Design Icons paketa u odnosu na onu koja dolazi uz Home Assistant. Da biste ispravili ovu grešku, uredite kontrolnu tablu i zamenite ih ikonama koje postoje. Ikona kontrolne table u bočnoj traci menja se u podešavanjima Vaših kontrolnih tabli.\n\nSpook 👻 Vaš pomoćnik."
|
||||
"description": "Spook je pronašao duha na vašim kontrolnim tablama 👻\n\n\nDok je lebdeo okolo, Spook je naišao na sledeću kontrolnu tablu:\n\n[{dashboard}]({edit})\n\nOva kontrolna tabla koristi sledeće ikone, koje ne postoje u Material Design Icons paketu koji dolazi uz Home Assistant (verzija {version}):\n\n{icons}\n\n\n\nSvaka od njih se prikazuje kao prazno mesto, bez ijedne reči. Ovo se često dešava kada je naziv ikone pogrešno otkucan, promenjen ili uklonjen, ili ako je izabrana iz novije verzije Material Design Icons paketa u odnosu na onu koja dolazi uz Home Assistant. Da biste ispravili ovu grešku, [uredite kontrolnu tablu]({edit}) i zamenite ih ikonama koje postoje. Ikona kontrolne table u bočnoj traci menja se u podešavanjima vaših kontrolnih tabli.\n\nSpook 👻 Vaš pomoćnik.",
|
||||
"title": "Nepoznate ikone na kontrolnoj tabli: {dashboard}"
|
||||
},
|
||||
"lovelace_unknown_theme_references": {
|
||||
"description": "Spook je pronašao duha na Vašim kontrolnim tablama 👻\n\nDok je lebdeo okolo, Spook je naišao na sledeću kontrolnu tablu:\n\n[{dashboard}]({edit})\n\nOva kontrolna tabla koristi sledeće teme, koje ne postoje:\n\n{themes}\n\n\n\nKartica, odeljak ili pregled sa jednom od ovih tema umesto toga dobijaju podrazumevani izgled, a da Vam sistem to ne signalizira. Ovo se često dešava kada je tema promenila naziv ili kada je uklonjena. Da biste ispravili ovu grešku, [uredite kontrolnu tablu]({edit}) i izaberite temu koja postoji, ili ponovo dodajte tu temu.\n\nSpook 👻 Vaš pomoćnik."
|
||||
"description": "Spook je pronašao duha na vašim kontrolnim tablama 👻\n\nDok je lebdeo okolo, Spook je naišao na sledeću kontrolnu tablu:\n\n[{dashboard}]({edit})\n\nOva kontrolna tabla koristi sledeće teme, koje ne postoje:\n\n{themes}\n\n\n\nKartica, odeljak ili pregled sa jednom od ovih tema umesto toga dobijaju podrazumevani izgled, a da vam sistem to ne signalizira. Ovo se često dešava kada je tema promenila naziv ili kada je uklonjena. Da biste ispravili ovu grešku, [uredite kontrolnu tablu]({edit}) i izaberite temu koja postoji, ili ponovo dodajte tu temu.\n\nSpook 👻 Vaš pomoćnik.",
|
||||
"title": "Nepoznate teme na kontrolnoj tabli: {dashboard}"
|
||||
},
|
||||
"script_unknown_config_entry_references": {
|
||||
"description": "Spook je pronašao duha u Vašim skriptama 👻\n\nDok je lebdeo okolo, Spook je naišao na sledeću skriptu:\n\n[{script}]({edit}) (`{entity_id}`)\n\nOva skripta prosleđuje svojim akcijama sledeće unose integracija, koji su nepoznati Home Assistant-u ili pripadaju nekoj drugoj integraciji u odnosu na onu koju akcija zahteva:\n\n{config_entries}\n\nHome Assistant ih odbija u trenutku pokretanja tog koraka. Ovo se obično dešava nakon što je integracija uklonjena pa ponovo dodata: tada dobija novi unos integracije sa novim ID-jem.\n\nDa biste ispravili ovu grešku, uredite skriptu i ponovo izaberite unos integracije u ovim akcijama.\n\nSpook 👻 Vaš pomoćnik."
|
||||
"description": "Spook je pronašao duha u vašim skriptama 👻\n\nDok je lebdeo okolo, Spook je naišao na sledeću skriptu:\n\n[{script}]({edit}) (`{entity_id}`)\n\nOva skripta prosleđuje svojim akcijama sledeće unose integracija, koji su nepoznati Home Assistant-u ili pripadaju nekoj drugoj integraciji u odnosu na onu koju akcija zahteva:\n\n{config_entries}\n\nHome Assistant ih odbija u trenutku pokretanja tog koraka. Ovo se obično dešava nakon što je integracija uklonjena pa ponovo dodata: tada dobija novi unos integracije sa novim ID-jem.\n\nDa biste ispravili ovu grešku, [uredite skriptu]({edit}) i ponovo izaberite unos integracije u ovim akcijama.\n\nSpook 👻 Vaš pomoćnik.",
|
||||
"title": "Nepoznati unosi integracija u skripti: {script}"
|
||||
},
|
||||
"script_never_true_templates": {
|
||||
"description": "Spook je pronašao duha u vašim skriptama 👻\n\nDok je lebdeo okolo, Spook je naišao na sledeću skriptu:\n\n[{script}]({edit}) (`{entity_id}`)\n\nOva skripta sadrži sledeće šablone (templates), koji nikada ne mogu da prođu, šta god da se desi u vašem domu:\n\n{templates}\n\n\n\nUslov šablona (template condition) prolazi samo kada vrati vrednost `true`, kao i `wait_template`, osim ako se kasnije ne promeni u nešto što se čita kao tačno. Pokretač šablona unutar `wait_for_trigger` se aktivira kada se njegov šablon promeni u nešto što se čita kao tačno, poput `true`, `on`, `yes` ili `1`. Ovi šabloni uvek vraćaju nešto drugo, zbog načina na koji su napisani. Uobičajeni uzroci su:\n\n- Navodnici oko šablona. `>-` blok ih prihvata kao tekst, pa oni na kraju završe u rezultatu.\n- Uopšte nema graničnika šablona (template delimiters), pa se tekst uzima onakav kakav jeste.\n- YAML kod je kopiran u polje za šablon.\n- YAML komentar sa znakom `#` unutar Jinja koda, što Jinja ispisuje kao tekst.\n- Uslov koji vraća `on` umesto tr`true`.\n\nSistem vam ništa ne signalizira: uslov nikada ne prolazi, a čekanje se završava tek kada istekne vremensko ograničenje. Da biste ovo ispravili, uredite skriptu i podesite šablon tako da vrati true kada treba da prođe.\n\nSpook 👻 Vaš pomoćnik."
|
||||
"description": "Spook je pronašao duha u vašim skriptama 👻\n\nDok je lebdeo okolo, Spook je naišao na sledeću skriptu:\n\n[{script}]({edit}) (`{entity_id}`)\n\nOva skripta sadrži sledeće šablone (templates), koji nikada ne mogu da prođu, šta god da se desi u vašem domu:\n\n{templates}\n\n\n\nUslov šablona prolazi samo kada vrati vrednost `true`, kao i `wait_template`, osim ako se kasnije ne promeni u nešto što se čita kao tačno. Pokretač šablona unutar `wait_for_trigger` se aktivira kada se njegov šablon promeni u nešto što se čita kao tačno, poput `true`, `on`, `yes` ili `1`. Ovi šabloni uvek vraćaju nešto drugo, zbog načina na koji su napisani. Uobičajeni uzroci su:\n\n- Navodnici oko šablona. `>-` blok ih prihvata kao tekst, pa oni na kraju završe u rezultatu.\n- Uopšte nema graničnika šablona, pa se tekst uzima onakav kakav jeste.\n- YAML kod je kopiran u polje za šablon.\n- YAML komentar sa znakom `#` unutar Jinja koda, što Jinja ispisuje kao tekst.\n- Uslov koji vraća `on` umesto `true`.\n\nSistem vam ništa ne signalizira: uslov nikada ne prolazi, a čekanje se završava tek kada istekne vremensko ograničenje. Da biste ovo ispravili, [uredite skriptu]({edit}) i podesite šablon tako da vrati `true` kada treba da prođe.\n\nSpook 👻 Vaš pomoćnik.",
|
||||
"title": "Šabloni koji nikada ne mogu da prođu u: {script}"
|
||||
},
|
||||
"script_unknown_icons": {
|
||||
"description": "Spook je pronašao duha u vašim skriptama 👻\n\nDok je lebdeo okolo, Spook je naišao na sledeću skriptu:\n\n[{script}]({edit}) (`{entity_id}`)\n\nOva skripta koristi ili dodeljuje sledeće ikone, koje ne postoje u Material Design Icons paketu koji dolazi uz Home Assistant:\n\n{icons}\n\n\n\nSvaka od njih se prikazuje kao prazno mesto, bez ijedne reči. Ovo se često dešava kada je naziv ikone pogrešno otkucan, promenjen ili uklonjen, ili ako je izabrana iz novije verzije Material Design Icons paketa u odnosu na onu koja dolazi uz Home Assistant. Da biste ispravili ovu grešku, [uredite skriptu]({edit}) i zamenite ih ikonama koje postoje.\n\nSpook 👻 Vaš pomoćnik."
|
||||
"description": "Spook je pronašao duha u vašim skriptama 👻\n\nDok je lebdeo okolo, Spook je naišao na sledeću skriptu:\n\n[{script}]({edit}) (`{entity_id}`)\n\nOva skripta koristi ili dodeljuje sledeće ikone, koje ne postoje u Material Design Icons paketu koji dolazi uz Home Assistant:\n\n{icons}\n\n\n\nSvaka od njih se prikazuje kao prazno mesto, bez ijedne reči. Ovo se često dešava kada je naziv ikone pogrešno otkucan, promenjen ili uklonjen, ili ako je izabrana iz novije verzije Material Design Icons paketa u odnosu na onu koja dolazi uz Home Assistant. Da biste ispravili ovu grešku, [uredite skriptu]({edit}) i zamenite ih ikonama koje postoje.\n\nSpook 👻 Vaš pomoćnik.",
|
||||
"title": "Nepoznate ikone u skripti: {script}"
|
||||
},
|
||||
"unknown_icons": {
|
||||
"description": "Spook je pronašao duha u vašim podešavanjima 👻\n\nSledeće ikone ne postoje u Material Design Icons paketu koji dolazi uz Home Assistant (verzija {version}):\n\n{icons}\n\n\n\nSvaka od njih se prikazuje kao prazno mesto, bez ijedne reči. Ovo se često dešava kada je naziv ikone pogrešno otkucan, promenjen ili uklonjen, ili ako je izabrana iz novije verzije Material Design Icons paketa u odnosu na onu koja dolazi uz Home Assistant. Da biste ispravili ovu grešku, dodelite svakoj od njih ikonu koja postoji: entitetu, pomoćniku ili zoni u njihovim podešavanjima, prostoriji, spratu ili oznaci u podešavanjima vaših prostorija, oznaka i zona, kategoriji u kojoj se koristi, kao i pod ključem `customize:` u vašoj konfiguraciji.\n\nSpook 👻 Vaš pomoćnik.",
|
||||
"title": "Nepoznate ikone u podešavanjima"
|
||||
},
|
||||
"template_unknown_service_references_yaml": {
|
||||
"description": "Spook je pronašao duha u vašim šablonskim entitetima (template entities) 👻\n\nDok je lebdeo okolo, Spook je naišao na sledeći šablonski entitet:\n\n{name} (`{entity_id}`)\n\nOn upućuje na sledeće akcije koje su nepoznate Home Assistant-u:\n\n{services}\n\n\nOvo se često dešava kada je dobavljač akcije uklonjen, ili kada je skripta promenila naziv ili obrisana.\n\nOvaj šablonski entitet je podešen u vašoj YAML konfiguraciji. Da biste ispravili ovu grešku, uredite ga u odeljku `template:` vaše konfiguracije, koristite postojeće akcije i ponovo učitajte svoje šablonske entitete.\n\nSpook 👻 Vaš pomoćnik.",
|
||||
"title": "Nepoznate akcije u šablonskom entitetu: {name}"
|
||||
},
|
||||
"template_unknown_entity_references_yaml": {
|
||||
"description": "Spook je pronašao duha u vašim šablonskim entitetima 👻\n\nDok je lebdeo okolo, Spook je naišao na sledeći šablonski entitet:\n\n{name} (`{entity_id}`)\n\nNjegova konfiguracija upućuje na sledeće entitete koji su nepoznati Home Assistant-u:\n\n{entities}\n\nOvo se često dešava kada je entitet promenio naziv ili je uklonjen. Šablon koji očita takav entitet ne dobija ništa, a pokretač koji ga čeka se nikada ne aktivira.\n\nOvaj šablonski entitet je podešen u vašoj YAML konfiguraciji. Da biste ispravili ovu grešku, uredite ga u odeljku `template:` vaše konfiguracije, uputite na postojeće entitete i ponovo učitajte svoje šablonske entitete.\n\nSpook 👻 Vaš pomoćnik.",
|
||||
"title": "Nepoznati entiteti u šablonskom entitetu: {name}"
|
||||
},
|
||||
"template_unknown_attribute_references_yaml": {
|
||||
"description": "Spook je pronašao duha u vašim šablonskim entitetima👻\n\nDok je lebdeo okolo, Spook je naišao na sledeći šablonski entitet:\n\n{name} (`{entity_id}`)\n\nOvaj šablonski entitet koristi sledeće atribute koje njegovi entiteti nemaju. Ni u ovom trenutku, niti kao nešto što taj tip entiteta uopšte nudi, a nema ih nigde ni u onome što rekorder pamti o njima:\n\n{attributes}\n\n\n\nŠablon koji očita atribut koji se nikada ne pojavljuje ne dobija ništa, a pokretač ili uslov koji ga čekaju se nikada ne aktiviraju niti prolaze. Nijedan od njih vam to ne signalizira.\n\n\nOvaj šablonski entitet je podešen u vašoj YAML konfiguraciji. Da biste ovo ispravili, uredite ga u odeljku`template:` vaše konfiguracije, koristite atribut koji entitet ima i ponovo učitajte svoje šablonske entitete.\n\nSpook 👻 Vaš pomoćnik.",
|
||||
"title": "Nepoznati atributi u šablonskom entitetu: {name}"
|
||||
}
|
||||
},
|
||||
"services": {
|
||||
@@ -1230,7 +1263,7 @@
|
||||
},
|
||||
"force": {
|
||||
"name": "Prisilno ponovo pokreni",
|
||||
"description": "Prisilno izvrši ponovno pokretanje. UPOZORENJE! Ovo neće regularno isključiti Home Assistant, već će preskočiti provere konfiguracije i zanemariti pokrenute migracije baze podataka. Koristite ovo samo ako tačno znate šta radite."
|
||||
"description": "Prisilno izvrši ponovno pokretanje. UPOZORENJE! Ovo neće regularno isključiti Home Assistant, već će preskočiti provere konfiguracije i ignoriši pokrenute migracije baze podataka. Koristite ovo samo ako tačno znate šta radite."
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1825,22 +1858,22 @@
|
||||
"description": "Briše sprat u hodu."
|
||||
},
|
||||
"homeassistant_ignore_all_discovered": {
|
||||
"name": "Zanemari sve trenutno otkrivene uređaje",
|
||||
"description": "Zanemari sve trenutno otkrivene uređaje koji su prikazani na kontrolnoj tabli sa integracijama. Ovo neće važiti za uređaje koji se otkriju nakon ovoga.",
|
||||
"name": "Ignoriši sve trenutno otkrivene uređaje",
|
||||
"description": "Ignoriši sve trenutno otkrivene uređaje koji su prikazani na kontrolnoj tabli sa integracijama. Ovo neće važiti za uređaje koji se otkriju nakon ovoga.",
|
||||
"fields": {
|
||||
"domain": {
|
||||
"name": "Domen integracije",
|
||||
"description": "Domen integracije za koji se zanemaruju svi otkriveni uređaji. Ako nije naveden, smatraće se da se zanemaruju svi domeni."
|
||||
"description": "Domen integracije za koji se ignorišu svi otkriveni uređaji. Ako nije naveden, smatraće se da se ignorišu svi domeni."
|
||||
}
|
||||
}
|
||||
},
|
||||
"repairs_ignore_all": {
|
||||
"name": "Zanemari sve probleme",
|
||||
"description": "Zanemari sve probleme koji su trenutno pokrenuti u Home Assistant Popravkama, ili samo one koje su pokrenule određene integracije.",
|
||||
"name": "Ignoriši sve probleme",
|
||||
"description": "Ignoriši sve probleme koji su trenutno pokrenuti u Home Assistant Popravkama, ili samo one koje su pokrenule određene integracije.",
|
||||
"fields": {
|
||||
"domain": {
|
||||
"name": "Domen",
|
||||
"description": "Zanemari samo probleme koje su pokrenule ove integracije."
|
||||
"description": "Ignoriši samo probleme koje su pokrenule ove integracije."
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -1879,12 +1912,12 @@
|
||||
}
|
||||
},
|
||||
"repairs_unignore_all": {
|
||||
"description": "Prestani sa zanemarivanjem svih problema koji su trenutno pokrenuti u Home Assistant Popravkama, ili samo onih koje su pokrenule određene integracije.",
|
||||
"name": "Poništi zanemarivanje svih problema",
|
||||
"description": "Prestani sa ignorisanjem svih problema koji su trenutno pokrenuti u Home Assistant Popravkama, ili samo onih koje su pokrenule određene integracije.",
|
||||
"name": "Poništi ignorisanje svih problema",
|
||||
"fields": {
|
||||
"domain": {
|
||||
"name": "Domen",
|
||||
"description": "Prestani sa zanemarivanjem samo onih problema koje su pokrenule ove integracije."
|
||||
"description": "Prestani sa ignorisanjem samo onih problema koje su pokrenule ove integracije."
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -2111,8 +2144,8 @@
|
||||
"repairs_list": {
|
||||
"fields": {
|
||||
"include_ignored": {
|
||||
"description": "Takođe navedi probleme koji su zanemareni.",
|
||||
"name": "Uključi zanemarene"
|
||||
"description": "Takođe navedi probleme koji su ignorisani.",
|
||||
"name": "Uključi ingorisano"
|
||||
},
|
||||
"domain": {
|
||||
"name": "Domen",
|
||||
@@ -2765,103 +2798,152 @@
|
||||
"homeassistant_update_area": {
|
||||
"fields": {
|
||||
"aliases": {
|
||||
"name": "Pseudonimi"
|
||||
"name": "Pseudonimi",
|
||||
"description": "Pseudonimi za prostoriju. Zamenjuju postojeće, a prazna lista ih uklanja sve."
|
||||
},
|
||||
"area_id": {
|
||||
"name": "ID prostorije"
|
||||
"name": "ID prostorije",
|
||||
"description": "ID prostorije koju treba ažurirati."
|
||||
},
|
||||
"floor_id": {
|
||||
"name": "ID sprata"
|
||||
"name": "ID sprata",
|
||||
"description": "ID sprata na kojem se prostorija nalazi."
|
||||
},
|
||||
"humidity_entity_id": {
|
||||
"name": "Senzor vlažnosti"
|
||||
"name": "Senzor vlažnosti",
|
||||
"description": "Senzor koji meri vlažnost vazduha u prostoriji."
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ikona",
|
||||
"description": "Nova ikona koja će se koristiti za prostoriju."
|
||||
},
|
||||
"labels": {
|
||||
"name": "Oznake"
|
||||
"name": "Oznake",
|
||||
"description": "ID oznaka za prostoriju. Zamenjuju postojeće, a prazna lista ih uklanja sve."
|
||||
},
|
||||
"name": {
|
||||
"name": "Naziv",
|
||||
"description": "Novi naziv za prostoriju."
|
||||
},
|
||||
"picture": {
|
||||
"name": "Slika"
|
||||
"name": "Slika",
|
||||
"description": "URL adresa ili putanja slike za prostoriju."
|
||||
},
|
||||
"temperature_entity_id": {
|
||||
"name": "Senzor temperature",
|
||||
"description": "Senzor koji meri temperaturu u prostoriji."
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Ažuriraj prostoriju",
|
||||
"description": "Ažurira postojeću prostoriju u letu. Sve što izostavite zadržava vrednost koju već ima. Pseudonimi i oznake zamenjuju postojeće koje prostorija ima. Sprat, ikona, slika i senzori se mogu obrisati postavljanjem na null."
|
||||
},
|
||||
"homeassistant_update_floor": {
|
||||
"fields": {
|
||||
"aliases": {
|
||||
"name": "Pseudonimi"
|
||||
"name": "Pseudonimi",
|
||||
"description": "Pseudonimi za sprat. Zamenjuju postojeće, a prazna lista ih uklanja sve."
|
||||
},
|
||||
"floor_id": {
|
||||
"name": "ID sprata"
|
||||
"name": "ID sprata",
|
||||
"description": "ID sprata koji treba ažurirati."
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ikona",
|
||||
"description": "Nova ikona koja će se koristiti za sprat."
|
||||
},
|
||||
"level": {
|
||||
"name": "Nivo"
|
||||
"name": "Nivo",
|
||||
"description": "Nivo na kojem se sprat nalazi u vašem domu."
|
||||
},
|
||||
"name": {
|
||||
"name": "Naziv",
|
||||
"description": "Novi naziv za sprat."
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Ažuriraj sprat",
|
||||
"description": "Ažurira postojeći sprat u letu. Sve što izostavite zadržava vrednost koju već ima. Pseudonimi zamenjuju postojeće koje sprat ima. Ikona i nivo se mogu obrisati postavljanjem na null."
|
||||
},
|
||||
"homeassistant_update_device": {
|
||||
"fields": {
|
||||
"area_id": {
|
||||
"name": "ID prostorije"
|
||||
"name": "ID prostorije",
|
||||
"description": "ID prostorije u kojoj se uređaj nalazi."
|
||||
},
|
||||
"device_id": {
|
||||
"name": "ID uređaja"
|
||||
"name": "ID uređaja",
|
||||
"description": "ID uređaja koji treba ažurirati. Onemogućeni uređaji se ne prikazuju u biraču uređaja u Home Assistant-u, koristite YAML režim da biste naveli njihov ID."
|
||||
},
|
||||
"disabled_by": {
|
||||
"name": "Onemogućeno od",
|
||||
"description": "Postavite na korisnika da biste onemogućili uređaj, ili na null da biste ga ponovo omogućili. Ovo funkcioniše isto kao i akcije za onemogućavanje i omogućavanje uređaja."
|
||||
},
|
||||
"labels": {
|
||||
"name": "Oznake"
|
||||
"name": "Oznake",
|
||||
"description": "ID oznaka za uređaj. Zamenjuju postojeće, a prazna lista ih uklanja sve."
|
||||
},
|
||||
"name_by_user": {
|
||||
"name": "Naziv",
|
||||
"description": "Novi naziv za uređaj."
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Ažuriraj uređaj",
|
||||
"description": "Ažurira postojeći uređaj u letu. Sve što izostavite zadržava vrednost koju već ima. Oznake zamenjuju postojeće koje uređaj ima. Naziv i prostorija se mogu obrisati postavljanjem na null, što uređaju vraća naziv koji mu je dodelila njegova integracija."
|
||||
},
|
||||
"schedule_create": {
|
||||
"name": "Kreiraj raspored",
|
||||
"description": "Kreira novog pomoćnika za raspored u letu, koji je uključen tokom zadatih vremenskih blokova za svaki dan u nedelji. Vraća ID entiteta novog rasporeda.",
|
||||
"fields": {
|
||||
"friday": {
|
||||
"name": "Petak"
|
||||
"name": "Petak",
|
||||
"description": "Kada je raspored uključen, petkom: lista vremenskih blokova, svaki sa vremenom početka i završetka, kao i opcionim podacima koji se prikazuju kao atributi dok je raspored uključen. Ako se izostavi, isključen je celog dana."
|
||||
},
|
||||
"icon": {
|
||||
"name": "Ikona"
|
||||
"name": "Ikona",
|
||||
"description": "Ikona za novi raspored."
|
||||
},
|
||||
"monday": {
|
||||
"name": "Ponedeljak"
|
||||
"name": "Ponedeljak",
|
||||
"description": "Kada je raspored uključen, ponedeljkom: lista vremenskih blokova, svaki sa vremenom početka i završetka, kao i opcionim podacima koji se prikazuju kao atributi dok je raspored uključen. Ako se izostavi, isključen je celog dana."
|
||||
},
|
||||
"name": {
|
||||
"name": "Naziv"
|
||||
"name": "Naziv",
|
||||
"description": "Naziv novog rasporeda."
|
||||
},
|
||||
"saturday": {
|
||||
"name": "Subota"
|
||||
"name": "Subota",
|
||||
"description": "Kada je raspored uključen, subotom: lista vremenskih blokova, svaki sa vremenom početka i završetka, kao i opcionim podacima koji se prikazuju kao atributi dok je raspored uključen. Ako se izostavi, isključen je celog dana."
|
||||
},
|
||||
"schedule_id": {
|
||||
"name": "ID entiteta rasporeda"
|
||||
"name": "ID entiteta rasporeda",
|
||||
"description": "ID entiteta za novi raspored. Prefiks „schedule“. se dodaje automatski. Ako nije naveden, ID entiteta će biti generisan na osnovu naziva."
|
||||
},
|
||||
"sunday": {
|
||||
"name": "Nedelja",
|
||||
"description": "Kada je raspored uključen, nedeljom: lista vremenskih blokova, svaki sa vremenom početka i završetka, kao i opcionim podacima koji se prikazuju kao atributi dok je raspored uključen. Ako se izostavi, isključen je celog dana."
|
||||
},
|
||||
"thursday": {
|
||||
"name": "Četvrtak",
|
||||
"description": "Kada je raspored uključen, četvrtkom: lista vremenskih blokova, svaki sa vremenom početka i završetka, kao i opcionim podacima koji se prikazuju kao atributi dok je raspored uključen. Ako se izostavi, isključen je celog dana."
|
||||
},
|
||||
"tuesday": {
|
||||
"name": "Utorak",
|
||||
"description": "Kada je raspored uključen, utorkom: lista vremenskih blokova, svaki sa vremenom početka i završetka, kao i opcionim podacima koji se prikazuju kao atributi dok je raspored uključen. Ako se izostavi, isključen je celog dana."
|
||||
},
|
||||
"wednesday": {
|
||||
"description": "Kada je raspored uključen, sredom: lista vremenskih blokova, svaki sa vremenom početka i završetka, kao i opcionim podacima koji se prikazuju kao atributi dok je raspored uključen. Ako se izostavi, isključen je celog dana.",
|
||||
"name": "Sreda"
|
||||
}
|
||||
}
|
||||
},
|
||||
"schedule_set_day": {
|
||||
"fields": {
|
||||
"day": {
|
||||
"name": "Dan"
|
||||
"name": "Dan",
|
||||
"description": "Dan ili dani u nedelji za koje se podešavaju vremenski blokovi."
|
||||
},
|
||||
"blocks": {
|
||||
"description": "Vremenski blokovi tokom kojih je raspored uključen u tim danima, svaki sa vremenom početka i završetka, kao i opcionim podacima koji se prikazuju kao atributi dok je raspored uključen. Ovi blokovi zamenjuju postojeće blokove za te dane. Prazna lista ostavlja dane isključenim tokom celog dana.",
|
||||
"name": "Vremenski blokovi"
|
||||
}
|
||||
},
|
||||
"description": "Zamenjuje vremenske blokove za jedan ili više dana u pomoćniku za raspored koji je napravljen u korisničkom interfejsu. Rasporedi podešeni preko YAML-a ne mogu se menjati pomoću Spook-a.",
|
||||
@@ -2872,7 +2954,8 @@
|
||||
"description": "Briše pomoćnike za rasporede napravljene u korisničkom interfejsu. Rasporedi podešeni preko YAML-a ne mogu se obrisati pomoću Spook-a.",
|
||||
"fields": {
|
||||
"entity_id": {
|
||||
"name": "ID entiteta"
|
||||
"name": "ID entiteta",
|
||||
"description": "Raspored(i) za brisanje."
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2910,7 +2993,7 @@
|
||||
},
|
||||
"repair_issue_present": {
|
||||
"name": "Nerešen problem za popravku",
|
||||
"description": "Uslov je ispunjen ako postoji nerešen problem u odeljku Popravke. Zanemareni problemi se ne računaju.",
|
||||
"description": "Uslov je ispunjen ako postoji nerešen problem u odeljku Popravke. Ignorisani problemi se ne računaju.",
|
||||
"fields": {
|
||||
"domain": {
|
||||
"name": "Integracije",
|
||||
@@ -3253,7 +3336,7 @@
|
||||
"description": "Samo promene koje dolaze sa jednog od ovih stanja."
|
||||
},
|
||||
"ignore_unavailable": {
|
||||
"name": "Zanemari nedostupna i nepoznata stanja",
|
||||
"name": "Ignoriši nedostupna i nepoznata stanja",
|
||||
"description": "Izostavi promene sa nedostupnih i nepoznatih stanja ili na njih, kako ponovno pokretanje sistema ili rutera ne bi aktiviralo akcije za sve stavke. Isključite ovu opciju ako želite da ih koristite u poljima „Sa stanja“ ili „Na stanje“."
|
||||
},
|
||||
"config_entry": {
|
||||
@@ -3299,14 +3382,18 @@
|
||||
"options": {
|
||||
"friday": "Petak",
|
||||
"monday": "Ponedeljak",
|
||||
"saturday": "Subota"
|
||||
"saturday": "Subota",
|
||||
"sunday": "Nedelja",
|
||||
"thursday": "Četvrtak",
|
||||
"tuesday": "Utorak",
|
||||
"wednesday": "Sreda"
|
||||
}
|
||||
}
|
||||
},
|
||||
"system_health": {
|
||||
"info": {
|
||||
"ghosts_found": "Pronađeni duhovi",
|
||||
"ghosts_ignored": "Zanemareni duhovi",
|
||||
"ghosts_ignored": "Ignorisani duhovi",
|
||||
"helpers_linked": "Povezani pomoćnici",
|
||||
"version": "Verzija"
|
||||
}
|
||||
|
||||
@@ -33,10 +33,10 @@
|
||||
"name": "Поново покрени"
|
||||
},
|
||||
"repairs_ignore_all": {
|
||||
"name": "Занемари све"
|
||||
"name": "Игнориши све"
|
||||
},
|
||||
"repairs_unignore_all": {
|
||||
"name": "Поништи занемаривање свих"
|
||||
"name": "Поништи игнорисање свих"
|
||||
}
|
||||
},
|
||||
"event": {
|
||||
@@ -210,7 +210,7 @@
|
||||
"name": "Укупно"
|
||||
},
|
||||
"repairs_ignored_issues": {
|
||||
"name": "Занемарено"
|
||||
"name": "Игнорисано"
|
||||
},
|
||||
"repairs_active_issues": {
|
||||
"name": "Активно"
|
||||
@@ -429,6 +429,33 @@
|
||||
},
|
||||
"zone_not_editable": {
|
||||
"message": "Ова зона не може да се мења: {entity_id}."
|
||||
},
|
||||
"amount_not_a_multiple_of_step": {
|
||||
"message": "Износ {amount} не одговара ентитету {entity_id}, који се креће у корацима од {step}. Употребите умножак корака {step} или изоставите износ да бисте се померили за један корак."
|
||||
},
|
||||
"area_cannot_update": {
|
||||
"message": "Просторија {area_id} се не може променити на тај начин: {error}."
|
||||
},
|
||||
"yaml_schedule_not_editable": {
|
||||
"message": "{entity_id} је распоред из ваше „YAML“ конфигурације, који „Spook“ не може да промени. Уместо тога, уреди га директно у вашој конфигурацији."
|
||||
},
|
||||
"area_nothing_to_update": {
|
||||
"message": "Нема ништа за ажурирање у просторији {area_id}: наведите барем једно од {fields}."
|
||||
},
|
||||
"device_nothing_to_update": {
|
||||
"message": "Нема ништа за ажурирање на уређају {device_id}: наведите барем једно од {fields}."
|
||||
},
|
||||
"floor_nothing_to_update": {
|
||||
"message": "Нема ништа за ажурирање на спрату {floor_id}: наведите барем једно од {fields}."
|
||||
},
|
||||
"area_name_taken": {
|
||||
"message": "Назив {name} је већ заузет од стране просторије {area_id}."
|
||||
},
|
||||
"floor_name_taken": {
|
||||
"message": "Назив {name} је већ заузет од стране спрата {floor_id}."
|
||||
},
|
||||
"schedule_blocks_invalid": {
|
||||
"message": "Ови временски блокови не одговарају ентитету {entity_id}: {error}. Ништа није промењено."
|
||||
}
|
||||
},
|
||||
"issues": {
|
||||
@@ -484,7 +511,7 @@
|
||||
},
|
||||
"proximity_unknown_ignored_zones": {
|
||||
"description": "„Spook” је пронашао духа у вашој конфигурацији близине 👻\n\nДок је лутао около, „Spook” је наишао на следећу конфигурацију близине:\n\n{name}\n\nОва конфигурација игнорише зоне које су непознате „Home Assistant”‑у:\n\n{zones}\n\n\n\nДа бисте исправили ову грешку, измените конфигурацију и уклоните ову/ове зоне.\n\n„Spook” 👻 Ваш помоћник.",
|
||||
"title": "Непознате занемарене зоне: {name}"
|
||||
"title": "Непознате игнорисане зоне: {name}"
|
||||
},
|
||||
"proximity_unknown_tracked_entities": {
|
||||
"description": "„Spook” је пронашао духа у вашој конфигурацији близине 👻\n\nДок је лутао около, „Spook” је наишао на следећу конфигурацију близине:\n\n{name}\n\nОва конфигурација прати особе или уређаје који су непознати „Home Assistant”‑у:\n\n{entities}\n\n\n\nДа бисте исправили ову грешку, измените конфигурацију и уклоните овај/ове ентитете.\n\n„Spook” 👻 Ваш помоћник.",
|
||||
@@ -925,6 +952,66 @@
|
||||
"template_unknown_attribute_references": {
|
||||
"description": "„Spook“ је пронашао духа у вашим шаблонским помоћницима 👻\n\nДок је лебдео около, „Spook“ је наишао на следећег шаблонског помоћника:\n\n[{helper}]({edit}) (`{entity_id}`)\n\nОвај шаблонски помоћник користи следеће атрибуте које његови ентитети немају: ни у овом тренутку, нити као опцију коју та врста ентитета уопште нуди, а нема их ни било где у историји записа о њима:\n\n{attributes}\n\n\n\nШаблон који чита атрибут који се никада не појављује неће добити никакву вредност, а услов у једној од његових акција који чека на тај атрибут никада неће проћи, а да о томе не добијате никакво обавештење. Да бисте ово поправили, [уредите шаблонског помоћника]({edit}) и употребите атрибут који тај ентитет има.\n\n„Spook“ 👻 Ваш помоћник.",
|
||||
"title": "Непознати атрибути у шаблонском помоћнику: {helper}"
|
||||
},
|
||||
"automation_unknown_user_references": {
|
||||
"title": "Уклоњени корисници наведени у: {automation}",
|
||||
"description": "„Spook“ је пронашао духа у вашим аутоматизацијама 👻\n\nДок је лебдео около, „Spook“ је наишао на следећу аутоматизацију:\n\n[{automation}]({edit}) (`{entity_id}`)\n\nОва аутоматизација наводи следеће кориснике који више не постоје:\n\n{users}\n\n\n\n„Home Assistant“ никада не додељује исти ИД корисника двапут, што значи да су ови корисници уклоњени. Покретач који чека неког од њих никада се неће активирати, а шаблон који се пореди са неким од њих никада неће направити подударање, а да Вам систем то не сигнализира. Да бисте ово исправили, [уредите аутоматизацију]({edit}) и употребите ИД корисника који постоји, или уклоните ту проверу.\n\n„Spook“ 👻 Ваш помоћник."
|
||||
},
|
||||
"lovelace_unknown_user_references": {
|
||||
"title": "Уклоњени корисници наведени на контролној табли: {dashboard}",
|
||||
"description": "„Spook“ је пронашао духа на вашим контролним таблама 👻\n\nДок је лебдео около, „Spook“ је наишао на следећу контролну таблу:\n\n[{dashboard}]({edit})\n\nОва контролна табла наводи следеће кориснике који више не постоје:\n\n{users}\n\n\n\n„Home Assistant“ никада не додељује исти ИД корисника двапут, што значи да су ови корисници уклоњени. Картица, беџ, одељак или преглед који су се приказивали само њима, сада се не приказују никоме, а да Вам систем то не сигнализира. Изузеће од потврде за њих више нема никакву функцију. Да бисте ово исправили, [уредите контролну таблу]({edit}) и изаберите кориснике који би требали да је виде, или уклоните тај услов.\n\n„Spook“ 👻 Ваш помоћник."
|
||||
},
|
||||
"script_unknown_user_references": {
|
||||
"title": "Уклоњени корисници наведени у скрипти: {script}",
|
||||
"description": "„Spook“ је пронашао духа у вашим скриптама 👻\n\nДок је лебдео около, „Spook“ је наишао на следећу скрипту:\n\n[{script}]({edit}) (`{entity_id}`)\n\nОва скрипта наводи следеће кориснике који више не постоје:\n\n{users}\n\n\n\n„Home Assistant“ никада не додељује исти ИД корисника двапут, што значи да су ови корисници уклоњени. Шаблон који се пореди са неким од њих никада неће направити подударање, а покретач који чека неког од њих никада се неће активирати, а да Вам систем то не сигнализира. Да бисте ово исправили, [уредите скрипту]({edit}) и употребите ИД корисника који постоји, или уклоните ту проверу.\n\n„Spook“ 👻 Ваш помоћник."
|
||||
},
|
||||
"automation_unknown_config_entry_references": {
|
||||
"description": "Spook је пронашао духа у вашим аутоматизацијама 👻\n\nДок је лебдео около, Spook је наишао на следећу аутоматизацију:\n\n[{automation}]({edit}) (`{entity_id}`)\n\nОва аутоматизација прослеђује својим акцијама следеће уносе интеграција, који су непознати „Home Assistant“-у или припадају некој другој интеграцији у односу на ону коју акција захтева:\n\n{config_entries}\n\n„Home Assistant“ их одбија у тренутку покретања тог корака. Ово се обично дешава након што је интеграција уклоњена па поново додата: тада добија нови унос интеграције са новим ИД“.\n\nДа бисте исправили ову грешку, [уредите аутоматизацију]({edit}) и поново изаберите унос интеграције у овим акцијама.\n\nSpook 👻 Ваш помоћник.",
|
||||
"title": "Непознати уноси интеграција у: {automation}"
|
||||
},
|
||||
"automation_unknown_icons": {
|
||||
"description": "„Spook“ је пронашао духа у вашим аутоматизацијама 👻\n\nДок је лебдео около, „Spook“ је наишао на следећу аутоматизацију:\n\n[{automation}]({edit}) (`{entity_id}`)\n\nОва аутоматизација додељује следеће иконе, које не постоје у „Material Design Icons“ пакету који долази уз „Home Assistant“:\n\n{icons}\n\n\n\nСвака од њих се приказује као празно место, без иједне речи. Ово се често дешава када је назив иконе погрешно откуцан, промењен или уклоњен, или ако је изабрана из новије верзије „Material Design Icons“ пакета у односу на ону која долази уз „Home Assistant“. Да бисте исправили ову грешку, [уредите аутоматизацију]({edit}) и замените их иконама које постоје.\n\n„Spook“ 👻 Ваш помоћник.",
|
||||
"title": "Непознате иконе у: {automation}"
|
||||
},
|
||||
"automation_never_true_templates": {
|
||||
"description": "„Spook“ је пронашао духа у вашим аутоматизацијама 👻\n\nДок је лебдео около, „Spook“ је наишао на следећу аутоматизацију:\n\n[{automation}]({edit}) (`{entity_id}`)\n\nОва аутоматизација садржи следеће шаблоне, који никада не могу да прођу, шта год да се деси у вашем дому:\n\n{templates}\n\n\n\nУслов шаблона пролази само када врати вредност `true`, као и `wait_template`, осим ако се касније не промени у нешто што се чита као тачно. Покретач шаблона се активира када се његов шаблон промени у нешто што се чита као тачно, попут `true`, `on`, `yes` или `1`. Ови шаблони увек враћају нешто друго, због начина на који су написани. Уобичајени узроци су:\n\n- Наводници око шаблона. `>-` блок их прихвата као текст, па они на крају заврше у резултату.\n- Уопште нема граничника шаблона, па се текст узима онакав какав јесте.\n- „YAML“ код је копиран у поље за шаблон.\n- „YAML“ коментар са знаком `#` унутар „Jinja“ кода, што „Jinja“ исписује као текст.\n- Услов који враћа `on` уместо `true`.\n\nСистем Вам ништа не сигнализира: услов никада не пролази, чекање се завршава тек када истекне временско ограничење, а покретач се никада не активира. Да бисте ово исправили, [уредите аутоматизацију]({edit}) и подесите шаблон тако да врати `true` када треба да прође.\n\n„Spook“ 👻 Ваш помоћник.",
|
||||
"title": "Шаблони који никада не могу да прођу у: {automation}"
|
||||
},
|
||||
"lovelace_unknown_icons": {
|
||||
"description": "„Spook“ је пронашао духа на вашим контролним таблама 👻\n\nДок је лебдео около, „Spook“ је наишао на следећу контролну таблу:\n\n[{dashboard}]({edit})\n\nОва контролна табла користи следеће иконе, које не постоје у „Material Design Icons“ пакету који долази уз „Home Assistant“ (верзија {version}):\n\n{icons}\n\n\n\nСвака од њих се приказује као празно место, без иједне речи. Ово се често дешава када је назив иконе погрешно откуцан, промењен или уклоњен, или ако је изабрана из новије верзије „Material Design Icons“ пакета у односу на ону која долази уз „Home Assistant“. Да бисте исправили ову грешку, [уредите контролну таблу]({edit}) и замените их иконама које постоје. Икона контролне table у бочној траци мења се у подешавањима Ваших контролних табли.\n\n„Spook“ 👻 Ваш помоћник.",
|
||||
"title": "Непознате иконе на контролној табли: {dashboard}"
|
||||
},
|
||||
"lovelace_unknown_theme_references": {
|
||||
"description": "„Spook“ је пронашао духа на вашим контролним таблама 👻\n\nДок је лебдео около, „Spook“ је наишао на следећу контролну таблу:\n\n[{dashboard}]({edit})\n\nОва контролна табла користи следеће теме, које не постоје:\n\n{themes}\n\n\n\nКартица, одељак или преглед са једном од ових тема уместо тога добијају подразумевани изглед, а да вам систем то не сигнализира. Ово се често дешава када је тема променила назив или када је уклоњена. Да бисте исправили ову грешку, [уредите контролну таблу]({edit}) и изаберите тему која постоји, или поново додајте ту тему.\n\n„Spook“ 👻 Ваш помоћник.",
|
||||
"title": "Непознате теме на контролној табли: {dashboard}"
|
||||
},
|
||||
"script_unknown_config_entry_references": {
|
||||
"description": "„Spook“ је пронашао духа у вашим скриптама 👻\n\nДок је лебдео около, „Spook“ је наишао на следећу скрипту:\n\n[{script}]({edit}) (`{entity_id}`)\n\nОва скрипта прослеђује својим акцијама следеће уносе интеграција, који су непознати „Home Assistant“-у или припадају некој другој интеграцији у односу на ону коју акција захтева:\n\n{config_entries}\n\n„Home Assistant“ их одбија у тренутку покретања тог корака. Ово се обично дешава након што је интеграција уклоњена па поново додата: тада добија нови унос интеграције са новим ИД-јем.\n\nДа бисте исправили ову грешку, [уредите скрипту]({edit}) и поново изаберите унос интеграције у овим акцијама.\n\n„Spook“ 👻 Ваш помоћник.",
|
||||
"title": "Непознати уноси интеграција у скрипти: {script}"
|
||||
},
|
||||
"script_never_true_templates": {
|
||||
"description": "„Spook“ је пронашао духа у вашим скриптама 👻\n\nДок је лебдео около, „Spook“ је наишао на следећу скрипту:\n\n[{script}]({edit}) (`{entity_id}`)\n\nОва скрипта садржи следеће шаблоне, који никада не могу да прођу, шта год да се деси у вашем дому:\n\n{templates}\n\n\n\nУслов шаблона пролази само када врати вредност `true`, као и `wait_template`, осим ако се касније не промени у нешто што се чита као тачно. Покретач шаблона унутар `wait_for_trigger` се активира када се његов шаблон промени у нешто што се чита као тачно, попут `true`, `on`, `yes` или `1`. Ови шаблони увек враћају нешто друго, због начина на који су написани. Уобичајени узроци су:\n\n- Наводници око шаблона. `>-` блок их прихвата као текст, па они на крају заврше у резултату.\n- Уопште нема граничника шаблона, па се текст узима онакав какав јесте.\n- „YAML“ код је копиран у поље за шаблон.\n- „YAML“ коментар са знаком `#` унутар „Jinja“ кода, што „Jinja“ исписује као текст.\n- Услов који враћа on уместо `true`.\n\nСистем вам ништа не сигнализира: услов никада не пролази, а чекање се завршава тек када истекне временско ограничење. Да бисте ово исправили, [уредите скрипту]({edit}) и подесите шаблон тако да врати `true` када треба да прође.\n\n„Spook“ 👻 Ваш помоћник.",
|
||||
"title": "Шаблони који никада не могу да прођу у: {script}"
|
||||
},
|
||||
"script_unknown_icons": {
|
||||
"description": "„Spook“ је пронашао духа у вашим скриптама 👻\n\nДок је лебдео около, „Spook“ је наишао на следећу скрипту:\n\n[{script}]({edit}) (`{entity_id}`)\n\nОва скрипта користи или додељује следеће иконе, које не постоје у „Material Design Icons“ пакету који долази уз „Home Assistant“:\n\n{icons}\n\n\n\nСвака од њих се приказује као празно место, без иједне речи. Ово се често дешава када је назив иконе погрешно откуцан, промењен или уклоњен, или ако је изабрана из новије верзије „Material Design Icons“ пакета у односу на ону која долази уз „Home Assistant“. Да бисте исправили ову грешку, [уредите скрипту]({edit}) и замените их иконама које постоје.\n\n„Spook“ 👻 Ваш помоћник.",
|
||||
"title": "Непознате иконе у скрипти: {script}"
|
||||
},
|
||||
"unknown_icons": {
|
||||
"description": "„Spook“ је пронашао духа у вашим подешавањима 👻\n\nСледеће иконе не постоје у „Material Design Icons“ пакету који долази уз „Home Assistant“ (верзија {version}):\n\n{icons}\n\n\n\nСвака од њих се приказује као празно место, без иједне речи. Ово се често дешава када је назив иконе погрешно откуцан, промењен или уклоњен, или ако је изабрана из новије верзије „Material Design Icons“ пакета у односу на ону која долази уз „Home Assistant“. Да бисте исправили ову грешку, доделите свакој од њих икону која постоји: ентитету, помоћнику или зони у њиховим подешавањима, просторији, спрату или ознаци у подешавањима ваших просторија, ознака и зона, категорији у којој се користи, као и под кључем `customize:` у вашој конфигурацији.\n\n„Spook“ 👻 Ваш помоћник.",
|
||||
"title": "Непознате иконе у подешавањима"
|
||||
},
|
||||
"template_unknown_service_references_yaml": {
|
||||
"description": "„Spook“ је пронашао духа у вашим шаблонским ентитетима 👻\n\nДок је лебдео около, „Spook“ је наишао на следећи шаблонски ентитет:\n\n{name} (`{entity_id}`)\n\nОн упућује на следеће акције које су непознате „Home Assistant“-у:\n\n{services}\n\n\nОво се често дешава када је добављач акције уклоњен, или када је скрипта променила назив или обрисана.\n\nОвај шаблонски ентитет је подешен у вашој „YAML“ конфигурацији. Да бисте исправили ову грешку, уредите га у одељку `template:`: ваше конфигурације, користите постојеће акције и поново учитајте своје шаблонске ентитете.\n\n„Spook“ 👻 Ваш помоћник.",
|
||||
"title": "Непознате акције у шаблонском ентитету: {name}"
|
||||
},
|
||||
"template_unknown_entity_references_yaml": {
|
||||
"description": "„Spook“ је пронашао духа у вашим шаблонским ентитетима 👻\n\nДок је лебдео около, „Spook“ је наишао на следећи шаблонски ентитет:\n\n{name} (`{entity_id}`)\n\nЊегова конфигурација упућује на следеће ентитете који су непознати „Home Assistant“-у:\n\n{entities}\n\n\n\nОво се често дешава када је ентитет променио назив или је уклоњен. Шаблон који очита такав ентитет не добија ништа, а покретач који га чека се никада не активира.\n\nОвај шаблонски ентитет је подешен у vашој „YAML“ конфигурацији. Да бисте исправили ову грешку, уредите га у одељку `template:` ваше конфигурације, упутите на постојеће ентитете и поново учитајте своје шаблонске ентитете.\n\n„Spook“ 👻 Ваш помоћник.",
|
||||
"title": "Непознати ентитети у шаблонском ентитету: {name}"
|
||||
},
|
||||
"template_unknown_attribute_references_yaml": {
|
||||
"description": "„Spook“ је пронашао духа у вашим шаблонским ентитетима 👻\n\nДок је лебдео около, „Spook“ је наишао на следећи шаблонски ентитет:\n\n{name} (`{entity_id}`)\n\nОвај шаблонски ентитет користи следеће атрибуте које његови ентитети немају. Ни у овом тренутку, нити као нешто што тај тип ентитета уопште нуди, а нема их нигде ни у ономе што рекордер памти о њима:\n\n{attributes}\n\n\n\nШаблон који очита атрибут који се никада не појављује не добија ништа, а покретач или услов који га чекају се никада не активирају нити пролазе. Ниједан од њих вам то не сигнализира.\n\nОвај шаблонски ентитет је подешен у вашој „YAML“ конфигурацији. Да бисте ово исправили, уредите га у одељку template:` ваше конфигурације, користите атрибут који ентитет има и поново учитајте своје шаблонске ентитете.\n\n„Spook“ 👻 Ваш помоћник.",
|
||||
"title": "Непознати атрибути у шаблонском ентитету: {name}"
|
||||
}
|
||||
},
|
||||
"services": {
|
||||
@@ -1886,7 +1973,7 @@
|
||||
"fields": {
|
||||
"force": {
|
||||
"name": "Присилно поново покрени",
|
||||
"description": "Присилно изврши поновно покретање. УПОЗОРЕЊЕ! Ово неће регуларно искључити „Home Assistant”, већ ће прескочити провере конфигурације и занемарити покренуте миграције базе података. Користите ово само ако тачно знате шта радите."
|
||||
"description": "Присилно изврши поновно покретање. УПОЗОРЕЊЕ! Ово неће регуларно искључити „Home Assistant”, већ ће прескочити провере конфигурације и игнорисати покренуте миграције базе података. Користите ово само ако тачно знате шта радите."
|
||||
},
|
||||
"safe_mode": {
|
||||
"description": "Да ли поновно покретање треба извршити у безбедном режиму. Ово ће онемогућити све прилагођене интеграције и модуле корисничког интерфејса.",
|
||||
@@ -1939,22 +2026,22 @@
|
||||
"description": "Појачава светла која су већ укључена, док искључена светла не дира."
|
||||
},
|
||||
"homeassistant_ignore_all_discovered": {
|
||||
"name": "Занемари све тренутно откривене уређаје",
|
||||
"description": "Занемари све тренутно откривене уређаје који су приказани на контролној табли са интеграцијама. Ово неће важити за уређаје који се открију након овога.",
|
||||
"name": "Игнориши све тренутно откривене уређаје",
|
||||
"description": "Игнориши све тренутно откривене уређаје који су приказани на контролној табли са интеграцијама. Ово неће важити за уређаје који се открију након овога.",
|
||||
"fields": {
|
||||
"domain": {
|
||||
"name": "Домен интеграције",
|
||||
"description": "Домен интеграције за који се занемарују сви откривени уређаји. Ако није наведен, сматраће се да се занемарују сви домени."
|
||||
"description": "Домен интеграције за који се игноришу сви откривени уређаји. Ако није наведен, сматраће се да се игноришу сви домени."
|
||||
}
|
||||
}
|
||||
},
|
||||
"repairs_ignore_all": {
|
||||
"name": "Занемари све проблеме",
|
||||
"description": "Занемари све проблеме који су тренутно покренути у „Home Assistant“ Поправкама, или само оне које су покренуле одређене интеграције.",
|
||||
"name": "Игнориши све проблеме",
|
||||
"description": "Игнориши све проблеме који су тренутно покренути у „Home Assistant“ Поправкама, или само оне које су покренуле одређене интеграције.",
|
||||
"fields": {
|
||||
"domain": {
|
||||
"name": "Домен",
|
||||
"description": "Занемари само проблеме које су покренуле ове интеграције."
|
||||
"description": "Игнориши само проблеме које су покренуле ове интеграције."
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -2031,12 +2118,12 @@
|
||||
"description": "Сортира листу доступних опција за `input_select` ентитет. Ово није трајно и биће поништено након поновног учитавања или поновног покретања „Home Assistant”-а."
|
||||
},
|
||||
"repairs_unignore_all": {
|
||||
"description": "Престани са занемаривањем свих проблема који су тренутно покренути у „Home Assistant“ Поправкама, или само оних које су покренуле одређене интеграције.",
|
||||
"name": "Поништи занемаривање свих проблема",
|
||||
"description": "Престани са игнорисањем свих проблема који су тренутно покренути у „Home Assistant“ Поправкама, или само оних које су покренуле одређене интеграције.",
|
||||
"name": "Поништи игнорисање свих проблема",
|
||||
"fields": {
|
||||
"domain": {
|
||||
"name": "Домен",
|
||||
"description": "Престани са занемаривањем само оних проблема које су покренуле ове интеграције."
|
||||
"description": "Престани са игнорисањем само оних проблема које су покренуле ове интеграције."
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -2057,8 +2144,8 @@
|
||||
"repairs_list": {
|
||||
"fields": {
|
||||
"include_ignored": {
|
||||
"description": "Такође наведи проблеме који су занемарени.",
|
||||
"name": "Укључи занемарене"
|
||||
"description": "Такође наведи проблеме који су игнорисани.",
|
||||
"name": "Укључи игнорисано"
|
||||
},
|
||||
"domain": {
|
||||
"name": "Домен",
|
||||
@@ -2707,6 +2794,170 @@
|
||||
"description": "Нова величина корака."
|
||||
}
|
||||
}
|
||||
},
|
||||
"homeassistant_update_area": {
|
||||
"fields": {
|
||||
"aliases": {
|
||||
"name": "Псеудоними",
|
||||
"description": "Псеудоними за просторију. Замењују постојеће, а празна листа их уклања све."
|
||||
},
|
||||
"area_id": {
|
||||
"name": "ИД просторије",
|
||||
"description": "ИД просторије коју треба ажурирати."
|
||||
},
|
||||
"floor_id": {
|
||||
"name": "ИД спрата",
|
||||
"description": "ИД спрата на којем се просторија налази."
|
||||
},
|
||||
"humidity_entity_id": {
|
||||
"name": "Сензор влажности",
|
||||
"description": "Сензор који мери влажност ваздуха у просторији."
|
||||
},
|
||||
"icon": {
|
||||
"name": "Икона",
|
||||
"description": "Нова икона која ће се користити за просторију."
|
||||
},
|
||||
"labels": {
|
||||
"name": "Ознаке",
|
||||
"description": "ИД ознака за просторију. Замењују постојеће, а празна листа их уклања све."
|
||||
},
|
||||
"name": {
|
||||
"name": "Назив",
|
||||
"description": "Нови назив за просторију."
|
||||
},
|
||||
"picture": {
|
||||
"name": "Слика",
|
||||
"description": "„URL“ адреса или путања слике за просторију."
|
||||
},
|
||||
"temperature_entity_id": {
|
||||
"name": "Сензор температуре",
|
||||
"description": "Сензор који мери температуру у просторији."
|
||||
}
|
||||
},
|
||||
"name": "Ажурирај просторију",
|
||||
"description": "Ажурира постојећу просторију у лету. Све што изоставите задржава вредност коју већ има. Псеудоними и ознаке замењују постојеће које просторија има. Спрат, икона, слика и сензори се могу обрисати постављањем на „null“."
|
||||
},
|
||||
"homeassistant_update_floor": {
|
||||
"fields": {
|
||||
"aliases": {
|
||||
"name": "Псеудоними",
|
||||
"description": "Псеудоними за спрат. Замењују постојеће, а празна листа их уклања све."
|
||||
},
|
||||
"floor_id": {
|
||||
"name": "ИД спрата",
|
||||
"description": "ИД спрата који треба ажурирати."
|
||||
},
|
||||
"icon": {
|
||||
"name": "Икона",
|
||||
"description": "Нова икона која ће се користити за спрат."
|
||||
},
|
||||
"level": {
|
||||
"name": "Ниво",
|
||||
"description": "Ниво на којем се спрат налази у вашем дому."
|
||||
},
|
||||
"name": {
|
||||
"name": "Назив",
|
||||
"description": "Нови назив за спрат."
|
||||
}
|
||||
},
|
||||
"name": "Ажурирај спрат",
|
||||
"description": "Ажурира постојећи спрат у лету. Све што изоставите задржава вредност коју већ има. Псеудоними замењују постојеће које спрат има. Икона и ниво се могу обрисати постављањем на „null“."
|
||||
},
|
||||
"homeassistant_update_device": {
|
||||
"fields": {
|
||||
"area_id": {
|
||||
"name": "ИД просторије",
|
||||
"description": "ИД просторије у којој се уређај налази."
|
||||
},
|
||||
"device_id": {
|
||||
"name": "ИД уређаја",
|
||||
"description": "ИД уређаја који треба ажурирати. Онемогућени уређаји се не приказују у бирачу уређаја у „Home Assistant“-у, користите „YAML“ режим да бисте навели њихов ИД."
|
||||
},
|
||||
"disabled_by": {
|
||||
"name": "Онемогућено од",
|
||||
"description": "Поставите на корисника да бисте онемогућили уређај, или на „null“ да бисте га поново омогућили. Ово функционише исто као и акције за онемогућавање и омогућавање уређаја."
|
||||
},
|
||||
"labels": {
|
||||
"name": "Ознаке",
|
||||
"description": "ИД ознака за уређај. Замењују постојеће, а празна листа их уклања све."
|
||||
},
|
||||
"name_by_user": {
|
||||
"name": "Назив",
|
||||
"description": "Нови назив за уређај."
|
||||
}
|
||||
},
|
||||
"name": "Ажурирај уређај",
|
||||
"description": "Ажурира постојећи уређај у лету. Све што изоставите задржава вредност коју већ има. Ознаке замењују постојеће које уређај има. Назив и просторија се могу обрисати постављањем на „null“, што уређају враћа назив који му је доделила његова интеграција."
|
||||
},
|
||||
"schedule_create": {
|
||||
"name": "Креирај распоред",
|
||||
"description": "Креира новог помоћника за распоред у лету, који је укључен током задатих временских блокова за сваки дан у недељи. Враћа ИД ентитета новог распореда.",
|
||||
"fields": {
|
||||
"friday": {
|
||||
"name": "Петак",
|
||||
"description": "Кaдa je рaспoрeд укључeн, пeткoм: листa врeмeнских блoкoвa, свaки сa врeмeнoм пoчeткa и зaвршeткa, кao и oпциoним пoдaцимa кojи сe прикaзуjу кao aтрибути дoк je рaспoрeд укључeн. Aкo сe изoстaви, искључeн je цeлoг дaнa."
|
||||
},
|
||||
"icon": {
|
||||
"name": "Икона",
|
||||
"description": "Икона за нови распоред."
|
||||
},
|
||||
"monday": {
|
||||
"name": "Понедељак",
|
||||
"description": "Када је распоред укључен, понедељком: листа временских блокова, сваки са временом почетка и завршетка, као и опционим подацима који се приказују као атрибути док је распоред укључен. Ако се изостави, искључен је целог дана."
|
||||
},
|
||||
"name": {
|
||||
"name": "Назив",
|
||||
"description": "Назив новог распореда."
|
||||
},
|
||||
"saturday": {
|
||||
"name": "Субота",
|
||||
"description": "Када је распоред укључен, суботом: листа временских блокова, сваки са временом почетка и завршетка, као и опционим подацима који се приказују као атрибути док је распоред укључен. Ако се изостави, искључен је целог дана."
|
||||
},
|
||||
"schedule_id": {
|
||||
"name": "ИД ентитета распореда",
|
||||
"description": "ИД ентитета за нови распоред. Префикс „schedule“. се додаје аутоматски. Ако није наведен, ИД ентитета ће бити генерисан на основу назива."
|
||||
},
|
||||
"sunday": {
|
||||
"name": "Недеља",
|
||||
"description": "Када је распоред укључен, недељом: листа временских блокова, сваки са временом почетка и завршетка, као и опционим подацима који се приказују као атрибути док је распоред укључен. Ако се изостави, искључен је целог дана."
|
||||
},
|
||||
"thursday": {
|
||||
"name": "Четвртак",
|
||||
"description": "Када је распоред укључен, четвртком: листа временских блокова, сваки са временом почетка и завршетка, као и опционим подацима који се приказују као атрибути док је распоред укључен. Ако се изостави, искључен је целог дана."
|
||||
},
|
||||
"tuesday": {
|
||||
"name": "Уторак",
|
||||
"description": "Када је распоред укључен, уторком: листа временских блокова, сваки са временом почетка и завршетка, као и опционим подацима који се приказују као атрибути док је распоред укључен. Ако се изостави, искључен је целог дана."
|
||||
},
|
||||
"wednesday": {
|
||||
"name": "Среда",
|
||||
"description": "Када је распоред укључен, средом: листа временских блокова, сваки са временом почетка и завршетка, као и опционим подацима који се приказују као атрибути док је распоред укључен. Ако се изостави, искључен је целог дана."
|
||||
}
|
||||
}
|
||||
},
|
||||
"schedule_set_day": {
|
||||
"fields": {
|
||||
"day": {
|
||||
"name": "Дан",
|
||||
"description": "Дан или дани у недељи за које се подешавају временски блокови."
|
||||
},
|
||||
"blocks": {
|
||||
"description": "Временски блокови током којих је распоред укључен у тим данима, сваки са временом почетка и завршетка, као и опционим подацима који се приказују као атрибути док је распоред укључен. Ови блокови замењују постојеће блокове за те дане. Празна листа оставља дане искљученим током целог дана.",
|
||||
"name": "Временски блокови"
|
||||
}
|
||||
},
|
||||
"description": "Замењује временске блокове за један или више дана у помоћнику за распоред који је направљен у корисничком интерфејсу. Распореди подешени преко „YAML“-а не могу се мењати помоћу „Spook“-а.",
|
||||
"name": "Подешавање временских блокова за дан"
|
||||
},
|
||||
"schedule_delete": {
|
||||
"name": "Обриши распоред",
|
||||
"description": "Брише помоћнике за распоред који су направљени у корисничком интерфејсу. Распореди подешени преко „YAML“-а не могу се обрисати помоћу „Spook“-а.",
|
||||
"fields": {
|
||||
"entity_id": {
|
||||
"name": "ИД ентитета",
|
||||
"description": "Распоред(и) за брисање."
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"triggers": {
|
||||
@@ -2989,7 +3240,7 @@
|
||||
"description": "Само промене које не иду на једно од ових стања."
|
||||
},
|
||||
"ignore_unavailable": {
|
||||
"name": "Занемари недоступна и непозната стања",
|
||||
"name": "Игнориши недоступна и непозната стања",
|
||||
"description": "Изостави промене са недоступних и непознатих стања или на њих, како поновно покретање система или рутера не би активирало акције за све ставке. Искључите ову опцију ако желите да их користите у пољима „Са стања“ или „На стање“."
|
||||
},
|
||||
"attribute_changes": {
|
||||
@@ -3071,7 +3322,7 @@
|
||||
"name": "Озбиљност"
|
||||
}
|
||||
},
|
||||
"description": "Услов је испуњен ако постоји нерешен проблем у одељку Поправке. Занемарени проблеми се не рачунају.",
|
||||
"description": "Услов је испуњен ако постоји нерешен проблем у одељку Поправке. Игнорисани проблеми се не рачунају.",
|
||||
"name": "Нерешен проблем за поправку"
|
||||
},
|
||||
"not_triggered_by_user": {
|
||||
@@ -3126,13 +3377,24 @@
|
||||
"bottom": "Доле",
|
||||
"top": "Горе"
|
||||
}
|
||||
},
|
||||
"schedule_day": {
|
||||
"options": {
|
||||
"friday": "Петак",
|
||||
"monday": "Понедељак",
|
||||
"saturday": "Субота",
|
||||
"sunday": "Недеља",
|
||||
"thursday": "Четвртак",
|
||||
"tuesday": "Уторак",
|
||||
"wednesday": "Среда"
|
||||
}
|
||||
}
|
||||
},
|
||||
"system_health": {
|
||||
"info": {
|
||||
"version": "Верзија",
|
||||
"ghosts_found": "Пронађени духови",
|
||||
"ghosts_ignored": "Занемарени духови",
|
||||
"ghosts_ignored": "Игнорисани духови",
|
||||
"helpers_linked": "Повезани помоћници"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user