mirror of
https://github.com/home-assistant/frontend.git
synced 2026-05-23 01:27:07 +00:00
Compare commits
39 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a5c6ffd1b9 | |||
| 9aaaaae175 | |||
| 7d39b69540 | |||
| 09bad14c3d | |||
| 369c9dc6e2 | |||
| 9676d2cee7 | |||
| 5156c67226 | |||
| 4d48fc3d85 | |||
| 20da329a21 | |||
| 4b664cc142 | |||
| c9b620fdb2 | |||
| 25c886d401 | |||
| 740805356f | |||
| ce5fb57577 | |||
| 3e20d2b454 | |||
| a9e8186491 | |||
| 3bb909b026 | |||
| b921d91aeb | |||
| 05790954c6 | |||
| 13014c1351 | |||
| e34c63b830 | |||
| 943100d758 | |||
| 55f40d66f2 | |||
| 593e5ac79c | |||
| ef31bce5ee | |||
| 3c75eb96f1 | |||
| f34dfde925 | |||
| e3b72fe0aa | |||
| 60de74a375 | |||
| 55e58f8d35 | |||
| a465254418 | |||
| 5d27a138cf | |||
| 22f4b036df | |||
| 03f694922d | |||
| a841e287e5 | |||
| 5d2afdd825 | |||
| 67240e2339 | |||
| f84a8eccfa | |||
| 68a058e4f1 |
@@ -94,6 +94,7 @@ class HcLovelace extends LitElement {
|
||||
return css`
|
||||
:host {
|
||||
min-height: 100vh;
|
||||
height: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
box-sizing: border-box;
|
||||
|
||||
@@ -2,20 +2,22 @@ import { DemoTrace } from "./types";
|
||||
|
||||
export const basicTrace: DemoTrace = {
|
||||
trace: {
|
||||
last_action: "action/0",
|
||||
last_action: "action/0/choose/0/sequence/0",
|
||||
last_condition: "condition/0",
|
||||
run_id: "0",
|
||||
state: "stopped",
|
||||
timestamp: {
|
||||
start: "2021-03-12T21:38:48.050464+00:00",
|
||||
finish: "2021-03-12T21:38:48.068458+00:00",
|
||||
start: "2021-03-22T19:17:09.519178+00:00",
|
||||
finish: "2021-03-22T19:17:09.556129+00:00",
|
||||
},
|
||||
trigger: "state of input_boolean.toggle_1",
|
||||
unique_id: "1615419646544",
|
||||
domain: "automation",
|
||||
item_id: "1615419646544",
|
||||
action_trace: {
|
||||
"action/0": [
|
||||
{
|
||||
timestamp: "2021-03-12T21:38:48.054395+00:00",
|
||||
path: "action/0",
|
||||
timestamp: "2021-03-22T19:17:09.526794+00:00",
|
||||
changed_variables: {
|
||||
trigger: {
|
||||
platform: "state",
|
||||
@@ -23,11 +25,14 @@ export const basicTrace: DemoTrace = {
|
||||
from_state: {
|
||||
entity_id: "input_boolean.toggle_1",
|
||||
state: "on",
|
||||
attributes: { editable: true, friendly_name: "Toggle 1" },
|
||||
last_changed: "2021-03-12T21:38:03.262985+00:00",
|
||||
last_updated: "2021-03-12T21:38:03.262985+00:00",
|
||||
attributes: {
|
||||
editable: true,
|
||||
friendly_name: "Toggle 1",
|
||||
},
|
||||
last_changed: "2021-03-22T19:11:24.418709+00:00",
|
||||
last_updated: "2021-03-22T19:11:24.418709+00:00",
|
||||
context: {
|
||||
id: "4ad34793b237d7cb5e541e8a331e7bf9",
|
||||
id: "55daa6c47a7613b0800fe0ec81090a84",
|
||||
parent_id: null,
|
||||
user_id: null,
|
||||
},
|
||||
@@ -35,11 +40,14 @@ export const basicTrace: DemoTrace = {
|
||||
to_state: {
|
||||
entity_id: "input_boolean.toggle_1",
|
||||
state: "off",
|
||||
attributes: { editable: true, friendly_name: "Toggle 1" },
|
||||
last_changed: "2021-03-12T21:38:48.049816+00:00",
|
||||
last_updated: "2021-03-12T21:38:48.049816+00:00",
|
||||
attributes: {
|
||||
editable: true,
|
||||
friendly_name: "Toggle 1",
|
||||
},
|
||||
last_changed: "2021-03-22T19:17:09.516874+00:00",
|
||||
last_updated: "2021-03-22T19:17:09.516874+00:00",
|
||||
context: {
|
||||
id: "2d83ca81663c85df51fae2a1f940d0e7",
|
||||
id: "116d7a6562d594b114f7efe728619a3f",
|
||||
parent_id: null,
|
||||
user_id: "d1b4e89da01445fa8bc98e39fac477ca",
|
||||
},
|
||||
@@ -49,18 +57,58 @@ export const basicTrace: DemoTrace = {
|
||||
description: "state of input_boolean.toggle_1",
|
||||
},
|
||||
context: {
|
||||
id: "febeaa3d50152bae8017d783ed3c0751",
|
||||
parent_id: "2d83ca81663c85df51fae2a1f940d0e7",
|
||||
id: "54a7371cff31be0f4010c9fde2317322",
|
||||
parent_id: "116d7a6562d594b114f7efe728619a3f",
|
||||
user_id: null,
|
||||
},
|
||||
},
|
||||
result: {
|
||||
choice: 0,
|
||||
},
|
||||
},
|
||||
],
|
||||
"action/0/choose/0": [
|
||||
{
|
||||
path: "action/0/choose/0",
|
||||
timestamp: "2021-03-22T19:17:09.530176+00:00",
|
||||
result: {
|
||||
result: true,
|
||||
},
|
||||
},
|
||||
],
|
||||
"action/0/choose/0/conditions/0": [
|
||||
{
|
||||
path: "action/0/choose/0/conditions/0",
|
||||
timestamp: "2021-03-22T19:17:09.539155+00:00",
|
||||
result: {
|
||||
result: true,
|
||||
},
|
||||
},
|
||||
],
|
||||
"action/0/choose/0/sequence/0": [
|
||||
{
|
||||
path: "action/0/choose/0/sequence/0",
|
||||
timestamp: "2021-03-22T19:17:09.542769+00:00",
|
||||
result: {
|
||||
params: {
|
||||
domain: "input_boolean",
|
||||
service: "toggle",
|
||||
service_data: {},
|
||||
target: {
|
||||
entity_id: ["input_boolean.toggle_2"],
|
||||
},
|
||||
},
|
||||
running_script: false,
|
||||
limit: 10,
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
condition_trace: {
|
||||
"condition/0": [
|
||||
{
|
||||
timestamp: "2021-03-12T21:38:48.050783+00:00",
|
||||
path: "condition/0",
|
||||
timestamp: "2021-03-22T19:17:09.520267+00:00",
|
||||
changed_variables: {
|
||||
trigger: {
|
||||
platform: "state",
|
||||
@@ -68,11 +116,14 @@ export const basicTrace: DemoTrace = {
|
||||
from_state: {
|
||||
entity_id: "input_boolean.toggle_1",
|
||||
state: "on",
|
||||
attributes: { editable: true, friendly_name: "Toggle 1" },
|
||||
last_changed: "2021-03-12T21:38:03.262985+00:00",
|
||||
last_updated: "2021-03-12T21:38:03.262985+00:00",
|
||||
attributes: {
|
||||
editable: true,
|
||||
friendly_name: "Toggle 1",
|
||||
},
|
||||
last_changed: "2021-03-22T19:11:24.418709+00:00",
|
||||
last_updated: "2021-03-22T19:11:24.418709+00:00",
|
||||
context: {
|
||||
id: "4ad34793b237d7cb5e541e8a331e7bf9",
|
||||
id: "55daa6c47a7613b0800fe0ec81090a84",
|
||||
parent_id: null,
|
||||
user_id: null,
|
||||
},
|
||||
@@ -80,11 +131,14 @@ export const basicTrace: DemoTrace = {
|
||||
to_state: {
|
||||
entity_id: "input_boolean.toggle_1",
|
||||
state: "off",
|
||||
attributes: { editable: true, friendly_name: "Toggle 1" },
|
||||
last_changed: "2021-03-12T21:38:48.049816+00:00",
|
||||
last_updated: "2021-03-12T21:38:48.049816+00:00",
|
||||
attributes: {
|
||||
editable: true,
|
||||
friendly_name: "Toggle 1",
|
||||
},
|
||||
last_changed: "2021-03-22T19:17:09.516874+00:00",
|
||||
last_updated: "2021-03-22T19:17:09.516874+00:00",
|
||||
context: {
|
||||
id: "2d83ca81663c85df51fae2a1f940d0e7",
|
||||
id: "116d7a6562d594b114f7efe728619a3f",
|
||||
parent_id: null,
|
||||
user_id: "d1b4e89da01445fa8bc98e39fac477ca",
|
||||
},
|
||||
@@ -94,15 +148,22 @@ export const basicTrace: DemoTrace = {
|
||||
description: "state of input_boolean.toggle_1",
|
||||
},
|
||||
},
|
||||
result: { result: true },
|
||||
result: {
|
||||
result: true,
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
config: {
|
||||
id: "1615419646544",
|
||||
alias: "Basic Trace Example",
|
||||
alias: "Ensure Party mode",
|
||||
description: "",
|
||||
trigger: [{ platform: "state", entity_id: "input_boolean.toggle_1" }],
|
||||
trigger: [
|
||||
{
|
||||
platform: "state",
|
||||
entity_id: "input_boolean.toggle_1",
|
||||
},
|
||||
],
|
||||
condition: [
|
||||
{
|
||||
condition: "template",
|
||||
@@ -112,16 +173,37 @@ export const basicTrace: DemoTrace = {
|
||||
],
|
||||
action: [
|
||||
{
|
||||
service: "input_boolean.toggle",
|
||||
alias: "Enable party mode",
|
||||
target: { entity_id: "input_boolean.toggle_2" },
|
||||
choose: [
|
||||
{
|
||||
alias: "If toggle 3 is on",
|
||||
conditions: "{{ is_state('input_boolean.toggle_3', 'on') }}",
|
||||
sequence: [
|
||||
{
|
||||
service: "input_boolean.toggle",
|
||||
alias: "Toggle 2 while 3 is on",
|
||||
target: {
|
||||
entity_id: "input_boolean.toggle_2",
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
default: [
|
||||
{
|
||||
service: "input_boolean.toggle",
|
||||
alias: "Toggle 2",
|
||||
target: {
|
||||
entity_id: "input_boolean.toggle_2",
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
mode: "single",
|
||||
},
|
||||
context: {
|
||||
id: "febeaa3d50152bae8017d783ed3c0751",
|
||||
parent_id: "2d83ca81663c85df51fae2a1f940d0e7",
|
||||
id: "54a7371cff31be0f4010c9fde2317322",
|
||||
parent_id: "116d7a6562d594b114f7efe728619a3f",
|
||||
user_id: null,
|
||||
},
|
||||
variables: {
|
||||
@@ -131,11 +213,14 @@ export const basicTrace: DemoTrace = {
|
||||
from_state: {
|
||||
entity_id: "input_boolean.toggle_1",
|
||||
state: "on",
|
||||
attributes: { editable: true, friendly_name: "Toggle 1" },
|
||||
last_changed: "2021-03-12T21:38:03.262985+00:00",
|
||||
last_updated: "2021-03-12T21:38:03.262985+00:00",
|
||||
attributes: {
|
||||
editable: true,
|
||||
friendly_name: "Toggle 1",
|
||||
},
|
||||
last_changed: "2021-03-22T19:11:24.418709+00:00",
|
||||
last_updated: "2021-03-22T19:11:24.418709+00:00",
|
||||
context: {
|
||||
id: "4ad34793b237d7cb5e541e8a331e7bf9",
|
||||
id: "55daa6c47a7613b0800fe0ec81090a84",
|
||||
parent_id: null,
|
||||
user_id: null,
|
||||
},
|
||||
@@ -143,11 +228,14 @@ export const basicTrace: DemoTrace = {
|
||||
to_state: {
|
||||
entity_id: "input_boolean.toggle_1",
|
||||
state: "off",
|
||||
attributes: { editable: true, friendly_name: "Toggle 1" },
|
||||
last_changed: "2021-03-12T21:38:48.049816+00:00",
|
||||
last_updated: "2021-03-12T21:38:48.049816+00:00",
|
||||
attributes: {
|
||||
editable: true,
|
||||
friendly_name: "Toggle 1",
|
||||
},
|
||||
last_changed: "2021-03-22T19:17:09.516874+00:00",
|
||||
last_updated: "2021-03-22T19:17:09.516874+00:00",
|
||||
context: {
|
||||
id: "2d83ca81663c85df51fae2a1f940d0e7",
|
||||
id: "116d7a6562d594b114f7efe728619a3f",
|
||||
parent_id: null,
|
||||
user_id: "d1b4e89da01445fa8bc98e39fac477ca",
|
||||
},
|
||||
@@ -164,13 +252,14 @@ export const basicTrace: DemoTrace = {
|
||||
message: "has been triggered by state of input_boolean.toggle_1",
|
||||
source: "state of input_boolean.toggle_1",
|
||||
entity_id: "automation.toggle_toggles",
|
||||
when: "2021-03-12T21:38:48.051460+00:00",
|
||||
context_id: "54a7371cff31be0f4010c9fde2317322",
|
||||
when: "2021-03-22T19:17:09.523041+00:00",
|
||||
domain: "automation",
|
||||
},
|
||||
{
|
||||
when: "2021-03-12T21:38:48.064184+00:00",
|
||||
when: "2021-03-22T19:17:09.549346+00:00",
|
||||
name: "Toggle 2",
|
||||
state: "off",
|
||||
state: "on",
|
||||
entity_id: "input_boolean.toggle_2",
|
||||
context_entity_id: "automation.toggle_toggles",
|
||||
context_entity_id_name: "Ensure Party mode",
|
||||
|
||||
@@ -0,0 +1,248 @@
|
||||
import { DemoTrace } from "./types";
|
||||
|
||||
export const motionLightTrace: DemoTrace = {
|
||||
trace: {
|
||||
last_action: "action/3",
|
||||
last_condition: null,
|
||||
run_id: "1",
|
||||
state: "stopped",
|
||||
timestamp: {
|
||||
start: "2021-03-14T06:07:01.768006+00:00",
|
||||
finish: "2021-03-14T06:07:53.287525+00:00",
|
||||
},
|
||||
trigger: "state of binary_sensor.pauluss_macbook_pro_camera_in_use",
|
||||
domain: "automation",
|
||||
item_id: "1614732497392",
|
||||
action_trace: {
|
||||
"action/0": [
|
||||
{
|
||||
path: "action/0",
|
||||
timestamp: "2021-03-14T06:07:01.771038+00:00",
|
||||
changed_variables: {
|
||||
trigger: {
|
||||
platform: "state",
|
||||
entity_id: "binary_sensor.pauluss_macbook_pro_camera_in_use",
|
||||
from_state: {
|
||||
entity_id: "binary_sensor.pauluss_macbook_pro_camera_in_use",
|
||||
state: "off",
|
||||
attributes: {
|
||||
friendly_name: "Paulus’s MacBook Pro Camera In Use",
|
||||
icon: "mdi:camera-off",
|
||||
},
|
||||
last_changed: "2021-03-14T06:06:29.235325+00:00",
|
||||
last_updated: "2021-03-14T06:06:29.235325+00:00",
|
||||
context: {
|
||||
id: "ad4864c5ce957c38a07b50378eeb245d",
|
||||
parent_id: null,
|
||||
user_id: null,
|
||||
},
|
||||
},
|
||||
to_state: {
|
||||
entity_id: "binary_sensor.pauluss_macbook_pro_camera_in_use",
|
||||
state: "on",
|
||||
attributes: {
|
||||
friendly_name: "Paulus’s MacBook Pro Camera In Use",
|
||||
icon: "mdi:camera",
|
||||
},
|
||||
last_changed: "2021-03-14T06:07:01.762009+00:00",
|
||||
last_updated: "2021-03-14T06:07:01.762009+00:00",
|
||||
context: {
|
||||
id: "e22ddfd5f11dc4aad9a52fc10dab613b",
|
||||
parent_id: null,
|
||||
user_id: null,
|
||||
},
|
||||
},
|
||||
for: null,
|
||||
attribute: null,
|
||||
description:
|
||||
"state of binary_sensor.pauluss_macbook_pro_camera_in_use",
|
||||
},
|
||||
context: {
|
||||
id: "43b6ee9293a551c5cc14e8eb60af54ba",
|
||||
parent_id: "e22ddfd5f11dc4aad9a52fc10dab613b",
|
||||
user_id: null,
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
"action/1": [
|
||||
{ path: "action/1", timestamp: "2021-03-14T06:07:01.875316+00:00" },
|
||||
],
|
||||
"action/2": [
|
||||
{
|
||||
path: "action/2",
|
||||
timestamp: "2021-03-14T06:07:53.195013+00:00",
|
||||
changed_variables: {
|
||||
wait: {
|
||||
remaining: null,
|
||||
trigger: {
|
||||
platform: "state",
|
||||
entity_id: "binary_sensor.pauluss_macbook_pro_camera_in_use",
|
||||
from_state: {
|
||||
entity_id: "binary_sensor.pauluss_macbook_pro_camera_in_use",
|
||||
state: "on",
|
||||
attributes: {
|
||||
friendly_name: "Paulus’s MacBook Pro Camera In Use",
|
||||
icon: "mdi:camera",
|
||||
},
|
||||
last_changed: "2021-03-14T06:07:01.762009+00:00",
|
||||
last_updated: "2021-03-14T06:07:01.762009+00:00",
|
||||
context: {
|
||||
id: "e22ddfd5f11dc4aad9a52fc10dab613b",
|
||||
parent_id: null,
|
||||
user_id: null,
|
||||
},
|
||||
},
|
||||
to_state: {
|
||||
entity_id: "binary_sensor.pauluss_macbook_pro_camera_in_use",
|
||||
state: "off",
|
||||
attributes: {
|
||||
friendly_name: "Paulus’s MacBook Pro Camera In Use",
|
||||
icon: "mdi:camera-off",
|
||||
},
|
||||
last_changed: "2021-03-14T06:07:53.186755+00:00",
|
||||
last_updated: "2021-03-14T06:07:53.186755+00:00",
|
||||
context: {
|
||||
id: "b2308cc91d509ea8e0c623331ab178d6",
|
||||
parent_id: null,
|
||||
user_id: null,
|
||||
},
|
||||
},
|
||||
for: null,
|
||||
attribute: null,
|
||||
description:
|
||||
"state of binary_sensor.pauluss_macbook_pro_camera_in_use",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
"action/3": [
|
||||
{
|
||||
path: "action/3",
|
||||
timestamp: "2021-03-14T06:07:53.196014+00:00",
|
||||
},
|
||||
],
|
||||
},
|
||||
condition_trace: {},
|
||||
config: {
|
||||
mode: "restart",
|
||||
max_exceeded: "silent",
|
||||
trigger: [
|
||||
{
|
||||
platform: "state",
|
||||
entity_id: "binary_sensor.pauluss_macbook_pro_camera_in_use",
|
||||
from: "off",
|
||||
to: "on",
|
||||
},
|
||||
],
|
||||
action: [
|
||||
{
|
||||
service: "light.turn_on",
|
||||
target: {
|
||||
entity_id: "light.elgato_key_light_air",
|
||||
},
|
||||
},
|
||||
{
|
||||
wait_for_trigger: [
|
||||
{
|
||||
platform: "state",
|
||||
entity_id: "binary_sensor.pauluss_macbook_pro_camera_in_use",
|
||||
from: "on",
|
||||
to: "off",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
delay: 0,
|
||||
},
|
||||
{
|
||||
service: "light.turn_off",
|
||||
target: {
|
||||
entity_id: "light.elgato_key_light_air",
|
||||
},
|
||||
},
|
||||
],
|
||||
id: "1614732497392",
|
||||
alias: "Auto Elgato",
|
||||
description: "",
|
||||
},
|
||||
context: {
|
||||
id: "43b6ee9293a551c5cc14e8eb60af54ba",
|
||||
parent_id: "e22ddfd5f11dc4aad9a52fc10dab613b",
|
||||
user_id: null,
|
||||
},
|
||||
variables: {
|
||||
trigger: {
|
||||
platform: "state",
|
||||
entity_id: "binary_sensor.pauluss_macbook_pro_camera_in_use",
|
||||
from_state: {
|
||||
entity_id: "binary_sensor.pauluss_macbook_pro_camera_in_use",
|
||||
state: "off",
|
||||
attributes: {
|
||||
friendly_name: "Paulus’s MacBook Pro Camera In Use",
|
||||
icon: "mdi:camera-off",
|
||||
},
|
||||
last_changed: "2021-03-14T06:06:29.235325+00:00",
|
||||
last_updated: "2021-03-14T06:06:29.235325+00:00",
|
||||
context: {
|
||||
id: "ad4864c5ce957c38a07b50378eeb245d",
|
||||
parent_id: null,
|
||||
user_id: null,
|
||||
},
|
||||
},
|
||||
to_state: {
|
||||
entity_id: "binary_sensor.pauluss_macbook_pro_camera_in_use",
|
||||
state: "on",
|
||||
attributes: {
|
||||
friendly_name: "Paulus’s MacBook Pro Camera In Use",
|
||||
icon: "mdi:camera",
|
||||
},
|
||||
last_changed: "2021-03-14T06:07:01.762009+00:00",
|
||||
last_updated: "2021-03-14T06:07:01.762009+00:00",
|
||||
context: {
|
||||
id: "e22ddfd5f11dc4aad9a52fc10dab613b",
|
||||
parent_id: null,
|
||||
user_id: null,
|
||||
},
|
||||
},
|
||||
for: null,
|
||||
attribute: null,
|
||||
description: "state of binary_sensor.pauluss_macbook_pro_camera_in_use",
|
||||
},
|
||||
},
|
||||
},
|
||||
logbookEntries: [
|
||||
{
|
||||
name: "Auto Elgato",
|
||||
message:
|
||||
"has been triggered by state of binary_sensor.pauluss_macbook_pro_camera_in_use",
|
||||
source: "state of binary_sensor.pauluss_macbook_pro_camera_in_use",
|
||||
entity_id: "automation.auto_elgato",
|
||||
when: "2021-03-14T06:07:01.768492+00:00",
|
||||
domain: "automation",
|
||||
},
|
||||
{
|
||||
when: "2021-03-14T06:07:01.872187+00:00",
|
||||
name: "Elgato Key Light Air",
|
||||
state: "on",
|
||||
entity_id: "light.elgato_key_light_air",
|
||||
context_entity_id: "automation.auto_elgato",
|
||||
context_entity_id_name: "Auto Elgato",
|
||||
context_event_type: "automation_triggered",
|
||||
context_domain: "automation",
|
||||
context_name: "Auto Elgato",
|
||||
},
|
||||
{
|
||||
when: "2021-03-14T06:07:53.284505+00:00",
|
||||
name: "Elgato Key Light Air",
|
||||
state: "off",
|
||||
entity_id: "light.elgato_key_light_air",
|
||||
context_entity_id: "automation.auto_elgato",
|
||||
context_entity_id_name: "Auto Elgato",
|
||||
context_event_type: "automation_triggered",
|
||||
context_domain: "automation",
|
||||
context_name: "Auto Elgato",
|
||||
},
|
||||
],
|
||||
};
|
||||
@@ -1,4 +1,4 @@
|
||||
import { AutomationTraceExtended } from "../../../../src/data/automation_debug";
|
||||
import { AutomationTraceExtended } from "../../../../src/data/trace";
|
||||
import { LogbookEntry } from "../../../../src/data/logbook";
|
||||
|
||||
export interface DemoTrace {
|
||||
|
||||
@@ -10,10 +10,11 @@ import "../../../src/components/ha-card";
|
||||
import "../../../src/components/trace/hat-trace";
|
||||
import { provideHass } from "../../../src/fake_data/provide_hass";
|
||||
import { HomeAssistant } from "../../../src/types";
|
||||
import { basicTrace } from "../data/traces/basic_trace";
|
||||
import { DemoTrace } from "../data/traces/types";
|
||||
import { basicTrace } from "../data/traces/basic_trace";
|
||||
import { motionLightTrace } from "../data/traces/motion-light-trace";
|
||||
|
||||
const traces: DemoTrace[] = [basicTrace];
|
||||
const traces: DemoTrace[] = [basicTrace, motionLightTrace];
|
||||
|
||||
@customElement("demo-automation-trace")
|
||||
export class DemoAutomationTrace extends LitElement {
|
||||
@@ -42,7 +43,8 @@ export class DemoAutomationTrace extends LitElement {
|
||||
|
||||
protected firstUpdated(changedProps) {
|
||||
super.firstUpdated(changedProps);
|
||||
provideHass(this);
|
||||
const hass = provideHass(this);
|
||||
hass.updateTranslations(null, "en");
|
||||
}
|
||||
|
||||
static get styles() {
|
||||
|
||||
@@ -242,14 +242,14 @@ class HassioAddonInfo extends LitElement {
|
||||
? html`
|
||||
Current version: ${this.addon.version}
|
||||
<div class="changelog" @click=${this._openChangelog}>
|
||||
(<span class="changelog-link">
|
||||
${this.supervisor.localize("addon.dashboard.changelog")} </span
|
||||
(<span class="changelog-link">${
|
||||
this.supervisor.localize("addon.dashboard.changelog")}</span
|
||||
>)
|
||||
</div>
|
||||
`
|
||||
: html`<span class="changelog-link" @click=${this._openChangelog}>
|
||||
${this.supervisor.localize("addon.dashboard.changelog")}
|
||||
</span>`}
|
||||
: html`<span class="changelog-link" @click=${this._openChangelog}>${
|
||||
this.supervisor.localize("addon.dashboard.changelog")
|
||||
}</span>`}
|
||||
</div>
|
||||
|
||||
<div class="description light-color">
|
||||
|
||||
@@ -48,6 +48,7 @@ const UNSUPPORTED_REASON_URL = {
|
||||
os: "/more-info/unsupported/os",
|
||||
privileged: "/more-info/unsupported/privileged",
|
||||
systemd: "/more-info/unsupported/systemd",
|
||||
content_trust: "/more-info/unsupported/content_trust",
|
||||
};
|
||||
|
||||
const UNHEALTHY_REASON_URL = {
|
||||
@@ -55,6 +56,7 @@ const UNHEALTHY_REASON_URL = {
|
||||
supervisor: "/more-info/unhealthy/supervisor",
|
||||
setup: "/more-info/unhealthy/setup",
|
||||
docker: "/more-info/unhealthy/docker",
|
||||
untrusted: "/more-info/unhealthy/untrusted",
|
||||
};
|
||||
|
||||
@customElement("hassio-supervisor-info")
|
||||
|
||||
@@ -2,12 +2,12 @@ from setuptools import setup, find_packages
|
||||
|
||||
setup(
|
||||
name="home-assistant-frontend",
|
||||
version="20210313.0",
|
||||
version="20210324.0",
|
||||
description="The Home Assistant frontend",
|
||||
url="https://github.com/home-assistant/home-assistant-polymer",
|
||||
author="The Home Assistant Authors",
|
||||
author_email="hello@home-assistant.io",
|
||||
license="Apache License 2.0",
|
||||
license="Apache-2.0",
|
||||
packages=find_packages(include=["hass_frontend", "hass_frontend.*"]),
|
||||
include_package_data=True,
|
||||
zip_safe=False,
|
||||
|
||||
@@ -236,20 +236,19 @@ export class HaDataTable extends LitElement {
|
||||
"auto-height": this.autoHeight,
|
||||
})}"
|
||||
role="table"
|
||||
aria-rowcount=${this._filteredData.length}
|
||||
aria-rowcount=${this._filteredData.length + 1}
|
||||
style=${styleMap({
|
||||
height: this.autoHeight
|
||||
? `${(this._filteredData.length || 1) * 53 + 57}px`
|
||||
: `calc(100% - ${this._headerHeight}px)`,
|
||||
})}
|
||||
>
|
||||
<div class="mdc-data-table__header-row" role="row">
|
||||
<div class="mdc-data-table__header-row" role="row" aria-rowindex="1">
|
||||
${this.selectable
|
||||
? html`
|
||||
<div
|
||||
class="mdc-data-table__header-cell mdc-data-table__header-cell--checkbox"
|
||||
role="columnheader"
|
||||
scope="col"
|
||||
>
|
||||
<ha-checkbox
|
||||
class="mdc-data-table__row-checkbox"
|
||||
@@ -292,7 +291,13 @@ export class HaDataTable extends LitElement {
|
||||
})
|
||||
: ""}
|
||||
role="columnheader"
|
||||
scope="col"
|
||||
aria-sort=${ifDefined(
|
||||
sorted
|
||||
? this._sortDirection === "desc"
|
||||
? "descending"
|
||||
: "ascending"
|
||||
: undefined
|
||||
)}
|
||||
@click=${this._handleHeaderClick}
|
||||
.columnId=${key}
|
||||
>
|
||||
@@ -338,7 +343,7 @@ export class HaDataTable extends LitElement {
|
||||
}
|
||||
return html`
|
||||
<div
|
||||
aria-rowindex=${index}
|
||||
aria-rowindex=${index! + 2}
|
||||
role="row"
|
||||
.rowId=${row[this.id]}
|
||||
@click=${this._handleRowClick}
|
||||
|
||||
@@ -1,60 +1,114 @@
|
||||
import { mdiCircleOutline } from "@mdi/js";
|
||||
import { LitElement, customElement, html, css, property } from "lit-element";
|
||||
import {
|
||||
LitElement,
|
||||
customElement,
|
||||
html,
|
||||
css,
|
||||
property,
|
||||
TemplateResult,
|
||||
internalProperty,
|
||||
} from "lit-element";
|
||||
import { buttonLinkStyle } from "../../resources/styles";
|
||||
import "../ha-svg-icon";
|
||||
|
||||
@customElement("ha-timeline")
|
||||
class HaTimeline extends LitElement {
|
||||
@property({ type: Boolean, reflect: true }) public label = false;
|
||||
|
||||
@property({ type: Boolean }) public lastItem = false;
|
||||
|
||||
@property({ type: String }) public icon?: string;
|
||||
|
||||
@property({ attribute: false }) public moreItems?: TemplateResult[];
|
||||
|
||||
@internalProperty() private _showMore = false;
|
||||
|
||||
protected render() {
|
||||
return html`
|
||||
<div class="timeline-start">
|
||||
<ha-svg-icon .path=${this.icon || mdiCircleOutline}></ha-svg-icon>
|
||||
${this.label
|
||||
? ""
|
||||
: html`
|
||||
<ha-svg-icon .path=${this.icon || mdiCircleOutline}></ha-svg-icon>
|
||||
`}
|
||||
${this.lastItem ? "" : html`<div class="line"></div>`}
|
||||
</div>
|
||||
<div class="content"><slot></slot></div>
|
||||
<div class="content">
|
||||
<slot></slot>
|
||||
${!this.moreItems
|
||||
? ""
|
||||
: html`
|
||||
<div>
|
||||
${this._showMore ||
|
||||
// If there is only 1 item hidden behind "show more", just show it
|
||||
// instead of showing the more info link. We're not animals.
|
||||
this.moreItems.length === 1
|
||||
? this.moreItems
|
||||
: html`
|
||||
<button class="link" @click=${this._handleShowMore}>
|
||||
Show ${this.moreItems.length} more items
|
||||
</button>
|
||||
`}
|
||||
</div>
|
||||
`}
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
||||
private _handleShowMore() {
|
||||
this._showMore = true;
|
||||
}
|
||||
|
||||
static get styles() {
|
||||
return css`
|
||||
:host {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
:host(:not([lastItem])) {
|
||||
min-height: 50px;
|
||||
}
|
||||
.timeline-start {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
margin-right: 4px;
|
||||
}
|
||||
ha-svg-icon {
|
||||
color: var(
|
||||
--timeline-ball-color,
|
||||
var(--timeline-color, var(--secondary-text-color))
|
||||
);
|
||||
}
|
||||
.line {
|
||||
flex: 1;
|
||||
width: 2px;
|
||||
background-color: var(
|
||||
--timeline-line-color,
|
||||
var(--timeline-color, var(--secondary-text-color))
|
||||
);
|
||||
margin: 4px 0;
|
||||
}
|
||||
.content {
|
||||
margin-top: 2px;
|
||||
}
|
||||
:host(:not([lastItem])) .content {
|
||||
padding-bottom: 16px;
|
||||
}
|
||||
`;
|
||||
return [
|
||||
css`
|
||||
:host {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
}
|
||||
:host(:not([lastItem])) {
|
||||
min-height: 50px;
|
||||
}
|
||||
:host([label]) {
|
||||
margin-top: -8px;
|
||||
font-style: italic;
|
||||
color: var(--timeline-label-color, var(--secondary-text-color));
|
||||
}
|
||||
.timeline-start {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
margin-right: 8px;
|
||||
width: 24px;
|
||||
}
|
||||
ha-svg-icon {
|
||||
color: var(
|
||||
--timeline-ball-color,
|
||||
var(--timeline-color, var(--secondary-text-color))
|
||||
);
|
||||
}
|
||||
.line {
|
||||
flex: 1;
|
||||
width: 2px;
|
||||
background-color: var(
|
||||
--timeline-line-color,
|
||||
var(--timeline-color, var(--secondary-text-color))
|
||||
);
|
||||
margin: 4px 0;
|
||||
}
|
||||
.content {
|
||||
margin-top: 2px;
|
||||
}
|
||||
:host(:not([lastItem])) .content {
|
||||
padding-bottom: 16px;
|
||||
}
|
||||
:host([label]) .content {
|
||||
margin-top: 0;
|
||||
padding-top: 6px;
|
||||
}
|
||||
`,
|
||||
buttonLinkStyle,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -9,10 +9,10 @@ import {
|
||||
} from "lit-element";
|
||||
import { formatDateTimeWithSeconds } from "../../common/datetime/format_date_time";
|
||||
import {
|
||||
ActionTrace,
|
||||
AutomationTraceExtended,
|
||||
getConfigFromPath,
|
||||
} from "../../data/automation_debug";
|
||||
ChooseActionTrace,
|
||||
getDataFromPath,
|
||||
} from "../../data/trace";
|
||||
import { HomeAssistant } from "../../types";
|
||||
import "./ha-timeline";
|
||||
import {
|
||||
@@ -24,9 +24,300 @@ import {
|
||||
mdiStopCircleOutline,
|
||||
} from "@mdi/js";
|
||||
import { LogbookEntry } from "../../data/logbook";
|
||||
import { getActionType } from "../../data/script";
|
||||
import relativeTime from "../../common/datetime/relative_time";
|
||||
|
||||
const LOGBOOK_ENTRIES_BEFORE_FOLD = 2;
|
||||
|
||||
const pathToName = (path: string) => path.split("/").join(" ");
|
||||
|
||||
/* eslint max-classes-per-file: "off" */
|
||||
|
||||
// Report time entry when more than this time has passed
|
||||
const SIGNIFICANT_TIME_CHANGE = 5000; // 5 seconds
|
||||
|
||||
const isSignificantTimeChange = (a: Date, b: Date) =>
|
||||
Math.abs(b.getTime() - a.getTime()) > SIGNIFICANT_TIME_CHANGE;
|
||||
|
||||
class RenderedTimeTracker {
|
||||
private lastReportedTime: Date;
|
||||
|
||||
constructor(
|
||||
private hass: HomeAssistant,
|
||||
private entries: TemplateResult[],
|
||||
trace: AutomationTraceExtended
|
||||
) {
|
||||
this.lastReportedTime = new Date(trace.timestamp.start);
|
||||
}
|
||||
|
||||
setLastReportedTime(date: Date) {
|
||||
this.lastReportedTime = date;
|
||||
}
|
||||
|
||||
renderTime(from: Date, to: Date): void {
|
||||
this.entries.push(html`
|
||||
<ha-timeline label>
|
||||
${relativeTime(from, this.hass.localize, {
|
||||
compareTime: to,
|
||||
includeTense: false,
|
||||
})}
|
||||
later
|
||||
</ha-timeline>
|
||||
`);
|
||||
this.lastReportedTime = to;
|
||||
}
|
||||
|
||||
maybeRenderTime(timestamp: Date): boolean {
|
||||
if (!isSignificantTimeChange(timestamp, this.lastReportedTime)) {
|
||||
this.lastReportedTime = timestamp;
|
||||
return false;
|
||||
}
|
||||
|
||||
this.renderTime(this.lastReportedTime, timestamp);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
class LogbookRenderer {
|
||||
private curIndex: number;
|
||||
|
||||
private pendingItems: Array<[Date, LogbookEntry]> = [];
|
||||
|
||||
constructor(
|
||||
private entries: TemplateResult[],
|
||||
private timeTracker: RenderedTimeTracker,
|
||||
private logbookEntries: LogbookEntry[]
|
||||
) {
|
||||
// Skip the "automation got triggered item"
|
||||
this.curIndex =
|
||||
logbookEntries.length > 0 && logbookEntries[0].domain === "automation"
|
||||
? 1
|
||||
: 0;
|
||||
}
|
||||
|
||||
get curItem() {
|
||||
return this.logbookEntries[this.curIndex];
|
||||
}
|
||||
|
||||
get hasNext() {
|
||||
return this.curIndex !== this.logbookEntries.length;
|
||||
}
|
||||
|
||||
maybeRenderItem() {
|
||||
const logbookEntry = this.curItem;
|
||||
this.curIndex++;
|
||||
const entryDate = new Date(logbookEntry.when);
|
||||
|
||||
if (this.pendingItems.length === 0) {
|
||||
this.pendingItems.push([entryDate, logbookEntry]);
|
||||
return;
|
||||
}
|
||||
|
||||
const previousEntryDate = this.pendingItems[
|
||||
this.pendingItems.length - 1
|
||||
][0];
|
||||
|
||||
// If logbook entry is too long after the last one,
|
||||
// add a time passed label
|
||||
if (isSignificantTimeChange(previousEntryDate, entryDate)) {
|
||||
this._renderLogbookEntries();
|
||||
this.timeTracker.renderTime(previousEntryDate, entryDate);
|
||||
}
|
||||
|
||||
this.pendingItems.push([entryDate, logbookEntry]);
|
||||
}
|
||||
|
||||
flush() {
|
||||
if (this.pendingItems.length > 0) {
|
||||
this._renderLogbookEntries();
|
||||
}
|
||||
}
|
||||
|
||||
private _renderLogbookEntries() {
|
||||
this.timeTracker.maybeRenderTime(this.pendingItems[0][0]);
|
||||
|
||||
const parts: TemplateResult[] = [];
|
||||
|
||||
let i;
|
||||
|
||||
for (
|
||||
i = 0;
|
||||
i < Math.min(this.pendingItems.length, LOGBOOK_ENTRIES_BEFORE_FOLD);
|
||||
i++
|
||||
) {
|
||||
parts.push(this._renderLogbookEntryHelper(this.pendingItems[i][1]));
|
||||
}
|
||||
|
||||
let moreItems: TemplateResult[] | undefined;
|
||||
|
||||
// If we didn't render all items, push rest into `moreItems`
|
||||
if (i < this.pendingItems.length) {
|
||||
moreItems = [];
|
||||
for (; i < this.pendingItems.length; i++) {
|
||||
moreItems.push(this._renderLogbookEntryHelper(this.pendingItems[i][1]));
|
||||
}
|
||||
}
|
||||
|
||||
this.entries.push(html`
|
||||
<ha-timeline .icon=${mdiCircleOutline} .moreItems=${moreItems}>
|
||||
${parts}
|
||||
</ha-timeline>
|
||||
`);
|
||||
|
||||
// Clear rendered items.
|
||||
this.timeTracker.setLastReportedTime(
|
||||
this.pendingItems[this.pendingItems.length - 1][0]
|
||||
);
|
||||
this.pendingItems = [];
|
||||
}
|
||||
|
||||
private _renderLogbookEntryHelper(entry: LogbookEntry) {
|
||||
return html`${entry.name} (${entry.entity_id}) turned ${entry.state}<br />`;
|
||||
}
|
||||
}
|
||||
|
||||
class ActionRenderer {
|
||||
private curIndex = 0;
|
||||
|
||||
private keys: string[];
|
||||
|
||||
constructor(
|
||||
private entries: TemplateResult[],
|
||||
private trace: AutomationTraceExtended,
|
||||
private timeTracker: RenderedTimeTracker
|
||||
) {
|
||||
this.keys = Object.keys(trace.action_trace);
|
||||
}
|
||||
|
||||
get curItem() {
|
||||
return this._getItem(this.curIndex);
|
||||
}
|
||||
|
||||
get hasNext() {
|
||||
return this.curIndex !== this.keys.length;
|
||||
}
|
||||
|
||||
renderItem() {
|
||||
this.curIndex = this._renderItem(this.curIndex);
|
||||
}
|
||||
|
||||
private _getItem(index: number) {
|
||||
return this.trace.action_trace[this.keys[index]];
|
||||
}
|
||||
|
||||
private _renderItem(
|
||||
index: number,
|
||||
actionType?: ReturnType<typeof getActionType>
|
||||
): number {
|
||||
const value = this._getItem(index);
|
||||
const timestamp = new Date(value[0].timestamp);
|
||||
|
||||
this.timeTracker.maybeRenderTime(timestamp);
|
||||
|
||||
const path = value[0].path;
|
||||
let data;
|
||||
try {
|
||||
data = getDataFromPath(this.trace.config, path);
|
||||
} catch (err) {
|
||||
this.entries.push(
|
||||
html`Unable to extract path ${path}. Download trace and report as bug`
|
||||
);
|
||||
return index + 1;
|
||||
}
|
||||
|
||||
const isTopLevel = path.split("/").length === 2;
|
||||
|
||||
if (!isTopLevel && !actionType) {
|
||||
this._renderEntry(path.replace(/\//g, " "));
|
||||
return index + 1;
|
||||
}
|
||||
|
||||
if (!actionType) {
|
||||
actionType = getActionType(data);
|
||||
}
|
||||
|
||||
if (actionType === "choose") {
|
||||
return this._handleChoose(index);
|
||||
}
|
||||
|
||||
this._renderEntry(data.alias || actionType);
|
||||
return index + 1;
|
||||
}
|
||||
|
||||
private _handleChoose(index: number): number {
|
||||
// startLevel: choose root config
|
||||
|
||||
// +1: 'default
|
||||
// +2: executed sequence
|
||||
|
||||
// +1: 'choose'
|
||||
// +2: current choice
|
||||
|
||||
// +3: 'conditions'
|
||||
// +4: evaluated condition
|
||||
|
||||
// +3: 'sequence'
|
||||
// +4: executed sequence
|
||||
|
||||
const startLevel = this.keys[index].split("/").length - 1;
|
||||
|
||||
const chooseTrace = this._getItem(index)[0] as ChooseActionTrace;
|
||||
const defaultExecuted = chooseTrace.result.choice === "default";
|
||||
|
||||
if (defaultExecuted) {
|
||||
this._renderEntry(`Choose: Default action executed`);
|
||||
} else {
|
||||
this._renderEntry(`Choose: Choice ${chooseTrace.result.choice} executed`);
|
||||
}
|
||||
|
||||
let i;
|
||||
|
||||
// Skip over conditions
|
||||
for (i = index + 1; i < this.keys.length; i++) {
|
||||
const parts = this.keys[i].split("/");
|
||||
|
||||
// We're done if no more sequence in current level
|
||||
if (parts.length <= startLevel) {
|
||||
return i;
|
||||
}
|
||||
|
||||
// We're going to skip all conditions
|
||||
if (parts[startLevel + 3] === "sequence") {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Render choice
|
||||
while (i < this.keys.length) {
|
||||
const path = this.keys[i];
|
||||
const parts = path.split("/");
|
||||
|
||||
// We're done if no more sequence in current level
|
||||
if (parts.length <= startLevel) {
|
||||
return i;
|
||||
}
|
||||
|
||||
// We know it's an action sequence, so force the type like that
|
||||
// for rendering.
|
||||
i = this._renderItem(i, getActionType(this._getDataFromPath(path)));
|
||||
}
|
||||
|
||||
return i;
|
||||
}
|
||||
|
||||
private _renderEntry(description: string) {
|
||||
this.entries.push(html`
|
||||
<ha-timeline .icon=${mdiRecordCircleOutline}>
|
||||
${description}
|
||||
</ha-timeline>
|
||||
`);
|
||||
}
|
||||
|
||||
private _getDataFromPath(path: string) {
|
||||
return getDataFromPath(this.trace.config, path);
|
||||
}
|
||||
}
|
||||
|
||||
@customElement("hat-trace")
|
||||
export class HaAutomationTracer extends LitElement {
|
||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||
@@ -61,7 +352,7 @@ export class HaAutomationTracer extends LitElement {
|
||||
? mdiCheckCircleOutline
|
||||
: mdiStopCircleOutline}
|
||||
>
|
||||
${getConfigFromPath(this.trace!.config, path).alias ||
|
||||
${getDataFromPath(this.trace!.config, path).alias ||
|
||||
pathToName(path)}
|
||||
${value[0].result.result ? "passed" : "failed"}
|
||||
</ha-timeline>
|
||||
@@ -70,54 +361,44 @@ export class HaAutomationTracer extends LitElement {
|
||||
}
|
||||
|
||||
if (this.trace.action_trace && this.logbookEntries) {
|
||||
const actionTraces = Object.entries(this.trace.action_trace);
|
||||
|
||||
let logbookIndex = 0;
|
||||
let actionTraceIndex = 0;
|
||||
|
||||
while (
|
||||
logbookIndex < this.logbookEntries.length &&
|
||||
actionTraceIndex < actionTraces.length
|
||||
) {
|
||||
// Find next item.
|
||||
|
||||
// Skip the "automation got triggered item"
|
||||
if (
|
||||
logbookIndex === 0 &&
|
||||
this.logbookEntries[0].domain === "automation"
|
||||
) {
|
||||
logbookIndex++;
|
||||
continue;
|
||||
}
|
||||
const timeTracker = new RenderedTimeTracker(
|
||||
this.hass,
|
||||
entries,
|
||||
this.trace
|
||||
);
|
||||
const logbookRenderer = new LogbookRenderer(
|
||||
entries,
|
||||
timeTracker,
|
||||
this.logbookEntries
|
||||
);
|
||||
const actionRenderer = new ActionRenderer(
|
||||
entries,
|
||||
this.trace,
|
||||
timeTracker
|
||||
);
|
||||
|
||||
while (logbookRenderer.hasNext && actionRenderer.hasNext) {
|
||||
// Find next item time-wise.
|
||||
const logbookItem = this.logbookEntries[logbookIndex];
|
||||
const actionTrace = actionTraces[actionTraceIndex];
|
||||
const logbookItem = logbookRenderer.curItem;
|
||||
const actionTrace = actionRenderer.curItem;
|
||||
const actionTimestamp = new Date(actionTrace[0].timestamp);
|
||||
|
||||
if (
|
||||
new Date(logbookItem.when) > new Date(actionTrace[1][0].timestamp)
|
||||
) {
|
||||
actionTraceIndex++;
|
||||
entries.push(this._renderActionTrace(...actionTrace));
|
||||
if (new Date(logbookItem.when) > actionTimestamp) {
|
||||
logbookRenderer.flush();
|
||||
actionRenderer.renderItem();
|
||||
} else {
|
||||
logbookIndex++;
|
||||
entries.push(this._renderLogbookEntry(logbookItem));
|
||||
logbookRenderer.maybeRenderItem();
|
||||
}
|
||||
}
|
||||
|
||||
// Append all leftover items
|
||||
while (logbookIndex < this.logbookEntries.length) {
|
||||
entries.push(
|
||||
this._renderLogbookEntry(this.logbookEntries[logbookIndex])
|
||||
);
|
||||
logbookIndex++;
|
||||
while (logbookRenderer.hasNext) {
|
||||
logbookRenderer.maybeRenderItem();
|
||||
}
|
||||
|
||||
while (actionTraceIndex < actionTraces.length) {
|
||||
entries.push(
|
||||
this._renderActionTrace(...actionTraces[actionTraceIndex])
|
||||
);
|
||||
actionTraceIndex++;
|
||||
logbookRenderer.flush();
|
||||
|
||||
while (actionRenderer.hasNext) {
|
||||
actionRenderer.renderItem();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -138,8 +419,8 @@ export class HaAutomationTracer extends LitElement {
|
||||
)}
|
||||
(runtime:
|
||||
${(
|
||||
(Number(new Date(this.trace.timestamp.finish!)) -
|
||||
Number(new Date(this.trace.timestamp.start))) /
|
||||
(new Date(this.trace.timestamp.finish!).getTime() -
|
||||
new Date(this.trace.timestamp.start).getTime()) /
|
||||
1000
|
||||
).toFixed(2)}
|
||||
seconds)`
|
||||
@@ -151,22 +432,6 @@ export class HaAutomationTracer extends LitElement {
|
||||
return html`${entries}`;
|
||||
}
|
||||
|
||||
private _renderLogbookEntry(entry: LogbookEntry) {
|
||||
return html`
|
||||
<ha-timeline .icon=${mdiCircleOutline}>
|
||||
${entry.name} (${entry.entity_id}) turned ${entry.state}
|
||||
</ha-timeline>
|
||||
`;
|
||||
}
|
||||
|
||||
private _renderActionTrace(path: string, _value: ActionTrace[]) {
|
||||
return html`
|
||||
<ha-timeline .icon=${mdiRecordCircleOutline}>
|
||||
${getConfigFromPath(this.trace!.config, path).alias || pathToName(path)}
|
||||
</ha-timeline>
|
||||
`;
|
||||
}
|
||||
|
||||
static get styles(): CSSResult[] {
|
||||
return [
|
||||
css`
|
||||
|
||||
+12
-1
@@ -28,6 +28,17 @@ export interface ManualAutomationConfig {
|
||||
action: Action[];
|
||||
mode?: typeof MODES[number];
|
||||
max?: number;
|
||||
max_exceeded?:
|
||||
| "silent"
|
||||
| "critical"
|
||||
| "fatal"
|
||||
| "error"
|
||||
| "warning"
|
||||
| "warn"
|
||||
| "info"
|
||||
| "debug"
|
||||
| "notset";
|
||||
variables?: Record<string, unknown>;
|
||||
}
|
||||
|
||||
export interface BlueprintAutomationConfig extends ManualAutomationConfig {
|
||||
@@ -45,7 +56,7 @@ export interface StateTrigger {
|
||||
entity_id: string;
|
||||
attribute?: string;
|
||||
from?: string | number;
|
||||
to?: string | number;
|
||||
to?: string | string[] | number;
|
||||
for?: string | number | ForDict;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,68 +0,0 @@
|
||||
import { HomeAssistant, Context } from "../types";
|
||||
import { AutomationConfig, Condition } from "./automation";
|
||||
import { Action } from "./script";
|
||||
|
||||
interface TraceVariables extends Record<string, unknown> {
|
||||
trigger: {
|
||||
description: string;
|
||||
[key: string]: unknown;
|
||||
};
|
||||
}
|
||||
|
||||
interface BaseTrace {
|
||||
timestamp: string;
|
||||
changed_variables: Record<string, unknown>;
|
||||
}
|
||||
|
||||
export interface ConditionTrace extends BaseTrace {
|
||||
result: { result: boolean };
|
||||
}
|
||||
|
||||
export type ActionTrace = BaseTrace;
|
||||
|
||||
export interface AutomationTrace {
|
||||
last_action: string | null;
|
||||
last_condition: string | null;
|
||||
run_id: string;
|
||||
state: "running" | "stopped" | "debugged";
|
||||
timestamp: {
|
||||
start: string;
|
||||
finish: string | null;
|
||||
};
|
||||
trigger: unknown;
|
||||
unique_id: string;
|
||||
}
|
||||
|
||||
export interface AutomationTraceExtended extends AutomationTrace {
|
||||
condition_trace: Record<string, ConditionTrace[]>;
|
||||
action_trace: Record<string, ActionTrace[]>;
|
||||
context: Context;
|
||||
variables: TraceVariables;
|
||||
config: AutomationConfig;
|
||||
}
|
||||
|
||||
export const loadAutomationTrace = (
|
||||
hass: HomeAssistant,
|
||||
automation_id: string,
|
||||
run_id: string
|
||||
): Promise<AutomationTraceExtended> =>
|
||||
hass.callWS({
|
||||
type: "automation/trace/get",
|
||||
automation_id,
|
||||
run_id,
|
||||
});
|
||||
|
||||
export const loadAutomationTraces = (
|
||||
hass: HomeAssistant
|
||||
): Promise<AutomationTrace[]> =>
|
||||
hass.callWS({
|
||||
type: "automation/trace/list",
|
||||
});
|
||||
|
||||
export const getConfigFromPath = <T extends Condition | Action>(
|
||||
config: AutomationConfig,
|
||||
path: string
|
||||
): T => {
|
||||
const parts = path.split("/");
|
||||
return config[parts[0]][Number(parts[1])];
|
||||
};
|
||||
@@ -6,13 +6,15 @@ export interface DeviceAutomation {
|
||||
alias?: string;
|
||||
device_id: string;
|
||||
domain: string;
|
||||
entity_id: string;
|
||||
entity_id?: string;
|
||||
type?: string;
|
||||
subtype?: string;
|
||||
event?: string;
|
||||
}
|
||||
|
||||
export type DeviceAction = DeviceAutomation;
|
||||
export interface DeviceAction extends DeviceAutomation {
|
||||
entity_id: string;
|
||||
}
|
||||
|
||||
export interface DeviceCondition extends DeviceAutomation {
|
||||
condition: string;
|
||||
|
||||
@@ -16,6 +16,7 @@ export interface LogbookEntry {
|
||||
icon?: string;
|
||||
source?: string;
|
||||
domain?: string;
|
||||
context_id?: string;
|
||||
context_user_id?: string;
|
||||
context_event_type?: string;
|
||||
context_domain?: string;
|
||||
|
||||
+45
-2
@@ -103,8 +103,13 @@ export interface UntilRepeat extends BaseRepeat {
|
||||
}
|
||||
|
||||
export interface ChooseAction {
|
||||
alias?: string;
|
||||
choose: [{ conditions: Condition[]; sequence: Action[] }];
|
||||
choose: [
|
||||
{
|
||||
alias?: string;
|
||||
conditions: string | Condition[];
|
||||
sequence: Action[];
|
||||
}
|
||||
];
|
||||
default?: Action[];
|
||||
}
|
||||
|
||||
@@ -158,3 +163,41 @@ export const getScriptEditorInitData = () => {
|
||||
inititialScriptEditorData = undefined;
|
||||
return data;
|
||||
};
|
||||
|
||||
export const getActionType = (action: Action) => {
|
||||
// Check based on config_validation.py#determine_script_action
|
||||
if ("delay" in action) {
|
||||
return "delay";
|
||||
}
|
||||
if ("wait_template" in action) {
|
||||
return "wait_template";
|
||||
}
|
||||
if ("condition" in action) {
|
||||
return "check_condition";
|
||||
}
|
||||
if ("event" in action) {
|
||||
return "fire_event";
|
||||
}
|
||||
if ("device_id" in action) {
|
||||
return "device_action";
|
||||
}
|
||||
if ("scene" in action) {
|
||||
return "activate_scene";
|
||||
}
|
||||
if ("repeat" in action) {
|
||||
return "repeat";
|
||||
}
|
||||
if ("choose" in action) {
|
||||
return "choose";
|
||||
}
|
||||
if ("wait_for_trigger" in action) {
|
||||
return "wait_for_trigger";
|
||||
}
|
||||
if ("variables" in action) {
|
||||
return "variables";
|
||||
}
|
||||
if ("service" in action) {
|
||||
return "service";
|
||||
}
|
||||
return "unknown";
|
||||
};
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
import { HomeAssistant } from "../types";
|
||||
import { Action } from "./script";
|
||||
|
||||
export const callExecuteScript = (hass: HomeAssistant, sequence: Action[]) =>
|
||||
hass.callWS({
|
||||
type: "execute_script",
|
||||
sequence,
|
||||
});
|
||||
@@ -0,0 +1,140 @@
|
||||
import { HomeAssistant, Context } from "../types";
|
||||
import { AutomationConfig } from "./automation";
|
||||
|
||||
interface TraceVariables extends Record<string, unknown> {
|
||||
trigger: {
|
||||
description: string;
|
||||
[key: string]: unknown;
|
||||
};
|
||||
}
|
||||
|
||||
interface BaseTrace {
|
||||
path: string;
|
||||
timestamp: string;
|
||||
changed_variables?: Record<string, unknown>;
|
||||
}
|
||||
|
||||
export interface ConditionTrace extends BaseTrace {
|
||||
result: { result: boolean };
|
||||
}
|
||||
|
||||
export interface CallServiceActionTrace extends BaseTrace {
|
||||
result: {
|
||||
limit: number;
|
||||
running_script: boolean;
|
||||
params: Record<string, unknown>;
|
||||
};
|
||||
}
|
||||
|
||||
export interface ChooseActionTrace extends BaseTrace {
|
||||
result: { choice: number | "default" };
|
||||
}
|
||||
|
||||
export interface ChooseChoiceActionTrace extends BaseTrace {
|
||||
result: { result: boolean };
|
||||
}
|
||||
|
||||
export type ActionTrace =
|
||||
| BaseTrace
|
||||
| CallServiceActionTrace
|
||||
| ChooseActionTrace
|
||||
| ChooseChoiceActionTrace;
|
||||
|
||||
export interface AutomationTrace {
|
||||
domain: string;
|
||||
item_id: string;
|
||||
last_action: string | null;
|
||||
last_condition: string | null;
|
||||
run_id: string;
|
||||
state: "running" | "stopped" | "debugged";
|
||||
timestamp: {
|
||||
start: string;
|
||||
finish: string | null;
|
||||
};
|
||||
trigger: unknown;
|
||||
}
|
||||
|
||||
export interface AutomationTraceExtended extends AutomationTrace {
|
||||
condition_trace: Record<string, ConditionTrace[]>;
|
||||
action_trace: Record<string, ActionTrace[]>;
|
||||
context: Context;
|
||||
variables: TraceVariables;
|
||||
config: AutomationConfig;
|
||||
}
|
||||
|
||||
interface TraceTypes {
|
||||
automation: {
|
||||
short: AutomationTrace;
|
||||
extended: AutomationTraceExtended;
|
||||
};
|
||||
}
|
||||
|
||||
export const loadTrace = <T extends keyof TraceTypes>(
|
||||
hass: HomeAssistant,
|
||||
domain: T,
|
||||
item_id: string,
|
||||
run_id: string
|
||||
): Promise<TraceTypes[T]["extended"]> =>
|
||||
hass.callWS({
|
||||
type: "trace/get",
|
||||
domain,
|
||||
item_id,
|
||||
run_id,
|
||||
});
|
||||
|
||||
export const loadTraces = <T extends keyof TraceTypes>(
|
||||
hass: HomeAssistant,
|
||||
domain: T,
|
||||
item_id: string
|
||||
): Promise<Array<TraceTypes[T]["short"]>> =>
|
||||
hass.callWS({
|
||||
type: "trace/list",
|
||||
domain,
|
||||
item_id,
|
||||
});
|
||||
|
||||
export type TraceContexts = Record<
|
||||
string,
|
||||
{ run_id: string; domain: string; item_id: string }
|
||||
>;
|
||||
|
||||
export const loadTraceContexts = (
|
||||
hass: HomeAssistant,
|
||||
domain?: string,
|
||||
item_id?: string
|
||||
): Promise<TraceContexts> =>
|
||||
hass.callWS({
|
||||
type: "trace/contexts",
|
||||
domain,
|
||||
item_id,
|
||||
});
|
||||
|
||||
export const getDataFromPath = (
|
||||
config: AutomationConfig,
|
||||
path: string
|
||||
): any => {
|
||||
const parts = path.split("/").reverse();
|
||||
|
||||
let result: any = config;
|
||||
|
||||
while (parts.length) {
|
||||
const raw = parts.pop()!;
|
||||
const asNumber = Number(raw);
|
||||
|
||||
if (isNaN(asNumber)) {
|
||||
result = result[raw];
|
||||
continue;
|
||||
}
|
||||
|
||||
if (Array.isArray(result)) {
|
||||
result = result[asNumber];
|
||||
continue;
|
||||
}
|
||||
|
||||
if (asNumber !== 0) {
|
||||
throw new Error("If config is not an array, can only return index 0");
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
};
|
||||
@@ -28,6 +28,34 @@ export interface ZWaveJSNode {
|
||||
status: number;
|
||||
}
|
||||
|
||||
export interface ZWaveJSNodeConfigParams {
|
||||
property: number;
|
||||
value: any;
|
||||
configuration_value_type: string;
|
||||
metadata: ZWaveJSNodeConfigParamMetadata;
|
||||
}
|
||||
|
||||
export interface ZWaveJSNodeConfigParamMetadata {
|
||||
description: string;
|
||||
label: string;
|
||||
max: number;
|
||||
min: number;
|
||||
readable: boolean;
|
||||
writeable: boolean;
|
||||
type: string;
|
||||
unit: string;
|
||||
states: { [key: number]: string };
|
||||
}
|
||||
|
||||
export interface ZWaveJSSetConfigParamData {
|
||||
type: string;
|
||||
entry_id: string;
|
||||
node_id: number;
|
||||
property: number;
|
||||
property_key?: number;
|
||||
value: string | number;
|
||||
}
|
||||
|
||||
export enum NodeStatus {
|
||||
Unknown,
|
||||
Asleep,
|
||||
@@ -58,6 +86,36 @@ export const fetchNodeStatus = (
|
||||
node_id,
|
||||
});
|
||||
|
||||
export const fetchNodeConfigParameters = (
|
||||
hass: HomeAssistant,
|
||||
entry_id: string,
|
||||
node_id: number
|
||||
): Promise<ZWaveJSNodeConfigParams[]> =>
|
||||
hass.callWS({
|
||||
type: "zwave_js/get_config_parameters",
|
||||
entry_id,
|
||||
node_id,
|
||||
});
|
||||
|
||||
export const setNodeConfigParameter = (
|
||||
hass: HomeAssistant,
|
||||
entry_id: string,
|
||||
node_id: number,
|
||||
property: number,
|
||||
value: number,
|
||||
property_key?: number
|
||||
): Promise<unknown> => {
|
||||
const data: ZWaveJSSetConfigParamData = {
|
||||
type: "zwave_js/set_config_parameter",
|
||||
entry_id,
|
||||
node_id,
|
||||
property,
|
||||
value,
|
||||
property_key,
|
||||
};
|
||||
return hass.callWS(data);
|
||||
};
|
||||
|
||||
export const getIdentifiersFromDevice = function (
|
||||
device: DeviceRegistryEntry
|
||||
): ZWaveJSNodeIdentifiers | undefined {
|
||||
|
||||
@@ -9,10 +9,12 @@ import {
|
||||
TemplateResult,
|
||||
} from "lit-element";
|
||||
import { isComponentLoaded } from "../../common/config/is_component_loaded";
|
||||
import { closeDialog } from "../make-dialog-manager";
|
||||
import { computeStateDomain } from "../../common/entity/compute_state_domain";
|
||||
import { throttle } from "../../common/util/throttle";
|
||||
import "../../components/ha-circular-progress";
|
||||
import "../../components/state-history-charts";
|
||||
import { TraceContexts, loadTraceContexts } from "../../data/trace";
|
||||
import { getLogbookData, LogbookEntry } from "../../data/logbook";
|
||||
import "../../panels/logbook/ha-logbook";
|
||||
import { haStyle, haStyleScrollbar } from "../../resources/styles";
|
||||
@@ -26,6 +28,8 @@ export class MoreInfoLogbook extends LitElement {
|
||||
|
||||
@internalProperty() private _logbookEntries?: LogbookEntry[];
|
||||
|
||||
@internalProperty() private _traceContexts?: TraceContexts;
|
||||
|
||||
@internalProperty() private _persons = {};
|
||||
|
||||
private _lastLogbookDate?: Date;
|
||||
@@ -63,6 +67,7 @@ export class MoreInfoLogbook extends LitElement {
|
||||
relative-time
|
||||
.hass=${this.hass}
|
||||
.entries=${this._logbookEntries}
|
||||
.traceContexts=${this._traceContexts}
|
||||
.userIdToName=${this._persons}
|
||||
></ha-logbook>
|
||||
`
|
||||
@@ -75,6 +80,11 @@ export class MoreInfoLogbook extends LitElement {
|
||||
|
||||
protected firstUpdated(): void {
|
||||
this._fetchPersonNames();
|
||||
this.addEventListener("click", (ev) => {
|
||||
if ((ev.composedPath()[0] as HTMLElement).tagName === "A") {
|
||||
setTimeout(() => closeDialog("ha-more-info-dialog"), 500);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
protected updated(changedProps: PropertyValues): void {
|
||||
@@ -115,17 +125,21 @@ export class MoreInfoLogbook extends LitElement {
|
||||
this._lastLogbookDate ||
|
||||
new Date(new Date().getTime() - 24 * 60 * 60 * 1000);
|
||||
const now = new Date();
|
||||
const newEntries = await getLogbookData(
|
||||
this.hass,
|
||||
lastDate.toISOString(),
|
||||
now.toISOString(),
|
||||
this.entityId,
|
||||
true
|
||||
);
|
||||
const [newEntries, traceContexts] = await Promise.all([
|
||||
getLogbookData(
|
||||
this.hass,
|
||||
lastDate.toISOString(),
|
||||
now.toISOString(),
|
||||
this.entityId,
|
||||
true
|
||||
),
|
||||
loadTraceContexts(this.hass),
|
||||
]);
|
||||
this._logbookEntries = this._logbookEntries
|
||||
? [...newEntries, ...this._logbookEntries]
|
||||
: newEntries;
|
||||
this._lastLogbookDate = now;
|
||||
this._traceContexts = traceContexts;
|
||||
}
|
||||
|
||||
private _fetchPersonNames() {
|
||||
|
||||
@@ -118,6 +118,36 @@ class HaAutomationPicker extends LitElement {
|
||||
></ha-icon-button>
|
||||
`,
|
||||
};
|
||||
columns.trace = {
|
||||
title: "",
|
||||
type: "icon-button",
|
||||
template: (_info, automation: any) => html`
|
||||
<a
|
||||
href=${ifDefined(
|
||||
automation.attributes.id
|
||||
? `/config/automation/trace/${automation.attributes.id}`
|
||||
: undefined
|
||||
)}
|
||||
>
|
||||
<ha-icon-button
|
||||
icon="hass:hammer"
|
||||
.disabled=${!automation.attributes.id}
|
||||
title="${this.hass.localize(
|
||||
"ui.panel.config.automation.picker.dev_automation"
|
||||
)}"
|
||||
></ha-icon-button>
|
||||
</a>
|
||||
${!automation.attributes.id
|
||||
? html`
|
||||
<paper-tooltip animation-delay="0" position="left">
|
||||
${this.hass.localize(
|
||||
"ui.panel.config.automation.picker.dev_only_editable"
|
||||
)}
|
||||
</paper-tooltip>
|
||||
`
|
||||
: ""}
|
||||
`,
|
||||
};
|
||||
columns.edit = {
|
||||
title: "",
|
||||
type: "icon-button",
|
||||
|
||||
@@ -10,10 +10,11 @@ import {
|
||||
} from "lit-element";
|
||||
import { AutomationEntity } from "../../../../data/automation";
|
||||
import {
|
||||
AutomationTrace,
|
||||
AutomationTraceExtended,
|
||||
loadAutomationTrace,
|
||||
loadAutomationTraces,
|
||||
} from "../../../../data/automation_debug";
|
||||
loadTrace,
|
||||
loadTraces,
|
||||
} from "../../../../data/trace";
|
||||
import "../../../../components/ha-card";
|
||||
import "../../../../components/trace/hat-trace";
|
||||
import { haStyle } from "../../../../resources/styles";
|
||||
@@ -23,6 +24,9 @@ import {
|
||||
getLogbookDataForContext,
|
||||
LogbookEntry,
|
||||
} from "../../../../data/logbook";
|
||||
import { formatDateTimeWithSeconds } from "../../../../common/datetime/format_date_time";
|
||||
import { repeat } from "lit-html/directives/repeat";
|
||||
import { showAlertDialog } from "../../../../dialogs/generic/show-dialog-box";
|
||||
|
||||
@customElement("ha-automation-trace")
|
||||
export class HaAutomationTrace extends LitElement {
|
||||
@@ -40,6 +44,10 @@ export class HaAutomationTrace extends LitElement {
|
||||
|
||||
@internalProperty() private _entityId?: string;
|
||||
|
||||
@internalProperty() private _traces?: AutomationTrace[];
|
||||
|
||||
@internalProperty() private _runId?: string;
|
||||
|
||||
@internalProperty() private _trace?: AutomationTraceExtended;
|
||||
|
||||
@internalProperty() private _logbookEntries?: LogbookEntry[];
|
||||
@@ -63,36 +71,80 @@ export class HaAutomationTrace extends LitElement {
|
||||
}`}
|
||||
>
|
||||
<div class="actions">
|
||||
<button @click=${this._loadTrace}>
|
||||
Load last trace
|
||||
${this._traces && this._traces.length > 0
|
||||
? html`
|
||||
<select .value=${this._runId} @change=${this._pickTrace}>
|
||||
${repeat(
|
||||
this._traces,
|
||||
(trace) => trace.run_id,
|
||||
(trace) =>
|
||||
html`<option value=${trace.run_id}
|
||||
>${formatDateTimeWithSeconds(
|
||||
new Date(trace.timestamp.start),
|
||||
this.hass.language
|
||||
)}</option
|
||||
>`
|
||||
)}
|
||||
</select>
|
||||
`
|
||||
: ""}
|
||||
<button @click=${this._loadTraces}>
|
||||
Refresh
|
||||
</button>
|
||||
<button @click=${this._downloadTrace}>
|
||||
Download
|
||||
</button>
|
||||
</div>
|
||||
${this._trace
|
||||
? html`
|
||||
<div class="card-content">
|
||||
<div class="card-content">
|
||||
${this._traces === undefined
|
||||
? "Loading…"
|
||||
: this._traces.length === 0
|
||||
? "No traces found"
|
||||
: this._trace === undefined
|
||||
? "Loading…"
|
||||
: html`
|
||||
<hat-trace
|
||||
.hass=${this.hass}
|
||||
.trace=${this._trace}
|
||||
.logbookEntries=${this._logbookEntries}
|
||||
></hat-trace>
|
||||
</div>
|
||||
`
|
||||
: ""}
|
||||
`}
|
||||
</div>
|
||||
</ha-card>
|
||||
</hass-tabs-subpage>
|
||||
`;
|
||||
}
|
||||
|
||||
protected firstUpdated(changedProps) {
|
||||
super.firstUpdated(changedProps);
|
||||
|
||||
if (!this.automationId) {
|
||||
return;
|
||||
}
|
||||
|
||||
const params = new URLSearchParams(location.search);
|
||||
this._loadTraces(params.get("run_id") || undefined);
|
||||
}
|
||||
|
||||
protected updated(changedProps) {
|
||||
super.updated(changedProps);
|
||||
|
||||
if (changedProps.has("automationId")) {
|
||||
// Only reset if automationId has changed and we had one before.
|
||||
if (changedProps.get("automationId")) {
|
||||
this._traces = undefined;
|
||||
this._entityId = undefined;
|
||||
this._runId = undefined;
|
||||
this._trace = undefined;
|
||||
this._logbookEntries = undefined;
|
||||
if (this.automationId) {
|
||||
this._loadTraces();
|
||||
}
|
||||
}
|
||||
|
||||
if (changedProps.has("_runId") && this._runId) {
|
||||
this._trace = undefined;
|
||||
this._logbookEntries = undefined;
|
||||
this.shadowRoot!.querySelector("select")!.value = this._runId;
|
||||
this._loadTrace();
|
||||
}
|
||||
|
||||
@@ -101,24 +153,61 @@ export class HaAutomationTrace extends LitElement {
|
||||
this.automationId &&
|
||||
!this._entityId
|
||||
) {
|
||||
this._setEntityId();
|
||||
const automation = this.automations.find(
|
||||
(entity: AutomationEntity) => entity.attributes.id === this.automationId
|
||||
);
|
||||
this._entityId = automation?.entity_id;
|
||||
}
|
||||
}
|
||||
|
||||
private _pickTrace(ev) {
|
||||
this._runId = ev.target.value;
|
||||
}
|
||||
|
||||
private async _loadTraces(runId?: string) {
|
||||
this._traces = await loadTraces(this.hass, "automation", this.automationId);
|
||||
// Newest will be on top.
|
||||
this._traces.reverse();
|
||||
|
||||
if (runId) {
|
||||
this._runId = runId;
|
||||
}
|
||||
|
||||
// Check if current run ID still exists
|
||||
if (
|
||||
this._runId &&
|
||||
!this._traces.some((trace) => trace.run_id === this._runId)
|
||||
) {
|
||||
this._runId = undefined;
|
||||
|
||||
// If we came here from a trace passed into the url, clear it.
|
||||
if (runId) {
|
||||
const params = new URLSearchParams(location.search);
|
||||
params.delete("run_id");
|
||||
history.replaceState(
|
||||
null,
|
||||
"",
|
||||
`${location.pathname}?${params.toString()}`
|
||||
);
|
||||
}
|
||||
|
||||
await showAlertDialog(this, {
|
||||
text: "Chosen trace is no longer available",
|
||||
});
|
||||
}
|
||||
|
||||
// See if we can set a default runID
|
||||
if (!this._runId && this._traces.length > 0) {
|
||||
this._runId = this._traces[0].run_id;
|
||||
}
|
||||
}
|
||||
|
||||
private async _loadTrace() {
|
||||
const traces = await loadAutomationTraces(this.hass);
|
||||
const automationTraces = traces[this.automationId];
|
||||
|
||||
if (!automationTraces || automationTraces.length === 0) {
|
||||
// TODO no trace found.
|
||||
alert("NO traces found");
|
||||
return;
|
||||
}
|
||||
|
||||
const trace = await loadAutomationTrace(
|
||||
const trace = await loadTrace(
|
||||
this.hass,
|
||||
"automation",
|
||||
this.automationId,
|
||||
automationTraces[automationTraces.length - 1].run_id
|
||||
this._runId!
|
||||
);
|
||||
this._logbookEntries = await getLogbookDataForContext(
|
||||
this.hass,
|
||||
@@ -129,20 +218,15 @@ export class HaAutomationTrace extends LitElement {
|
||||
this._trace = trace;
|
||||
}
|
||||
|
||||
private _setEntityId() {
|
||||
const automation = this.automations.find(
|
||||
(entity: AutomationEntity) => entity.attributes.id === this.automationId
|
||||
);
|
||||
this._entityId = automation?.entity_id;
|
||||
}
|
||||
|
||||
private _backTapped(): void {
|
||||
history.back();
|
||||
}
|
||||
|
||||
private _downloadTrace() {
|
||||
const aEl = document.createElement("a");
|
||||
aEl.download = `trace-${this._entityId}.json`;
|
||||
aEl.download = `trace ${this._entityId} ${
|
||||
this._trace!.timestamp.start
|
||||
}.json`;
|
||||
aEl.href = `data:application/json;charset=utf-8,${encodeURI(
|
||||
JSON.stringify(
|
||||
{
|
||||
|
||||
@@ -9,7 +9,10 @@ import {
|
||||
import "../../../../components/ha-card";
|
||||
import "../../../../components/ha-chips";
|
||||
import { showAutomationEditor } from "../../../../data/automation";
|
||||
import { DeviceAutomation } from "../../../../data/device_automation";
|
||||
import {
|
||||
DeviceAction,
|
||||
DeviceAutomation,
|
||||
} from "../../../../data/device_automation";
|
||||
import { showScriptEditor } from "../../../../data/script";
|
||||
import { HomeAssistant } from "../../../../types";
|
||||
|
||||
@@ -79,7 +82,7 @@ export abstract class HaDeviceAutomationCard<
|
||||
return;
|
||||
}
|
||||
if (this.script) {
|
||||
showScriptEditor(this, { sequence: [automation] });
|
||||
showScriptEditor(this, { sequence: [automation as DeviceAction] });
|
||||
return;
|
||||
}
|
||||
const data = {};
|
||||
|
||||
@@ -111,6 +111,7 @@ export class HaDeviceCard extends LitElement {
|
||||
}
|
||||
.extra-info {
|
||||
margin-top: 8px;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
.manuf,
|
||||
.entity-id,
|
||||
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
import "@material/mwc-button/mwc-button";
|
||||
import {
|
||||
css,
|
||||
CSSResult,
|
||||
customElement,
|
||||
html,
|
||||
internalProperty,
|
||||
LitElement,
|
||||
property,
|
||||
PropertyValues,
|
||||
TemplateResult,
|
||||
} from "lit-element";
|
||||
import { DeviceRegistryEntry } from "../../../../../../data/device_registry";
|
||||
import { haStyle } from "../../../../../../resources/styles";
|
||||
|
||||
import { HomeAssistant } from "../../../../../../types";
|
||||
|
||||
@customElement("ha-device-actions-zwave_js")
|
||||
export class HaDeviceActionsZWaveJS extends LitElement {
|
||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||
|
||||
@property() public device!: DeviceRegistryEntry;
|
||||
|
||||
@internalProperty() private _entryId?: string;
|
||||
|
||||
protected updated(changedProperties: PropertyValues) {
|
||||
if (changedProperties.has("device")) {
|
||||
this._entryId = this.device.config_entries[0];
|
||||
}
|
||||
}
|
||||
|
||||
protected render(): TemplateResult {
|
||||
return html`
|
||||
<a
|
||||
.href=${`/config/zwave_js/node_config/${this.device.id}?config_entry=${this._entryId}`}
|
||||
>
|
||||
<mwc-button>
|
||||
${this.hass.localize(
|
||||
"ui.panel.config.zwave_js.device_info.device_config"
|
||||
)}
|
||||
</mwc-button>
|
||||
</a>
|
||||
`;
|
||||
}
|
||||
|
||||
static get styles(): CSSResult[] {
|
||||
return [
|
||||
haStyle,
|
||||
css`
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
`,
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -622,11 +622,20 @@ export class HaConfigDevicePage extends LitElement {
|
||||
import(
|
||||
"./device-detail/integration-elements/zwave_js/ha-device-info-zwave_js"
|
||||
);
|
||||
import(
|
||||
"./device-detail/integration-elements/zwave_js/ha-device-actions-zwave_js"
|
||||
);
|
||||
templates.push(html`
|
||||
<ha-device-info-zwave_js
|
||||
.hass=${this.hass}
|
||||
.device=${device}
|
||||
></ha-device-info-zwave_js>
|
||||
<div class="card-actions" slot="actions">
|
||||
<ha-device-actions-zwave_js
|
||||
.hass=${this.hass}
|
||||
.device=${device}
|
||||
></ha-device-actions-zwave_js>
|
||||
</div>
|
||||
`);
|
||||
}
|
||||
return templates;
|
||||
|
||||
+4
-3
@@ -37,6 +37,10 @@ class ZWaveJSConfigRouter extends HassRouterPage {
|
||||
tag: "zwave_js-config-dashboard",
|
||||
load: () => import("./zwave_js-config-dashboard"),
|
||||
},
|
||||
node_config: {
|
||||
tag: "zwave_js-node-config",
|
||||
load: () => import("./zwave_js-node-config"),
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -46,9 +50,6 @@ class ZWaveJSConfigRouter extends HassRouterPage {
|
||||
el.isWide = this.isWide;
|
||||
el.narrow = this.narrow;
|
||||
el.configEntryId = this._configEntry;
|
||||
if (this._currentPage === "node") {
|
||||
el.nodeId = this.routeTail.path.substr(1);
|
||||
}
|
||||
|
||||
const searchParams = new URLSearchParams(window.location.search);
|
||||
if (this._configEntry && !searchParams.has("config_entry")) {
|
||||
|
||||
@@ -0,0 +1,418 @@
|
||||
import "../../../../../components/ha-settings-row";
|
||||
import "@polymer/paper-item/paper-item";
|
||||
import "@polymer/paper-listbox/paper-listbox";
|
||||
import "@polymer/paper-dropdown-menu/paper-dropdown-menu";
|
||||
import "@material/mwc-button/mwc-button";
|
||||
import "@material/mwc-icon-button/mwc-icon-button";
|
||||
import {
|
||||
css,
|
||||
CSSResultArray,
|
||||
customElement,
|
||||
html,
|
||||
internalProperty,
|
||||
LitElement,
|
||||
property,
|
||||
PropertyValues,
|
||||
TemplateResult,
|
||||
} from "lit-element";
|
||||
import { debounce } from "../../../../../common/util/debounce";
|
||||
import "../../../../../components/ha-card";
|
||||
import "../../../../../components/ha-svg-icon";
|
||||
import "../../../../../components/ha-icon-next";
|
||||
import "../../../../../components/ha-switch";
|
||||
import {
|
||||
fetchNodeConfigParameters,
|
||||
setNodeConfigParameter,
|
||||
ZWaveJSNodeConfigParams,
|
||||
} from "../../../../../data/zwave_js";
|
||||
import "../../../../../layouts/hass-tabs-subpage";
|
||||
import { haStyle } from "../../../../../resources/styles";
|
||||
import type { HomeAssistant, Route } from "../../../../../types";
|
||||
import "../../../ha-config-section";
|
||||
import { configTabs } from "./zwave_js-config-router";
|
||||
import {
|
||||
DeviceRegistryEntry,
|
||||
computeDeviceName,
|
||||
subscribeDeviceRegistry,
|
||||
} from "../../../../../data/device_registry";
|
||||
import { SubscribeMixin } from "../../../../../mixins/subscribe-mixin";
|
||||
import { UnsubscribeFunc } from "home-assistant-js-websocket";
|
||||
import memoizeOne from "memoize-one";
|
||||
|
||||
const getDevice = memoizeOne(
|
||||
(
|
||||
deviceId: string,
|
||||
entries?: DeviceRegistryEntry[]
|
||||
): DeviceRegistryEntry | undefined =>
|
||||
entries?.find((device) => device.id === deviceId)
|
||||
);
|
||||
|
||||
const getNodeId = memoizeOne((device: DeviceRegistryEntry):
|
||||
| number
|
||||
| undefined => {
|
||||
const identifier = device.identifiers.find(
|
||||
(ident) => ident[0] === "zwave_js"
|
||||
);
|
||||
if (!identifier) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
return parseInt(identifier[1].split("-")[1]);
|
||||
});
|
||||
|
||||
@customElement("zwave_js-node-config")
|
||||
class ZWaveJSNodeConfig extends SubscribeMixin(LitElement) {
|
||||
@property({ attribute: false }) public hass!: HomeAssistant;
|
||||
|
||||
@property({ attribute: false }) public route!: Route;
|
||||
|
||||
@property({ type: Boolean }) public narrow!: boolean;
|
||||
|
||||
@property({ type: Boolean }) public isWide!: boolean;
|
||||
|
||||
@property() public configEntryId?: string;
|
||||
|
||||
@property() public deviceId!: string;
|
||||
|
||||
@property({ type: Array })
|
||||
private _deviceRegistryEntries?: DeviceRegistryEntry[];
|
||||
|
||||
@internalProperty() private _config?: ZWaveJSNodeConfigParams[];
|
||||
|
||||
@internalProperty() private _error?: string;
|
||||
|
||||
public connectedCallback(): void {
|
||||
super.connectedCallback();
|
||||
this.deviceId = this.route.path.substr(1);
|
||||
}
|
||||
|
||||
public hassSubscribe(): UnsubscribeFunc[] {
|
||||
return [
|
||||
subscribeDeviceRegistry(this.hass.connection, (entries) => {
|
||||
this._deviceRegistryEntries = entries;
|
||||
}),
|
||||
];
|
||||
}
|
||||
|
||||
protected updated(changedProps: PropertyValues): void {
|
||||
if (
|
||||
(!this._config || changedProps.has("deviceId")) &&
|
||||
changedProps.has("_deviceRegistryEntries")
|
||||
) {
|
||||
this._fetchData();
|
||||
}
|
||||
}
|
||||
|
||||
protected render(): TemplateResult {
|
||||
if (this._error) {
|
||||
return html`<hass-error-screen
|
||||
.hass=${this.hass}
|
||||
.error=${this.hass.localize(
|
||||
`ui.panel.config.zwave_js.node_config.error_${this._error}`
|
||||
)}
|
||||
></hass-error-screen>`;
|
||||
}
|
||||
|
||||
if (!this._config) {
|
||||
return html`<hass-loading-screen></hass-loading-screen>`;
|
||||
}
|
||||
|
||||
const device = this._device!;
|
||||
|
||||
return html`
|
||||
<hass-tabs-subpage
|
||||
.hass=${this.hass}
|
||||
.narrow=${this.narrow}
|
||||
.route=${this.route}
|
||||
.tabs=${configTabs}
|
||||
>
|
||||
<ha-config-section .narrow=${this.narrow} .isWide=${this.isWide}>
|
||||
<div slot="header">
|
||||
${this.hass.localize("ui.panel.config.zwave_js.node_config.header")}
|
||||
</div>
|
||||
|
||||
<div slot="introduction">
|
||||
${device
|
||||
? html`
|
||||
<div class="device-info">
|
||||
<h2>${computeDeviceName(device, this.hass)}</h2>
|
||||
<p>${device.manufacturer} ${device.model}</p>
|
||||
</div>
|
||||
`
|
||||
: ``}
|
||||
${this.hass.localize(
|
||||
"ui.panel.config.zwave_js.node_config.introduction"
|
||||
)}
|
||||
<p>
|
||||
<em>
|
||||
${this.hass.localize(
|
||||
"ui.panel.config.zwave_js.node_config.attribution",
|
||||
"device_database",
|
||||
html`<a href="https://devices.zwave-js.io/" target="_blank"
|
||||
>${this.hass.localize(
|
||||
"ui.panel.config.zwave_js.node_config.zwave_js_device_database"
|
||||
)}</a
|
||||
>`
|
||||
)}
|
||||
</em>
|
||||
</p>
|
||||
</div>
|
||||
<ha-card>
|
||||
${this._config
|
||||
? html`
|
||||
${Object.entries(this._config).map(
|
||||
([id, item]) => html` <ha-settings-row
|
||||
class="content config-item"
|
||||
.configId=${id}
|
||||
.narrow=${this.narrow}
|
||||
>
|
||||
${this._generateConfigBox(id, item)}
|
||||
</ha-settings-row>`
|
||||
)}
|
||||
`
|
||||
: ``}
|
||||
</ha-card>
|
||||
</ha-config-section>
|
||||
</hass-tabs-subpage>
|
||||
`;
|
||||
}
|
||||
|
||||
private _generateConfigBox(id, item): TemplateResult {
|
||||
const labelAndDescription = html`
|
||||
<span slot="heading">${item.metadata.label}</span>
|
||||
<span slot="description">
|
||||
${item.metadata.description}
|
||||
${item.metadata.description !== null && !item.metadata.writeable
|
||||
? html`<br />`
|
||||
: ""}
|
||||
${!item.metadata.writeable
|
||||
? html`<em>
|
||||
${this.hass.localize(
|
||||
"ui.panel.config.zwave_js.node_config.parameter_is_read_only"
|
||||
)}
|
||||
</em>`
|
||||
: ""}
|
||||
</span>
|
||||
`;
|
||||
|
||||
// Numeric entries with a min value of 0 and max of 1 are considered boolean
|
||||
if (
|
||||
(item.configuration_value_type === "range" &&
|
||||
item.metadata.min === 0 &&
|
||||
item.metadata.max === 1) ||
|
||||
this._isEnumeratedBool(item)
|
||||
) {
|
||||
return html`
|
||||
${labelAndDescription}
|
||||
<div class="toggle">
|
||||
<ha-switch
|
||||
.property=${item.property}
|
||||
.propertyKey=${item.property_key}
|
||||
.checked=${item.value === 1}
|
||||
.key=${id}
|
||||
@change=${this._switchToggled}
|
||||
.disabled=${!item.metadata.writeable}
|
||||
></ha-switch>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
||||
if (item.configuration_value_type === "range") {
|
||||
return html`${labelAndDescription}
|
||||
<paper-input
|
||||
type="number"
|
||||
.value=${item.value}
|
||||
.min=${item.metadata.min}
|
||||
.max=${item.metadata.max}
|
||||
.property=${item.property}
|
||||
.propertyKey=${item.property_key}
|
||||
.key=${id}
|
||||
.disabled=${!item.metadata.writeable}
|
||||
@value-changed=${this._numericInputChanged}
|
||||
>
|
||||
</paper-input> `;
|
||||
}
|
||||
|
||||
if (item.configuration_value_type === "enumerated") {
|
||||
return html`
|
||||
${labelAndDescription}
|
||||
<div class="flex">
|
||||
<paper-dropdown-menu
|
||||
dynamic-align
|
||||
.disabled=${!item.metadata.writeable}
|
||||
>
|
||||
<paper-listbox
|
||||
slot="dropdown-content"
|
||||
.selected=${item.value}
|
||||
attr-for-selected="value"
|
||||
.key=${id}
|
||||
.property=${item.property}
|
||||
.propertyKey=${item.property_key}
|
||||
@iron-select=${this._dropdownSelected}
|
||||
>
|
||||
${Object.entries(item.metadata.states).map(
|
||||
([key, state]) => html`
|
||||
<paper-item .value=${key}>${state}</paper-item>
|
||||
`
|
||||
)}
|
||||
</paper-listbox>
|
||||
</paper-dropdown-menu>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
||||
return html`${labelAndDescription}
|
||||
<p>${item.value}</p>`;
|
||||
}
|
||||
|
||||
private _isEnumeratedBool(item): boolean {
|
||||
// Some Z-Wave config values use a states list with two options where index 0 = Disabled and 1 = Enabled
|
||||
// We want those to be considered boolean and show a toggle switch
|
||||
const disabledStates = ["disable", "disabled"];
|
||||
const enabledStates = ["enable", "enabled"];
|
||||
|
||||
if (item.configuration_value_type !== "enumerated") {
|
||||
return false;
|
||||
}
|
||||
if (!("states" in item.metadata)) {
|
||||
return false;
|
||||
}
|
||||
if (!(0 in item.metadata.states) || !(1 in item.metadata.states)) {
|
||||
return false;
|
||||
}
|
||||
if (
|
||||
disabledStates.includes(item.metadata.states[0].toLowerCase()) &&
|
||||
enabledStates.includes(item.metadata.states[1].toLowerCase())
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private _switchToggled(ev) {
|
||||
this._updateConfigParameter(ev.target, ev.target.checked ? 1 : 0);
|
||||
}
|
||||
|
||||
private _dropdownSelected(ev) {
|
||||
if (ev.target === undefined || this._config![ev.target.key] === undefined) {
|
||||
return;
|
||||
}
|
||||
if (this._config![ev.target.key].value === ev.target.selected) {
|
||||
return;
|
||||
}
|
||||
|
||||
this._updateConfigParameter(ev.target, Number(ev.target.selected));
|
||||
}
|
||||
|
||||
private debouncedUpdate = debounce((target, value) => {
|
||||
this._config![target.key].value = value;
|
||||
|
||||
this._updateConfigParameter(target, value);
|
||||
}, 1000);
|
||||
|
||||
private _numericInputChanged(ev) {
|
||||
if (ev.target === undefined || this._config![ev.target.key] === undefined) {
|
||||
return;
|
||||
}
|
||||
const value = Number(ev.target.value);
|
||||
if (Number(this._config![ev.target.key].value) === value) {
|
||||
return;
|
||||
}
|
||||
this.debouncedUpdate(ev.target, value);
|
||||
}
|
||||
|
||||
private _updateConfigParameter(target, value) {
|
||||
const nodeId = getNodeId(this._device!);
|
||||
setNodeConfigParameter(
|
||||
this.hass,
|
||||
this.configEntryId!,
|
||||
nodeId!,
|
||||
target.property,
|
||||
value,
|
||||
target.propertyKey ? target.propertyKey : undefined
|
||||
);
|
||||
this._config![target.key].value = value;
|
||||
}
|
||||
|
||||
private get _device(): DeviceRegistryEntry | undefined {
|
||||
return getDevice(this.deviceId, this._deviceRegistryEntries);
|
||||
}
|
||||
|
||||
private async _fetchData() {
|
||||
if (!this.configEntryId || !this._deviceRegistryEntries) {
|
||||
return;
|
||||
}
|
||||
|
||||
const device = this._device;
|
||||
if (!device) {
|
||||
this._error = "device_not_found";
|
||||
return;
|
||||
}
|
||||
|
||||
const nodeId = getNodeId(device);
|
||||
if (!nodeId) {
|
||||
this._error = "device_not_found";
|
||||
return;
|
||||
}
|
||||
|
||||
this._config = await fetchNodeConfigParameters(
|
||||
this.hass,
|
||||
this.configEntryId,
|
||||
nodeId!
|
||||
);
|
||||
}
|
||||
|
||||
static get styles(): CSSResultArray {
|
||||
return [
|
||||
haStyle,
|
||||
css`
|
||||
.secondary {
|
||||
color: var(--secondary-text-color);
|
||||
}
|
||||
|
||||
.flex {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.flex .config-label,
|
||||
.flex paper-dropdown-menu {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.content {
|
||||
margin-top: 24px;
|
||||
}
|
||||
|
||||
.sectionHeader {
|
||||
position: relative;
|
||||
padding-right: 40px;
|
||||
}
|
||||
|
||||
ha-card {
|
||||
margin: 0 auto;
|
||||
max-width: 600px;
|
||||
}
|
||||
|
||||
ha-settings-row {
|
||||
--paper-time-input-justify-content: flex-end;
|
||||
border-top: 1px solid var(--divider-color);
|
||||
}
|
||||
|
||||
:host(:not([narrow])) ha-settings-row paper-input {
|
||||
width: 30%;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
ha-card:last-child {
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
`,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
declare global {
|
||||
interface HTMLElementTagNameMap {
|
||||
"zwave_js-node-config": ZWaveJSNodeConfig;
|
||||
}
|
||||
}
|
||||
@@ -21,6 +21,7 @@ import "../../../components/ha-service-picker";
|
||||
import "../../../components/ha-yaml-editor";
|
||||
import type { HaYamlEditor } from "../../../components/ha-yaml-editor";
|
||||
import { ServiceAction } from "../../../data/script";
|
||||
import { callExecuteScript } from "../../../data/service";
|
||||
import { haStyle } from "../../../resources/styles";
|
||||
import "../../../styles/polymer-ha-style";
|
||||
import { HomeAssistant } from "../../../types";
|
||||
@@ -250,17 +251,10 @@ class HaPanelDevService extends LitElement {
|
||||
);
|
||||
|
||||
private _callService() {
|
||||
const domain = computeDomain(this._serviceData!.service);
|
||||
const service = computeObjectId(this._serviceData!.service);
|
||||
if (!domain || !service) {
|
||||
if (!this._serviceData?.service) {
|
||||
return;
|
||||
}
|
||||
this.hass.callService(
|
||||
domain,
|
||||
service,
|
||||
this._serviceData!.data,
|
||||
this._serviceData!.target
|
||||
);
|
||||
callExecuteScript(this.hass, [this._serviceData]);
|
||||
}
|
||||
|
||||
private _toggleYaml() {
|
||||
|
||||
@@ -379,7 +379,7 @@ class HaPanelDevState extends EventsMixin(LocalizeMixin(PolymerElement)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!value.state.includes(_stateFilter.toLowerCase())) {
|
||||
if (!value.state.toLowerCase().includes(_stateFilter.toLowerCase())) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ import { computeRTL, emitRTLDirection } from "../../common/util/compute_rtl";
|
||||
import "../../components/entity/state-badge";
|
||||
import "../../components/ha-circular-progress";
|
||||
import "../../components/ha-relative-time";
|
||||
import { TraceContexts } from "../../data/trace";
|
||||
import { LogbookEntry } from "../../data/logbook";
|
||||
import { haStyle, haStyleScrollbar } from "../../resources/styles";
|
||||
import { HomeAssistant } from "../../types";
|
||||
@@ -32,6 +33,9 @@ class HaLogbook extends LitElement {
|
||||
|
||||
@property({ attribute: false }) public userIdToName = {};
|
||||
|
||||
@property({ attribute: false })
|
||||
public traceContexts: TraceContexts = {};
|
||||
|
||||
@property({ attribute: false }) public entries: LogbookEntry[] = [];
|
||||
|
||||
@property({ type: Boolean, attribute: "narrow" })
|
||||
@@ -55,12 +59,16 @@ class HaLogbook extends LitElement {
|
||||
// @ts-ignore
|
||||
@restoreScroll(".container") private _savedScrollPos?: number;
|
||||
|
||||
protected shouldUpdate(changedProps: PropertyValues) {
|
||||
protected shouldUpdate(changedProps: PropertyValues<this>) {
|
||||
const oldHass = changedProps.get("hass") as HomeAssistant | undefined;
|
||||
const languageChanged =
|
||||
oldHass === undefined || oldHass.language !== this.hass.language;
|
||||
|
||||
return changedProps.has("entries") || languageChanged;
|
||||
return (
|
||||
changedProps.has("entries") ||
|
||||
changedProps.has("traceContexts") ||
|
||||
languageChanged
|
||||
);
|
||||
}
|
||||
|
||||
protected updated(_changedProps: PropertyValues) {
|
||||
@@ -204,6 +212,22 @@ class HaLogbook extends LitElement {
|
||||
.hass=${this.hass}
|
||||
.datetime=${item.when}
|
||||
></ha-relative-time>
|
||||
${item.domain === "automation" &&
|
||||
item.context_id! in this.traceContexts
|
||||
? html`
|
||||
-
|
||||
<a
|
||||
href=${`/config/automation/trace/${
|
||||
this.traceContexts[item.context_id!].item_id
|
||||
}?run_id=${
|
||||
this.traceContexts[item.context_id!].run_id
|
||||
}`}
|
||||
>${this.hass.localize(
|
||||
"ui.components.logbook.show_trace"
|
||||
)}</a
|
||||
>
|
||||
`
|
||||
: ""}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -280,6 +304,10 @@ class HaLogbook extends LitElement {
|
||||
line-height: 1.7;
|
||||
}
|
||||
|
||||
.secondary a {
|
||||
color: var(--secondary-text-color);
|
||||
}
|
||||
|
||||
.date {
|
||||
margin: 8px 0;
|
||||
padding: 0 16px;
|
||||
|
||||
@@ -17,6 +17,7 @@ import "../../components/ha-date-range-picker";
|
||||
import type { DateRangePickerRanges } from "../../components/ha-date-range-picker";
|
||||
import "../../components/ha-icon-button";
|
||||
import "../../components/ha-menu-button";
|
||||
import { TraceContexts, loadTraceContexts } from "../../data/trace";
|
||||
import {
|
||||
clearLogbookCache,
|
||||
getLogbookData,
|
||||
@@ -35,9 +36,6 @@ export class HaPanelLogbook extends LitElement {
|
||||
|
||||
@property({ reflect: true, type: Boolean }) narrow!: boolean;
|
||||
|
||||
@property({ attribute: false })
|
||||
private _userIdToName = {};
|
||||
|
||||
@property() _startDate: Date;
|
||||
|
||||
@property() _endDate: Date;
|
||||
@@ -54,6 +52,10 @@ export class HaPanelLogbook extends LitElement {
|
||||
|
||||
private _fetchUserDone?: Promise<unknown>;
|
||||
|
||||
@internalProperty() private _userIdToName = {};
|
||||
|
||||
@internalProperty() private _traceContexts: TraceContexts = {};
|
||||
|
||||
public constructor() {
|
||||
super();
|
||||
|
||||
@@ -128,6 +130,7 @@ export class HaPanelLogbook extends LitElement {
|
||||
.hass=${this.hass}
|
||||
.entries=${this._entries}
|
||||
.userIdToName=${this._userIdToName}
|
||||
.traceContexts=${this._traceContexts}
|
||||
virtualize
|
||||
></ha-logbook>
|
||||
`}
|
||||
@@ -181,7 +184,7 @@ export class HaPanelLogbook extends LitElement {
|
||||
};
|
||||
}
|
||||
|
||||
protected updated(changedProps: PropertyValues) {
|
||||
protected updated(changedProps: PropertyValues<this>) {
|
||||
if (
|
||||
changedProps.has("_startDate") ||
|
||||
changedProps.has("_endDate") ||
|
||||
@@ -257,19 +260,19 @@ export class HaPanelLogbook extends LitElement {
|
||||
|
||||
private async _getData() {
|
||||
this._isLoading = true;
|
||||
const [entries] = await Promise.all([
|
||||
const [entries, traceContexts] = await Promise.all([
|
||||
getLogbookData(
|
||||
this.hass,
|
||||
this._startDate.toISOString(),
|
||||
this._endDate.toISOString(),
|
||||
this._entityId
|
||||
),
|
||||
loadTraceContexts(this.hass),
|
||||
this._fetchUserDone,
|
||||
]);
|
||||
|
||||
// Fixed in TS 3.9 but upgrade out of scope for this PR.
|
||||
// @ts-ignore
|
||||
this._entries = entries;
|
||||
this._traceContexts = traceContexts;
|
||||
this._isLoading = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -284,7 +284,7 @@ class HuiMapCard extends LitElement implements LovelaceCard {
|
||||
this.updateMap(changedProps.get("_config") as MapCardConfig);
|
||||
}
|
||||
|
||||
if (this._config!.hours_to_show && this._configEntities?.length) {
|
||||
if (this._config?.hours_to_show && this._configEntities?.length) {
|
||||
const minute = 60000;
|
||||
if (changedProps.has("_config")) {
|
||||
this._getHistory();
|
||||
|
||||
+14
-10
@@ -94,6 +94,19 @@ export const derivedStyles = {
|
||||
"mdc-dialog-scroll-divider-color": "var(--divider-color)",
|
||||
};
|
||||
|
||||
export const buttonLinkStyle = css`
|
||||
button.link {
|
||||
background: none;
|
||||
color: inherit;
|
||||
border: none;
|
||||
padding: 0;
|
||||
font: inherit;
|
||||
text-align: left;
|
||||
text-decoration: underline;
|
||||
cursor: pointer;
|
||||
}
|
||||
`;
|
||||
|
||||
export const haStyle = css`
|
||||
:host {
|
||||
font-family: var(--paper-font-body1_-_font-family);
|
||||
@@ -180,16 +193,7 @@ export const haStyle = css`
|
||||
--mdc-theme-primary: var(--error-color);
|
||||
}
|
||||
|
||||
button.link {
|
||||
background: none;
|
||||
color: inherit;
|
||||
border: none;
|
||||
padding: 0;
|
||||
font: inherit;
|
||||
text-align: left;
|
||||
text-decoration: underline;
|
||||
cursor: pointer;
|
||||
}
|
||||
${buttonLinkStyle}
|
||||
|
||||
.card-actions a {
|
||||
text-decoration: none;
|
||||
|
||||
+26
-11
@@ -300,6 +300,7 @@
|
||||
"entries_not_found": "No logbook entries found.",
|
||||
"by": "by",
|
||||
"by_service": "by service",
|
||||
"show_trace": "Show trace",
|
||||
"messages": {
|
||||
"was_away": "was detected away",
|
||||
"was_at_state": "was detected at {state}",
|
||||
@@ -1180,7 +1181,9 @@
|
||||
"no_automations": "We couldn’t find any editable automations",
|
||||
"add_automation": "Add automation",
|
||||
"only_editable": "Only automations defined in automations.yaml are editable.",
|
||||
"dev_only_editable": "Only automations defined in automations.yaml are debuggable.",
|
||||
"edit_automation": "Edit automation",
|
||||
"dev_automation": "Debug automation",
|
||||
"show_info_automation": "Show info about automation",
|
||||
"delete_automation": "Delete automation",
|
||||
"delete_confirm": "Are you sure you want to delete this automation?",
|
||||
@@ -1364,7 +1367,9 @@
|
||||
"extra_fields": {
|
||||
"above": "Above",
|
||||
"below": "Below",
|
||||
"for": "Duration"
|
||||
"for": "Duration",
|
||||
"hvac_mode": "HVAC mode",
|
||||
"preset_mode": "Preset mode"
|
||||
}
|
||||
},
|
||||
"not": {
|
||||
@@ -1464,7 +1469,12 @@
|
||||
"code": "Code",
|
||||
"message": "Message",
|
||||
"title": "Title",
|
||||
"position": "[%key:ui::card::cover::position%]"
|
||||
"position": "[%key:ui::card::cover::position%]",
|
||||
"mode": "Mode",
|
||||
"humidity": "Humidity",
|
||||
"value": "Value",
|
||||
"brightness_pct": "[%key:ui::card::light::brightness%]",
|
||||
"flash": "Flash"
|
||||
}
|
||||
},
|
||||
"scene": {
|
||||
@@ -2511,7 +2521,17 @@
|
||||
"device_info": {
|
||||
"zwave_info": "Z-Wave Info",
|
||||
"node_status": "Node Status",
|
||||
"node_ready": "Node Ready"
|
||||
"node_ready": "Node Ready",
|
||||
"device_config": "Configure Device"
|
||||
},
|
||||
"node_config": {
|
||||
"header": "Z-Wave Device Configuration",
|
||||
"introduction": "Manage and adjust device (node) specific configuration parameters for the selected device",
|
||||
"attribution": "Device configuration parameters and descriptions are provided by the {device_database}",
|
||||
"zwave_js_device_database": "Z-Wave JS Device Database",
|
||||
"battery_device_notice": "Battery devices must be awake to update their config. Please refer to your device manual for instructions on how to wake the device.",
|
||||
"parameter_is_read_only": "This parameter is read-only.",
|
||||
"error_device_not_found": "Device not found"
|
||||
},
|
||||
"node_status": {
|
||||
"unknown": "Unknown",
|
||||
@@ -3442,7 +3462,6 @@
|
||||
"addon": {
|
||||
"failed_to_reset": "Failed to reset add-on configuration, {error}",
|
||||
"failed_to_save": "Failed to save add-on configuration, {error}",
|
||||
|
||||
"state": {
|
||||
"installed": "Add-on is installed",
|
||||
"not_installed": "Add-on is not installed",
|
||||
@@ -3492,13 +3511,11 @@
|
||||
"uninstall": "uninstall",
|
||||
"rebuild": "rebuild",
|
||||
"open_web_ui": "Open web UI",
|
||||
|
||||
"protection_mode": {
|
||||
"title": "Warning: Protection mode is disabled!",
|
||||
"content": "Protection mode on this add-on is disabled! This gives the add-on full access to the entire system, which adds security risks, and could damage your system when used incorrectly. Only disable the protection mode if you know, need AND trust the source of this add-on.",
|
||||
"enable": "Enable Protection mode"
|
||||
},
|
||||
|
||||
"capability": {
|
||||
"stage": {
|
||||
"title": "Add-on Stage",
|
||||
@@ -3565,7 +3582,6 @@
|
||||
"admin": "admin"
|
||||
}
|
||||
},
|
||||
|
||||
"option": {
|
||||
"boot": {
|
||||
"title": "Start on boot",
|
||||
@@ -3588,7 +3604,6 @@
|
||||
"description": "Blocks elevated system access from the add-on"
|
||||
}
|
||||
},
|
||||
|
||||
"action_error": {
|
||||
"uninstall": "Failed to uninstall add-on",
|
||||
"install": "Failed to install add-on",
|
||||
@@ -3632,7 +3647,6 @@
|
||||
"update_available": "{count, plural,\n one {Update}\n other {{count} Updates}\n} pending",
|
||||
"update": "Update",
|
||||
"version": "Version",
|
||||
|
||||
"error": {
|
||||
"unknown": "Unknown error",
|
||||
"update_failed": "Update failed"
|
||||
@@ -3710,6 +3724,7 @@
|
||||
"share_diagonstics_description": "Would you want to automatically share crash reports and diagnostic information when the Supervisor encounters unexpected errors? {line_break} This will allow us to fix the problems, the information is only accessible to the Home Assistant Core team and will not be shared with others.{line_break} The data does not include any private/sensitive information and you can disable this in settings at any time you want.",
|
||||
"unsupported_reason": {
|
||||
"container": "Containers known to cause issues",
|
||||
"content-trust": "Content-trust validation is disabled",
|
||||
"dbus": "DBUS",
|
||||
"docker_configuration": "Docker Configuration",
|
||||
"docker_version": "Docker Version",
|
||||
@@ -3724,7 +3739,8 @@
|
||||
"privileged": "Supervisor is not privileged",
|
||||
"supervisor": "Supervisor was not able to update",
|
||||
"setup": "Setup of the Supervisor failed",
|
||||
"docker": "The Docker environment is not working properly"
|
||||
"docker": "The Docker environment is not working properly",
|
||||
"untrusted": "Detected untrusted content"
|
||||
}
|
||||
},
|
||||
"host": {
|
||||
@@ -3775,7 +3791,6 @@
|
||||
"password_protection": "Password protection",
|
||||
"password_protected": "password protected",
|
||||
"enter_password": "Please enter a password.",
|
||||
|
||||
"folder": {
|
||||
"homeassistant": "Home Assistant configuration",
|
||||
"ssl": "SSL",
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
"logbook": "سجل",
|
||||
"mailbox": "البريد",
|
||||
"map": "خريطة",
|
||||
"media_browser": "متصفح الوسائط",
|
||||
"profile": "الملف الشخصي",
|
||||
"shopping_list": "قائمة التسوق",
|
||||
"states": "نظرة عامة"
|
||||
@@ -77,6 +78,54 @@
|
||||
"unknown": "غير معروف"
|
||||
}
|
||||
},
|
||||
"supervisor": {
|
||||
"common": {
|
||||
"close": "إغلق"
|
||||
},
|
||||
"dialog": {
|
||||
"network": {
|
||||
"dhcp": "DHCP",
|
||||
"disabled": "معطل",
|
||||
"dns_servers": "خوادم DNS",
|
||||
"failed_to_change": "فشل تغيير إعدادات الشبكة",
|
||||
"gateway": "عنوان البوابة",
|
||||
"ip_netmask": "عنوان IP / قناع الشبكة",
|
||||
"static": "ثابتة",
|
||||
"unsaved": "لديك تغييرات غير محفوظة ، ستضيع هذه التغييرات إذا قمت بتغيير علامات التبويب ، هل تريد المتابعة؟",
|
||||
"warning": "إذا كنت تقوم بتغيير عناوين Wi-Fi أو IP أو البوابة ، فقد تفقد الاتصال!"
|
||||
},
|
||||
"registries": {
|
||||
"add_new_registry": "إضافة سجل جديد",
|
||||
"add_registry": "إضافة سجل",
|
||||
"failed_to_add": "فشل في إضافة السجل",
|
||||
"failed_to_remove": "فشل في إزالة السجل",
|
||||
"no_registries": "لم يتم تكوين سجلات",
|
||||
"password": "كلمة السر",
|
||||
"registry": "سجل",
|
||||
"remove": "إزالة",
|
||||
"title_add": "إضافة سجل حاوية جديد",
|
||||
"title_manage": "إدارة سجلات الحاويات",
|
||||
"username": "اسم المستخدم"
|
||||
},
|
||||
"repositories": {
|
||||
"remove": "إزالة",
|
||||
"title": "إدارة مستودعات الإضافات"
|
||||
},
|
||||
"restart_addon": {
|
||||
"confirm_text": "أعد تشغيل الإضافة",
|
||||
"text": "هل تريد إعادة تشغيل الإضافة بالتغييرات التي قمت بها؟"
|
||||
},
|
||||
"update": {
|
||||
"create_snapshot": "قم بإنشاء لقطة من {name} قبل التحديث",
|
||||
"snapshot": "لقط",
|
||||
"snapshotting": "إنشاء لقطة لـ {name}",
|
||||
"updating": "تحديث {name} إلى الإصدار {version}"
|
||||
}
|
||||
},
|
||||
"my": {
|
||||
"error_addon_not_found": "لم يتم العثور على الإضافة"
|
||||
}
|
||||
},
|
||||
"ui": {
|
||||
"auth_store": {
|
||||
"ask": "هل تريد حفظ هذا الدخول؟",
|
||||
@@ -230,6 +279,9 @@
|
||||
"loading_history": "جارٍ تحميل سجل الحالات ...",
|
||||
"no_history_found": "لم يتم العثور على سجل الحالات."
|
||||
},
|
||||
"logbook": {
|
||||
"show_trace": "عرض التتبع"
|
||||
},
|
||||
"related-items": {
|
||||
"integration": "تكامل"
|
||||
},
|
||||
@@ -411,6 +463,7 @@
|
||||
"device_id": {
|
||||
"action": "أضف إجراء",
|
||||
"extra_fields": {
|
||||
"mode": "الوضع",
|
||||
"position": "مكان"
|
||||
}
|
||||
},
|
||||
@@ -1051,6 +1104,16 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"supervisor": {
|
||||
"ask": "طلب المساعدة",
|
||||
"observer": "تحقق من المراقب",
|
||||
"reboot": "حاول إعادة تشغيل المضيف",
|
||||
"system_health": "تحقق من صحة النظام",
|
||||
"title": "تعذر تحميل لوحة المشرف!",
|
||||
"wait": "إذا كنت قد بدأت للتو ، فتأكد من منح المشرف الوقت الكافي للبدء."
|
||||
}
|
||||
},
|
||||
"history": {
|
||||
"ranges": {
|
||||
"last_week": "الأسبوع الماضي",
|
||||
|
||||
+144
-24
@@ -117,23 +117,37 @@
|
||||
"header": "Мрежа",
|
||||
"host": "Хост"
|
||||
},
|
||||
"no_configuration": "Тази добавка не предлага конфигурация, с която да се занимавате...",
|
||||
"options": {
|
||||
"edit_in_ui": "Редактиране в потребителския интерфейс",
|
||||
"edit_in_yaml": "Редактиране в YAML",
|
||||
"header": "Опции",
|
||||
"invalid_yaml": "Невалиден YAML"
|
||||
"invalid_yaml": "Невалиден YAML",
|
||||
"show_unused_optional": "Показване на неизползваните опции за конфигуриране по избор"
|
||||
}
|
||||
},
|
||||
"dashboard": {
|
||||
"action_error": {
|
||||
"get_changelog": "Неуспешно получаване на списък с промени на добавката",
|
||||
"go_to_config": "Грешка при стартиране на добавката - неуспешна проверка на конфигурацията!",
|
||||
"install": "Инсталирането на добавката не бе успешно",
|
||||
"restart": "Рестартирането на добавката не бе успешно",
|
||||
"start": "Стартирането на добавката не бе успешно",
|
||||
"start_invalid_config": "Към конфигурацията",
|
||||
"stop": "Спирането на добавката не бе успешно",
|
||||
"uninstall": "Деинсталирането на добавката не бе успешно"
|
||||
"uninstall": "Деинсталирането на добавката не бе успешно",
|
||||
"validate_config": "Грешка при проверка на конфигурацията на добавката"
|
||||
},
|
||||
"capability": {
|
||||
"apparmor": {
|
||||
"title": "AppArmor"
|
||||
},
|
||||
"docker_api": {
|
||||
"title": "Пълен достъп до Docker"
|
||||
},
|
||||
"full_access": {
|
||||
"title": "Пълен достъп до хардуера"
|
||||
},
|
||||
"label": {
|
||||
"docker": "docker",
|
||||
"hardware": "хардуер",
|
||||
@@ -143,11 +157,14 @@
|
||||
"rating": "рейтинг"
|
||||
},
|
||||
"role": {
|
||||
"admin": "админ",
|
||||
"default": "по подразбиране",
|
||||
"homeassistant": "homeassistant"
|
||||
"homeassistant": "homeassistant",
|
||||
"manager": "мениджър"
|
||||
}
|
||||
},
|
||||
"changelog": "Дневник на промените",
|
||||
"cpu_usage": "Използване на CPU от добавката",
|
||||
"hostname": "Име на хоста",
|
||||
"install": "инсталиране",
|
||||
"new_update_available": "{name} {version} е налично",
|
||||
@@ -157,6 +174,10 @@
|
||||
"description": "Автоматично актуализиране на добавката, когато има налична нова версия",
|
||||
"title": "Автоматично актуализиране"
|
||||
},
|
||||
"boot": {
|
||||
"description": "Направете добавката да стартира по време на зареждане на системата",
|
||||
"title": "Стартиране при зареждане на системата"
|
||||
},
|
||||
"ingress_panel": {
|
||||
"description": "Добавете тази добавка към страничната си лента",
|
||||
"title": "Показване в страничната лента"
|
||||
@@ -170,14 +191,19 @@
|
||||
}
|
||||
},
|
||||
"protection_mode": {
|
||||
"content": "Режимът на защита на тази добавка е деактивиран! Това дава на добавката пълен достъп до цялата система, което добавя рискове за сигурността и може да повреди вашата система при неправилно използване. Деактивирайте режима на защита само ако знаете, имате нужда и се доверявате на източника на тази добавка.",
|
||||
"enable": "Активиране на режим на защита",
|
||||
"title": "Внимание: Режимът на защита е деактивиран!"
|
||||
},
|
||||
"ram_usage": "Използване на RAM от добавката",
|
||||
"restart": "рестарт",
|
||||
"start": "старт",
|
||||
"stop": "стоп",
|
||||
"uninstall": "деинсталиране",
|
||||
"visit_addon_page": "Посетете страницата {name} за повече подробности"
|
||||
},
|
||||
"failed_to_reset": "Нулирането на конфигурацията на добавката не бе успешно, {error}",
|
||||
"failed_to_save": "Запазването на конфигурацията на добавката не бе успешно, {error}",
|
||||
"panel": {
|
||||
"configuration": "Конфигурация",
|
||||
"documentation": "Документация",
|
||||
@@ -206,15 +232,22 @@
|
||||
"refresh": "Опресняване",
|
||||
"release_notes": "Бележки към изданието",
|
||||
"reload": "Презареждане",
|
||||
"reset_defaults": "Нулирайте по подразбиране",
|
||||
"reset_options": "Нулиране на опциите",
|
||||
"restart": "Рестартиране",
|
||||
"restart_name": "Рестартиране {name}",
|
||||
"restart_name": "Рестартиране на {name}",
|
||||
"running_version": "В момента използвате версия {version}",
|
||||
"save": "Запис",
|
||||
"show_more": "Показване на повече информация за това",
|
||||
"update": "Актуализиране",
|
||||
"version": "Версия",
|
||||
"yes": "Да"
|
||||
},
|
||||
"confirm": {
|
||||
"reset_options": {
|
||||
"text": "Сигурни ли сте, че искате да нулирате всичките си опции?",
|
||||
"title": "Нулиране на опциите"
|
||||
},
|
||||
"restart": {
|
||||
"text": "Наистина ли искате да рестартирате {name}?",
|
||||
"title": "Рестартиране {name}"
|
||||
@@ -228,7 +261,8 @@
|
||||
"addon_new_version": "Налична е нова версия",
|
||||
"addon_running": "Добавката се изпълнява",
|
||||
"addon_stopped": "Добавката е спряна",
|
||||
"addons": "Добавки"
|
||||
"addons": "Добавки",
|
||||
"no_addons": "Все още нямате инсталирани добавки. Насочете се към хранилището за добавки, за да започнете!"
|
||||
},
|
||||
"dialog": {
|
||||
"network": {
|
||||
@@ -243,6 +277,7 @@
|
||||
"scan_ap": "Сканиране за точки за достъп",
|
||||
"static": "Статичен",
|
||||
"title": "Мрежови настройки",
|
||||
"unsaved": "Имате незапазени промени, които ще се загубят, ако промените разделите, искате ли да продължите?",
|
||||
"warning": "Ако промените Wi-Fi, IP адреса или адреса на шлюза, може да загубите връзката!",
|
||||
"wep": "WEP",
|
||||
"wpa": "wpa-psk"
|
||||
@@ -264,6 +299,7 @@
|
||||
"title": "Управление на хранилищата на добавки"
|
||||
},
|
||||
"restart_addon": {
|
||||
"confirm_text": "Рестартиране на добавката",
|
||||
"text": "Искате ли да рестартирате добавката с вашите промени?"
|
||||
},
|
||||
"update": {
|
||||
@@ -290,6 +326,7 @@
|
||||
"could_not_create": "Не можа да се създаде снапшот",
|
||||
"create": "Създаване",
|
||||
"create_snapshot": "Създаване на снапшот",
|
||||
"description": "Снапшотите ви позволяват лесно да архивирате и възстановявате всички данни от вашия екземпляр на Home Assistant.",
|
||||
"enter_password": "Моля, въведете парола.",
|
||||
"folder": {
|
||||
"addons/local": "Локални добавки",
|
||||
@@ -311,11 +348,16 @@
|
||||
"upload_snapshot": "Качване на снапшот"
|
||||
},
|
||||
"store": {
|
||||
"missing_addons": "Липсват добавки? Активирайте разширения режим в страницата на потребителския си профил",
|
||||
"no_results_found": "Няма намерени резултати в {repository}.",
|
||||
"registries": "Регистри",
|
||||
"repositories": "Хранилища"
|
||||
},
|
||||
"system": {
|
||||
"core": {
|
||||
"cpu_usage": "Използване на CPU от Core",
|
||||
"ram_usage": "Използване на RAM от Core"
|
||||
},
|
||||
"host": {
|
||||
"change": "Промяна",
|
||||
"change_hostname": "Промяна в името на хоста",
|
||||
@@ -332,6 +374,8 @@
|
||||
"ip_address": "IP адрес",
|
||||
"new_hostname": "Моля, въведете ново име на хоста:",
|
||||
"operating_system": "Операционна система",
|
||||
"reboot_host": "Рестартиране на хоста",
|
||||
"shutdown_host": "Изключване на хоста",
|
||||
"used_space": "Използвано пространство"
|
||||
},
|
||||
"supervisor": {
|
||||
@@ -339,12 +383,14 @@
|
||||
"beta_join_confirm": "Искате ли да се присъедините към бета канала?",
|
||||
"beta_release_items": "Това включва бета версии за:",
|
||||
"channel": "Канал",
|
||||
"cpu_usage": "Използване на CPU от Supervisor",
|
||||
"failed_to_reload": "Неуспешно презареждане на Supervisor",
|
||||
"failed_to_update": "Неуспешно актуализиране на Supervisor",
|
||||
"join_beta_action": "Присъединяване към бета канала",
|
||||
"join_beta_description": "Получавайте бета актуализации за Home Assistant (RCs), Supervisor и хоста",
|
||||
"leave_beta_action": "Напускане на бета канала",
|
||||
"leave_beta_description": "Получавайте стабилни актуализации за Home Assistant, Supervisor и хоста",
|
||||
"ram_usage": "Използване на RAM от Supervisor",
|
||||
"reload_supervisor": "Презареждане на Supervisor",
|
||||
"share_diagnostics": "Споделяне на диагностика",
|
||||
"share_diagnostics_description": "Споделяйте доклади за сривове и диагностична информация.",
|
||||
@@ -426,6 +472,7 @@
|
||||
"direction": "Посока",
|
||||
"forward": "Напред",
|
||||
"oscillate": "Въртене",
|
||||
"preset_mode": "Предварително зададен режим",
|
||||
"reverse": "Назад",
|
||||
"speed": "Скорост"
|
||||
},
|
||||
@@ -683,13 +730,15 @@
|
||||
"media_player": "Медиен плейър",
|
||||
"media-player-browser": "Браузър на медийния плейър",
|
||||
"no_items": "Няма елементи",
|
||||
"no_local_media_found": "Не са намерени местни медии",
|
||||
"no_media_folder": "Изглежда, че все още не сте създали медийна директория.",
|
||||
"play": "Възпроизвеждане",
|
||||
"play-media": "Възпроизвеждане на медия",
|
||||
"video_not_supported": "Браузърът не поддържа този видео елемент.",
|
||||
"web-browser": "Уеб браузър"
|
||||
},
|
||||
"picture-upload": {
|
||||
"label": "Картина",
|
||||
"label": "Снимка",
|
||||
"unsupported_format": "Неподдържан формат, моля, изберете JPEG, PNG или GIF изображение."
|
||||
},
|
||||
"related-items": {
|
||||
@@ -770,7 +819,7 @@
|
||||
"confirm_delete": "Наистина ли искате да изтриете този запис?",
|
||||
"delete": "Изтриване",
|
||||
"device_disabled": "Устройството на този обект е деактивирано.",
|
||||
"enabled_cause": "Деактивирано от {cause} .",
|
||||
"enabled_cause": "Деактивирано от {cause}.",
|
||||
"enabled_delay_confirm": "Активираните обекти ще бъдат добавени към Home Assistant след {delay} секунди",
|
||||
"enabled_description": "Изключените обекти няма да бъдат добавени в Home Assistant.",
|
||||
"enabled_label": "Активирай обекта",
|
||||
@@ -785,6 +834,7 @@
|
||||
"update": "Актуализация"
|
||||
},
|
||||
"faq": "документация",
|
||||
"info_customize": "Можете да презапишете някои атрибути в секцията {customize_link}.",
|
||||
"no_unique_id": "Този обект (\"{entity_id}\") няма уникален идентификатор, затова неговите настройки не могат да бъдат управлявани от потребителския интерфейс. За повече информация вижте {faq_link}",
|
||||
"related": "Свързани",
|
||||
"settings": "Настройки"
|
||||
@@ -962,6 +1012,10 @@
|
||||
"remove": "Премахване на устройство",
|
||||
"zigbee_information": "Подпис на Zigbee устройството"
|
||||
},
|
||||
"confirmations": {
|
||||
"remove": "Сигурни ли сте, че искате да премахнете устройството?"
|
||||
},
|
||||
"last_seen": "Последно видян",
|
||||
"manuf": "от {manufacturer}",
|
||||
"no_area": "Без област",
|
||||
"power_source": "Източник на захранване",
|
||||
@@ -1378,7 +1432,7 @@
|
||||
"header": "Импортирайте план",
|
||||
"import_btn": "Предварителен преглед на план",
|
||||
"import_header": "План \"{name}\"",
|
||||
"import_introduction_link": "Можете да импортирате планове на други потребители от Github и {community_link} . Въведете URL адреса на плана по-долу.",
|
||||
"import_introduction_link": "Можете да импортирате планове на други потребители от Github и {community_link}. Въведете URL адреса на плана по-долу.",
|
||||
"importing": "Планът се зарежда ...",
|
||||
"raw_blueprint": "Съдържание на плана",
|
||||
"save_btn": "Импортирайте план",
|
||||
@@ -1428,6 +1482,7 @@
|
||||
"manage_account": "Управление на акаунта",
|
||||
"not_connected": "Не е свързан",
|
||||
"remote": {
|
||||
"certificate_info": "Информация за сертификата",
|
||||
"title": "Дистанционен контрол"
|
||||
},
|
||||
"sign_out": "Отписване",
|
||||
@@ -1478,8 +1533,11 @@
|
||||
"view_documentation": "Преглед на документацията"
|
||||
},
|
||||
"forgot_password": {
|
||||
"check_your_email": "Проверете имейла си за инструкции как да нулирате паролата си.",
|
||||
"email": "Имейл",
|
||||
"email_error_msg": "Грешен имейл",
|
||||
"instructions": "Въведете вашия имейл адрес и ние ще ви изпратим линк за нулиране на вашата парола.",
|
||||
"send_reset_email": "Изпратете имейл за нулиране",
|
||||
"title": "Забравена парола"
|
||||
},
|
||||
"google": {
|
||||
@@ -1505,6 +1563,7 @@
|
||||
"learn_more_link": "Научете повече за Home Assistant Cloud",
|
||||
"password": "Парола",
|
||||
"password_error_msg": "Паролите са най-малко 8 знака",
|
||||
"sign_in": "Впиши се",
|
||||
"start_trial": "Започнете безплатния си едномесечен пробен период",
|
||||
"trial_info": "Не е необходима информация за плащане"
|
||||
},
|
||||
@@ -1527,6 +1586,11 @@
|
||||
"title": "Регистриране на акаунт"
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"editor": {
|
||||
"confirm_unsaved": "Вие имате незапазени промени. Сигурни ли сте, че искате да напусните?"
|
||||
}
|
||||
},
|
||||
"core": {
|
||||
"caption": "Общи",
|
||||
"description": "Променете общите настройки на Home Assistant",
|
||||
@@ -1555,9 +1619,14 @@
|
||||
}
|
||||
},
|
||||
"customize": {
|
||||
"attributes_customize": "Следните атрибути вече са зададени в customize.yaml",
|
||||
"attributes_outside": "Следните атрибути са персонализирани извън customize.yaml",
|
||||
"attributes_override": "Можете да ги презапишете, ако искате.",
|
||||
"caption": "Персонализиране",
|
||||
"description": "Персонализирайте Вашите обекти",
|
||||
"pick_attribute": "Изберете атрибут, който да презапишете",
|
||||
"picker": {
|
||||
"documentation": "Документация за персонализиране",
|
||||
"header": "Персонализиране",
|
||||
"introduction": "Настройте атрибутите за всеки обект. Добавени/редактирани персонализации ще имат ефект, когато обектът бъде опреснен."
|
||||
},
|
||||
@@ -1601,7 +1670,7 @@
|
||||
"integration": "Интеграция",
|
||||
"user": "Потребител"
|
||||
},
|
||||
"enabled_cause": "Устройството е деактивирано от {cause} .",
|
||||
"enabled_cause": "Устройството е деактивирано от {cause}.",
|
||||
"enabled_label": "Активиране на устройството",
|
||||
"entities": {
|
||||
"add_entities_lovelace": "Добавете към Lovelace",
|
||||
@@ -1647,7 +1716,8 @@
|
||||
"confirm_title": "Искате ли да разрешите {number} {number, plural,\n one {обект}\n other {обекта}\n}?"
|
||||
},
|
||||
"filter": {
|
||||
"filter": "Филтър"
|
||||
"filter": "Филтър",
|
||||
"show_all": "Покажи всички"
|
||||
},
|
||||
"header": "Обекти",
|
||||
"headers": {
|
||||
@@ -1664,13 +1734,15 @@
|
||||
},
|
||||
"search": "Търсене на обекти",
|
||||
"status": {
|
||||
"ok": "ДА"
|
||||
"ok": "ДА",
|
||||
"readonly": "Само за четене"
|
||||
}
|
||||
}
|
||||
},
|
||||
"filtering": {
|
||||
"clear": "Изчистване",
|
||||
"filtering_by": "Филтриране по"
|
||||
"filtering_by": "Филтриране по",
|
||||
"show": "Покажи"
|
||||
},
|
||||
"header": "Конфигуриране на Home Assistant",
|
||||
"helpers": {
|
||||
@@ -1700,7 +1772,11 @@
|
||||
"license": "Публикувано под лиценза Apache 2.0",
|
||||
"path_configuration": "Път към configuration.yaml: {path}",
|
||||
"server": "сървър",
|
||||
"source": "Източник:"
|
||||
"source": "Източник:",
|
||||
"system_health": {
|
||||
"manage": "Управление",
|
||||
"more_info": "повече информация"
|
||||
}
|
||||
},
|
||||
"integrations": {
|
||||
"add_integration": "Добавяне на интеграция",
|
||||
@@ -1714,6 +1790,7 @@
|
||||
"devices": "{count} {count, plural,\n one {устройство}\n other {устройства}\n}",
|
||||
"disable_restart_confirm": "Рестартирайте Home Assistant за да завършите деактивирането на тази интеграция",
|
||||
"disable": {
|
||||
"disabled": "Деактивиран",
|
||||
"disabled_by": {
|
||||
"device": "устройство",
|
||||
"integration": "интеграция",
|
||||
@@ -1769,7 +1846,8 @@
|
||||
"none": "Нищо не е конфигурирано към момента",
|
||||
"none_found": "Не са намерени интеграции",
|
||||
"none_found_detail": "Коригирайте критериите си за търсене.",
|
||||
"note_about_website_reference": "Повече са достъпни на",
|
||||
"note_about_integrations": "Все още не всички интеграции могат да бъдат конфигурирани чрез потребителския интерфейс.",
|
||||
"note_about_website_reference": "Повече са достъпни на ",
|
||||
"reconfigure": "Реконфигурация",
|
||||
"rename_dialog": "Редактирайте името на този запис в конфигурацията",
|
||||
"rename_input_label": "Име на записа",
|
||||
@@ -1817,7 +1895,7 @@
|
||||
"sidebar": "Показване в страничната лента",
|
||||
"title": "Заглавие"
|
||||
},
|
||||
"open": "Отворен"
|
||||
"open": "Отваряне"
|
||||
}
|
||||
},
|
||||
"description": "Създайте персонализирани набори от карти, за да контролирате дома си",
|
||||
@@ -1844,9 +1922,11 @@
|
||||
}
|
||||
},
|
||||
"mqtt": {
|
||||
"button": "Конфигуриране",
|
||||
"title": "MQTT"
|
||||
},
|
||||
"ozw": {
|
||||
"button": "Конфигуриране",
|
||||
"common": {
|
||||
"controller": "Контролер",
|
||||
"network": "Мрежа",
|
||||
@@ -1861,10 +1941,14 @@
|
||||
},
|
||||
"network_status": {
|
||||
"details": {
|
||||
"ready": "Готов за свързване",
|
||||
"started": "Свързан към MQTT",
|
||||
"starting": "Свързване към MQTT"
|
||||
}
|
||||
},
|
||||
"node_metadata": {
|
||||
"product_manual": "Ръководство за продукта"
|
||||
},
|
||||
"node_query_stages": {
|
||||
"associations": "Обновяване на свързаните групи и членства"
|
||||
},
|
||||
@@ -1891,20 +1975,25 @@
|
||||
}
|
||||
},
|
||||
"person": {
|
||||
"add_person": "Добавяне на човек",
|
||||
"caption": "Хора",
|
||||
"confirm_delete": "Сигурни ли сте, че искате да изтриете този човек?",
|
||||
"confirm_delete2": "Всички устройства, принадлежащи на този човек, ще станат неназначени.",
|
||||
"description": "Управлявайте хората, които се следят от Home Assistant.",
|
||||
"detail": {
|
||||
"admin": "Администратор",
|
||||
"allow_login": "Разрешаване на потребител да се впише",
|
||||
"allow_login": "Разрешаване на потребителя да се впише",
|
||||
"confirm_delete_user": "Сигурен ли сте, че искате да изтриете потребителски акаунт {name}? Все още ще можете да проследявате човека, но той, повече няма да може да се вписва.",
|
||||
"create": "Създаване",
|
||||
"delete": "Изтрий",
|
||||
"device_tracker_intro": "Изберете устройствата, които принадлежат на това лице.",
|
||||
"device_tracker_pick": "Изберете устройство за проследяване",
|
||||
"device_tracker_picked": "Устройство за проследяване",
|
||||
"link_presence_detection_integrations": "Интеграции за откриване на присъствие",
|
||||
"linked_user": "Свързан потребител",
|
||||
"name": "Име",
|
||||
"name_error_msg": "Името е задължително",
|
||||
"new_person": "Нов човек",
|
||||
"update": "Актуализиране"
|
||||
},
|
||||
"no_persons_created_yet": "Изглежда все още не сте добавили хора.",
|
||||
@@ -1992,7 +2081,7 @@
|
||||
"reloading": {
|
||||
"automation": "Презареждане на автоматизациите",
|
||||
"core": "Презареждане на местоположението и персонализациите",
|
||||
"group": "Презареждане на групите,груповите обекти и услугите за уведомяване",
|
||||
"group": "Презареждане на групите, груповите обекти и услугите за уведомяване",
|
||||
"heading": "Презареждане на YAML конфигурацията",
|
||||
"homekit": "Презареждане на HomeKit",
|
||||
"introduction": "Някои части от Home Assistant могат да се презаредят без да е необходимо рестартиране. Натискането на Презареждане ще отхвърли настоящата конфигурация и ще зареди новата конфигурация.",
|
||||
@@ -2079,8 +2168,9 @@
|
||||
"new_password": "Нова парола",
|
||||
"owner": "Собственик",
|
||||
"password_changed": "Паролата беше променена успешно",
|
||||
"system_generated": "Генерирано от системата",
|
||||
"system_generated": "Генериран от системата",
|
||||
"system_generated_users_not_editable": "Неуспешно обновяване на системно генерираните потребители",
|
||||
"system_generated_users_not_removable": "Не може да се премахнат генерираните от системата потребители.",
|
||||
"update_user": "Актуализиране",
|
||||
"username": "Потребителско име"
|
||||
},
|
||||
@@ -2104,6 +2194,7 @@
|
||||
"search_again": "Потърси отново",
|
||||
"spinner": "Търсене на ZHA Zigbee устройства..."
|
||||
},
|
||||
"button": "Конфигуриране",
|
||||
"clusters": {
|
||||
"header": "Клъстери",
|
||||
"introduction": "Клъстерите са градивните елементи за функционалността на Zigbee. Те разделят функционалността на логически единици. Има типове клиенти и сървъри, състоящи се от атрибути и команди."
|
||||
@@ -2149,6 +2240,7 @@
|
||||
"zone": {
|
||||
"add_zone": "Добавяне на зона",
|
||||
"caption": "Зони",
|
||||
"configured_in_yaml": "Зоните, конфигурирани чрез configuration.yaml, не могат да се редактират чрез потребителския интерфейс.",
|
||||
"confirm_delete": "Наистина ли искате да изтриете тази зона?",
|
||||
"create_zone": "Създаване на зона",
|
||||
"description": "Управлявайте зоните, в които искате да проследявате хората",
|
||||
@@ -2169,6 +2261,7 @@
|
||||
"no_zones_created_yet": "Изглежда, че все още не сте създали никакви зони."
|
||||
},
|
||||
"zwave_js": {
|
||||
"button": "Конфигуриране",
|
||||
"common": {
|
||||
"close": "Затвори",
|
||||
"network": "Мрежа"
|
||||
@@ -2185,6 +2278,7 @@
|
||||
}
|
||||
},
|
||||
"zwave": {
|
||||
"button": "Конфигуриране",
|
||||
"common": {
|
||||
"index": "Индекс",
|
||||
"instance": "Устройство",
|
||||
@@ -2194,6 +2288,12 @@
|
||||
},
|
||||
"description": "Управлявайте своята Z-Wave мрежа",
|
||||
"learn_more": "Научете повече за Z-Wave",
|
||||
"migration": {
|
||||
"ozw": {
|
||||
"header": "Мигриране към OpenZWave",
|
||||
"introduction": "Този съветник ще ви помогне да мигрирате от старата интеграция Z-Wave към интеграцията OpenZWave, която в момента е бета версия."
|
||||
}
|
||||
},
|
||||
"network_management": {
|
||||
"header": "Управление на Z-Wave мрежата",
|
||||
"introduction": "Изпълнение на команди, които засягат Z-Wave мрежата. Няма да получите обратна информация за това дали повечето команди са успели, но можете да проверите OZW лог файла, за да се опитате да разберете."
|
||||
@@ -2250,7 +2350,7 @@
|
||||
"column_example": "Пример",
|
||||
"column_parameter": "Параметър",
|
||||
"title": "Услуги",
|
||||
"yaml_parameters": "Параметрите налични само в YAML режим"
|
||||
"yaml_parameters": "Параметрите са налични само в YAML режим"
|
||||
},
|
||||
"states": {
|
||||
"attributes": "Атрибути",
|
||||
@@ -2260,6 +2360,7 @@
|
||||
"filter_attributes": "Филтриране на атрибути",
|
||||
"last_changed": "Последна промяна",
|
||||
"last_updated": "Последна актуализация",
|
||||
"more_info": "Повече информация",
|
||||
"set_state": "Задаване на състояние",
|
||||
"state_attributes": "Атрибути на състоянието (YAML, по избор)",
|
||||
"title": "Състояния"
|
||||
@@ -2283,9 +2384,11 @@
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"go_back": "Върнете се",
|
||||
"supervisor": {
|
||||
"ask": "Помолете за помощ",
|
||||
"reboot": "Опитайте да рестартирате хоста"
|
||||
"reboot": "Опитайте да рестартирате хоста",
|
||||
"system_health": "Проверете здравето на системата"
|
||||
}
|
||||
},
|
||||
"history": {
|
||||
@@ -2329,7 +2432,8 @@
|
||||
"add_item": "Добави артикул",
|
||||
"checked_items": "Отметнати артикули",
|
||||
"clear_items": "Изчистване на отметнатите артикули",
|
||||
"reorder_items": "Пренареждане на артикули"
|
||||
"drag_and_drop": "Плъзнете и пуснете",
|
||||
"reorder_items": "Пренареждане на артикулите"
|
||||
},
|
||||
"starting": {
|
||||
"description": "Home Assistant стартира, моля, изчакайте ..."
|
||||
@@ -2430,6 +2534,7 @@
|
||||
}
|
||||
},
|
||||
"generic": {
|
||||
"attribute": "Атрибут",
|
||||
"icon": "Икона",
|
||||
"maximum": "Максимум",
|
||||
"minimum": "Минимум",
|
||||
@@ -2439,6 +2544,7 @@
|
||||
"search": "Търсене",
|
||||
"show_icon": "Показване на иконата?",
|
||||
"show_name": "Показване на името?",
|
||||
"show_state": "Показване на състоянието?",
|
||||
"state_color": "Да се оцветят ли иконите спрямо състоянието?",
|
||||
"theme": "Тема",
|
||||
"title": "Заглавие",
|
||||
@@ -2476,7 +2582,7 @@
|
||||
"name": "Управление на плейърите"
|
||||
},
|
||||
"picture": {
|
||||
"name": "Картина"
|
||||
"name": "Снимка"
|
||||
},
|
||||
"plant-status": {
|
||||
"description": "Картата за Статус на растението е за всички прекрасни ботаници.",
|
||||
@@ -2556,9 +2662,18 @@
|
||||
},
|
||||
"header": "Редактиране на Lovelace",
|
||||
"header-footer": {
|
||||
"choose_header_footer": "Изберете {type}",
|
||||
"footer": "Футър",
|
||||
"header": "Хедър",
|
||||
"types": {
|
||||
"buttons": {
|
||||
"name": "Бутони"
|
||||
},
|
||||
"graph": {
|
||||
"name": "Графика"
|
||||
},
|
||||
"picture": {
|
||||
"name": "Снимка"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -2580,7 +2695,7 @@
|
||||
"raw_editor": {
|
||||
"confirm_remove_config_text": "Ние автоматично ще генерираме вашите изгледи на потребителския интерфейс на Lovelace с вашите области и устройства, ако премахнете вашата конфигурация на потребителския интерфейс на Lovelace.",
|
||||
"confirm_remove_config_title": "Наистина ли искате да премахнете вашата конфигурация на потребителския интерфейс на Lovelace?",
|
||||
"confirm_unsaved_comments": "Вашата конфигурация съдържа коментари, те няма да бъдат запазени. Искаш ли да продължиш?",
|
||||
"confirm_unsaved_comments": "Вашата конфигурация може да съдържа коментар(и), те няма да бъдат запазени. Искате ли да продължите?",
|
||||
"error_invalid_config": "Вашата конфигурация не е валидна: {error}",
|
||||
"error_remove": "Конфигурацията не може да бъде премахната: {error}",
|
||||
"header": "Редактиране на конфигурацията",
|
||||
@@ -2592,6 +2707,7 @@
|
||||
"save_config": {
|
||||
"cancel": "Няма значение",
|
||||
"close": "Затвори",
|
||||
"empty_config": "Започнете с празно табло",
|
||||
"header": "Поемете контрол над потребителския интерфейс на Lovelace",
|
||||
"para": "В момента това табло се поддържа от Home Assistant. То се актуализира автоматично, когато станат достъпни нови обекти или компоненти на потребителския интерфейс на Lovelace. Ако поемете контрола, това табло вече няма да се актуализира автоматично. Винаги можете да създадете ново табло за управление в конфигурация, с което да си играете.",
|
||||
"para_sure": "Наистина ли искате да поемете управлението на потребителския интерфейс?",
|
||||
@@ -2814,6 +2930,9 @@
|
||||
"more_integrations": "Още"
|
||||
},
|
||||
"intro": "Готови ли сте да събудите дома си, да отвоювате независимостта си и да се присъедините към световна общност от хора автоматизиращи домовете си?",
|
||||
"restore": {
|
||||
"in_progress": "Възстановяването е в ход"
|
||||
},
|
||||
"user": {
|
||||
"create_account": "Създай акаунт",
|
||||
"data": {
|
||||
@@ -2859,7 +2978,8 @@
|
||||
"header": "Табло"
|
||||
},
|
||||
"enable_shortcuts": {
|
||||
"description": "Активирайте или деактивирайте клавишните комбинации за извършване на различни действия в потребителския интерфейс."
|
||||
"description": "Активирайте или деактивирайте клавишните комбинации за извършване на различни действия в потребителския интерфейс.",
|
||||
"header": "Клавишни комбинации"
|
||||
},
|
||||
"force_narrow": {
|
||||
"description": "Това ще скрие страничната лента по подразбиране, подобно на изгледа в мобилната версия.",
|
||||
|
||||
@@ -467,12 +467,14 @@
|
||||
"docker": "L'entorn Docker no està funcionant correctament",
|
||||
"privileged": "El Supervisor no és privilegiat",
|
||||
"setup": "Ha fallat la configuració del Supervisor",
|
||||
"supervisor": "El Supervisor no s'ha pogut actualitzar"
|
||||
"supervisor": "El Supervisor no s'ha pogut actualitzar",
|
||||
"untrusted": "S'ha detectat algun contingut que no és de confiança"
|
||||
},
|
||||
"unhealthy_title": "La teva instal·lació no és bona",
|
||||
"unsupported_description": "A continuació es mostra una llista de problemes relacionats amb la instal·lació, fes clic als enllaços per obtenir informació sobre com resoldre'ls.",
|
||||
"unsupported_reason": {
|
||||
"container": "Els contenidors són coneguts per causar problemes",
|
||||
"content-trust": "Validació de continguts de confiança desactivada",
|
||||
"dbus": "DBUS",
|
||||
"docker_configuration": "Configuració de Docker",
|
||||
"docker_version": "Versió de Docker",
|
||||
@@ -507,7 +509,7 @@
|
||||
},
|
||||
"automation": {
|
||||
"last_triggered": "Última execució",
|
||||
"trigger": "Executar accions"
|
||||
"trigger": "Executa accions"
|
||||
},
|
||||
"camera": {
|
||||
"not_available": "Imatge no disponible"
|
||||
@@ -785,7 +787,8 @@
|
||||
"was_unlocked": "s'ha desbloquejat",
|
||||
"was_unplugged": "s'ha desendollat",
|
||||
"was_unsafe": "és insegur"
|
||||
}
|
||||
},
|
||||
"show_trace": "Mostra la traça"
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "El teu navegador no és compatible amb l'element d'àudio.",
|
||||
@@ -1297,10 +1300,15 @@
|
||||
"device_id": {
|
||||
"action": "Acció",
|
||||
"extra_fields": {
|
||||
"brightness_pct": "Brillantor",
|
||||
"code": "Codi",
|
||||
"flash": "Flaix",
|
||||
"humidity": "Humitat",
|
||||
"message": "Missatge",
|
||||
"mode": "Mode",
|
||||
"position": "Posició",
|
||||
"title": "Títol"
|
||||
"title": "Títol",
|
||||
"value": "Valor"
|
||||
},
|
||||
"label": "Dispositiu"
|
||||
},
|
||||
@@ -1373,7 +1381,9 @@
|
||||
"extra_fields": {
|
||||
"above": "A sobre",
|
||||
"below": "A sota",
|
||||
"for": "Durada"
|
||||
"for": "Durada",
|
||||
"hvac_mode": "Mode HVAC",
|
||||
"preset_mode": "Mode predefinit"
|
||||
},
|
||||
"label": "Dispositiu"
|
||||
},
|
||||
@@ -1566,6 +1576,8 @@
|
||||
"add_automation": "Afegeix automatització",
|
||||
"delete_automation": "Elimina l'automatització",
|
||||
"delete_confirm": "Estàs segur que vols eliminar aquesta automatització?",
|
||||
"dev_automation": "Depurar automatització",
|
||||
"dev_only_editable": "Només es poden depurar les automatitzacions definides al fitxer automations.yaml.",
|
||||
"duplicate": "Duplica",
|
||||
"duplicate_automation": "Duplica l'automatització",
|
||||
"edit_automation": "Edita automatització",
|
||||
@@ -2815,6 +2827,9 @@
|
||||
"connecting": "Connectant",
|
||||
"unknown": "Desconegut"
|
||||
},
|
||||
"node_config": {
|
||||
"error_device_not_found": "Dispositiu no trobat"
|
||||
},
|
||||
"node_status": {
|
||||
"alive": "Viu",
|
||||
"asleep": "Adormit",
|
||||
|
||||
@@ -1297,10 +1297,15 @@
|
||||
"device_id": {
|
||||
"action": "Akce",
|
||||
"extra_fields": {
|
||||
"brightness_pct": "Jas",
|
||||
"code": "Kód",
|
||||
"flash": "Blikat",
|
||||
"humidity": "Vlhkost vzduchu",
|
||||
"message": "Zpráva",
|
||||
"mode": "Režim",
|
||||
"position": "Pozice",
|
||||
"title": "Název"
|
||||
"title": "Název",
|
||||
"value": "Hodnota"
|
||||
},
|
||||
"label": "Zařízení"
|
||||
},
|
||||
@@ -1373,7 +1378,9 @@
|
||||
"extra_fields": {
|
||||
"above": "Větší než",
|
||||
"below": "Menší než",
|
||||
"for": "Doba trvání"
|
||||
"for": "Doba trvání",
|
||||
"hvac_mode": "Režim HVAC",
|
||||
"preset_mode": "Předvolba"
|
||||
},
|
||||
"label": "Zařízení"
|
||||
},
|
||||
@@ -1566,6 +1573,8 @@
|
||||
"add_automation": "Přidat automatizaci",
|
||||
"delete_automation": "Odstranit automatizaci",
|
||||
"delete_confirm": "Opravdu chcete odstranit tuto automatizaci?",
|
||||
"dev_automation": "Debugování automatizace",
|
||||
"dev_only_editable": "Pouze automatizace definované v automations.yaml jsou debugovatelné",
|
||||
"duplicate": "Duplikát",
|
||||
"duplicate_automation": "Duplikovat automatizaci",
|
||||
"edit_automation": "Upravit automatizaci",
|
||||
@@ -1658,9 +1667,9 @@
|
||||
"devices_pin": "PIN pro zabezpečovací zařízení",
|
||||
"enable_ha_skill": "Povolte Home Assistant skill pro Google Assistant",
|
||||
"enable_state_reporting": "Povolit hlášení stavu",
|
||||
"enter_pin_error": "Nelze uložit pin:",
|
||||
"enter_pin_error": "Nelze uložit PIN:",
|
||||
"enter_pin_hint": "Chcete-li používat zabezpečovací zařízení, zadejte kód PIN",
|
||||
"enter_pin_info": "Chcete-li komunikovat se zabezpečovacími zařízeními, zadejte kód PIN. Zabezpečovací zařízení jsou dveře, garážová vrata a zámky. Při interakci s takovými zařízeními budete požádáni o zadání / zadání tohoto kódu PIN pomocí Google Assistant.",
|
||||
"enter_pin_info": "Chcete-li komunikovat se zabezpečovacími zařízeními, zadejte kód PIN. Zabezpečovací zařízení jsou dveře, garážová vrata a zámky. Při interakci s takovými zařízeními budete požádáni o zadání tohoto PIN kódu pomocí Google Assistant.",
|
||||
"info": "Díky integraci Google Assistant pro Home Assistant Cloud budete moci ovládat všechna zařízení v Home Assistant pomocí jakéhokoli zařízení podporujícího Google Assistant.",
|
||||
"info_state_reporting": "Pokud povolíte hlášení stavu, Home Assistant bude posílat veškeré změny stavů všech exponovaných entit do Google. Toto vám umožní sledovat vždy aktuální stavy entit v aplikaci Google.",
|
||||
"manage_entities": "Správa entit",
|
||||
@@ -2815,6 +2824,10 @@
|
||||
"connecting": "Připojování",
|
||||
"unknown": "Nezjištěno"
|
||||
},
|
||||
"node_config": {
|
||||
"error_device_not_found": "Zařízení nenalezeno",
|
||||
"parameter_is_read_only": "Tento parametr je jen pro čtení."
|
||||
},
|
||||
"node_status": {
|
||||
"alive": "Naživu",
|
||||
"asleep": "Spící",
|
||||
@@ -3007,7 +3020,8 @@
|
||||
"error": {
|
||||
"go_back": "Vrátit se",
|
||||
"supervisor": {
|
||||
"ask": "Požádat o pomoc"
|
||||
"ask": "Požádat o pomoc",
|
||||
"system_health": "Kontrola stavu systému"
|
||||
}
|
||||
},
|
||||
"history": {
|
||||
|
||||
@@ -315,7 +315,7 @@
|
||||
"addon_running": "Add-on wird ausgeführt",
|
||||
"addon_stopped": "Add-on ist gestoppt",
|
||||
"addons": "Add-ons",
|
||||
"no_addons": "Du hast noch keine Add-ons installiert. Gehe zum Add-on Shop, um loszulegen!"
|
||||
"no_addons": "Du hast noch keine Add-ons installiert. Gehe zum Add-on Store, um loszulegen!"
|
||||
},
|
||||
"dialog": {
|
||||
"network": {
|
||||
@@ -373,17 +373,17 @@
|
||||
"panel": {
|
||||
"dashboard": "Dashboard",
|
||||
"snapshots": "Datensicherungen",
|
||||
"store": "Add-on Shop",
|
||||
"store": "Add-on Store",
|
||||
"system": "System"
|
||||
},
|
||||
"snapshot": {
|
||||
"addons": "Add-ons",
|
||||
"available_snapshots": "Verfügbare Sicherungen",
|
||||
"available_snapshots": "Verfügbare Datensicherungen",
|
||||
"could_not_create": "Datensicherung konnte nicht erstellt werden",
|
||||
"create": "Erstellen",
|
||||
"create_blocked_not_running": "Das Erstellen eines Snapshots ist derzeit nicht möglich, da sich das System im Zustand {state} befindet.",
|
||||
"create_snapshot": "Datensicherung erstellen",
|
||||
"description": "Sicherungen ermöglichen dir das leichte Speichern und Wiederherstellen von allen Daten aus Home Assistant.",
|
||||
"description": "Datensicherungen ermöglichen dir das leichte Speichern und Wiederherstellen von allen Daten aus Home Assistant.",
|
||||
"enter_password": "Bitte Passwort eingeben.",
|
||||
"folder": {
|
||||
"addons/local": "Lokale Add-ons",
|
||||
@@ -395,7 +395,7 @@
|
||||
"folders": "Ordner",
|
||||
"full_snapshot": "Vollständige Datensicherung",
|
||||
"name": "Name",
|
||||
"no_snapshots": "Du hast bisher keine Sicherungen erstellt.",
|
||||
"no_snapshots": "Du hast bisher keine Datensicherungen erstellt.",
|
||||
"partial_snapshot": "Selektive Datensicherung",
|
||||
"password": "Passwort",
|
||||
"password_protected": "Passwort geschützt",
|
||||
@@ -413,14 +413,14 @@
|
||||
"system": {
|
||||
"core": {
|
||||
"cpu_usage": "Core-CPU Auslastung",
|
||||
"ram_usage": "Core-RAM Nutzung"
|
||||
"ram_usage": "Core Arbeitsspeicherbedarf"
|
||||
},
|
||||
"host": {
|
||||
"change": "Ändern",
|
||||
"change_hostname": "Hostname ändern",
|
||||
"confirm_reboot": "Bist du sicher, dass du den Host neu starten willst?",
|
||||
"confirm_shutdown": "Bist du sicher, dass du den Host herunterfahren willst?",
|
||||
"deployment": "Deployment",
|
||||
"deployment": "Einsatz",
|
||||
"docker_version": "Docker-Version",
|
||||
"emmc_lifetime_used": "eMMC verschlissen",
|
||||
"failed_to_get_hardware_list": "Fehler beim Abrufen der Hardwareliste",
|
||||
@@ -785,7 +785,8 @@
|
||||
"was_unlocked": "wurde entsperrt",
|
||||
"was_unplugged": "wurde ausgesteckt",
|
||||
"was_unsafe": "war unsicher"
|
||||
}
|
||||
},
|
||||
"show_trace": "Trace anzeigen"
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "Ihr Browser unterstützt das Audioelement nicht.",
|
||||
@@ -1120,7 +1121,7 @@
|
||||
"smtp": "SMTP-Benachrichtigungsdienst neu laden",
|
||||
"statistics": "Statistikentitäten neu laden",
|
||||
"telegram": "Telegram-Benachrichtigungsdienst neu laden",
|
||||
"template": "Templates neu laden",
|
||||
"template": "Template-Entitäten neu laden",
|
||||
"trend": "Trend-Entitäten neu laden",
|
||||
"universal": "Universelle Medien-Player-Entitäten neu laden",
|
||||
"zone": "Zonen neu laden"
|
||||
@@ -1297,10 +1298,14 @@
|
||||
"device_id": {
|
||||
"action": "Aktion",
|
||||
"extra_fields": {
|
||||
"brightness_pct": "Helligkeit",
|
||||
"code": "Code",
|
||||
"humidity": "Luftfeuchtigkeit",
|
||||
"message": "Nachricht",
|
||||
"mode": "Modus",
|
||||
"position": "Position",
|
||||
"title": "Titel"
|
||||
"title": "Titel",
|
||||
"value": "Wert"
|
||||
},
|
||||
"label": "Gerät"
|
||||
},
|
||||
@@ -1373,7 +1378,9 @@
|
||||
"extra_fields": {
|
||||
"above": "Über",
|
||||
"below": "Unter",
|
||||
"for": "Dauer"
|
||||
"for": "Dauer",
|
||||
"hvac_mode": "HLK-Modus",
|
||||
"preset_mode": "Voreinstellung"
|
||||
},
|
||||
"label": "Gerät"
|
||||
},
|
||||
@@ -1566,6 +1573,8 @@
|
||||
"add_automation": "Automatisierung hinzufügen",
|
||||
"delete_automation": "Automatisierung löschen",
|
||||
"delete_confirm": "Bist du sicher, dass du diese Automatisierung löschen möchtest?",
|
||||
"dev_automation": "Automatisierung debuggen",
|
||||
"dev_only_editable": "Nur Automatisierungen in automations.yaml können debuggt werden.",
|
||||
"duplicate": "Duplizieren",
|
||||
"duplicate_automation": "Automatisierung duplizieren",
|
||||
"edit_automation": "Automatisierung bearbeiten",
|
||||
@@ -1629,7 +1638,7 @@
|
||||
},
|
||||
"introduction": "Mit der Vorlagenkonfiguration kannst du deine Vorlagen importieren und verwalten.",
|
||||
"learn_more": "Erfahre mehr über die Benutzung von Vorlagen",
|
||||
"share_blueprint": "Blaupause teilen",
|
||||
"share_blueprint": "Vorlage teilen",
|
||||
"share_blueprint_no_url": "Vorlage kann nicht geteilt werden: Keine Quell-URL",
|
||||
"use_blueprint": "Automatisierung erstellen"
|
||||
}
|
||||
@@ -2115,7 +2124,7 @@
|
||||
"aborted": "Abgebrochen",
|
||||
"close": "Schließen",
|
||||
"could_not_load": "Der Konfigurationsfluss konnte nicht geladen werden",
|
||||
"created_config": "Erstellte Konfiguration für {name}.",
|
||||
"created_config": "Konfiguration für {name} erstellt.",
|
||||
"dismiss": "Dialog schließen",
|
||||
"error": "Fehler",
|
||||
"error_saving_area": "Fehler beim Speichern des Bereichs: {error}",
|
||||
@@ -2803,6 +2812,7 @@
|
||||
"server_version": "Serverversion"
|
||||
},
|
||||
"device_info": {
|
||||
"device_config": "Gerät konfigurieren",
|
||||
"node_ready": "Node Bereit",
|
||||
"node_status": "Node Status",
|
||||
"zwave_info": "Z-Wave Info"
|
||||
@@ -2815,6 +2825,15 @@
|
||||
"connecting": "Verbinden",
|
||||
"unknown": "Unbekannt"
|
||||
},
|
||||
"node_config": {
|
||||
"attribution": "Gerätekonfigurationsparameter und -beschreibungen werden von der {device_database} bereitgestellt",
|
||||
"battery_device_notice": "Batteriebetriebene Geräte müssen wach sein, um ihre Konfiguration zu aktualisieren. Anweisungen zum Aufwecken des Geräts findest du im Handbuch deines Geräts.",
|
||||
"error_device_not_found": "Gerät nicht gefunden",
|
||||
"header": "Z-Wave Gerätekonfiguration",
|
||||
"introduction": "Verwalten und Anpassen von gerätespezifischen Konfigurationsparametern (Knoten) für das ausgewählte Gerät",
|
||||
"parameter_is_read_only": "Dieser Parameter ist schreibgeschützt.",
|
||||
"zwave_js_device_database": "Z-Wave JS Gerätedatenbank"
|
||||
},
|
||||
"node_status": {
|
||||
"alive": "Lebendig",
|
||||
"asleep": "Schläft",
|
||||
@@ -3008,9 +3027,10 @@
|
||||
"go_back": "Zurück",
|
||||
"supervisor": {
|
||||
"ask": "Um Hilfe bitten",
|
||||
"observer": "Überprüfe den Observer",
|
||||
"reboot": "Versuche den Host neuzustarten",
|
||||
"system_health": "Überprüfe Systemzustand",
|
||||
"title": "Supervisor-Bedienfeld konnte nicht geladen werden.",
|
||||
"title": "Supervisor-Bedienfeld konnte nicht geladen werden!",
|
||||
"wait": "Wenn du gerade erst hochgefahren hast, dann stelle sicher dass du den Supervisor genug Zeit zum Starten gegeben hast."
|
||||
}
|
||||
},
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
"hassio": "hassio",
|
||||
"host": "κεντρικός υπολογιστής",
|
||||
"host_pid": "pid διακομιστή",
|
||||
"ingress": "είσοδος",
|
||||
"ingress": "ingress",
|
||||
"rating": "εκτίμηση",
|
||||
"stage": "στάδιο"
|
||||
},
|
||||
@@ -195,7 +195,7 @@
|
||||
"role": {
|
||||
"admin": "admin",
|
||||
"backup": "backup",
|
||||
"default": "default",
|
||||
"default": "Προεπιλογή",
|
||||
"homeassistant": "homeassistant",
|
||||
"manager": "manager"
|
||||
},
|
||||
@@ -303,7 +303,7 @@
|
||||
},
|
||||
"restart": {
|
||||
"text": "Είστε βέβαιοι ότι θέλετε να επανεκκινήσετε το {name};",
|
||||
"title": "Επανεκκινηση {name}"
|
||||
"title": "Επανεκκίνηση {name}"
|
||||
},
|
||||
"update": {
|
||||
"text": "Είστε βέβαιοι ότι θέλετε να ενημερώσετε το {name} στην έκδοση {version} ;",
|
||||
@@ -333,7 +333,7 @@
|
||||
"unsaved": "Έχετε μη αποθηκευμένες αλλαγές, αυτές θα χαθούν αν αλλάξετε καρτέλες, θέλετε να συνεχίσετε;",
|
||||
"warning": "Εάν αλλάζετε τις διευθύνσεις Wi-Fi, IP ή πύλης, ενδέχεται να χάσετε τη σύνδεση!",
|
||||
"wep": "WEP",
|
||||
"wpa": "wpa-psk"
|
||||
"wpa": "WPA-psk"
|
||||
},
|
||||
"registries": {
|
||||
"add_new_registry": "Προσθήκη νέου μητρώου",
|
||||
@@ -406,7 +406,7 @@
|
||||
},
|
||||
"store": {
|
||||
"missing_addons": "Λείπουν πρόσθετα; Ενεργοποίηση λειτουργίας για προχωρημένους στη σελίδα προφίλ χρήστη",
|
||||
"no_results_found": "Δεν βρέθηκαν αποτελέσματα στο {αποθετήριο}.",
|
||||
"no_results_found": "Δεν βρέθηκαν αποτελέσματα στο {repository}.",
|
||||
"registries": "Μητρώα",
|
||||
"repositories": "Αποθετήρια"
|
||||
},
|
||||
@@ -422,7 +422,7 @@
|
||||
"confirm_shutdown": "Είστε βέβαιοι ότι θέλετε να τερματίσετε τη λειτουργία του διακομιστή;",
|
||||
"deployment": "Ανάπτυξη",
|
||||
"docker_version": "Έκδοση Docker",
|
||||
"emmc_lifetime_used": "eMMC διάρκεια ζωής που χρησιμοποιήθηκε",
|
||||
"emmc_lifetime_used": "Χρήση eMMC στη διάρκεια ζωής της",
|
||||
"failed_to_get_hardware_list": "Αποτυχία λήψης λίστας υλικού",
|
||||
"failed_to_import_from_usb": "Αποτυχία εισαγωγής από USB",
|
||||
"failed_to_reboot": "Αποτυχία επανεκκίνησης του διακομιστή",
|
||||
@@ -448,31 +448,33 @@
|
||||
"beta_release_items": "Αυτό περιλαμβάνει εκδόσεις beta για:",
|
||||
"beta_warning": "Οι εκδόσεις beta προορίζονται για δοκιμαστές και πρώτους χρήστες και μπορούν να περιέχουν ασταθείς αλλαγές κώδικα",
|
||||
"channel": "Κανάλι",
|
||||
"cpu_usage": "Χρήση CPU Επόπτη",
|
||||
"failed_to_reload": "Απέτυχε η επαναφόρτωση του Επόπτη",
|
||||
"failed_to_set_option": "Αποτυχία ορισμού επιλογής Επόπτη",
|
||||
"failed_to_update": "Απέτυχε η ενημέρωση του Επόπτη",
|
||||
"cpu_usage": "Χρήση CPU του Supervisor",
|
||||
"failed_to_reload": "Απέτυχε η επαναφόρτωση του Supervisor",
|
||||
"failed_to_set_option": "Αποτυχία ορισμού επιλογής Supervisor",
|
||||
"failed_to_update": "Απέτυχε η ενημέρωση του Supervisor",
|
||||
"join_beta_action": "Εγγραφείτε στο κανάλι beta",
|
||||
"join_beta_description": "Λάβετε ενημερώσεις beta για Home Assistant (RCs), Επόπτη και κεντρικό υπολογιστές",
|
||||
"join_beta_description": "Λάβετε ενημερώσεις beta για Home Assistant (RC),Supervisor και του host",
|
||||
"leave_beta_action": "Αποχώρηση από το κανάλι beta",
|
||||
"leave_beta_description": "Λάβετε σταθερές ενημερώσεις για το Home Assistant, τον Επόπτη και τον κεντρικό υπολογιστή",
|
||||
"ram_usage": "Χρήση μνήμης RAM Επόπτη",
|
||||
"reload_supervisor": "Επαναφορτωση Εποπτη",
|
||||
"ram_usage": "Χρήση μνήμης RAM του Supervisor",
|
||||
"reload_supervisor": "Επαναφόρτωση Supervisor",
|
||||
"share_diagnostics": "Κοινή χρήση διαγνωστικών",
|
||||
"share_diagnostics_description": "Μοιραστείτε αναφορές σφαλμάτων και διαγνωστικές πληροφορίες.",
|
||||
"share_diagonstics_description": "Θα θέλατε να κοινοποιείτε αυτόματα αναφορές σφαλμάτων και διαγνωστικές πληροφορίες όταν ο επόπτης αντιμετωπίζει απρόσμενα σφάλματα; {line_break} Αυτό θα μας επιτρέψει να διορθώσουμε τα προβλήματα, οι πληροφορίες είναι προσβάσιμες μόνο από την ομάδα του Home Assistant Core και δεν θα κοινοποιηθούν σε άλλους. {line_break} Τα δεδομένα δεν περιλαμβάνουν ιδιωτικές / ευαίσθητες πληροφορίες και μπορείτε να το απενεργοποιήσετε στις ρυθμίσεις όποτε θέλετε.",
|
||||
"share_diagonstics_description": "Θα θέλατε να κοινοποιείτε αυτόματα αναφορές σφαλμάτων και διαγνωστικές πληροφορίες όταν ο Supervisor αντιμετωπίζει απρόσμενα σφάλματα; {line_break} Αυτό θα μας επιτρέψει να διορθώσουμε τα προβλήματα, οι πληροφορίες είναι προσβάσιμες μόνο από την ομάδα του Home Assistant Core και δεν θα κοινοποιηθούν σε άλλους. {line_break} Τα δεδομένα δεν περιλαμβάνουν ιδιωτικές / ευαίσθητες πληροφορίες και μπορείτε να το απενεργοποιήσετε στις ρυθμίσεις όποτε θέλετε.",
|
||||
"share_diagonstics_title": "Βοηθήστε στη βελτίωση του Home Assistant",
|
||||
"unhealthy_description": "Η εκτέλεση μιας ανθυγιεινής εγκατάστασης θα προκαλέσει προβλήματα. Ακολουθεί μια λίστα με ζητήματα που εντοπίστηκαν με την εγκατάστασή σας, κάντε κλικ στους συνδέσμους για να μάθετε πώς μπορείτε να επιλύσετε τα προβλήματα.",
|
||||
"unhealthy_reason": {
|
||||
"docker": "Το περιβάλλον Docker δεν λειτουργεί σωστά",
|
||||
"privileged": "Ο Επόπτης δεν έχει προνόμια",
|
||||
"setup": "Η εγκατάσταση του Επόπτη απέτυχε",
|
||||
"supervisor": "Ο επόπτης δεν μπόρεσε να ενημερωθεί"
|
||||
"supervisor": "Ο επόπτης δεν μπόρεσε να ενημερωθεί",
|
||||
"untrusted": "Εντοπίστηκε αναξιόπιστο περιεχόμενο"
|
||||
},
|
||||
"unhealthy_title": "Η εγκατάστασή σας είναι ανθυγιεινή",
|
||||
"unsupported_description": "Ακολουθεί μια λίστα με ζητήματα που εντοπίστηκαν με την εγκατάστασή σας, κάντε κλικ στους συνδέσμους για να μάθετε πώς μπορείτε να επιλύσετε τα προβλήματα.",
|
||||
"unsupported_reason": {
|
||||
"container": "Κοντέινερ που είναι γνωστά ότι προκαλούν προβλήματα",
|
||||
"content-trust": "Η επικύρωση αξιόπιστου περιεχόμενου είναι απενεργοποιημένη",
|
||||
"dbus": "DBUS",
|
||||
"docker_configuration": "Διαμόρφωση Docker",
|
||||
"docker_version": "Έκδοση Docker",
|
||||
@@ -785,7 +787,8 @@
|
||||
"was_unlocked": "ήταν ξεκλείδωτο",
|
||||
"was_unplugged": "ήταν αποσυνδεδεμένο",
|
||||
"was_unsafe": "δεν ήταν ασφαλές"
|
||||
}
|
||||
},
|
||||
"show_trace": "Εμφάνιση ίχνους"
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "Το πρόγραμμα περιήγησής σας δεν υποστηρίζει το στοιχείο ήχου.",
|
||||
@@ -1145,6 +1148,7 @@
|
||||
"buttons": {
|
||||
"add": "Προσθήκη συσκευών μέσω αυτής της συσκευής",
|
||||
"clusters": "Διαχείριση συμπλεγμάτων",
|
||||
"device_children": "Προβολή παιδιών",
|
||||
"reconfigure": "Ρυθμίστε Ξανά Τη Συσκευή",
|
||||
"remove": "Κατάργηση συσκευής",
|
||||
"view_in_visualization": "Προβολή στην Απεικόνιση",
|
||||
@@ -1153,6 +1157,7 @@
|
||||
"confirmations": {
|
||||
"remove": "Είστε βέβαιοι ότι θέλετε να καταργήσετε τη συσκευή;"
|
||||
},
|
||||
"device_children": "Παιδιά συσκευής Zigbee",
|
||||
"device_signature": "Υπογραφή συσκευής Zigbee",
|
||||
"last_seen": "Εθεάθη τελευταία",
|
||||
"manuf": "από τον {manufacturer}",
|
||||
@@ -1187,6 +1192,7 @@
|
||||
"key_missing": "Λείπει το απαιτούμενο κλειδί \"{key}\".",
|
||||
"key_not_expected": "Το κλειδί \"{key}\" δεν αναμένεται ή δεν υποστηρίζεται από το οπτικό πρόγραμμα επεξεργασίας.",
|
||||
"key_wrong_type": "Η παρεχόμενη τιμή για το \"{key}\" δεν υποστηρίζεται από το οπτικό πρόγραμμα επεξεργασίας. Υποστηρίζουμε ({type_correct}) αλλά λάβαμε ({type_wrong}).",
|
||||
"no_template_editor_support": "Τα πρότυπα δεν υποστηρίζονται στο οπτικό πρόγραμμα επεξεργασίας",
|
||||
"no_type_provided": "Δεν παρέχεται τύπος."
|
||||
}
|
||||
},
|
||||
@@ -1294,10 +1300,15 @@
|
||||
"device_id": {
|
||||
"action": "Ενέργεια",
|
||||
"extra_fields": {
|
||||
"brightness_pct": "Φωτεινότητα",
|
||||
"code": "Κώδικας",
|
||||
"flash": "Φλας",
|
||||
"humidity": "Υγρασία",
|
||||
"message": "Μήνυμα",
|
||||
"mode": "Λειτουργία",
|
||||
"position": "Θέση",
|
||||
"title": "Τίτλος"
|
||||
"title": "Τίτλος",
|
||||
"value": "Τιμή"
|
||||
},
|
||||
"label": "Συσκευή"
|
||||
},
|
||||
@@ -1342,7 +1353,7 @@
|
||||
"wait_template": "Πρότυπο Αναμονής"
|
||||
}
|
||||
},
|
||||
"unsupported_action": "Χωρίς υποστήριξη διεπαφής χρήστη για ενέργεια: {action}"
|
||||
"unsupported_action": "Χωρίς υποστήριξη οπτικού επεξεργαστή για ενέργεια: {action}"
|
||||
},
|
||||
"alias": "Όνομα",
|
||||
"blueprint": {
|
||||
@@ -1370,7 +1381,9 @@
|
||||
"extra_fields": {
|
||||
"above": "Πάνω από",
|
||||
"below": "Κάτω από",
|
||||
"for": "Διάρκεια"
|
||||
"for": "Διάρκεια",
|
||||
"hvac_mode": "Λειτουργία κλιματισμού",
|
||||
"preset_mode": "Προεπιλεγμένη λειτουργία"
|
||||
},
|
||||
"label": "Συσκευή"
|
||||
},
|
||||
@@ -1425,7 +1438,7 @@
|
||||
"zone": "Ζώνη"
|
||||
}
|
||||
},
|
||||
"unsupported_condition": "Χωρίς υποστήριξη διεπαφής χρήστη για συνθήκη: {condition}"
|
||||
"unsupported_condition": "Χωρίς υποστήριξη οπτικού επεξεργαστή για συνθήκη: {condition}"
|
||||
},
|
||||
"copy_to_clipboard": "Αντιγραφή στο Πρόχειρο",
|
||||
"default_name": "Νέος αυτοματισμός",
|
||||
@@ -1433,8 +1446,8 @@
|
||||
"label": "Περιγραφή",
|
||||
"placeholder": "Προαιρετική περιγραφή"
|
||||
},
|
||||
"edit_ui": "Επεξεργασία με περιβάλλον εργασίας χρήστη",
|
||||
"edit_yaml": "Επεξεργασία ως YAML",
|
||||
"edit_ui": "Επεξεργασία σε οπτικό επεξεργαστή",
|
||||
"edit_yaml": "Επεξεργασία σε YAML",
|
||||
"enable_disable": "Ενεργοποίηση / Απενεργοποίηση αυτοματοποίησης",
|
||||
"introduction": "Χρησιμοποιήστε αυτοματισμούς για να ζωντανέψετε το σπίτι σας.",
|
||||
"load_error_not_editable": "Μόνο οι αυτοματισμοί στο automations.yaml είναι επεξεργάσιμοι.",
|
||||
@@ -1555,7 +1568,7 @@
|
||||
"zone": "Ζώνη"
|
||||
}
|
||||
},
|
||||
"unsupported_platform": "Χωρίς υποστήριξη διεπαφής χρήστη για πλατφόρμα: {platform}"
|
||||
"unsupported_platform": "Χωρίς υποστήριξη οπτικού επεξεργαστή για πλατφόρμα: {platform}"
|
||||
},
|
||||
"unsaved_confirm": "Δεν αποθηκεύσατε τις αλλαγές. Είστε βέβαιοι ότι θέλετε να φύγετε;"
|
||||
},
|
||||
@@ -1563,6 +1576,8 @@
|
||||
"add_automation": "Προσθήκη αυτοματισμού",
|
||||
"delete_automation": "Διαγραφή αυτοματισμού",
|
||||
"delete_confirm": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτόν τον αυτοματισμό;",
|
||||
"dev_automation": "Αυτόματος εντοπισμός σφαλμάτων",
|
||||
"dev_only_editable": "Ο εντοπισμός σφαλμάτων γίνεται μόνο στους αυτοματισμούς που ορίζονται μέσα στο automations.yaml.",
|
||||
"duplicate": "Διπλότυπο",
|
||||
"duplicate_automation": "Διπλή αυτοματοποίηση",
|
||||
"edit_automation": "Επεξεργασία αυτοματισμού",
|
||||
@@ -1626,6 +1641,8 @@
|
||||
},
|
||||
"introduction": "Η διαμόρφωση του σχεδιαγράμματος σας επιτρέπει να εισάγετε και να διαχειρίζεστε τα σχεδιαγράμματά σας.",
|
||||
"learn_more": "Μάθετε περισσότερα σχετικά με τη χρήση σχεδιαγραμμάτων",
|
||||
"share_blueprint": "Κοινή χρήση σχεδίου",
|
||||
"share_blueprint_no_url": "Δεν είναι δυνατή η κοινή χρήση του σχεδίου: δεν υπάρχει διεύθυνση URL προέλευσης",
|
||||
"use_blueprint": "Δημιουργία αυτοματισμού"
|
||||
}
|
||||
},
|
||||
@@ -1650,12 +1667,12 @@
|
||||
"fetching_subscription": "Λήψη συνδρομής…",
|
||||
"google": {
|
||||
"config_documentation": "Τεκμηρίωση παραμετροποίησης",
|
||||
"devices_pin": "Κωδικός pin συσκευών ασφαλείας",
|
||||
"devices_pin": "PIN Συσκευών Ασφαλείας",
|
||||
"enable_ha_skill": "Ενεργοποιήστε την ικανότητα του Home Assistant για τον Google Assistant.",
|
||||
"enable_state_reporting": "Ενεργοποίηση αναφορών κατάστασης",
|
||||
"enter_pin_error": "Δεν είναι δυνατή η αποθήκευση του pin:",
|
||||
"enter_pin_error": "Δεν είναι δυνατή η αποθήκευση του PIN:",
|
||||
"enter_pin_hint": "Πληκτρολογήστε έναν κωδικό PIN για να χρησιμοποιήσετε συσκευές ασφαλείας",
|
||||
"enter_pin_info": "Παρακαλώ εισάγετε έναν κωδικό pin για να αλληλεπιδρούν με τις συσκευές ασφαλείας. Οι συσκευές ασφαλείας είναι πόρτες, γκαράζ, πόρτες και κλειδαριές. Θα σας ζητηθεί να πείτε/εισάγετε αυτό το pin κατά την αλληλεπίδραση με αυτές τις συσκευές μέσω του Google Assistant.",
|
||||
"enter_pin_info": "Παρακαλώ εισάγετε έναν κωδικό PIN για να αλληλεπιδράσετε με συσκευές ασφαλείας. Οι συσκευές ασφαλείας είναι πόρτες, πόρτες χώρων στάθμευσης και κλειδαριές. Θα σας ζητηθεί να πείτε/εισάγετε αυτό το PIN κατά την αλληλεπίδραση με τέτοιες συσκευές μέσω του Google Assistant.",
|
||||
"info": "Με την ενοποίηση του Google Assistant για το Home Assistant Cloud θα έχετε τη δυνατότητα να ελέγχετε όλες τις συσκευές του Home Assistant μέσω οποιασδήποτε συσκευής με ενεργοποιημένο το Google Assistant.",
|
||||
"info_state_reporting": "Αν ενεργοποιήσετε την αναφορά κατάστασης, το Home Assistant θα στείλει όλες τις αλλαγές κατάστασης των εκτεθειμένων οντοτήτων στην Google. Αυτό σας επιτρέπει να βλέπετε πάντα τις τελευταίες καταστάσεις στην εφαρμογή Google.",
|
||||
"manage_entities": "Διαχείριση Οντοτήτων",
|
||||
@@ -2370,7 +2387,7 @@
|
||||
"step": "Βήμα",
|
||||
"title": "Ανανέωση πληροφοριών κόμβου",
|
||||
"wakeup_header": "Οδηγίες αφύπνισης για",
|
||||
"wakeup_instructions_source": "Οι οδηγίες αφύπνισης προέρχονται από τη βάση δεδομένων συσκευών κοινότητας OpenZWave."
|
||||
"wakeup_instructions_source": "Οι οδηγίες αφύπνισης προέρχονται από τη βάση δεδομένων συσκευών της κοινότητας OpenZWave."
|
||||
},
|
||||
"select_instance": {
|
||||
"header": "Επιλέξτε ένα στιγμιότυπο OpenZWave",
|
||||
@@ -2646,7 +2663,7 @@
|
||||
"add_device": "Προσθήκη συσκευής",
|
||||
"add_device_page": {
|
||||
"discovered_text": "Οι συσκευές θα εμφανιστούν εδώ μόλις ανακαλυφθούν.",
|
||||
"no_devices_found": "Δεν βρέθηκαν συσκευές, βεβαιωθείτε ότι βρίσκονται σε λειτουργία ζευγαρώματος και κρατήστε τις ξύπνιες ενώ η ανακάλυψη εκτελείται.",
|
||||
"no_devices_found": "Δεν βρέθηκαν συσκευές, βεβαιωθείτε ότι βρίσκονται σε λειτουργία σύζευξης και κρατήστε τις ξύπνιες ενώ η αναζήτηση εκτελείται.",
|
||||
"pairing_mode": "Βεβαιωθείτε ότι οι συσκευές σας είναι σε λειτουργία σύζευξης. Ελέγξτε τις οδηγίες της συσκευής σας για το πώς να το κάνετε αυτό.",
|
||||
"search_again": "Αναζήτηση ξανά",
|
||||
"spinner": "Αναζήτηση συσκευών ZHA Zigbee…"
|
||||
@@ -2722,6 +2739,7 @@
|
||||
"caption": "Δίκτυο"
|
||||
},
|
||||
"visualization": {
|
||||
"auto_zoom": "Αυτόματο ζουμ",
|
||||
"caption": "Απεικόνιση",
|
||||
"header": "Απεικόνιση δικτύου",
|
||||
"highlight_label": "Επισήμανση συσκευών",
|
||||
@@ -2834,7 +2852,7 @@
|
||||
"instance": "Περίπτωση",
|
||||
"unknown": "Άγνωστο",
|
||||
"value": "Τιμή",
|
||||
"wakeup_interval": "Διάστημα αφύπνισης"
|
||||
"wakeup_interval": "Διάστημα μεταξύ Aφυπνίσεων"
|
||||
},
|
||||
"description": "Διαχειριστείτε το δίκτυο Z-Wave",
|
||||
"learn_more": "Μάθετε περισσότερα σχετικά με το Z-wave",
|
||||
@@ -2863,7 +2881,7 @@
|
||||
"header": "Επιλογές Παραμετροποίησης κόμβου",
|
||||
"seconds": "Δευτερόλεπτα",
|
||||
"set_config_parameter": "Ορίστε την παράμετρο διαμόρφωσης",
|
||||
"set_wakeup": "Ορισμός διαστήματος αφύπνισης",
|
||||
"set_wakeup": "Όρισε διάστημα μεταξύ Αφυπνίσεων",
|
||||
"true": "Αληθής"
|
||||
},
|
||||
"node_management": {
|
||||
@@ -2998,6 +3016,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"go_back": "Πίσω",
|
||||
"supervisor": {
|
||||
"ask": "Ζητήσετε βοήθεια",
|
||||
"observer": "Έλεγχος του Παρατηρητή",
|
||||
"reboot": "Δοκιμάστε μια επανεκκίνηση του διακομιστή",
|
||||
"system_health": "Έλεγχος υγείας συστήματος",
|
||||
"title": "Δεν ήταν δυνατή η φόρτωση του πίνακα Supervisor!",
|
||||
"wait": "Εάν μόλις ξεκινήσατε, βεβαιωθείτε ότι έχετε δώσει στον Supervisor αρκετό χρόνο για να ξεκινήσει."
|
||||
}
|
||||
},
|
||||
"history": {
|
||||
"ranges": {
|
||||
"last_week": "Προηγούμενη εβδομάδα",
|
||||
|
||||
@@ -467,12 +467,14 @@
|
||||
"docker": "The Docker environment is not working properly",
|
||||
"privileged": "Supervisor is not privileged",
|
||||
"setup": "Setup of the Supervisor failed",
|
||||
"supervisor": "Supervisor was not able to update"
|
||||
"supervisor": "Supervisor was not able to update",
|
||||
"untrusted": "Detected untrusted content"
|
||||
},
|
||||
"unhealthy_title": "Your installation is unhealthy",
|
||||
"unsupported_description": "Below is a list of issues found with your installation, click on the links to learn how you can resolve the issues.",
|
||||
"unsupported_reason": {
|
||||
"container": "Containers known to cause issues",
|
||||
"content-trust": "Content-trust validation is disabled",
|
||||
"dbus": "DBUS",
|
||||
"docker_configuration": "Docker Configuration",
|
||||
"docker_version": "Docker Version",
|
||||
@@ -785,7 +787,8 @@
|
||||
"was_unlocked": "was unlocked",
|
||||
"was_unplugged": "was unplugged",
|
||||
"was_unsafe": "was unsafe"
|
||||
}
|
||||
},
|
||||
"show_trace": "Show trace"
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "Your browser does not support the audio element.",
|
||||
@@ -1297,10 +1300,15 @@
|
||||
"device_id": {
|
||||
"action": "Action",
|
||||
"extra_fields": {
|
||||
"brightness_pct": "Brightness",
|
||||
"code": "Code",
|
||||
"flash": "Flash",
|
||||
"humidity": "Humidity",
|
||||
"message": "Message",
|
||||
"mode": "Mode",
|
||||
"position": "Position",
|
||||
"title": "Title"
|
||||
"title": "Title",
|
||||
"value": "Value"
|
||||
},
|
||||
"label": "Device"
|
||||
},
|
||||
@@ -1373,7 +1381,9 @@
|
||||
"extra_fields": {
|
||||
"above": "Above",
|
||||
"below": "Below",
|
||||
"for": "Duration"
|
||||
"for": "Duration",
|
||||
"hvac_mode": "HVAC mode",
|
||||
"preset_mode": "Preset mode"
|
||||
},
|
||||
"label": "Device"
|
||||
},
|
||||
@@ -1566,6 +1576,8 @@
|
||||
"add_automation": "Add automation",
|
||||
"delete_automation": "Delete automation",
|
||||
"delete_confirm": "Are you sure you want to delete this automation?",
|
||||
"dev_automation": "Debug automation",
|
||||
"dev_only_editable": "Only automations defined in automations.yaml are debuggable.",
|
||||
"duplicate": "Duplicate",
|
||||
"duplicate_automation": "Duplicate automation",
|
||||
"edit_automation": "Edit automation",
|
||||
@@ -2803,6 +2815,7 @@
|
||||
"server_version": "Server Version"
|
||||
},
|
||||
"device_info": {
|
||||
"device_config": "Configure Device",
|
||||
"node_ready": "Node Ready",
|
||||
"node_status": "Node Status",
|
||||
"zwave_info": "Z-Wave Info"
|
||||
@@ -2815,6 +2828,15 @@
|
||||
"connecting": "Connecting",
|
||||
"unknown": "Unknown"
|
||||
},
|
||||
"node_config": {
|
||||
"attribution": "Device configuration parameters and descriptions are provided by the {device_database}",
|
||||
"battery_device_notice": "Battery devices must be awake to update their config. Please refer to your device manual for instructions on how to wake the device.",
|
||||
"error_device_not_found": "Device not found",
|
||||
"header": "Z-Wave Device Configuration",
|
||||
"introduction": "Manage and adjust device (node) specific configuration parameters for the selected device",
|
||||
"parameter_is_read_only": "This parameter is read-only.",
|
||||
"zwave_js_device_database": "Z-Wave JS Device Database"
|
||||
},
|
||||
"node_status": {
|
||||
"alive": "Alive",
|
||||
"asleep": "Asleep",
|
||||
|
||||
@@ -381,7 +381,7 @@
|
||||
"available_snapshots": "Instantáneas disponibles",
|
||||
"could_not_create": "No se pudo crear la instantánea",
|
||||
"create": "Crear",
|
||||
"create_blocked_not_running": "No es posible crear una instantánea en este momento porque el sistema está {state} .",
|
||||
"create_blocked_not_running": "No es posible crear una instantánea en este momento porque el sistema está {state}.",
|
||||
"create_snapshot": "Crear instantánea",
|
||||
"description": "Las instantáneas le permiten realizar copias de seguridad y restaurar fácilmente todos los datos de su instancia de Home Assistant.",
|
||||
"enter_password": "Por favor ingrese una contraseña.",
|
||||
@@ -460,19 +460,21 @@
|
||||
"reload_supervisor": "Recargar Supervisor",
|
||||
"share_diagnostics": "Compartir diagnósticos",
|
||||
"share_diagnostics_description": "Compartir informes de fallos e información de diagnóstico.",
|
||||
"share_diagonstics_description": "¿Le gustaría compartir automáticamente informes de fallas e información de diagnóstico cuando el supervisor encuentra errores inesperados? {line_break} Esto nos permitirá solucionar los problemas, la información solo es accesible para el equipo principal de Home Assistant y no se compartirá con otros. {line_break} Los datos no incluyen ninguna información privada / confidencial y puede desactivar esto en la configuración en cualquier momento que desee.",
|
||||
"share_diagonstics_description": "¿Le gustaría compartir automáticamente informes de fallos e información de diagnóstico cuando Supervisor encuentra errores inesperados?; Esto nos permitirá solucionar los problemas.{line_break}La información solo es accesible para el equipo de Home Assistant Core y no se compartirá con otros. {line_break} Los datos no incluyen ninguna información privada o confidencial. Puede desactivar esto en la configuración cuando lo desee.",
|
||||
"share_diagonstics_title": "Ayude a mejorar Home Assistant",
|
||||
"unhealthy_description": "Ejecutar una instalación en mal estado causará problemas. A continuación se muestra una lista de problemas encontrados con su instalación, haga clic en los enlaces para saber cómo puede resolverlos.",
|
||||
"unhealthy_reason": {
|
||||
"docker": "El entorno Docker no funciona correctamente",
|
||||
"privileged": "Supervisor no tiene privilegios",
|
||||
"setup": "Falló la configuración de Supervisor",
|
||||
"supervisor": "No se pudo actualizar Supervisor"
|
||||
"supervisor": "No se pudo actualizar Supervisor",
|
||||
"untrusted": "Se ha detectado contenido no confiable"
|
||||
},
|
||||
"unhealthy_title": "La instalación tiene problemas",
|
||||
"unsupported_description": "A continuación se muestra una lista de problemas encontrados con su instalación, haga clic en los enlaces para saber cómo puede resolverlos.",
|
||||
"unsupported_reason": {
|
||||
"container": "Contenedores conocidos por causar problemas",
|
||||
"content-trust": "La validación de contenido de confianza está desactivada",
|
||||
"dbus": "DBUS",
|
||||
"docker_configuration": "Configuración de Docker",
|
||||
"docker_version": "Versión de Docker",
|
||||
@@ -785,7 +787,8 @@
|
||||
"was_unlocked": "fue desbloqueado",
|
||||
"was_unplugged": "fue desenchufado",
|
||||
"was_unsafe": "estaba inseguro"
|
||||
}
|
||||
},
|
||||
"show_trace": "Mostrar registro"
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "Su navegador no soporta el elemento de audio.",
|
||||
@@ -1297,10 +1300,15 @@
|
||||
"device_id": {
|
||||
"action": "Acción",
|
||||
"extra_fields": {
|
||||
"brightness_pct": "Brillo",
|
||||
"code": "Código",
|
||||
"flash": "Flash",
|
||||
"humidity": "Humedad",
|
||||
"message": "Mensaje",
|
||||
"mode": "Modo",
|
||||
"position": "Posición",
|
||||
"title": "Título"
|
||||
"title": "Título",
|
||||
"value": "Valor"
|
||||
},
|
||||
"label": "Dispositivo"
|
||||
},
|
||||
@@ -1373,7 +1381,9 @@
|
||||
"extra_fields": {
|
||||
"above": "Por encima de",
|
||||
"below": "Por debajo de",
|
||||
"for": "Duración"
|
||||
"for": "Duración",
|
||||
"hvac_mode": "Modo HVAC",
|
||||
"preset_mode": "Modo preestablecido"
|
||||
},
|
||||
"label": "Dispositivo"
|
||||
},
|
||||
@@ -1566,6 +1576,8 @@
|
||||
"add_automation": "Agregar automatización",
|
||||
"delete_automation": "Eliminar automatización",
|
||||
"delete_confirm": "¿Está seguro de que desea eliminar esta automatización?",
|
||||
"dev_automation": "Depurar automatización",
|
||||
"dev_only_editable": "Solo las automatizaciones definidas en automations.yaml son depurables.",
|
||||
"duplicate": "Duplicar",
|
||||
"duplicate_automation": "Duplicar automatización",
|
||||
"edit_automation": "Editar automatización",
|
||||
@@ -1655,12 +1667,12 @@
|
||||
"fetching_subscription": "Obteniendo suscripción ...",
|
||||
"google": {
|
||||
"config_documentation": "Documentación de configuración",
|
||||
"devices_pin": "Pin de dispositivos de seguridad",
|
||||
"devices_pin": "PIN de dispositivos de seguridad",
|
||||
"enable_ha_skill": "Activar la habilidad Home Assistant para Google Assistant",
|
||||
"enable_state_reporting": "Habilitar informes de estado",
|
||||
"enter_pin_error": "No se puede guardar el pin:",
|
||||
"enter_pin_error": "No se puede guardar el PIN:",
|
||||
"enter_pin_hint": "Ingrese un PIN para usar dispositivos de seguridad",
|
||||
"enter_pin_info": "Ingrese un pin para interactuar con los dispositivos de seguridad. Los dispositivos de seguridad son puertas, puertas de garaje y cerraduras. Se le pedirá que diga/ingrese este pin cuando interactúe con dichos dispositivos a través del Asistente de Google.",
|
||||
"enter_pin_info": "Ingrese un PIN para interactuar con los dispositivos de seguridad. Los dispositivos de seguridad son puertas, puertas de garaje y cerraduras. Se le pedirá que diga/ingrese este PIN cuando interactúe con dichos dispositivos a través del Asistente de Google.",
|
||||
"info": "Con la integración de Google Assistant para Home Assistant Cloud, podrá controlar todos sus dispositivos Home Assistant a través de cualquier dispositivo habilitado para Google Assistant.",
|
||||
"info_state_reporting": "Si habilita los informes estatales, Home Assistant enviará todos los cambios de estado de las entidades expuestas a Google. Esto le permite ver siempre los últimos estados en la aplicación Google.",
|
||||
"manage_entities": "Administrar entidades",
|
||||
@@ -2803,6 +2815,7 @@
|
||||
"server_version": "Versión del servidor"
|
||||
},
|
||||
"device_info": {
|
||||
"device_config": "Configurar dispositivo",
|
||||
"node_ready": "Nodo listo",
|
||||
"node_status": "Estado del nodo",
|
||||
"zwave_info": "Información de Z-Wave"
|
||||
@@ -2815,6 +2828,15 @@
|
||||
"connecting": "Conectando",
|
||||
"unknown": "Desconocido"
|
||||
},
|
||||
"node_config": {
|
||||
"attribution": "Los parámetros de configuración de los dispositivos y sus descripciones son provistos por la {device_database}",
|
||||
"battery_device_notice": "Los dispositivos de batería deben estar activos para actualizar su configuración. Consulte el manual de su dispositivo para obtener instrucciones sobre cómo reactivarlo.",
|
||||
"error_device_not_found": "Dispositivo no encontrado",
|
||||
"header": "Configuración del dispositivo Z-Wave",
|
||||
"introduction": "Gestionar y ajustar los parámetros de configuración específicos del dispositivo (nodo) para el dispositivo seleccionado",
|
||||
"parameter_is_read_only": "Este parámetro es de solo lectura.",
|
||||
"zwave_js_device_database": "Base de datos de dispositivos Z-Wave JS"
|
||||
},
|
||||
"node_status": {
|
||||
"alive": "Vivo",
|
||||
"asleep": "Dormido",
|
||||
@@ -3009,7 +3031,7 @@
|
||||
"supervisor": {
|
||||
"ask": "Solicitar ayuda",
|
||||
"observer": "Verificar Observer",
|
||||
"reboot": "Intente reiniciar el host",
|
||||
"reboot": "Intentar reiniciar el host",
|
||||
"system_health": "Verificar estado del sistema",
|
||||
"title": "No se pudo cargar el panel de Supervisor",
|
||||
"wait": "Si recién inicia, asegúrese de darle tiempo suficiente a Supervisor para que se inicie."
|
||||
|
||||
@@ -467,12 +467,14 @@
|
||||
"docker": "El entorno de Docker no funciona correctamente",
|
||||
"privileged": "El supervisor no es privilegiado",
|
||||
"setup": "La configuración del supervisor falló",
|
||||
"supervisor": "El supervisor no se pudo actualizar"
|
||||
"supervisor": "El supervisor no se pudo actualizar",
|
||||
"untrusted": "Contenido no confiable detectado"
|
||||
},
|
||||
"unhealthy_title": "Tu instalación está en mal estado",
|
||||
"unsupported_description": "A continuación se muestra una lista de problemas encontrados con tu instalación, haz clic en los enlaces para saber cómo puedes resolver los problemas.",
|
||||
"unsupported_reason": {
|
||||
"container": "Contenedores conocidos por causar problemas",
|
||||
"content-trust": "La validación de contenido de confianza está deshabilitada",
|
||||
"dbus": "DBUS",
|
||||
"docker_configuration": "Configuración de Docker",
|
||||
"docker_version": "Versión de Docker",
|
||||
@@ -785,7 +787,8 @@
|
||||
"was_unlocked": "se desbloqueó",
|
||||
"was_unplugged": "se desenchufó",
|
||||
"was_unsafe": "era inseguro"
|
||||
}
|
||||
},
|
||||
"show_trace": "Mostrar traza"
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "Tu navegador no es compatible con el elemento de audio.",
|
||||
@@ -1297,10 +1300,15 @@
|
||||
"device_id": {
|
||||
"action": "Acción",
|
||||
"extra_fields": {
|
||||
"brightness_pct": "Brillo",
|
||||
"code": "Código",
|
||||
"flash": "Destello",
|
||||
"humidity": "Humedad",
|
||||
"message": "Mensaje",
|
||||
"mode": "Modo",
|
||||
"position": "Posición",
|
||||
"title": "Título"
|
||||
"title": "Título",
|
||||
"value": "Valor"
|
||||
},
|
||||
"label": "Dispositivo"
|
||||
},
|
||||
@@ -1373,7 +1381,9 @@
|
||||
"extra_fields": {
|
||||
"above": "Por encima de",
|
||||
"below": "Por debajo de",
|
||||
"for": "Duración"
|
||||
"for": "Duración",
|
||||
"hvac_mode": "Modo del sistema de climatización",
|
||||
"preset_mode": "Modo preestablecido"
|
||||
},
|
||||
"label": "Dispositivo"
|
||||
},
|
||||
@@ -1566,6 +1576,8 @@
|
||||
"add_automation": "Añadir automatización",
|
||||
"delete_automation": "Eliminar la automatización",
|
||||
"delete_confirm": "¿Estás seguro de que quieres eliminar esta automatización?",
|
||||
"dev_automation": "Depurar automatización",
|
||||
"dev_only_editable": "Solo las automatizaciones definidas en automations.yaml se pueden depurar",
|
||||
"duplicate": "Duplicar",
|
||||
"duplicate_automation": "Duplicar la automatización",
|
||||
"edit_automation": "Editar automatización",
|
||||
@@ -2803,6 +2815,7 @@
|
||||
"server_version": "Versión del servidor"
|
||||
},
|
||||
"device_info": {
|
||||
"device_config": "Configurar dispositivo",
|
||||
"node_ready": "Nodo listo",
|
||||
"node_status": "Estado del Nodo",
|
||||
"zwave_info": "Información de Z-Wave"
|
||||
@@ -2815,6 +2828,15 @@
|
||||
"connecting": "Conectando",
|
||||
"unknown": "Desconocido"
|
||||
},
|
||||
"node_config": {
|
||||
"attribution": "{device_database} proporciona los parámetros de configuración del dispositivo y las descripciones.",
|
||||
"battery_device_notice": "Los dispositivos de batería deben estar activos para actualizar su configuración. Consulta el manual de tu dispositivo para obtener instrucciones sobre cómo reactivar el dispositivo.",
|
||||
"error_device_not_found": "Dispositivo no encontrado",
|
||||
"header": "Configuración del dispositivo Z-Wave",
|
||||
"introduction": "Administra y ajusta los parámetros de configuración específicos del dispositivo (nodo) para el dispositivo seleccionado",
|
||||
"parameter_is_read_only": "Este parámetro es de solo lectura.",
|
||||
"zwave_js_device_database": "Base de datos de dispositivos Z-Wave JS"
|
||||
},
|
||||
"node_status": {
|
||||
"alive": "Vivo",
|
||||
"asleep": "Dormido",
|
||||
|
||||
@@ -467,12 +467,14 @@
|
||||
"docker": "Dockeri keskkond ei tööta korralikult",
|
||||
"privileged": "Supervisoril pole piisavalt õigusi",
|
||||
"setup": "Supervisori seadistamine nurjus",
|
||||
"supervisor": "Supervisorit ei saanud värskendada"
|
||||
"supervisor": "Supervisorit ei saanud värskendada",
|
||||
"untrusted": "Tuvastati ebausaldusväärne sisu"
|
||||
},
|
||||
"unhealthy_title": "Paigaldus on vigane",
|
||||
"unsupported_description": "Allpool on loend paigaldusel leitud probleemidest. Klõpsa linkidel, et saada teada, kuidas saad probleeme lahendada.",
|
||||
"unsupported_reason": {
|
||||
"container": "Konteinerid mis teadaolevalt põhjustavad probleeme",
|
||||
"content-trust": "Sisu usaldatavuse kontroll on keelatud",
|
||||
"dbus": "DBUS",
|
||||
"docker_configuration": "Dockeri sätted",
|
||||
"docker_version": "Dockeri versioon",
|
||||
@@ -785,7 +787,8 @@
|
||||
"was_unlocked": "avanes",
|
||||
"was_unplugged": "eemaldati",
|
||||
"was_unsafe": "oli turvamata"
|
||||
}
|
||||
},
|
||||
"show_trace": "Kuva täitmise samme"
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "Teie brauser ei toeta helielementi.",
|
||||
@@ -1297,10 +1300,15 @@
|
||||
"device_id": {
|
||||
"action": "Tegevus",
|
||||
"extra_fields": {
|
||||
"brightness_pct": "Heledus",
|
||||
"code": "Kood",
|
||||
"flash": "Kiir",
|
||||
"humidity": "Niiskus",
|
||||
"message": "Sõnum",
|
||||
"mode": "Režiim",
|
||||
"position": "Asend",
|
||||
"title": "Nimetus"
|
||||
"title": "Nimetus",
|
||||
"value": "Väärtus"
|
||||
},
|
||||
"label": "Seade"
|
||||
},
|
||||
@@ -1373,7 +1381,9 @@
|
||||
"extra_fields": {
|
||||
"above": "Üle",
|
||||
"below": "Alla",
|
||||
"for": "Kestus"
|
||||
"for": "Kestus",
|
||||
"hvac_mode": "Soojuspumba režiim",
|
||||
"preset_mode": "Eelseadistatud režiim"
|
||||
},
|
||||
"label": "Seade"
|
||||
},
|
||||
@@ -1566,6 +1576,8 @@
|
||||
"add_automation": "Lisa automatiseering",
|
||||
"delete_automation": "Kustuta automatiseering",
|
||||
"delete_confirm": "Oled kindel, et soovid selle automatiseeringu kustutada?",
|
||||
"dev_automation": "Automatiseeringu silumine",
|
||||
"dev_only_editable": "Siluda saab ainult kirjes automations.yaml olevaid automatiseeringuid.",
|
||||
"duplicate": "Paljunda",
|
||||
"duplicate_automation": "Paljunda automatiseering",
|
||||
"edit_automation": "Muuda automatiseeringut",
|
||||
@@ -2803,6 +2815,7 @@
|
||||
"server_version": "Serveri versioon"
|
||||
},
|
||||
"device_info": {
|
||||
"device_config": "Seadme häälestamine",
|
||||
"node_ready": "Sõlm on aktiivne",
|
||||
"node_status": "Sõlme olek",
|
||||
"zwave_info": "Z-Wave teave"
|
||||
@@ -2815,6 +2828,15 @@
|
||||
"connecting": "Ühendun",
|
||||
"unknown": "Tundmatu"
|
||||
},
|
||||
"node_config": {
|
||||
"attribution": "Seadme parameetrid ja kirjeldused on esitatud {device_database}",
|
||||
"battery_device_notice": "Patareitoitel seadmed peavad olema ärkvel, et värskendada oma sätteid. Seadme äratamiseks vaata oma seadme kasutusjuhendit.",
|
||||
"error_device_not_found": "Seadet ei leitud",
|
||||
"header": "Z-Wave seadme häälestamine",
|
||||
"introduction": "Valitud seadme (sõlme) spetsiifiliste seadistuste haldamine ja muutmine",
|
||||
"parameter_is_read_only": "See parameeter on kirjutuskaitstud.",
|
||||
"zwave_js_device_database": "Z-Wave JS seadmete andmebaas"
|
||||
},
|
||||
"node_status": {
|
||||
"alive": "Aktiivne",
|
||||
"asleep": "Ootel",
|
||||
|
||||
+353
-55
@@ -10,7 +10,7 @@
|
||||
"groups": {
|
||||
"owner": "Omistaja",
|
||||
"system-admin": "Järjestelmänvalvojat",
|
||||
"system-read-only": "Pelkästään luku -käyttäjät",
|
||||
"system-read-only": "Vain luku -käyttäjät",
|
||||
"system-users": "Käyttäjät"
|
||||
},
|
||||
"panel": {
|
||||
@@ -44,9 +44,9 @@
|
||||
"preset_mode": {
|
||||
"activity": "Toiminta",
|
||||
"away": "Poissa",
|
||||
"boost": "Boost",
|
||||
"comfort": "Comfort",
|
||||
"eco": "Ekonominen",
|
||||
"boost": "Tehostus",
|
||||
"comfort": "Mukavuus",
|
||||
"eco": "Taloudellinen",
|
||||
"home": "Kotona",
|
||||
"none": "Asettamatta",
|
||||
"sleep": "Nukkumassa"
|
||||
@@ -54,12 +54,12 @@
|
||||
},
|
||||
"humidifier": {
|
||||
"mode": {
|
||||
"auto": "Automaatilla",
|
||||
"auto": "Automaattinen",
|
||||
"away": "Poissa",
|
||||
"baby": "Vauva",
|
||||
"boost": "Tehostus",
|
||||
"comfort": "Mukavuus",
|
||||
"eco": "Ekonominen",
|
||||
"eco": "Taloudellinen",
|
||||
"home": "Koti",
|
||||
"normal": "Normaali",
|
||||
"sleep": "Nukkumassa"
|
||||
@@ -73,14 +73,14 @@
|
||||
"armed_custom_bypass": "Viritetty",
|
||||
"armed_home": "Viritetty",
|
||||
"armed_night": "Viritetty",
|
||||
"arming": "Viritys kesken",
|
||||
"arming": "Virittyy",
|
||||
"disarmed": "Ei viritetty",
|
||||
"disarming": "Ei viritetty",
|
||||
"pending": "Odot",
|
||||
"triggered": "Vakaa"
|
||||
"triggered": "Lauennut"
|
||||
},
|
||||
"default": {
|
||||
"entity_not_found": "Olemusta ei löydetty",
|
||||
"entity_not_found": "Kohdetta ei löydy",
|
||||
"error": "Virhe",
|
||||
"unavailable": "Ei saat",
|
||||
"unknown": "Tunt"
|
||||
@@ -105,33 +105,143 @@
|
||||
"supervisor": {
|
||||
"addon": {
|
||||
"configuration": {
|
||||
"audio": {
|
||||
"default": "Oletus",
|
||||
"header": "Ääni",
|
||||
"input": "Tulo",
|
||||
"output": "Lähtö"
|
||||
},
|
||||
"network": {
|
||||
"container": "Kontti",
|
||||
"header": "Verkko"
|
||||
"header": "Verkko",
|
||||
"host": "Isäntä"
|
||||
},
|
||||
"no_configuration": "Tämä lisäosa ei tarjoa asetuksia, joita voisit säätää...",
|
||||
"options": {
|
||||
"edit_in_ui": "Muokkaa käyttöliittymässä",
|
||||
"edit_in_yaml": "Muokkaa YAML-tiedostona",
|
||||
"header": "Asetukset",
|
||||
"invalid_yaml": "Virheellinen YAML"
|
||||
}
|
||||
},
|
||||
"dashboard": {
|
||||
"action_error": {
|
||||
"install": "Lisäosan asennus epäonnistui",
|
||||
"restart": "Lisäosan uudelleenkäynnistys epäonnistui",
|
||||
"start": "Lisäosan käynnistäminen epäonnistui",
|
||||
"start_invalid_config": "Siirry asetuksiin",
|
||||
"stop": "Lisäosan pysäyttäminen epäonnistui",
|
||||
"uninstall": "Lisäosan poistaminen epäonnistui"
|
||||
},
|
||||
"capability": {
|
||||
"apparmor": {
|
||||
"description": "AppArmor ('Application Armor') on Linux-ytimen suojausmoduuli, joka rajoittaa lisäosien ominaisuuksia, kuten verkkoyhteyksiä, raakojen pistokkeiden käyttöä ja oikeutta lukea, kirjoittaa tai suorittaa tiettyjä tiedostoja. \n\nLisäosien tekijät voivat toimittaa lisäosalle optimoidut suojausprofiilinsa tai pyytää poistamaan AppArmorin käytöstä. AppArmorin käytöstä poistaminen lisää turvallisuusriskejä ja laskee siten lisäosan turvallisuuspisteitä.",
|
||||
"title": "AppArmor"
|
||||
},
|
||||
"auth_api": {
|
||||
"description": "Lisäosa voi todentaa käyttäjät Home Assistantin kautta, mikä antaa käyttäjien kirjautua lisäosien sisältämiin sovelluksiin Home Assistant -käytttäjätunnuksillaan ja -salasanoillaan. Tämä merkki osoittaa, pyytääkö lisäosan tekijä tätä toimintoa.",
|
||||
"title": "Home Assistant -todennus"
|
||||
},
|
||||
"docker_api": {
|
||||
"description": "Lisäosan tekijä on pyytänyt lisäosalle hallintaoikeuksia järjestelmäsi Docker-palveluun. Tämä tila antaa lisäosalle täyden pääsyn ja hallinnan koko Home Assistant -järjestelmääsi, mikä lisää tietoturvariskejä ja voi vahingoittaa järjestelmääsi väärinkäytettynä. Siksi tämä ominaisuus laskee lisäosan turvallisuuspisteitä.\n\nTätä käyttöoikeustasoa ei myönnetä automaattisesti, ja sinun on vahvistettava se. Tätä varten sinun on poistettava lisäosan suojaustila käytöstä manuaalisesti. Poista suojaustila käytöstä vain, jos tunnet, tarvitset JA luotat tämän lisäosan lähteeseen.",
|
||||
"title": "Täysi Docker-pääsy"
|
||||
},
|
||||
"full_access": {
|
||||
"description": "Lisäosan tekijän pyynnöstä lisäosalle annetaan täysi pääsy järjestelmäsi laitteistoon. Käyttöoikeudet vastaavat Dockerin privileged-tilaa. Koska tämä luo mahdollisia tietoturvariskejä, tämä ominaisuus laskee lisäosan turvallisuuspisteitä.\n\nTätä käyttöoikeustasoa ei myönnetä automaattisesti, ja sinun on vahvistettava se. Tätä varten sinun on poistettava lisäosan suojaustila käytöstä manuaalisesti. Poista suojaustila käytöstä vain, jos tunnet, tarvitset JA luotat tämän lisäosan lähteeseen.",
|
||||
"title": "Täysi laitteistopääsy"
|
||||
},
|
||||
"hassio_api": {
|
||||
"description": "Lisäosan tekijän pyynnöstä lisäosalle annettiin pääsy Supervisorin APIin. Oletusarvoisesti lisäosa voi käyttää järjestelmäsi yleisiä versiotietoja. Kun lisäosa pyytää 'manager'- tai 'admin'-tasoista pääsyä APIin, se voi hallita useita Home Assistant -järjestelmäsi osia. Tämä merkki ilmaisee tätä käyttöoikeutta ja laskee lisäosan turvallisuuspisteitä.",
|
||||
"title": "Pääsy Supervisorin APIin"
|
||||
},
|
||||
"homeassistant_api": {
|
||||
"description": "Tällä lisäosalla on suora pääsy Home Assistant -esiintymääsi Home Assistantin APIn kautta. Tämä tila huolehtii myös todennuksesta, mikä mahdollistaa lisäosan vuorovaikutuksen Home Assistantin kanssa ilman erillisiä todennustunnuksia.",
|
||||
"title": "Pääsy Home Assistantin APIin"
|
||||
},
|
||||
"host_network": {
|
||||
"description": "Yleensä lisäosat toimivat omassa eristetyssä verkkokerroksessaan, mikä estää niitä pääsemästä isäntäkäyttöjärjestelmän verkkoon. Joissakin tapauksissa eristys voi rajoittaa lisäosien tarjoamia palveluita, ja siksi lisäosan tekijä voi poistaa eristyksen, mikä antaa lisäosalle täyden pääsyn isäntäkoneen verkkotoimintoihin. Tämä antaa lisäosalle laajemmat verkkotoiminnot mutta heikentää turvallisuutta, minkä vuoksi tämän ominaisuuden käyttö laskee lisäosan turvallisuuspisteitä.",
|
||||
"title": "Isännän verkko"
|
||||
},
|
||||
"host_pid": {
|
||||
"description": "Yleensä lisäosan suorittamat prosessit eristetään kaikista muista järjestelmäprosesseista. Lisäosan tekijä on pyytänyt lisäosalle pääsyä isäntäjärjestelmän prosesseihin sekä oikeutta käynnistää prosesseja isäntäjärjestelmässä. Tämä tila antaa lisäosalle täyden pääsyn ja hallinnan koko Home Assistant -järjestelmääsi, mikä lisää tietoturvariskejä ja voi vahingoittaa järjestelmääsi väärinkäytettynä. Siksi tämä ominaisuus laskee lisäosan turvallisuuspisteitä.\n\nTätä käyttöoikeustasoa ei myönnetä automaattisesti, ja sinun on vahvistettava se. Tätä varten sinun on poistettava lisäosan suojaustila käytöstä manuaalisesti. Poista suojaustila käytöstä vain, jos tunnet, tarvitset JA luotat tämän lisäosan lähteeseen.",
|
||||
"title": "Isännän prosessinimiavaruus"
|
||||
},
|
||||
"ingress": {
|
||||
"description": "Tämä lisäosa käyttää Ingressiä upottaakseen käyttöliittymänsä turvallisesti Home Assistantiin.",
|
||||
"title": "Ingress"
|
||||
},
|
||||
"rating": {
|
||||
"description": "Home Assistant antaa jokaiselle lisäosalle turvallisuusluokituksen, joka kertoo lisäosan käyttöön liittyvistä riskeistä. Mitä enemmän käyttöoikeuksia lisäosa vaatii, sitä enemmän mahdollisia tietoturvariskejä se aiheuttaa, mikä alentaa pistemäärää.\n\nLuokituksen asteikko on 1–6, missä huonoin pistemäärä on 1 (heikoin turvallisuus ja suurimmat riskit) ja paras pistemäärä on 6 (turvallisin ja pienimmät riskit).",
|
||||
"title": "Lisäosan turvallisuusluokitus"
|
||||
},
|
||||
"role": {
|
||||
"default": "oletus"
|
||||
},
|
||||
"stage": {
|
||||
"description": "Lisäosat voivat olla yhdessä kolmesta vaiheesta:\n\n{icon_stable} **Vakaa**: Nämä lisäosat ovat valmiita tuotantokäyttöön.\n\n{icon_experimental} **Kokeellinen**: Nämä lisäosat voivat sisältää virheitä, ja saattavat olla keskeneräisiä.\n\n{icon_deprecated} **Vanhentunut**: Nämä lisäosat eivät enää saa päivityksiä.",
|
||||
"title": "Lisäosan vaihe"
|
||||
}
|
||||
},
|
||||
"changelog": "Muutosloki",
|
||||
"cpu_usage": "Lisäosan CPU-käyttö",
|
||||
"hostname": "Isäntänimi",
|
||||
"install": "asenna",
|
||||
"new_update_available": "{name} {version} on saatavilla",
|
||||
"not_available_arch": "Tämä lisäosa ei ole yhteensopiva laitteesi prosessorin tai laitteeseesi asennetun käyttöjärjestelmän kanssa.",
|
||||
"not_available_version": "Käytössäsi on Home Assistant {core_version_installed}. Päivittääksesi lisäosan tähän versioon tarvitset vähintään Home Assistantin version {core_version_needed}.",
|
||||
"open_web_ui": "Avaa käyttöliittymä",
|
||||
"option": {
|
||||
"auto_update": {
|
||||
"description": "Päivitä lisäosa automaattisesti, kun uusi versio on saatavilla",
|
||||
"title": "Automaattinen päivitys"
|
||||
},
|
||||
"boot": {
|
||||
"description": "Käynnistä lisäosa järjestelmän käynnistyessä",
|
||||
"title": "Automaattinen käynnistys"
|
||||
},
|
||||
"ingress_panel": {
|
||||
"description": "Lisää tämä lisäosa sivupalkkiin",
|
||||
"title": "Näytä sivupalkissa"
|
||||
},
|
||||
"protected": {
|
||||
"description": "Estää lisäosalta laajan pääsyn järjestelmään",
|
||||
"title": "Suojaustila"
|
||||
},
|
||||
"watchdog": {
|
||||
"description": "Käynnistää lisäosan, jos se kaatuu",
|
||||
"title": "Vahtikoira"
|
||||
}
|
||||
},
|
||||
"protection_mode": {
|
||||
"content": "Suojaustila on poistettu käytöstä tälle lisäosalle! Tämä antaa lisäosalle täyden pääsyn koko järjestelmään, mikä lisää tietoturvariskejä ja voi vahingoittaa järjestelmäsi väärinkäytettynä. Poista suojaustila käytöstä vain, jos tunnet, tarvitset JA luotat tämän lisäosan lähteeseen.",
|
||||
"enable": "Ota suojaustila käyttöön",
|
||||
"title": "Varoitus: Suojaustila ei ole käytössä!"
|
||||
},
|
||||
"ram_usage": "Lisäosan muistinkäyttö",
|
||||
"restart": "käynnistä uudelleen",
|
||||
"start": "käynnistä",
|
||||
"stop": "pysäytä",
|
||||
"uninstall": "poista"
|
||||
"uninstall": "poista",
|
||||
"visit_addon_page": "Lisätietoja on sivulla {name}"
|
||||
},
|
||||
"documentation": {
|
||||
"get_documentation": "Lisäosan dokumentaation hakeminen epäonnistui, {error}"
|
||||
},
|
||||
"failed_to_reset": "Lisäosan asetusten nollaaminen epäonnistui, {error}",
|
||||
"failed_to_save": "Lisäosan asetusten tallentaminen epäonnistui, {error}",
|
||||
"logs": {
|
||||
"get_logs": "Lisäosan lokien hakeminen epäonnistui, {error}"
|
||||
},
|
||||
"panel": {
|
||||
"configuration": "Asetukset",
|
||||
"documentation": "Dokumentaatio",
|
||||
"info": "Tiedot",
|
||||
"log": "Loki"
|
||||
},
|
||||
"state": {
|
||||
"installed": "Lisäosa on asennettu",
|
||||
"not_available": "Lisäosa ei ole saatavilla järjestelmällesi",
|
||||
"not_installed": "Lisäosaa ei ole asennettu"
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
@@ -142,64 +252,190 @@
|
||||
"unknown": "Tuntematon virhe",
|
||||
"update_failed": "Päivitys epäonnistui"
|
||||
},
|
||||
"save": "Tallenna"
|
||||
"learn_more": "Lisätietoja",
|
||||
"new_version_available": "Uusi versio saatavilla",
|
||||
"newest_version": "Uusin versio",
|
||||
"no": "Ei",
|
||||
"refresh": "Päivitä",
|
||||
"reload": "Lataa uudelleen",
|
||||
"reset_defaults": "Palauta oletukset",
|
||||
"reset_options": "Nollaa asetukset",
|
||||
"restart": "Käynnistä uudelleen",
|
||||
"restart_name": "Käynnistä {name} uudelleen",
|
||||
"running_version": "Käytät tällä hetkellä versiota {version}",
|
||||
"save": "Tallenna",
|
||||
"show_more": "Näytä lisätietoa tästä",
|
||||
"update": "Päivitä",
|
||||
"update_available": "{count, plural,\n one {Päivitys}\n other {{count} päivitystä}\n} saatavilla",
|
||||
"version": "Versio",
|
||||
"yes": "Kyllä"
|
||||
},
|
||||
"confirm": {
|
||||
"reset_options": {
|
||||
"text": "Haluatko varmasti nollata kaikki asetuksesi?",
|
||||
"title": "Nollaa asetukset"
|
||||
},
|
||||
"restart": {
|
||||
"title": "Käynnistä {name} uudelleen"
|
||||
},
|
||||
"update": {
|
||||
"title": "Päivitä {name}"
|
||||
}
|
||||
},
|
||||
"dashboard": {
|
||||
"addon_new_version": "Uusi versio saatavilla",
|
||||
"addon_running": "Lisäosa on käynnissä",
|
||||
"addon_stopped": "Lisäosa on pysäytetty",
|
||||
"addons": "Lisäosat",
|
||||
"no_addons": "Et ole vielä asentanut lisäosia. Aloita siirtymällä lisäosakauppaan!"
|
||||
},
|
||||
"dialog": {
|
||||
"network": {
|
||||
"connected_to": "Yhdistetty kohteeseen {ssid}",
|
||||
"dhcp": "DHCP",
|
||||
"disabled": "Poistettu käytöstä",
|
||||
"dns_servers": "DNS-palvelimet",
|
||||
"failed_to_change": "Verkkoasetusten muuttaminen epäonnistui",
|
||||
"gateway": "Yhdyskäytävän osoite",
|
||||
"ip_netmask": "IP-osoite/aliverkon peite",
|
||||
"open": "Avoin",
|
||||
"scan_ap": "Etsi tukiasemia",
|
||||
"static": "Staattinen",
|
||||
"title": "Verkkoasetukset",
|
||||
"wep": "WEP"
|
||||
"unsaved": "Sinulla on tallentamattomia muutoksia, jotka menetetään, jos vaihdat välilehteä. Haluatko jatkaa?",
|
||||
"warning": "Jos vaihdat Wi-Fi-, IP- tai yhdyskäytävän osoitteita, yhteys saattaa katketa!",
|
||||
"wep": "WEP",
|
||||
"wpa": "wpa-psk"
|
||||
},
|
||||
"registries": {
|
||||
"add_new_registry": "Lisää uusi rekisteri",
|
||||
"add_registry": "Lisää rekisteri",
|
||||
"failed_to_add": "Rekisterin lisääminen epäonnistui",
|
||||
"failed_to_remove": "Rekisterin poistaminen epäonnistui",
|
||||
"no_registries": "Rekistereitä ei ole määritetty",
|
||||
"password": "Salasana",
|
||||
"registry": "Rekisteri",
|
||||
"remove": "Poista",
|
||||
"title_add": "Lisää uusi säilörekisteri",
|
||||
"title_manage": "Säilörekisterien hallinta",
|
||||
"username": "Käyttäjätunnus"
|
||||
},
|
||||
"repositories": {
|
||||
"add": "Lisää",
|
||||
"remove": "Poista"
|
||||
"remove": "Poista",
|
||||
"title": "Hallinnoi lisäosavarastoja"
|
||||
},
|
||||
"restart_addon": {
|
||||
"confirm_text": "Käynnistä lisäosa uudelleen",
|
||||
"text": "Haluatko käynnistää lisäosan uudelleen muutostesi kanssa?"
|
||||
},
|
||||
"update": {
|
||||
"create_snapshot": "Luo tilannevedos kohteesta {name} ennen päivittämistä",
|
||||
"snapshot": "Tilannevedos"
|
||||
}
|
||||
},
|
||||
"my": {
|
||||
"error_addon_not_found": "Lisäosaa ei löydy"
|
||||
},
|
||||
"panel": {
|
||||
"dashboard": "Kojelauta",
|
||||
"store": "Lisäosakauppa",
|
||||
"system": "Järjestelmä"
|
||||
},
|
||||
"snapshot": {
|
||||
"addons": "Lisäosat",
|
||||
"create": "Luo",
|
||||
"create_snapshot": "Luo tilannevedos",
|
||||
"enter_password": "Syötä salasana.",
|
||||
"folder": {
|
||||
"addons/local": "Paikalliset lisäosat",
|
||||
"homeassistant": "Home Assistantin asetukset",
|
||||
"media": "Media",
|
||||
"share": "Jaetut tiedostot",
|
||||
"ssl": "SSL"
|
||||
},
|
||||
"folders": "Kansiot",
|
||||
"full_snapshot": "Täysi tilannevedos",
|
||||
"name": "Nimi",
|
||||
"partial_snapshot": "Osittainen tilannevedos",
|
||||
"password": "Salasana",
|
||||
"type": "Tyyppi"
|
||||
"password_protected": "salasanasuojattu",
|
||||
"password_protection": "Salasanasuojaus",
|
||||
"security": "Suojaus",
|
||||
"type": "Tyyppi",
|
||||
"upload_snapshot": "Lähetä tilannevedos"
|
||||
},
|
||||
"store": {
|
||||
"no_results_found": "Ei tuloksia kohteesta {repository}."
|
||||
},
|
||||
"system": {
|
||||
"core": {
|
||||
"cpu_usage": "Ytimen CPU-käyttö",
|
||||
"ram_usage": "Ytimen muistinkäyttö"
|
||||
},
|
||||
"host": {
|
||||
"change": "Muuta",
|
||||
"change_hostname": "Vaihda isäntänimi",
|
||||
"confirm_reboot": "Haluatko varmasti käynnistää isännän uudelleen?",
|
||||
"confirm_shutdown": "Haluatko varmasti sammuttaa isännän?",
|
||||
"deployment": "Käyttöönotto",
|
||||
"docker_version": "Docker-versio",
|
||||
"failed_to_get_hardware_list": "Laitteistoluettelon luominen epäonnistui",
|
||||
"failed_to_import_from_usb": "Tuonti USB:stä epäonnistui",
|
||||
"failed_to_reboot": "Isännän uudelleenkäynnistys epäonnistui",
|
||||
"failed_to_set_hostname": "Isäntänimen asettaminen epäonnistui",
|
||||
"failed_to_shutdown": "Isännän sammuttaminen epäonnistui",
|
||||
"hardware": "Laitteisto",
|
||||
"hostname": "Isäntänimi",
|
||||
"import_from_usb": "Tuo USB:stä",
|
||||
"ip_address": "IP-osoite",
|
||||
"operating_system": "Käyttöjärjestelmä"
|
||||
"new_hostname": "Syötä uusi isäntänimi:",
|
||||
"operating_system": "Käyttöjärjestelmä",
|
||||
"reboot_host": "Käynnistä isäntä uudelleen",
|
||||
"shutdown_host": "Sammuta isäntä",
|
||||
"used_space": "Käytetty tila"
|
||||
},
|
||||
"log": {
|
||||
"get_logs": "{provider} -lokien hakeminen epäonnistui, {error}",
|
||||
"log_provider": "Lokien lähde"
|
||||
},
|
||||
"supervisor": {
|
||||
"beta_backup": "Varmista, että sinulla on varmuuskopiot tiedoistasi, ennen kuin aktivoit tämän ominaisuuden.",
|
||||
"beta_join_confirm": "Haluatko liittyä betakanavaan?",
|
||||
"beta_release_items": "Tämä sisältää betaversiot seuraaville:",
|
||||
"beta_warning": "Betaversiot on suunnattu testaajille ja varhaisille omaksujille, ja ne voivat sisältää epävakaita koodimuutoksia",
|
||||
"channel": "Kanava",
|
||||
"cpu_usage": "Supervisorin CPU-käyttö",
|
||||
"failed_to_reload": "Supervisorin uudelleenlataus epäonnistui",
|
||||
"failed_to_set_option": "Supervisor-asetuksen asettaminen epäonnistui",
|
||||
"failed_to_update": "Supervisorin päivittäminen epäonnistui",
|
||||
"join_beta_action": "Liity betakanavaan",
|
||||
"join_beta_description": "Vastaanota betapäivityksiä Home Assistantille (RC:t), Supervisorille ja isännälle",
|
||||
"leave_beta_action": "Poistu betakanavasta",
|
||||
"leave_beta_description": "Vastaanota vakaita päivityksiä Home Assistantille, Supervisorille ja isännälle",
|
||||
"ram_usage": "Supervisorin muistinkäyttö",
|
||||
"reload_supervisor": "Lataa Supervisor uudelleen",
|
||||
"share_diagnostics": "Jaa diagnostiikka",
|
||||
"share_diagnostics_description": "Jaa kaatumisraportit ja diagnostiikkatiedot.",
|
||||
"share_diagonstics_description": "Haluatko jakaa kaatumisraportit ja diagnostiikkatiedot automaattisesti, kun Supervisor havaitsee odottamattomia virheitä? {line_break} Tämän avulla voimme korjata ongelmat. Tiedot ovat vain Home Assistant Core -tiimin käytettävissä, eikä niitä jaeta muille. {line_break} Tiedot eivät sisällä yksityisiä tai arkaluontoisia tietoja, ja voit poistaa tämän käytöstä asetuksissa milloin tahansa.",
|
||||
"share_diagonstics_title": "Auta parantamaan Home Assistanttia",
|
||||
"unhealthy_reason": {
|
||||
"docker": "Docker-ympäristö ei toimi oikein",
|
||||
"supervisor": "Supervisorin päivitys epäonnistui"
|
||||
},
|
||||
"unsupported_description": "Alla on lista asennuksestasi löydetyistä ongelmista. Klikkaa linkkejä saadaksesi ohjeita ongelmien ratkaisemiseen.",
|
||||
"unsupported_reason": {
|
||||
"container": "Tunnetusti ongelmia aiheuttavat kontit",
|
||||
"dbus": "DBUS",
|
||||
"docker_configuration": "Docker-asetukset",
|
||||
"docker_version": "Docker-versio",
|
||||
"lxc": "LXC",
|
||||
"network_manager": "Network Manager",
|
||||
"os": "Käyttöjärjestelmä",
|
||||
"systemd": "Systemd"
|
||||
},
|
||||
"unsupported_title": "Käytät asennusta, jota ei tueta",
|
||||
"update_supervisor": "Päivitä Supervisor",
|
||||
"warning": "VAROITUS"
|
||||
}
|
||||
}
|
||||
@@ -302,7 +538,8 @@
|
||||
},
|
||||
"script": {
|
||||
"cancel": "Peruuta",
|
||||
"cancel_multiple": "Peruuta {number}"
|
||||
"cancel_multiple": "Peruuta {number}",
|
||||
"run": "Suorita"
|
||||
},
|
||||
"service": {
|
||||
"run": "Suorita"
|
||||
@@ -396,6 +633,9 @@
|
||||
"yes": "Kyllä"
|
||||
},
|
||||
"components": {
|
||||
"addon-picker": {
|
||||
"addon": "Lisäosa"
|
||||
},
|
||||
"area-picker": {
|
||||
"add_dialog": {
|
||||
"add": "Lisää",
|
||||
@@ -417,6 +657,7 @@
|
||||
"select_blueprint": "Valitse piirustus"
|
||||
},
|
||||
"calendar": {
|
||||
"my_calendars": "Omat kalenterit",
|
||||
"today": "Tänään"
|
||||
},
|
||||
"data-table": {
|
||||
@@ -459,13 +700,15 @@
|
||||
"entries_not_found": "Lokikirjauksia ei löytynyt.",
|
||||
"messages": {
|
||||
"became_unavailable": "ei ollut käytettävissä",
|
||||
"changed_to_state": "vaihdettu tilaan {state}",
|
||||
"changed_to_state": "vaihdettiin tilaan {state}",
|
||||
"cleared_device_class": "tyhjennetty (ei {device_class} havaittu)",
|
||||
"detected_device_class": "havaittu {device_class}",
|
||||
"detected_device_class": "havaittiin {device_class}",
|
||||
"is_closing": "sulkeutuu",
|
||||
"is_opening": "avautuu",
|
||||
"rose": "nousi",
|
||||
"set": "laski",
|
||||
"turned_off": "asetettiin pois päältä",
|
||||
"turned_on": "asetettiin päälle",
|
||||
"turned_off": "kytkettiin pois päältä",
|
||||
"turned_on": "kytkettiin päälle",
|
||||
"was_at_home": "oli kotona",
|
||||
"was_at_state": "oli paikassa {state}",
|
||||
"was_away": "oli poissa",
|
||||
@@ -508,8 +751,8 @@
|
||||
"url": "URL",
|
||||
"video": "Video"
|
||||
},
|
||||
"documentation": "dokumentaatio",
|
||||
"learn_adding_local_media": "Lisätietoja median lisäämisestä {documentation} .",
|
||||
"documentation": "dokumentaatiosta",
|
||||
"learn_adding_local_media": "Lue lisätietoja median lisäämisestä {documentation} .",
|
||||
"local_media_files": "Sijoita video-, ääni- ja kuvatiedostot mediahakemistoon, jotta voit selata ja toistaa niitä selaimessa tai tuetuissa mediasoittimissa.",
|
||||
"media_browsing_error": "Median selausvirhe",
|
||||
"media_not_supported": "Browser Media Player ei tue tämän tyyppistä mediaa",
|
||||
@@ -517,7 +760,7 @@
|
||||
"media-player-browser": "Media Player -selain",
|
||||
"no_items": "Ei kohteita",
|
||||
"no_local_media_found": "Paikallista mediaa ei löytynyt",
|
||||
"no_media_folder": "Näyttää siltä, että et ole vielä luonut mediahakemistoa.",
|
||||
"no_media_folder": "Vaikuttaa siltä, että et ole vielä luonut mediahakemistoa.",
|
||||
"pick": "Valitse",
|
||||
"pick-media": "Valitse media",
|
||||
"play": "Toista",
|
||||
@@ -551,7 +794,7 @@
|
||||
},
|
||||
"future_duration": {
|
||||
"day": "{count} {count, plural,\n one {päivän}\n other {päivän}\n} kuluessa",
|
||||
"hour": "{count} {count, plural,\none {tunnin\nother {tunnin}\n} kuluessa",
|
||||
"hour": "{count} {count, plural,\none {tunnin}\nother {tunnin}\n} kuluessa",
|
||||
"minute": "{count} {count, plural,\none {minuutin}\nother {minuutin}\n} kuluessa",
|
||||
"second": "{count} {count, plural,\none {sekunnin}\nother {sekunnin}\n} kuluessa",
|
||||
"week": "{count} {count, plural,\n one {viikon}\n other {viikon}\n} kuluessa"
|
||||
@@ -604,9 +847,10 @@
|
||||
"delete": "Poista",
|
||||
"device_disabled": "Tämän kohteen laite on poistettu käytöstä.",
|
||||
"enabled_cause": "{cause} on poistanut sen käytöstä.",
|
||||
"enabled_delay_confirm": "Käyttöön otetut kohteet lisätään Home Assistantiin {delay} sekunnin kuluttua",
|
||||
"enabled_description": "Käytöstä poistettuja kohteita ei lisätä Home Assistantiin.",
|
||||
"enabled_label": "Ota kohte käyttöön",
|
||||
"enabled_restart_confirm": "Käynnistä Home Assistant uudelleen, jotta kohteet otetaan käyttöön",
|
||||
"enabled_restart_confirm": "Viimeistele kohteiden käyttöönotto käynnistämällä Home Assistant uudelleen",
|
||||
"entity_id": "Kohde ID",
|
||||
"follow_device_area": "Seuraa laitteen aluetta",
|
||||
"icon": "Kuvakkeen yliajo",
|
||||
@@ -689,6 +933,9 @@
|
||||
"person": {
|
||||
"create_zone": "Luo vyöhyke nykyisestä sijainnista"
|
||||
},
|
||||
"remote": {
|
||||
"activity": "Nykyinen aktiviteetti"
|
||||
},
|
||||
"restored": {
|
||||
"confirm_remove_text": "Haluatko varmasti poistaa tämän kohteen?",
|
||||
"confirm_remove_title": "Poistetaanko kohde?",
|
||||
@@ -758,23 +1005,25 @@
|
||||
"lovelace": "Lovelace-kojelaudat",
|
||||
"navigate_to": "Siirry kohteeseen {panel}",
|
||||
"person": "Henkilöt",
|
||||
"script": "Skriptit",
|
||||
"scene": "Tilanteet",
|
||||
"script": "Skripti",
|
||||
"server_control": "Palvelimen hallinta",
|
||||
"tag": "Tunnisteet",
|
||||
"users": "Käyttäjät",
|
||||
"zone": "Alueet"
|
||||
},
|
||||
"reload": {
|
||||
"filesize": "Päivitä tiedostojen koot",
|
||||
"filesize": "Lataa tiedostokokokohteet uudelleen",
|
||||
"homekit": "Lataa HomeKit uudelleen",
|
||||
"input_boolean": "Lataa booleanit uudelleen",
|
||||
"input_datetime": "Lataa syöttöpäivämäärät uudelleen",
|
||||
"input_number": "Lataa syöttönumerot uudelleen",
|
||||
"mqtt": "Lataa mqtt entiteetit uudelleen",
|
||||
"mqtt": "Lataa mqtt-entiteetit uudelleen",
|
||||
"person": "Lataa henkilöt uudelleen",
|
||||
"rpi_gpio": "Lataa Raspberry Pi GPIO entiteetit uudelleen",
|
||||
"rpi_gpio": "Lataa Raspberry Pi GPIO -entiteetit uudelleen",
|
||||
"scene": "Lataa tilanteet uudelleen",
|
||||
"script": "Lataa scriptit uudelleen",
|
||||
"smtp": "Päivitä SMTP-ilmoituspalvelut",
|
||||
"script": "Lataa skriptit uudelleen",
|
||||
"smtp": "Lataa smtp-ilmoituspalvelut uudelleen",
|
||||
"telegram": "Päivitä Telegram-ilmoituspalvelut",
|
||||
"zone": "Lataa alueet uudelleen"
|
||||
},
|
||||
@@ -784,7 +1033,7 @@
|
||||
"stop": "Pysäytä"
|
||||
}
|
||||
},
|
||||
"filter_placeholder": "Entiteetin suodatin"
|
||||
"filter_placeholder": "Kohdesuodatin"
|
||||
},
|
||||
"voice_command": {
|
||||
"did_not_hear": "Home Assistant ei kuullut mitään",
|
||||
@@ -900,9 +1149,12 @@
|
||||
},
|
||||
"header": "Luo uusi automaatio",
|
||||
"how": "Miten haluat luoda uuden automaation?",
|
||||
"start_empty": "Aloita tyhjästä automaatiosta",
|
||||
"thingtalk": {
|
||||
"create": "Luo",
|
||||
"header": "Kuvaile automaatiota, jonka haluat luoda",
|
||||
"intro": "Ja yritämme luoda sen sinulle. Esimerkiksi: Sammuta valot, kun lähden."
|
||||
"input_label": "Mitä tämän automaation pitäisi tehdä?",
|
||||
"intro": "Ja yritämme luoda sen sinulle. Esimerkki: Sammuta valot, kun lähden."
|
||||
}
|
||||
},
|
||||
"editor": {
|
||||
@@ -1229,23 +1481,23 @@
|
||||
"for_example": "Esimerkiksi:",
|
||||
"header": "Luo uusi automaatio",
|
||||
"introduction": "Kirjoita alle, mitä tämän automaation pitäisi tehdä, ja yritämme muuntaa sen Home Assistant -automaatioksi.",
|
||||
"language_note": "Huomautus: Toistaiseksi tuetaan vain englantia."
|
||||
"language_note": "Huomaa: Toistaiseksi vain englantia tuetaan."
|
||||
}
|
||||
}
|
||||
},
|
||||
"blueprint": {
|
||||
"add": {
|
||||
"community_forums": "yhteisön keskustelualueet",
|
||||
"community_forums": "yhteisön keskustelualueilta",
|
||||
"error_no_url": "Ole hyvä ja kirjoita piirustuksen URL",
|
||||
"file_name": "Piirustuksen polku",
|
||||
"header": "Tuo piirustus",
|
||||
"import_btn": "Piirustuksen esikatselu",
|
||||
"import_header": "Piirustus \"{name}\"",
|
||||
"import_introduction_link": "Voit tuoda muiden käyttäjien piirustuksia Githubista ja {community_link}. Kirjoita piirustuksen URL-osoite alle.",
|
||||
"importing": "Lataan piirustusta...",
|
||||
"import_introduction_link": "Voit tuoda muiden käyttäjien piirustuksia GitHubista ja {community_link}. Kirjoita piirustuksen URL-osoite alle.",
|
||||
"importing": "Ladataan piirustusta...",
|
||||
"raw_blueprint": "Piirustuksen sisältö",
|
||||
"save_btn": "Tuo piirustus",
|
||||
"saving": "Tuon piirustusta...",
|
||||
"saving": "Tuodaan piirustusta...",
|
||||
"unsupported_blueprint": "Tämä piirustus ei ole tuettu",
|
||||
"url": "Piirustuksen URL"
|
||||
},
|
||||
@@ -1264,6 +1516,7 @@
|
||||
"name": "Nimi"
|
||||
},
|
||||
"learn_more": "Lisätietoja piirustusten käytöstä",
|
||||
"share_blueprint": "Jaa piirustus",
|
||||
"use_blueprint": "Luo automaatio"
|
||||
}
|
||||
},
|
||||
@@ -1321,15 +1574,17 @@
|
||||
"sign_out": "Kirjaudu ulos",
|
||||
"thank_you_note": "Kiitos, että olet osa Home Assistant Cloudia. Sinun kaltaisten ihmisten takia pystymme tarjoamaan loistavan kodin automaatiokokemuksen kaikille. Kiitos!",
|
||||
"tts": {
|
||||
"default_language": "Oletuskieli",
|
||||
"dialog": {
|
||||
"header": "Kokeile \"teksti puheeksi\"-toimintoa",
|
||||
"header": "Kokeile \"teksti puheeksi\" -toimintoa",
|
||||
"play": "Toista",
|
||||
"target": "Kohde",
|
||||
"target_browser": "Selain"
|
||||
},
|
||||
"female": "Nainen",
|
||||
"male": "Mies",
|
||||
"try": "Yritä"
|
||||
"title": "Teksti puheeksi",
|
||||
"try": "Kokeile"
|
||||
},
|
||||
"webhooks": {
|
||||
"disable_hook_error_msg": "Webhookin poistaminen epäonnistui:",
|
||||
@@ -1513,7 +1768,7 @@
|
||||
"unknown_condition": "Tuntematon ehto"
|
||||
},
|
||||
"create": "Luo automaatio laitteella",
|
||||
"create_disable": "Automaatiota ei voi luoda käytöstä poistetulla laitteella",
|
||||
"create_disable": "Automaatiota ei voi luoda käytöstä poistetulle laitteelle",
|
||||
"no_automations": "Ei automaatioita",
|
||||
"no_device_automations": "Tälle laitteelle ei ole käytettävissä automaatioita.",
|
||||
"triggers": {
|
||||
@@ -1547,8 +1802,8 @@
|
||||
"integration": "Integraatio",
|
||||
"user": "Käyttäjä"
|
||||
},
|
||||
"enabled_cause": "Laite on poistettu käytöstä. Syy: {cause} .",
|
||||
"enabled_description": "Poistettuja laitteita ei näytetä, ja laitteeseen kuuluvat kohteet poistetaan käytöstä, eikä niitä lisätä Home Assistantiin.",
|
||||
"enabled_cause": "{cause} on poistanut laitteen käytöstä.",
|
||||
"enabled_description": "Poistettuja laitteita ei näytetä, ja laitteeseen kuuluvat entiteetit poistetaan käytöstä, eikä niitä lisätä Home Assistantiin.",
|
||||
"enabled_label": "Ota laite käyttöön",
|
||||
"entities": {
|
||||
"add_entities_lovelace": "Lisää Lovelace näkymään",
|
||||
@@ -1562,6 +1817,7 @@
|
||||
"picker": {
|
||||
"filter": {
|
||||
"filter": "Suodatin",
|
||||
"hidden_devices": "{number} {number, plural,\n one {piilotettu laite}\n other {piilotettua laitetta}\n}",
|
||||
"show_all": "Näytä kaikki",
|
||||
"show_disabled": "Näytä käytöstä poistetut laitteet"
|
||||
},
|
||||
@@ -1569,14 +1825,14 @@
|
||||
},
|
||||
"scene": {
|
||||
"create": "Luo tilanne laitteella",
|
||||
"create_disable": "Kohtausta ei voi luoda käytöstä poistetulla laitteella",
|
||||
"create_disable": "Tilannetta ei voi luoda käytöstä poistetulle laitteelle",
|
||||
"no_scenes": "Ei tilanteita",
|
||||
"scenes": "Tilanteet"
|
||||
},
|
||||
"scenes": "Tilanteet",
|
||||
"script": {
|
||||
"create": "Luo tilanne laitteella",
|
||||
"create_disable": "Skriptiä ei voi luoda käytöstä poistetulla laitteella",
|
||||
"create_disable": "Skriptiä ei voi luoda käytöstä poistetulle laitteelle",
|
||||
"no_scripts": "Ei skriptejä",
|
||||
"scripts": "Skriptit"
|
||||
},
|
||||
@@ -1707,7 +1963,19 @@
|
||||
"delete_confirm": "Haluatko varmasti poistaa tämän integraation?",
|
||||
"device_unavailable": "laite ei saatavissa",
|
||||
"devices": "{count} {count, plural,\n one {laite}\n other {laitteet}\n}",
|
||||
"disable_restart_confirm": "Viimeistele tämän integraation käytöstä poisto käynnistämällä Home Assistant uudelleen",
|
||||
"disable": {
|
||||
"disable_confirm": "Haluatko varmasti poistaa tämän asetusten osan käytöstä? Sen laitteet ja entiteetit poistetaan käytöstä.",
|
||||
"disabled": "Poistettu käytöstä",
|
||||
"disabled_by": {
|
||||
"device": "Laite",
|
||||
"integration": "Integraatio",
|
||||
"user": "Käyttäjä"
|
||||
},
|
||||
"disabled_cause": "{cause} poistanut käytöstä"
|
||||
},
|
||||
"documentation": "Dokumentointi",
|
||||
"enable_restart_confirm": "Viimeistele tämän integraation käyttöönotto käynnistämällä Home Assistant uudelleen",
|
||||
"entities": "{count} {count, plural,\n one {kohde}\n other {kohteet}\n}",
|
||||
"entity_unavailable": "kohde ei saatavilla",
|
||||
"firmware": "Laiteohjelmisto: {version}",
|
||||
@@ -1720,7 +1988,7 @@
|
||||
"reload_restart_confirm": "Viimeistele tämän integroinnin uudelleenlataaminen käynnistämällä Home Assistant uudelleen",
|
||||
"rename": "Nimeä uudelleen",
|
||||
"restart_confirm": "Käynnistä Home Assistant uudellen viimeistelläksesi tämän integraation poistamisen",
|
||||
"services": "{count} {count, plural,\n one {palvelut}\n other {palvelua}\n}",
|
||||
"services": "{count} {count, plural,\n one {palvelu}\n other {palvelua}\n}",
|
||||
"system_options": "Järjestelmäasetukset",
|
||||
"unnamed_entry": "Nimeämätön merkintä"
|
||||
},
|
||||
@@ -1729,6 +1997,7 @@
|
||||
"close": "Sulje",
|
||||
"created_config": "Asetus luotu {name}",
|
||||
"dismiss": "Sulje ikkuna",
|
||||
"error": "Virhe",
|
||||
"error_saving_area": "Virhe tallennettaessa aluetta: {error}",
|
||||
"external_step": {
|
||||
"description": "Tämä vaihe edellyttää, että vierailet ulkopuolisella verkkosivustolla.",
|
||||
@@ -1743,6 +2012,11 @@
|
||||
"configured": "Määritetty",
|
||||
"description": "Hallitse liitettyjä laitteita ja palveluita",
|
||||
"details": "Integroinnin yksityiskohdat",
|
||||
"disable": {
|
||||
"disabled_integrations": "{number} poistettu käytöstä",
|
||||
"hide_disabled": "Piilota käytöstä poistetut integraatiot",
|
||||
"show_disabled": "Näytä käytöstä poistetut integraatiot"
|
||||
},
|
||||
"discovered": "Löydetty",
|
||||
"home_assistant_website": "Home Assistant -sivusto",
|
||||
"ignore": {
|
||||
@@ -2179,7 +2453,7 @@
|
||||
"create_automation": "Automaation luominen tunnisteella",
|
||||
"description": "Hallitse tunnisteita",
|
||||
"detail": {
|
||||
"companion_apps": "oheissovellukset",
|
||||
"companion_apps": "oheissovelluksillamme",
|
||||
"create": "Luo",
|
||||
"create_and_write": "Luo ja kirjoita",
|
||||
"delete": "Poista",
|
||||
@@ -2189,7 +2463,7 @@
|
||||
"tag_id": "Tägin ID",
|
||||
"tag_id_placeholder": "Luodaan automaattisesti, kun se jätetään tyhjäksi",
|
||||
"update": "Päivitä",
|
||||
"usage": "Tunniste voi käynnistää automaation skannattaessa, voit käyttää NFC-tunnisteita, QR-koodeja tai mitä tahansa muuta tunnistetta. {companion_link} avulla voit kirjoittaa tämän tunnisteen ohjelmoitavaan NFC-tunnisteeseen tai luoda QR-koodin alla."
|
||||
"usage": "Tunniste voi käynnistää automaation skannattaessa; voit käyttää NFC-tunnisteita, QR-koodeja tai mitä tahansa muita tunnisteita. Kirjoitta tämä tunnisteen ohjelmoitavaan NFC-tunnisteeseen {companion_link} tai luo QR-koodin alla."
|
||||
},
|
||||
"edit": "Muokkaa",
|
||||
"headers": {
|
||||
@@ -2327,6 +2601,7 @@
|
||||
"caption": "Verkko"
|
||||
},
|
||||
"visualization": {
|
||||
"auto_zoom": "Automaattinen zoomaus",
|
||||
"caption": "Visualisointi",
|
||||
"header": "Verkon visualisointi"
|
||||
}
|
||||
@@ -2405,6 +2680,12 @@
|
||||
},
|
||||
"description": "Z-Wave -verkon asetukset",
|
||||
"learn_more": "Z-wave lisätietoja",
|
||||
"migration": {
|
||||
"ozw": {
|
||||
"header": "Siirry OpenZWaveen",
|
||||
"introduction": "Tämän ohjatun toiminnon avulla voit siirtyä vanhasta Z-Wave-integraatiosta OpenZWave-integraatioon, joka on tällä hetkellä betaversiossa."
|
||||
}
|
||||
},
|
||||
"network_management": {
|
||||
"header": "Z-Wave-verkon hallinta",
|
||||
"introduction": "Suorita Z-Wave-verkkoon vaikuttavia komentoja. Et saa palautetta siitä, onnistuiko useimmat komennot, mutta voit tarkistaa OZW-lokin ja yrittää selvittää sen."
|
||||
@@ -2514,11 +2795,14 @@
|
||||
"column_parameter": "Parametri",
|
||||
"description": "Service dev -työkalun avulla voit kutsua mitä tahansa käytettävissä olevaan palvelua Home Assistant -sovelluksessa.",
|
||||
"fill_example_data": "Täytä esimerkkitiedoilla",
|
||||
"title": "Palvelut"
|
||||
"title": "Palvelut",
|
||||
"ui_mode": "Siirry käyttöliittymätilaan",
|
||||
"yaml_mode": "Siirry YAML-tilaan"
|
||||
},
|
||||
"states": {
|
||||
"alert_entity_field": "Kohde on pakollinen kenttä",
|
||||
"attributes": "Määritteet",
|
||||
"copy_id": "Kopioi ID leikepöydälle",
|
||||
"current_entities": "Nykyiset kohteet",
|
||||
"description1": "Aseta laitteen esitys Home Assistant -sovelluksessa.",
|
||||
"description2": "Tämä ei kommunikoi varsinaisen laitteen kanssa.",
|
||||
@@ -2551,6 +2835,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"go_back": "Mene takaisin",
|
||||
"supervisor": {
|
||||
"ask": "Pyydä apua",
|
||||
"reboot": "Yritä uudelleenkäynnistää isäntä ",
|
||||
"system_health": "Tarkista järjestelmän kunto",
|
||||
"title": "Supervisor-paneelia ei voitu ladata!"
|
||||
}
|
||||
},
|
||||
"history": {
|
||||
"ranges": {
|
||||
"last_week": "Viime viikolla",
|
||||
@@ -2574,6 +2867,10 @@
|
||||
"yaml_unsupported": "Tätä toimintoa ei voi käyttää, kun Lovelace-käyttöliittymää käytetään YAML-tilassa."
|
||||
},
|
||||
"cards": {
|
||||
"actions": {
|
||||
"no_service": "Suoritettavaa palvelua ei ole määritelty",
|
||||
"no_url": "Avattavaa URL-osoitetta ei ole määritetty"
|
||||
},
|
||||
"confirm_delete": "Oletko varma, että haluat poistaa tämän kortin?",
|
||||
"empty_state": {
|
||||
"go_to_integrations_page": "Siirry integraatiot-sivulle",
|
||||
@@ -2662,7 +2959,7 @@
|
||||
},
|
||||
"entities": {
|
||||
"description": "Kohde-kortti on yleisin korttityyppi. Se ryhmittelee kohteet yhteen luetteloiksi.",
|
||||
"edit_special_row": "Näytä tämän rivin tiedot napsauttamalla Muokkaa-painiketta",
|
||||
"edit_special_row": "Näytä rivin tiedot klikkaamalla Muokkaa-painiketta",
|
||||
"entity_row_editor": "Entiteetti rivi editori",
|
||||
"entity_row": {
|
||||
"attribute": "Määrite",
|
||||
@@ -2750,7 +3047,7 @@
|
||||
"columns": "Sarakkeet",
|
||||
"description": "Ruudukkokortin avulla voit näyttää useita kortteja ruudukossa.",
|
||||
"name": "Ruudukko",
|
||||
"square": "Tee kortit neliöinä"
|
||||
"square": "Näytä kortit neliöinä"
|
||||
},
|
||||
"history-graph": {
|
||||
"description": "Historiakaavio-kortin avulla voit näyttää kaavion kullekin luettelossa olevalle kohteelle.",
|
||||
@@ -2853,7 +3150,7 @@
|
||||
"none": "Ei mitään"
|
||||
},
|
||||
"edit_badges": {
|
||||
"panel_mode": "Näitä kylttejä ei näytetä, koska tämä näkymä on \"Paneelitilassa\"."
|
||||
"panel_mode": "Näitä merkkejä ei näytetä, koska tämä näkymä on \"Paneelitilassa\"."
|
||||
},
|
||||
"edit_card": {
|
||||
"add": "Lisää kortti",
|
||||
@@ -2962,7 +3259,7 @@
|
||||
},
|
||||
"sub-element-editor": {
|
||||
"types": {
|
||||
"footer": "Alatunnisteen muokkausohjelma",
|
||||
"footer": "Alatunnisteen muokkaus",
|
||||
"header": "Otsikkoeditori",
|
||||
"row": "Kohderivieditori"
|
||||
}
|
||||
@@ -3120,6 +3417,7 @@
|
||||
"working": "Ole hyvä ja odota"
|
||||
},
|
||||
"initializing": "Alustetaan",
|
||||
"logging_in_to_with": "Kirjaudutaan kohteeseen **{locationName}** palvelulla **{authProviderName}**.",
|
||||
"logging_in_with": "Kirjaudutaan sisään **{authProviderName}**.",
|
||||
"pick_auth_provider": "Tai kirjaudu sisään joillakin seuraavista"
|
||||
},
|
||||
@@ -3220,7 +3518,7 @@
|
||||
"header": "Vaihda salasana",
|
||||
"new_password": "Uusi salasana",
|
||||
"submit": "Lähetä",
|
||||
"success": "Salasanan vaihtaminen onnistui"
|
||||
"success": "Salasana vaihdettu onnistuneesti"
|
||||
},
|
||||
"current_user": "Olet tällä hetkellä kirjautuneena tunnuksella {fullName}.",
|
||||
"customize_sidebar": {
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
"header": "Réseau",
|
||||
"host": "Hôte"
|
||||
},
|
||||
"no_configuration": "Cet add-on n'expose pas de configuration pour que vous puissiez jouer avec ...",
|
||||
"no_configuration": "Ce module complémentaire n'expose pas de configuration pour que vous puissiez jouer avec ...",
|
||||
"options": {
|
||||
"edit_in_ui": "Modifier dans l'interface utilisateur",
|
||||
"edit_in_yaml": "Modifier en tant que YAML",
|
||||
@@ -136,7 +136,7 @@
|
||||
"start_invalid_config": "Aller à la configuration",
|
||||
"stop": "Échec de l'arrêt de l'extension",
|
||||
"uninstall": "Échec de la désinstallation de l'extension",
|
||||
"validate_config": "Échec de la validation de la configuration de l'add-on"
|
||||
"validate_config": "Échec de la validation de la configuration du module complémentaire"
|
||||
},
|
||||
"capability": {
|
||||
"apparmor": {
|
||||
@@ -156,8 +156,8 @@
|
||||
"title": "Accès complet au matériel"
|
||||
},
|
||||
"hassio_api": {
|
||||
"description": "Le module complémentaire a eu accès à l'API Supervisor, à la demande de l'auteur du module complémentaire. Par défaut, le module complémentaire peut accéder aux informations générales sur la version de votre système. Lorsque le module complémentaire demande un accès de niveau `` gestionnaire '' ou `` administrateur '' à l'API, il aura accès pour contrôler plusieurs parties de votre système Home Assistant. Cette autorisation est indiquée par ce badge et aura un impact négatif sur le score de sécurité du module complémentaire.",
|
||||
"title": "Accès à l'API du superviseur"
|
||||
"description": "Le module complémentaire a eu accès à l'API du Superviseur, à la demande de l'auteur du module complémentaire. Par défaut, le module complémentaire peut accéder aux informations générales sur la version de votre système. Lorsque le module complémentaire demande un accès de niveau \"gestionnaire\" ou \"administrateur\" à l'API, il aura accès pour contrôler plusieurs parties de votre système Home Assistant. Cette autorisation est indiquée par ce badge et aura un impact négatif sur le score de sécurité du module complémentaire.",
|
||||
"title": "Accès à l'API du Superviseur"
|
||||
},
|
||||
"homeassistant_api": {
|
||||
"description": "Ce module complémentaire est autorisé à accéder à votre instance Home Assistant en cours d'exécution directement via l'API Home Assistant. Ce mode gère également l'authentification pour le module complémentaire, ce qui permet à un module complémentaire d'interagir avec Home Assistant sans avoir besoin de jetons d'authentification supplémentaires.",
|
||||
@@ -204,13 +204,13 @@
|
||||
"title": "Étape complémentaire"
|
||||
}
|
||||
},
|
||||
"changelog": "Changelog",
|
||||
"changelog": "Journal des modifications",
|
||||
"cpu_usage": "Utilisation CPU de l'extension",
|
||||
"hostname": "Nom d'hôte",
|
||||
"install": "installer",
|
||||
"new_update_available": "{name} {version} est disponible",
|
||||
"not_available_arch": "Ce module complémentaire n'est pas compatible avec le processeur de votre appareil ou le système d'exploitation que vous avez installé sur votre appareil.",
|
||||
"not_available_version": "Votre Home Assistant est en version {core_version_installed}, pour mettre à jour cet add-on, vous devez êtes au minimum en version {core_version_needed} de Home Assistant",
|
||||
"not_available_version": "Votre Home Assistant est en version {core_version_installed}, pour mettre à jour ce module complémentaire, vous devez êtes au minimum en version {core_version_needed} de Home Assistant",
|
||||
"open_web_ui": "Ouvrir l'interface utilisateur Web",
|
||||
"option": {
|
||||
"auto_update": {
|
||||
@@ -231,7 +231,7 @@
|
||||
},
|
||||
"watchdog": {
|
||||
"description": "Cela démarrera l'extension en cas de panne",
|
||||
"title": "Watchdog"
|
||||
"title": "Chien de garde"
|
||||
}
|
||||
},
|
||||
"protection_mode": {
|
||||
@@ -262,9 +262,9 @@
|
||||
"log": "Journal"
|
||||
},
|
||||
"state": {
|
||||
"installed": "l'add-on est installé.",
|
||||
"installed": "Le module complémentaire est installé",
|
||||
"not_available": "L'extension n'est pas disponible sur votre système",
|
||||
"not_installed": "l'add-on n'est pas installé"
|
||||
"not_installed": "Le module complémentaire n'est pas installé"
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
@@ -351,22 +351,22 @@
|
||||
"repositories": {
|
||||
"add": "Ajouter",
|
||||
"remove": "Supprimer",
|
||||
"title": "Gérer les dépôts d'add-ons"
|
||||
"title": "Gérer les référentiels de modules complémentaires"
|
||||
},
|
||||
"restart_addon": {
|
||||
"confirm_text": "Redémarrer add-on",
|
||||
"text": "Voulez-vous redémarrer l’add-on avec vos modifications?"
|
||||
"confirm_text": "Redémarrer le module complémentaire",
|
||||
"text": "Voulez-vous redémarrer le module complémentaire avec vos modifications?"
|
||||
},
|
||||
"update": {
|
||||
"create_snapshot": "Créez un instantané de {name} avant de mettre à jour",
|
||||
"snapshot": "Snapshot",
|
||||
"snapshot": "Instantané",
|
||||
"snapshotting": "Création d'un instantané de {name}",
|
||||
"updating": "Mise à jour de {name} vers la version {version}"
|
||||
}
|
||||
},
|
||||
"my": {
|
||||
"error": "Une erreur inconnue s'est produite",
|
||||
"error_addon_not_found": "Add-on non trouvé",
|
||||
"error_addon_not_found": "Module complémentaire introuvable",
|
||||
"faq_link": "FAQ de My Home Assistant",
|
||||
"not_supported": "Cette redirection n'est pas prise en charge par votre instance Home Assistant. Vérifiez le {link} pour les redirections prises en charge et la version dans laquelle elles ont été introduites."
|
||||
},
|
||||
@@ -377,7 +377,7 @@
|
||||
"system": "Système"
|
||||
},
|
||||
"snapshot": {
|
||||
"addons": "Add-ons",
|
||||
"addons": "Modules complémentaires",
|
||||
"available_snapshots": "Instantanés disponibles",
|
||||
"could_not_create": "Impossible de créer un instantané",
|
||||
"create": "Créer",
|
||||
@@ -386,7 +386,7 @@
|
||||
"description": "Les instantanés vous permettent de sauvegarder et de restaurer facilement toutes les données de votre instance Home Assistant.",
|
||||
"enter_password": "Veuillez entrer un mot de passe.",
|
||||
"folder": {
|
||||
"addons/local": "Add-ons locaux",
|
||||
"addons/local": "Modules complémentaires locaux",
|
||||
"homeassistant": "Configuration Home Assistant",
|
||||
"media": "Médias",
|
||||
"share": "Partager",
|
||||
@@ -412,8 +412,8 @@
|
||||
},
|
||||
"system": {
|
||||
"core": {
|
||||
"cpu_usage": "Utilisation du CPU Core",
|
||||
"ram_usage": "Utilisation de la RAM Core"
|
||||
"cpu_usage": "Utilisation du processeur principal",
|
||||
"ram_usage": "Utilisation de la RAM principale"
|
||||
},
|
||||
"host": {
|
||||
"change": "Changer",
|
||||
@@ -448,26 +448,26 @@
|
||||
"beta_release_items": "Cela inclut les versions bêta pour:",
|
||||
"beta_warning": "Les versions bêta sont destinées aux testeurs et aux utilisateurs précoces et peuvent contenir des modifications de code instables",
|
||||
"channel": "Canal",
|
||||
"cpu_usage": "Utilisation du processeur par Supervisor",
|
||||
"failed_to_reload": "Échec du rechargement de Supervisor",
|
||||
"failed_to_set_option": "Échec lors du paramétrage de l'option du Supervisor",
|
||||
"failed_to_update": "Échec de la mise à jour de Supervisor",
|
||||
"cpu_usage": "Utilisation du processeur par le Superviseur",
|
||||
"failed_to_reload": "Échec de la mise à jour du Superviseur",
|
||||
"failed_to_set_option": "Échec lors du paramétrage de l'option du Superviseur",
|
||||
"failed_to_update": "Échec de la mise à jour du Superviseur",
|
||||
"join_beta_action": "Rejoignez le canal bêta",
|
||||
"join_beta_description": "Obtenez des mises à jour bêta pour Home Assistant (RCs), Supervisor et host",
|
||||
"join_beta_description": "Obtenez des mises à jour bêta pour Home Assistant (RCs), Superviseur et l'hôte",
|
||||
"leave_beta_action": "Quitter le canal bêta",
|
||||
"leave_beta_description": "Obtenez des mises à jour stables pour l'assistant domestique, le superviseur et l'hôte",
|
||||
"ram_usage": "Utilisation de la RAM Supervisor",
|
||||
"reload_supervisor": "Recharger le superviseur",
|
||||
"leave_beta_description": "Obtenez des mises à jour stables pour l'assistant domestique, le Superviseur et l'hôte",
|
||||
"ram_usage": "Utilisation de la RAM du Superviseur",
|
||||
"reload_supervisor": "Recharger le Superviseur",
|
||||
"share_diagnostics": "Partager les diagnostics",
|
||||
"share_diagnostics_description": "Partagez les rapports d'incident et les informations de diagnostic.",
|
||||
"share_diagonstics_description": "Souhaitez-vous partager automatiquement les rapports d'erreur et les informations de diagnostic lorsque le superviseur rencontre des erreurs inattendues? {line_break} Cela nous permettra de résoudre les problèmes, les informations ne sont accessibles qu'à l'équipe Home Assistant Core et ne seront pas partagées avec d'autres. {line_break} Les données n'incluent aucune information privée / sensible et vous pouvez désactiver cela dans les paramètres à tout moment.",
|
||||
"share_diagonstics_description": "Souhaitez-vous partager automatiquement les rapports d'erreur et les informations de diagnostic lorsque le Superviseur rencontre des erreurs inattendues? {line_break} Cela nous permettra de résoudre les problèmes, les informations ne sont accessibles qu'à l'équipe Home Assistant Core et ne seront pas partagées avec d'autres. {line_break} Les données n'incluent aucune information privée / sensible et vous pouvez désactiver cela dans les paramètres à tout moment.",
|
||||
"share_diagonstics_title": "Aider à améliorer Home Assistant",
|
||||
"unhealthy_description": "L'exécution d'une installation défectueuse entraînera des problèmes. Vous trouverez ci-dessous une liste des problèmes rencontrés avec votre installation, cliquez sur les liens pour savoir comment vous pouvez résoudre les problèmes.",
|
||||
"unhealthy_reason": {
|
||||
"docker": "L'environnement Docker ne fonctionne pas correctement",
|
||||
"privileged": "Le superviseur n'est pas privilégié",
|
||||
"setup": "La configuration du superviseur a échoué",
|
||||
"supervisor": "Le Supervisor ne peu pas mettre à jour"
|
||||
"privileged": "Le Superviseur n'est pas privilégié",
|
||||
"setup": "La configuration du Superviseur a échoué",
|
||||
"supervisor": "Le Superviseur ne peut pas mettre à jour"
|
||||
},
|
||||
"unhealthy_title": "Votre installation est défectueuse",
|
||||
"unsupported_description": "Vous trouverez ci-dessous une liste des problèmes rencontrés avec votre installation, cliquez sur les liens pour savoir comment vous pouvez résoudre les problèmes.",
|
||||
@@ -480,11 +480,11 @@
|
||||
"lxc": "LXC",
|
||||
"network_manager": "Gestionnaire de réseaux",
|
||||
"os": "Système d'exploitation",
|
||||
"privileged": "Le superviseur n'est pas privilégié",
|
||||
"privileged": "Le Superviseur n'est pas privilégié",
|
||||
"systemd": "Systemd"
|
||||
},
|
||||
"unsupported_title": "Vous exécutez une installation non prise en charge",
|
||||
"update_supervisor": "Mettre à jour Supervisor",
|
||||
"update_supervisor": "Mettre à jour Superviseur",
|
||||
"warning": "AVERTISSEMENT"
|
||||
}
|
||||
}
|
||||
@@ -692,7 +692,7 @@
|
||||
},
|
||||
"no_supervisor": {
|
||||
"description": "Aucun Superviseur n'a été trouvé, donc les modules complémentaires n'ont pas pu être chargés.",
|
||||
"title": "Aucun superviseur"
|
||||
"title": "Aucun Superviseur"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -762,7 +762,7 @@
|
||||
"messages": {
|
||||
"became_unavailable": "est devenu indisponible",
|
||||
"changed_to_state": "changé en {state}.",
|
||||
"cleared_device_class": "effacé (no {device_class} detected)",
|
||||
"cleared_device_class": "effacé (aucun {device_class} détecté)",
|
||||
"detected_device_class": "détecté {device_class}",
|
||||
"is_closing": "se ferme",
|
||||
"is_opening": "s'ouvre",
|
||||
@@ -785,7 +785,8 @@
|
||||
"was_unlocked": "Était déverrouillé",
|
||||
"was_unplugged": "était débranché",
|
||||
"was_unsafe": "n'était pas sûr"
|
||||
}
|
||||
},
|
||||
"show_trace": "Afficher la trace"
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "Votre navigateur ne prend pas en charge l'élément audio.",
|
||||
@@ -816,7 +817,7 @@
|
||||
"learn_adding_local_media": "En savoir plus sur l'ajout de médias dans la {documentation} .",
|
||||
"local_media_files": "Placez vos fichiers vidéo, audio et image dans le répertoire multimédia pour pouvoir les parcourir et les lire dans le navigateur ou sur les lecteurs multimédias pris en charge.",
|
||||
"media_browsing_error": "Erreur de navigation multimédia",
|
||||
"media_not_supported": "Le Browser Media Player ne prend pas en charge ce type de média",
|
||||
"media_not_supported": "Le navigateur Media Player ne prend pas en charge ce type de médias",
|
||||
"media_player": "Lecteur multimédia",
|
||||
"media-player-browser": "Lecteur multimédia",
|
||||
"no_items": "Aucun éléments",
|
||||
@@ -1119,7 +1120,7 @@
|
||||
"script": "Recharger les scripts",
|
||||
"smtp": "Recharger les services de notification SMTP",
|
||||
"statistics": "Recharger les entités de statistiques",
|
||||
"telegram": "Recharger les services de notification de telegram",
|
||||
"telegram": "Recharger les services de notification de Telegram",
|
||||
"template": "Recharger les entités modèles",
|
||||
"trend": "Recharger les entités de tendance",
|
||||
"universal": "Recharger les entités de lecteur média universel",
|
||||
@@ -1566,6 +1567,8 @@
|
||||
"add_automation": "Ajouter une automatisation",
|
||||
"delete_automation": "Supprimer l'automatisation",
|
||||
"delete_confirm": "Voulez-vous vraiment supprimer cette automatisation ?",
|
||||
"dev_automation": "Débogage de l'automatisation",
|
||||
"dev_only_editable": "Seules les automatisations dans automations.yaml sont debuggables.",
|
||||
"duplicate": "Dupliquer",
|
||||
"duplicate_automation": "Dupliquer l'automatisation",
|
||||
"edit_automation": "Modifier l'automatisation",
|
||||
@@ -1590,7 +1593,7 @@
|
||||
"task_selection": {
|
||||
"error_empty": "Entrez une commande ou appuyez sur ignorer.",
|
||||
"error_unsupported": "Nous n'avons pas pu créer une automatisation pour cela (pour le moment ?).",
|
||||
"for_example": "Par exemple : ",
|
||||
"for_example": "Par exemple :",
|
||||
"header": "Créer une nouvelle automatisation",
|
||||
"introduction": "Tapez ci-dessous ce que cette automatisation devrait faire, et nous allons essayer de la convertir en une automatisation Home Assistant.",
|
||||
"language_note": "Remarque: pour l'instant, seul l'anglais est pris en charge."
|
||||
@@ -1655,12 +1658,12 @@
|
||||
"fetching_subscription": "Récupération de l'abonnement...",
|
||||
"google": {
|
||||
"config_documentation": "Documentation de configuration",
|
||||
"devices_pin": "PIN pour les appareils sécurisés",
|
||||
"devices_pin": "NIP pour les appareils sécurisés",
|
||||
"enable_ha_skill": "Activer le skill Home Assistant pour Google Assistant",
|
||||
"enable_state_reporting": "Activer le rapport d'état",
|
||||
"enter_pin_error": "Impossible de stocker le PIN:",
|
||||
"enter_pin_hint": "Entrer un code PIN pour utiliser les dispositifs de sécurité",
|
||||
"enter_pin_info": "Veuillez entrer un code PIN pour interagir avec les dispositifs de sécurité. Les dispositifs de sécurité sont les portes, les portes de garage et les serrures. Il vous sera demandé de dire/entrer ce code PIN lorsque vous interagissez avec de tels appareils via Google Assistant.",
|
||||
"enter_pin_error": "Impossible de stocker le NIP :",
|
||||
"enter_pin_hint": "Entrer un code NIP pour utiliser les dispositifs de sécurité",
|
||||
"enter_pin_info": "Veuillez entrer un code NIP pour interagir avec les dispositifs de sécurité. Les dispositifs de sécurité sont les portes, les portes de garage et les serrures. Il vous sera demandé de dire/entrer ce code NIP lorsque vous interagissez avec de tels appareils via Google Assistant.",
|
||||
"info": "Grâce à l'intégration de Google Assistant pour Home Assistant Cloud, vous pourrez contrôler tous vos appareils Home Assistant via n'importe quel appareil compatible avec Google Assistant.",
|
||||
"info_state_reporting": "Si vous activez le rapport d'état, Home Assistant envoie tous les changements d'état des entités exposées à Google. Cela vous permet de toujours voir les derniers états de l'application Google.",
|
||||
"manage_entities": "Gérer les entités",
|
||||
@@ -1709,7 +1712,7 @@
|
||||
"loading": "Chargement ...",
|
||||
"manage": "Gérer",
|
||||
"no_hooks_yet": "Il semble que vous n'ayez pas encore de Webhooks. Commencez en configurer un ",
|
||||
"no_hooks_yet_link_automation": "automation webhook",
|
||||
"no_hooks_yet_link_automation": "automatisation webhook",
|
||||
"no_hooks_yet_link_integration": "intégration basée sur un Webhook",
|
||||
"no_hooks_yet2": "ou en créant un",
|
||||
"title": "Webhooks"
|
||||
@@ -2081,7 +2084,7 @@
|
||||
"delete": "Supprimer",
|
||||
"delete_confirm": "Êtes-vous sûr de vouloir supprimer cette intégration?",
|
||||
"device_unavailable": "Appareil non disponible",
|
||||
"devices": "{count} {count, plural,\n zero {appareil}\n one {appareil}\n other {appareils}\n}",
|
||||
"devices": "{count} {count, plural,\n one {appareil}\n other {appareils}\n}",
|
||||
"disable_restart_confirm": "Redémarrez Home Assistant pour terminer la désactivation de cette intégration",
|
||||
"disable": {
|
||||
"disable_confirm": "Voulez-vous vraiment désactiver cette entrée de configuration? Ses appareils et entités seront désactivés.",
|
||||
@@ -2095,7 +2098,7 @@
|
||||
},
|
||||
"documentation": "Documentation",
|
||||
"enable_restart_confirm": "Redémarrez Home Assistant pour terminer l'activation de cette intégration",
|
||||
"entities": "{count} {count, plural,\n zero {entité}\n one {entité}\n other {entités}\n}",
|
||||
"entities": "{count} {count, plural,\n one {entity}\n other {entities}\n}",
|
||||
"entity_unavailable": "Entité indisponible",
|
||||
"firmware": "Firmware: {version}",
|
||||
"hub": "Connecté via",
|
||||
@@ -2134,7 +2137,7 @@
|
||||
},
|
||||
"configure": "Configurer",
|
||||
"configured": "Configuré",
|
||||
"confirm_new": "Voulez-vous configurer {intégration} ?",
|
||||
"confirm_new": "Voulez-vous configurer {integration} ?",
|
||||
"description": "Gérer les appareils et services connectés",
|
||||
"details": "Détails de l'intégration",
|
||||
"disable": {
|
||||
@@ -2209,7 +2212,7 @@
|
||||
"title_required": "Le titre est requis.",
|
||||
"update": "Mise à jour",
|
||||
"url": "URL",
|
||||
"url_error_msg": "L'url ne peut pas contenir d'espaces ni de caractères spéciaux, sauf pour _ et -"
|
||||
"url_error_msg": "L'URL ne peut pas contenir d'espaces ni de caractères spéciaux, sauf pour _ et -"
|
||||
},
|
||||
"picker": {
|
||||
"add_dashboard": "Ajouter un tableau de bord",
|
||||
@@ -2357,7 +2360,7 @@
|
||||
"not_found": "Nœud introuvable"
|
||||
},
|
||||
"nodes_table": {
|
||||
"failed": "Echec",
|
||||
"failed": "Échec",
|
||||
"id": "ID",
|
||||
"manufacturer": "Fabricant",
|
||||
"model": "Modèle",
|
||||
@@ -2368,7 +2371,7 @@
|
||||
"battery_note": "Si le nœud est alimenté par batterie, assurez-vous de l'activer avant de continuer",
|
||||
"button": "Actualiser le nœud",
|
||||
"complete": "Actualisation du nœud terminée",
|
||||
"description": "Cela indiquera à OpenZWave de réinterroger le nœud et de le mettre à jour (commandes, possibilités et valeurs).",
|
||||
"description": "Cela indiquera à OpenZWave de réinterroger un nœud et de mettre à jour les classes de commande, les capacités et les valeurs du nœud.",
|
||||
"node_status": "État du nœud",
|
||||
"refreshing_description": "Rafraîchissement des informations sur le nœud...",
|
||||
"start_refresh_button": "Démarrer l'actualisation",
|
||||
@@ -2547,7 +2550,7 @@
|
||||
"script": "Recharger les scripts",
|
||||
"smtp": "Recharger les services de notification SMTP",
|
||||
"statistics": "Recharger les entités de statistiques",
|
||||
"telegram": "Recharger les services de notification de telegram",
|
||||
"telegram": "Recharger les services de notification de Telegram",
|
||||
"template": "Recharger les entités modèles",
|
||||
"trend": "Recharger les entités de tendance",
|
||||
"universal": "Recharger les entités de lecteur média universel",
|
||||
@@ -2581,7 +2584,7 @@
|
||||
"detail": {
|
||||
"companion_apps": "applications associées",
|
||||
"create": "Créer",
|
||||
"create_and_write": "Créer et Ecrire",
|
||||
"create_and_write": "Créer et Écrire",
|
||||
"delete": "Supprimer",
|
||||
"description": "Description",
|
||||
"name": "Nom",
|
||||
@@ -2887,7 +2890,7 @@
|
||||
"nodes": "Nœuds",
|
||||
"nodes_hint": "Sélectionnez le nœud pour afficher les options par nœud",
|
||||
"nodes_in_group": "Autres nœuds de ce groupe :",
|
||||
"pooling_intensity": "Intensité polling",
|
||||
"pooling_intensity": "Intensité du sondage",
|
||||
"protection": "Protection",
|
||||
"remove_broadcast": "Supprimer la diffusion",
|
||||
"remove_from_group": "Supprimer du groupe",
|
||||
@@ -3008,11 +3011,11 @@
|
||||
"go_back": "Retour en arrière",
|
||||
"supervisor": {
|
||||
"ask": "Demandez de l’aide",
|
||||
"observer": "Vérifiez l’Observer",
|
||||
"observer": "Vérifiez l'observateur",
|
||||
"reboot": "Essayez un redémarrage de l’hôte",
|
||||
"system_health": "Vérifier la santé du système",
|
||||
"title": "Impossible de charger le panneau Supervisor!",
|
||||
"wait": "Si vous venez de commencer, assurez-vous d’avoir donné le superviseur suffisamment de temps pour commencer."
|
||||
"title": "Impossible de charger le panneau du Superviseur!",
|
||||
"wait": "Si vous venez de commencer, assurez-vous d’avoir donné au Superviseur suffisamment de temps pour démarrer."
|
||||
}
|
||||
},
|
||||
"history": {
|
||||
@@ -3240,7 +3243,7 @@
|
||||
"name": "Pile horizontale"
|
||||
},
|
||||
"humidifier": {
|
||||
"description": "La carte humidificateur donne le contrôle de votre entité humidificateur. Vous permettant de modifier l'humidité et le mode de l'entité.",
|
||||
"description": "La carte Humidificateur donne le contrôle de votre entité humidificateur. Vous permettant de changer l'humidité et le mode de l'entité.",
|
||||
"name": "Humidificateur"
|
||||
},
|
||||
"iframe": {
|
||||
@@ -3258,7 +3261,7 @@
|
||||
"map": {
|
||||
"dark_mode": "Mode sombre ?",
|
||||
"default_zoom": "Zoom par défaut",
|
||||
"description": "La carte Carte vous permet d'afficher des entités sur une carte.",
|
||||
"description": "La carte Map vous permet d'afficher des entités sur une carte.",
|
||||
"geo_location_sources": "Sources de géolocalisation",
|
||||
"hours_to_show": "Heures à montrer",
|
||||
"name": "Carte",
|
||||
@@ -3676,7 +3679,7 @@
|
||||
},
|
||||
"intro": "Êtes-vous prêt à réveiller votre maison, à récupérer votre vie privée et à rejoindre une communauté mondiale de bricoleurs?",
|
||||
"restore": {
|
||||
"description": "Vous pouvez également restaurer à partir d'un snapshot précédent.",
|
||||
"description": "Vous pouvez également restaurer à partir d'un instantané précédent.",
|
||||
"hide_log": "Masquer le journal",
|
||||
"in_progress": "Restauration en cours",
|
||||
"show_log": "Afficher le journal"
|
||||
|
||||
@@ -37,6 +37,29 @@
|
||||
"unknown": "Ûnbekend"
|
||||
}
|
||||
},
|
||||
"supervisor": {
|
||||
"common": {
|
||||
"close": "Slute"
|
||||
},
|
||||
"dialog": {
|
||||
"repositories": {
|
||||
"add": "Tafoegje"
|
||||
},
|
||||
"restart_addon": {
|
||||
"confirm_text": "Start add-on opnij op",
|
||||
"text": "Wolle jo de add-on opnij starte mei jo feroaringen?"
|
||||
},
|
||||
"update": {
|
||||
"create_snapshot": "Meitsje in momintopname fan {name} foardat jo bywurkje",
|
||||
"snapshot": "Momintopname",
|
||||
"snapshotting": "Momintopname oanmeitsjen fan {name}",
|
||||
"updating": "{name} bywurkje nei ferzje {version}"
|
||||
}
|
||||
},
|
||||
"my": {
|
||||
"error_addon_not_found": "Add-on net fûn"
|
||||
}
|
||||
},
|
||||
"ui": {
|
||||
"card": {
|
||||
"climate": {
|
||||
@@ -170,6 +193,11 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"blueprint": {
|
||||
"overview": {
|
||||
"share_blueprint": "Diel blaudruk"
|
||||
}
|
||||
},
|
||||
"cloud": {
|
||||
"alexa": {
|
||||
"title": "Alexa"
|
||||
@@ -254,6 +282,13 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"supervisor": {
|
||||
"ask": "Om help freegje",
|
||||
"system_health": "Kontrolearje systeem sûnens",
|
||||
"title": "Koe it paniel Supervisor net lade!"
|
||||
}
|
||||
},
|
||||
"lovelace": {
|
||||
"cards": {
|
||||
"starting": {
|
||||
|
||||
@@ -1,5 +1,146 @@
|
||||
{
|
||||
"supervisor": {
|
||||
"common": {
|
||||
"close": "Pechar"
|
||||
},
|
||||
"dialog": {
|
||||
"network": {
|
||||
"connected_to": "Conectado a {ssid}",
|
||||
"dhcp": "DHCP",
|
||||
"disabled": "Desactivado",
|
||||
"dns_servers": "Servidores DNS",
|
||||
"failed_to_change": "Non se puido cambiar a configuración de rede",
|
||||
"gateway": "Enderezo de porta de enlace",
|
||||
"ip_netmask": "Enderezo IP / máscara de rede",
|
||||
"open": "Aberto",
|
||||
"scan_ap": "Buscar puntos de acceso",
|
||||
"static": "Estático",
|
||||
"title": "Configuración de rede",
|
||||
"unsaved": "Tes cambios sen gardar, estes perderanse se cambias a pestana, queres continuar?",
|
||||
"warning": "Se está a cambiar os enderezos de wifi, IP ou porta de enlace, podería perder a súa conexión!",
|
||||
"wep": "WEP",
|
||||
"wpa": "wpa-psk"
|
||||
},
|
||||
"registries": {
|
||||
"add_new_registry": "Engadir un novo rexistro",
|
||||
"add_registry": "Engadir rexistro",
|
||||
"failed_to_add": "Non se puido engadir o rexistro",
|
||||
"failed_to_remove": "Non se puido eliminar o rexistro",
|
||||
"no_registries": "Non hai rexistros configurados",
|
||||
"password": "Contrasinal",
|
||||
"registry": "Rexistro",
|
||||
"remove": "Eliminar",
|
||||
"title_add": "Engade un novo rexistro de contedor",
|
||||
"title_manage": "Xestionar rexistros de contedores",
|
||||
"username": "Nome de usuario"
|
||||
},
|
||||
"repositories": {
|
||||
"add": "Engadir",
|
||||
"remove": "Eliminar",
|
||||
"title": "Xestionar os repositorios de complementos"
|
||||
},
|
||||
"restart_addon": {
|
||||
"confirm_text": "Reiniciar complemento",
|
||||
"text": "¿Queres reiniciar o complemento cos teus cambios?"
|
||||
},
|
||||
"update": {
|
||||
"create_snapshot": "Crea unha instantánea de {name} antes de actualizar",
|
||||
"snapshot": "Instantánea",
|
||||
"snapshotting": "Creando instantánea de {name}",
|
||||
"updating": "Actualizando {name} á versión {version}"
|
||||
}
|
||||
},
|
||||
"my": {
|
||||
"error_addon_not_found": "Complemento non atopado"
|
||||
},
|
||||
"snapshot": {
|
||||
"addons": "Complementos",
|
||||
"available_snapshots": "Instantáneas dispoñibles",
|
||||
"could_not_create": "Non se puido crear unha instantánea",
|
||||
"create": "Crear",
|
||||
"create_blocked_not_running": "Non é posible crear unha instantánea neste momento porque o sistema está {state} .",
|
||||
"create_snapshot": "Crear instantánea",
|
||||
"description": "As instantáneas permiten facer copias de seguridade e restaurar facilmente todos os datos da súa instancia de Home Assistant.",
|
||||
"enter_password": "Insira un contrasinal.",
|
||||
"folder": {
|
||||
"addons/local": "Complementos locais",
|
||||
"homeassistant": "Configuración de Home Assistant",
|
||||
"media": "Medios",
|
||||
"share": "Compartir",
|
||||
"ssl": "SSL"
|
||||
},
|
||||
"folders": "Carpetas",
|
||||
"full_snapshot": "Instantánea completa",
|
||||
"name": "Nome",
|
||||
"no_snapshots": "Aínda non tes instantáneas.",
|
||||
"partial_snapshot": "Instantánea parcial",
|
||||
"password": "Contrasinal",
|
||||
"password_protected": "Protexido por contrasinal",
|
||||
"password_protection": "Protección por contrasinal",
|
||||
"security": "Seguridade",
|
||||
"type": "Tipo",
|
||||
"upload_snapshot": "Subir instantánea"
|
||||
},
|
||||
"system": {
|
||||
"core": {
|
||||
"cpu_usage": "Uso de CPU principal",
|
||||
"ram_usage": "Uso de RAM principal"
|
||||
},
|
||||
"host": {
|
||||
"change": "Cambiar",
|
||||
"change_hostname": "Cambiar nome de host",
|
||||
"confirm_reboot": "Seguro que queres reiniciar o host?",
|
||||
"confirm_shutdown": "Seguro que queres apagar o host?",
|
||||
"docker_version": "Versión Docker",
|
||||
"failed_to_get_hardware_list": "Non foi posíbel obter a lista de hardware",
|
||||
"failed_to_import_from_usb": "Non se puido importar dende USB",
|
||||
"failed_to_reboot": "Non se puido reiniciar o host",
|
||||
"failed_to_set_hostname": "Non se puido configurar o nome do host",
|
||||
"failed_to_shutdown": "Non se puido apagar o host",
|
||||
"hardware": "Hardware",
|
||||
"hostname": "Nome do host",
|
||||
"import_from_usb": "Importar dende USB",
|
||||
"ip_address": "Enderezo IP",
|
||||
"new_hostname": "Insira un novo nome de host:",
|
||||
"operating_system": "Sistema operativo",
|
||||
"reboot_host": "Reiniciar o host",
|
||||
"shutdown_host": "Apagar o host",
|
||||
"used_space": "Espazo usado"
|
||||
},
|
||||
"supervisor": {
|
||||
"unhealthy_reason": {
|
||||
"docker": "O entorno Docker non funciona correctamente",
|
||||
"privileged": "O supervisor non é privilexiado",
|
||||
"setup": "Fallou a configuración do supervisor",
|
||||
"supervisor": "Non se puido actualizar o supervisor"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"ui": {
|
||||
"components": {
|
||||
"logbook": {
|
||||
"show_trace": "Mostrar rastro"
|
||||
}
|
||||
},
|
||||
"dialogs": {
|
||||
"more_info_control": {
|
||||
"remote": {
|
||||
"activity": "Actividade actual"
|
||||
}
|
||||
},
|
||||
"zha_device_info": {
|
||||
"buttons": {
|
||||
"device_children": "Ver fillos"
|
||||
},
|
||||
"device_children": "Dispositivos Zigbee fillos"
|
||||
}
|
||||
},
|
||||
"errors": {
|
||||
"config": {
|
||||
"no_template_editor_support": "Os modelos non son compatibles co editor visual"
|
||||
}
|
||||
},
|
||||
"panel": {
|
||||
"config": {
|
||||
"automation": {
|
||||
@@ -13,7 +154,33 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"picker": {
|
||||
"dev_automation": "Depurar automatización",
|
||||
"dev_only_editable": "Só se poden depurar os automatismos definidos en automations.yaml"
|
||||
}
|
||||
},
|
||||
"blueprint": {
|
||||
"overview": {
|
||||
"share_blueprint": "Compartir plano",
|
||||
"share_blueprint_no_url": "O plano non se pode compartir, sen URL de orixe"
|
||||
}
|
||||
},
|
||||
"zha": {
|
||||
"visualization": {
|
||||
"auto_zoom": "Zoom automático"
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"go_back": "Retornar",
|
||||
"supervisor": {
|
||||
"ask": "Pide axuda",
|
||||
"observer": "Comprobe o observador",
|
||||
"reboot": "Tenta reiniciar o host",
|
||||
"system_health": "Comprobe a saúde do sistema",
|
||||
"title": "Non se puido cargar o panel de supervisores.",
|
||||
"wait": "Se estás principiando, asegúrate de terlle dado ao supervisor o tempo suficiente para comezar."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -146,6 +146,9 @@
|
||||
"hassio_api": {
|
||||
"title": "Supervisor API hozzáférés"
|
||||
},
|
||||
"host_network": {
|
||||
"description": "A bővítmények általában a saját elszigetelt hálózati rétegükben futnak, ami megakadályozza, hogy hozzáférjenek a gazdagép operációs rendszer hálózatához. Bizonyos esetekben ez a hálózati elkülönítés korlátozhatja a bővítményeket a szolgáltatásaik nyújtásában, ezért az elkülönítést a bővítmény szerzője feloldhatja, így a bővítmény teljes hozzáférést biztosít a gazdaszámítógép hálózati képességeihez. Ez több hálózati lehetőséget biztosít a bővítménynek, de csökkenti a biztonságot, ezért a bővítmény biztonsági besorolása csökken, ha ezt a beállítást a bővítmény használja."
|
||||
},
|
||||
"label": {
|
||||
"apparmor": "apparmor",
|
||||
"auth": "auth",
|
||||
@@ -164,12 +167,16 @@
|
||||
"default": "alapértelmezett",
|
||||
"homeassistant": "homeassistant",
|
||||
"manager": "manager"
|
||||
},
|
||||
"stage": {
|
||||
"title": "Kiegészítő szakasz"
|
||||
}
|
||||
},
|
||||
"changelog": "Változási napló",
|
||||
"cpu_usage": "Bővítmény CPU-használat",
|
||||
"hostname": "Gazdagép neve",
|
||||
"install": "telepítés",
|
||||
"not_available_version": "A(z) {core_version_installed} otthoni segédet futtatja, hogy frissítse az Otthoni segéd legalább {core_version_needed} verzióját.",
|
||||
"open_web_ui": "Webes felhasználói felület megnyitása",
|
||||
"option": {
|
||||
"auto_update": {
|
||||
@@ -195,7 +202,8 @@
|
||||
"restart": "újraindítás",
|
||||
"start": "indítás",
|
||||
"stop": "leállítás",
|
||||
"uninstall": "eltávolítás"
|
||||
"uninstall": "eltávolítás",
|
||||
"visit_addon_page": "További részletekért látogasson el a(z) {name} oldalra."
|
||||
},
|
||||
"documentation": {
|
||||
"get_documentation": "Nem sikerült lekérni a bővítmény dokumentációját, {error}"
|
||||
@@ -398,7 +406,8 @@
|
||||
"unhealthy_reason": {
|
||||
"docker": "A Docker futtatókörnyezet nem működik megfelelően",
|
||||
"setup": "A Supervisor beállítása sikertelen volt",
|
||||
"supervisor": "A Supervisor nem tudott frissíteni"
|
||||
"supervisor": "A Supervisor nem tudott frissíteni",
|
||||
"untrusted": "Nem megbízható tartalom észlelése"
|
||||
},
|
||||
"unhealthy_title": "A telepítés nem megfelelő",
|
||||
"unsupported_reason": {
|
||||
@@ -795,7 +804,8 @@
|
||||
"service-control": {
|
||||
"required": "Ez a mező kötelező",
|
||||
"service_data": "Szolgáltatás adatai",
|
||||
"target": "Célok"
|
||||
"target": "Célok",
|
||||
"target_description": "Mit használjon ez a szolgáltatás célzott területként, eszközként vagy entitásként?"
|
||||
},
|
||||
"service-picker": {
|
||||
"service": "Szolgáltatás"
|
||||
@@ -1209,10 +1219,14 @@
|
||||
"device_id": {
|
||||
"action": "Művelet",
|
||||
"extra_fields": {
|
||||
"brightness_pct": "Fényerő",
|
||||
"code": "Kód",
|
||||
"humidity": "Páratartalom",
|
||||
"message": "Üzenet",
|
||||
"mode": "Üzemmód",
|
||||
"position": "Pozíció",
|
||||
"title": "Cím"
|
||||
"title": "Cím",
|
||||
"value": "Érték"
|
||||
},
|
||||
"label": "Eszköz"
|
||||
},
|
||||
@@ -1285,7 +1299,9 @@
|
||||
"extra_fields": {
|
||||
"above": "Felett",
|
||||
"below": "Alatt",
|
||||
"for": "Időtartam"
|
||||
"for": "Időtartam",
|
||||
"hvac_mode": "HVAC üzemmód",
|
||||
"preset_mode": "Előre beállított üzemmód"
|
||||
},
|
||||
"label": "Eszköz"
|
||||
},
|
||||
@@ -1991,6 +2007,7 @@
|
||||
"devices": "{count} {count, plural,\n one {eszköz}\n other {eszköz}\n}",
|
||||
"disable_restart_confirm": "Indítsa újra a Home Assistant programot az integráció lekapcsolásának befejezéséhez",
|
||||
"disable": {
|
||||
"disable_confirm": "Biztosan letiltja ezt a konfigurációs bejegyzést? Eszközeit és entitásait letiltjuk.",
|
||||
"disabled": "Letiltva",
|
||||
"disabled_by": {
|
||||
"device": "eszköz",
|
||||
@@ -2632,6 +2649,7 @@
|
||||
"caption": "Hálózat"
|
||||
},
|
||||
"visualization": {
|
||||
"auto_zoom": "Automatikus nagyítás",
|
||||
"caption": "Megjelenítés",
|
||||
"header": "Hálózati megjelenítés",
|
||||
"highlight_label": "Kiemelt ezközök",
|
||||
@@ -2669,18 +2687,37 @@
|
||||
"no_zones_created_yet": "Úgy tűnik, még nem hoztál létre zónákat."
|
||||
},
|
||||
"zwave_js": {
|
||||
"add_node": {
|
||||
"view_device": "Eszköz megtekintése"
|
||||
},
|
||||
"button": "Konfigurálja",
|
||||
"common": {
|
||||
"close": "Bezárás"
|
||||
"add_node": "Node hozzáadása",
|
||||
"close": "Bezárás",
|
||||
"network": "Hálózat",
|
||||
"node_id": "Node azonosító",
|
||||
"remove_node": "Node eltávolítása"
|
||||
},
|
||||
"dashboard": {
|
||||
"dump_not_ready_confirm": "Letöltés",
|
||||
"server_version": "Szerver verzió"
|
||||
},
|
||||
"device_info": {
|
||||
"device_config": "Eszköz beállítása"
|
||||
},
|
||||
"navigation": {
|
||||
"network": "Hálózat"
|
||||
},
|
||||
"network_status": {
|
||||
"connected": "Csatlakoztatva",
|
||||
"connecting": "Csatlakozás",
|
||||
"unknown": "Ismeretlen"
|
||||
},
|
||||
"node_config": {
|
||||
"error_device_not_found": "Az eszköz nem található",
|
||||
"header": "Z-Wave eszköz konfigurálása",
|
||||
"parameter_is_read_only": "Ez a paraméter csak olvasható"
|
||||
},
|
||||
"node_status": {
|
||||
"unknown": "Ismeretlen"
|
||||
}
|
||||
@@ -2855,6 +2892,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"go_back": "Visszalépés",
|
||||
"supervisor": {
|
||||
"ask": "Kérjen segítséget",
|
||||
"reboot": "Próbálja újraindítani a gazdagépet",
|
||||
"system_health": "A rendszer állapotának ellenőrzése",
|
||||
"title": "Nem sikerült betölteni a Supervisor panelt!"
|
||||
}
|
||||
},
|
||||
"history": {
|
||||
"ranges": {
|
||||
"last_week": "Múlt hét",
|
||||
|
||||
@@ -756,8 +756,8 @@
|
||||
"no_history_found": "Tidak ada riwayat status ditemukan."
|
||||
},
|
||||
"logbook": {
|
||||
"by": "berdasarkan",
|
||||
"by_service": "berdasarkan layanan",
|
||||
"by": "oleh",
|
||||
"by_service": "oleh layanan",
|
||||
"entries_not_found": "Tidak ada entri buku log yang ditemukan.",
|
||||
"messages": {
|
||||
"became_unavailable": "menjadi tidak tersedia",
|
||||
@@ -771,7 +771,7 @@
|
||||
"turned_off": "dimatikan",
|
||||
"turned_on": "dinyalakan",
|
||||
"was_at_home": "terdeteksi di rumah",
|
||||
"was_at_state": "terdeteksi pada {state}",
|
||||
"was_at_state": "terdeteksi di {state}",
|
||||
"was_away": "terdeteksi keluar",
|
||||
"was_closed": "telah ditutup",
|
||||
"was_connected": "telah terhubung",
|
||||
@@ -785,7 +785,8 @@
|
||||
"was_unlocked": "tidak terkunci",
|
||||
"was_unplugged": "telah dicabut",
|
||||
"was_unsafe": "tidak aman"
|
||||
}
|
||||
},
|
||||
"show_trace": "Tampilkan jejak"
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "Browser Anda tidak mendukung elemen audio.",
|
||||
@@ -1145,6 +1146,7 @@
|
||||
"buttons": {
|
||||
"add": "Tambahkan Perangkat melalui perangkat ini",
|
||||
"clusters": "Kelola Cluster",
|
||||
"device_children": "Lihat Anakan",
|
||||
"reconfigure": "Konfigurasi Ulang Perangkat",
|
||||
"remove": "Hapus Perangkat",
|
||||
"view_in_visualization": "Tampilkan dalam Visualisasi",
|
||||
@@ -1153,6 +1155,7 @@
|
||||
"confirmations": {
|
||||
"remove": "Yakin ingin menghapus perangkat?"
|
||||
},
|
||||
"device_children": "Anakan perangkat Zigbee",
|
||||
"device_signature": "Tanda tangan perangkat Zigbee",
|
||||
"last_seen": "Terakhir Terlihat",
|
||||
"manuf": "oleh {manufacturer}",
|
||||
@@ -1187,6 +1190,7 @@
|
||||
"key_missing": "Kunci yang diperlukan \"{key}\" tidak ada.",
|
||||
"key_not_expected": "Kunci \"{key}\" tidak diharapkan atau tidak didukung oleh editor visual.",
|
||||
"key_wrong_type": "Nilai yang disediakan untuk \"{key}\" tidak didukung oleh editor visual. Kami mendukung ({type_correct}) tetapi diterima ({type_wrong}).",
|
||||
"no_template_editor_support": "Templat tidak didukung di editor visual",
|
||||
"no_type_provided": "Tidak ada tipe yang tersedia."
|
||||
}
|
||||
},
|
||||
@@ -1626,6 +1630,8 @@
|
||||
},
|
||||
"introduction": "Konfigurasi blueprint memungkinkan Anda untuk mengimpor dan mengelola blueprint.",
|
||||
"learn_more": "Pelajari lebih lanjut tentang blueprint",
|
||||
"share_blueprint": "Bagikan blueprint",
|
||||
"share_blueprint_no_url": "Gagal membagikan blueprint: tidak ada sumber URL",
|
||||
"use_blueprint": "Buat otomasi"
|
||||
}
|
||||
},
|
||||
@@ -2522,7 +2528,7 @@
|
||||
"generic": "Muat ulang entitas kamera IP generik",
|
||||
"generic_thermostat": "Muat ulang entitas termostat generik",
|
||||
"group": "Muat ulang grup, entitas grup, dan layanan notifikasi grup",
|
||||
"heading": "Konfigurasi YAML dimuat ulang",
|
||||
"heading": "Pemuatan ulang konfigurasi YAML",
|
||||
"history_stats": "Muat ulang entitas statistik riwayat",
|
||||
"homekit": "Muat ulang HomeKit",
|
||||
"input_boolean": "Muat ulang input boolean",
|
||||
@@ -2530,7 +2536,7 @@
|
||||
"input_number": "Muat ulang input bilangan",
|
||||
"input_select": "Muat ulang input pilihan",
|
||||
"input_text": "Muat ulang input teks",
|
||||
"introduction": "Beberapa bagian Home Assistant dapat memuat ulang tanpa memerlukan memulai ulang. Penekanan tombol muat ulang akan membatalkan konfigurasi YAML saat ini dan memuat konfigurasi yang baru.",
|
||||
"introduction": "Beberapa bagian Home Assistant dapat dimuat ulang tanpa memerlukan memulai ulang. Penekanan tombol muat ulang akan membatalkan konfigurasi YAML yang sedang dijalankan dan memuat konfigurasi yang baru.",
|
||||
"min_max": "Muat ulang entitas min/maks",
|
||||
"mqtt": "Muat ulang entitas MQTT yang dikonfigurasi secara manual",
|
||||
"person": "Muat ulang orang",
|
||||
@@ -2722,6 +2728,7 @@
|
||||
"caption": "Jaringan"
|
||||
},
|
||||
"visualization": {
|
||||
"auto_zoom": "Perbesaran Otomatis",
|
||||
"caption": "Visualisasi",
|
||||
"header": "Visualisasi Jaringan",
|
||||
"highlight_label": "Sorot Perangkat",
|
||||
@@ -2987,6 +2994,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"go_back": "Kembali",
|
||||
"supervisor": {
|
||||
"ask": "Dapatkan bantuan",
|
||||
"observer": "Periksa Observer",
|
||||
"reboot": "Coba me-reboot host",
|
||||
"system_health": "Periksa Kesehatan Sistem",
|
||||
"title": "Tidak dapat memuat panel Supervisor!",
|
||||
"wait": "Jika Anda baru saja memulai, pastikan Anda telah memberikan cukup waktu kepada supervisor untuk memulai."
|
||||
}
|
||||
},
|
||||
"history": {
|
||||
"ranges": {
|
||||
"last_week": "Minggu lalu",
|
||||
|
||||
@@ -373,7 +373,7 @@
|
||||
"panel": {
|
||||
"dashboard": "Pannello di controllo",
|
||||
"snapshots": "Istantanee",
|
||||
"store": "Negozio dei componenti aggiuntivi",
|
||||
"store": "Raccolta di Componenti Aggiuntivi",
|
||||
"system": "Sistema"
|
||||
},
|
||||
"snapshot": {
|
||||
@@ -467,12 +467,14 @@
|
||||
"docker": "L'ambiente Docker non funziona correttamente",
|
||||
"privileged": "Il Supervisor non è privilegiato",
|
||||
"setup": "Configurazione del Supervisor non riuscita",
|
||||
"supervisor": "Il Supervisor non è stato in grado di aggiornare"
|
||||
"supervisor": "Il Supervisor non è stato in grado di aggiornare",
|
||||
"untrusted": "Rilevato contenuto non attendibile"
|
||||
},
|
||||
"unhealthy_title": "L'installazione non è integra",
|
||||
"unsupported_description": "Di seguito è riportato un elenco dei problemi riscontrati con l'installazione, fare clic sui collegamenti per scoprire come risolvere i problemi.",
|
||||
"unsupported_reason": {
|
||||
"container": "Container noti per causare problemi",
|
||||
"content-trust": "La convalida dell'attendibilità del contenuto è disabilitata",
|
||||
"dbus": "DBUS",
|
||||
"docker_configuration": "Configurazione Docker",
|
||||
"docker_version": "Versione Docker",
|
||||
@@ -691,8 +693,8 @@
|
||||
"title": "Errore durante il recupero dei componenti aggiuntivi"
|
||||
},
|
||||
"no_supervisor": {
|
||||
"description": "Nessun Supervisore trovato, quindi non è stato possibile caricare i componenti aggiuntivi.",
|
||||
"title": "Nessun Supervisore"
|
||||
"description": "Nessun Supervisor trovato, quindi i componenti aggiuntivi non possono essere caricati.",
|
||||
"title": "Nessun Supervisor"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -785,7 +787,8 @@
|
||||
"was_unlocked": "è stato sbloccato",
|
||||
"was_unplugged": "è stato scollegato",
|
||||
"was_unsafe": "non era sicuro"
|
||||
}
|
||||
},
|
||||
"show_trace": "Mostra la traccia"
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "Il tuo browser non supporta l'elemento audio.",
|
||||
@@ -1297,10 +1300,15 @@
|
||||
"device_id": {
|
||||
"action": "Azione",
|
||||
"extra_fields": {
|
||||
"brightness_pct": "Luminosità",
|
||||
"code": "Codice",
|
||||
"flash": "Flash",
|
||||
"humidity": "Umidità",
|
||||
"message": "Messaggio",
|
||||
"mode": "Modalità",
|
||||
"position": "Apertura",
|
||||
"title": "Titolo"
|
||||
"title": "Titolo",
|
||||
"value": "Valore"
|
||||
},
|
||||
"label": "Dispositivo"
|
||||
},
|
||||
@@ -1373,7 +1381,9 @@
|
||||
"extra_fields": {
|
||||
"above": "Maggiore di",
|
||||
"below": "Minore di",
|
||||
"for": "Durata"
|
||||
"for": "Durata",
|
||||
"hvac_mode": "Modalità HVAC",
|
||||
"preset_mode": "Modalità Predefinita"
|
||||
},
|
||||
"label": "Dispositivo"
|
||||
},
|
||||
@@ -1566,6 +1576,8 @@
|
||||
"add_automation": "Aggiungi Automazione",
|
||||
"delete_automation": "Cancellare l'automazione",
|
||||
"delete_confirm": "Sei sicuro di voler eliminare questa automazione?",
|
||||
"dev_automation": "Debug dell'automazione",
|
||||
"dev_only_editable": "È possibile eseguire il debug solo delle automazioni definite in automations.yaml.",
|
||||
"duplicate": "Duplica",
|
||||
"duplicate_automation": "Duplica automazione",
|
||||
"edit_automation": "Modifica automazione",
|
||||
@@ -2803,6 +2815,7 @@
|
||||
"server_version": "Versione del server"
|
||||
},
|
||||
"device_info": {
|
||||
"device_config": "Configura il dispositivo",
|
||||
"node_ready": "Nodo pronto",
|
||||
"node_status": "Stato del Nodo",
|
||||
"zwave_info": "Informazioni Z-Wave"
|
||||
@@ -2815,6 +2828,15 @@
|
||||
"connecting": "In collegamento",
|
||||
"unknown": "Sconosciuto"
|
||||
},
|
||||
"node_config": {
|
||||
"attribution": "I parametri e le descrizioni di configurazione del dispositivo sono forniti da {device_database}",
|
||||
"battery_device_notice": "I dispositivi batteria devono essere attivi per aggiornare la loro configurazione. Fare riferimento al manuale del dispositivo per istruzioni su come riattivare il dispositivo.",
|
||||
"error_device_not_found": "Dispositivo non trovato",
|
||||
"header": "Configurazione del dispositivo Z-Wave",
|
||||
"introduction": "Gestire e regolare i parametri di configurazione specifici del dispositivo (nodo) per il dispositivo selezionato",
|
||||
"parameter_is_read_only": "Questo parametro è di sola lettura.",
|
||||
"zwave_js_device_database": "Database dei dispositivi Z-Wave JS"
|
||||
},
|
||||
"node_status": {
|
||||
"alive": "Attivo",
|
||||
"asleep": "Addormentato",
|
||||
|
||||
@@ -263,6 +263,7 @@
|
||||
},
|
||||
"common": {
|
||||
"cancel": "キャンセル",
|
||||
"close": "閉じる",
|
||||
"description": "説明",
|
||||
"error": {
|
||||
"unknown": "不明なエラー",
|
||||
@@ -359,6 +360,7 @@
|
||||
},
|
||||
"my": {
|
||||
"error": "不明なエラーが発生しました",
|
||||
"error_addon_not_found": "アドオンが見つかりません",
|
||||
"faq_link": "マイホームアシスタントFAQ",
|
||||
"not_supported": "このリダイレクトは、HomeAssistantインスタンスではサポートされていません。 サポートされているリダイレクトとそれらが導入されたバージョンについては、{link}を確認してください。"
|
||||
},
|
||||
@@ -459,12 +461,14 @@
|
||||
"docker": "Docker 環境が正常に動作していません",
|
||||
"privileged": "Supervisorには特権がありません",
|
||||
"setup": "Supervisorのセットアップに失敗しました",
|
||||
"supervisor": "Supervisorを更新できませんでした"
|
||||
"supervisor": "Supervisorを更新できませんでした",
|
||||
"untrusted": "信頼できないコンテンツが検出されました"
|
||||
},
|
||||
"unhealthy_title": "インストールが正常でない",
|
||||
"unsupported_description": "以下は、インストールに関する問題の一覧です。",
|
||||
"unsupported_reason": {
|
||||
"container": "問題が発生することが知られているコンテナ",
|
||||
"content-trust": "コンテンツ信頼の検証が無効になっています",
|
||||
"dbus": "DBUS",
|
||||
"docker_configuration": "Dockerの設定",
|
||||
"docker_version": "Dockerのバージョン",
|
||||
@@ -775,7 +779,8 @@
|
||||
"was_unlocked": "解錠しました",
|
||||
"was_unplugged": "プラグが抜かれました",
|
||||
"was_unsafe": "安全ではなかった"
|
||||
}
|
||||
},
|
||||
"show_trace": "トレースの表示"
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "お使いのブラウザはオーディオをサポートしていません。",
|
||||
@@ -1003,6 +1008,9 @@
|
||||
"person": {
|
||||
"create_zone": "現在地からゾーンを作成"
|
||||
},
|
||||
"remote": {
|
||||
"activity": "現在のアクティビティ"
|
||||
},
|
||||
"restored": {
|
||||
"confirm_remove_text": "このエンティティを削除しますか?",
|
||||
"confirm_remove_title": "エンティティを削除しますか?",
|
||||
@@ -1132,6 +1140,7 @@
|
||||
"buttons": {
|
||||
"add": "このデバイス経由でデバイスを追加",
|
||||
"clusters": "クラスタの管理",
|
||||
"device_children": "子を見る",
|
||||
"reconfigure": "デバイスを再設定",
|
||||
"remove": "デバイスを削除",
|
||||
"view_in_visualization": "ビジュアライゼーションで表示",
|
||||
@@ -1140,6 +1149,7 @@
|
||||
"confirmations": {
|
||||
"remove": "デバイスを削除してもよろしいですか?"
|
||||
},
|
||||
"device_children": "Zigbeeデバイスの子",
|
||||
"device_signature": "Zigbee デバイス署名",
|
||||
"last_seen": "最後に見た",
|
||||
"manuf": "{manufacturer}",
|
||||
@@ -1174,6 +1184,7 @@
|
||||
"key_missing": "必要なキー \"{key}\" がありません。",
|
||||
"key_not_expected": "キー \" {key} \"は予期されていないか、ビジュアルエディターでサポートされていません。",
|
||||
"key_wrong_type": "\"{key}\" に指定された値は、ビジュアル エディターではサポートされていません。({type_correct}) をサポートしていますが、受信しました ({type_wrong})。",
|
||||
"no_template_editor_support": "ビジュアルエディタでサポートされていないテンプレート",
|
||||
"no_type_provided": "タイプは提供されていません。"
|
||||
}
|
||||
},
|
||||
@@ -1281,10 +1292,15 @@
|
||||
"device_id": {
|
||||
"action": "アクション",
|
||||
"extra_fields": {
|
||||
"brightness_pct": "明るさ",
|
||||
"code": "コード",
|
||||
"flash": "フラッシュ",
|
||||
"humidity": "湿度",
|
||||
"message": "メッセージ",
|
||||
"mode": "モード",
|
||||
"position": "ポジション",
|
||||
"title": "タイトル"
|
||||
"title": "タイトル",
|
||||
"value": "値"
|
||||
},
|
||||
"label": "デバイス"
|
||||
},
|
||||
@@ -1357,7 +1373,9 @@
|
||||
"extra_fields": {
|
||||
"above": "上",
|
||||
"below": "以下に",
|
||||
"for": "期間"
|
||||
"for": "期間",
|
||||
"hvac_mode": "HVACモード",
|
||||
"preset_mode": "プリセットモード"
|
||||
},
|
||||
"label": "デバイス"
|
||||
},
|
||||
@@ -1550,6 +1568,8 @@
|
||||
"add_automation": "オートメーションの追加",
|
||||
"delete_automation": "オートメーションを削除",
|
||||
"delete_confirm": "このオートメーションを削除してもよろしいですか?",
|
||||
"dev_automation": "デバッグの自動化",
|
||||
"dev_only_editable": "automations.yaml で定義されたオートメーションのみがデバッグ可能です。",
|
||||
"duplicate": "複製",
|
||||
"duplicate_automation": "オートメーションを複製",
|
||||
"edit_automation": "オートメーションを編集",
|
||||
@@ -1613,6 +1633,8 @@
|
||||
},
|
||||
"introduction": "設計図エディターを使用すると、設計図を作成および編集できます。",
|
||||
"learn_more": "設計図の詳細",
|
||||
"share_blueprint": "設計図を共有する",
|
||||
"share_blueprint_no_url": "設計図を共有できません: ソース URL がありません",
|
||||
"use_blueprint": "オートメーションを作成"
|
||||
}
|
||||
},
|
||||
@@ -2066,6 +2088,7 @@
|
||||
"devices": "{count} {count, plural,\n one {デバイス}\n other {デバイス}\n}",
|
||||
"disable_restart_confirm": "Homeassistantを再起動して、このintegrationを無効にします。",
|
||||
"disable": {
|
||||
"disable_confirm": "この設定項目を無効にしてよろしいですか?そのデバイスやエンティティは無効になります。",
|
||||
"disabled": "無効",
|
||||
"disabled_by": {
|
||||
"device": "デバイス",
|
||||
@@ -2708,6 +2731,7 @@
|
||||
"caption": "ネットワーク"
|
||||
},
|
||||
"visualization": {
|
||||
"auto_zoom": "自動ズーム",
|
||||
"caption": "可視化",
|
||||
"header": "ネットワークの視覚化",
|
||||
"highlight_label": "デバイスを強調表示",
|
||||
@@ -2783,6 +2807,7 @@
|
||||
"server_version": "サーバーバージョン"
|
||||
},
|
||||
"device_info": {
|
||||
"device_config": "デバイスの設定",
|
||||
"node_ready": "ノードの準備完了",
|
||||
"node_status": "ノードの状態",
|
||||
"zwave_info": "Z-Wave情報"
|
||||
@@ -2795,6 +2820,15 @@
|
||||
"connecting": "接続",
|
||||
"unknown": "不明"
|
||||
},
|
||||
"node_config": {
|
||||
"attribution": "デバイスの構成パラメータと説明は、{device_database}で提供されます。",
|
||||
"battery_device_notice": "バッテリ デバイスは、設定を更新するためにスリープ状態にする必要があります。デバイスのスリープ解除方法については、デバイスのマニュアルを参照してください。",
|
||||
"error_device_not_found": "デバイスが見つかりません",
|
||||
"header": "Z-Waveデバイスの設定",
|
||||
"introduction": "選択したデバイスのデバイス(ノード)固有の設定パラメータを管理および調整する",
|
||||
"parameter_is_read_only": "このパラメータは読み取り専用です。",
|
||||
"zwave_js_device_database": "Z-Wave JSデバイスデータベース"
|
||||
},
|
||||
"node_status": {
|
||||
"alive": "作動中",
|
||||
"asleep": "スリープ",
|
||||
@@ -2949,6 +2983,7 @@
|
||||
"states": {
|
||||
"alert_entity_field": "エンティティは必須フィールドです",
|
||||
"attributes": "属性",
|
||||
"copy_id": "ID をクリップボードにコピー",
|
||||
"current_entities": "現在のエンティティ",
|
||||
"description1": "Home Assistant内でデバイスの表現を設定します。",
|
||||
"description2": "実際のデバイスと通信しません。",
|
||||
@@ -2983,6 +3018,17 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"go_back": "戻る",
|
||||
"supervisor": {
|
||||
"ask": "助けを求める",
|
||||
"observer": "オブザーバーの確認",
|
||||
"reboot": "ホストの再起動を試みる",
|
||||
"system_health": "システムの状態の確認",
|
||||
"title": "Supervisorパネルを読み込めませんでした。",
|
||||
"wait": "開始したばかりの場合は、開始するのに十分な時間をsupervisorに与えていることを確認してください。"
|
||||
}
|
||||
},
|
||||
"history": {
|
||||
"ranges": {
|
||||
"last_week": "先週",
|
||||
|
||||
+249
-227
File diff suppressed because it is too large
Load Diff
@@ -1135,7 +1135,10 @@
|
||||
"device_id": {
|
||||
"action": "Aktioun",
|
||||
"extra_fields": {
|
||||
"code": "Code"
|
||||
"code": "Code",
|
||||
"humidity": "Loftfiichtegkeet",
|
||||
"mode": "Modus",
|
||||
"value": "Wäert"
|
||||
},
|
||||
"label": "Apparat"
|
||||
},
|
||||
@@ -1410,7 +1413,7 @@
|
||||
"introduction": "Den Automatismen-Editor erméiglecht et fir Automatismen z'erstellen an ze änneren. Lies w.e.g. [d'Instruktioune](https://home-assistant.io/docs/automation/editor/) fir sécher ze stellen dass den Home Assistant richteg agestallt ass.",
|
||||
"learn_more": "Méi iwwert Automatioune liesen",
|
||||
"no_automations": "Keen Automatismus fir ze ännere fonnt",
|
||||
"only_editable": "Nëmmen Automatiounen déi am automations.yaml séfinéiert sinn kënnen editéiert ginn.",
|
||||
"only_editable": "Nëmmen Automatiounen déi am automations.yaml définéiert sinn kënnen editéiert ginn.",
|
||||
"pick_automation": "Automatismus fir ze änneren auswielen",
|
||||
"show_info_automation": "Informatiounen vum Automatisme uweisen"
|
||||
},
|
||||
|
||||
@@ -275,7 +275,7 @@
|
||||
"unknown": "Ukjent feil",
|
||||
"update_failed": "Oppdatering mislyktes"
|
||||
},
|
||||
"failed_to_restart_name": "Kan ikke starte {name} på nytt",
|
||||
"failed_to_restart_name": "Kunne ikke starte {name} på nytt",
|
||||
"failed_to_update_name": "Kunne ikke oppdatere {name}",
|
||||
"learn_more": "Lær mer",
|
||||
"new_version_available": "Ny versjon tilgjengelig",
|
||||
@@ -435,7 +435,7 @@
|
||||
"new_hostname": "Vennligst skriv inn et nytt vertsnavn:",
|
||||
"operating_system": "Operativsystem",
|
||||
"reboot_host": "Start verten på nytt",
|
||||
"shutdown_host": "Slå av verten",
|
||||
"shutdown_host": "Slå av vert",
|
||||
"used_space": "Brukt lagringsplass"
|
||||
},
|
||||
"log": {
|
||||
@@ -467,12 +467,14 @@
|
||||
"docker": "Docker-miljøet fungerer ikke som det skal",
|
||||
"privileged": "Supervisor er ikke privilegert",
|
||||
"setup": "Installasjonen av Supervisor mislyktes",
|
||||
"supervisor": "Supervisor kunne ikke oppdatere"
|
||||
"supervisor": "Supervisor kunne ikke oppdatere",
|
||||
"untrusted": "Oppdaget ikke-klarert innhold"
|
||||
},
|
||||
"unhealthy_title": "Installasjonen din er usunn",
|
||||
"unsupported_description": "Nedenfor er en liste over problemer som er funnet med installasjonen din. Klikk på lenkene for å lære hvordan du kan løse problemene.",
|
||||
"unsupported_reason": {
|
||||
"container": "Containere som er kjent for å forårsake problemer",
|
||||
"content-trust": "Validering av innholds klarering er deaktivert",
|
||||
"dbus": "",
|
||||
"docker_configuration": "Docker-konfigurasjon",
|
||||
"docker_version": "Docker-versjon",
|
||||
@@ -785,7 +787,8 @@
|
||||
"was_unlocked": "ble låst opp",
|
||||
"was_unplugged": "ble frakoblet",
|
||||
"was_unsafe": "var utrygt"
|
||||
}
|
||||
},
|
||||
"show_trace": "Vis spor"
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "Nettleseren din støtter ikke lydelementet.",
|
||||
@@ -1297,10 +1300,15 @@
|
||||
"device_id": {
|
||||
"action": "Handling",
|
||||
"extra_fields": {
|
||||
"brightness_pct": "Lysstyrke",
|
||||
"code": "Kode",
|
||||
"flash": "Blits",
|
||||
"humidity": "Fuktighet",
|
||||
"message": "Melding",
|
||||
"mode": "Modus",
|
||||
"position": "Posisjon",
|
||||
"title": "Tittel"
|
||||
"title": "Tittel",
|
||||
"value": "Verdi"
|
||||
},
|
||||
"label": "Enhet"
|
||||
},
|
||||
@@ -1373,7 +1381,9 @@
|
||||
"extra_fields": {
|
||||
"above": "Over",
|
||||
"below": "Under",
|
||||
"for": "Varighet"
|
||||
"for": "Varighet",
|
||||
"hvac_mode": "HVAC-modus",
|
||||
"preset_mode": "Forhåndsinnstilt modus"
|
||||
},
|
||||
"label": "Enhet"
|
||||
},
|
||||
@@ -1566,6 +1576,8 @@
|
||||
"add_automation": "Legg til automasjon",
|
||||
"delete_automation": "Slett automasjon",
|
||||
"delete_confirm": "Er du sikker på at du vil slette denne automasjonen?",
|
||||
"dev_automation": "Feilsøk automatisering",
|
||||
"dev_only_editable": "Bare automatiseringer definert i automations.yaml kan feilsøkes.",
|
||||
"duplicate": "Dupliser",
|
||||
"duplicate_automation": "Dupliser automasjon",
|
||||
"edit_automation": "Rediger automasjon",
|
||||
@@ -2803,6 +2815,7 @@
|
||||
"server_version": "Serverversjon"
|
||||
},
|
||||
"device_info": {
|
||||
"device_config": "Konfigurer enhet",
|
||||
"node_ready": "Node klar",
|
||||
"node_status": "Node status",
|
||||
"zwave_info": "Z-Wave Informasjon"
|
||||
@@ -2815,6 +2828,15 @@
|
||||
"connecting": "Kobler til",
|
||||
"unknown": "Ukjent"
|
||||
},
|
||||
"node_config": {
|
||||
"attribution": "Enhetskonfigurasjonsparametere og beskrivelser er gitt av {device_database}",
|
||||
"battery_device_notice": "Batterienheter må være våken for å oppdatere konfigurasjonen. Se enhetshåndboken for instruksjoner om hvordan du vekker enheten.",
|
||||
"error_device_not_found": "Enhet ikke funnet",
|
||||
"header": "Z-Wave enhetskonfigurasjon",
|
||||
"introduction": "Administrer og juster enhets (node) spesifikke konfigurasjonsparametere for den valgte enheten",
|
||||
"parameter_is_read_only": "Denne parameteren er skrivebeskyttet.",
|
||||
"zwave_js_device_database": "Z-Wave JS Device Database"
|
||||
},
|
||||
"node_status": {
|
||||
"alive": "Levende",
|
||||
"asleep": "Sover",
|
||||
@@ -3236,11 +3258,11 @@
|
||||
"name": "Historikkgraf"
|
||||
},
|
||||
"horizontal-stack": {
|
||||
"description": "Horisontal Stabel kortet lar deg stable sammen flere kort, slik at de alltid sitter ved siden av hverandre i løpet av en kolonne.",
|
||||
"name": "Horisontal Stabel"
|
||||
"description": "Horisontal stabel-kortet lar deg stable sammen flere kort, slik at de alltid sitter ved siden av hverandre i en kolonne.",
|
||||
"name": "Horisontal stabel"
|
||||
},
|
||||
"humidifier": {
|
||||
"description": "Luftfukter kortet gir kontroll over luftfukter entiteten din. Lar deg endre fuktigheten og modusen til entiteten.",
|
||||
"description": "Luftfukterkortet gir kontroll over luftfukterentiteten din. Lar deg endre fuktigheten og modusen til entiteten.",
|
||||
"name": "Luftfukter"
|
||||
},
|
||||
"iframe": {
|
||||
@@ -3291,8 +3313,8 @@
|
||||
"name": "Bilde"
|
||||
},
|
||||
"plant-status": {
|
||||
"description": "Plante Status kortet er for alle de flotte botanikerne der ute.",
|
||||
"name": "Plante status"
|
||||
"description": "Plantestatus-kortet er for alle de flotte botanikerne der ute.",
|
||||
"name": "Plantestatus"
|
||||
},
|
||||
"sensor": {
|
||||
"description": "Sensorkortet gir deg en rask oversikt over sensortilstanden din med en valgfri graf for å visualisere endring over tid.",
|
||||
@@ -3310,7 +3332,7 @@
|
||||
"name": "Termostat"
|
||||
},
|
||||
"vertical-stack": {
|
||||
"description": "Vertical Stabel kortet lar deg gruppere flere kort slik at de alltid sitter i samme kolonne.",
|
||||
"description": "Vertical stabel-kortet lar deg gruppere flere kort slik at de alltid sitter i samme kolonne.",
|
||||
"name": "Vertikal stabel"
|
||||
},
|
||||
"weather-forecast": {
|
||||
|
||||
@@ -128,51 +128,51 @@
|
||||
},
|
||||
"dashboard": {
|
||||
"action_error": {
|
||||
"get_changelog": "Ophalen changelog van add-on is mislukt",
|
||||
"go_to_config": "Kan de add-on niet starten - configuratie validatie mislukt!",
|
||||
"install": "De installatie van de add-on is mislukt",
|
||||
"restart": "Kan de add-on niet herstarten",
|
||||
"start": "Kan de add-on niet starten",
|
||||
"get_changelog": "Ophalen logboek van de invoegtoepassing is mislukt",
|
||||
"go_to_config": "Starten van de invoegtoepassing is mislukt - configuratie validatie mislukt!",
|
||||
"install": "De installatie van de invoegtoepassing is mislukt",
|
||||
"restart": "Herstarten van de invoegtoepassing is mislukt",
|
||||
"start": "Starten van de invoegtoepassing is mislukt",
|
||||
"start_invalid_config": "Ga naar configuratie",
|
||||
"stop": "Kan add-on niet stoppen",
|
||||
"uninstall": "De de-installatie van de add-on is mislukt",
|
||||
"validate_config": "De configuratie van de add-on kon niet worden gevalideerd"
|
||||
"stop": "Stoppen van de invoegtoepassing is mislukt",
|
||||
"uninstall": "De de-installatie van de invoegtoepassing is mislukt",
|
||||
"validate_config": "De configuratie van de invoegtoepassing kon niet worden gevalideerd"
|
||||
},
|
||||
"capability": {
|
||||
"apparmor": {
|
||||
"description": "AppArmor ('Application Armor') is een beveiligingsmodule voor de Linux-kernel die de mogelijkheden van add-ons beperkt, zoals netwerktoegang, toegang tot raw socket, en toestemming om specifieke bestanden te lezen, te schrijven of uit te voeren.\n\nAuteurs van add-ons kunnen hun beveiligingsprofielen opgeven, geoptimaliseerd voor de add-on, of vragen om het uit te schakelen. Als AppArmor is uitgeschakeld, verhoogt dit de beveiligingsrisico's en heeft het dus een negatieve invloed op de beveiligingsscore van de add-on.",
|
||||
"description": "AppArmor ('Application Armor') is een beveiligingsmodule voor de Linux-kernel die de mogelijkheden van invoegtoepassingen beperkt, zoals netwerktoegang, toegang tot raw socket, en toestemming om specifieke bestanden te lezen, te schrijven of uit te voeren.\n\nAuteurs van invoegtoepassingen kunnen hun beveiligings-profielen opgeven, geoptimaliseerd voor de invoegtoepassing, of vragen om AppArmor uit te schakelen. Als deze is uitgeschakeld, verhoogt dit de beveiligingsrisico's en heeft het een negatieve invloed op de beveiligingsscore van de invoegtoepassing.",
|
||||
"title": "AppArmor"
|
||||
},
|
||||
"auth_api": {
|
||||
"description": "Een add-on kan gebruikers authenticeren tegen Home Assistant, waardoor add-ons gebruikers de mogelijkheid geven om in te loggen bij applicaties die draaien in add-ons, met hun Home Assistant gebruikersnaam/wachtwoord. Deze badge geeft aan of de auteur van de add-on deze mogelijkheid heeft aangevraagd.",
|
||||
"description": "Een invoegtoepassing kan gebruikers authenticeren bij Home Assistant met hun Home Assistant gebruikersnaam/wachtwoord. Hierdoor hebben invoegtoepassingen de mogelijkheid om gebruikers in te loggen bij applicaties die draaien in invoegtoepassingen. Deze badge geeft aan of de auteur van de invoegtoepassing deze mogelijkheid heeft aangevraagd.",
|
||||
"title": "Home Assistant Authenticatie"
|
||||
},
|
||||
"docker_api": {
|
||||
"description": "De auteur van de add-on heeft gevraagd of de add-on beheertoegang heeft tot de Docker-instantie die op uw systeem draait. Deze modus geeft de add-on volledige toegang en controle tot uw gehele Home Assistant-systeem, wat veiligheidsrisico's toevoegt en bij misbruik uw systeem kan beschadigen. Daarom heeft deze functie een negatieve invloed op de beveiligingsscore van de add-on.\n\nDit niveau van toegang wordt niet automatisch verleend en moet door u worden bevestigd. Om dit te doen moet u de beschermingsmodus op de add-on handmatig uitschakelen. Schakel de beveiligingsmodus alleen uit als u de bron van deze add-on kent, nodig hebt EN vertrouwt.",
|
||||
"description": "De auteur van deze invoegtoepassing heeft gevraagd of deze beheertoegang mag tot de Docker-instantie die op uw systeem draait. Deze modus geeft de invoegtoepassing volledige toegang en controle tot uw gehele Home Assistant-systeem, wat veiligheidsrisico's met zich mee brengt en bij misbruik uw systeem kan beschadigen. Daarom heeft deze functie een negatieve invloed op de beveiligingsscore van de invoegtoepassing.\n\nDit niveau van toegang wordt niet automatisch verleend en moet door u worden bevestigd. Om dit te doen moet u de beschermingsmodus op de invoegtoepassing handmatig uitschakelen. Schakel de beveiligingsmodus alleen uit als u de bron van deze invoegtoepassing kent, nodig hebt EN vertrouwt.",
|
||||
"title": "Volledige Docker toegang"
|
||||
},
|
||||
"full_access": {
|
||||
"description": "Deze add-on krijgt volledige toegang tot de hardware van uw systeem, op verzoek van de auteur van de add-on. De toegang is vergelijkbaar met de bevoorrechte modus in Docker. Aangezien dit mogelijke veiligheidsrisico's met zich meebrengt, heeft deze eigenschap een negatieve invloed op de veiligheidsscore van de add-on.\n\nDit niveau van toegang wordt niet automatisch verleend en moet door u worden bevestigd. Om dit te doen, moet u de beveiligingsmodus op de add-on handmatig uitschakelen. Schakel de beveiligingsmodus alleen uit als u de bron van deze add-on kent, nodig hebt EN vertrouwt.",
|
||||
"description": "Op verzoek van de auteur van deze invoegtoepassing, heeft deze invoegtoepassing volledige toegang tot de hardware van uw systeem. De toegang is vergelijkbaar met de bevoorrechte modus in Docker. Omdat dit mogelijke veiligheidsrisico's met zich meebrengt, heeft deze eigenschap een negatieve invloed op de veiligheidsscore van de invoegtoepassing.\n\nDit toegangsniveau wordt niet automatisch verleend en moet door u worden bevestigd. Om dit te doen, moet u de beveiligingsmodus van de invoegtoepassing handmatig uitschakelen. Schakel de beveiligingsmodus alleen uit als u de bron van deze invoegtoepassing kent, nodig hebt EN vertrouwt.",
|
||||
"title": "Volledige hardware toegang"
|
||||
},
|
||||
"hassio_api": {
|
||||
"description": "De add-on heeft toegang gekregen tot de Supervisor API, op verzoek van de auteur van de add-on. Standaard heeft de add-on toegang tot algemene versie-informatie van uw systeem. Wanneer de add-on 'manager' of 'admin' niveau toegang tot de API aanvraagt, zal het toegang krijgen om meerdere delen van uw Home Assistant systeem te controleren. Deze toestemming wordt aangegeven met deze badge en zal de beveiligingsscore van de add-on negatief beïnvloeden.",
|
||||
"description": "Op verzoek van de auteur van de invoegtoepassing, heeft de invoegtoepassing toegang gekregen tot de Supervisor API. Standaard heeft deze toegang tot algemene versie-informatie van uw systeem. Wanneer de invoegtoepassing het toegangsniveau 'manager' of 'admin' tot de API aanvraagt, zal het toegang krijgen om meerdere delen van uw Home Assistant systeem te controleren. Deze toestemming wordt aangegeven met deze badge en zal de beveiligingsscore van de invoegtoepassing negatief beïnvloeden.",
|
||||
"title": "Supervisor API Toegang"
|
||||
},
|
||||
"homeassistant_api": {
|
||||
"description": "Deze add-on heeft rechtstreeks toegang tot uw actieve Home Assistant-instantie via de Home Assistant API. Deze modus handelt ook de authenticatie voor de add-on af, waardoor een add-on kan communiceren met Home Assistant zonder de noodzaak van extra authenticatietokens.",
|
||||
"description": "Deze invoegtoepassing heeft rechtstreeks toegang tot uw actieve Home Assistant-instantie via de Home Assistant API. Deze modus handelt ook de authenticatie voor de invoegtoepassing af, waardoor een invoegtoepassing kan communiceren met Home Assistant zonder de noodzaak van extra authenticatietokens.",
|
||||
"title": "Home Assistant API Toegang"
|
||||
},
|
||||
"host_network": {
|
||||
"description": "Add-ons draaien meestal in hun eigen geïsoleerde netwerklaag, waardoor ze geen toegang hebben tot het netwerk van het host-besturingssysteem. In sommige gevallen kan deze netwerkisolatie add-ons beperken in het leveren van hun diensten en daarom kan de isolatie worden opgeheven door de add-on-auteur, waardoor de add-on volledige toegang krijgt tot de netwerk mogelijkheden van de host-machine. Dit geeft de add-on meer netwerkmogelijkheden maar verlaagt de beveiliging, vandaar dat de beveiligingsclassificatie van de add-on zal worden verlaagd als deze optie door de add-on wordt gebruikt.",
|
||||
"description": "Invoegtoepassingen draaien gewoonlijk in hun eigen geïsoleerde netwerklaag waardoor ze geen toegang hebben tot het netwerk van het host-besturingssysteem. In sommige gevallen kan deze netwerkisolatie invoegtoepassingen beperken in het leveren van hun diensten en daarom kan de isolatie worden opgeheven door de auteur van deze invoegtoepassingen. Hierdoor heeft de invoegtoepassing volledige toegang tot de netwerk mogelijkheden van de host-machine. De invoegtoepassing heeft dan meer netwerkmogelijkheden maar verlaagt de beveiliging. Vandaar dat de beveiligingsscore van de invoegtoepassing zal worden verlaagd als deze optie door de invoegtoepassing wordt gebruikt.",
|
||||
"title": "Hostnetwerk"
|
||||
},
|
||||
"host_pid": {
|
||||
"description": "Gewoonlijk zijn de processen die de add-on uitvoert, geïsoleerd van alle andere systeemprocessen. De auteur van de add-on heeft gevraagd of de add-on toegang heeft tot de systeemprocessen die op het hostsysteem draaien, en staat toe dat de add-on ook processen op het hostsysteem spawnt. Deze modus geeft de add-on volledige toegang tot en controle over uw gehele Home Assistant-systeem, wat veiligheidsrisico's toevoegt en bij misbruik uw systeem kan beschadigen. Daarom heeft deze functie een negatieve invloed op de add-on beveiligingsscore.\n\nDit niveau van toegang wordt niet automatisch verleend en moet door u worden bevestigd. Om dit te doen moet u de beschermingsmodus op de add-on handmatig uitschakelen. Schakel de beveiligingsmodus alleen uit als u de bron van deze add-on kent, nodig hebt EN vertrouwt.",
|
||||
"description": "Gewoonlijk zijn de processen die de invoegtoepassing uitvoert, geïsoleerd van alle andere systeemprocessen. De auteur van de invoegtoepassing heeft toegang gevraagd tot de systeemprocessen die op het host-systeem draaien en om toe te staan dat de invoegtoepassing ook processen op het host-systeem start. Deze modus geeft de invoegtoepassing volledige toegang tot en controle over uw gehele Home Assistant-systeem, wat veiligheidsrisico's toevoegt. Bij misbruik kan uw systeem beschadigd worden. Daarom heeft deze functie een negatieve invloed op de beveiligingsscore van de invoegtoepassing.\n\nDit niveau van toegang wordt niet automatisch verleend en moet door u worden bevestigd. Om dit te doen moet u de beschermingsmodus op de invoegtoepassing handmatig uitschakelen. Schakel de beveiligingsmodus alleen uit als u de bron van deze invoegtoepassing kent, nodig hebt EN vertrouwt.",
|
||||
"title": "Host Processes Namespace"
|
||||
},
|
||||
"ingress": {
|
||||
"description": "Deze add-on maakt gebruik van Ingress om zijn gebruikersinterface veilig te integreren in Home Assistant.",
|
||||
"description": "Deze invoegtoepassing maakt gebruik van Ingress om zijn gebruikersinterface veilig te integreren in Home Assistant.",
|
||||
"title": "Ingress"
|
||||
},
|
||||
"label": {
|
||||
@@ -190,7 +190,7 @@
|
||||
},
|
||||
"rating": {
|
||||
"description": "Home Assistant geeft een veiligheidsscore aan elke add-on, die aangeeft welke risico's het gebruik van deze add-on met zich meebrengt. Hoe meer toegang een add-on tot je systeem vereist, hoe lager de score, waardoor de mogelijke veiligheidsrisico's toenemen.\n\nEen score is op een schaal van 1 tot 6. Waarbij 1 de laagste score is (beschouwd als het meest onveilige en het grootste risico) en een score van 6 de hoogste score is (beschouwd als het meest veilige en het minste risico).",
|
||||
"title": "Add-on Veiligheidsbeoordeling"
|
||||
"title": "Beveilingsscore Invoegtoepassing"
|
||||
},
|
||||
"role": {
|
||||
"admin": "admin",
|
||||
@@ -200,7 +200,7 @@
|
||||
"manager": "manager"
|
||||
},
|
||||
"stage": {
|
||||
"description": "Add-ons kunnen een van de drie stadia hebben:\n\n{icon_stable} **Stabiel**: Dit zijn add-ons die klaar zijn om in productie gebruikt te worden.\n\n{icon_experimental} **Experimenteel**: Deze kunnen bugs bevatten, en kunnen onvoltooid zijn.\n\n{icon_deprecated} *Vervallen**: Deze add-ons zullen niet langer updates ontvangen.",
|
||||
"description": "Invoegtoepassingen kunnen een van de drie stadia hebben:\n\n{icon_stable} **Stabiel**: Dit zijn add-ons die klaar zijn om in productie gebruikt te worden.\n\n{icon_experimental} **Experimenteel**: Deze kunnen fouten bevatten en kunnen onvoltooid zijn.\n\n{icon_deprecated} **Vervallen**: Deze add-ons zullen niet langer updates ontvangen.",
|
||||
"title": "Add-on stadium"
|
||||
}
|
||||
},
|
||||
@@ -214,23 +214,23 @@
|
||||
"open_web_ui": "Open web UI",
|
||||
"option": {
|
||||
"auto_update": {
|
||||
"description": "Update automatisch de add-on wanneer er een nieuwe versie beschikbaar is",
|
||||
"description": "Update automatisch de invoegtoepassing wanneer er een nieuwe versie beschikbaar is",
|
||||
"title": "Automatisch bijwerken"
|
||||
},
|
||||
"boot": {
|
||||
"description": "Laat de add-on starten tijdens het opstarten van het systeem",
|
||||
"description": "Start de invoegtoepassing tijdens het opstarten van het systeem",
|
||||
"title": "Start bij opstarten"
|
||||
},
|
||||
"ingress_panel": {
|
||||
"description": "Voeg deze add-on toe aan je zijbalk",
|
||||
"description": "Deze invoegtoepassing toevoegen aan je zijbalk",
|
||||
"title": "Weergeven in zijbalk"
|
||||
},
|
||||
"protected": {
|
||||
"description": "Blokkeert systeemtoegang met extra rechten voor de add-on",
|
||||
"description": "Blokkeert systeemtoegang met extra rechten voor de invoegtoepassing",
|
||||
"title": "Beschermingsmodus"
|
||||
},
|
||||
"watchdog": {
|
||||
"description": "Dit zal de add-on starten als deze crasht",
|
||||
"description": "Dit zal de invoegtoepassing starten als deze vastloopt",
|
||||
"title": "Watchdog"
|
||||
}
|
||||
},
|
||||
@@ -248,12 +248,12 @@
|
||||
"visit_addon_page": "Bezoek de {name} pagina voor meer details"
|
||||
},
|
||||
"documentation": {
|
||||
"get_documentation": "Ophalen documentatie van add-on is mislukt, {error}"
|
||||
"get_documentation": "Ophalen documentatie van de invoegtoepassing is mislukt, {error}"
|
||||
},
|
||||
"failed_to_reset": "Kan configuratie van add-on niet resetten, {error}",
|
||||
"failed_to_save": "Mislukt om add-on configuratie op te slaan, {error}",
|
||||
"logs": {
|
||||
"get_logs": "Ophalen logs van add-on is mislukt, {error}"
|
||||
"get_logs": "Ophalen van het logboek van de invoegtoepassing is mislukt, {error}"
|
||||
},
|
||||
"panel": {
|
||||
"configuration": "Configuratie",
|
||||
@@ -292,7 +292,7 @@
|
||||
"save": "Opslaan",
|
||||
"show_more": "Toon meer informatie hierover",
|
||||
"update": "Update",
|
||||
"update_available": "Er staan {count, plural, one {Update} other {{count} Updates}} klaar",
|
||||
"update_available": "Er {count, plural, one {staat een update} other {{count} staan updates}} klaar",
|
||||
"version": "Versie",
|
||||
"yes": "Ja"
|
||||
},
|
||||
@@ -351,11 +351,11 @@
|
||||
"repositories": {
|
||||
"add": "Toevoegen",
|
||||
"remove": "Verwijderen",
|
||||
"title": "Beheer add-on repository's"
|
||||
"title": "Beheer de invoegtoepassing repositories"
|
||||
},
|
||||
"restart_addon": {
|
||||
"confirm_text": "Herstart add-on",
|
||||
"text": "Wilt u de add-on opnieuw starten met uw wijzigingen?"
|
||||
"confirm_text": "Herstart de invoegtoepassing",
|
||||
"text": "Wilt u de invoegtoepassing opnieuw starten met uw wijzigingen?"
|
||||
},
|
||||
"update": {
|
||||
"create_snapshot": "Maak een snapshot van {name} voordat u gaat bijwerken",
|
||||
@@ -366,7 +366,7 @@
|
||||
},
|
||||
"my": {
|
||||
"error": "Er is een onbekende fout opgetreden",
|
||||
"error_addon_not_found": "Add-on niet gevonden",
|
||||
"error_addon_not_found": "Invoegtoepassing niet gevonden",
|
||||
"faq_link": "My Home Assistant FAQ",
|
||||
"not_supported": "Deze redirect wordt niet ondersteund door uw Home Assistant instantie. Controleer de {link} voor de ondersteunde redirects en de versie waarin ze zijn geïntroduceerd."
|
||||
},
|
||||
@@ -377,7 +377,7 @@
|
||||
"system": "Systeem"
|
||||
},
|
||||
"snapshot": {
|
||||
"addons": "Add-ons",
|
||||
"addons": "Invoegtoepassingen",
|
||||
"available_snapshots": "Beschikbare snapshots",
|
||||
"could_not_create": "Kon geen snapshot maken",
|
||||
"create": "Maak",
|
||||
@@ -386,7 +386,7 @@
|
||||
"description": "Met snapshots kunt u gemakkelijk een back-up maken van alle gegevens van uw Home Assistant en ze herstellen.",
|
||||
"enter_password": "Voer een wachtwoord in.",
|
||||
"folder": {
|
||||
"addons/local": "Lokale add-ons",
|
||||
"addons/local": "Lokale invoegtoepassingen",
|
||||
"homeassistant": "Home Assistant configuratie",
|
||||
"media": "Media",
|
||||
"share": "Deel",
|
||||
@@ -405,10 +405,10 @@
|
||||
"upload_snapshot": "Upload snapshot"
|
||||
},
|
||||
"store": {
|
||||
"missing_addons": "Mis je de add-ons? Schakel de geavanceerde modus in op uw gebruikersprofielpagina",
|
||||
"missing_addons": "Mis je de invoegtoepassingen? Schakel de geavanceerde modus in op uw gebruikersprofiel pagina",
|
||||
"no_results_found": "Geen resultaten gevonden in {repository}.",
|
||||
"registries": "Registers",
|
||||
"repositories": "Repository's"
|
||||
"repositories": "Repositories"
|
||||
},
|
||||
"system": {
|
||||
"core": {
|
||||
@@ -785,7 +785,8 @@
|
||||
"was_unlocked": "ontgrendeld",
|
||||
"was_unplugged": "is niet aangesloten",
|
||||
"was_unsafe": "was onveilig"
|
||||
}
|
||||
},
|
||||
"show_trace": "Tracering weergeven"
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "Uw browser ondersteunt het audio-element niet.",
|
||||
@@ -1145,7 +1146,7 @@
|
||||
"buttons": {
|
||||
"add": "Apparaten toevoegen via dit apparaat",
|
||||
"clusters": "Clusters beheren",
|
||||
"device_children": "Toon kinderen",
|
||||
"device_children": "Bekijk onderliggende apparaten",
|
||||
"reconfigure": "Apparaat opnieuw configureren",
|
||||
"remove": "Verwijder apparaat",
|
||||
"view_in_visualization": "Bekijk in Visualisatie",
|
||||
@@ -1189,7 +1190,7 @@
|
||||
"key_missing": "Verplichte sleutel \"{key}\" ontbreekt.",
|
||||
"key_not_expected": "Sleutel \"{key}\" wordt niet verwacht of ondersteund door de visuele editor.",
|
||||
"key_wrong_type": "De opgegeven waarde voor \" {key} \" wordt niet ondersteund door de visuele editor. We ondersteunen ( {type_correct} ) maar hebben ( {type_wrong} ) ontvangen.",
|
||||
"no_template_editor_support": "Sjablonen worden niet ondersteund in visuele editor",
|
||||
"no_template_editor_support": "Sjablonen worden niet ondersteund in de visuele editor",
|
||||
"no_type_provided": "Geen type opgegeven."
|
||||
}
|
||||
},
|
||||
@@ -1298,9 +1299,11 @@
|
||||
"action": "Actie",
|
||||
"extra_fields": {
|
||||
"code": "Code",
|
||||
"humidity": "Vochtigheid",
|
||||
"message": "Bericht",
|
||||
"position": "Positie",
|
||||
"title": "Titel"
|
||||
"title": "Titel",
|
||||
"value": "Waarde"
|
||||
},
|
||||
"label": "Apparaat"
|
||||
},
|
||||
@@ -1566,6 +1569,8 @@
|
||||
"add_automation": "Automatisering toevoegen",
|
||||
"delete_automation": "Verwijder automatisering",
|
||||
"delete_confirm": "Weet je zeker dat je deze automatisering wilt verwijderen?",
|
||||
"dev_automation": "Debug automatisering",
|
||||
"dev_only_editable": "Alleen automatiseringen in automations.yaml kunnen worden gedebugd.",
|
||||
"duplicate": "Dupliceren",
|
||||
"duplicate_automation": "Dupliceer automatisering",
|
||||
"edit_automation": "Bewerk automatisering",
|
||||
@@ -1629,8 +1634,8 @@
|
||||
},
|
||||
"introduction": "Met de Blueprinteditor kunt je Blueprints maken en bewerken.",
|
||||
"learn_more": "Meer informatie over Blueprints",
|
||||
"share_blueprint": "Deel Blueprint",
|
||||
"share_blueprint_no_url": "Kan Blueprint niet delen: geen bron-URL",
|
||||
"share_blueprint": "Deel blauwdruk",
|
||||
"share_blueprint_no_url": "Kan blauwdruk niet delen: geen bron-URL",
|
||||
"use_blueprint": "Automatisering maken"
|
||||
}
|
||||
},
|
||||
@@ -2803,6 +2808,7 @@
|
||||
"server_version": "Server Versie"
|
||||
},
|
||||
"device_info": {
|
||||
"device_config": "Configureer Apparaat",
|
||||
"node_ready": "Knooppunt gereed",
|
||||
"node_status": "Knooppuntstatus",
|
||||
"zwave_info": "Z-Wave info"
|
||||
@@ -2815,6 +2821,10 @@
|
||||
"connecting": "Verbinden",
|
||||
"unknown": "Onbekend"
|
||||
},
|
||||
"node_config": {
|
||||
"error_device_not_found": "Apparaat niet gevonden",
|
||||
"parameter_is_read_only": "Deze parameter is alleen-lezen."
|
||||
},
|
||||
"node_status": {
|
||||
"alive": "Levend",
|
||||
"asleep": "In slaap",
|
||||
@@ -3008,9 +3018,9 @@
|
||||
"go_back": "Ga terug",
|
||||
"supervisor": {
|
||||
"ask": "Vraag om hulp",
|
||||
"observer": "Check de Observer",
|
||||
"observer": "Controleer de Observer",
|
||||
"reboot": "Probeer de host opnieuw op te starten",
|
||||
"system_health": "Check de systeemstatus",
|
||||
"system_health": "Controleer de systeemstatus",
|
||||
"title": "Kan het supervisor scherm niet laden!",
|
||||
"wait": "Als Home Assistant net is gestart, zorg ervoor dat de supervisor genoeg tijd heeft gehad om op te starten."
|
||||
}
|
||||
|
||||
@@ -1566,6 +1566,8 @@
|
||||
"add_automation": "Dodaj automatyzację",
|
||||
"delete_automation": "Usuń automatyzację",
|
||||
"delete_confirm": "Czy na pewno chcesz usunąć tę automatyzację?",
|
||||
"dev_automation": "Debuguj automatyzację",
|
||||
"dev_only_editable": "Można debugować tylko automatyzacje zdefiniowane w pliku automations.yaml.",
|
||||
"duplicate": "Duplikuj",
|
||||
"duplicate_automation": "Duplikuj automatyzację",
|
||||
"edit_automation": "Edytuj automatyzację",
|
||||
|
||||
@@ -103,6 +103,22 @@
|
||||
}
|
||||
},
|
||||
"supervisor": {
|
||||
"addon": {
|
||||
"dashboard": {
|
||||
"visit_addon_page": "Visite a página {name} para mais detalhes"
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"save": "Salvar"
|
||||
},
|
||||
"dialog": {
|
||||
"network": {
|
||||
"scan_ap": "Procurar pontos de acesso"
|
||||
},
|
||||
"update": {
|
||||
"updating": "Atualizando {name} para a versão {version}"
|
||||
}
|
||||
},
|
||||
"snapshot": {
|
||||
"folder": {
|
||||
"homeassistant": "Configuração do Home Assistant"
|
||||
@@ -361,6 +377,7 @@
|
||||
"changed_to_state": "alterado para {state}",
|
||||
"cleared_device_class": "liberado ({device_class} não detectado(a))",
|
||||
"detected_device_class": "{device_class} detectado",
|
||||
"rose": "nasceu",
|
||||
"set": "Pôr do sol",
|
||||
"turned_off": "desligou",
|
||||
"turned_on": "ligou",
|
||||
@@ -547,6 +564,9 @@
|
||||
"person": {
|
||||
"create_zone": "Criar zona a partir da localização atual"
|
||||
},
|
||||
"remote": {
|
||||
"activity": "Atividade atual"
|
||||
},
|
||||
"restored": {
|
||||
"confirm_remove_text": "Tem certeza de que deseja remover esta entidade?",
|
||||
"confirm_remove_title": "Remover entidade?",
|
||||
@@ -2214,6 +2234,11 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"supervisor": {
|
||||
"system_health": "Verificar integridade do sistema"
|
||||
}
|
||||
},
|
||||
"history": {
|
||||
"ranges": {
|
||||
"last_week": "Semana Anterior",
|
||||
|
||||
@@ -213,6 +213,7 @@
|
||||
"get_documentation": "Falha ao obter documentação do add-on, {error}"
|
||||
},
|
||||
"failed_to_reset": "Falha ao redefinir a configuração do add-on, {error}",
|
||||
"failed_to_save": "Falha ao guardar a configuração do add-on, {error}",
|
||||
"logs": {
|
||||
"get_logs": "Falha ao obter logs do add-on, {error}"
|
||||
},
|
||||
@@ -224,6 +225,7 @@
|
||||
},
|
||||
"state": {
|
||||
"installed": "Add-on está instalado",
|
||||
"not_available": "O add-on não está disponível no seu sistema",
|
||||
"not_installed": "Add-on não está instalado"
|
||||
}
|
||||
},
|
||||
@@ -824,7 +826,10 @@
|
||||
}
|
||||
},
|
||||
"service-control": {
|
||||
"required": "Este campo é obrigatório"
|
||||
"required": "Este campo é obrigatório",
|
||||
"service_data": "Dados do serviço",
|
||||
"target": "Alvos",
|
||||
"target_description": "O que deve este serviço utilizar como áreas, dispositivos ou entidades alvo."
|
||||
},
|
||||
"service-picker": {
|
||||
"service": "Serviço"
|
||||
@@ -862,6 +867,8 @@
|
||||
"dismiss": "Fechar",
|
||||
"editor": {
|
||||
"advanced": "Configurações avançadas",
|
||||
"area": "Definir apenas a área da entidade",
|
||||
"area_note": "Por defeito, as entidades de um dispositivo estão na mesma área que o dispositivo. Se alterar a área desta entidade, esta deixará de seguir a área do dispositivo.",
|
||||
"change_device_area": "Alterar área do dispositivo",
|
||||
"confirm_delete": "Tem certeza de que deseja apagar esta entrada?",
|
||||
"delete": "Apagar",
|
||||
@@ -1133,6 +1140,8 @@
|
||||
"editor_not_available": "Nenhum editor visual disponível para o tipo \" {type} \".",
|
||||
"editor_not_supported": "O editor visual não é suportado para esta configuração",
|
||||
"error_detected": "Erros de configuração detectados",
|
||||
"key_missing": "A chave obrigatória \"{key}\" está em falta.",
|
||||
"key_wrong_type": "O valor fornecido para \"{key}\" não é suportado pelo editor visual. ({type_correct}) é suportado, mas recebemos ({type_wrong}).",
|
||||
"no_template_editor_support": "Modelos não suportados no editor visual",
|
||||
"no_type_provided": "Nenhum tipo fornecido."
|
||||
}
|
||||
@@ -1634,6 +1643,7 @@
|
||||
"tts": {
|
||||
"default_language": "Linguagem predefinida a utilizar",
|
||||
"dialog": {
|
||||
"example_message": "Olá {nome}, pode reproduzir qualquer texto em qualquer media player suportado!",
|
||||
"header": "Tentar Texto para Fala",
|
||||
"play": "Reproduzir",
|
||||
"target": "Alvo",
|
||||
@@ -3536,6 +3546,7 @@
|
||||
"working": "Por favor, aguarde"
|
||||
},
|
||||
"initializing": "A inicializar",
|
||||
"logging_in_to_with": "A iniciar sessão em **{locationName}** com **{authProviderName}**.",
|
||||
"logging_in_with": "Iniciar a sessão com **{authProviderName}**.",
|
||||
"pick_auth_provider": "Ou entre com"
|
||||
},
|
||||
|
||||
@@ -172,7 +172,7 @@
|
||||
"title": "Пространство имен хост-процессов"
|
||||
},
|
||||
"ingress": {
|
||||
"description": "Это дополнение использует Ingress для безопасного встраивания своего интерфейса в Home Assistant.",
|
||||
"description": "Это дополнение использует Ingress для безопасного встраивания своего веб-интерфейса в Home Assistant.",
|
||||
"title": "Ingress"
|
||||
},
|
||||
"label": {
|
||||
@@ -211,7 +211,7 @@
|
||||
"new_update_available": "Доступно обновление {name} до версии {version}",
|
||||
"not_available_arch": "Это дополнение несовместимо с процессором или операционной системой Вашего устройства.",
|
||||
"not_available_version": "В настоящее время у Вас установлен Home Assistant {core_version_installed}. Для обновления дополнения требуется Home Assistan версии {core_version_needed} или выше.",
|
||||
"open_web_ui": "Открыть веб-интерфейс",
|
||||
"open_web_ui": "Веб-интерфейс",
|
||||
"option": {
|
||||
"auto_update": {
|
||||
"description": "Автоматически обновлять дополнение при наличии новой версии",
|
||||
@@ -245,7 +245,7 @@
|
||||
"start": "запустить",
|
||||
"stop": "остановить",
|
||||
"uninstall": "удалить",
|
||||
"visit_addon_page": "Перейдите на страницу дополнения {name} для получения дополнительной информации"
|
||||
"visit_addon_page": "Перейдите на страницу дополнения {name} для получения дополнительной информации."
|
||||
},
|
||||
"documentation": {
|
||||
"get_documentation": "Не удалось получить документацию к дополнению, {error}"
|
||||
@@ -292,7 +292,7 @@
|
||||
"save": "Сохранить",
|
||||
"show_more": "Показать дополнительную информацию об этом",
|
||||
"update": "Обновить",
|
||||
"update_available": "{count, plural,\n one {Обновление готово}\n other {{count} Обновления готовы}\n} к установке",
|
||||
"update_available": "{count, plural,\n one {Доступно обновление}\n other {Доступно {count} обновления}\n}",
|
||||
"version": "Версия",
|
||||
"yes": "Да"
|
||||
},
|
||||
@@ -358,7 +358,7 @@
|
||||
"text": "Перезапустить дополнение с внесенными изменениями?"
|
||||
},
|
||||
"update": {
|
||||
"create_snapshot": "Создайте снимок {name} перед обновлением",
|
||||
"create_snapshot": "Создать снимок {name} перед обновлением",
|
||||
"snapshot": "Снимок",
|
||||
"snapshotting": "Создание снимка {name}",
|
||||
"updating": "Обновление {name} до версии {version}"
|
||||
@@ -373,17 +373,17 @@
|
||||
"panel": {
|
||||
"dashboard": "Панель",
|
||||
"snapshots": "Снимки",
|
||||
"store": "Магазин дополнений",
|
||||
"store": "Магазин",
|
||||
"system": "Система"
|
||||
},
|
||||
"snapshot": {
|
||||
"addons": "Дополнения",
|
||||
"available_snapshots": "Доступные снимка",
|
||||
"available_snapshots": "Доступные снимки",
|
||||
"could_not_create": "Не удалось создать снимок",
|
||||
"create": "Создать",
|
||||
"create_blocked_not_running": "Создание снимка сейчас невозможно, потому что система находится в состоянии {state}.",
|
||||
"create_snapshot": "Создать снимок",
|
||||
"description": "Снимки (snapshots) позволяют легко создавать резервные копии и восстанавливать все данные Вашего Home Assistant.",
|
||||
"create_snapshot": "Снимки файловой системы",
|
||||
"description": "Снимок файловой системы (snapshot) позволяет легко создавать и восстанавливать резервную копию всех данных Вашего Home Assistant.",
|
||||
"enter_password": "Пожалуйста, введите пароль.",
|
||||
"folder": {
|
||||
"addons/local": "Локальные дополнения",
|
||||
@@ -443,9 +443,9 @@
|
||||
"log_provider": "Провайдер журналов"
|
||||
},
|
||||
"supervisor": {
|
||||
"beta_backup": "Перед активацией этой функции убедитесь, что у Вас есть резервные копии Ваших данных.",
|
||||
"beta_join_confirm": "Вы уверены, что хотите получать обновления из канала бета-версий?",
|
||||
"beta_release_items": "Включает в себя бета-версии для:",
|
||||
"beta_backup": "Перед активацией этой функции убедитесь, что у Вас есть резервная копия Ваших данных.",
|
||||
"beta_join_confirm": "Получать бета-версии",
|
||||
"beta_release_items": "Канал обновлений включает в себя бета-версии для:",
|
||||
"beta_warning": "Бета-версии предназначены для тестирования и могут содержать нестабильные изменения кода.",
|
||||
"channel": "Канал обновлений",
|
||||
"cpu_usage": "Использование ЦП",
|
||||
@@ -785,7 +785,8 @@
|
||||
"was_unlocked": "разблокируется",
|
||||
"was_unplugged": "отключается",
|
||||
"was_unsafe": "не регистрирует безопасность"
|
||||
}
|
||||
},
|
||||
"show_trace": "Показать трассировку"
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "Ваш браузер не поддерживает аудио.",
|
||||
@@ -1297,10 +1298,15 @@
|
||||
"device_id": {
|
||||
"action": "Действие",
|
||||
"extra_fields": {
|
||||
"brightness_pct": "Яркость",
|
||||
"code": "Код",
|
||||
"flash": "Мигание",
|
||||
"humidity": "Относительная влажность",
|
||||
"message": "Сообщение",
|
||||
"mode": "Режим",
|
||||
"position": "Положение",
|
||||
"title": "Заголовок"
|
||||
"title": "Заголовок",
|
||||
"value": "Значение"
|
||||
},
|
||||
"label": "Устройство"
|
||||
},
|
||||
@@ -1373,7 +1379,9 @@
|
||||
"extra_fields": {
|
||||
"above": "Выше",
|
||||
"below": "Ниже",
|
||||
"for": "Продолжительность"
|
||||
"for": "Продолжительность",
|
||||
"hvac_mode": "Режим работы ОВиК",
|
||||
"preset_mode": "Предустановленный режим"
|
||||
},
|
||||
"label": "Устройство"
|
||||
},
|
||||
@@ -1566,6 +1574,8 @@
|
||||
"add_automation": "Добавить автоматизацию",
|
||||
"delete_automation": "Удалить автоматизацию",
|
||||
"delete_confirm": "Вы уверены, что хотите удалить эту автоматизацию?",
|
||||
"dev_automation": "Отладка автоматизации",
|
||||
"dev_only_editable": "Процесс отладки доступен только для автоматизаций, созданных в automations.yaml",
|
||||
"duplicate": "Дублировать",
|
||||
"duplicate_automation": "Дублировать",
|
||||
"edit_automation": "Редактировать автоматизацию",
|
||||
@@ -1699,7 +1709,7 @@
|
||||
"female": "Женский",
|
||||
"info": "Добавьте индивидуальности Вашему дому, воспользовавшись нашей услугой по преобразованию текста в речь. Используйте её в автоматизациях и скриптах с помощью службы {service}.",
|
||||
"male": "Мужской",
|
||||
"title": "Воспроизвести текст",
|
||||
"title": "Воспроизведение текста",
|
||||
"try": "Попробовать"
|
||||
},
|
||||
"webhooks": {
|
||||
@@ -2623,7 +2633,7 @@
|
||||
"delete_user": "Удалить",
|
||||
"group": "Группа",
|
||||
"id": "ID",
|
||||
"name": "Имя",
|
||||
"name": "Отображаемое имя",
|
||||
"new_password": "Новый пароль",
|
||||
"owner": "Владелец",
|
||||
"password_changed": "Пароль изменен",
|
||||
@@ -2640,7 +2650,7 @@
|
||||
"group": "Группа",
|
||||
"is_active": "Активен",
|
||||
"is_owner": "Владелец",
|
||||
"name": "Имя",
|
||||
"name": "Отображаемое имя",
|
||||
"system": "Системный",
|
||||
"username": "Имя пользователя"
|
||||
}
|
||||
|
||||
@@ -2572,6 +2572,7 @@
|
||||
"caption": "Nätverk"
|
||||
},
|
||||
"visualization": {
|
||||
"auto_zoom": "Automatisk zoomning",
|
||||
"caption": "Visualisering",
|
||||
"header": "Visualisering av nätverk",
|
||||
"highlight_label": "Markera enheter",
|
||||
@@ -2842,6 +2843,12 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"error": {
|
||||
"go_back": "Gå tillbaka",
|
||||
"supervisor": {
|
||||
"ask": "Be om hjälp"
|
||||
}
|
||||
},
|
||||
"history": {
|
||||
"ranges": {
|
||||
"last_week": "Föregående vecka",
|
||||
|
||||
@@ -467,12 +467,14 @@
|
||||
"docker": "Docker ortamı düzgün çalışmıyor",
|
||||
"privileged": "Süpervizör ayrıcalıklı değil",
|
||||
"setup": "Süpervizörün kurulumu başarısız oldu",
|
||||
"supervisor": "Süpervizör güncellenemedi"
|
||||
"supervisor": "Süpervizör güncellenemedi",
|
||||
"untrusted": "Güvenilmeyen içerik tespit edildi"
|
||||
},
|
||||
"unhealthy_title": "Kurulumunuz sağlıksız",
|
||||
"unsupported_description": "Aşağıda, kurulumunuzla ilgili bulunan sorunların bir listesi verilmiştir, sorunları nasıl çözebileceğinizi öğrenmek için bağlantılara tıklayın.",
|
||||
"unsupported_reason": {
|
||||
"container": "Sorunlara neden olduğu bilinen kapsayıcılar",
|
||||
"content-trust": "İçerik güveni doğrulaması devre dışı bırakıldı",
|
||||
"dbus": "DBUS",
|
||||
"docker_configuration": "Docker Yapılandırması",
|
||||
"docker_version": "Docker Sürümü",
|
||||
@@ -785,7 +787,8 @@
|
||||
"was_unlocked": "kilidi açıldı",
|
||||
"was_unplugged": "fişi çekildi",
|
||||
"was_unsafe": "güvensiz"
|
||||
}
|
||||
},
|
||||
"show_trace": "İzi göster"
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "Tarayıcınız ses öğesini desteklemiyor.",
|
||||
@@ -1297,10 +1300,15 @@
|
||||
"device_id": {
|
||||
"action": "Aksiyon",
|
||||
"extra_fields": {
|
||||
"brightness_pct": "Parlaklık",
|
||||
"code": "Kod",
|
||||
"flash": "Flaş",
|
||||
"humidity": "Nem",
|
||||
"message": "İleti",
|
||||
"mode": "Mod",
|
||||
"position": "Konum",
|
||||
"title": "Başlık"
|
||||
"title": "Başlık",
|
||||
"value": "Değer"
|
||||
},
|
||||
"label": "Cihaz"
|
||||
},
|
||||
@@ -1373,7 +1381,9 @@
|
||||
"extra_fields": {
|
||||
"above": "Üzerinde",
|
||||
"below": "Altında",
|
||||
"for": "Süre"
|
||||
"for": "Süre",
|
||||
"hvac_mode": "HVAC modu",
|
||||
"preset_mode": "Ön ayar modu"
|
||||
},
|
||||
"label": "Cihaz"
|
||||
},
|
||||
@@ -1566,6 +1576,8 @@
|
||||
"add_automation": "Otomasyon ekle",
|
||||
"delete_automation": "Otomasyonu sil",
|
||||
"delete_confirm": "Bu otomasyonu silmek istediğinizden emin misiniz?",
|
||||
"dev_automation": "Hata ayıklama otomasyonu",
|
||||
"dev_only_editable": "Yalnızca automations.yaml'de tanımlanan otomasyonlarda hata ayıklama yapılabilir.",
|
||||
"duplicate": "Çiftleme",
|
||||
"duplicate_automation": "Yinelenen otomasyon",
|
||||
"edit_automation": "Otomasyonu düzenle",
|
||||
@@ -1655,12 +1667,12 @@
|
||||
"fetching_subscription": "Abonelik alınıyor…",
|
||||
"google": {
|
||||
"config_documentation": "Yapılandırma belgeleri",
|
||||
"devices_pin": "Güvenlik Cihazları Pın",
|
||||
"devices_pin": "Güvenlik Cihazları PIN'i",
|
||||
"enable_ha_skill": "Home Assistant Google Assistant skillini etkinleştir",
|
||||
"enable_state_reporting": "Durum Raporlamasını Etkinleştir",
|
||||
"enter_pin_error": "PIN kaydedilemiyor:",
|
||||
"enter_pin_hint": "Güvenlik cihazlarını kullanmak için bir PIN girin",
|
||||
"enter_pin_info": "Güvenlik cihazlarıyla etkileşim kurmak için lütfen bir pin girin. Güvenlik cihazları kapılar, garaj kapıları ve kilitlerdir. Google Asistan aracılığıyla bu tür cihazlarla etkileşim kurduğunuzda bu PIN kodunu söylemeniz / girmeniz istenecektir.",
|
||||
"enter_pin_info": "Güvenlik cihazlarıyla etkileşim kurmak için lütfen bir PIN girin. Güvenlik cihazları kapılar, garaj kapıları ve kilitlerdir. Google Asistan aracılığıyla bu tür cihazlarla etkileşim kurduğunuzda bu PIN kodunu söylemeniz / girmeniz istenecektir.",
|
||||
"info": "Home Assistant Cloud için Google Assistant entegrasyonu ile, tüm Home Assistant cihazlarınızı herhangi bir Google Asistan özellikli cihaz üzerinden kontrol edebilirsiniz.",
|
||||
"info_state_reporting": "Durum raporlamayı etkinleştirirseniz, Home Assistant sergilenmis varlıkların tüm durum değişikliklerini Google'e gönderir. Bu, Google Home uygulamasında her zaman en son durumları görmenizi ve rutin oluşturmak için durum değişikliklerini kullanmanızı sağlar.",
|
||||
"manage_entities": "Varlıkları Yönetin",
|
||||
|
||||
@@ -104,7 +104,40 @@
|
||||
},
|
||||
"supervisor": {
|
||||
"addon": {
|
||||
"configuration": {
|
||||
"audio": {
|
||||
"default": "默认",
|
||||
"header": "音频",
|
||||
"input": "输入",
|
||||
"output": "输出"
|
||||
},
|
||||
"network": {
|
||||
"container": "容器",
|
||||
"disabled": "已禁用",
|
||||
"header": "网络",
|
||||
"host": "主机"
|
||||
},
|
||||
"no_configuration": "此加载项没有可供您“乱搞”的配置……",
|
||||
"options": {
|
||||
"edit_in_ui": "以图形界面编辑",
|
||||
"edit_in_yaml": "以 YAML 编辑",
|
||||
"header": "选项",
|
||||
"invalid_yaml": "YAML 无效",
|
||||
"show_unused_optional": "显示未使用的可选配置选项"
|
||||
}
|
||||
},
|
||||
"dashboard": {
|
||||
"action_error": {
|
||||
"get_changelog": "获取加载项更新日志失败",
|
||||
"go_to_config": "无法启动加载项,因为配置检查失败。",
|
||||
"install": "安装加载项失败",
|
||||
"restart": "重启加载项失败",
|
||||
"start": "启动加载项失败",
|
||||
"start_invalid_config": "前往配置",
|
||||
"stop": "停止加载项失败",
|
||||
"uninstall": "卸载加载项失败",
|
||||
"validate_config": "加载项配置校验失败"
|
||||
},
|
||||
"capability": {
|
||||
"apparmor": {
|
||||
"description": "Application Armor,简称 AppArmor,是一个 Linux 内核安全模块,其限制加载项的部分功能,如网络访问、原始套接字访问、读写或执行特定文件的权限。\n\n加载项可以提供针对其自身进行了优化的安全配置文件,或者要求禁用 AppArmor。一旦禁用,将增加安全风险,也会相应地降低加载项的安全评分。",
|
||||
@@ -114,23 +147,124 @@
|
||||
"description": "加载项可以通过 Home Assistant 验证用户身份,从而允许其用户通过 Home Assistant 的用户名和密码登录加载项内部的应用程序。此标识代表加载项是否请求此项功能。",
|
||||
"title": "Home Assistant 身份认证"
|
||||
},
|
||||
"docker_api": {
|
||||
"description": "加载项要求其有权访问并管理系统上运行的 Docker 实例。此模式为加载项提供了对整个 Home Assistant 系统的完全访问和控制权,这增加了安全风险,并且在使用不当时可能会损坏系统。因此,此功能会降低加载项的安全评分。 \n\n这种级别的访问权限不会自动授予,必须由您确认。为此,您需要手动禁用加载项的保护模式。请务必在了解、信任加载项来源并且确有需要时,才禁用保护模式。",
|
||||
"title": "完全 Docker 访问"
|
||||
},
|
||||
"full_access": {
|
||||
"description": "加载项要求其对系统的硬件有完全的访问权限,相当于 Docker 中的特权模式。这增加了安全风险,因此会降低加载项的安全评分。 \n\n这种级别的访问权限不会自动授予,必须由您确认。为此,您需要手动禁用加载项的保护模式。请务必在了解、信任加载项来源并且确有需要时,才禁用保护模式。",
|
||||
"title": "完全硬件访问"
|
||||
},
|
||||
"hassio_api": {
|
||||
"description": "加载项要求其有权访问 Supervisor API。默认情况下,加载项只能访问系统的常规版本信息。如果加载项要求了“管理”或“超级管理”级别的 API 访问权限,就有权控制 Home Assistant 系统的多个部分。此标识代表加载项是否请求此项权限,此权限会降低加载项的安全评分。",
|
||||
"title": "Supervisor API 访问"
|
||||
},
|
||||
"homeassistant_api": {
|
||||
"description": "此加载项可以直接通过 Home Assistant API 访问正在运行的 Home Assistant 实例。此模式还处理加载项的身份验证,使加载项无需再经过其他验证即可与 Home Assistant 进行交互。",
|
||||
"title": "Home Assistant API 访问"
|
||||
},
|
||||
"host_network": {
|
||||
"description": "加载项通常在各自隔离的网络层中运行,以阻止其访问宿主操作系统的网络。某些情况下,这种网络隔离会限制加载项的正常工作,因此加载项可以要求解除隔离,给予加载项完全的宿主网络访问权限。这为加载项提供了更多的网络功能,也增加了安全风险。因此,此功能会降低加载项的安全评分。",
|
||||
"title": "宿主网络"
|
||||
},
|
||||
"host_pid": {
|
||||
"description": "通常情况下,加载项进程与其他系统进程是隔离的。加载项已要求其有权访问在宿主系统上运行的系统进程,并且在宿主系统上生成进程。此模式为加载项提供了对整个 Home Assistant 系统的完全访问和控制权,这增加了安全风险,并且在使用不当时可能会损坏系统。因此,此功能会降低加载项的安全评分。 \n\n这种级别的访问权限不会自动授予,必须由您确认。为此,您需要手动禁用插件上的保护模式。请务必在了解、信任加载项来源并且确有需要时,才禁用保护模式。",
|
||||
"description": "通常情况下,加载项进程与其他系统进程是隔离的。加载项要求其有权访问在宿主系统上运行的系统进程,并且在宿主系统上生成进程。此模式为加载项提供了对整个 Home Assistant 系统的完全访问和控制权,这增加了安全风险,并且在使用不当时可能会损坏系统。因此,此功能会降低加载项的安全评分。 \n\n这种级别的访问权限不会自动授予,必须由您确认。为此,您需要手动禁用加载项的保护模式。请务必在了解、信任加载项来源并且确有需要时,才禁用保护模式。",
|
||||
"title": "宿主进程命名空间"
|
||||
},
|
||||
"ingress": {
|
||||
"description": "此加载项使用 Ingress 将其界面安全地嵌入 Home Assistant 中。",
|
||||
"title": "Ingress"
|
||||
},
|
||||
"label": {
|
||||
"apparmor": "apparmor",
|
||||
"auth": "身份认证",
|
||||
"docker": "docker",
|
||||
"hardware": "硬件访问",
|
||||
"hass": "hass",
|
||||
"hassio": "hassio",
|
||||
"host": "宿主网络",
|
||||
"host_pid": "宿主进程",
|
||||
"ingress": "ingress",
|
||||
"rating": "评分",
|
||||
"stage": "状态"
|
||||
},
|
||||
"rating": {
|
||||
"description": "Home Assistant 对每个加载项都进行了安全评分,以代表使用该加载项可能带来的风险。加载项请求的系统访问权限越高,安全风险就越高,安全评分就会越低。\n\n评分的范围从 1 到 6。1 为最低分(最不安全、最高风险),6 为最高分(最安全、最低风险)。",
|
||||
"title": "加载项安全评分"
|
||||
},
|
||||
"role": {
|
||||
"admin": "超级管理",
|
||||
"backup": "备份",
|
||||
"default": "默认",
|
||||
"homeassistant": "homeassistant",
|
||||
"manager": "管理"
|
||||
},
|
||||
"stage": {
|
||||
"description": "加载项有三种状态:\n\n{icon_stable} **稳定**: 这些加载项可用于生产环境。\n\n{icon_experimental} **实验**: 这些加载项可能存在 Bug,或者尚未开发完成。\n\n{icon_deprecated} **废弃**: 这些加载项不会再更新。",
|
||||
"title": "加载项状态"
|
||||
}
|
||||
},
|
||||
"changelog": "更新日志",
|
||||
"cpu_usage": "加载项 CPU 使用率",
|
||||
"hostname": "主机名",
|
||||
"install": "安装",
|
||||
"new_update_available": "{name} 有新版本 {version}",
|
||||
"not_available_arch": "此加载项与设备的处理器或安装的操作系统不兼容。",
|
||||
"not_available_version": "您正在运行 Home Assistant 版本 {core_version_installed},要将加载项更新到此版本,至少需要 Home Assistant 版本 {core_version_needed}",
|
||||
"open_web_ui": "打开 Web UI",
|
||||
"option": {
|
||||
"auto_update": {
|
||||
"description": "有新版本时,自动更新加载项",
|
||||
"title": "自动更新"
|
||||
},
|
||||
"boot": {
|
||||
"description": "系统启动时,自动启动加载项",
|
||||
"title": "自启动"
|
||||
},
|
||||
"ingress_panel": {
|
||||
"description": "将此加载项添加到侧边栏",
|
||||
"title": "在侧边栏显示"
|
||||
},
|
||||
"protected": {
|
||||
"description": "阻止加载项的高权限系统访问",
|
||||
"title": "保护模式"
|
||||
},
|
||||
"watchdog": {
|
||||
"description": "加载项崩溃时,自动重新启动",
|
||||
"title": "守护"
|
||||
}
|
||||
},
|
||||
"protection_mode": {
|
||||
"content": "此加载项的保护模式已禁用!这将使加载项具有对整个系统的完全访问权限,这增加了安全风险,并且在使用不当时可能会损坏系统。请务必在了解、信任加载项来源并且确有需要时,才禁用保护模式。",
|
||||
"enable": "启用保护模式",
|
||||
"title": "警告:保护模式已禁用!"
|
||||
},
|
||||
"ram_usage": "加载项内存使用率",
|
||||
"rebuild": "重新编译",
|
||||
"restart": "重启",
|
||||
"start": "启动",
|
||||
"stop": "停止",
|
||||
"uninstall": "卸载",
|
||||
"visit_addon_page": "有关更多信息,请访问{name}页面"
|
||||
},
|
||||
"documentation": {
|
||||
"get_documentation": "获取加载项文档失败: {error}"
|
||||
},
|
||||
"failed_to_reset": "重置加载项配置失败: {error}",
|
||||
"failed_to_save": "保存加载项配置失败: {error}",
|
||||
"logs": {
|
||||
"get_logs": "获取加载项日志失败: {error}"
|
||||
},
|
||||
"panel": {
|
||||
"configuration": "配置",
|
||||
"documentation": "文档",
|
||||
"info": "信息",
|
||||
"log": "日志"
|
||||
},
|
||||
"state": {
|
||||
"installed": "加载项已安装",
|
||||
"not_available": "加载项在此系统上不可用",
|
||||
"not_installed": "加载项未安装"
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
@@ -141,6 +275,8 @@
|
||||
"unknown": "未知错误",
|
||||
"update_failed": "更新失败"
|
||||
},
|
||||
"failed_to_restart_name": "重启 {name} 失败",
|
||||
"failed_to_update_name": "更新 {name} 失败",
|
||||
"learn_more": "详细了解",
|
||||
"new_version_available": "发现新版本",
|
||||
"newest_version": "最新版本",
|
||||
@@ -303,7 +439,7 @@
|
||||
"used_space": "已用空间"
|
||||
},
|
||||
"log": {
|
||||
"get_logs": "无法获取 {provider} 日志: {error}",
|
||||
"get_logs": "获取 {provider} 日志失败: {error}",
|
||||
"log_provider": "日志提供方"
|
||||
},
|
||||
"supervisor": {
|
||||
@@ -371,7 +507,7 @@
|
||||
},
|
||||
"automation": {
|
||||
"last_triggered": "上次触发",
|
||||
"trigger": "触发"
|
||||
"trigger": "执行"
|
||||
},
|
||||
"camera": {
|
||||
"not_available": "无图像"
|
||||
@@ -649,7 +785,8 @@
|
||||
"was_unlocked": "已解锁",
|
||||
"was_unplugged": "已拔出",
|
||||
"was_unsafe": "[%key_id:6884523%]"
|
||||
}
|
||||
},
|
||||
"show_trace": "显示轨迹"
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "您的浏览器不支持音频元素。",
|
||||
@@ -1162,9 +1299,12 @@
|
||||
"action": "动作",
|
||||
"extra_fields": {
|
||||
"code": "代码",
|
||||
"humidity": "湿度",
|
||||
"message": "消息",
|
||||
"mode": "模式",
|
||||
"position": "位置",
|
||||
"title": "标题"
|
||||
"title": "标题",
|
||||
"value": "值"
|
||||
},
|
||||
"label": "设备"
|
||||
},
|
||||
@@ -1237,7 +1377,9 @@
|
||||
"extra_fields": {
|
||||
"above": "大于",
|
||||
"below": "小于",
|
||||
"for": "持续时间"
|
||||
"for": "持续时间",
|
||||
"hvac_mode": "空调模式",
|
||||
"preset_mode": "预设模式"
|
||||
},
|
||||
"label": "设备"
|
||||
},
|
||||
@@ -1430,6 +1572,8 @@
|
||||
"add_automation": "添加自动化",
|
||||
"delete_automation": "删除自动化",
|
||||
"delete_confirm": "您确定要删除此自动化吗?",
|
||||
"dev_automation": "调试自动化",
|
||||
"dev_only_editable": "只能调试 automations.yaml 中的自动化。",
|
||||
"duplicate": "制作副本",
|
||||
"duplicate_automation": "复制自动化",
|
||||
"edit_automation": "编辑自动化",
|
||||
@@ -1524,11 +1668,11 @@
|
||||
"enable_state_reporting": "启用状态报告",
|
||||
"enter_pin_error": "无法存储pin:",
|
||||
"enter_pin_hint": "输入 PIN 码以使用安全设备",
|
||||
"enter_pin_info": "请输入一个 PIN 码以和安全装置交互。安全装置就是门、车库门和锁之类的物品。通过 Google Assistant 与此类装置互动时,会要求您说出或输入此 PIN 码。",
|
||||
"enter_pin_info": "请输入一个 PIN 码以和安全设备交互。安全设备就是门、车库开门器和锁之类的物品。通过 Google Assistant 与此类设备互动时,会要求您说出或输入此 PIN 码。",
|
||||
"info": "通过 Home Assistant Cloud 的 Google Assistant 集成,您将可以通过任何启用了 Google Assistant 的设备来控制所有 Home Assistant 设备。",
|
||||
"info_state_reporting": "如果启用状态报告,则 Home Assistant 会将公开实体的所有状态变化发送给 Google。这样您就可以始终在 Google 应用中看到最新状态。",
|
||||
"manage_entities": "管理实体",
|
||||
"security_devices": "安全装置",
|
||||
"security_devices": "安全设备",
|
||||
"sync_entities": "同步实体到 Google",
|
||||
"sync_entities_404_message": "无法将实体同步到 Google,请对 Google 说 “Hey Google, sync my devices”来同步实体。",
|
||||
"title": "Google Assistant"
|
||||
|
||||
@@ -467,12 +467,14 @@
|
||||
"docker": "Docker 環境未正常工作",
|
||||
"privileged": "未獲得 Supervisor 特權",
|
||||
"setup": "設定 Supervisor 失敗",
|
||||
"supervisor": "Supervisor 無法進行更新"
|
||||
"supervisor": "Supervisor 無法進行更新",
|
||||
"untrusted": "偵測到未認證內容"
|
||||
},
|
||||
"unhealthy_title": "安裝版本不健康",
|
||||
"unsupported_description": "執行不健康的安裝版本可能會導致問題。下方列表為安裝問題清單,點選連結以了解如何解決問題。",
|
||||
"unsupported_reason": {
|
||||
"container": "已知造成問題的 Container",
|
||||
"content-trust": "內容認證已關閉",
|
||||
"dbus": "DBUS",
|
||||
"docker_configuration": "Docker 設定",
|
||||
"docker_version": "Docker 版本",
|
||||
@@ -785,7 +787,8 @@
|
||||
"was_unlocked": "狀態為解鎖",
|
||||
"was_unplugged": "狀態為拔下",
|
||||
"was_unsafe": "狀態為不安全"
|
||||
}
|
||||
},
|
||||
"show_trace": "顯示紀錄"
|
||||
},
|
||||
"media-browser": {
|
||||
"audio_not_supported": "瀏覽器不支援音效元件。",
|
||||
@@ -1297,10 +1300,15 @@
|
||||
"device_id": {
|
||||
"action": "動作",
|
||||
"extra_fields": {
|
||||
"brightness_pct": "亮度",
|
||||
"code": "碼",
|
||||
"flash": "閃光",
|
||||
"humidity": "濕度",
|
||||
"message": "訊息",
|
||||
"mode": "模式",
|
||||
"position": "位置",
|
||||
"title": "標題"
|
||||
"title": "標題",
|
||||
"value": "數值"
|
||||
},
|
||||
"label": "裝置"
|
||||
},
|
||||
@@ -1373,7 +1381,9 @@
|
||||
"extra_fields": {
|
||||
"above": "在...之上",
|
||||
"below": "在...之下",
|
||||
"for": "持續時間"
|
||||
"for": "持續時間",
|
||||
"hvac_mode": "暖通空調模式",
|
||||
"preset_mode": "預置模式"
|
||||
},
|
||||
"label": "裝置"
|
||||
},
|
||||
@@ -1566,6 +1576,8 @@
|
||||
"add_automation": "新增一個自動化",
|
||||
"delete_automation": "刪除自動化",
|
||||
"delete_confirm": "確定要刪除此自動化?",
|
||||
"dev_automation": "自動化除錯",
|
||||
"dev_only_editable": "僅有於 automations.yaml 內定義的自動化、方能進行除錯。",
|
||||
"duplicate": "複製",
|
||||
"duplicate_automation": "複製自動化",
|
||||
"edit_automation": "編輯自動化",
|
||||
@@ -1760,7 +1772,7 @@
|
||||
},
|
||||
"google": {
|
||||
"banner": "由於您已經透過 configuration.yaml 設定實體過濾器、 因此編輯連結實體的介面將無法使用。",
|
||||
"disable_2FA": "關閉雙重驗證",
|
||||
"disable_2FA": "關閉雙重認證",
|
||||
"dont_expose_entity": "不公開實體",
|
||||
"expose": "與 Google Assistant 連結",
|
||||
"expose_entity": "公開實體",
|
||||
@@ -2803,6 +2815,7 @@
|
||||
"server_version": "伺服器版本"
|
||||
},
|
||||
"device_info": {
|
||||
"device_config": "設定裝置",
|
||||
"node_ready": "就緒節點",
|
||||
"node_status": "節點狀態",
|
||||
"zwave_info": "Z-Wave 資訊"
|
||||
@@ -2815,6 +2828,15 @@
|
||||
"connecting": "連線中",
|
||||
"unknown": "未知"
|
||||
},
|
||||
"node_config": {
|
||||
"attribution": "由 {device_database} 所提供之裝置設定參數與說明",
|
||||
"battery_device_notice": "電池供電裝置必須喚醒以更新其設定。請參考您的裝置手冊以了解如何喚醒裝置。",
|
||||
"error_device_not_found": "找不到裝置",
|
||||
"header": "Z-Wave 裝置設定",
|
||||
"introduction": "管理與調整所選擇裝置 (節點) 之特定設定參數",
|
||||
"parameter_is_read_only": "此參數為唯讀。",
|
||||
"zwave_js_device_database": "Z-Wave JS 裝置資料庫"
|
||||
},
|
||||
"node_status": {
|
||||
"alive": "線上",
|
||||
"asleep": "睡眠",
|
||||
@@ -3539,9 +3561,9 @@
|
||||
},
|
||||
"mfa": {
|
||||
"data": {
|
||||
"code": "雙重驗證碼"
|
||||
"code": "雙重認證碼"
|
||||
},
|
||||
"description": "開啟裝置上的 **{mfa_module_name}** 以獲得雙重驗證碼,並進行驗證:"
|
||||
"description": "開啟裝置上的 **{mfa_module_name}** 以獲得雙重認證碼,並進行驗證:"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3562,9 +3584,9 @@
|
||||
},
|
||||
"mfa": {
|
||||
"data": {
|
||||
"code": "雙重驗證碼"
|
||||
"code": "雙重認證碼"
|
||||
},
|
||||
"description": "開啟裝置上的 **{mfa_module_name}** 以獲得雙重驗證碼,並進行驗證:"
|
||||
"description": "開啟裝置上的 **{mfa_module_name}** 以獲得雙重認證碼,並進行驗證:"
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -3586,9 +3608,9 @@
|
||||
},
|
||||
"mfa": {
|
||||
"data": {
|
||||
"code": "雙重驗證碼"
|
||||
"code": "雙重認證碼"
|
||||
},
|
||||
"description": "開啟裝置上的 **{mfa_module_name}** 以獲得雙重驗證碼,並進行驗證:"
|
||||
"description": "開啟裝置上的 **{mfa_module_name}** 以獲得雙重認證碼,並進行驗證:"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user